*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{color:#e8e4df;background:#000;justify-content:center;align-items:center;width:100%;height:100%;font-family:Georgia,Times New Roman,serif;display:flex;overflow:hidden}#app{aspect-ratio:16/9;width:min(100%,177.778vh);position:relative;overflow:hidden}.loading-screen{z-index:20;width:100%;height:100%;font:inherit;color:inherit;cursor:default;background:#0e0e0e;border:none;justify-content:center;align-items:center;padding:0;transition:opacity .8s;display:flex;position:absolute;inset:0}.loading-screen.ready{cursor:pointer}.loading-screen.ready:focus-visible{outline-offset:-2px;outline:2px solid #e8e4df66}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-trace{flex-direction:column;align-items:center;gap:1.25rem;display:flex}.loading-svg{width:clamp(160px,35vw,280px);height:auto;overflow:visible}.trace-path{fill:none;stroke:#e8e4df40;stroke-width:.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220px;animation:2.8s cubic-bezier(.4,0,.2,1) forwards trace-draw}.trace-glow{fill:none;stroke:#e8e4df0f;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220px;filter:blur(3px);animation:2.8s cubic-bezier(.4,0,.2,1) forwards trace-draw}.trace-node{fill:#f5e6c899;opacity:0;filter:drop-shadow(0 0 3px #fff0c866);animation:.6s 1.4s forwards node-appear,2.4s ease-in-out 2s infinite node-glow}.loading-title{letter-spacing:.3em;color:#e8e4df00;font-family:Lora,Georgia,serif;font-size:clamp(.75rem,1.2vw,1rem);font-style:italic;font-weight:400;animation:1.8s 1.2s forwards title-emerge}.loading-prompt{letter-spacing:.15em;text-transform:lowercase;color:#e8e4df00;align-items:center;gap:.5em;font-family:Lora,serif;font-size:clamp(.75rem,1.1vw,.875rem);font-style:italic;font-weight:400;transition:color .8s;display:flex}.loading-play-icon{fill:currentColor;stroke:none;width:1em;height:1em}.loading-prompt.visible{color:#e8e4df8c}.loading-screen.ready:hover .loading-prompt.visible,.loading-screen.ready:focus-visible .loading-prompt.visible{color:#e8e4dfbf}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes node-appear{to{opacity:1}}@keyframes node-glow{0%,to{fill:#f5e6c866;filter:drop-shadow(0 0 2px #fff0c84d)}50%{fill:#fff5dccc;filter:drop-shadow(0 0 6px #fff0c899)}}@keyframes title-emerge{to{color:#e8e4df8c}}.scene-stage{background:radial-gradient(at 50% 40%,#1a1816,#12100e);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scene-canvas{width:100%;height:100%;position:absolute;inset:0}.scene-stage.buffering:after{content:"";z-index:8;pointer-events:none;border:2px solid #e8e4df26;border-top-color:#e8e4df99;border-radius:50%;width:32px;height:32px;margin:-16px 0 0 -16px;animation:.8s linear infinite buffer-spin;position:absolute;top:50%;left:50%}@keyframes buffer-spin{to{transform:rotate(360deg)}}.effects-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.narration-layer{pointer-events:none;position:absolute;inset:0}.narration-line:not(.narration-line--positioned){text-align:center;position:absolute;bottom:10%;left:5%;right:5%}.narration-line{letter-spacing:.03em;text-align:center;color:#e8e4dfe0;text-shadow:0 0 20px #e8e4df26,0 0 40px #e8e4df0f,0 1px 3px #0009;filter:blur();opacity:0;font-family:Lora,Georgia,serif;font-size:clamp(1rem,2.5vw,1.75rem);font-style:italic;font-weight:400;line-height:1.7}.transition-loader{z-index:12;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.transition-loader:after{content:"";border:2px solid #e8e4df26;border-top-color:#e8e4df99;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite buffer-spin}.overlay-controls{bottom:max(3%, env(safe-area-inset-bottom,0px));z-index:10;padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;align-items:center;gap:.75rem;display:flex;position:absolute;left:0;right:0}.progress-dots{gap:0;display:flex}.progress-dot{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:relative}.progress-dot:after{content:"";background:#ffffff4d;border-radius:50%;width:8px;height:8px;transition:background .3s}.progress-dot:hover:after{background:#fff9}.progress-dot:focus-visible{outline-offset:-2px;outline:2px solid #ffffff73}.progress-dot.active:after{background:#ffffffe6}.control-buttons{gap:.75rem;display:flex}.control-buttons button{-webkit-backdrop-filter:blur(10px);color:#e8e4dfe6;cursor:pointer;background:#08080899;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .25s,border-color .25s,box-shadow .25s,opacity .25s;display:flex}.control-buttons button:hover:not(:disabled),.control-buttons button:focus-visible:not(:disabled){background:#1e1c19bf;border-color:#ffffff38}.control-buttons button:focus-visible:not(:disabled){outline-offset:3px;outline:2px solid #ffffff73}.control-buttons button:disabled,.control-buttons button[aria-disabled=true]{opacity:.3;cursor:default}.caption-layer{text-align:center;pointer-events:none;z-index:5;max-width:80%;position:absolute;bottom:max(12%,110px);left:50%;transform:translate(-50%)}.caption-text{color:#e8e4df;background:#000000d9;border-radius:4px;margin-bottom:.25em;padding:.4em .8em;font-size:clamp(.875rem,2vw,1.25rem);line-height:1.5}.btn-pause .icon-play,.btn-pause.paused .icon-pause{display:none}.btn-pause.paused .icon-play{display:flex}.btn-mute .icon-muted,.btn-mute.muted .icon-on{display:none}.btn-mute.muted .icon-muted{display:flex}.btn-captions .icon-cc{display:none}.btn-captions.cc-on .icon-cc{display:flex}.btn-captions.cc-on .icon-cc-off{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.narration-line{transition:opacity .3s}.caption-text{transition:none}.scene-stage.buffering:after{animation:none}.trace-path,.trace-glow{stroke-dashoffset:0;animation:none}.trace-node{opacity:1;animation:none}.loading-title{color:#e8e4df8c;animation:none}.loading-screen,.loading-prompt{transition:none}.transition-loader:after{animation:none}}
