:root{color-scheme:light;font-family:Avenir Next,Segoe UI Variable,Segoe UI,sans-serif;font-synthesis:none;--paper: #f8f1e5;--paper-muted: rgba(248, 241, 229, .64);--ink: #24312b;--dock: rgba(20, 31, 28, .92);--dock-border: rgba(255, 247, 229, .14);--accent: #e8b866;--accent-ink: #24312b;--focus: #f7cd88}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 53% 35%,rgba(255,247,229,.98) 0%,rgba(235,221,196,.66) 29%,transparent 58%),radial-gradient(ellipse at 49% 78%,#cbbba2,#9c9181 41%,#68675f);transition:background 1.2s ease}body[data-theme=night]{color-scheme:dark;--paper: #e5e8e2;--paper-muted: rgba(229, 232, 226, .6);background:radial-gradient(circle at 55% 38%,rgba(67,83,84,.62) 0%,transparent 41%),radial-gradient(ellipse at 52% 82%,#26383a,#172527 46%,#101819)}#app{position:relative;isolation:isolate}#app:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;content:"";background:linear-gradient(180deg,rgba(29,25,19,.1),transparent 20%,transparent 76%,rgba(29,25,19,.18)),radial-gradient(ellipse at center,transparent 56%,rgba(27,26,21,.16) 100%)}#scene{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}.brand{position:absolute;top:clamp(22px,3.4vw,46px);left:clamp(24px,3.8vw,58px);z-index:4;display:flex;gap:13px;align-items:center;color:var(--paper);text-shadow:0 1px 16px rgba(19,23,19,.2);pointer-events:none}.brand-mark{width:34px;height:34px;opacity:.9}.brand h1{margin:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:clamp(21px,2vw,29px);font-weight:500;line-height:.98;letter-spacing:-.035em}.brand p{margin:6px 0 0;color:var(--paper-muted);font-size:9px;font-weight:600;line-height:1;letter-spacing:.18em;text-transform:uppercase}.mode-toggle{position:absolute;top:clamp(22px,3.4vw,46px);right:clamp(24px,3.8vw,58px);z-index:5;display:flex;min-width:92px;height:40px;padding:0 15px 0 11px;align-items:center;justify-content:center;gap:8px;color:var(--paper);font:600 11px/1 Avenir Next,Segoe UI,sans-serif;letter-spacing:.08em;background:#1c25218c;border:1px solid rgba(255,247,230,.21);border-radius:999px;box-shadow:0 8px 28px #231a131f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.mode-toggle:hover{background:#1c2521b8;border-color:#fff7e661;transform:translateY(-1px)}.mode-icon{position:relative;display:grid;width:18px;height:18px;place-items:center}.mode-icon svg{position:absolute;width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;transition:opacity .5s ease,transform .5s ease}.moon-icon{opacity:0;transform:rotate(-30deg) scale(.7)}body[data-theme=night] .sun-icon{opacity:0;transform:rotate(70deg) scale(.7)}body[data-theme=night] .moon-icon{opacity:1;transform:rotate(0) scale(1)}.control-dock{position:absolute;bottom:clamp(28px,4.2vh,44px);left:50%;z-index:5;display:flex;width:min(520px,calc(100vw - 40px));min-height:76px;padding:12px 18px 12px 12px;align-items:center;gap:17px;color:var(--paper);background:var(--dock);border:1px solid var(--dock-border);border-radius:23px;box-shadow:0 18px 44px #19161138,inset 0 1px #fff8e912;-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1);transform:translate(-50%)}.play-button{display:grid;width:52px;height:52px;flex:0 0 52px;padding:0;place-items:center;color:var(--accent-ink);background:var(--accent);border:0;border-radius:50%;box-shadow:0 6px 15px #00000029,inset 0 1px #ffffff73;cursor:pointer;transition:transform .16s ease,filter .16s ease}.play-button:hover{filter:brightness(1.07);transform:scale(1.035)}.play-button:active{transform:scale(.97)}.play-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.play-symbol{display:none;margin-left:2px}.play-button.is-paused .pause-symbol{display:none}.play-button.is-paused .play-symbol{display:block}.control-divider{width:1px;height:33px;flex:0 0 1px;background:#fff7e621}.speed-control{display:flex;min-width:0;flex:1;flex-direction:column;gap:9px}.control-heading{color:var(--paper-muted);font-size:9px;font-weight:700;line-height:1;letter-spacing:.17em;text-transform:uppercase}.speed-row{display:flex;align-items:center;gap:13px}input[type=range]{width:100%;height:16px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{width:100%;height:3px;background:linear-gradient(90deg,var(--accent),rgba(255,247,230,.22));border-radius:99px}input[type=range]::-moz-range-track{width:100%;height:3px;background:#fff7e638;border-radius:99px}input[type=range]::-moz-range-progress{height:3px;background:var(--accent);border-radius:99px}input[type=range]::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5.5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--paper);border:3px solid var(--accent);border-radius:50%;box-shadow:0 2px 7px #00000040}input[type=range]::-moz-range-thumb{width:10px;height:10px;background:var(--paper);border:3px solid var(--accent);border-radius:50%;box-shadow:0 2px 7px #00000040}input[type=range]:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}#speed-value{width:38px;color:var(--paper);font-size:11px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.03em;text-align:right}.reset-button{display:flex;min-width:69px;padding:8px 0 8px 2px;align-items:center;gap:7px;color:var(--paper-muted);font:600 11px/1 Avenir Next,Segoe UI,sans-serif;background:transparent;border:0;cursor:pointer;transition:color .16s ease}.reset-button:hover{color:var(--paper)}.reset-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.service-status{position:absolute;bottom:clamp(120px,15.4vh,145px);left:50%;z-index:4;display:flex;height:29px;padding:0 13px;align-items:center;gap:8px;color:var(--paper);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;background:#1c252161;border:1px solid rgba(255,247,230,.13);border-radius:99px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(-50%)}.service-light{width:5px;height:5px;background:#e6bc70;border-radius:50%;box-shadow:0 0 0 3px #e6bc7024;transition:background .2s ease}.service-status.is-dwelling .service-light{background:#f5d28e;animation:pulse 1.2s ease-in-out infinite}.service-status.is-paused .service-light{background:#f8f1e573;box-shadow:none}@keyframes pulse{50%{box-shadow:0 0 0 5px #f5d28e00}}.camera-hint{position:absolute;right:clamp(25px,3.8vw,58px);bottom:clamp(31px,4.2vh,48px);z-index:4;margin:0;color:var(--paper-muted);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}.camera-hint span{margin:0 4px;opacity:.6}.loading-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;color:#4c473e;background:#d8cbb7;opacity:1;transition:opacity .7s cubic-bezier(.22,1,.36,1),visibility .7s}.loading-screen.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.loading-screen.is-error{padding:28px;color:#4c3228;text-align:center;background:#e5d3c1}.loading-screen.is-error .loading-emblem{border-color:#6c412d57}.loading-screen.is-error .loading-emblem span{width:16px;animation:none;transform:rotate(45deg);background:#875743}.loading-screen.is-error small{max-width:540px;color:#735545;font-size:11px;line-height:1.6}.loading-screen p{margin:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:14px;letter-spacing:.02em}.loading-emblem{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(64,58,49,.24);border-radius:50%}.loading-emblem span{width:18px;height:1px;background:#7b6b57;animation:loading-line 1.1s ease-in-out infinite}@keyframes loading-line{50%{width:5px}}@media(max-width:820px){.brand p,.camera-hint{display:none}.control-dock{width:calc(100vw - 24px)}.service-status{bottom:125px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
