:root{--paper: rgba(240, 241, 248, .92);--paper-dim: rgba(240, 241, 248, .45);--gold: rgba(255, 206, 122, .95);--ice: rgba(146, 186, 255, .9);--violet: rgba(196, 168, 255, .92);font-family:Optima,Avenir Next,Segoe UI,system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#000;color:var(--paper);overscroll-behavior:none}#view{position:fixed;inset:0;width:100%;height:100%;display:block}#hud{position:fixed;inset:0;pointer-events:none;user-select:none}.chapter{position:absolute;left:5vw;bottom:9vh;max-width:42ch;opacity:0;text-shadow:0 1px 14px rgba(0,0,0,.75)}.chapter.visible{opacity:1;animation:chapter-in 1.6s cubic-bezier(.16,1,.3,1)}@keyframes chapter-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.chapter .numeral{font-size:.66rem;letter-spacing:.5em;color:var(--gold);margin-bottom:.55rem}.chapter .numeral:after{content:"";display:block;width:2.4rem;height:1px;margin-top:.6rem;background:linear-gradient(90deg,var(--gold),transparent)}.chapter .name{font-size:clamp(1.05rem,2.1vw,1.6rem);font-weight:300;letter-spacing:.3em;text-transform:uppercase}.chapter .line{margin-top:.7rem;font-size:.78rem;font-weight:400;line-height:1.7;letter-spacing:.06em;color:var(--paper-dim)}.readout{position:absolute;top:6vh;right:5vw;text-align:right;font-variant-numeric:tabular-nums;opacity:0;transition:opacity 1.4s ease;text-shadow:0 1px 12px rgba(0,0,0,.75)}.readout.visible{opacity:1}.readout .row{display:flex;justify-content:flex-end;align-items:baseline;gap:.9em;margin-bottom:.45rem}.readout .label{font-size:.58rem;letter-spacing:.38em;text-transform:uppercase;color:var(--paper-dim)}.readout .value{font-size:.95rem;font-weight:300;letter-spacing:.08em;min-width:12ch;color:var(--ice);transition:color .6s ease}.readout .value.hot{color:var(--violet)}.track{position:absolute;left:5vw;right:5vw;bottom:5vh;height:1px;background:#f0f1f824}.track .fill{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,#92baffcc,#ffce7af2);transition:width 80ms linear}.track .tick{position:absolute;top:-3px;width:1px;height:7px;background:#f0f1f84d}.prompt{position:absolute;bottom:12vh;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center;white-space:nowrap}.prompt .how{font-size:.62rem;letter-spacing:.5em;text-transform:uppercase;color:var(--paper-dim);animation:prompt-pulse 3.2s ease-in-out infinite;transition:opacity 1.2s ease}.prompt.gone .how{opacity:0;animation:none}.prompt .sound{pointer-events:auto;background:#00000059;border:1px solid rgba(240,241,248,.25);color:var(--paper);font:inherit;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;padding:.7em 1.6em;cursor:pointer;transition:border-color .4s ease,background .4s ease,opacity .9s ease}.prompt .sound:hover{border-color:var(--gold);background:#ffce7a14}.prompt .sound.gone{opacity:0;pointer-events:none}@keyframes prompt-pulse{0%,to{opacity:.35}50%{opacity:.85}}.finale{position:absolute;inset:0;display:grid;place-items:center;text-align:center;opacity:0;pointer-events:none;transition:opacity 2.4s ease}.finale.visible{opacity:1;pointer-events:auto}.finale-mode .chapter,.finale-mode .readout,.finale-mode .prompt{opacity:0}.finale .over{font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:1.1rem}.finale h2{font-size:clamp(1.8rem,5vw,3.8rem);font-weight:200;letter-spacing:.34em;text-transform:uppercase;text-indent:.34em;color:var(--gold)}.finale .sub{margin-top:.9rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ice)}.finale .tag{margin-top:1.4rem;font-size:.85rem;font-weight:400;letter-spacing:.12em;color:var(--paper-dim);max-width:46ch}.finale .actions{margin-top:3rem;display:flex;gap:2.2rem;justify-content:center}.finale button{background:none;border:1px solid rgba(240,241,248,.25);color:var(--paper);font:inherit;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;padding:.85em 1.9em;cursor:pointer;transition:border-color .4s ease,background .4s ease}.finale button:hover{border-color:var(--gold);background:#ffce7a14}.finale .seed{margin-top:2.2rem;font-size:.58rem;letter-spacing:.28em;color:#f0f1f847}@media (max-width: 640px){.readout{top:max(14px,env(safe-area-inset-top));right:16px}.readout .row{margin-bottom:.3rem;gap:.6em}.readout .label{font-size:.5rem;letter-spacing:.28em}.readout .value{font-size:.78rem;min-width:9ch}.prompt{bottom:36vh;width:calc(100vw - 32px);white-space:normal;gap:.9rem}.prompt .how{font-size:.56rem;letter-spacing:.3em;line-height:2}.chapter{left:16px;right:16px;bottom:8vh;max-width:none}.chapter .name{font-size:1.05rem;letter-spacing:.22em}.chapter .line{font-size:.72rem;line-height:1.6}.track{left:16px;right:16px;bottom:3.5vh}.finale .actions{flex-direction:column;align-items:center;gap:1rem;margin-top:2.2rem}}@media (prefers-reduced-motion: reduce){.prompt .how,.chapter.visible{animation:none}}
