@font-face{font-family:"Space Grotesk";src:url('/assets/fonts/SpaceGrotesk.woff2') format('woff2');font-display:swap}
@font-face{font-family:"DM Sans";src:url('/assets/fonts/DMSans.woff2') format('woff2');font-display:swap}
@font-face{font-family:"Geist Mono";src:url('/assets/fonts/GeistMono.woff2') format('woff2');font-display:swap}
:root{color-scheme:dark;font-family:'DM Sans',sans-serif;color:#e5f3fa;background:#020914}
*{box-sizing:border-box}body{margin:0;min-height:100svh}button,input{font:inherit}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-eyebrow{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.22em;color:#69d7ee}
.home-action{border:1px solid #547d8b;background:#0d2532;color:#d1e8f0;border-radius:8px;padding:11px 16px;min-height:44px;cursor:pointer}
.home-action:hover{border-color:#8de5f5}.home-action:focus-visible,input:focus-visible{outline:3px solid #efbd6a;outline-offset:4px}
.home-intro {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  color: inherit;
  position: absolute;
  inset: 0;
  z-index: 45;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: transparent;
  isolation: isolate;
  padding: 24px;
}
.home-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  /* Halve the light remaining through the existing intro scrim. */
  background: linear-gradient(rgb(0 0 0 / 50%), rgb(0 0 0 / 50%)),
    radial-gradient(ellipse at center, #04101ce6, #020914f5);
}
.home-intro[data-final="true"]::before,
.home-intro[data-final="true"] .home-eyebrow,
.home-intro[data-final="true"] .home-intro-count {
  animation: home-intro-release var(--intro-final-duration) ease-in-out both;
}
.home-intro[data-final="true"] .home-intro-phrase {
  animation: home-intro-finale var(--intro-final-duration) ease-in-out both;
}
@keyframes home-intro-release {
  0%,
  40% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes home-intro-finale {
  0% {
    opacity: 0;
    filter: blur(5px);
  }
  20%,
  40% {
    opacity: 1;
    filter: none;
  }
  100% {
    opacity: 0;
    filter: none;
  }
}
.home-intro-copy {
  text-align: center;
  max-width: 1000px;
}
.home-intro-phrase {
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(26px, 4vw, 65px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .08em;
  margin: 30px 0;
  min-height: 2.6em;
  display: grid;
  place-items: center;
}
.home-intro-count {
  font: 10px "Geist Mono", monospace;
  letter-spacing: .3em;
  color: #7caebf;
}
.home-intro-controls {
  position: absolute;
  bottom: 32px;
  left: 32px;
  right: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.home-intro-controls label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #b9cbd6;
  font-size: 12px;
}
.home-intro-controls input {
  accent-color: #55d9f4;
  width: 17px;
  height: 17px;
}
.home-intro-word {
  display: inline;
}
.home-sequence-fade,
.home-sequence-glow {
  animation: home-cinematic-glow 1900ms ease both;
  text-shadow: 0 0 30px #7ceaff80;
}
.home-sequence-letters {
  display: block;
}
.home-sequence-letters .home-intro-word {
  display: inline-block;
  white-space: pre;
}
.home-sequence-letters .home-reveal-letter {
  display: inline-block;
  animation: home-letter-reveal 650ms calc(var(--letter) * 32ms) ease both;
}
.home-sequence-flash {
  animation: home-quick-flash 650ms ease both;
}
.home-sequence-burn {
  color: #ff9c68;
  text-shadow: 0 0 30px #ff58186b;
  animation: home-burn-pulse 1400ms ease both;
}
.home-navigation-waiting {
  visibility: hidden;
}
.home-navigation-ready .home-digital-text {
  display: inline;
}
.home-digital-letter {
  position: relative;
  display: inline-block;
  white-space: pre;
  animation: home-decode 750ms calc(var(--letter) * 18ms) both;
}
.home-digital-letter::before {
  opacity: 0;
  position: absolute;
  inset: 0;
  content: attr(data-glyph);
  color: #8ce8ef;
  animation: home-code-noise 750ms calc(var(--letter) * 18ms) both;
}
@keyframes home-cube-float {
  0%,
  100% {
    transform: translateY(5px);
  }
  50% {
    transform: translateY(-8px);
  }
}
@keyframes home-arrive {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes home-cinematic-glow {
  0% {
    opacity: 0;
    filter: blur(5px);
  }
  40%,
  100% {
    opacity: 1;
    filter: none;
  }
}
@keyframes home-letter-reveal {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes home-quick-flash {
  0% {
    opacity: 0;
  }
  25% {
    opacity: 1;
    text-shadow: 0 0 22px #8beaff;
  }
  100% {
    opacity: 1;
  }
}
@keyframes home-burn-pulse {
  0%,
  100% {
    opacity: 1;
    text-shadow: 0 0 12px #ff471866;
  }
  50% {
    color: #ffc58f;
    text-shadow: 0 0 42px #ff4d23;
  }
}
@keyframes home-decode {
  0%,
  70% {
    color: transparent;
  }
  100% {
    color: inherit;
  }
}
@keyframes home-code-noise {
  0%,
  20% {
    opacity: 1;
    content: attr(data-glyph);
  }
  40% {
    content: "0";
  }
  60% {
    content: "░";
  }
  80% {
    opacity: 1;
    content: "1";
  }
  100% {
    opacity: 0;
  }
}

/* The gateway holds the original last sequence instead of fading out to the game. */
.home-intro{position:relative;min-height:100svh;height:auto;padding:100px 24px 130px}
.home-intro::before{background:linear-gradient(rgb(0 0 0 / 50%),rgb(0 0 0 / 50%)),radial-gradient(ellipse at center,#04101ce6,#020914f5)}
.home-intro[data-final="true"]::before,.home-intro[data-final="true"] .home-eyebrow,.home-intro[data-final="true"] .home-intro-count{animation:none}
.home-intro[data-final="true"] .home-intro-phrase{animation:home-cinematic-glow 1900ms ease both}
.gateway-arrival{animation:gateway-fog 3000ms 1600ms ease both}
.gateway-coming{min-width:230px;min-height:60px;padding:16px 30px;border:1px solid #4794a7;border-radius:9px;background:#102b38;color:#8ab0be;font-family:'Geist Mono',monospace;font-size:17px;letter-spacing:.08em;cursor:not-allowed;box-shadow:0 0 30px #55d9f415}
.gateway-coming .home-digital-letter,.gateway-coming .home-digital-letter::before{animation-delay:calc(2400ms + var(--letter) * 70ms);animation-duration:1300ms}
.gateway-status{font:10px 'Geist Mono',monospace;letter-spacing:.3em;color:#bcaa7e;margin:18px 0 0}
.gateway-noscript{position:absolute;bottom:100px;font-size:12px;color:#b9cbd6;text-align:center}
@keyframes gateway-fog{from{opacity:0;filter:blur(16px);transform:translateY(10px)}to{opacity:1;filter:blur(0);transform:none}}
@media(max-width:600px){.home-intro{padding:76px 20px 150px;min-height:max(560px,100svh)}.home-intro-phrase{font-size:clamp(24px,6vw,36px);letter-spacing:.05em}.home-intro-controls{bottom:24px;left:20px;right:20px;flex-wrap:wrap;gap:16px}.home-intro-controls label{flex-basis:100%}.home-action{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.home-digital-letter{color:inherit!important}.home-digital-letter::before{display:none!important}}
