*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{color:#e8e4df;background:#0e0e0e;width:100%;height:100%;font-family:Georgia,Times New Roman,serif;overflow:hidden}#app{width:100%;height:100%;position:relative}.loading-screen{z-index:20;background:#0e0e0e;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .8s;display:flex;position:absolute;inset:0}.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:#e8e4df59;opacity:0;animation:.6s 1.4s forwards node-appear,2.4s ease-in-out 2s infinite node-pulse}.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}@keyframes trace-draw{to{stroke-dashoffset:0}}@keyframes node-appear{to{opacity:1}}@keyframes node-pulse{0%,to{fill:#e8e4df40}50%{fill:#e8e4df8c}}@keyframes title-emerge{to{color:#e8e4df66}}.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)}}.trace-overlay{pointer-events:none;opacity:0;transition:opacity .6s;position:absolute;inset:0}.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}.play-gate{z-index:9;cursor:pointer;color:#e8e4df99;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;transition:color .3s;display:flex;position:absolute;inset:0}.play-gate:hover,.play-gate:focus-visible{color:#e8e4dfe6}.play-gate:focus-visible{outline-offset:-2px;outline:2px solid #e8e4df99}.play-gate-icon{width:clamp(72px,12vw,112px);height:auto}.play-gate-icon circle{fill:none;stroke:currentColor;stroke-width:1.2px;opacity:.3;transition:opacity .3s}.play-gate:hover .play-gate-icon circle,.play-gate:focus-visible .play-gate-icon circle{opacity:.5}.play-gate-icon polygon{fill:currentColor;opacity:.7}.play-gate-label{letter-spacing:.15em;text-transform:lowercase;color:#e8e4df59;margin-top:.75rem;font-family:Lora,serif;font-size:clamp(.875rem,2vw,1.125rem);font-style:italic;display:block}.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}.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,.trace-overlay{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:#e8e4df66;animation:none}.loading-screen,.play-gate,.play-gate-icon circle{transition:none}.transition-loader:after{animation:none}}
