:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,SF Pro SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;font-synthesis:none;--ink: #f4f6f8;--muted: rgba(232, 237, 243, .6);--glass: rgba(17, 21, 28, .68);--stroke: rgba(255, 255, 255, .12);--accent: #b6f36b}*{box-sizing:border-box}html,body,#app,#canvas-root{width:100%;height:100%;margin:0}html{background:#090b0f;-webkit-tap-highlight-color:transparent}body{position:fixed;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;inset:0;overflow:hidden;overscroll-behavior:none;color:var(--ink);background:radial-gradient(circle at 50% 24%,rgba(57,71,90,.28),transparent 46%),#090b0f}button{font:inherit}#app{position:relative;isolation:isolate}#canvas-root{position:absolute;inset:0;cursor:grab;touch-action:none}#canvas-root:active{cursor:grabbing}#canvas-root canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,rgba(2,4,7,.28) 100%),linear-gradient(180deg,rgba(4,7,10,.34),transparent 18%,transparent 78%,rgba(4,7,10,.42))}.topbar{position:absolute;z-index:3;top:max(22px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:13px;filter:drop-shadow(0 2px 14px rgba(0,0,0,.35))}.brand-mark{position:relative;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.17);border-radius:50%;background:#0c101547;backdrop-filter:blur(12px)}.brand-mark span{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #b6f36b99}.brand-mark span:nth-child(1){transform:translate(-7px,3px)}.brand-mark span:nth-child(2){transform:translate(6px,-6px);opacity:.7}.brand-mark span:nth-child(3){transform:translate(7px,7px);opacity:.45}.brand h1{margin:0 0 2px;font-size:15px;line-height:1.25;font-weight:600;letter-spacing:.015em}.brand p{margin:0;color:var(--muted);font-size:10px;line-height:1.2;letter-spacing:.16em;text-transform:uppercase}.actions{display:flex;gap:8px;pointer-events:auto}.icon-button{width:39px;height:39px;display:grid;place-items:center;padding:0;color:#ffffffd6;border:1px solid var(--stroke);border-radius:12px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.icon-button:hover{transform:translateY(-1px);background:#222933d6;border-color:#ffffff38}.icon-button:active{transform:translateY(0) scale(.96)}.icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.scene-meta{position:absolute;z-index:3;left:max(24px,env(safe-area-inset-left));bottom:max(25px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;padding:9px 12px;color:#ecf0f5ab;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0b0e138a;backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);font-size:10px;letter-spacing:.02em;pointer-events:none}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px #b6f36bbf}.meta-divider{width:1px;height:10px;background:#ffffff29}.hint{position:absolute;z-index:3;right:max(24px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:11px;color:#ebf0f673;font-size:10px;letter-spacing:.04em;pointer-events:none;transition:opacity .5s ease}.hint i{width:3px;height:3px;border-radius:50%;background:#ffffff38}.mobile-hint{display:none}.toast{position:absolute;z-index:12;left:50%;bottom:max(76px,calc(env(safe-area-inset-bottom) + 64px));max-width:min(360px,calc(100% - 34px));padding:10px 14px;color:#f5f7fae0;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#12161deb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 30px #00000047;font-size:11px;line-height:1.55;text-align:center;opacity:0;transform:translate(-50%,8px);transition:opacity .24s ease,transform .24s ease;pointer-events:none}.toast.is-visible{opacity:1;transform:translate(-50%)}.loading,.error{position:absolute;z-index:10;inset:0;display:grid;place-items:center;padding:24px;background:#07090da8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity .55s ease,visibility .55s ease}.loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-card,.error-card{width:min(330px,100%);text-align:center}.loading-orbit{position:relative;width:66px;height:66px;margin:0 auto 24px;border:1px solid rgba(255,255,255,.09);border-radius:50%}.loading-orbit:before,.loading-orbit:after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.07);border-radius:50%}.loading-orbit:after{inset:21px;background:#b6f36b12}.loading-orbit span{position:absolute;top:8px;left:28px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px #b6f36bb3;transform-origin:4.5px 25px;animation:orbit 2.2s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}.loading-title{margin:0 0 6px;font-size:15px;font-weight:500;letter-spacing:.02em}.loading-subtitle{min-height:17px;margin:0 0 22px;color:var(--muted);font-size:11px}.progress-track{height:2px;overflow:hidden;border-radius:99px;background:#ffffff17}.progress-bar{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#85d64c,var(--accent));box-shadow:0 0 12px #b6f36b59;transition:width .22s ease}.progress-value{margin:9px 0 0;color:#ffffff61;font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.1em}.error{background:#07090de0}.error[hidden]{display:none}.error-card{padding:28px;border:1px solid var(--stroke);border-radius:18px;background:#14181feb}.error-icon{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 16px;color:#ffb0a6;border:1px solid rgba(255,143,128,.3);border-radius:50%}.error-card h2{margin:0 0 8px;font-size:17px;font-weight:500}.error-card p{margin:0 0 20px;color:var(--muted);font-size:12px;line-height:1.7}.error-card button{padding:9px 18px;color:#12160e;border:0;border-radius:9px;background:var(--accent);font-weight:600;cursor:pointer}@media(max-width:680px){.topbar{top:max(16px,env(safe-area-inset-top));left:17px;right:17px}.brand-mark{width:31px;height:31px}.brand h1{font-size:14px}.brand p{font-size:9px}.icon-button{width:37px;height:37px;border-radius:11px}.scene-meta{left:17px;bottom:max(17px,env(safe-area-inset-bottom))}.hint{right:50%;bottom:max(17px,env(safe-area-inset-bottom));transform:translate(50%);white-space:nowrap}.desktop-hint{display:none}.mobile-hint{display:inline}.scene-meta{max-width:calc(100% - 34px)}.loading-card{transform:translateY(-4vh)}}@media(prefers-reduced-motion:reduce){.loading-orbit span{animation:none}*{scroll-behavior:auto!important}}.control-bar{position:absolute;z-index:4;left:50%;bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:5px;padding:5px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:#0b0e13b3;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 10px 34px #00000038;transform:translate(-50%)}.mode-chip,.control-button{height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:0;border-radius:10px;white-space:nowrap;font-size:10px;letter-spacing:.03em}.mode-chip{color:#f4f7fab8;background:#ffffff0b}.mode-chip-icon{width:7px;height:7px;border:1px solid rgba(182,243,107,.8);border-radius:50%;box-shadow:0 0 8px #b6f36b61}.control-button{color:#f4f7fac2;background:transparent;cursor:pointer;transition:background .16s ease,color .16s ease}.control-button:hover,.control-button[aria-expanded=true]{color:#fff;background:#ffffff14}.control-button strong{color:var(--accent);font-weight:500}.popover{position:absolute;z-index:8;min-width:204px;padding:7px;visibility:hidden;opacity:0;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#0f1319f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 16px 46px #0000005c;transform:translateY(7px) scale(.98);transform-origin:bottom center;transition:opacity .16s ease,transform .16s ease,visibility .16s}.popover.is-open{visibility:visible;opacity:1;transform:translateY(0) scale(1)}.quality-pop{left:50%;bottom:max(71px,calc(env(safe-area-inset-bottom) + 61px));translate:-50% 0}.more-pop{right:max(24px,env(safe-area-inset-right));bottom:max(71px,calc(env(safe-area-inset-bottom) + 61px))}.popover-title{margin:4px 8px 7px;color:#eef2f66b;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.quality-option,.menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 10px;color:#f5f7fac7;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer}.quality-option:hover,.menu-item:hover,.quality-option.is-active{color:#fff;background:#ffffff12}.quality-option.is-active{box-shadow:inset 2px 0 0 var(--accent)}.quality-option span,.menu-item>span:first-child{font-size:11px}.quality-option small{color:#eef2f666;font-size:9px;text-align:right}.menu-item kbd{min-width:18px;padding:2px 5px;color:#eef2f661;border:1px solid rgba(255,255,255,.1);border-radius:5px;background:#ffffff09;font-family:inherit;font-size:8px;text-align:center}.menu-state{color:#eef2f661;font-size:9px}.menu-item[aria-pressed=true] .menu-state{color:var(--accent)}.menu-separator{height:1px;margin:5px 8px;background:#ffffff14}.stats-panel{position:absolute;z-index:4;top:max(76px,calc(env(safe-area-inset-top) + 58px));right:max(24px,env(safe-area-inset-right));width:206px;padding:9px 11px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#0b0e13ad;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:9px;pointer-events:none}.stats-panel[hidden]{display:none}.stats-panel div{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.stats-panel span{color:#eef2f66b}.stats-panel strong{overflow:hidden;color:#f5f7fad6;font-weight:500;text-align:right;text-overflow:ellipsis;white-space:nowrap}@media(max-width:780px){.control-bar{bottom:max(13px,env(safe-area-inset-bottom))}.scene-meta{display:none}.hint{bottom:max(62px,calc(env(safe-area-inset-bottom) + 52px))}.quality-pop{bottom:max(61px,calc(env(safe-area-inset-bottom) + 52px))}.more-pop{right:17px;bottom:max(61px,calc(env(safe-area-inset-bottom) + 52px))}.stats-panel{right:17px;top:max(68px,calc(env(safe-area-inset-top) + 56px))}}.reveal-ring{position:absolute;z-index:2;left:50%;top:50%;width:min(82vmin,900px);aspect-ratio:1;pointer-events:none;opacity:0;border-radius:50%;background:radial-gradient(circle,transparent 0 55%,rgba(64,184,255,.02) 61%,rgba(75,199,255,.2) 67%,rgba(145,232,255,.86) 69.4%,rgba(255,255,255,.38) 70.1%,transparent 72%);filter:blur(1.5px) drop-shadow(0 0 18px rgba(48,176,255,.75));transform:translate(-50%,-50%) scale(.12);will-change:transform,opacity}#nl-badge-frame,iframe[title="Powered by Netlify"]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}.scene-meta{display:none!important}.load-options{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);text-align:left}.load-options[hidden]{display:none!important}.load-options>p{margin:0 0 10px;color:#eef2f67a;font-size:9px;letter-spacing:.12em;text-align:center;text-transform:uppercase}.load-option{width:100%;display:flex;flex-direction:column;gap:2px;margin-top:7px;padding:10px 12px;color:#f5f7fae6;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#ffffff0b;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.load-option:hover{transform:translateY(-1px);border-color:#b6f36b73;background:#b6f36b12}.load-option strong{font-size:11px;font-weight:500}.load-option small{color:#eef2f66b;font-size:9px}.load-option-fast strong{color:var(--accent)}.background-progress{position:absolute;z-index:4;right:max(24px,env(safe-area-inset-right));bottom:max(80px,calc(env(safe-area-inset-bottom) + 70px));display:flex;align-items:center;gap:8px;padding:8px 11px;color:#eef2f694;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#0b0e13a3;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:9px;pointer-events:none}.background-progress[hidden]{display:none!important}.background-progress strong{color:var(--accent);font-weight:500;font-variant-numeric:tabular-nums}.background-progress-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px #b6f36bb3;animation:background-pulse 1.4s ease-in-out infinite}@keyframes background-pulse{50%{opacity:.25;transform:scale(.75)}}@media(max-width:780px){.background-progress{right:17px;bottom:max(62px,calc(env(safe-area-inset-bottom) + 52px))}}.enter-button{width:100%;margin-top:18px;padding:11px 16px;color:#10160b;border:0;border-radius:10px;background:var(--accent);font-size:12px;font-weight:600;cursor:pointer;transition:opacity .18s ease,transform .18s ease}.enter-button:hover:not(:disabled){transform:translateY(-1px)}.enter-button:disabled{opacity:.35;cursor:wait}.enter-hint{margin:8px 0 0;color:#eef2f65c;font-size:9px;line-height:1.5}
