/* The authored Rive artwork fills the same stage as the game. */
body.intro-active { background:#000; }
.intro-active > .utility, .intro-active > footer { visibility:hidden; }
#start-screen { position:absolute; inset:0; z-index:80; display:block; background:#000; backdrop-filter:none; overflow:hidden; }
#start-screen[hidden] { display:none; }
#intro-fallback, #intro-canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
#intro-canvas { opacity:0; pointer-events:none; }
#intro-curtain { position:absolute; inset:0; z-index:5; background:#000; opacity:0; pointer-events:none; }
#load-display { position:absolute; width:20.2%; aspect-ratio:1; left:50%; top:53.1%; transform:translate(-50%,-50%); filter:drop-shadow(0 2px 3px #0005); }
#load-display[hidden] { display:none; }
#load-display svg { position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); overflow:visible; }
.load-track { fill:none; stroke:#ffffff2e; stroke-width:21; }
.load-progress { fill:none; stroke:#fff9ee; stroke-opacity:.92; stroke-width:21; stroke-linecap:butt; stroke-dasharray:100; stroke-dashoffset:calc(100 - var(--load-progress,0)); transition:stroke-dashoffset .3s ease; }
#load-percent { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding-top:12%; font:900 4.4cqw/1 'Arial Black','Segoe UI',sans-serif; color:#fff7e9; letter-spacing:-.035em; text-shadow:0 2px 0 #cba97d55; }
#load-message { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#start-screen.load-failed #load-message { width:auto; height:auto; left:20%; right:20%; bottom:14%; clip-path:none; text-align:center; padding:1cqw; background:#080e0de8; border:1px solid #91bb6a; color:#f4f3de; font-size:1.2cqw; }
#enter { position:absolute; inset:0; z-index:3; width:100%; height:100%; border:0; padding:0; background:transparent; border-radius:0; box-shadow:none; }
#enter[hidden] { display:none; }
#enter:hover { filter:none; }
#enter:focus-visible { outline:0; }
#enter .enter-label { position:absolute; top:90.5%; left:20%; right:20%; font:900 3.55cqw/1 'Arial Black','Segoe UI',sans-serif; letter-spacing:-.025em; color:#fff; -webkit-text-stroke:.18cqw #050505; paint-order:stroke fill; text-shadow:0 .18cqw 0 #000,0 0 .8cqw #000b; }
.awaiting-press .enter-label { animation:intro-prompt 3s ease-in-out infinite; }
.reduced-motion .enter-label { animation:none!important; }
.splash-fallback-panels { position:absolute; inset:0; z-index:1; pointer-events:none; }
.splash-fallback-panels img { position:absolute; display:block; }
.static-splash #enter:focus-visible { outline:2px solid #b4ff73; outline-offset:-4px; }
#start-screen.revealing-game { background:transparent; }
@keyframes intro-prompt { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .load-progress { transition:none; } .awaiting-press .enter-label { animation:none; } }
