:root {
  --intro-duration: 2.55s;
  --intro-bg: var(--bg, #0f0e0d);
  --intro-panel: var(--bg2, #161513);
  --intro-fg: var(--cream, #ede5d8);
  --intro-muted: var(--dust, #7a6f63);
}

#solena-intro[hidden] { display: none; }
html.solena-intro-active #solena-intro[hidden] { display: grid; }
#solena-intro {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--intro-bg);
  color: var(--intro-fg);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  isolation: isolate;
}
#solena-intro::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgba(237, 229, 216, .11) .55px, transparent .7px);
  background-size: 4px 4px;
  content: "";
  opacity: .12;
  pointer-events: none;
}
html:not(.solena-intro-active) #solena-intro { display: none; }
html.solena-intro-active #solena-intro {
  animation: solena-intro-exit 420ms ease 2.13s forwards;
}
html.solena-intro-active #solena-intro.is-leaving {
  animation-delay: 0s;
  pointer-events: none;
}
html.solena-intro-active #solena-intro.is-leaving .solena-intro__record {
  animation-play-state: paused;
}
.solena-intro__stage {
  position: relative;
  display: grid;
  justify-items: center;
  width: min(100%, 380px);
  padding: 24px;
  text-align: center;
}
.solena-intro__graphic {
  display: block;
  width: 300px;
  max-width: 82vw;
  overflow: visible;
}
.solena-intro__record {
  transform-box: view-box;
  transform-origin: 39.375% 50.833%;
  opacity: 0;
    animation: solena-record-reveal 720ms cubic-bezier(.2,.75,.25,1) 250ms forwards,
      solena-record-rotate 7s linear 800ms infinite,
      solena-record-away 360ms ease 1.24s forwards;
}
.solena-intro__disc {
  fill: var(--intro-panel);
  stroke: rgba(237,229,216,.44);
  stroke-width: 1;
}
.solena-intro__groove {
  fill: none;
  stroke: rgba(184,170,150,.3);
  stroke-width: .7;
}
.solena-intro__label { fill: #241e19; stroke: rgba(232,129,58,.62); stroke-width: 1; }
.solena-intro__spindle { fill: var(--intro-fg); }
.solena-intro__pivot {
  fill: var(--intro-muted);
  opacity: 0;
  animation: solena-pivot-reveal 160ms ease 760ms forwards;
}
.solena-intro__arm {
  fill: none;
  stroke: var(--intro-fg);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 150;
  stroke-dashoffset: 150;
  animation: solena-needle-drop 560ms cubic-bezier(.25,.7,.25,1) 690ms forwards;
}
.solena-intro__stylus {
  fill: var(--intro-fg);
  opacity: 0;
  animation: solena-stylus-drop 100ms ease 1.25s forwards;
}
.solena-intro__wordmark {
  position: absolute;
  top: 112px;
  left: 0;
  width: 100%;
  color: var(--intro-fg);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 62px;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
  opacity: 0;
  transform: translateY(5px);
  animation: solena-wordmark-reveal 440ms ease 1.22s forwards;
}
.solena-intro__signature {
  display: grid;
  gap: 5px;
  margin-top: -13px;
  color: var(--intro-muted);
  font-family: var(--font-body, 'Space Grotesk', sans-serif);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .24em;
  line-height: 1.4;
  opacity: 0;
  animation: solena-wordmark-reveal 340ms ease 1.48s forwards;
}
.solena-intro__skip {
  position: absolute;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  min-width: 64px;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  background: transparent;
  color: var(--intro-muted);
  font-family: var(--font-body, 'Space Grotesk', sans-serif);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .18em;
  cursor: pointer;
  opacity: .72;
  transition: color 160ms ease, opacity 160ms ease;
}
.solena-intro__skip:hover,
.solena-intro__skip:focus-visible { color: var(--intro-fg); opacity: 1; }
.solena-intro__skip:focus-visible { outline: 1px solid var(--intro-muted); outline-offset: -5px; }
@keyframes solena-record-reveal {
  from { opacity: 0; transform: scale(.035); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes solena-record-rotate { to { rotate: 1turn; } }
@keyframes solena-record-away { to { opacity: 0; } }
@keyframes solena-pivot-reveal { to { opacity: 1; } }
@keyframes solena-needle-drop { to { stroke-dashoffset: 0; } }
@keyframes solena-stylus-drop { to { opacity: 1; } }
@keyframes solena-wordmark-reveal {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes solena-intro-exit {
  to { opacity: 0; visibility: hidden; }
}
@media (max-width: 767px) {
  .solena-intro__graphic { width: 250px; }
  .solena-intro__wordmark { top: 91px; font-size: 48px; }
  .solena-intro__signature { margin-top: -12px; font-size: 9px; }
}
@media (max-width: 430px) {
  .solena-intro__graphic { width: 226px; }
  .solena-intro__wordmark { top: 81px; font-size: 43px; }
}
@media (prefers-reduced-motion: reduce) {
  html.solena-intro-active #solena-intro { animation-duration: 280ms; animation-delay: 35ms; }
  html.solena-intro-active #solena-intro.is-leaving { animation-delay: 0s; }
  .solena-intro__record,
  .solena-intro__pivot,
  .solena-intro__arm,
  .solena-intro__stylus,
  .solena-intro__wordmark,
  .solena-intro__signature { animation: none; }
  .solena-intro__record { opacity: 0; }
  .solena-intro__record { animation: none; }
  .solena-intro__pivot,
  .solena-intro__arm,
  .solena-intro__stylus { opacity: 0; }
  .solena-intro__wordmark,
  .solena-intro__signature { opacity: 1; transform: none; }
}