:root{--bg: #0A1A1A;--surface: #1A2A2A;--surface2: #223434;--line: #2C3E3D;--accent: #E8B84A;--accent-hi: #F2CB66;--accent-lo: #D9A52F;--accent2: #D9542A;--accent-edge: #574d2c;--annot: #FF7A18;--annot-hi: #FFA65C;--needle: #B22B4A;--tsx-glass: blur(16px) saturate(1.25) brightness(.72);--tsx-k: 1.35;--tsx-h: calc(56px * var(--tsx-k));--tsx-dial: calc(96px * var(--tsx-k));--tsx-card: calc(88px * var(--tsx-k));--tsx-fan-gap: calc(16px * var(--tsx-k));--tsx-padb: calc((var(--tsx-dial) - var(--tsx-h)) / 2 + 5px);--tl-h: calc(var(--tsx-padb) + var(--tsx-h) / 2 + var(--tsx-dial) / 2);--hud-h: calc(var(--tl-h) + var(--tsx-fan-gap) + var(--tsx-card));--btn: #CDD2CE;--sel: #E6EFE9;--view: #1B2128;--ink: #E6EFE9;--muted: #7E938E;--ok: #7ad17a;--warn: #E8B84A;--danger: #e0635f;--glass-alpha: 1;--glass: #1A2A2A;--glass-2: #223434;--glass-3: #162424;--edge: rgba(255, 255, 255, .14);--hairline: rgba(255, 255, 255, .08);--sheen: linear-gradient(157deg, rgba(255,255,255,.06), rgba(255,255,255,0) 42%);--blur: 0px;--grain-fine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--grain-coarse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.42' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--scratch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009 0.55' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)'/%3E%3C/svg%3E");--sh-inset: inset 0 1px 0 rgba(255,255,255,.06);--sh-1: 0 1px 2px rgba(0,0,0,.35), var(--sh-inset);--sh-2: 0 10px 28px -10px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.3), var(--sh-inset);--sh-float: 0 28px 64px -24px rgba(0,0,0,.75), 0 10px 28px -14px rgba(0,0,0,.55), var(--sh-inset);--glow: 0 0 0 1px rgba(232,184,74,.45), 0 0 14px -3px rgba(232,184,74,.32);--glow-soft: 0 0 16px -7px rgba(232,184,74,.28);--view-edge: radial-gradient(130% 90% at 50% -12%, rgba(255,255,255,.055), transparent 46%), radial-gradient(115% 72% at 50% 116%, rgba(56,138,128,.16), transparent 60%), radial-gradient(140% 125% at 50% 42%, transparent 34%, rgba(2,9,9,.46) 70%, rgba(1,6,6,.84) 100%);--view-edge-shadow: inset 0 0 0 1px rgba(255,255,255,.055), inset 0 1px 0 rgba(255,255,255,.05), inset 0 0 130px 10px rgba(0,0,0,.55), inset 0 0 250px rgba(0,0,0,.45);--r-sm: 7px;--r: 11px;--r-lg: 16px;--r-pill: 999px;--sb-h: 26px;--t-fast: .11s;--t: .2s;--t-slow: .32s;--ease: cubic-bezier(.2,.8,.2,1);--ease-out: cubic-bezier(.16,1,.3,1);--sans: "Geist", "Assistant", system-ui, -apple-system, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", "Assistant", monospace;--fs-micro: 10px;--fs-sm: 11px;--fs-base: 12px;--fs-title: 13px;font-family:var(--sans);font-size:var(--fs-base)}*{box-sizing:border-box}button,input,select,textarea{font-family:inherit;font-size:inherit}body{margin:0;background:var(--bg);color:var(--ink);font-size:var(--fs-base);-webkit-font-smoothing:antialiased}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;background-image:var(--grain-fine);background-size:180px 180px;opacity:.02;mix-blend-mode:soft-light}#gl{z-index:0;touch-action:none}.screen{position:relative;z-index:1;min-height:100vh}.screen.editor,.screen.preview{pointer-events:none}.timeline,.exit-preview,.preview-title,.preview-fp-toggle,.drawer,.layers,.npanel,.navcube{pointer-events:auto}.screen.editor:after,.screen.preview:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;box-shadow:var(--view-edge-shadow);background:var(--view-edge)}.drawer,.layers,.npanel,.navcube,.card,.float-rail,.float-panel{background-color:#182726cc;background-image:linear-gradient(180deg,#ffffff09,#0000001a),var(--sheen);border:1px solid var(--line);border-top-color:var(--edge);box-shadow:var(--sh-float);backdrop-filter:blur(9px) saturate(1.08);-webkit-backdrop-filter:blur(9px) saturate(1.08)}.muted{color:var(--muted)}.idx{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}h3{margin:0 0 8px;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-weight:700}:where(body:not(.client)) button{font:inherit;font-weight:600;padding:9px 14px;border-radius:var(--r-sm);border:1px solid var(--hairline);border-top-color:var(--edge);background:var(--glass-3);color:var(--ink);cursor:pointer;box-shadow:var(--sh-1);transition:transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),background var(--t) var(--ease),border-color var(--t) var(--ease)}:where(body:not(.client)) button:hover{background:#2c444299;transform:translateY(-1px);box-shadow:var(--sh-2)}:where(body:not(.client)) button:active{transform:translateY(0) scale(.975);box-shadow:var(--sh-1)}:where(body:not(.client)) button:focus-visible{outline:none;box-shadow:var(--glow)}button.primary,button.open{background:linear-gradient(180deg,var(--accent-hi),var(--accent) 55%,var(--accent-lo));color:#1a1205;border:none;text-shadow:0 1px 0 rgba(255,255,255,.25)}button.primary:hover,button.open:hover{box-shadow:var(--sh-2),var(--glow-soft)}button.primary:active,button.open:active{box-shadow:var(--glow)}button.danger,.del{color:var(--danger)}.del:hover{background:#e0635f29;border-color:#e0635f66;color:#ff8985}:where(body:not(.client)) button:disabled,.disabled,button.disabled{opacity:.42;cursor:not-allowed;transform:none!important;box-shadow:var(--sh-1)!important;background:var(--glass-3)}input[type=number],input[type=text],.title{font:inherit;color:var(--ink);background:var(--glass-3);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:7px 10px;box-shadow:var(--sh-inset);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),background var(--t) var(--ease)}input[type=number]:focus,input[type=text]:focus{outline:none;border-color:#e8b84a99;background:#223434e6;box-shadow:var(--glow)}input[type=number]{font-variant-numeric:tabular-nums}input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:46px;height:30px;border:1px solid var(--edge);border-radius:var(--r-sm);background:transparent;cursor:pointer;padding:0;box-shadow:var(--sh-1),var(--glow-soft);transition:transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}input[type=color]:hover{transform:translateY(-1px);box-shadow:var(--sh-2),var(--glow)}input[type=color]::-webkit-color-swatch-wrapper{padding:3px}input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:1px solid var(--edge);border-radius:5px;background:var(--glass-3);cursor:pointer;display:grid;place-content:center;box-shadow:var(--sh-inset);transition:all var(--t) var(--ease)}input[type=checkbox]:hover{border-color:#e8b84a80}input[type=checkbox]:checked{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));border-color:transparent;box-shadow:var(--glow-soft)}input[type=checkbox]:checked:after{content:"";width:5px;height:9px;margin-top:-1px;border:solid #1a1205;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--glow)}:where(body:not(.client)) input[type=range],.scrub{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(90deg,#e8b84a8c,#ffffff1a);border-radius:var(--r-pill);outline:none}:where(body:not(.client)) input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-hi),var(--accent) 60%,var(--accent-lo));border:2px solid rgba(255,255,255,.18);cursor:pointer;box-shadow:var(--glow-soft);transition:box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}:where(body:not(.client)) input[type=range]::-webkit-slider-thumb:hover{box-shadow:var(--glow)}:where(body:not(.client)) input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15);box-shadow:var(--glow)}:where(body:not(.client)) input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.18);background:var(--accent);box-shadow:var(--glow-soft);cursor:pointer}.header{position:fixed;top:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;padding:14px;pointer-events:none}.header *{pointer-events:auto}.header .sub{color:var(--muted);font-size:11px;letter-spacing:.04em;margin-top:2px}.header-left{display:flex;align-items:center;gap:12px}.header-titles{display:flex;flex-direction:column}.home-btn{display:flex;align-items:center;gap:7px;background:none;border:1px solid transparent;cursor:pointer;color:var(--muted);padding:5px 8px;border-radius:7px;transition:color .12s,background .12s}.home-btn:hover{color:var(--accent);background:var(--glass-3);border-color:var(--hairline)}.home-logo{font-size:20px;line-height:1}.home-word{font-family:var(--mono);font-size:12px;letter-spacing:.07em;text-transform:uppercase}.topbar{display:flex;gap:8px}.header:has(.exp-split.open){z-index:5}.exp-split{position:relative;display:inline-flex}.exp-split-btn{display:inline-flex;align-items:center;gap:8px}.exp-caret{font-size:10px;opacity:.9}.exp-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;display:none;flex-direction:column;background:var(--surface, #16211F);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-float);overflow:hidden;z-index:5}.exp-split.open .exp-menu{display:flex}.exp-mi{text-align:left;background:transparent;border:none;cursor:pointer;padding:10px 12px;border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;gap:3px;box-shadow:none;transition:background var(--t-fast) ease}.exp-mi:last-child{border-bottom:none}.exp-mi:hover:not(:disabled){background:var(--surface2);transform:none}.exp-mi-label{font-size:13px;font-weight:600;color:var(--ink)}.exp-mi-hint{font-size:11px;color:var(--muted);line-height:1.4}.exp-mi:disabled{cursor:not-allowed;opacity:.5}.exp-status{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;max-width:320px;padding:6px 9px;border-radius:6px;font-size:11px;line-height:1.35;background:var(--glass-3);color:var(--ink);border:1px solid var(--line);z-index:5}.exp-status:empty{display:none}.exp-status.err{color:var(--danger);border-color:var(--danger)}.title{background:transparent;border:1px solid transparent;box-shadow:none;color:var(--accent);font-size:20px;font-weight:700;letter-spacing:-.01em;padding:4px 8px;text-shadow:0 0 18px rgba(232,184,74,.35)}.title:focus{background:var(--glass-3);border-color:var(--hairline);box-shadow:var(--glow);text-shadow:none}.timeline{--tsx-mag: 2.3;--tsx-lip: .8;--tsx-sh: .34;--tsx-dial2: calc(85px * var(--tsx-k));--tsx-band: calc(116px * var(--tsx-k));--tsx-pad: calc(76px * var(--tsx-k));--tsx-bez: calc(2.2px * var(--tsx-k));--tsx-rt: calc(64px * var(--tsx-k));--tsx-rb: calc(14px * var(--tsx-k));--tsx-mon: calc(14px * var(--tsx-k));--tsx-yr: calc(12px * var(--tsx-k));--tsx-pl: calc(11px * var(--tsx-k));--tsx-dt: calc(10px * var(--tsx-k));--tsx-ndl: calc(13px * var(--tsx-k));--tsx-lift: calc(10px * var(--tsx-k));--tsx-chev: calc(26px * var(--tsx-k));--enter: .82s;--stag: .15s;--tsx-ez: cubic-bezier(.16, 1, .3, 1);position:fixed;left:0;right:0;bottom:var(--sb-h);z-index:2;padding-bottom:var(--tsx-padb);overflow-x:clip;background:none;border:none;box-shadow:none;pointer-events:none}.timeline.dn{--enter: .53s;--stag: 95ms}.timeline:empty{display:none}body.split-active .timeline{display:none}@media (prefers-reduced-motion: reduce){.timeline,.timeline.dn{--enter: 1ms;--stag: 0ms}}.ts-mini{position:fixed;left:50%;bottom:calc(var(--sb-h, 0px) + 20px);transform:translate(-50%);z-index:2;pointer-events:auto;display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(520px,86vw);padding:12px 18px;background-color:#182726cc;background-image:linear-gradient(180deg,#ffffff09,#0000001a),var(--sheen);border:1px solid var(--line);border-top-color:var(--edge);border-radius:14px;box-shadow:var(--sh-float, 0 8px 28px rgba(0,0,0,.35));backdrop-filter:blur(9px) saturate(1.08);-webkit-backdrop-filter:blur(9px) saturate(1.08)}body.split-active .ts-mini{display:none}.ts-mini-date{color:var(--accent);font-weight:700;font-size:15px;letter-spacing:.01em;text-align:center;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.ts-mini-row{display:flex;align-items:center;gap:10px}.ts-mini-arrow{flex:none;width:44px;height:44px;padding:0;border:none;background:none;color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s ease,opacity .15s ease,transform .1s ease}.ts-mini-arrow svg{width:30px;height:30px;display:block;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.ts-mini-arrow:hover{color:var(--accent-hi)}.ts-mini-arrow:active{transform:scale(.85)}.ts-mini-arrow:disabled{opacity:.28;cursor:default}.ts-mini-arrow:focus-visible{outline:2px solid var(--accent-lo);outline-offset:2px;border-radius:6px}.ts-mini-track{position:relative;flex:1;min-width:0;display:flex;align-items:center}.ts-mini-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;margin:8px 0;background:linear-gradient(90deg,var(--accent-lo),var(--accent-hi));border-radius:999px;cursor:pointer;touch-action:none;position:relative;z-index:1}.ts-mini-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-hi),var(--accent) 60%,var(--accent-lo));border:2px solid var(--bg);box-shadow:var(--glow-soft, 0 0 10px rgba(232,184,74,.6));cursor:pointer}.ts-mini-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;border:2px solid var(--bg);background:var(--accent);box-shadow:var(--glow-soft, 0 0 10px rgba(232,184,74,.6));cursor:pointer}.ts-mini-range:focus-visible{outline:2px solid var(--accent-hi);outline-offset:4px}.ts-mini-ticks{position:absolute;left:11px;right:11px;top:50%;z-index:2;pointer-events:none}.ts-mini-tick{position:absolute;top:0;transform:translate(-50%,-50%);width:4px;height:20px;border-radius:3px;background:#ffffff8c;transition:height .12s ease,width .12s ease,background .12s ease}.ts-mini-tick.on{background:var(--accent);width:6px;height:30px;box-shadow:var(--glow-soft, 0 0 8px rgba(232, 184, 74, .6))}.tsx-wrap{position:relative;width:82%;max-width:800px;margin:0 auto;pointer-events:auto;transition:width var(--enter) var(--tsx-ez),max-width var(--enter) var(--tsx-ez)}.timeline.lv4 .tsx-wrap{width:92%;max-width:1100px}.tsx-greet{text-align:center;overflow:hidden;transition:opacity calc(var(--enter) * .6) ease-in,transform calc(var(--enter) * .6) var(--tsx-ez),max-height calc(var(--enter) * .6) var(--tsx-ez),margin-bottom calc(var(--enter) * .6) var(--tsx-ez)}.tsx-greet .g1{font:400 calc(19px * var(--tsx-k))/1.25 var(--sans);color:var(--ink);letter-spacing:-.015em}.tsx-greet .g1 b{font-weight:600}.tsx-greet .g2{margin-top:7px;font:500 calc(9px * var(--tsx-k))/1 var(--mono);letter-spacing:.24em;color:var(--muted)}.timeline.lv1 .tsx-greet{max-height:calc(74px * var(--tsx-k));margin-bottom:calc(20px * var(--tsx-k));opacity:1;animation:tsx-breathe 5.5s ease-in-out infinite}.timeline.lv2 .tsx-greet,.timeline.lv3 .tsx-greet,.timeline.lv4 .tsx-greet{max-height:0;margin-bottom:0;opacity:0;transform:translateY(-9px);animation:none}@keyframes tsx-breathe{0%,to{opacity:1}50%{opacity:.74}}.tsx-lane{position:relative;height:0;overflow:visible;transition:height var(--enter) var(--tsx-ez) calc(var(--stag) * .3)}.timeline.lv3 .tsx-lane,.timeline.lv4 .tsx-lane{height:calc(44px * var(--tsx-k))}.tsx-lane.off,.timeline.lv3 .tsx-lane.off,.timeline.lv4 .tsx-lane.off{display:none;height:0}.tsx-plate{position:absolute;bottom:0;z-index:9;display:flex;align-items:center;gap:calc(11px * var(--tsx-k));white-space:nowrap;padding:calc(8px * var(--tsx-k)) calc(13px * var(--tsx-k));border-radius:var(--r-sm);background:linear-gradient(180deg,#1d2d2c,#131f1e);border:1px solid rgba(232,184,74,.45);box-shadow:inset 0 1px #ffffff0f,0 10px 24px -14px #000;transform-origin:50% 100%;opacity:0;transform:translate(-50%) scale(.82);transition:opacity calc(var(--enter) * .75) ease-out calc(var(--stag) * 1),transform var(--enter) var(--tsx-ez) calc(var(--stag) * 1)}.timeline.lv3 .tsx-plate,.timeline.lv4 .tsx-plate{opacity:1;transform:translate(-50%) scale(1)}.tsx-plate .dl,.tsx-plate .dr{flex:none;width:calc(64px * var(--tsx-k));font:600 var(--tsx-dt)/1 var(--mono);letter-spacing:.08em;color:#6d827e;font-variant-numeric:tabular-nums}.tsx-plate .dl{text-align:right}.tsx-plate .dr{text-align:left}.tsx-plate .sep{width:1px;align-self:stretch;background:#ffffff1c}.tsx-plate .nmw{position:relative;height:var(--tsx-pl)}.tsx-plate .nmw span{position:absolute;left:0;top:0;white-space:nowrap;font:600 var(--tsx-pl)/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);transition:opacity .28s ease}.tsx-plate .pip{display:flex;align-items:center;gap:4px;font:600 calc(var(--tsx-pl) - 2px)/1 var(--mono);color:var(--annot)}.tsx-plate .pip i{width:calc(6px * var(--tsx-k));height:calc(6px * var(--tsx-k));border-radius:50%;background:var(--annot);box-shadow:0 0 8px -1px var(--annot)}.tsx-lead-v{position:absolute;width:1px;z-index:4;pointer-events:none;opacity:0;bottom:calc(-14px * var(--tsx-k));height:calc(14px * var(--tsx-k));background:linear-gradient(180deg,#e8b84a80,#e8b84a0d);transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.2)}.tsx-lead-h{position:absolute;height:1px;bottom:0;z-index:4;pointer-events:none;opacity:0;background:#e8b84a61;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.2)}.timeline.lv3 .tsx-lead-v,.timeline.lv4 .tsx-lead-v,.timeline.lv3 .tsx-lead-h,.timeline.lv4 .tsx-lead-h{opacity:1}.tsx-years{position:relative;height:0;opacity:0;overflow:visible;transition:height var(--enter) var(--tsx-ez) calc(var(--stag) * .4),opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * .6),margin var(--enter) var(--tsx-ez) calc(var(--stag) * .4)}.timeline.lv3 .tsx-years,.timeline.lv4 .tsx-years{height:calc(20px * var(--tsx-k));opacity:1;margin:calc(18px * var(--tsx-k)) 0 calc(12px * var(--tsx-k))}.tsx-year{position:absolute;top:0;transform:translate(-50%);white-space:nowrap;font:500 var(--tsx-yr)/1 var(--mono);letter-spacing:.26em;color:var(--muted);transition:color .18s ease}.tsx-year.on{color:var(--accent)}.tsx-ydiv{position:absolute;top:calc(16px * var(--tsx-k));width:1px;height:calc(12px * var(--tsx-k));background:linear-gradient(180deg,rgba(255,255,255,.22),transparent)}.tsx-track{position:relative;height:var(--tsx-h);touch-action:none;outline:none}.tsx-track,.tsx-track *{cursor:none}.tsx-track:before{content:"";position:absolute;left:-8px;right:-8px;top:50%;height:var(--tsx-band);transform:translateY(-50%);border-radius:calc(var(--tsx-band) / 2)}.tsx-bezel{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;border-radius:var(--tsx-rt) var(--tsx-rt) var(--tsx-rb) var(--tsx-rb) / 92% 92% var(--tsx-rb) var(--tsx-rb);background:linear-gradient(180deg,#27302e,#141b1a 26%,#0a100f 74%,#161e1d);box-shadow:inset 0 1px rgba(255,255,255,calc(.34 * var(--tsx-lip))),0 0 0 .5px rgba(255,255,255,calc(.1 * var(--tsx-lip))),0 calc(5px * var(--tsx-k)) calc(16px * var(--tsx-k)) calc(-9px * var(--tsx-k)) rgba(0,0,0,calc(var(--tsx-sh) * 1.6));transform:scaleY(.03);transform-origin:50% 50%;transition:transform var(--enter) var(--tsx-ez) calc(var(--stag) * .5),opacity calc(var(--enter) * .4) ease-out calc(var(--stag) * .5)}.timeline.lv2 .tsx-bezel,.timeline.lv3 .tsx-bezel,.timeline.lv4 .tsx-bezel{transform:scaleY(1);opacity:1}.tsx-track:focus-visible .tsx-bezel{box-shadow:0 0 0 2px #e8b84a8c}.tsx-skin{position:absolute;inset:var(--tsx-bez);pointer-events:none;overflow:hidden;opacity:0;border-radius:calc(var(--tsx-rt) - var(--tsx-bez)) calc(var(--tsx-rt) - var(--tsx-bez)) calc(var(--tsx-rb) - var(--tsx-bez)) calc(var(--tsx-rb) - var(--tsx-bez)) / 91% 91% calc(var(--tsx-rb) - var(--tsx-bez)) calc(var(--tsx-rb) - var(--tsx-bez));-webkit-backdrop-filter:var(--tsx-glass);backdrop-filter:var(--tsx-glass);background:linear-gradient(180deg,#ffffff14,#fff0 42%),linear-gradient(180deg,#101e1d99,#081211b3);box-shadow:inset 0 calc(3px * var(--tsx-k)) calc(6px * var(--tsx-k)) calc(-2px * var(--tsx-k)) rgba(0,0,0,calc(.7 * var(--tsx-lip))),inset 0 0 0 .5px rgba(0,0,0,calc(.18 * var(--tsx-lip)));transform:scaleY(.03);transform-origin:50% 50%;transition:transform var(--enter) var(--tsx-ez) calc(var(--stag) * .5),opacity calc(var(--enter) * .4) ease-out calc(var(--stag) * .5)}.timeline.lv2 .tsx-skin,.timeline.lv3 .tsx-skin,.timeline.lv4 .tsx-skin{transform:scaleY(1);opacity:1}.tsx-refr{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#ffffff1c,#ffffff05 16%,#fff0 44%,#0000001a 76%,#ffffff0f 94%,#ffffff03)}.tsx-cast{position:absolute;top:50%;pointer-events:none;width:calc(var(--tsx-dial) * 1.25);height:calc(var(--tsx-dial) * .72);transform:translate(-50%,-38%);background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,calc(var(--tsx-sh) * 1.15)) 0%,rgba(0,0,0,calc(var(--tsx-sh) * .55)) 46%,transparent 72%);filter:blur(calc(6px * var(--tsx-k)))}.tsx-hair{position:absolute;left:0;right:0;top:50%;height:1px;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity calc(var(--enter) * .5);background:linear-gradient(90deg,transparent,rgba(255,255,255,.2) 10%,rgba(255,255,255,.2) 90%,transparent)}.timeline.lv1 .tsx-hair{opacity:1}.tsx-fill{position:absolute;pointer-events:none;opacity:0;left:var(--tsx-bez);top:var(--tsx-bez);bottom:var(--tsx-bez);border-radius:calc(var(--tsx-rt) - var(--tsx-bez)) 0 0 calc(var(--tsx-rb) - var(--tsx-bez)) / 91% 0 0 calc(var(--tsx-rb) - var(--tsx-bez));background:linear-gradient(180deg,#e8b84a29,#e8b84a08);box-shadow:inset -1px 0 #e8b84a6b;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.1)}.timeline.lv2 .tsx-fill,.timeline.lv3 .tsx-fill,.timeline.lv4 .tsx-fill{opacity:1}.tsx-gring{position:absolute;top:50%;z-index:4;border-radius:50%;pointer-events:none;opacity:0;width:calc(var(--tsx-dial) * .88);height:calc(var(--tsx-dial) * .88);transform:translate(-50%,-50%);border:1px solid rgba(232,184,74,.6);background:radial-gradient(circle,rgba(232,184,74,.11) 0%,rgba(232,184,74,.025) 64%,transparent 100%);transition:opacity .15s,width .18s var(--tsx-ez),height .18s var(--tsx-ez)}.tsx-gring.on{opacity:1}.tsx-gring.tight{width:calc(20px * var(--tsx-k));height:calc(20px * var(--tsx-k));background:radial-gradient(circle,rgba(232,184,74,.35) 0%,transparent 70%)}.tsx-wp{position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:none;width:calc(5px * var(--tsx-k));height:calc(5px * var(--tsx-k));border-radius:50%;background:#ffffff61;transition:width var(--enter) var(--tsx-ez),height var(--enter) var(--tsx-ez),border-radius var(--enter) var(--tsx-ez),opacity .18s,background .2s,box-shadow .2s}.timeline.lv2 .tsx-wp,.timeline.lv3 .tsx-wp,.timeline.lv4 .tsx-wp{width:2px;height:calc(14px * var(--tsx-k));border-radius:1px;opacity:0}.timeline.lv2 .tsx-wp.stand,.timeline.lv3 .tsx-wp.stand,.timeline.lv4 .tsx-wp.stand{opacity:1}.tsx-wp.on{background:var(--accent);box-shadow:0 0 10px -1px var(--accent)}.tsx-gap{position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:none;font:700 calc(var(--tsx-mon) + 1px)/1 var(--mono);color:#ffffff3d;letter-spacing:-.1em;opacity:0;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.2)}.timeline.lv3 .tsx-gap,.timeline.lv4 .tsx-gap{opacity:1}.tsx-lab{position:absolute;top:50%;left:0;z-index:6;background:none;border:none;padding:0;transform-origin:50% 50%;white-space:nowrap;opacity:0;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.3)}.timeline.lv2 .tsx-lab,.timeline.lv3 .tsx-lab,.timeline.lv4 .tsx-lab{opacity:1}.tsx-lab .ly{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-family:var(--mono);line-height:1.05;letter-spacing:.14em;font-size:calc(var(--tsx-mon) * var(--tsx-mag))}.tsx-lab .out{color:#b6c6c1;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.65)}.tsx-lab .ink{color:#0a1a1a;font-weight:700}.tsx-lens{position:absolute;top:50%;z-index:5;border-radius:50%;pointer-events:none;width:var(--tsx-dial2);height:var(--tsx-dial2);transform:translate(-50%,-50%) scale(.35);opacity:0;background:radial-gradient(circle at 50% 32%,#FFFFFF 0%,var(--sel) 60%,#C3D0CA 100%);border:calc(2px * var(--tsx-k)) solid var(--accent);box-shadow:0 0 0 1px #0000008c,0 0 30px -6px #e8b84a73,0 14px 34px -12px #000000d9,inset 0 -11px 24px -14px #0006;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.6),transform var(--enter) var(--tsx-ez) calc(var(--stag) * 1.6),width var(--enter) var(--tsx-ez),height var(--enter) var(--tsx-ez)}.timeline.lv2 .tsx-lens,.timeline.lv3 .tsx-lens,.timeline.lv4 .tsx-lens{opacity:1;transform:translate(-50%,-50%) scale(1)}.timeline.lv3 .tsx-lens,.timeline.lv4 .tsx-lens{width:var(--tsx-dial);height:var(--tsx-dial)}.tsx-track:active .tsx-lens{transform:translate(-50%,-50%) scale(1.02)}.tsx-grads{position:absolute;left:-40%;right:-40%;bottom:15%;height:calc(6px * var(--tsx-k));opacity:.55;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(10,26,26,.62) 0 calc(1.4px * var(--tsx-k)),transparent calc(1.4px * var(--tsx-k)) calc(9px * var(--tsx-k)));-webkit-mask-image:radial-gradient(ellipse 40% 100% at 50% 50%,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 40% 100% at 50% 50%,#000 40%,transparent 100%)}.tsx-trackrow{position:relative}.tsx-chev{position:absolute;top:50%;left:100%;z-index:8;margin-left:calc(10px * var(--tsx-k));width:var(--tsx-chev);height:var(--tsx-chev);transform:translateY(-50%);display:flex;align-items:center;justify-content:center;opacity:0;border:none;border-radius:50%;background:#ffffff0d;border:1px solid var(--hairline);color:#9db0ab;font:600 calc(11px * var(--tsx-k))/1 var(--mono);pointer-events:none;cursor:pointer;transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.9),background .16s,color .16s,border-color .16s,transform .2s var(--tsx-ez)}.timeline.lv2 .tsx-chev,.timeline.lv3 .tsx-chev,.timeline.lv4 .tsx-chev{opacity:1;pointer-events:auto}.tsx-chev:hover{background:#e8b84a29;color:var(--accent);border-color:var(--accent-edge)}.timeline.lv4 .tsx-chev{color:var(--accent);background:#e8b84a21;border-color:var(--accent-edge);transform:translateY(-50%) rotate(180deg)}.tsx-needle{position:absolute;top:50%;z-index:7;pointer-events:none;opacity:0;width:0;height:0;border-left:calc(var(--tsx-ndl) * .68) solid transparent;border-right:calc(var(--tsx-ndl) * .68) solid transparent;border-bottom:var(--tsx-ndl) solid var(--needle);filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));transform:translate(-50%,calc(var(--tsx-dial) * .1));transition:opacity calc(var(--enter) * .7) ease-out calc(var(--stag) * 1.8)}.timeline.lv2 .tsx-needle,.timeline.lv3 .tsx-needle,.timeline.lv4 .tsx-needle{opacity:1}.tsx-fan{display:flex;gap:6px;max-height:0;opacity:0;overflow:hidden;margin-top:0;transition:max-height var(--enter) var(--tsx-ez),opacity calc(var(--enter) * .7) ease-out,margin-top var(--enter) var(--tsx-ez)}.timeline.lv4 .tsx-fan{max-height:var(--tsx-card);opacity:1;margin-top:var(--tsx-fan-gap)}.tsx-card{position:relative;min-width:0;height:var(--tsx-card);overflow:hidden;border-radius:var(--r-sm);cursor:pointer;transform:translateY(10px);background:linear-gradient(180deg,#1d2d2c,#152322);border:1px solid var(--line);box-shadow:inset 0 1px #ffffff0d;transition:flex-basis .34s var(--tsx-ez),transform var(--enter) var(--tsx-ez),border-color .18s,background .18s,box-shadow .18s}.timeline.lv4 .tsx-card{transform:none}.tsx-card:hover{border-color:#3d5250}.tsx-card.on{border-color:var(--accent);box-shadow:inset 0 1px #ffffff12,0 0 20px -8px var(--accent)}.tsx-card .th{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.62;transition:opacity .18s}.tsx-card.on .th{opacity:.8}.tsx-card .scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#070f0f1a,#070f0f9e 46%,#070f0fed)}.tsx-card .spine{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;opacity:0;transition:opacity .2s;font:600 calc(8px * var(--tsx-k))/1 var(--mono);letter-spacing:.1em;color:#c8d4d2}.tsx-card.narrow .spine{opacity:1}.tsx-card .body{position:absolute;left:0;right:0;bottom:0;padding:7px 8px;transition:opacity .2s}.tsx-card.narrow .body{opacity:0}.tsx-card .fd{font:600 calc(8px * var(--tsx-k))/1 var(--mono);letter-spacing:.16em;color:var(--accent);white-space:nowrap}.tsx-card .fn{font:600 calc(11px * var(--tsx-k))/1.2 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-height:0;opacity:0;margin-top:0;transition:max-height .3s var(--tsx-ez),opacity .22s,margin-top .3s var(--tsx-ez)}.tsx-card.wide .fn{max-height:calc(16px * var(--tsx-k));opacity:1;margin-top:4px}.tsx-card .fx{display:flex;gap:9px;color:#8fa3a0;font:500 calc(8px * var(--tsx-k))/1 var(--mono);letter-spacing:.08em;max-height:0;opacity:0;margin-top:0;transition:max-height .3s var(--tsx-ez),opacity .22s,margin-top .3s var(--tsx-ez)}.tsx-card.wider .fx{max-height:calc(12px * var(--tsx-k));opacity:1;margin-top:5px}.tsx-card .fx b{color:var(--ink);font-weight:600}.tsx-card .cpip{position:absolute;top:7px;right:7px;display:flex;align-items:center;gap:3px;font:600 calc(7px * var(--tsx-k))/1 var(--mono);color:var(--annot);opacity:0;transition:opacity .2s}.tsx-card.on.wide .cpip{opacity:1}.tsx-card .cpip i{width:5px;height:5px;border-radius:50%;background:var(--annot);box-shadow:0 0 7px -1px var(--annot)}.statusbar{position:fixed;left:0;right:0;bottom:0;z-index:6;height:var(--sb-h);display:flex;align-items:center;justify-content:space-between;padding:0 14px;gap:16px;font:500 11px/1 var(--mono);letter-spacing:.02em;color:var(--muted);background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -1px 0 var(--edge);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.statusbar .sb-left,.statusbar .sb-right{display:inline-flex;align-items:center;gap:10px;min-width:0}.statusbar .sb-right{overflow:hidden}.statusbar b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.statusbar .sb-mut{color:var(--muted)}.statusbar .sb-perf{color:var(--ok)}.statusbar .sb-build{color:var(--muted);opacity:.7;overflow:hidden;text-overflow:ellipsis}.statusbar .sb-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px -1px var(--ok)}.toolbar{position:fixed;left:50%;top:72px;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:6px;padding:5px;border-radius:var(--r-sm);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset);pointer-events:auto}.toolbar .tb-group{display:flex;align-items:center;gap:3px}.toolbar .tb-sep{width:1px;align-self:stretch;margin:2px 3px;background:var(--line)}.toolbar .tb-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:none;border:1px solid transparent;color:var(--ink);cursor:pointer}.toolbar .tb-btn .ic{width:18px;height:18px}.toolbar .tb-btn:hover:not(:disabled){background:var(--glass-3)}.toolbar .tb-btn.active{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205;border-color:var(--accent-edge)}.toolbar .tb-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar .tb-popover{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);min-width:240px;padding:8px 10px;border-radius:var(--r-sm);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset)}.toolbar .tb-popover .scale-row{margin-top:0}.toolbar .tb-popover .scale-warn{color:var(--accent2);font-size:11px;margin-top:6px}@media (max-width: 720px){.toolbar{display:none}}.drawer{position:fixed;top:0;right:0;bottom:calc(var(--tl-h, 128px) + 14px);height:auto;width:min(384px,100vw);z-index:5;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px 18px 28px;border-top:none;border-right:none;border-bottom:1px solid var(--line);border-radius:0;box-shadow:-28px 0 64px -28px #000c,var(--sh-inset)}.drawer .acc-body,.drawer .acc-inner,.drawer .limrow,.drawer .ctrlrow,.drawer .limrow input,.drawer .ctrlrow input[type=range]{min-width:0}@media (max-width: 480px){.drawer{width:100vw;padding:14px 14px 28px}}.drawer-head{display:flex;justify-content:space-between;align-items:center;font-size:19px;font-weight:700;letter-spacing:-.01em;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--hairline)}.drawer-head .x{width:36px;height:36px;padding:0;display:grid;place-items:center;font-size:15px;color:var(--muted);border-radius:var(--r-sm)}.drawer-head .x:hover{color:var(--ink)}.acc{margin-bottom:10px}.acc-head{position:relative;display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:var(--r);background:var(--glass-2);background-image:var(--sheen);border:1px solid var(--hairline);border-top-color:var(--edge);box-shadow:var(--sh-1);cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.01em;overflow:hidden;transition:background var(--t) var(--ease),box-shadow var(--t) var(--ease)}.acc-head:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:0;border-radius:var(--r-pill);background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));box-shadow:var(--glow-soft);transition:height var(--t) var(--ease-out)}.acc-head:hover{background:#3638428c}.acc:has(.acc-body.open) .acc-head{box-shadow:var(--sh-1),var(--glow-soft)}.acc:has(.acc-body.open) .acc-head:before{height:60%}.acc-icon{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--glass-3);background-image:var(--sheen);border:1px solid var(--hairline);border-top-color:var(--edge);box-shadow:var(--sh-inset)}.acc-icon:before{content:"";width:16px;height:16px;background:var(--accent);-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}.acc-title{flex:1}.chev{flex:0 0 auto;width:16px;height:16px;background:var(--muted);-webkit-mask:var(--ico-chev) center / contain no-repeat;mask:var(--ico-chev) center / contain no-repeat;transition:transform var(--t) var(--ease),background var(--t) var(--ease)}.acc:has(.acc-body.open) .chev{transform:rotate(90deg);background:var(--accent)}.acc-body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--t-slow) var(--ease),opacity var(--t) var(--ease)}.acc-body>*{min-height:0;overflow:hidden}.acc-body.open{grid-template-rows:1fr;opacity:1}.acc-body .acc-inner{padding:12px 6px 6px;display:flex;flex-direction:column;gap:10px}.acc-body label{color:var(--muted);font-size:12px}.limrow{display:flex;align-items:center;gap:10px;padding:4px 0}.limrow label{flex:1}.limrow input[type=number]{width:88px}.ctrlrow{display:flex;align-items:center;gap:10px;padding:5px 0}.ctrlrow label{flex:0 0 92px;font-size:12px;color:var(--muted)}.ctrlrow input[type=range]{flex:1;min-width:0}.ctrlrow input[type=number]{flex:0 0 64px;width:64px}.ctrlrow .reset{flex:0 0 auto;padding:5px 8px}.reset{width:30px;height:30px;padding:0;display:grid;place-items:center;color:var(--muted);font-size:14px}.reset:hover{color:var(--accent)}.reset:active{transform:rotate(-180deg) scale(.95)}.wcard{background:var(--glass-2);background-image:var(--sheen);border:1px solid var(--hairline);border-top-color:var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);padding:12px;margin-top:4px}.wcard-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.wcard-head strong{font-size:12px;letter-spacing:.1em;text-transform:uppercase}.wcard-head span{color:var(--muted);font-size:11px}.wcard-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.wstat{background:var(--glass-3);border:1px solid var(--hairline);border-top-color:var(--edge);border-radius:var(--r-sm);padding:9px 11px;box-shadow:var(--sh-inset)}.wstat .k{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.wstat .v{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px}.wstatus{border-radius:var(--r-sm);padding:9px 11px;font-size:12px;font-weight:600;border:1px solid transparent;display:flex;align-items:center;gap:8px}.wstatus:before{content:"";width:8px;height:8px;border-radius:50%;box-shadow:0 0 10px currentColor}.wstatus.ok{color:var(--ok);background:#7ad17a1a;border-color:#7ad17a40}.wstatus.warn{color:var(--warn);background:#e8b84a1a;border-color:#e8b84a47}.wstatus.over{color:var(--danger);background:#e0635f1a;border-color:#e0635f4d}.notes{display:flex;flex-direction:column;gap:8px}.notes-row{display:flex;align-items:center;gap:10px}.add-note{background:var(--glass-3);border:1px dashed rgba(255,255,255,.18);width:100%;padding:11px;color:var(--ink);font-weight:600}.notes-empty{text-align:center;color:var(--muted);font-size:12px;padding:14px;border:1px dashed var(--hairline);border-radius:var(--r-sm);background:#ffffff05}.stagelist{display:flex;flex-direction:column;gap:7px;margin-top:4px}.stagerow{position:relative;display:flex;align-items:center;gap:8px;padding:10px 12px 10px 14px;border-radius:var(--r);background:var(--glass-2);background-image:var(--sheen);border:1px solid var(--hairline);border-top-color:var(--edge);box-shadow:var(--sh-1)}.stagerow:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:var(--r-pill);background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));opacity:.55}.stagerow .meta{color:var(--muted);margin-left:auto;font-size:11px;font-variant-numeric:tabular-nums}.stagerow button{width:30px;height:30px;padding:0;display:grid;place-items:center;font-size:12px}.add-more{width:100%;margin-top:10px;border-style:dashed}.layers{position:fixed;top:60px;left:12px;bottom:auto;max-height:calc(100vh - 60px - var(--hud-h, 260px) - 14px);width:292px;z-index:3;border-radius:var(--r-lg);padding:14px;overflow:auto;display:flex;flex-direction:column;gap:10px}.layers-header{display:flex;justify-content:space-between;align-items:baseline}.layers-header .muted{font-size:11px}.vis-toggle{display:flex;gap:4px;padding:3px;border-radius:var(--r);background:var(--glass-3);border:1px solid var(--hairline);box-shadow:var(--sh-inset)}.vis-toggle button{flex:1;padding:7px 10px;font-size:12px;border:none;background:transparent;box-shadow:none}.vis-toggle button:hover{background:#ffffff0d;transform:none}.vis-toggle button.on{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205;box-shadow:var(--glow-soft)}.layer-list{display:flex;flex-direction:column;gap:6px}.layer-row{position:relative;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:var(--r);background:var(--glass-2);background-image:var(--sheen);border:1px solid var(--hairline);border-top-color:var(--edge);box-shadow:var(--sh-1);cursor:pointer;overflow:hidden;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),border-color var(--t) var(--ease)}.layer-row:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;border-radius:var(--r-pill);background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));box-shadow:var(--glow-soft);transition:height var(--t) var(--ease-out)}.layer-row:hover{transform:translate(2px);box-shadow:var(--sh-2)}.layer-row:hover:before{height:40%}.layer-row.active{border-color:#e8b84a73;box-shadow:var(--sh-2),var(--glow-soft)}.layer-row.active:before{height:70%}.layer-row.locked{opacity:.35;filter:grayscale(.6);pointer-events:none}.layer-row.locked:hover{transform:none;box-shadow:none}.layer-row.ref{border-color:#5bc8f580}.layer-row.ref .layer-badge{color:#5bc8f5}.layer-row.target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--glow);animation:align-pulse 1.3s ease-in-out infinite}.layer-row.target.locked{opacity:1;filter:none}@keyframes align-pulse{0%,to{box-shadow:0 0 0 1px var(--accent),0 0 6px -2px var(--accent)}50%{box-shadow:0 0 0 1px var(--accent),0 0 16px 0 var(--accent)}}.layer-row.flash{animation:row-flash 1.15s var(--ease)}@keyframes row-flash{0%{box-shadow:0 0 0 1px #3fc9d6,0 0 20px 1px #3fc9d6b3;border-color:#3fc9d6}to{box-shadow:none;border-color:transparent}}.vis-toggle.disabled{opacity:.4;pointer-events:none}.align-armed-panel{margin-top:8px}.align-hint{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:6px}.align-error{font-size:11px;color:#f0a35a;background:#f0783c1f;border:1px solid rgba(240,120,60,.3);border-radius:var(--r-sm);padding:5px 8px;margin-bottom:6px}.align-controls{display:flex;gap:6px}.align-controls button{flex:1;padding:5px 8px;font-size:12px}.align-next{background:linear-gradient(180deg,var(--accent-hi),var(--accent) 55%,var(--accent-lo));color:var(--bg);font-weight:700}.align-next:disabled{background:var(--glass-3);color:var(--muted);font-weight:400}.align-finish{background:linear-gradient(180deg,#5fd38a,#36b56a 55%,#1e8a4d);color:#07210f;font-weight:700;box-shadow:0 0 0 1px #36b56a80,0 0 14px -2px #36b56ab3;animation:align-pulse-green 1.2s ease-in-out infinite}@keyframes align-pulse-green{0%,to{box-shadow:0 0 0 1px #36b56a80,0 0 8px -2px #36b56a99}50%{box-shadow:0 0 0 1px #36b56ab3,0 0 18px #36b56acc}}.align-done{text-align:center;font-weight:700;font-size:13px;color:#3ddc84;padding:8px;background:#36b56a24;border:1px solid rgba(54,181,106,.4);border-radius:var(--r-sm)}.layer-badge{font-size:11px;color:var(--accent);font-weight:700;min-width:26px;font-variant-numeric:tabular-nums}.layer-badge.grip{cursor:grab;position:relative;padding-left:9px;touch-action:none}.layer-badge.grip:before{content:"⠿";position:absolute;left:-1px;top:50%;transform:translateY(-50%);font-size:10px;line-height:1;color:var(--muted);opacity:0;transition:opacity var(--t) var(--ease)}.layer-row:hover .layer-badge.grip:before{opacity:.75}.layer-badge.grip:active{cursor:grabbing}.layer-badge.pinned{cursor:default;position:relative;padding-left:9px}.layer-badge.pinned:before{content:"⌁";position:absolute;left:-1px;top:50%;transform:translateY(-50%);font-size:10px;line-height:1;color:#5bc8f5;opacity:.8}.layer-list.dragging .layer-row{transition:transform .11s var(--ease-out),box-shadow var(--t) var(--ease)}.layer-list.dragging .layer-row:hover{box-shadow:var(--sh-1)}.layer-list.dragging .layer-row:hover:before{height:0}.layer-list.dragging .layer-row.dragging{transition:none;z-index:3;cursor:grabbing;border-color:#e8b84a8c;box-shadow:var(--sh-2),var(--glow)}.layer-list.dragging .layer-row.dragging:before{height:70%}.layer-title{flex:1;min-width:0;display:flex;align-items:center;gap:7px}.layer-name{flex:0 1 auto;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-fmt{flex:none;font:700 9px/1 var(--mono);letter-spacing:.06em;padding:3px 5px;border-radius:var(--r-sm);background:var(--glass-3);color:var(--muted);border:1px solid var(--line)}.layer-fmt.fmt-sog{color:var(--ok)}.layer-fmt.fmt-ply{color:var(--accent)}.layer-fmt.fmt-glb,.layer-fmt.fmt-gltf{color:#5bc8f5}.layer-date{font:500 var(--fs-micro)/1 var(--mono);letter-spacing:.08em;color:var(--muted);padding:2px 4px;border-radius:3px;cursor:default;white-space:nowrap}.layer-date.unset{opacity:.45}.layer-date:hover{color:var(--ink);background:var(--glass-3)}.layer-date-edit{font:500 var(--fs-micro)/1 var(--mono);width:82px;padding:2px 4px;border-radius:3px;background:var(--glass-3);border:1px solid var(--accent-edge);color:var(--ink)}.layer-rename{flex:1;min-width:0;font:inherit;font-size:13px;padding:3px 7px;border-radius:var(--r-sm);background:var(--glass-3);border:1px solid rgba(232,184,74,.6);color:var(--ink);box-shadow:var(--glow);outline:none}.layer-ab-badge{display:inline-block;min-width:15px;text-align:center;margin-left:6px;padding:0 4px;border-radius:3px;font:10px ui-monospace,monospace;background:#d9542a;color:#0a1a1a}.layer-row .del{margin-left:auto;width:28px;height:28px;padding:0;display:grid;place-items:center;font-size:11px}.fp-swatch{width:12px;height:12px;border-radius:3px;flex:none;box-shadow:0 0 8px 1px #3fc9d699}.fp-eye{width:28px;height:28px;padding:0;display:grid;place-items:center;font-size:12px}.layer-cut{opacity:.45}.layer-cut.on{opacity:1;color:var(--accent, #E8B84A)}.fp-add{display:flex;flex-direction:column;gap:6px}.fp-add-btn{width:100%}.fp-plan-row{display:flex;align-items:center;gap:8px;padding:2px 4px 2px 22px}.fp-plan-label{color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.fp-plan-opacity{flex:1;min-width:60px;accent-color:var(--accent, #3fc9d6);cursor:pointer}.fp-menu,.fp-placement,.fp-controls{display:flex;gap:6px;flex-wrap:wrap}.fp-menu button,.fp-controls button{flex:1;font-size:12px}.fp-placement{align-items:center}.fp-hint{color:var(--muted);font-size:11px;line-height:1.4}.fp-snap-fit{color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px;font-variant-numeric:tabular-nums}.elem-row{display:flex;flex-direction:column;gap:1px}.elem-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elem-spec{color:var(--muted);font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.dev-legend{display:flex;flex-direction:column;gap:6px;margin-top:6px}.dev-legend-bar{height:10px;border-radius:var(--r-pill, 5px);background:linear-gradient(90deg,#00c828,#ffc828 50%,#ff2828);border:1px solid var(--line)}.fp-armed{margin-top:6px;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--r);background:var(--glass-3);border:1px solid rgba(63,201,214,.4);box-shadow:var(--sh-inset)}.fp-armed button.armed,.fp-armed button.on{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205}.fp-layer-pick{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.fp-layer-pick input[type=checkbox]{accent-color:var(--accent-lo, #3FC9D6)}.npanel{position:fixed;top:86px;left:12px;bottom:auto;max-height:calc(100vh - 86px - var(--hud-h, 260px) - 14px);width:314px;z-index:3;border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;align-items:stretch}.np-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px 7px 0;flex:none;background:#0e1c1c;border-bottom:1px solid var(--line)}.np-tab{font:500 10px/1 var(--sans);letter-spacing:.02em;color:var(--muted);padding:7px 4px 8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:7px 7px 0 0;display:flex;flex-direction:column;align-items:center;gap:5px}.np-tab .ic{width:14px;height:14px;opacity:.85}.np-tab:hover{color:var(--ink)}.np-tab.active{color:var(--ink);background:var(--surface);margin-bottom:-1px;box-shadow:inset 0 -2px 0 var(--accent)}.np-pinned{flex:none;padding:9px;border-bottom:1px solid var(--line);background:var(--glass-3)}.np-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.rmenu{position:fixed;right:12px;top:50%;transform:translateY(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px;border-radius:var(--r-sm);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset);pointer-events:auto}.rmenu .tb-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:none;border:1px solid transparent;color:var(--ink);cursor:pointer}.rmenu .tb-btn .ic{width:18px;height:18px}.rmenu .tb-btn:hover:not(:disabled){background:var(--glass-3)}.rmenu .tb-btn.active{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205;border-color:var(--accent-edge)}.rmenu-panel{position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);width:300px;max-height:80vh;display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset)}@media (max-width: 720px){.rmenu{display:none}}.float-hd{display:flex;align-items:center;gap:8px;padding:10px 12px;flex:none;border-bottom:1px solid var(--line);background:#0e1c1c}.float-hd .ic{width:14px;height:14px;color:var(--accent)}.float-hd .t{font-weight:600;font-size:13px;letter-spacing:.02em;flex:1}.float-close{border:none;background:none;color:var(--muted);cursor:pointer;font-size:13px;width:24px;height:24px;border-radius:6px}.float-close:hover{color:var(--ink);background:#ffffff0f}.float-body{flex:1;min-height:0;overflow-y:auto;padding:11px;display:flex;flex-direction:column;gap:10px;scrollbar-width:none;-ms-overflow-style:none}.float-body::-webkit-scrollbar{width:0;height:0}.np-props{flex:1;min-height:0;overflow-y:auto;padding:11px;display:flex;flex-direction:column;gap:10px}.np-props,.np-outliner{scrollbar-width:none;-ms-overflow-style:none}.np-props::-webkit-scrollbar,.np-outliner::-webkit-scrollbar{width:0;height:0}.ic{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none}.ic svg{width:100%;height:100%;display:block}.sec{background:var(--card, #1E2E2E);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--sh-inset)}.sec-hd{display:flex;align-items:center;gap:8px;padding:9px 11px}.sec-hd .ic{width:14px;height:14px;color:var(--accent);opacity:.9}.sec-hd .t{font-weight:600;font-size:12px;letter-spacing:.02em}.sec-body{padding:0 11px 11px;display:flex;flex-direction:column;gap:9px}.sec--collapsible>.sec-hd{cursor:pointer;-webkit-user-select:none;user-select:none}.sec--collapsible>.sec-hd .chevron{margin-left:auto;width:13px;height:13px;color:var(--muted);transition:transform .15s ease}.sec.collapsed>.sec-hd .chevron{transform:rotate(-90deg)}.sec.collapsed>.sec-body{display:none}.sec--collapsible.disabled>.sec-hd{cursor:default;opacity:.55}.sec--collapsible.disabled .hint{font-size:11px;color:var(--muted);line-height:1.4}.kbtn{display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;background:linear-gradient(180deg,#dfe3df,var(--btn));color:#14201d;font:600 13px/1 var(--sans);padding:10px;border-radius:var(--r-sm);border:1px solid #aeb6b0;box-shadow:inset 0 1px #ffffff80,0 2px 5px #0000004d}.kbtn.ghost{background:var(--surface2);color:var(--ink);border:1px solid var(--line);box-shadow:none;font-weight:500}.kbtn .ic{width:14px;height:14px}.kbtn.disabled,.kbtn:disabled{opacity:.45;cursor:not-allowed}.kbtn.quiet{background:none;color:var(--muted);border:1px solid transparent;box-shadow:none;font-weight:500}.kbtn.quiet:hover{background:var(--glass-3);color:var(--ink);border-color:var(--hairline)}.kbtn.quiet.danger:hover{background:#e0635f24;border-color:#e0635f66;color:#ff8985}.kbtn.sm{font-size:11px;padding:6px 9px;gap:6px}.kbtn.icon{padding:6px;width:26px;height:26px;flex:0 0 26px;font-size:12px;line-height:1}.slab{display:flex;align-items:center;gap:10px}.slab .k{font-size:12px;color:var(--ink);min-width:46px}.slab input[type=range]{flex:1;accent-color:var(--accent);cursor:pointer}.slab .val{font:600 11px/1 var(--mono);color:var(--ink);min-width:34px;text-align:right}.sec label{font-size:12px;color:var(--muted)}.sec .ctrlrow{gap:9px;padding:3px 0}.sec .ctrlrow label{flex:0 0 84px}.sec .ctrlrow input[type=range],.sec .limrow input[type=range]{accent-color:var(--accent);height:4px}.sec .ctrlrow .sval{flex:0 0 32px;text-align:right;font:600 11px/1 var(--mono);color:var(--ink)}.sec .limrow{padding:3px 0}.sec .limrow input[type=number]{width:58px;flex:0 0 58px;font:600 12px/1 var(--mono);text-align:right;padding:6px 7px}.sec .reset{font-size:12px;padding:4px 6px}.sec .primary{font-size:12px;font-weight:600;padding:9px 12px;width:100%}.sec .chkrow{display:flex;align-items:center;gap:9px;padding:5px 1px;font-size:13px;color:var(--ink);cursor:pointer}.sec .chkrow input[type=checkbox]{flex:0 0 auto}.sec .chkrow span{-webkit-user-select:none;user-select:none;line-height:1.3}.lim-group{display:flex;flex-direction:column;gap:1px;margin:1px 0 6px;padding-left:11px;border-left:1px solid var(--line);transition:opacity var(--t) var(--ease),filter var(--t) var(--ease)}.lim-group.off{opacity:.36;filter:saturate(.5);pointer-events:none}.lim-group .lim-group{margin-bottom:1px}.bg-row{display:flex;align-items:center;gap:10px}.bg-row label{flex:1;color:var(--muted)}.bg-row .kbtn{flex:0 0 auto;padding:8px 12px}.kseg{display:flex;background:var(--glass-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;gap:2px;flex:1}.kseg button{flex:1;font:500 11px/1 var(--sans);color:var(--muted);padding:6px 4px;border-radius:5px;background:none;border:none;cursor:pointer}.kseg button.on{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205;font-weight:600}.np-outliner{padding:8px;border-bottom:1px solid var(--line);background:var(--glass-3);flex:none;max-height:38%;overflow-y:auto}.np-outliner .ol-head{font:600 10px/1 var(--mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;padding:2px 4px 8px}.transform-block{margin-top:6px;padding-top:12px;border-top:1px solid var(--hairline)}.tr-grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:6px;align-items:center;margin-top:8px}.tr-grid label{color:var(--muted);font-size:10px;letter-spacing:.08em}.tr-grid input{width:100%;font-size:12px;padding:6px 7px}.tr-grid .axl{font:700 9px/1 var(--mono);letter-spacing:.1em;text-align:center}.tr-grid .axl.x{color:#e06464}.tr-grid .axl.y{color:#7ad17a}.tr-grid .axl.z{color:#5b9be0}.tr-scale{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;margin-top:6px}.tr-scale.tr-scale-3{grid-template-columns:auto 1fr 1fr 1fr}.tr-scale label{color:var(--muted);font-size:10px;letter-spacing:.08em}.tr-scale input{width:100%;font-size:12px;padding:6px 7px}.gizmo-modes{display:flex;gap:4px;margin:8px 0 4px;padding:3px;border-radius:var(--r);background:var(--glass-3);border:1px solid var(--hairline);box-shadow:var(--sh-inset)}.gizmo-modes button{flex:1;padding:6px 0;font-weight:700;border:none;background:transparent;box-shadow:none}.gizmo-modes button:hover{background:#ffffff0d;transform:none}.gizmo-modes button.on{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:#1a1205;box-shadow:var(--glow-soft)}.stub-section{margin-top:8px;padding-top:12px;border-top:1px solid var(--hairline)}.tracker-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;margin-top:6px}.tracker{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:8px 4px;border-radius:var(--r-sm);background:var(--glass-3);border:1px solid var(--hairline);border-top-color:var(--edge);box-shadow:var(--sh-inset);opacity:.9}.tracker .t-dot{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px 1px var(--c)}.tracker .t-lbl{font-size:12px;font-weight:700;color:var(--c)}.tracker .t-set{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tracker.t-red{--c: #e0635f}.tracker.t-green{--c: #7ad17a}.tracker.t-blue{--c: #5bc8f5}.align{width:100%;margin-top:8px}.tracker.set .t-set{color:var(--ok, #4ade80)}.tracker.half .t-set{color:var(--warn, #fbbf24)}.tracker.active{outline:1.5px solid var(--accent, #3b82f6);outline-offset:1px;border-radius:6px}.tracker.set,.tracker.half{cursor:pointer}.tracker-remove{position:absolute;top:2px;right:2px;width:14px;height:14px;line-height:12px;padding:0;border:none;border-radius:50%;background:#ffffff14;color:var(--muted);font-size:11px;cursor:pointer}.tracker-remove:hover:not(:disabled){background:#ffffff2e;color:#fff}.tracker-remove:disabled{opacity:.25;cursor:not-allowed}.tracker-add{display:flex;align-items:center;justify-content:center;min-width:0;padding:8px 4px;border-radius:var(--r-sm);background:transparent;border:1px dashed var(--hairline);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.tracker-add:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tracker-add:disabled{opacity:.35;cursor:not-allowed}.align.armed{background:var(--accent, #3b82f6);color:#fff}.align.disabled,button.disabled{opacity:.5;cursor:not-allowed}.stub-row{display:flex;gap:6px;margin-top:6px}.stub-row button{flex:1}.navcube{position:fixed;right:16px;top:72px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:7px;border-radius:var(--r);padding:8px 8px 9px}.gizmo{display:block}.gizmo g{transition:opacity .1s ease}.gizmo g:hover{opacity:.82}.nav-row{display:flex;gap:5px}.nav-fit,.nav-persp,.nav-grid{padding:5px 9px;font-size:11px;min-width:0;line-height:1}.nav-fit{color:var(--accent)}.nav-grid.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.nav-grid.sizing{box-shadow:var(--glow);cursor:ns-resize}.clip-drag{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;cursor:ns-resize;touch-action:none}.clip-guide{position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--accent);pointer-events:none}.clip-drag.off .clip-guide{border-top-color:var(--muted)}.clip-readout{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset);padding:4px 8px;border-radius:var(--r);white-space:nowrap;pointer-events:none}.clip-hint{position:absolute;left:50%;top:18px;transform:translate(-50%);font-size:12px;color:var(--ink);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset);padding:6px 12px;border-radius:var(--r);white-space:nowrap;pointer-events:none}.measure-label{position:fixed;transform:translate(-50%,-160%);pointer-events:none;z-index:6;font-family:var(--mono);font-size:14px;font-weight:600;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#0b0f10;background:#ffc738f2;border:1px solid rgba(0,0,0,.55);border-radius:6px;padding:5px 10px;white-space:nowrap;box-shadow:0 2px 10px #000000a6}.scale-block{margin-top:8px;padding-top:12px;border-top:1px solid var(--hairline)}.scale-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.scale-head h3{margin:0}.scale-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-family:var(--mono);font-size:11px;color:var(--muted)}.scale-row .raw{color:var(--ink)}.scale-row input[type=number]{width:64px}.scale-hint{font-size:11px;color:var(--muted);line-height:1.5;margin-top:6px}.scale-warn{font-size:11px;color:var(--warn);line-height:1.5;margin-top:6px}.measure-label.stored{background:#ffc738c7;border-color:#00000073;font-size:13px;font-weight:500;box-shadow:0 1px 6px #00000080}.measure-label.stored.pickable{pointer-events:auto;cursor:pointer}.measure-label.stored.pickable:hover{background:#ffc738f2}.measure-label.mine{color:#e6efe9;background:#1b2128eb;border:1px dashed rgba(230,239,233,.55);box-shadow:0 2px 10px #000000a6}.measure-label.mine.area{color:#bfeffa;border:1px solid rgba(60,200,232,.8)}.pv-add-wrap{position:fixed;left:0;right:0;top:75%;z-index:20;display:flex;justify-content:center;pointer-events:none}.pv-add-measure{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;padding:7px 18px 7px 7px;border-radius:999px;border:1px solid #E8B84A;background:#171c20;color:#f3e7c8;font:600 14px/1 Geist,ui-sans-serif,system-ui;letter-spacing:.01em;cursor:pointer;box-shadow:0 2px 10px #00000059}.pv-add-measure:hover{background:#232d33}.pv-add-measure:focus-visible{outline:2px solid #E8B84A;outline-offset:2px}.pv-add-plus{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;background:#e8b84a;color:#14181a}.pv-add-plus .ic{width:18px;height:18px}.measure-row .mrow-n{min-width:14px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.measure-row .mrow-v{flex:1 1 auto;color:var(--ink);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:28px;border-radius:var(--r-lg);width:min(440px,92vw);display:flex;flex-direction:column;gap:12px}.card h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;text-shadow:0 0 26px rgba(232,184,74,.3)}.card h1+.muted,.card .muted{font-size:13px;line-height:1.5}.logo{width:56px;height:56px;border-radius:var(--r);display:grid;place-items:center;font-size:28px;align-self:flex-start;margin-bottom:4px;background:var(--glass-3);border:1px solid var(--edge);box-shadow:var(--sh-1),var(--glow-soft)}.goback{color:var(--muted);font-size:13px;cursor:pointer;text-align:center;margin-top:4px}.goback:hover{color:var(--accent)}.filelist{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow:auto;background:var(--glass-3);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:8px;box-shadow:var(--sh-inset)}.filerow{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:12px;border-radius:var(--r-sm)}.filerow.failed,.filerow.bad{color:var(--danger);background:#e0635f1a}.filerow.ok{color:var(--ok)}.filerow.pending{color:var(--muted)}.ms-status{font-size:13px;margin:2px 0 6px;min-height:17px;font-weight:500}.ms-status.ok{color:var(--ok)}.ms-status.bad{color:var(--danger)}.ms-status.muted{color:var(--muted);font-weight:400}.ms-warn{color:var(--warn);font-size:11px;margin:4px 0 0;min-height:0}.ms-warn:empty{display:none}.samples{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--hairline)}.sample-chips{display:flex;gap:8px;flex-wrap:wrap}.sample-chip{font-size:12px;padding:8px 12px}.sample-chip.added{color:var(--ok);border-color:#7ad17a66}.screen.processing{display:grid;place-content:center;gap:14px;text-align:center}.spinner{width:52px;height:52px;border-radius:50%;justify-self:center;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent);box-shadow:var(--glow-soft);animation:spin .9s linear infinite}.screen.processing h2{margin:4px 0 0;font-weight:700;letter-spacing:-.01em}@keyframes spin{to{transform:rotate(360deg)}}.exit-preview{position:fixed;top:14px;right:14px;z-index:3}.preview-title{position:fixed;top:14px;left:14px;z-index:3;font-weight:700;color:var(--accent);text-shadow:0 0 18px rgba(232,184,74,.35)}:root{--sq: clamp(44px, 4.4vmin, 72px);--sq-gap: calc(var(--sq) * .3);--sq-edge: 14px;--dock-bg: rgba(28,34,38,.34);--dock-rim: rgba(255,255,255,.14);--dock-shadow: 0 10px 34px rgba(0,0,0,.32)}.preview-controls{position:fixed;top:calc(var(--sq-edge) + var(--sq) * 1.5);right:var(--sq-edge);z-index:3;display:flex;flex-direction:column;align-items:center;gap:var(--sq-gap);pointer-events:auto;padding:calc(var(--sq) * .3) calc(var(--sq) * .2);border-radius:calc(var(--sq) * .45);background:var(--dock-bg);border:1px solid var(--dock-rim);box-shadow:var(--dock-shadow);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35)}.pv-sq{position:relative;width:var(--sq);height:var(--sq);padding:0;border-radius:calc(var(--sq) * .3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#f2f7f9;background:transparent;border:1px solid transparent;font:600 11px/1 Geist,ui-sans-serif,system-ui;letter-spacing:.02em;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));transition:color .15s,background .15s,transform .12s;box-shadow:none;transform:none}.pv-sq:hover{transform:none;box-shadow:none}.pv-sq:focus-visible{box-shadow:none}.pv-sq>svg{width:calc(var(--sq) * .6);height:calc(var(--sq) * .6);flex:none;opacity:.94}.pv-sq:hover{background:#ffffff24}.pv-sq:hover>svg{opacity:1}.pv-sq:active{transform:scale(.94)}.pv-sq:focus-visible{outline:2px solid #E8B84A;outline-offset:2px}.pv-sq:disabled{opacity:.55;cursor:progress}.pv-sq.on,.pv-sq.armed{color:#e8b84a;background:#e8b84a29}.pv-sq.off{color:#f2f7f98c}.pv-sq.ok{color:#6fbf8e;background:#6fbf8e29}.pv-sq.bad{color:#d2705e;background:#d2705e29}.preview-walk-toggle.off{color:#e8b84a;background:#e8b84a29}.preview-walk-toggle.off svg{animation:walk-stride 1.15s ease-in-out infinite}@keyframes walk-stride{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.pv-tip{position:absolute;right:calc(100% + var(--sq) * .45);top:50%;transform:translate(4px,-50%);white-space:nowrap;padding:6px 9px;border-radius:6px;color:inherit;background:#141a1edb;border:1px solid currentColor;font:600 11px/1 Geist,ui-sans-serif,system-ui;letter-spacing:.02em;opacity:0;pointer-events:none;transition:opacity .12s,transform .12s}.pv-sq:hover .pv-tip,.pv-sq:focus-visible .pv-tip,.pv-sq.tell .pv-tip{opacity:1;transform:translateY(-50%)}@media (hover: none){.pv-sq:hover .pv-tip{opacity:0;transform:translate(4px,-50%)}.pv-sq.tell .pv-tip{opacity:1;transform:translateY(-50%)}}.pv-opacity{position:relative;display:inline-flex}.pv-pop{position:absolute;right:calc(100% + var(--sq) * .45);top:50%;transform:translateY(-50%);display:none;align-items:center;gap:10px;font:600 12px/1 Geist,ui-sans-serif,system-ui;color:#e3edf1;background:#141a1edb;border:1px solid #77A6BF;border-radius:calc(var(--sq) * .25);height:var(--sq);padding:0 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px #00000059;transform-origin:right center}.pv-opacity.open .pv-pop{display:flex;animation:pop-in .18s cubic-bezier(.2,.8,.2,1) both}@keyframes pop-in{0%{opacity:0;transform:translate(10px,-50%) scale(.96)}to{opacity:1;transform:translateY(-50%) scale(1)}}.pv-opacity.open .pv-tip{opacity:0}.pv-opacity.open .pv-sq{color:#e8b84a;background:#e8b84a29}.pv-k{opacity:.8}.pv-val{min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.pv-pop .pv-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:150px;height:3px;margin:0;cursor:pointer;border-radius:2px;outline:none;background:linear-gradient(90deg,#77A6BF var(--p, 100%),rgba(255,255,255,.16) var(--p, 100%))}.pv-pop .pv-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#e3edf1;border:2px solid #77A6BF;box-shadow:0 1px 4px #00000080;transition:transform .12s,box-shadow .12s}.pv-pop .pv-slider:hover::-webkit-slider-thumb,.pv-pop .pv-slider:active::-webkit-slider-thumb{transform:scale(1.3);box-shadow:0 0 10px #77a6bfcc,0 1px 4px #00000080}.pv-pop .pv-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#e3edf1;border:2px solid #77A6BF;box-shadow:0 1px 4px #00000080}.pv-pop .pv-slider::-moz-range-track{height:3px;border-radius:2px;background:#ffffff29}.pv-pop .pv-slider::-moz-range-progress{height:3px;border-radius:2px;background:#77a6bf}.pv-pop .pv-slider:focus-visible{outline:2px solid #E8B84A;outline-offset:4px}.ic-model .inner{transition:opacity .25s}.pv-opacity-btn:hover .ic-model .inner{animation:model-breathe 1.6s ease-in-out infinite}.pv-opacity.open .ic-model .inner{animation:none;opacity:1}@keyframes model-breathe{0%,to{opacity:1}50%{opacity:.3}}.pv-sq svg [class]{transform-box:fill-box;transform-origin:center}.preview-fp-toggle:not(.pv-opacity-btn):hover .ic-plan .walls{animation:plan-build 1.5s ease-in-out infinite}@keyframes plan-build{0%,to{opacity:1;transform:scale(1)}45%{opacity:.15;transform:scale(.7)}}.pv-measure:hover .ic-ruler .ticks path{transform-origin:top;animation:tick-stretch 1.5s ease-in-out infinite}.pv-measure:hover .ic-ruler .ticks path:nth-child(2){animation-delay:.15s}.pv-measure:hover .ic-ruler .ticks path:nth-child(3){animation-delay:.3s}@keyframes tick-stretch{0%,to{transform:scaleY(1)}40%{transform:scaleY(1.7)}}.preview-points-toggle:hover .ic-points .spray{animation:spray-drift 1.6s ease-in-out infinite}.preview-points-toggle:hover .ic-points .body{animation:body-shed 1.6s ease-in-out infinite}@keyframes spray-drift{0%,to{transform:translate(0);opacity:1}50%{transform:translate(1.4px,-1.4px);opacity:.35}}@keyframes body-shed{0%,to{opacity:1}50%{opacity:.7}}.preview-share-toggle:hover .ic-camera .lens{animation:lens-blink 1.5s ease-in-out infinite}.preview-share-toggle:hover .ic-camera .flash{animation:lens-flash 1.5s ease-in-out infinite}@keyframes lens-blink{0%,to{transform:scale(1)}45%{transform:scale(.55)}}@keyframes lens-flash{0%,35%,60%,to{opacity:0}47%{opacity:1}}.preview-share-toggle:hover .ic-link .l{animation:link-l 1.5s ease-in-out infinite}.preview-share-toggle:hover .ic-link .r{animation:link-r 1.5s ease-in-out infinite}.preview-share-toggle:hover .ic-link .mid{animation:link-mid 1.5s ease-in-out infinite}@keyframes link-l{0%,to{transform:translate(0)}45%{transform:translate(-1.3px,1.3px)}}@keyframes link-r{0%,to{transform:translate(0)}45%{transform:translate(1.3px,-1.3px)}}@keyframes link-mid{0%,to{opacity:1}45%{opacity:.2}}.preview-walk-toggle:hover .ic-walk{animation:walk-stride 1.15s ease-in-out infinite}.preview-collision-toggle:hover .ic-voxel .inner{animation:model-breathe 1.5s ease-in-out infinite}.preview-collision-toggle:hover .ic-voxel .cell{animation:cell-fill 1.5s ease-in-out infinite}@keyframes cell-fill{0%,to{opacity:0;transform:scale(.6)}50%{opacity:.9;transform:scale(1)}}.pv-compare-wrap{position:fixed;top:calc(var(--sq-edge) + var(--sq) * 1.5);left:0;right:0;z-index:4;display:flex;justify-content:center;pointer-events:none}.pv-compare{pointer-events:auto;box-sizing:content-box;padding:calc(var(--sq) * .2);border-radius:calc(var(--sq) * .45);background:var(--dock-bg);border:1px solid var(--dock-rim);box-shadow:var(--dock-shadow);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35)}.pv-compare:hover{background:#fff3}.pv-compare.on{color:#e8b84a;background:#e8b84a2e;border-color:#e8b84a8c}.ic-compare .bar{transform-box:fill-box;transform-origin:center;transition:transform .25s ease}.ic-compare .plan{opacity:.55;transition:opacity .25s}.pv-compare:hover .ic-compare .bar{animation:cmp-wipe 1.4s ease-in-out infinite}.pv-compare:hover .ic-compare .plan{animation:cmp-uncover 1.4s ease-in-out infinite}.pv-compare.on .ic-compare .bar{animation:none;transform:none}.pv-compare.on .ic-compare .plan{opacity:1;animation:none}.pv-compare.on .ic-compare .plan path{stroke-dasharray:none}@keyframes cmp-wipe{0%,to{transform:translate(0)}25%{transform:translate(-3.5px)}75%{transform:translate(3.5px)}}@keyframes cmp-uncover{0%,to{opacity:.55}25%{opacity:.25}75%{opacity:1}}body.walk-active .pv-compare,body.compare-active .preview-controls,body.compare-active .timeline-transport,body.compare-active .rail-transport,body.compare-active .timeline,body.compare-active .pv-add-wrap,body.compare-active .pv-walk-hint{display:none}.cmp-divider{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;z-index:3;background:#ffffffd9;box-shadow:0 0 0 1px #00000040,0 0 12px #0006;cursor:ew-resize;touch-action:none}.cmp-divider:before{content:"";position:absolute;top:0;bottom:0;left:-21px;width:44px}.cmp-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#ffffffd9;background:#141a1e8c;border:1px solid rgba(255,255,255,.55);font:500 10px/1 Geist,ui-sans-serif,system-ui;letter-spacing:.05em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .12s,border-color .12s,color .12s}.cmp-divider:hover .cmp-knob,.cmp-divider.dragging .cmp-knob{color:#e8b84a;border-color:#e8b84a;transform:translate(-50%,-50%) scale(1.15)}@media (prefers-reduced-motion: reduce){.ic-compare .bar,.ic-compare .plan,.ic-model .inner,.preview-walk-toggle.off svg,.pv-sq:hover svg [class]{animation:none!important}.pv-opacity.open .pv-pop{animation:none}}.pv-walk-hint{max-width:236px;font-weight:500;font-size:11px;line-height:1.45;color:#b9c6cc;letter-spacing:.01em;display:none;opacity:0;transform:translateY(-4px);transition:opacity .28s ease,transform .28s ease}.pv-ctl.pv-walk-hint{display:none}.pv-ctl.pv-walk-hint.on{display:block}.pv-walk-hint.on{animation:hint-in .01s forwards}@keyframes hint-in{to{opacity:1;transform:translateY(0)}}.preview-bg-toggle{position:fixed;left:calc(var(--sq-edge) + var(--sq) / 2);bottom:var(--sq-edge);z-index:3;background:var(--dock-bg);border:1px solid var(--dock-rim);box-shadow:var(--dock-shadow);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35)}.preview-bg-toggle .ic-contrast{transition:transform .2s ease}.preview-bg-toggle.light .ic-contrast{transform:rotate(180deg)}.wasd-help{position:fixed;left:var(--sq-edge);bottom:calc(var(--sq-edge) + var(--sq) + 10px);z-index:3;pointer-events:none;color:#f0f2f5a8;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.wasd-help .wasd{display:block;width:calc(var(--sq) * 2);height:auto}.wasd-help .wasd text{font:700 11px Geist,ui-sans-serif,system-ui}body.bg-light .wasd-help{color:#181c2099;filter:drop-shadow(0 1px 1px rgba(255,255,255,.5))}.pv-bim{font:800 15px/1 Geist,ui-sans-serif,system-ui;letter-spacing:.04em}.pv-bim span{transition:color .15s}.pv-bim:hover span:nth-child(1){color:#e0473c}.pv-bim:hover span:nth-child(2){color:#35c06a}.pv-bim:hover span:nth-child(3){color:#2e8fe6}.walk-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(120% 90% at 50% 55%,#060c0c8c,#040808f5);opacity:0;transition:opacity .26s ease}.walk-veil.on{opacity:1;transition-duration:.24s}.pv-render-rate{position:fixed;left:12px;bottom:12px;z-index:3;font:500 12px/1 Geist Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;color:#e8b84a}.pv-render-rate.idle{color:#6fbf8e}.walk-reticle{position:fixed;left:0;top:0;z-index:2;pointer-events:none;will-change:transform;--wr-size: 44px}.wr-disc{width:var(--wr-size);height:var(--wr-size);border-radius:50%;background:#e8b84ab3;border:calc(var(--wr-size) * .0667) solid rgba(255,255,255,.92);box-shadow:0 2px 9px #00000080,0 0 0 1px #00000040}.wr-cone{position:absolute;left:50%;transform:translate(-50%);top:calc(var(--wr-size) * -.4333);width:0;height:0;border-left:calc(var(--wr-size) * .3) solid transparent;border-right:calc(var(--wr-size) * .3) solid transparent;border-bottom:calc(var(--wr-size) * .4667) solid rgba(232,184,74,.85);filter:drop-shadow(0 -1px 1px rgba(0,0,0,.45))}.walk-veil{transition:opacity .56s cubic-bezier(.2,.72,.16,1)}@keyframes walk-dolly{0%{transform:scale(1.045)}to{transform:scale(1)}}.walk-dolly{animation:walk-dolly .62s cubic-bezier(.2,.72,.16,1) both}@media (prefers-reduced-motion: reduce){.walk-dolly{animation:none}.preview-walk-toggle.off svg{animation:none}}.rail-transport{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:10px;z-index:5;padding:8px 12px;border-radius:999px;background:#14161ab8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;box-shadow:0 4px 20px #00000059}.rail-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:0;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer}.rail-btn:hover{background:#fff3}.rail-scrub{width:min(46vw,320px);accent-color:#fff;cursor:pointer}@media (max-width: 520px){.rail-scrub{width:42vw}}.timeline-transport{--tl-accent: #4cc6ff;--tl-glow: rgba(76, 198, 255, .85);--tl-glow-soft: rgba(76, 198, 255, .5);--tl-dark: rgba(0, 0, 0, .45);position:fixed;left:50%;bottom:14vh;transform:translate(-50%);display:flex;align-items:center;gap:14px;z-index:5;width:min(560px,88vw);padding:0;background:none;box-shadow:none;color:#eaf6ff}.timeline-transport .timeline-play{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:none;color:var(--tl-accent);cursor:pointer;filter:drop-shadow(0 0 5px var(--tl-glow-soft)) drop-shadow(0 1px 1.5px var(--tl-dark));transition:transform .14s cubic-bezier(.34,1.56,.64,1),filter .14s ease}.timeline-transport .timeline-play:hover{transform:scale(1.14);filter:drop-shadow(0 0 11px var(--tl-glow)) drop-shadow(0 1px 1.5px var(--tl-dark))}.timeline-transport .timeline-play:active{transform:scale(.86)}.timeline-transport .timeline-play:focus-visible{outline:2px solid var(--tl-accent);outline-offset:3px}.timeline-transport .timeline-play{position:relative}.timeline-transport .timeline-play.nudge{animation:tl-nudge 2s ease-in-out infinite}.timeline-transport .timeline-play.nudge:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;pointer-events:none;border:2px solid var(--tl-accent);opacity:0;animation:tl-ping 2s ease-out infinite}@keyframes tl-nudge{0%,to{transform:scale(1);filter:drop-shadow(0 0 5px var(--tl-glow-soft)) drop-shadow(0 1px 1.5px var(--tl-dark))}50%{transform:scale(1.12);filter:drop-shadow(0 0 16px var(--tl-glow)) drop-shadow(0 1px 1.5px var(--tl-dark))}}@keyframes tl-ping{0%{transform:scale(.7);opacity:.9}70%{transform:scale(1.9);opacity:0}to{transform:scale(1.9);opacity:0}}.timeline-transport .timeline-play.nudge:hover,.timeline-transport .timeline-play.nudge:active{animation:none}.timeline-transport .timeline-ico{display:inline-flex}.timeline-transport .timeline-ico svg{width:22px;height:22px;display:block}.timeline-transport .timeline-scrub{flex:1 1 auto;height:20px;margin:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border-radius:0;filter:drop-shadow(0 0 5px var(--tl-glow-soft)) drop-shadow(0 1px 1.5px var(--tl-dark))}.timeline-transport .timeline-scrub::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--tl-accent) var(--p, 0%),rgba(150,160,170,.45) var(--p, 0%));box-shadow:0 0 6px var(--tl-glow-soft)}.timeline-transport .timeline-scrub::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:-7px;width:5px;height:18px;border-radius:3px;border:0;background:var(--tl-accent);box-shadow:0 0 7px var(--tl-glow),0 1px 2px var(--tl-dark);transition:transform .14s cubic-bezier(.34,1.56,.64,1),box-shadow .14s ease}.timeline-transport .timeline-scrub:hover::-webkit-slider-thumb{transform:scale(1.14);box-shadow:0 0 13px var(--tl-glow),0 1px 2px var(--tl-dark)}.timeline-transport .timeline-scrub:active::-webkit-slider-thumb{transform:scaleY(1.22) scaleX(1.1)}.timeline-transport .timeline-scrub:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #4cc6ff59,0 0 12px var(--tl-glow)}.timeline-transport .timeline-scrub::-moz-range-track{height:4px;border-radius:2px;background:#96a0aa73}.timeline-transport .timeline-scrub::-moz-range-progress{height:4px;border-radius:2px;background:var(--tl-accent);box-shadow:0 0 6px var(--tl-glow-soft)}.timeline-transport .timeline-scrub::-moz-range-thumb{width:5px;height:18px;border-radius:3px;border:0;background:var(--tl-accent);box-shadow:0 0 7px var(--tl-glow),0 1px 2px var(--tl-dark);transition:transform .14s ease,box-shadow .14s ease}.timeline-transport .timeline-scrub:hover::-moz-range-thumb{transform:scale(1.14);box-shadow:0 0 13px var(--tl-glow),0 1px 2px var(--tl-dark)}.timeline-transport .timeline-time{flex:0 0 auto;font-variant-numeric:tabular-nums;font:500 15px/1 ui-monospace,SF Mono,JetBrains Mono,Roboto Mono,Cascadia Code,Consolas,monospace;color:#eaf6ff;min-width:96px;text-align:right;letter-spacing:.09em;text-shadow:0 0 12px rgba(0,0,0,.7),0 0 10px rgba(76,198,255,.45),0 2px 4px rgba(0,0,0,.55)}.timeline-transport .timeline-scrub,.timeline-transport .timeline-time{transition:opacity .28s ease}.timeline-transport.controlled .timeline-scrub{opacity:0;pointer-events:none}.timeline-transport.controlled .timeline-time{opacity:0}@media (prefers-reduced-motion: reduce){.timeline-transport .timeline-scrub,.timeline-transport .timeline-time{transition:none}.timeline-transport .timeline-play,.timeline-transport .timeline-scrub::-webkit-slider-thumb,.timeline-transport .timeline-scrub::-moz-range-thumb{transition:none}.timeline-transport .timeline-play:hover,.timeline-transport .timeline-play:active,.timeline-transport .timeline-scrub:hover::-webkit-slider-thumb,.timeline-transport .timeline-scrub:active::-webkit-slider-thumb{transform:none}.timeline-transport .timeline-play.nudge{animation:none;filter:drop-shadow(0 0 14px var(--tl-glow)) drop-shadow(0 1px 1.5px var(--tl-dark))}.timeline-transport .timeline-play.nudge:after{animation:none;opacity:.6;transform:scale(1.25)}}.tledit-root{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:70;display:flex;flex-direction:column;gap:6px;width:min(92vw,900px);font:500 12px/1.3 system-ui,sans-serif;color:#d8e6e6}.tledit-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:#0c1012eb;border:1px solid rgba(120,220,220,.28);box-shadow:0 10px 30px #00000073}.tledit-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border:0;border-radius:50%;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .12s ease}.tledit-btn svg{width:24px;height:24px;display:block}.tledit-btn:hover{background:#78dcdc47}.tledit-btn:active{background:#78dcdc66}.tledit-sep{width:1px;height:20px;background:#ffffff26;margin:0 2px}.tledit-readout{white-space:nowrap;color:#fffc}.tledit-frame-input{width:52px}.tledit-frame-input,.tledit-num{background:#ffffff14;border:1px solid rgba(120,220,220,.3);border-radius:5px;color:#e6fbfb;font:inherit;padding:3px 5px}.tledit-field{display:flex;align-items:center;gap:5px;white-space:nowrap}.tledit-field .tledit-num{width:48px}.tledit-select{background:#ffffff14;border:1px solid rgba(120,220,220,.3);border-radius:5px;color:#e6fbfb;font:inherit;padding:3px 5px}.tledit-smooth{width:70px;accent-color:rgba(120,220,220,.9);cursor:pointer}.tledit-save{border:1px solid rgba(120,220,220,.5);border-radius:7px;background:#78dcdc29;color:#e6fbfb;padding:7px 14px;font:inherit;cursor:pointer}.tledit-save:hover:not(:disabled){background:#78dcdc47}.tledit-save:disabled{opacity:.5;cursor:default}.tledit-close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:#ffffffb3;cursor:pointer}.tledit-close:hover{background:#ffffff26;color:#fff}.tledit-track{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#0c1012d9;border:1px solid rgba(120,220,220,.2)}.tledit-track-label{min-width:52px;color:#ffffffb3}.tledit-ruler{position:relative;flex:1;height:40px;border-radius:4px;background:#ffffff0f;cursor:pointer;touch-action:none}.tledit-tick{position:absolute;bottom:2px;transform:translate(-50%);font:500 10px/1 ui-monospace,monospace;color:#ffffff8c;pointer-events:none;white-space:nowrap}.tledit-tick:before{content:"";position:absolute;left:50%;bottom:100%;margin-bottom:2px;width:1px;height:5px;background:#ffffff40;transform:translate(-50%)}.tledit-key{position:absolute;top:50%;width:12px;height:12px;transform:translate(-50%,-50%) rotate(45deg);background:#78dcdcd9;border:1px solid rgba(230,251,251,.9);cursor:grab;touch-action:none}.tledit-key-selected{background:#e8b84a;border-color:#fff}.tledit-key-playhead{box-shadow:0 0 0 3px #ffffff59}.tledit-playhead{position:absolute;top:-6px;bottom:14px;width:3px;background:#ff8a3d;pointer-events:auto;cursor:ew-resize;touch-action:none;box-shadow:0 0 6px #ff8a3dbf}.tledit-playhead:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #ff8a3d}.tledit-playhead-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:1px 6px;border-radius:4px;background:#ff8a3d;color:#1a1200;font:700 11px/1.4 ui-monospace,monospace;white-space:nowrap;pointer-events:none}.pv-ctl{display:flex;align-items:center;gap:8px;font:600 12px/1 Geist,ui-sans-serif,system-ui;color:#e3edf1;background:#141a1eb8;border:1px solid #77A6BF;border-radius:6px;padding:6px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px #00000059}.preview-fp-toggle.armed{border-color:#e8b84a;color:#e8b84a}.i-appearance{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='21' y1='4' x2='14' y2='4'/%3E%3Cline x1='10' y1='4' x2='3' y2='4'/%3E%3Cline x1='21' y1='12' x2='12' y2='12'/%3E%3Cline x1='8' y1='12' x2='3' y2='12'/%3E%3Cline x1='21' y1='20' x2='16' y2='20'/%3E%3Cline x1='12' y1='20' x2='3' y2='20'/%3E%3Cline x1='14' y1='2' x2='14' y2='6'/%3E%3Cline x1='8' y1='10' x2='8' y2='14'/%3E%3Cline x1='16' y1='18' x2='16' y2='22'/%3E%3C/svg%3E")}.i-text{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 7 4 4 20 4 20 7'/%3E%3Cline x1='9' y1='20' x2='15' y2='20'/%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3C/svg%3E")}.i-camera{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E")}.i-timeline{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 2 7l10 5 10-5z'/%3E%3Cpath d='m2 17 10 5 10-5'/%3E%3Cpath d='m2 12 10 5 10-5'/%3E%3C/svg%3E")}.i-notes{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}.i-colors{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='21' x2='4' y2='14'/%3E%3Cline x1='4' y1='10' x2='4' y2='3'/%3E%3Cline x1='12' y1='21' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12' y2='3'/%3E%3Cline x1='20' y1='21' x2='20' y2='16'/%3E%3Cline x1='20' y1='12' x2='20' y2='3'/%3E%3Cline x1='1' y1='14' x2='7' y2='14'/%3E%3Cline x1='9' y1='8' x2='15' y2='8'/%3E%3Cline x1='17' y1='16' x2='23' y2='16'/%3E%3C/svg%3E")}:root{--ico-chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E")}.screen.welcome{display:grid;place-items:center;cursor:grab}.screen.welcome:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;box-shadow:var(--view-edge-shadow);background:var(--view-edge)}.screen.welcome .card{position:static;top:auto;left:auto;transform:none;z-index:1;animation:card-rise .7s cubic-bezier(.16,1,.3,1) both}.screen.welcome .card>*{animation:splat-resolve .85s cubic-bezier(.16,1,.3,1) both}.screen.welcome .card>*:nth-child(1){animation-delay:.1s}.screen.welcome .card>*:nth-child(2){animation-delay:.22s}.screen.welcome .card>*:nth-child(3){animation-delay:.34s}.screen.welcome .card>*:nth-child(4){animation-delay:.46s}.screen.welcome .card>*:nth-child(5){animation-delay:.58s}.screen.welcome .logo{position:relative}.screen.welcome .logo:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:var(--r);pointer-events:none;animation:halo-bloom 2.2s ease-out .6s both}@keyframes card-rise{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes splat-resolve{0%{opacity:0;transform:translateY(14px) scale(.96);filter:blur(14px)}60%{filter:blur(0)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes halo-bloom{0%{box-shadow:0 0 #e8b84a00}40%{box-shadow:0 0 30px 5px #e8b84a80}to{box-shadow:0 0 16px #e8b84a38}}.welcome-cloud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;display:block}.screen.welcome:has(.welcome-lidar):after{display:none}.screen.welcome:has(.welcome-lidar){cursor:default}.lh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;display:flex;flex-direction:column;justify-content:center;padding:0 8vw}.lh-kicker{color:#5b9bff;letter-spacing:.42em;font-size:11px;text-transform:uppercase;opacity:.85;margin-bottom:18px}.lh-h1{color:#eaf1ff;font-size:clamp(42px,7.5vw,104px);margin:0;font-weight:600;letter-spacing:-.025em;line-height:.96}.lh-h1 span{display:block;color:#6f8ec0}.lh-lead{color:#8197bb;max-width:34ch;font-size:clamp(14px,1.35vw,18px);line-height:1.55;margin:22px 0 0}.lh-cta{pointer-events:auto;margin-top:34px;display:flex;gap:14px;align-items:center}.screen.welcome .lh-btn{font:inherit;font-size:14px;font-weight:500;letter-spacing:.02em;padding:13px 26px;border-radius:2px;border:1px solid #2a3f63;background:#0b1626;color:#cfe0ff;box-shadow:none;cursor:pointer;transition:background .2s,border-color .2s,color .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.screen.welcome .lh-btn:hover{background:#13243d;border-color:#5b9bff;color:#fff;transform:none}.screen.welcome .lh-btn.primary{background:#1d4ed8;border-color:#1d4ed8;color:#fff;text-shadow:none}.screen.welcome .lh-btn.primary:hover{background:#2563eb;border-color:#2563eb}.screen.welcome .lh-btn:focus-visible{outline:2px solid #5b9bff;outline-offset:2px;box-shadow:none}.lh-hud{position:fixed;left:8vw;bottom:34px;z-index:2;pointer-events:none;color:#3f5780;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.wl-back{align-self:flex-start;background:none;border:1px solid transparent;box-shadow:none;color:var(--muted);font-size:11px;letter-spacing:.06em;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer}.wl-back:hover{color:var(--ink);background:var(--glass-3);border-color:var(--hairline);transform:none}@media (max-width: 720px){.lh-overlay{padding:0 6vw}.lh-hud{left:6vw;bottom:22px}.lh-cta{flex-wrap:wrap}}@media (max-width: 768px){.drawer{width:100vw}.timeline{width:96vw;bottom:calc(var(--sb-h) + 8px)}.header{flex-direction:column;gap:8px}.layers,.npanel,.float-dock{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.acc-body{transition:opacity var(--t) ease}}.fp-status{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);padding:2px 2px 4px}.fp-status .dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 7px 1px currentColor}.fp-status.ok{color:var(--ok)}.fp-status.off{color:var(--danger)}.fp-status.stale{color:var(--warn)}.fp-status .recheck{margin-left:auto;cursor:pointer;color:var(--muted);text-decoration:underline}.pub-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#0209099e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:24px}.pub-dialog{width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-float);padding:22px 24px 20px;display:flex;flex-direction:column;gap:18px;font-family:var(--sans)}.pub-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.pub-title{font-size:26px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}.pub-close{flex:none;width:28px;height:28px;line-height:1;font-size:20px;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;transition:color var(--t-fast) ease,background var(--t-fast) ease}.pub-close:hover{color:var(--ink);background:var(--surface2)}.pub-section{display:flex;flex-direction:column;gap:9px}.pub-section-head{font-size:13px;font-weight:600;color:var(--ink)}.pub-list{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--glass-3)}.pub-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--hairline)}.pub-row:last-child{border-bottom:none}.pub-row-ico{flex:none;color:var(--accent);font-size:15px;opacity:.85}.pub-row-meta{flex:1;min-width:0}.pub-row-name{font-size:13px;color:var(--ink)}.pub-row-file{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub-row-size{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted)}.pub-row-fmt{flex:none;font:600 10px/1 var(--mono);letter-spacing:.05em;padding:3px 6px;border-radius:var(--r-sm);background:var(--glass-3);color:var(--muted);border:1px solid var(--line)}.pub-row-fmt.fmt-sog{color:var(--ok);border-color:var(--line)}.pub-row-fmt.fmt-ply{color:var(--accent);border-color:var(--accent-edge)}.pub-levers{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:13px}.pub-detail{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.pub-select{font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--glass-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 8px;cursor:pointer}.pub-override{display:inline-flex;align-items:center;gap:7px;color:var(--ink);cursor:pointer}.pub-override input{accent-color:var(--accent);cursor:pointer}.pub-over-note{display:none;font-size:12px;font-weight:600;color:var(--danger);padding:8px 11px;border:1px solid var(--danger);border-radius:var(--r-sm);background:#e0635f1a}.pub-over-note.show{display:block}.pub-details{border-top:1px solid var(--hairline);padding-top:12px}.pub-details>summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.pub-details>summary::-webkit-details-marker{display:none}.pub-details>summary:before{content:"▸";font-size:10px;transition:transform var(--t-fast) ease}.pub-details[open]>summary{color:var(--ink);margin-bottom:9px}.pub-details[open]>summary:before{transform:rotate(90deg)}.pub-bullets{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.pub-bullets li{font-size:12px;color:var(--muted);line-height:1.4}.pub-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:2px}.pub-btn{font-family:var(--mono);font-size:13px;color:var(--ink);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 16px;cursor:pointer;transition:background var(--t-fast) ease,border-color var(--t-fast) ease,color var(--t-fast) ease}.pub-btn:hover{background:var(--line)}.pub-btn-zip{color:var(--sel)}.pub-btn-primary{color:#1a1a1a;font-weight:600;background:var(--accent);border-color:var(--accent-edge);box-shadow:var(--glow-soft)}.pub-btn-primary:hover{background:var(--accent-hi)}.pub-btn-primary:disabled{background:var(--surface2);color:var(--muted);border-color:var(--line);box-shadow:none;cursor:not-allowed;font-weight:400}.pub-btn-primary.pub-btn-over:not(:disabled){background:var(--danger);border-color:var(--danger);box-shadow:none}.pub-split{position:relative;display:inline-flex}.pub-split-btn{display:inline-flex;align-items:center;gap:8px}.pub-caret{font-size:10px;opacity:.9}.pub-menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:264px;display:none;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-float);overflow:hidden;z-index:5}.pub-split.open .pub-menu{display:flex}.pub-menu-item{text-align:left;background:transparent;border:none;cursor:pointer;padding:11px 14px;border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;gap:3px;transition:background var(--t-fast) ease}.pub-menu-item:last-child{border-bottom:none}.pub-menu-item:hover{background:var(--surface2)}.pub-mi-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.pub-mi-label{font-size:13px;font-weight:600;color:var(--ink)}.pub-mi-size{font-family:var(--mono);font-size:12px;color:var(--muted)}.pub-mi-hint{font-size:11px;color:var(--muted)}.pub-menu-item.pub-mi-over .pub-mi-size{color:var(--danger)}.pub-menu-item:disabled{cursor:not-allowed;opacity:.5}.pub-menu-item:disabled:hover{background:transparent}.pub-status{display:none;margin:10px 0 0;padding:8px 10px;border-radius:6px;background:var(--glass-3);color:var(--ink);font-size:12px;border:1px solid var(--line)}.pub-status.show{display:block}.pub-status-err{color:var(--danger);border-color:var(--danger)}.wl-card-wrap{max-width:660px;width:min(92vw,660px)}.wl-hd{display:flex;align-items:center;gap:10px}.wl-hd h1{margin:0}.wl-back{background:none;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:4px 10px;cursor:pointer}.wl-back:hover{color:var(--ink);border-color:var(--accent-edge)}.wl-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:14px 0;max-height:52vh;overflow-y:auto}.wl-card{position:relative;display:flex;flex-direction:column;text-align:left;padding:0;background:var(--glass-2);border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;color:var(--ink);box-shadow:var(--sh-1)}.wl-card:hover{border-color:var(--accent-edge);transform:translateY(-1px)}.wl-card-bad{cursor:default;opacity:.7}.wl-thumb{width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--view);display:block}.wl-thumb-empty,.wl-thumb-bad{display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--muted)}.wl-thumb-bad{color:var(--warn)}.wl-meta{padding:8px 10px}.wl-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wl-sub{font-size:11px;color:var(--muted);margin-top:2px}.wl-file{font-size:10px;color:var(--muted);opacity:.7;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wl-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.wl-strip-hd{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 -4px}.wl-card-hold{position:relative}.wl-x{position:absolute;top:4px;right:4px;width:20px;height:20px;line-height:18px;border-radius:50%;border:1px solid var(--line);background:#0a1a1abf;color:var(--ink);cursor:pointer;opacity:0;transition:opacity .12s;font-size:13px;padding:0}.wl-card-hold:hover .wl-x{opacity:1}.wl-x:hover{border-color:var(--danger);color:var(--danger)}#gl{transition:filter .6s var(--ease, ease),opacity .6s var(--ease, ease)}body.welcome-bg #gl{filter:blur(16px) brightness(.55) saturate(.8);opacity:.5}.wl-arrow{position:absolute;bottom:8px;right:8px;color:var(--muted);font-size:15px;opacity:0;transform:translate(-3px);transition:opacity .12s,transform .12s,color .12s;pointer-events:none}.wl-card-hold:hover .wl-arrow,.wl-card:hover .wl-arrow{opacity:1;transform:none;color:var(--accent)}.split-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.split-bar{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#d9542a;pointer-events:auto;cursor:ew-resize;z-index:7}.split-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:44px;border-radius:6px;background:#d9542a;border:1px solid #0A1A1A;box-shadow:0 1px 4px #00000080}.split-side-label{position:absolute;top:12px;padding:3px 8px;border-radius:4px;font:11px ui-monospace,monospace;color:#e6efe9;background:#0a1a1ab8;pointer-events:none}.split-side-a{left:12px}.split-side-b{right:12px}.pin-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.pin-dot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;background:#14151a;color:#e9e9ec;border:1px solid var(--hairline, #3a3a42);font:500 12px/1 ui-monospace,monospace;font-variant-numeric:tabular-nums;cursor:pointer;pointer-events:auto;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.pin-dot[data-status=open]{background:#b8860b;color:#1a1205;border-color:#e0a91a}.pin-dot[data-status=resolved]{background:#2e7d4f;color:#eaf6ee;border-color:#4caf7a}.pin-dot[data-status=closed]{background:#3a3a42;color:#9a9aa4;border-color:#55555f}.pin-dot.hover{background:var(--annot);color:#1a1205;border-color:var(--annot-hi);box-shadow:0 0 0 1px var(--annot-hi),0 0 14px -2px var(--annot);transform:translate(-50%,-50%) scale(1.15);z-index:2}.pin-dot.selected{background:var(--annot);color:#1a1205;border-color:var(--annot-hi);box-shadow:0 0 0 1px var(--annot-hi),0 0 18px -2px var(--annot)}.pin-label{position:absolute;transform:translateY(-50%);display:none;pointer-events:none;white-space:nowrap;padding:2px 7px;border-radius:3px;background:#14151aeb;color:#e9e9ec;border:1px solid var(--annot-hi);font:500 12px/1.5 var(--sans);unicode-bidi:plaintext}.pin-label.show{display:block}.pin-card{position:fixed;z-index:7;width:260px;max-width:calc(100vw - 24px);padding:10px 12px;border-radius:4px;background:#14151af7;color:#e9e9ec;border:1px solid var(--annot-hi);box-shadow:0 8px 28px -8px #000c;font:400 13px/1.6 var(--sans)}.pin-card .pin-close{position:absolute;top:4px;right:6px;background:none;border:0;color:#9a9aa2;cursor:pointer;font-size:16px;line-height:1}.pin-card-title{font-weight:600;color:var(--annot);margin-bottom:4px;padding-right:14px;unicode-bidi:plaintext}.pin-card-body{white-space:pre-wrap;color:#c9c9d0;unicode-bidi:plaintext;line-height:1.65}.pin-bim{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;line-height:1.5}.pin-bim-head{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.pin-bim-class{color:#7fd4c1;letter-spacing:.02em}.pin-bim-type{color:#8a8a94;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-bim-row{display:flex;gap:10px}.pin-bim-label{flex:0 0 74px;color:#8a8a94}.pin-bim-value{color:#e8e8ee;font-variant-numeric:tabular-nums;font-family:var(--mono)}.pin-bim-empty{color:#8a8a94;font-style:italic}.pin-bim-link{display:inline-block;margin-top:6px;color:var(--annot-hi);text-decoration:none;border-bottom:1px dotted var(--annot-hi);unicode-bidi:plaintext}.pin-bim-link:hover{color:var(--annot);border-bottom-style:solid}.pin-card-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.pin-card-title-input,.pin-card-body-input{width:100%;box-sizing:border-box;margin-bottom:6px;padding:4px 6px;background:#101116;color:#e9e9ec;border:1px solid var(--hairline, #3a3a42);border-radius:3px;font:inherit}.pin-card-body-input{min-height:72px;resize:vertical}.ann-tab{display:flex;flex-direction:column;gap:8px}.ann-actions{display:flex;gap:6px}.ann-actions .ann-add{flex:1}.ann-tool.active{border-color:var(--annot);color:var(--annot)}.ann-group-head{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#8a8a93;margin:6px 0 2px}.ann-row,.ann-unplaced-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:5px 6px 5px 8px;min-height:34px;border-radius:3px;border:1px solid var(--hairline, #3a3a42);cursor:pointer}.ann-unplaced-row{grid-template-columns:1fr auto auto}.ann-row:hover,.ann-unplaced-row:hover{border-color:var(--annot)}.ann-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.ann-warn{color:var(--accent2);font-size:11px}.ann-orphan{opacity:.8}.ann-empty{color:#8a8a93;font-size:12px}.sheet-panel{position:fixed;z-index:5;display:flex;flex-direction:column;background:#0e0e11;border:1px solid var(--annot-hi);border-radius:4px;box-shadow:0 18px 60px -12px #000000e6;overflow:hidden}.sheet-head{flex:0 0 26px;display:flex;align-items:center;gap:6px;padding:0 4px 0 6px;background:#16161a;border-bottom:1px solid #26262C;font-size:10px;letter-spacing:.02em;cursor:grab;-webkit-user-select:none;user-select:none}.sheet-head.grabbing{cursor:grabbing}.sheet-num{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 4px;border-radius:7px;background:var(--annot);color:#1a1205;font-weight:700;font-size:9px}.sheet-title{font-weight:600;color:var(--annot);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-close{margin-left:auto;flex:0 0 auto;background:none;border:0;color:#9a9aa2;font-size:13px;line-height:1;cursor:pointer;padding:3px 5px}.sheet-close:hover{color:var(--annot)}.sheet-edit{margin-left:auto;flex:0 0 auto;background:none;border:1px solid #33333B;border-radius:3px;color:#9a9aa2;font:inherit;font-size:10px;line-height:1;cursor:pointer;padding:3px 7px}.sheet-edit:hover{color:var(--annot);border-color:var(--annot)}.sheet-edit+.sheet-close{margin-left:0}.sheet-view{flex:1 1 auto;position:relative;overflow:hidden;background:#17171b}.sheet-img{position:absolute;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%);max-width:none;max-height:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#fff;will-change:transform}.sheet-img.grabbing{cursor:grabbing}.sheet-foot{flex:0 0 24px;display:flex;align-items:center;gap:3px;padding:0 6px;background:#16161a;border-top:1px solid #26262C;font-size:10px;color:#8a8a93}.sheet-foot button{background:#1e1e24;border:1px solid #2E2E36;color:#c9c9d0;border-radius:3px;cursor:pointer;font-size:10px;line-height:1;padding:3px 6px}.sheet-foot button:hover{border-color:var(--annot);color:var(--annot)}.sheet-pct{min-width:40px;font-variant-numeric:tabular-nums}.sheet-file{margin-left:auto;opacity:.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}.sheet-body{display:none}.toolbar .boxdelete{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);width:300px;padding:8px;border-radius:var(--r-sm);background:var(--card, #1E2E2E);border:1px solid var(--line);box-shadow:var(--sh-inset);display:flex;flex-direction:column;gap:6px}.toolbar .boxdelete .bd-gizmos,.toolbar .boxdelete .bd-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.toolbar .boxdelete button{width:100%;margin:0;white-space:nowrap}.toolbar .boxdelete .bd-count{text-align:center;font-size:11px;font-variant-numeric:tabular-nums;padding-top:2px}.measure-snap-chip{position:fixed;transform:translate(14px,14px);pointer-events:none;z-index:6;font-family:var(--mono);font-size:11px;letter-spacing:.04em;background:#081012e6;border:1px solid var(--hairline);border-radius:5px;padding:3px 7px;white-space:nowrap;box-shadow:0 2px 8px #0009}.measure-snap-chip[data-q=exact]{color:#ffc738}.measure-snap-chip[data-q=good]{color:#40d9c7}.measure-snap-chip[data-q=noisy]{color:#ffb333}.measure-snap-chip[data-q=coarse]{color:#ff5b52;border-color:#ff5b5273}.measure-snap-chip[data-q=align]{color:#4da8ff;border-color:#4da8ff8c}.setview-bar{position:fixed;left:50%;transform:translate(-50%);bottom:24px;z-index:60;display:flex;align-items:center;gap:14px;padding:10px 12px 10px 16px;border-radius:10px;background:#0c1012eb;border:1px solid rgba(120,220,220,.28);box-shadow:0 10px 30px #00000073;font:500 13px/1.3 system-ui,sans-serif;color:#d8e6e6}.setview-label{white-space:nowrap}.setview-save{border:1px solid rgba(120,220,220,.5);border-radius:7px;background:#78dcdc29;color:#e6fbfb;padding:7px 14px;font:inherit;cursor:pointer}.setview-save:hover:not(:disabled){background:#78dcdc47}.setview-save:disabled{opacity:.5;cursor:default}.issue-panel{position:fixed;top:84px;right:12px;bottom:60px;width:min(340px,calc(100vw - 24px));z-index:4;display:flex;flex-direction:column;gap:8px;padding:12px;box-sizing:border-box;overflow:auto;background:#14151af5;color:#e9e9ec;border:1px solid var(--hairline, #3a3a42);border-radius:10px;font:13px/1.4 system-ui,sans-serif}.issue-head{display:flex;align-items:center;gap:8px}.issue-elem{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.issue-close{background:none;border:0;color:inherit;cursor:pointer;font-size:14px}.issue-list{display:flex;flex-direction:column;gap:4px}.issue-row{display:grid;grid-template-columns:10px 1fr;gap:2px 8px;text-align:start;width:100%;background:#ffffff0a;border:1px solid transparent;border-radius:8px;padding:8px;color:inherit;cursor:pointer}.issue-row.open{border-color:var(--hairline, #3a3a42)}.issue-dot{grid-row:1 / span 2;width:8px;height:8px;border-radius:50%;margin-top:5px;background:#b8860b}.issue-row[data-status=resolved] .issue-dot{background:#4caf7a}.issue-row[data-status=closed] .issue-dot{background:#6a6a74}.issue-row-meta{font-size:11px;color:#9a9aa4}.issue-thread{display:flex;flex-direction:column;gap:6px;padding:6px 8px}.issue-thumb{width:100%;border-radius:6px}.issue-comment{display:flex;flex-direction:column}.issue-comment.system .issue-comment-body{color:#9a9aa4;font-style:italic}.issue-comment-meta{font-size:11px;color:#9a9aa4}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--hairline, #3a3a42);background:none;color:inherit;border-radius:999px;padding:3px 10px;cursor:pointer;font-size:12px}.chip.on{background:var(--annot);color:#1a1205;border-color:var(--annot-hi)}.chip:disabled{cursor:default;opacity:.7}.issue-comment-row{display:flex;gap:6px;padding:0 8px 8px}.issue-panel input,.issue-panel textarea{width:100%;box-sizing:border-box;background:#0f1014;color:inherit;border:1px solid var(--hairline, #3a3a42);border-radius:6px;padding:6px 8px;font:inherit}.issue-composer{display:flex;flex-direction:column;gap:8px}.issue-author-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#9a9aa4}.issue-new-toggle,.issue-post,.issue-comment-post{background:var(--annot);color:#1a1205;border:0;border-radius:8px;padding:8px 12px;cursor:pointer;font-weight:600}.issue-post:disabled,.issue-comment-post:disabled{opacity:.4;cursor:default}.issue-hint{font-size:12px;color:#9a9aa4}.issue-error{font-size:12px;color:#e0574c}body.client .issue-panel{background:#ffffffeb;color:#1a1a1f;border-color:#d9d9df;box-shadow:0 8px 26px #00000047;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}body.client .issue-row{background:#0000000a}body.client .issue-row.open{border-color:#d9d9df;background:#0000000f}body.client .issue-row-meta,body.client .issue-comment-meta,body.client .issue-author-row,body.client .issue-hint,body.client .issue-comment.system .issue-comment-body{color:#6b6b76}body.client .chip{border-color:#cfcfd6}body.client .issue-panel input,body.client .issue-panel textarea{background:#fff;border-color:#cfcfd6;color:#1a1a1f}body.client .issue-close{color:#1a1a1f}.fp-legend{display:flex;flex-direction:column;gap:6px}.fp-legend-hint{font-size:12px;color:#9a9aa4;margin:0 0 4px}.fp-legend-row,.fp-legend-elrow{display:flex;align-items:center;gap:8px;font-size:12px}.fp-legend-el{display:flex;flex-direction:column;align-items:stretch;gap:6px;font-size:12px}.fp-legend-row input[type=color],.fp-legend-elrow input[type=color]{width:28px;height:22px;padding:0;border:1px solid var(--hairline,#3a3a42);border-radius:5px;background:none}.fp-legend-name{flex:1}.fp-legend-count{color:#9a9aa4}.fp-legend-pick.armed{border-color:var(--amber,#e6a417);color:var(--amber,#e6a417)}.fp-legend-eye.off{opacity:.45}.fp-legend-key{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace;font-size:11px}.fp-legend-cat{color:#9a9aa4}.mep-row{display:flex;align-items:center;gap:8px;padding:4px 6px}.mep-row.muted .mep-lbl{opacity:.55}.mep-row.solo{background:#ffffff0f;border-radius:6px}.mep-swatch{width:14px;height:14px;border-radius:3px;flex:0 0 auto}.mep-lbl{flex:1 1 auto;cursor:pointer}.mep-count{opacity:.6;font-variant-numeric:tabular-nums}.mep-colour-toggle{display:flex;align-items:center;gap:6px;padding:6px}.mep-tag{font-size:10px;opacity:.5;border:1px solid currentColor;border-radius:3px;padding:0 3px}.pv-add-measure,.pv-measure{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.plan-card{position:fixed;left:var(--sq-edge, 14px);top:calc(var(--sq-edge, 14px) + 34px);z-index:3;margin:0;padding:6px;border-radius:10px;cursor:zoom-in;background:var(--dock-bg);border:1px solid var(--dock-rim);box-shadow:var(--dock-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transform:translateY(-6px);pointer-events:none;transform-origin:top left;transition:opacity .45s ease,transform .45s ease}.plan-card.on{opacity:1;transform:none;pointer-events:auto}.plan-card .plan-frame{overflow:hidden;border-radius:5px}.plan-card img{display:block;width:clamp(180px,32vmin,340px);aspect-ratio:1 / 1;height:auto;transform:scale(1);transition:transform .25s ease;will-change:transform}.plan-card.zoom{cursor:zoom-out}.plan-card.zoom img{transform:scale(2.5)}@media (max-width: 640px){.plan-card img{width:clamp(130px,38vw,200px)}}@media (prefers-reduced-motion: reduce){.plan-card,.plan-card img{transition:none}}body.client .measure-label,body.client .measure-label.stored,body.client .measure-label.mine,body.client .measure-label.mine.area{font-family:Geist,ui-sans-serif,system-ui;font-size:13px;font-weight:700;letter-spacing:0;color:#111417;background:#fff;border:0;border-radius:3px;padding:3px 7px;box-shadow:0 1px 4px #00000059}body.client .measure-label.stored.pickable:hover{background:#f1f1f1}.pv-area-card{position:fixed;left:var(--sq-edge, 14px);top:calc(var(--sq-edge, 14px) + 34px);z-index:4;min-width:150px;padding:10px 12px;border-radius:8px;background:#14171ad1;color:#edeff1;box-shadow:0 2px 10px #00000059;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:500 13px/1.25 Geist,ui-sans-serif,system-ui;font-variant-numeric:tabular-nums;pointer-events:none}.pv-area-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0}.pv-area-row span{color:#a9b0b6}.pv-area-row b{font-weight:700}.pv-area-row.total{margin-top:4px;padding-top:6px;border-top:1px solid rgba(255,255,255,.14)}.pv-area-row.total span{color:#edeff1}body.compare-active .pv-area-card{display:none!important}.pv-add-wrap{gap:10px}.pv-save-measure{padding:9px 16px;border-color:#f3e7c873}body:has(.plan-card.on) .pv-area-card{top:calc(var(--sq-edge, 14px) + 34px + clamp(180px,32vmin,340px) + 24px)}@media (max-width: 640px){body:has(.plan-card.on) .pv-area-card{top:calc(var(--sq-edge, 14px) + 34px + clamp(130px,38vw,200px) + 24px)}}
