:root{--ink: #f5f0e8;--ink-dim: rgba(245, 240, 232, .55);--void: #050308;--accent-warm: #e8a87c;--accent-cool: #8aa5d9;--accent-rose: #d98a9e;--accent-gold: #f0c869;--serif: "Cormorant Garamond", "Times New Roman", serif;--sans: "Manrope", -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;height:100dvh;background:var(--void);color:var(--ink);font-family:var(--sans);overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-warm);color:var(--void)}#preloader{position:fixed;inset:0;background:var(--void);display:flex;align-items:center;justify-content:center;z-index:1000}.preloader-inner{display:flex;flex-direction:column;align-items:center;gap:22px}.preloader-glyph{color:var(--accent-warm)}#preloader-ring{transition:stroke-dashoffset .3s ease}.preloader-label{font-family:var(--serif);font-style:italic;font-weight:300;font-size:15px;letter-spacing:.08em;color:var(--ink-dim)}.dots span{animation:blink 1.4s infinite;opacity:0}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}#opening{position:fixed;inset:0;background:var(--void);z-index:900;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none}#opening.active{pointer-events:auto}#opening-stars{position:absolute;inset:0;width:100%;height:100%}.opening-copy{position:relative;z-index:2;text-align:center;padding:0 24px;max-width:720px}.opening-line{font-family:var(--serif);font-weight:300;font-size:clamp(22px,4vw,38px);line-height:1.4;letter-spacing:.01em;color:var(--ink);opacity:0;margin:0 0 6px}.opening-line em{font-style:italic;color:var(--accent-warm)}.begin-btn{margin-top:56px;padding:16px 46px;background:transparent;border:1px solid rgba(245,240,232,.3);border-radius:999px;color:var(--ink);font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;opacity:0;transition:border-color .5s ease,background .5s ease,letter-spacing .5s ease}.begin-btn:hover{border-color:var(--accent-warm);background:#e8a87c14;letter-spacing:.28em}.begin-btn:focus-visible{outline:2px solid var(--accent-warm);outline-offset:4px}#scene-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:1}#caption-layer{position:fixed;left:0;right:0;bottom:16vh;z-index:50;display:flex;justify-content:center;pointer-events:none;padding:0 24px}.caption-text{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(20px,3.4vw,34px);line-height:1.5;text-align:center;max-width:680px;color:var(--ink);text-shadow:0 2px 24px rgba(0,0,0,.6);opacity:0;white-space:pre-line}#hud{position:fixed;inset:0;z-index:60;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:28px 32px;opacity:0;transition:opacity .8s ease}#hud.visible{opacity:1}.hud-top{display:flex;align-items:center;justify-content:space-between;pointer-events:auto}.hud-title{font-family:var(--serif);font-weight:300;font-size:14px;letter-spacing:.06em;color:var(--ink-dim)}.hud-title span{color:var(--accent-warm);font-style:italic}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid rgba(245,240,232,.18);background:#05030866;backdrop-filter:blur(6px);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .3s ease,background .3s ease}.icon-btn:hover{border-color:var(--accent-warm);background:#e8a87c1a}.icon-btn:focus-visible{outline:2px solid var(--accent-warm);outline-offset:2px}.hud-bottom{display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:auto}.track-info{min-height:16px}.track-name{font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}.scene-progress{display:flex;gap:10px}.progress-dot{width:6px;height:6px;border-radius:50%;background:#f5f0e840;transition:background .5s ease,transform .5s ease}.progress-dot.active{background:var(--accent-warm);transform:scale(1.6)}.scroll-hint{display:flex;flex-direction:column;align-items:center;gap:8px;transition:opacity .6s ease}.scroll-hint span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}.scroll-hint-line{width:1px;height:28px;background:linear-gradient(to bottom,rgba(245,240,232,.6),transparent);animation:hint-pulse 2s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:.3;transform:scaleY(.6);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}}.scroll-hint.hidden{opacity:0;pointer-events:none}@media (prefers-reduced-motion: reduce){.scroll-hint-line{animation:none}.dots span{animation:none;opacity:1}}@media (max-width: 640px){#hud{padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}.hud-title{font-size:11px}.icon-btn{width:42px;height:42px}#caption-layer{bottom:16vh;padding:0 28px}.caption-text{font-size:clamp(18px,5.6vw,26px);line-height:1.45}.begin-btn{padding:15px 40px;font-size:11px}.scene-progress{gap:8px}.progress-dot{width:5px;height:5px}.track-name{font-size:10px;letter-spacing:.08em}}@media (max-width: 380px){.opening-line{font-size:clamp(18px,5.5vw,26px)}.begin-btn{margin-top:40px;padding:13px 32px}}@media (max-height: 480px) and (orientation: landscape){#caption-layer{bottom:10vh}.caption-text{font-size:clamp(16px,3.6vw,22px)}.begin-btn{margin-top:28px}#hud{padding:14px 20px}}
