:root{font:16px system-ui,sans-serif;color:#e4eef5;background:#060d16;color-scheme:dark;--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden}
#app{width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;background:#060d16}
#stage{position:relative;flex:1;min-height:0;overflow:hidden}
#canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
#loader{position:absolute;inset:0;container-type:size;text-align:center;background:#050b14;z-index:10}
#loading-cover{display:block;width:100%;height:100%;object-fit:contain}
.loading-band{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);display:flex;align-items:stretch;flex-direction:column;gap:4px}
@supports(width:1cqw){.loading-band{width:min(calc(100cqw - 32px),calc(100cqh * 1672 / 941 - 32px));bottom:max(6px,calc((100cqh - min(100cqh,100cqw * 941 / 1672)) / 2 - 48px))}}
#notice{max-width:none;font-size:12px;line-height:1.25;background:#050b14e8;color:#e0edf5}
#loading-track{position:relative;height:24px;width:100%}
#loading-flight{display:block;width:100%;height:24px;pointer-events:none}
#progress{position:absolute;width:100%;height:1px;opacity:0;pointer-events:none}
#start{min-height:48px;min-width:120px;align-self:flex-end}
#loader:not(.loading):not(.failed) #notice{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#loader.failed .loading-band{padding:12px;background:#050b14}
[hidden]{display:none!important}h1{font-size:clamp(1.4rem,4vw,2rem);color:#75e5d6;margin:0}h2{font-size:1.2rem;margin:0 0 16px;color:#75e5d6}p{max-width:38rem;line-height:1.5;margin:0}
button{font:inherit;min-height:44px;padding:10px 20px;color:#e4eef5;background:#172f3c;border:1px solid #75e5d6;border-radius:4px;cursor:pointer}button:focus-visible{outline:3px solid #ffc78a;outline-offset:2px}
#rotate{display:none;position:absolute;inset:0;z-index:20;background:#09131f;align-items:center;justify-content:center;text-align:center;padding:24px}
#app-help{max-width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #75e5d6;border-radius:6px;padding:20px;background:#0d1e2c;color:#e4eef5}
#app-help::backdrop{background:#000b}#app-help p{margin:0 0 16px;font-size:14px}#help-close{width:100%}
@media(pointer:coarse) and (orientation:portrait){#rotate{display:flex}}
@media(orientation:portrait){body.touch-ui #rotate{display:flex}}

#compact-hint{display:none;position:absolute;inset:0;z-index:19;background:#09131f;align-items:center;justify-content:center;flex-direction:column;gap:16px;text-align:center;padding:24px}
body.touch-ui #compact-hint:not([hidden]){display:flex}

/* The artwork and instrumentation have separate, non-overlapping tracks. */
#loader{display:grid;grid-template-rows:minmax(0,1fr) 58px}
#loading-cover{min-height:0;grid-row:1}
.loading-band{position:static;transform:none;grid-row:2;width:auto;margin:4px max(16px,var(--safe-right)) max(4px,var(--safe-bottom)) max(16px,var(--safe-left));min-height:48px}
#loader:not(.loading) {grid-template-rows:minmax(0,1fr) 64px}
#loader.failed{grid-template-rows:minmax(0,1fr) auto}
