.audio-control{flex-direction:column;align-items:flex-end;gap:.45rem;display:flex}.audio-control button{color:#f6d8e8;min-height:2.75rem;font:inherit;cursor:pointer;background:#05030ac7;border:1px solid #f6d8e857;border-radius:999px;padding:.65rem 1rem;font-size:.82rem;font-weight:650}.audio-control button[aria-pressed=true]{color:#fff;background:#25bfb857;border-color:#43d9e6}.audio-control button:focus-visible{outline-offset:3px;outline:3px solid #43d9e6}.audio-control span{color:#fff;background:#6b174c;border-radius:8px;padding:.45rem .65rem;font-size:.72rem}.intro-overlay{z-index:1;opacity:1;background:#05030ab8;justify-content:center;align-items:center;padding:clamp(1.5rem,6vw,5rem);transition:opacity .9s cubic-bezier(.22,1,.36,1),visibility .9s;display:flex;position:fixed;inset:0}.intro-overlay--entered{visibility:hidden;pointer-events:none;opacity:0}.intro-overlay__content{text-align:center;flex-direction:column;align-items:center;gap:clamp(1.1rem,3vw,1.75rem);max-width:60rem;display:flex}.intro-overlay__subtitle{color:#e3c5dc;letter-spacing:.04em;text-wrap:balance;order:2;max-width:32ch;margin:0;font-size:clamp(.9rem,2vw,1.1rem);line-height:1.5}.intro-overlay h1{color:#f6d8e8;letter-spacing:-.04em;text-wrap:balance;order:1;margin:0;font-size:clamp(3.5rem,12vw,6rem);font-weight:560;line-height:.9}.intro-overlay button{color:#fff2fa;min-width:10.5rem;min-height:3.25rem;font:inherit;letter-spacing:.01em;cursor:pointer;background:#7b3ff23d;border:1px solid #f35ab4;border-radius:999px;order:3;margin-top:.25rem;font-weight:650;transition:background-color .18s ease-out,border-color .18s ease-out,transform .18s ease-out}.intro-overlay button:hover{background:#7b3ff26b;border-color:#43d9e6;transform:translateY(-2px)}.intro-overlay button:focus-visible{outline-offset:4px;outline:3px solid #43d9e6}@media (prefers-reduced-motion:reduce){.intro-overlay{transition-duration:.12s}.intro-overlay button{transition:none}}.node-overlay{z-index:1;bottom:max(4.5rem, calc(env(safe-area-inset-bottom) + 4rem));left:max(1rem, env(safe-area-inset-left));color:#f6d8e8;background:#1a0825e0;border-radius:12px;max-width:min(22rem,100vw - 2rem);padding:1rem 1.15rem;position:fixed}.node-overlay h2{color:#fff;letter-spacing:-.015em;margin:0 0 .4rem;font-size:1.1rem}.node-overlay p{color:#e3c5dc;text-wrap:pretty;max-width:42ch;margin:0;font-size:.88rem;line-height:1.55}@media (hover:none),(pointer:coarse){.node-overlay{right:1rem;bottom:calc(env(safe-area-inset-bottom) + 9rem);left:auto}}.quality-control{color:#f6d8e8;min-height:2.75rem;font:inherit;cursor:pointer;background:#05030ac7;border:1px solid #f6d8e857;border-radius:999px;padding:.65rem 1rem;font-size:.82rem;font-weight:650}.quality-control:focus-visible{outline-offset:3px;outline:3px solid #43d9e6}.utility-controls{z-index:1;top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));flex-direction:column;align-items:flex-end;gap:.45rem;display:flex;position:fixed}@media (width<=48rem){.utility-controls{top:calc(max(1rem, env(safe-area-inset-top)) + 3.5rem);flex-direction:row}}.mode-controls{z-index:1;top:max(1rem, env(safe-area-inset-top));background:#05030ac7;border-radius:999px;gap:.25rem;padding:.3rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}.mode-controls button{color:#d8bad0;min-height:2.75rem;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.6rem 1rem;font-size:.82rem;font-weight:650}.mode-controls button[aria-pressed=true]{color:#fff;background:#7b3ff2}.mode-controls button:focus-visible{outline-offset:2px;outline:3px solid #43d9e6}.controls-help{z-index:1;right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));color:#e3c5dc;background:#05030ac7;border-radius:10px;max-width:min(28rem,100vw - 2rem);padding:.75rem 1rem;font-size:.75rem;line-height:1.45;position:fixed}.controls-help__mobile,.touch-joystick{display:none}.touch-joystick{z-index:1;bottom:max(1.25rem, env(safe-area-inset-bottom));left:max(1.25rem, env(safe-area-inset-left));touch-action:none;background:#05030a94;border:1px solid #f6d8e859;border-radius:50%;width:6.5rem;height:6.5rem;position:fixed}.touch-joystick span{pointer-events:none;background:#f35ab4;border-radius:50%;width:2.3rem;height:2.3rem;position:absolute;inset:calc(50% - 1.15rem)}@media (hover:none),(pointer:coarse){.controls-help{right:1rem;bottom:max(1.25rem, env(safe-area-inset-bottom));left:9rem}.controls-help__desktop{display:none}.controls-help__mobile,.touch-joystick{display:block}}@media (width<=31rem){.mode-controls button{padding-inline:.75rem;font-size:.76rem}}:root{color-scheme:dark;color:#f6d8e8;background:#05030a;font-family:Avenir Next,Avenir,Segoe UI,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,main,.experience-shell{width:100%;height:100%;min-height:100%;margin:0}body{background:radial-gradient(circle at 52% 46%,#1a0825 0,#05030a 42%),#05030a;min-width:320px;overflow:hidden}canvas{touch-action:none;display:block}.boot-loading,.webgl-fallback{text-align:center;background:radial-gradient(circle,#1a0825 0,#05030a 58%),#05030a;flex-direction:column;justify-content:center;align-items:center;padding:clamp(1.5rem,5vw,4rem);display:flex;position:fixed;inset:0}.boot-loading{z-index:1;gap:1rem;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.boot-loading p,.webgl-fallback__status{color:#f6d8e8;letter-spacing:.08em;margin:0;font-size:.875rem}.boot-loading__mark,.webgl-fallback__mark{border:2px solid #7b3ff2;border-top-color:#43d9e6;border-radius:50%;width:2.5rem;height:2.5rem}.boot-loading__mark{animation:1.4s linear infinite drift-loader}.webgl-fallback{gap:.8rem}.webgl-fallback__mark{border-color:#d72b92;margin-bottom:1rem;transform:rotate(45deg)}.webgl-fallback h1{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(2.5rem,11vw,5.5rem);font-weight:600;line-height:.95}.webgl-fallback p{color:#d8bad0;text-wrap:pretty;max-width:58ch;margin:0;line-height:1.65}.experience-summary{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes drift-loader{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.boot-loading__mark{animation:none}}
