*{margin:0;padding:0;box-sizing:border-box}:root{--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#e8f4ff;font-family:Segoe UI,PingFang SC,Microsoft YaHei,SF Pro Display,sans-serif;color:#0c1a2e;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.mobile-controls{display:none}@media(pointer:coarse)and (min-width:700px){.mobile-controls{position:fixed;inset:auto max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));z-index:1200;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.mobile-joystick{position:relative;width:142px;height:142px;border-radius:50%;background:#07182e6b;border:1px solid rgba(125,211,252,.4);box-shadow:0 12px 36px #02081747,inset 0 0 30px #38bdf81a;touch-action:none;user-select:none;pointer-events:auto}.mobile-joystick[hidden],.mobile-joystick.is-hidden{display:none}.mobile-joystick.is-active{border-color:#67e8f9e6}.mobile-joystick-ring{position:absolute;inset:20px;border:1px solid rgba(186,230,253,.34);border-radius:50%}.mobile-joystick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:50%;transform:translate3d(-50%,-50%,0);background:linear-gradient(145deg,#67e8f9,#0284c7);box-shadow:0 0 24px #22d3ee8c;pointer-events:none}.mobile-joystick-label{position:absolute;left:50%;top:8px;transform:translate(-50%);color:#e0f2fee6;font:600 11px/1 system-ui,sans-serif;letter-spacing:.12em;pointer-events:none}.mobile-lift-controls{display:flex;flex-direction:column;gap:12px;pointer-events:auto}.mobile-lift-button{width:76px;min-height:62px;border:1px solid rgba(125,211,252,.5);border-radius:18px;color:#e0f2fe;background:#07182e9e;box-shadow:0 10px 24px #02081747,inset 0 0 18px #38bdf814;backdrop-filter:blur(12px);font:700 22px/1 system-ui,sans-serif;touch-action:none;user-select:none}.mobile-lift-button span{display:block;margin-top:7px;font-size:12px;letter-spacing:.08em}.mobile-lift-button:active,.mobile-lift-button.is-active{border-color:#67e8f9;background:#0284c7b8;transform:scale(.95)}}#c{display:block;width:100%;height:100%;background:#d6ecff;transform:translateZ(0);will-change:contents;touch-action:none;user-select:none;-webkit-user-select:none}#loader{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#eaf5ff;overflow:hidden;isolation:isolate;contain:layout style paint;transform:translateZ(0);pointer-events:none}.loader-aurora{position:absolute;inset:-10%;background:radial-gradient(ellipse 50% 40% at 30% 30%,rgba(34,211,238,.28),transparent 55%),radial-gradient(ellipse 45% 50% at 75% 65%,rgba(14,165,233,.2),transparent 50%),linear-gradient(165deg,#f0f9ff,#e0f2fe 45%,#dbeafe);animation:loader-aurora-drift 14s ease-in-out infinite alternate;pointer-events:none;z-index:0;will-change:transform;transform:translateZ(0)}@keyframes loader-aurora-drift{0%{transform:translate3d(-1.5%,-.8%,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.03)}}.loader-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(14,165,233,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.05) 1px,transparent 1px);background-size:56px 56px;opacity:.55;pointer-events:none;z-index:0}#loader.loader-busy .loader-aurora{opacity:.95;animation-duration:10s}#loader.loader-busy .loader-ring{animation-duration:10s}#loader.loader-busy .loader-css-spin{animation-duration:.85s}#loader.loader-busy .loader-status{color:#0e7490;animation:loader-status-pulse 1.6s ease-in-out infinite}#loader.loader-busy .loader-bar:after{opacity:1}.loader-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:min(360px,calc(100vw - 48px));text-align:center;perspective:600px;transform:translateZ(0)}.loader-orb-wrap{position:relative;width:140px;height:140px;display:grid;place-items:center;margin-bottom:28px}.loader-ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid transparent;background:linear-gradient(#eaf5ff,#eaf5ff) padding-box,conic-gradient(from 0deg,transparent 0%,#22d3ee 25%,transparent 50%,#0ea5e9 75%,transparent 100%) border-box;opacity:.9;box-shadow:0 0 40px #22d3ee33,inset 0 0 30px #0ea5e914;animation:loader-ring-spin 12s linear infinite;will-change:transform;transform:translateZ(0)}@keyframes loader-ring-spin{to{transform:rotate(360deg)}}.loader-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;border:1px dashed rgba(14,165,233,.28);animation:loader-ring-spin 20s linear infinite reverse}.loader-orb{position:relative;z-index:1;display:grid;place-items:center;width:72px;height:72px;box-shadow:0 0 28px #22d3ee47;border-radius:50%}.loader-css-spin{position:relative;width:56px;height:56px;border-radius:50%;animation:loader-ring-spin 1.1s linear infinite;will-change:transform;transform:translateZ(0)}.loader-css-spin i{position:absolute;inset:0;border-radius:50%;border:2.5px solid transparent;border-top-color:#22d3ee;border-right-color:#0ea5e959}.loader-css-spin i:nth-child(2){inset:8px;border-top-color:#0ea5e9;border-right-color:transparent;animation:loader-ring-spin 1.6s linear infinite reverse}.loader-css-spin i:nth-child(3){inset:16px;border-top-color:#67e8f9;opacity:.85;animation:loader-ring-spin .9s linear infinite}.loader-particle{position:absolute;width:5px;height:5px;border-radius:50%;background:#67e8f9;box-shadow:0 0 8px #22d3eea6;z-index:2;animation:loader-particle-float 2.4s ease-in-out infinite;will-change:transform;transform:translateZ(0)}.loader-particle.p1{top:8%;left:48%;animation-delay:0s}.loader-particle.p2{top:28%;right:6%;animation-delay:.25s}.loader-particle.p3{bottom:18%;right:16%;animation-delay:.5s}.loader-particle.p4{bottom:8%;left:42%;animation-delay:.75s}.loader-particle.p5{top:36%;left:4%;animation-delay:1s}.loader-particle.p6{top:62%;left:12%;width:3px;height:3px;opacity:.7;animation-delay:1.25s}@keyframes loader-particle-float{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,8px,0)}}.loader-brand{display:flex;justify-content:center;font-size:clamp(22px,4.5vw,28px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#0369a1;margin-bottom:6px;transform-style:preserve-3d}.loader-brand .char{display:inline-block;background:linear-gradient(135deg,#0284c7,#06b6d4,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(14,165,233,.25)}.loader-brand .char.space{width:.35em;background:none;color:transparent}.loader-sub{font-size:13px;color:#5b7a96;letter-spacing:.28em;margin-bottom:28px}.loader-meter{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin-bottom:14px}.loader-bar{position:relative;height:3px;border-radius:999px;background:#0ea5e91f;overflow:hidden}.loader-bar:after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:36%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:.55;animation:loader-bar-sheen 1.8s ease-in-out infinite;pointer-events:none;will-change:transform}@keyframes loader-bar-sheen{0%{transform:translateZ(0)}to{transform:translate3d(320%,0,0)}}.loader-bar-fill{position:absolute;inset:0;width:100%;transform:scaleX(0);transform-origin:left center;border-radius:inherit;background:linear-gradient(90deg,#0ea5e9,#22d3ee 55%,#67e8f9);box-shadow:0 0 12px #22d3ee8c;will-change:transform}.loader-bar-glow{position:absolute;top:50%;left:0;width:24px;height:12px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(34,211,238,.35) 45%,transparent 70%);transform:translate(-50%,-50%);will-change:transform;pointer-events:none}.physics-fps-root{position:fixed;top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));z-index:99;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.physics-fps-badge{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;border:1px solid rgba(14,165,233,.35);border-radius:14px;background:linear-gradient(135deg,#ffffffe6,#ecfaffcc);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#0c4a6e;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13.5px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 8px 24px -4px #07598524,inset 0 1px 1px #fffffff2,inset 0 -2px 6px -1px #0ea5e91a;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s ease,box-shadow .2s ease,background .2s ease;user-select:none;font-variant-numeric:tabular-nums}.physics-fps-badge:hover{transform:translateY(-2px) scale(1.02);border-color:#06b6d4d1;background:linear-gradient(135deg,#fffffffa,#effcffe6);color:#0284c7;box-shadow:0 12px 32px -4px #06b6d440,inset 0 1px 2px #fffffffa,0 0 0 1px #22d3ee40}.physics-fps-badge:active{transform:translateY(0) scale(.97);box-shadow:0 4px 12px #0ea5e926;transition-duration:80ms}.physics-fps-badge[aria-expanded=true]{border-color:#06b6d4e6;box-shadow:0 8px 24px -4px #06b6d440,inset 0 1px 2px #fffffffa,0 0 0 1px #22d3ee4d}.physics-fps-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;flex:0 0 auto;transition:background .3s ease,box-shadow .3s ease}.physics-fps-dot.warn{background:#f59e0b;box-shadow:0 0 8px #f59e0b}.physics-fps-dot.error{background:#ef4444;box-shadow:0 0 8px #ef4444}.physics-fps-dot.throttled{background:#38bdf8;box-shadow:0 0 8px #38bdf8}.physics-fps-num{font-weight:800;font-size:14px;min-width:18px;text-align:right;color:#0284c7}.physics-fps-unit{font-size:11px;font-weight:700;color:#0369a1;opacity:.9}.physics-fps-divider{color:#0ea5e966;font-weight:400;margin:0 1px}.physics-fps-ms{font-size:12px;font-weight:600;color:#0369a1;opacity:.8}@media(max-width:600px){.physics-fps-divider,.physics-fps-ms{display:none}}.physics-perf-overlay{pointer-events:auto;min-width:250px;padding:12px 14px;border:1px solid rgba(14,165,233,.4);border-radius:14px;background:#06111feb;color:#d9fff7;box-shadow:0 16px 36px #00000059,0 0 1px #38bdf84d;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);user-select:none}.physics-perf-overlay[hidden]{display:none!important}.physics-perf-overlay .perf-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(56,189,248,.2);color:#70efd2;font-weight:700;letter-spacing:.04em}.physics-perf-overlay .perf-title-kbd{display:inline-block;padding:1px 5px;border:1px solid rgba(112,239,210,.4);border-radius:4px;background:#70efd21a;font-size:10px;color:#70efd2}.physics-perf-overlay .perf-rows{display:flex;flex-direction:column;gap:3px}.physics-perf-overlay .perf-row{display:flex;justify-content:space-between;gap:14px;white-space:nowrap}.physics-perf-overlay .perf-label{color:#d9fff7a3}.physics-perf-overlay .perf-value{color:#f5fffd;font-weight:600}.physics-perf-overlay .perf-status{margin-top:8px;padding-top:6px;border-top:1px solid rgba(56,189,248,.2);color:#86f7ac;font-weight:600}.physics-perf-overlay .perf-status.warn{color:#ffd166}.physics-perf-overlay .perf-status.throttled{color:#38bdf8}#ui-root{position:fixed;top:18px;right:18px;z-index:99;pointer-events:none;display:flex;flex-direction:row;gap:12px;align-items:center}.native-control{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 18px;border:1px solid rgba(14,165,233,.35);border-radius:14px;background:linear-gradient(135deg,#ffffffe0,#ecfaffc2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#0c4a6e;font-family:inherit;font-size:13.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;box-shadow:0 8px 24px -4px #07598524,inset 0 1px 1px #fffffff2,inset 0 -2px 6px -1px #0ea5e91a;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s ease,box-shadow .2s ease,background .2s ease;user-select:none}.native-control:hover{transform:translateY(-2px) scale(1.02);border-color:#06b6d4d1;background:linear-gradient(135deg,#fffffff5,#effcffe0);color:#0284c7;box-shadow:0 12px 32px -4px #06b6d440,inset 0 1px 2px #fffffffa,0 0 0 1px #22d3ee40}.native-control:active{transform:translateY(0) scale(.97);box-shadow:0 4px 12px #0ea5e926;transition-duration:80ms}.native-btn-icon{width:16px;height:16px;flex:0 0 auto;stroke-width:2;color:#0284c7;transition:transform .2s ease,color .2s ease}.native-control:hover .native-btn-icon{transform:scale(1.15);color:#0369a1}#native-ar-toggle[aria-pressed=true]{border-color:#10b9818c;background:linear-gradient(135deg,#ecfdf5f2,#d1fae5d9);color:#047857;box-shadow:0 10px 28px -4px #10b98147,inset 0 1px 1px #fffffff2}#native-ar-toggle[aria-pressed=true] .native-btn-icon{color:#059669}@media(prefers-reduced-motion:reduce){.native-control,#loader,#loader *{animation-duration:1ms!important;transition-duration:.16s!important}.native-control:active{transform:none}}.loader-pct-wrap{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;color:#0e7490;min-width:3.2em;text-align:right;letter-spacing:.04em}.loader-pct-unit{font-size:11px;font-weight:500;opacity:.7;margin-left:1px}.loader-status{font-size:12px;color:#4a6a88;letter-spacing:.06em;min-height:1.4em}@keyframes loader-status-pulse{0%,to{opacity:.72}50%{opacity:1}}body.is-loading #hud,body.is-loading #crosshair{opacity:0;pointer-events:none}body.is-loading #c{visibility:visible}#loader.loader-revealing{z-index:100}#hud{position:fixed;top:18px;left:18px;z-index:10;pointer-events:none;max-width:300px}#hud .title{font-size:17px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;color:#0a4d7a;text-shadow:0 0 20px rgba(0,180,255,.35)}#hud .hint{font-size:12px;line-height:1.65;color:#2a4a6a;margin-bottom:14px}#hud .legend{background:#ffffffb8;border:1px solid rgba(0,160,255,.22);border-radius:14px;padding:12px 14px;font-size:12px;line-height:1.85;color:#1a3a55;box-shadow:0 8px 32px #0064b41a}#help-controls{position:fixed;top:18px;left:18px;z-index:42}#help-toggle{position:relative;display:flex;align-items:center;gap:12px;min-width:176px;min-height:56px;max-width:min(240px,calc(100vw - 36px));padding:8px 16px 8px 10px;border:1px solid rgba(56,189,248,.45);border-radius:18px;background:linear-gradient(135deg,#fffffff0,#ecfaffe0);color:#0c4a6e;box-shadow:0 12px 36px -4px #07598533,inset 0 1px 1px #fffffffa,inset 0 -2px 6px -1px #0ea5e92e;font-family:inherit;text-align:left;cursor:pointer;overflow:visible;transition:transform .22s cubic-bezier(.34,1.56,.64,1),border-color .22s ease,box-shadow .22s ease,background .22s ease}#help-toggle:hover{transform:translateY(-2px) scale(1.02);border-color:#06b6d4e6;background:linear-gradient(135deg,#fffffffa,#effcffeb);box-shadow:0 18px 44px -6px #06b6d459,inset 0 1px 2px #fff,0 0 0 2px #22d3ee47}#help-toggle:active{transform:translateY(0) scale(.985);transition-duration:80ms}#help-toggle:focus-visible{outline:2px solid #22d3ee;outline-offset:3px}.help-toggle-icon{position:relative;display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border:1px solid rgba(14,165,233,.42);border-radius:12px;background:linear-gradient(145deg,#0ea5e938,#0284c71a);color:#0369a1;box-shadow:inset 0 1px 1px #fffffff2,0 4px 12px #0ea5e92e;transition:transform .2s var(--ease-out),opacity .2s var(--ease-out);overflow:hidden;z-index:1}.help-toggle-icon .help-ring-icon,.help-toggle-icon .svg-icon{position:relative;z-index:2;width:22px;height:22px;display:block}.icon-pulse{position:absolute;inset:-2px;border-radius:inherit;background:radial-gradient(circle at center,rgba(34,211,238,.4),transparent 70%);animation:hud-pulse 2s infinite ease-in-out;pointer-events:none;z-index:0}.help-toggle-copy{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;justify-content:center;gap:2px;z-index:1;overflow:visible}.help-toggle-copy strong{display:block;font-size:14px;font-weight:780;letter-spacing:.04em;color:#0f172a;line-height:1.25;white-space:nowrap}.help-toggle-copy small{display:block;color:#0284c7;font-size:11px;line-height:1.3;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.help-modal-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .28s ease}.help-modal-wrap.is-open{opacity:1;pointer-events:auto}.help-modal-backdrop{position:absolute;inset:0;background:#0a192f9e}.help-modal-box{position:relative;z-index:1;width:min(960px,calc(100vw - 36px));max-height:min(820px,calc(100vh - 36px));display:flex;flex-direction:column;background:linear-gradient(145deg,#fffffff5,#f0f9fff0);border:1px solid rgba(14,165,233,.42);border-radius:26px;box-shadow:0 32px 96px -12px #082f4947,inset 0 0 0 1px #fff,inset 0 0 80px #bae6fd59;color:#0f172a;overflow:hidden;transform:scale(.94) translateY(16px);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.help-modal-wrap.is-open .help-modal-box{transform:scale(1) translateY(0)}.hud-corner{position:absolute;width:16px;height:16px;pointer-events:none;z-index:10;border-color:#0284c7;box-shadow:0 0 10px #0ea5e973}.hud-corner.tl{top:12px;left:12px;border-top:2px solid;border-left:2px solid}.hud-corner.tr{top:12px;right:12px;border-top:2px solid;border-right:2px solid}.hud-corner.br{bottom:12px;right:12px;border-bottom:2px solid;border-right:2px solid}.hud-corner.bl{bottom:12px;left:12px;border-bottom:2px solid;border-left:2px solid}.hud-top-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 28px 8px;background:#e0f2febf;border-bottom:1px solid rgba(14,165,233,.22);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:700;letter-spacing:.12em;color:#0284c7}.hud-sys-status{display:flex;align-items:center;gap:8px}.hud-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981;animation:hud-pulse 1.4s infinite}.hud-scan-line{flex:1;margin:0 20px;height:1px;background:linear-gradient(90deg,transparent,rgba(14,165,233,.45),transparent)}.hud-freq{color:#64748b;font-size:10px}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 30px;border-bottom:1px solid rgba(14,165,233,.24);background:linear-gradient(90deg,#e0f2fed9,#f0f9ff66)}.help-header-badge{font-size:11px;font-weight:850;letter-spacing:.18em;color:#0284c7;display:block;margin-bottom:6px}.help-header-left h2{font-size:22px;font-weight:850;color:#0f172a;letter-spacing:.04em}.help-close{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:12px;border:1px solid rgba(14,165,233,.35);background:#fff;color:#0284c7;cursor:pointer;box-shadow:0 2px 8px #0ea5e91f;transition:transform .16s var(--ease-out),opacity .16s var(--ease-out);font-family:ui-monospace,SFMono-Regular,monospace}.close-kbd{font-size:11px;font-weight:750;letter-spacing:.08em}.close-x{font-size:20px;font-style:normal;line-height:1}.help-close:hover{background:#fee2e2;border-color:#fca5a5;color:#ef4444;box-shadow:0 4px 16px #ef444440;transform:scale(1.05)}.help-modal-body{flex:1;overflow-y:auto;padding:28px 30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:24px}.guide-column{background:linear-gradient(160deg,#ffffffe0,#f0f9ffd1);border:1px solid rgba(14,165,233,.28);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:18px;box-shadow:0 8px 32px -6px #0ea5e914,inset 0 1px #fffffff2}.ar-col{background:linear-gradient(160deg,#ecfeffe6,#eff6ffd6);border-color:#06b6d461;box-shadow:0 8px 32px -6px #06b6d41a,inset 0 1px #fffffff2}.guide-col-header{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(14,165,233,.22)}.guide-col-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#e0f2fee6;border:1px solid rgba(14,165,233,.35);color:#0284c7;box-shadow:0 4px 12px #0ea5e926}.col-svg{width:24px;height:24px}.help-ring-icon{width:22px;height:22px}.guide-col-title h3{font-size:16.5px;font-weight:850;color:#0f172a;letter-spacing:.03em}.guide-col-title span{font-size:10.5px;font-family:ui-monospace,SFMono-Regular,monospace;color:#0284c7;letter-spacing:.1em;opacity:.9;display:block;margin-top:3px}.guide-rows{display:flex;flex-direction:column;gap:12px}.guide-row{display:grid;grid-template-columns:145px 1fr;align-items:center;gap:16px;padding:12px 14px;border-radius:14px;background:#ffffffb8;border:1px solid rgba(186,230,253,.6);box-shadow:0 2px 8px #0ea5e90a;transition:transform .18s var(--ease-out),opacity .18s var(--ease-out)}.guide-row:hover{background:linear-gradient(90deg,#e0f2fee6,#fffffffa);border-color:#0ea5e999;transform:translate(5px);box-shadow:-4px 0 #0284c7,0 8px 24px #0ea5e924}.ar-row:hover{box-shadow:-4px 0 #0d9488,0 8px 24px #06b6d424;border-color:#0d948880}.guide-keys{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-start}.guide-keys.mech kbd{font-size:11.5px;font-weight:780;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;padding:4px 8px;border-radius:6px;background:linear-gradient(135deg,#fff,#f1f5f9);color:#0284c7;border:1px solid rgba(14,165,233,.38);box-shadow:0 2px 5px #0ea5e926,inset 0 1px #fff}.kbd-wide{width:100%;text-align:center}.kbd-glow{border-color:#0284c7!important;box-shadow:0 2px 8px #0284c740,inset 0 1px #fff!important}.kbd-emerald{color:#0d9488!important;border-color:#0d9488!important;box-shadow:0 2px 8px #0d948840,inset 0 1px #fff!important}.ar-pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:780;padding:6px 10px;border-radius:8px;background:#e0f2fed9;color:#0284c7;border:1px solid rgba(14,165,233,.38);box-shadow:0 2px 6px #0ea5e91a;text-align:left;line-height:1.25}.ar-pill.active{background:#d1fae5d9;color:#059669;border-color:#10b98173;box-shadow:0 2px 8px #10b98126}.ar-pill.info{background:#ede9fed9;color:#7c3aed;border-color:#8b5cf673;box-shadow:0 2px 8px #8b5cf626}.ar-dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor;flex:0 0 auto}.guide-desc h4{font-size:14px;font-weight:780;color:#0f172a;margin-bottom:3px;letter-spacing:.02em}.guide-desc p{font-size:12px;color:#475569;line-height:1.4}.help-modal-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;padding:18px 30px;border-top:1px solid rgba(14,165,233,.24);background:#f8fcfff2}.help-footer-status{display:flex;align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;font-weight:700;color:#059669;letter-spacing:.1em;margin-bottom:5px}.status-pulse{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 12px #10b981;animation:hud-pulse 1.3s infinite}.help-tip{font-size:13px;color:#475569;display:flex;align-items:center;gap:8px;line-height:1.4}.tip-icon-wrap{width:28px;height:28px;border-radius:8px;background:#0ea5e91f;color:#0284c7;display:grid;place-items:center;flex:0 0 auto}.tip-svg{width:16px;height:16px}.help-btn-confirm{position:relative;display:flex;align-items:center;gap:10px;padding:12px 28px;font-size:14px;font-weight:800;letter-spacing:.06em;border-radius:14px;background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border:1px solid rgba(56,189,248,.65);cursor:pointer;box-shadow:0 0 24px #0ea5e973,inset 0 1px 1px #fff6;overflow:hidden;transition:transform .18s var(--ease-out),opacity .18s var(--ease-out)}.btn-shimmer{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);transform:translate(-150%);transition:transform .6s ease}.help-btn-confirm:hover .btn-shimmer{transform:translate(150%)}.help-btn-confirm:hover{background:linear-gradient(135deg,#0ea5e9,#0284c7);transform:translateY(-2px) scale(1.02);box-shadow:0 0 36px #38bdf8b3,inset 0 1px 1px #fff9;border-color:#7dd3fc}@keyframes hud-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}#hand-tracking-controls{position:fixed;top:18px;right:18px;z-index:42}#hand-tracking-toggle{position:relative;display:flex;align-items:center;gap:12px;min-width:186px;min-height:56px;padding:8px 14px 8px 10px;border:1px solid rgba(14,165,233,.38);border-radius:18px;background:linear-gradient(135deg,#ffffffe0,#ecfaffc2);color:#0c4a6e;box-shadow:0 10px 32px -4px #07598529,inset 0 1px 1px #fffffff2,inset 0 -2px 6px -1px #0ea5e924;font-family:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:transform .22s cubic-bezier(.34,1.56,.64,1),border-color .22s ease,box-shadow .22s ease,background .22s ease}#hand-tracking-toggle:hover{transform:translateY(-2px) scale(1.015);border-color:#06b6d4d1;background:linear-gradient(135deg,#fffffff5,#effcffe0);box-shadow:0 16px 40px -6px #06b6d447,inset 0 1px 2px #fffffffa,0 0 0 1px #22d3ee38}#hand-tracking-toggle:active{transform:translateY(0) scale(.985);transition-duration:80ms}#hand-tracking-toggle:focus-visible{outline:2px solid #22d3ee;outline-offset:3px}.hand-toggle-icon{position:relative;display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid rgba(14,165,233,.32);border-radius:12px;background:linear-gradient(135deg,#0ea5e929,#0284c70f);color:#0284c7;font-size:12px;font-weight:800;letter-spacing:.06em;text-shadow:0 0 12px rgba(34,211,238,.55);box-shadow:inset 0 1px 1px #fffc,0 4px 10px #0ea5e91f;transition:transform .2s var(--ease-out),opacity .2s var(--ease-out);overflow:hidden;z-index:1}.hand-toggle-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px;z-index:1}.hand-toggle-copy strong{font-size:13.5px;font-weight:750;letter-spacing:.06em;color:#0f172a;line-height:1.2}.hand-toggle-copy small{overflow:hidden;max-width:130px;color:#475569;font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;font-weight:500;transition:color .2s ease}.hand-toggle-led-wrap{position:relative;display:grid;place-items:center;width:14px;height:14px;flex:0 0 auto;z-index:1}.hand-toggle-led{width:8px;height:8px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px #94a3b829;position:relative;z-index:2;transition:transform .2s var(--ease-out),opacity .2s var(--ease-out)}.hand-toggle-led-ping{position:absolute;width:8px;height:8px;border-radius:50%;background:#94a3b8;opacity:0;z-index:1}#hand-tracking-video{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}#ar-tutorial{position:fixed;left:50%;bottom:28px;z-index:43;display:flex;gap:10px;align-items:center;max-width:min(680px,calc(100vw - 36px));padding:11px 16px;border:1px solid rgba(34,211,238,.45);border-radius:14px;background:#effaffeb;color:#164e63;box-shadow:0 12px 36px #082f4933;opacity:0;pointer-events:none;transform:translate(-50%,16px);transition:opacity .22s ease,transform .22s ease}#ar-tutorial.is-visible{opacity:1;transform:translate(-50%)}#ar-tutorial strong{color:#0369a1;white-space:nowrap}#ar-tutorial span{font-size:12px}body.hand-tracking-loading #hand-tracking-toggle{border-color:#38bdf8d9;box-shadow:0 0 0 2px #38bdf833,0 12px 34px #0ea5e938}body.hand-tracking-loading .hand-toggle-led{background:#38bdf8;box-shadow:0 0 0 4px #38bdf838,0 0 14px #38bdf8;animation:hand-led-pulse .7s cubic-bezier(.4,0,.6,1) infinite alternate}body.hand-tracking-loading .hand-toggle-led-ping{background:#38bdf8;animation:hand-led-ripple 1.4s cubic-bezier(0,0,.2,1) infinite}body.hand-tracking-active #hand-tracking-toggle{border-color:#06b6d4f2;background:linear-gradient(135deg,#ecfefff0,#e0f2fee0);box-shadow:0 0 0 2px #22d3ee52,0 14px 38px -4px #06b6d459,inset 0 1px 2px #fffffff5}body.hand-tracking-active .hand-toggle-icon{border-color:#22d3eebf;background:linear-gradient(135deg,#22d3ee47,#0ea5e96b);color:#0891b2;box-shadow:inset 0 1px 1px #ffffffe6,0 0 20px #22d3ee8c}body.hand-tracking-active .hand-toggle-copy small{color:#0369a1;font-weight:600}body.hand-tracking-active .hand-toggle-led{background:#10b981;box-shadow:0 0 0 4px #10b9813d,0 0 16px #10b981}body.hand-tracking-active .hand-toggle-led-ping{background:#10b981;animation:hand-led-ripple 2s cubic-bezier(0,0,.2,1) infinite}body.hand-tracking-degraded .hand-toggle-led{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b3d,0 0 16px #f59e0be6}body.hand-tracking-degraded .hand-toggle-led-ping{background:#f59e0b;animation:hand-led-ripple 1.5s cubic-bezier(0,0,.2,1) infinite}body.hand-tracking-error .hand-toggle-led{background:#f43f5e;box-shadow:0 0 0 4px #f43f5e3d,0 0 16px #f43f5ee6}@keyframes hand-led-pulse{0%{opacity:.5;transform:scale(.85)}to{opacity:1;transform:scale(1.1)}}@keyframes hand-led-ripple{0%{transform:scale(1);opacity:.75}to{transform:scale(3.2);opacity:0}}#vr-edge-highlight{position:fixed;inset:0;z-index:38;opacity:0;pointer-events:none;transition:opacity .26s ease}body.hand-tracking-active #vr-edge-highlight{opacity:1}.vr-edge,.vr-corner{position:absolute;display:block}.vr-edge{background:linear-gradient(90deg,transparent,rgba(34,211,238,.96),rgba(96,165,250,.9),transparent);filter:drop-shadow(0 0 5px rgba(34,211,238,.92));animation:vr-edge-breathe 1.8s ease-in-out infinite alternate}.vr-edge-top,.vr-edge-bottom{left:7%;width:86%;height:2px}.vr-edge-top{top:5px}.vr-edge-bottom{bottom:5px;transform:rotate(180deg)}.vr-edge-left,.vr-edge-right{top:7%;width:2px;height:86%;background:linear-gradient(180deg,transparent,rgba(34,211,238,.96),rgba(96,165,250,.9),transparent)}.vr-edge-left{left:5px}.vr-edge-right{right:5px;transform:rotate(180deg)}.vr-corner,.hud-corner{display:none!important}.vr-corner{width:42px;height:42px;border-color:#22d3eeeb;filter:drop-shadow(0 0 7px rgba(34,211,238,.74))}.vr-corner-tl{top:7px;left:7px;border-top:3px solid;border-left:3px solid}.vr-corner-tr{top:7px;right:7px;border-top:3px solid;border-right:3px solid}.vr-corner-br{right:7px;bottom:7px;border-right:3px solid;border-bottom:3px solid}.vr-corner-bl{bottom:7px;left:7px;border-bottom:3px solid;border-left:3px solid}@keyframes vr-edge-breathe{0%{opacity:.52}to{opacity:1}}@media(prefers-reduced-motion:reduce){.vr-edge,body.hand-tracking-loading .hand-toggle-led{animation:none}}@media(max-width:680px){#ar-tutorial{flex-direction:column;gap:3px;text-align:center}}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 8px currentColor}.dot.cradle{background:#5ec8ff;color:#5ec8ff}.dot.pendulum{background:#3d9eff;color:#3d9eff}.dot.spring{background:#f97316;color:#f97316}.dot.optics{background:#ff9f43;color:#ff9f43}.dot.magnet{background:#ff5e8a;color:#ff5e8a}.dot.balance{background:#06b6d4;color:#06b6d4}kbd{display:inline-block;padding:1px 7px;margin:0 2px;border-radius:5px;background:#008cff1a;border:1px solid rgba(0,140,255,.25);font-size:11px;font-family:inherit;color:#0a5a9a}#crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#ffffffd9;box-shadow:0 1px 4px #00000059;z-index:20;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .24s cubic-bezier(.25,1,.5,1),background-color .2s ease,border .2s ease,box-shadow .2s ease}body.locked #crosshair{opacity:1}body.locked #crosshair.can-interact{transform:scale(3.2);background:#ffffff38;border:1px solid rgba(255,255,255,.95);box-shadow:0 2px 10px #00000040}#exp-panel{display:none!important;pointer-events:none;visibility:hidden}#exp-panel.open{display:none!important}.holo-fs{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:12px;box-sizing:border-box;background:radial-gradient(ellipse at 50% 30%,rgba(14,116,144,.35),transparent 55%),#020812eb;pointer-events:auto;cursor:default}.holo-fs.open{display:flex}.holo-fs-frame{flex:1 1 auto;width:min(100%,1600px);height:min(100%,calc(100vh - 48px));max-height:calc(100vh - 48px);border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px #38bdf859,0 0 48px #22d3ee33,0 24px 80px #0000008c;background:#020617}#holo-fs-canvas{display:block;width:100%;height:100%;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.holo-fs-tip{flex:0 0 auto;margin:0;font-size:12px;color:#bae6fdbf;letter-spacing:.02em;text-align:center;user-select:none}body.holo-fs-open #crosshair{opacity:0!important;pointer-events:none}#exp-panel .exp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(14,165,233,.15)}#exp-panel .exp-header h2{font-size:16px;font-weight:700;color:#0369a1}#exp-panel .exp-close{appearance:none;border:none;background:#0ea5e91a;color:#0369a1;width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1}#exp-hint{font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;line-height:1}#exp-panel .exp-close:hover{background:#0ea5e933}#exp-list{display:flex;flex-direction:column;gap:8px}.exp-card{text-align:left;appearance:none;border:1px solid rgba(14,165,233,.2);background:#f0f9ffe6;border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .15s}.exp-card:hover{border-color:#0ea5e9;transform:translateY(-1px);box-shadow:0 6px 16px #0ea5e926}.exp-card .name{font-weight:700;font-size:14px;color:#0c4a6e;margin-bottom:4px}.exp-card .goal{font-size:12px;color:#64748b;line-height:1.45}#exp-active{display:none}#exp-active.show{display:block}#exp-active .exp-name{font-size:15px;font-weight:700;color:#0c4a6e;margin-bottom:6px}#exp-active .exp-theory{font-size:12px;color:#0369a1;background:#0ea5e914;border-radius:8px;padding:8px 10px;margin-bottom:12px;line-height:1.5;font-family:Consolas,SF Mono,monospace}#exp-steps{list-style:none;margin-bottom:12px}#exp-steps li{position:relative;padding:8px 8px 8px 28px;font-size:12.5px;line-height:1.45;color:#64748b;border-radius:8px;margin-bottom:4px}#exp-steps li:before{content:attr(data-n);position:absolute;left:6px;top:8px;width:16px;height:16px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:16px;text-align:center}#exp-steps li.active{background:#0ea5e91a;color:#0c4a6e;font-weight:600}#exp-steps li.active:before{background:#0ea5e9;color:#fff}#exp-steps li.done{color:#059669}#exp-steps li.done:before{content:"✓";background:#10b981;color:#fff}#exp-data{font-size:12px;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:10px 12px;margin-bottom:12px;line-height:1.7;font-family:Consolas,SF Mono,monospace;min-height:48px}#exp-data .ok{color:#6ee7b7}#exp-data .muted{color:#94a3b8;font-size:11px}#exp-data .data-log{margin-top:8px;overflow-x:auto}#exp-data .data-log table{width:100%;border-collapse:collapse;font-size:11px;line-height:1.35}#exp-data .data-log th,#exp-data .data-log td{padding:3px 5px;text-align:left;border-bottom:1px solid rgba(148,163,184,.25)}#exp-data .data-log th{color:#94a3b8;font-weight:600}#exp-data .data-log td{color:#e2e8f0;font-variant-numeric:tabular-nums}.btn-record{background:linear-gradient(135deg,#ec4899,#a855f7);color:#fff}.btn-record:hover{filter:brightness(1.08)}.btn-record:disabled{opacity:.45;cursor:not-allowed;filter:none}#exp-hint{font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 10px;margin-bottom:12px;line-height:1.45}.exp-actions{display:flex;gap:8px;flex-wrap:wrap}.exp-actions button{appearance:none;border:none;cursor:pointer;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:600;font-family:inherit}.btn-primary{background:linear-gradient(135deg,#0ea5e9,#06b6d4);color:#fff}.btn-ghost{background:#0ea5e91a;color:#0369a1}.btn-ghost:hover{background:#0ea5e92e}#toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%) translateY(20px) scale(.92);z-index:99995;background:radial-gradient(130% 180% at 50% -20%,#ffffff47,#ffffff0d,#38bdf814 70%,#0f172a0d),#08101e9e;color:#fff;padding:9px 24px;border-radius:9999px;border:1px solid rgba(255,255,255,.2);border-top-color:#ffffff7a;border-bottom-color:#ffffff1a;font-size:13px;font-weight:500;letter-spacing:.025em;opacity:0;pointer-events:none;backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);-webkit-backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);box-shadow:0 20px 48px -6px #0206178c,0 0 0 1px #ffffff0f,0 0 28px -4px #38bdf852,inset 0 1.5px 1px #ffffff73,inset 0 -1.5px 2px #00000080,inset 0 0 20px #38bdf81f;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 10px rgba(56,189,248,.3);-webkit-font-smoothing:antialiased;max-width:90vw;text-align:center;overflow:hidden;transition:opacity .4s cubic-bezier(.34,1.45,.64,1),transform .45s cubic-bezier(.34,1.45,.64,1)}#toast:before{content:"";position:absolute;inset:1px 8px auto;height:48%;border-radius:9999px 9999px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.08) 45%,transparent 100%);pointer-events:none}#toast.show{opacity:1;transform:translate(-50%) translateY(0) scale(1)}#experiment-switch-loader{position:fixed;top:max(18px,env(safe-area-inset-top));left:50%;z-index:99990;display:flex;align-items:center;gap:11px;max-width:min(90vw,400px);padding:8px 18px 8px 13px;border-radius:9999px;border:1px solid rgba(255,255,255,.2);border-top-color:#ffffff80;border-bottom-color:#ffffff1a;background:radial-gradient(130% 180% at 50% -20%,#ffffff47,#ffffff0d,#38bdf81a 70%,#0f172a0d),#08101e94;color:#fff;box-shadow:0 20px 48px -6px #0206178c,0 0 0 1px #ffffff0f,0 0 32px -4px #38bdf859,0 0 16px #a855f733,inset 0 1.5px 1px #ffffff73,inset 0 -1.5px 2px #00000080,inset 0 0 24px #38bdf824;backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);-webkit-backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);font-size:13px;font-weight:500;letter-spacing:.025em;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 10px rgba(56,189,248,.35);-webkit-font-smoothing:antialiased;opacity:0;pointer-events:none;transform:translate(-50%,-18px) scale(.9,.85);filter:blur(8px);overflow:hidden;transition:opacity .18s ease,transform .2s ease,filter .18s ease}#experiment-switch-loader:before,#shader-warmup-indicator:before{content:"";position:absolute;inset:1px 8px auto;height:48%;border-radius:9999px 9999px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.08) 45%,transparent 100%);pointer-events:none;z-index:1}#experiment-switch-loader:after,#shader-warmup-indicator:after{content:"";position:absolute;inset:0;border-radius:9999px;background:linear-gradient(105deg,transparent 20%,rgba(56,189,248,.2) 40%,rgba(255,255,255,.45) 50%,rgba(168,85,247,.2) 60%,transparent 80%);background-size:250% 100%;animation:liquid-glass-shimmer 4.2s ease-in-out infinite;pointer-events:none;mix-blend-mode:overlay;z-index:2}#experiment-switch-loader.show{opacity:1;transform:translate(-50%) scale(1);filter:blur(0)}.experiment-switch-spinner,.shader-warmup-spinner{width:16px;height:16px;flex:0 0 auto;position:relative;border-radius:50%;background:conic-gradient(from 0deg,transparent 0%,rgba(56,189,248,.15) 30%,#38bdf8 70%,#ffffff 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#fff calc(100% - 2.2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#fff calc(100% - 2.2px));filter:drop-shadow(0 0 6px rgba(56,189,248,.85));animation:liquid-spinner-rotate .8s cubic-bezier(.4,0,.2,1) infinite;z-index:3}#experiment-switch-loader [data-switch-loader-label],#shader-warmup-indicator [data-shader-warmup-label]{position:relative;z-index:3}#shader-warmup-indicator{position:fixed;top:clamp(64px,10vh,112px);left:50%;z-index:99989;display:flex;align-items:center;gap:11px;max-width:min(90vw,450px);padding:8px 18px 8px 13px;border-radius:9999px;border:1px solid rgba(255,255,255,.2);border-top-color:#ffffff80;border-bottom-color:#ffffff1a;background:radial-gradient(130% 180% at 50% -20%,#ffffff47,#ffffff0d,#38bdf81a 70%,#0f172a0d),#08101e94;color:#fff;box-shadow:0 20px 48px -6px #0206178c,0 0 0 1px #ffffff0f,0 0 32px -4px #38bdf859,0 0 16px #a855f733,inset 0 1.5px 1px #ffffff73,inset 0 -1.5px 2px #00000080,inset 0 0 24px #38bdf824;backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);-webkit-backdrop-filter:blur(28px) saturate(220%) contrast(110%) brightness(108%);font-size:13px;font-weight:500;letter-spacing:.025em;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 10px rgba(56,189,248,.35);-webkit-font-smoothing:antialiased;opacity:0;pointer-events:none;transform:translate(-50%,-18px) scale(.9,.85);filter:blur(8px);overflow:hidden;white-space:nowrap;transition:opacity .4s cubic-bezier(.34,1.45,.64,1),transform .45s cubic-bezier(.34,1.45,.64,1),filter .35s ease}#shader-warmup-indicator.show{opacity:1;transform:translate(-50%) scale(1);filter:blur(0)}#shader-warmup-indicator.is-complete .shader-warmup-spinner{background:#34d399;-webkit-mask:none;mask:none;filter:drop-shadow(0 0 8px rgba(52,211,153,.85));animation:none;display:flex;align-items:center;justify-content:center}#shader-warmup-indicator.is-complete .shader-warmup-spinner:after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#022c22;font-size:11px;font-weight:900;line-height:1}@keyframes liquid-glass-shimmer{0%{background-position:-120% 0}50%{background-position:50% 0}to{background-position:220% 0}}@keyframes liquid-spinner-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#experiment-switch-loader{transition-duration:1ms;filter:none}#experiment-switch-loader:after{animation:none}.experiment-switch-spinner{animation-duration:1ms}#shader-warmup-indicator{transition-duration:1ms;filter:none}#shader-warmup-indicator:after{animation:none}.shader-warmup-spinner{animation-duration:1ms}}#aim-hud{display:none!important;position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:99999;display:flex;align-items:center;gap:10px;padding:7px 18px;background:linear-gradient(135deg,#ffffff1f,#ffffff08),#0a1220ad;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.16);border-top-color:#ffffff52;border-radius:9999px;box-shadow:0 16px 36px -4px #00000073,0 0 0 1px #0003,0 0 20px #38bdf826,inset 0 1px #ffffff38;color:#f8fafc;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;pointer-events:none;transition:all .2s ease;user-select:none}.aim-hud-led{width:8px;height:8px;border-radius:50%;background:#64748b;box-shadow:0 0 4px #64748b80;transition:all .2s ease}.aim-hud-led.active{background:#34d399;box-shadow:0 0 10px #34d399,0 0 16px #34d39999}.aim-hud-target{color:#e2e8f0;letter-spacing:.01em}.aim-hud-badge{font-size:11px;padding:2px 8px;border-radius:9999px;background:#ffffff14;color:#94a3b8;font-weight:600;border:1px solid rgba(255,255,255,.1)}.aim-hud-badge.interactive{background:#34d39926;color:#34d399;border:1px solid rgba(52,211,153,.35)}
