/* Shared sizing prevents grid children and long pixel headings exceeding the screen. */
html{-webkit-text-size-adjust:100%;scroll-padding-top:2rem}
img{max-width:100%}
.platform-identity{display:flex;align-items:center;gap:12px;min-width:0}
.platform-icon{display:block;width:28px;height:28px;flex:0 0 28px}
header .header-icon{display:block;width:48px;height:48px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}
@media(max-width:700px){header .header-icon{width:36px;height:36px}}
#fullscreen{min-height:44px;min-width:44px;cursor:pointer}
.game-shell.game-expanded,.game-shell:fullscreen{position:fixed;inset:0;z-index:1000;box-sizing:border-box;width:100%;max-width:none;height:100vh;height:100dvh;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#000;display:block;overflow:hidden}
/* Keep the exit control over the game, without reserving a toolbar or safe-area border. */
.game-shell.game-expanded .game-bar,.game-shell:fullscreen .game-bar{position:absolute;top:max(4px,env(safe-area-inset-top));right:max(4px,env(safe-area-inset-right));z-index:5;display:block;margin:0;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:none}
.game-shell.game-expanded .game-bar>span,.game-shell:fullscreen .game-bar>span{display:none}
.game-shell.game-expanded #fullscreen,.game-shell:fullscreen #fullscreen{display:block;min-height:44px;min-width:44px;margin:0;padding:6px 10px;border:0;border-radius:6px;background:#100820b3;color:#fff;font:14px/1.2 Arial,sans-serif;pointer-events:auto}
.game-shell.game-expanded .game-stage,.game-shell:fullscreen .game-stage{position:absolute;inset:0;min-height:0;aspect-ratio:auto;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0}
.game-shell.game-expanded .game-stage iframe,.game-shell:fullscreen .game-stage iframe{display:block;height:100%;width:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0}
.game-shell.game-expanded .game-note,.game-shell.game-expanded .game-controls,.game-shell:fullscreen .game-note,.game-shell:fullscreen .game-controls{display:none}
.hero-grid>*,.introduction>*,.phase-grid>*,.story>*,.listen>*,.game-shell,.game-stage{min-width:0}
h1,h2,h3,.game-bar,.wordmark{overflow-wrap:anywhere}
a,button{-webkit-tap-highlight-color:#43e6ff33}
.game-stage.game-running{min-height:0;aspect-ratio:16/9;width:100%}
.game-stage.game-running iframe{width:100%;height:100%;min-height:0}
.game-stage.game-running:fullscreen{height:100dvh;aspect-ratio:auto}
@media(max-width:950px){
  .hero-grid,.introduction,.story,.listen{grid-template-columns:minmax(0,1fr);gap:2rem}
  .hero-copy{order:0}
  .hero-copy .intro,.release{max-width:none}
  .cover{width:100%;max-width:34rem;justify-self:center}
  .story-photo{max-width:30rem;width:100%;justify-self:center}
  .story-photo img{height:auto;aspect-ratio:3/4;object-fit:cover}
  .portrait.album-cover-repeat{display:block;width:min(100%,22rem);max-width:22rem;margin:1.5rem auto 0}
}
@media(max-width:700px){
  html{scroll-padding-top:8.5rem}
  body{font-size:1.0625rem;line-height:1.75}
  header{position:sticky;top:0;z-index:30;display:flex;flex-direction:column;align-items:stretch;gap:.45rem;padding:.55rem max(1rem,env(safe-area-inset-right)) .6rem max(1rem,env(safe-area-inset-left));background:#100820f5;box-shadow:0 3px 12px #0004}
  header>.wordmark{align-self:center;min-height:2rem;font-size:.875rem}
  header nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;width:100%;font-size:.875rem}
  header nav>a,header nav>a:first-child{display:flex;min-height:2.75rem;align-items:center;justify-content:center;text-align:center;gap:.25rem;padding:.45rem .2rem;border:1px solid #62428b;background:#25113f;line-height:1.3}
  header nav>.nav-game{border-color:#ff6ddd;box-shadow:2px 2px #742a90}
  .hero,.section{padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}
  .hero{padding-top:1.5rem;padding-bottom:2.5rem}
  .section{padding-top:2.5rem;padding-bottom:2.5rem}
  .eyebrow{font-family:monospace;font-size:.8125rem;line-height:1.6}
  h1{font-size:clamp(1.125rem,6.1vw,2.6rem);line-height:1.6;letter-spacing:-.05em;margin:1.5rem 0 1.75rem;text-shadow:3px 3px #7038c0}
  h2,.hero-copy h2,.story-text h2,.album-ending h2{font-size:clamp(1.05rem,4.8vw,1.375rem);line-height:1.8}
  .hero-grid{gap:2rem}
  .kicker,.section-label{font-size:.75rem;line-height:1.9}
  .intro{margin:1.25rem 0 1.5rem}
  .actions{display:grid;grid-template-columns:1fr;gap:.8rem}
  .actions>a{width:100%;min-height:3rem;padding:.8rem 1rem;text-align:center;justify-content:center;font-size:1rem}
  .actions .text-link{display:flex;border:1px solid #76529f;background:#221037}
  .release{margin-top:1.5rem;padding-top:1.25rem}
  .cover{padding:6px;box-shadow:5px 5px #3a165f}
  .phase-grid{grid-template-columns:minmax(0,1fr);gap:1.4rem;margin-top:1.5rem}
  .phase{padding:1.125rem;box-shadow:4px 4px #2e154b}
  .phase h3{font-size:clamp(.75rem,3.5vw,.875rem);line-height:1.9}
  .phase-number{font-size:.75rem;padding-bottom:1rem;margin-bottom:1.2rem}
  .phase p{font-size:1rem;line-height:1.8}
  .phase-outro{text-align:left;margin-top:1.75rem}
  .story-text p{margin:1.25rem 0}
  .story-text .statement{padding-left:1rem}
  .story-photo{box-shadow:4px 4px #3a165f}
  .game-heading{display:block;margin-bottom:1.5rem}
  .game-heading>p{max-width:none;font-size:1rem}
  .game-shell{padding:5px;border-width:2px;box-shadow:4px 4px #461677}
  .game-bar{flex-wrap:wrap;gap:.6rem;font-size:.8125rem;letter-spacing:0;padding:.6rem}
  .game-bar button{min-height:2.75rem;font-size:.875rem}
  .game-stage{min-height:18rem;aspect-ratio:auto}
  .game-stage.game-running{min-height:0;aspect-ratio:16/9}
  .game-empty{padding:1.5rem .65rem;max-width:100%}
  .game-empty h3{font-size:clamp(.9rem,4.2vw,1.3rem);line-height:1.9}
  .game-empty p:not(.kicker){font-size:1rem}
  .game-note{font-size:.875rem;padding:.75rem;overflow-wrap:anywhere}
  .game-note a{display:inline-block;min-height:2.75rem;padding:.5rem 0}
  .platform,.platform:first-child{min-height:3.5rem;padding:1rem 0;font-size:1rem}
  .platform small,.small{font-size:.875rem}
  .track-labels{display:grid;grid-template-columns:1fr;gap:.6rem;margin:1.5rem 0 2rem}
  .track-labels span{font-size:.9375rem;padding:.65rem .9rem}
  footer{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 1.25rem max(1.5rem,env(safe-area-inset-bottom));text-align:center}
  footer .wordmark{min-height:2.75rem;font-size:.875rem}
  footer>a:last-child{margin-left:0;min-height:2.75rem;display:flex;align-items:center;font-size:.875rem}
  footer p{font-size:.75rem}
}
@media(max-height:500px) and (orientation:landscape){header{position:relative}html{scroll-padding-top:1rem}}
@media(hover:none){.primary:hover{transform:none}}
@media(max-width:700px){.game-stage{background-image:linear-gradient(#160728d9,#110923e8),url(artwork-480.webp)}}
.game-stage{position:relative}.game-loading{position:absolute;inset:0;display:grid;place-items:center;background:#100820ed;color:#43e6ff;text-align:center;padding:1rem;font-family:monospace;pointer-events:none}.game-controls{margin:0;padding:1rem;color:var(--muted);font-size:.875rem;line-height:1.8}.game-note a{text-decoration:underline}.game-stage.game-running{overflow:hidden}.game-stage iframe{touch-action:none}.game-stage:fullscreen{padding:0;border:0}.game-stage:fullscreen iframe{height:100dvh}
