:root{--void:#040406;--ink:#ece5d6;--muted:#8f877a;--gold:#e2b76f;--ember:#ff9a3c;--maser:#ff2d6f;--plasma:#ad8cff;--water:#3aa9f0;--hline:#9fe3ff;--panel:rgba(8,8,11,.72);--line:rgba(226,183,111,.28);--f-display:"Cinzel","Trajan Pro","Times New Roman",serif;--f-body:"Barlow","Helvetica Neue",Arial,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;color-scheme:dark;}*,*::before,*::after{box-sizing:border-box}html,body{height:100%;background:var(--void);color:var(--ink);overflow:hidden}body{font-family:var(--f-body);font-size:14px;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0}#gl{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}#gl:active{cursor:grabbing}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.lbl{position:absolute;left:0;top:0;white-space:nowrap;font-family:var(--f-mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);will-change:transform,opacity}.lbl i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--c,var(--gold));box-shadow:0 0 8px var(--c,var(--gold))}.lbl span{position:absolute;left:10px;top:-7px;display:block;padding-left:8px;border-left:1px solid var(--c,var(--gold))}.lbl b{display:block;font-weight:500;color:var(--ink)}.lbl em{display:block;font-style:normal;color:var(--muted);letter-spacing:.04em;text-transform:none;font-size:10.5px}.lbl.l span{left:auto;right:10px;padding-left:0;padding-right:8px;border-left:0;border-right:1px solid var(--c,var(--gold));text-align:right}.hud{position:absolute;pointer-events:none}.hud > *{pointer-events:auto}.top{top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:calc(env(safe-area-inset-top,0px) + 18px) 22px 0}.brand h1{font-family:var(--f-display);font-weight:600;font-size:clamp(17px,2.1vw,25px);letter-spacing:.11em;margin:0;line-height:1.1;text-wrap:balance;background:linear-gradient(180deg,#f6f1e6 0%,#b9b2a6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand .sub{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px}.readout{display:flex;gap:12px;align-items:center;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.readout svg{flex:none}.readout b{display:block;color:var(--hline);font-weight:500;font-size:11.5px}.readout .st{color:var(--ink)}.stagenav{left:22px;top:50%;transform:translateY(-50%)}.stages{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.stages button{all:unset;cursor:pointer;display:grid;grid-template-columns:30px auto;align-items:baseline;gap:6px;padding:5px 10px 5px 0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.62;transition:opacity .3s,color .3s}.stages button .n{font-family:var(--f-display);font-size:13px;letter-spacing:.04em;color:var(--muted);text-align:right}.stages button:hover,.stages button:focus-visible{opacity:1}.stages button:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.stages button.on{opacity:1;color:var(--ink)}.stages button.on .n{color:var(--sc,var(--gold));text-shadow:0 0 10px var(--sc,var(--gold))}.stages button.done{opacity:.85}.caption{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);transform:translateX(-50%);width:min(620px,calc(100% - 44px));text-align:center}.caption .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sc,var(--gold))}.caption p{margin:6px 0 0;font-size:15px;line-height:1.5;color:var(--ink);text-wrap:balance;text-shadow:0 1px 12px #000,0 0 2px #000}.controls{right:22px;left:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.controls button,.controls select{appearance:none;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:6px 10px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.controls select{padding-right:22px;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 11px) 50%,calc(100% - 7px) 50%;background-size:4px 4px;background-repeat:no-repeat}.controls button[aria-pressed="false"]{color:var(--muted)}.controls button:hover,.controls select:hover{border-color:var(--gold)}.controls button:focus-visible,.controls select:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.controls .sep{flex:1 1 0}.controls .short{display:none}.note{position:absolute;right:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 56px);width:min(380px,calc(100% - 44px));background:rgba(6,6,9,.9);border:1px solid var(--line);padding:14px 16px;font-size:13px;line-height:1.55;color:var(--ink)}.note h2{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 8px;font-weight:500}.note p{margin:0 0 8px}.note p:last-child{margin:0;color:var(--muted);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.03em}.scope{left:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 62px);width:226px;background:var(--panel);border:1px solid var(--line);padding:9px 12px 10px;font-family:var(--f-mono);font-size:10px;color:var(--muted);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.scope .sc-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--ember);margin-bottom:4px}.scope .sc-h b{font-weight:500;color:var(--hline);letter-spacing:.1em}.scope .sc-h b.lk{color:#7dffb0}.scope svg{display:block;width:100%;height:auto}.scope .sc-t{color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums}.scope .sc-n{margin-top:3px;line-height:1.35;font-size:9.5px}@media (max-width:1099px){.scope{display:none}}.fallback{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;font-family:var(--f-mono);color:var(--muted)}.hint{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 74px);transform:translateX(-50%);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);pointer-events:none;transition:opacity 1s}@media (max-width:760px){.top{padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 0}.readout{display:none}.stagenav{left:16px;right:16px;top:calc(env(safe-area-inset-top,0px) + 96px);transform:none}.brand .sub{font-size:9.5px}.hint{top:calc(env(safe-area-inset-top,0px) + 132px)}.stages{flex-direction:row;justify-content:center;gap:2px}.stages button{grid-template-columns:auto;padding:4px 7px}.stages button .t{display:none}.caption{bottom:calc(env(safe-area-inset-bottom,0px) + 100px)}.controls{gap:5px}.controls button,.controls select{padding:6px 8px}.controls .full{display:none}.controls .short{display:inline}.caption p{font-size:13.5px}.controls{left:16px;right:16px;justify-content:center}.controls .sep{display:none}.note{right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 90px)}.lbl em{display:none}}@media (prefers-reduced-motion:reduce){.lbl{transition:none}}*,*::before,*::after{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}.controls button,.controls select{min-height:44px}.controls .project-return{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:2px;background:var(--panel);color:var(--ink);font:10.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;backdrop-filter:blur(6px)}.controls .project-return:hover{border-color:var(--gold)}.controls .project-return:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.exhibit-credit{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 2px);left:50%;transform:translateX(-50%);z-index:2;margin:0;font:9px var(--f-mono);letter-spacing:.035em;color:var(--muted);white-space:nowrap;pointer-events:none;text-shadow:0 1px 4px #000}.note{max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px);overflow:auto;overscroll-behavior:contain}.fallback{z-index:20;align-content:center;gap:14px;background:var(--void)}.fallback p{max-width:520px;margin:0;line-height:1.6}.fallback button{justify-self:center;min-height:44px;padding:10px 18px;border:1px solid var(--gold);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}.fallback button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.is-unavailable #gl,.is-unavailable #labels,.is-unavailable .hud{display:none}.is-preview .top,.is-preview .stagenav,.is-preview .caption,.is-preview .scope,.is-preview .hint,.is-preview .note{display:none!important}.is-preview .controls{left:auto;right:14px;bottom:14px;gap:0}.is-preview .controls>:not(#b-play){display:none!important}.is-preview #b-play{min-width:80px}.is-preview #gl{touch-action:pan-y;cursor:default}.is-preview .exhibit-credit{left:14px;bottom:14px;transform:none}@media(max-width:760px){.stages button{min-width:44px;min-height:44px;display:flex;justify-content:center;align-items:center;padding:8px 4px}.controls button,.controls select{min-width:44px;min-height:44px}.hint{top:calc(env(safe-area-inset-top,0px) + 148px)}.caption{bottom:calc(env(safe-area-inset-bottom,0px) + 124px)}.note{bottom:calc(env(safe-area-inset-bottom,0px) + 116px);max-height:calc(100vh - 148px);max-height:calc(100dvh - 148px)}}