:root{--bg:#0f1720;--panel:#16202b;--panel-2:#1d2937;--sunken:#101a24;--sunken-2:#0b131c;--hover:#16232f;--line:#263445;--text:#e6edf5;--muted:#8ca0b8;--faint:#5b7188;--accent:#38bdf8;--accent-2:#0ea5e9;--on-accent:#04121c;--danger:#f87171;--warn-bg:#7f1d1d;--warn-text:#fee2e2;--warn-line:#b91c1c;--float:#0f1720e0;--float-soft:#0f1720d1;--float-strong:#0d151ef2;--bar-a:#18242f;--bar-b:#131c26;--scrim:#060b11b8;--raised:#e6edf5;--raised-ink:#0b1520;--raised-edge:transparent;--desk:#202b38;--tip-bg:#05101a;--tip-ink:#e6edf5;--selected:#142433;--panel-w:262px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#eef2f7;--panel:#fff;--panel-2:#f4f7fa;--sunken:#f7f9fc;--sunken-2:#eef2f7;--hover:#e6edf5;--line:#d6dfea;--text:#0f1c2b;--muted:#5a6b7f;--faint:#8496a8;--accent:#0284c7;--accent-2:#0ea5e9;--danger:#dc2626;--warn-bg:#fee2e2;--warn-text:#7f1d1d;--warn-line:#fca5a5;--float:#ffffffeb;--float-soft:#ffffffe0;--float-strong:#fffffff5;--bar-a:#fff;--bar-b:#f1f5f9;--scrim:#0f172a61;--raised:#fff;--raised-ink:#0f1c2b;--raised-edge:#cbd6e4;--desk:#dfe5ee;--tip-bg:#16202b;--tip-ink:#f2f6fa;--selected:#e2edf7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100%;display:flex}.toolbar{background:linear-gradient(180deg, var(--bar-a), var(--bar-b));border-bottom:1px solid var(--line);scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:10px;min-height:44px;padding:6px 10px;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.brand-mark{flex:none;width:26px;height:26px;display:block}.tools{background:var(--panel);border:1px solid var(--line);scrollbar-width:none;border-radius:10px;flex:0 auto;gap:2px;min-width:0;padding:3px;display:flex;overflow-x:auto}.tool{flex:none}.tools::-webkit-scrollbar{display:none}.tool{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;align-items:center;gap:6px;padding:5px 9px;font-size:12.5px;transition:background .15s,color .15s;display:flex}.tool:hover{background:var(--panel-2);color:var(--text)}.tool.active{background:var(--accent-2);color:var(--on-accent);font-weight:600}.ticon{flex:none;display:block}.tool.active .ticon{stroke-width:1.9px}.tip{z-index:60;background:var(--tip-bg);color:var(--tip-ink);border:1px solid var(--line);white-space:nowrap;pointer-events:none;border-radius:7px;align-items:center;gap:7px;padding:5px 9px;font-size:12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 22px #00000080}.tip em{color:var(--tip-ink);background:#ffffff26;border-radius:4px;padding:1px 5px;font-size:11px;font-style:normal}.spacer{flex:1;min-width:0}.modes{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:none;gap:2px;padding:3px;display:flex}.modes .mode{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 11px;font-size:12.5px;transition:background .15s,color .15s}.modes .mode:hover{color:var(--text)}.modes .mode.active{background:var(--raised);color:var(--raised-ink);box-shadow:0 0 0 1px var(--raised-edge);font-weight:600}.actions{flex:none;gap:3px;display:flex}.actions .icon{background:var(--panel);border:1px solid var(--line);width:30px;height:30px;color:var(--text);cursor:pointer;border-radius:8px;font-size:14px;transition:background .15s,color .15s}.actions .icon:hover{background:var(--panel-2)}.actions .icon.danger{color:var(--danger)}.actions .icon.on{background:var(--panel-2);color:var(--accent)}button.ghost,button.primary{cursor:pointer;border:1px solid #0000;border-radius:9px;padding:8px 12px;font-size:13px;transition:background .15s,color .15s}button.ghost{background:var(--panel);border-color:var(--line);color:var(--text)}button.ghost:hover{background:var(--panel-2)}button.ghost.danger{color:var(--danger)}button.ghost.wide{width:100%;margin-top:8px}button.primary{background:var(--accent-2);color:var(--on-accent);border:0;font-weight:600}button.primary:hover{background:var(--accent)}@media (width<=1500px){.tool-label{display:none}.tool{padding:6px 8px}}.workspace{flex:1;min-height:0;display:flex;position:relative}.panel-tab{z-index:3;background:var(--panel);width:16px;height:56px;color:var(--muted);border:1px solid var(--line);cursor:pointer;border-right:0;border-radius:8px 0 0 8px;place-items:center;padding:0;font-size:13px;transition:background .15s,color .15s,right .18s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.panel-tab:hover{background:var(--accent-2);color:var(--on-accent)}.canvas-wrap{background:#fff;flex:1;min-width:0;position:relative}.canvas-wrap canvas{display:block}.canvas-hud{background:var(--float);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:11px;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:14px;left:14px}.canvas-hud button{background:var(--panel-2);min-width:30px;height:28px;color:var(--text);cursor:pointer;border:0;border-radius:7px;font-size:13px}.canvas-hud button:hover{background:var(--accent-2);color:var(--on-accent)}.hud-scale{color:var(--muted);font-variant-numeric:tabular-nums;padding:0 6px;font-size:12px}.hud-tip{color:var(--faint);white-space:nowrap;padding-right:6px;font-size:11px}.hud-grid{color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;padding:0 6px;font-size:11px}.canvas-hint,.canvas-coords{background:var(--float-soft);color:var(--muted);border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;border-radius:8px;padding:5px 9px;font-size:11.5px;position:absolute;top:10px}.canvas-hint{white-space:nowrap;text-overflow:ellipsis;opacity:.75;max-width:min(64ch,100% - 150px);transition:opacity .2s;left:10px;overflow:hidden}.canvas-wrap:hover .canvas-hint{opacity:1}.canvas-coords{font-variant-numeric:tabular-nums;right:10px}.inspector{width:var(--panel-w);background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;gap:8px;padding:10px;display:flex;overflow-y:auto}.panel{background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:10px}.panel h3{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin:0 0 8px;font-size:11px}.field{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:12.5px;display:flex}.field>span:first-child{color:var(--muted)}.input-wrap{align-items:center;gap:5px;display:inline-flex}.field input,.field select{background:var(--sunken);width:92px;color:var(--text);border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:12.5px}.field input[type=color]{height:30px;padding:2px}.field em{color:var(--muted);width:34px;font-size:11px;font-style:normal}.check,.chk{color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin:4px 0;font-size:12.5px;display:flex}.check input,.chk input{accent-color:var(--accent-2)}.hint.warn{color:var(--danger)}.hint{color:var(--muted);margin:6px 0 0;font-size:11.5px;line-height:1.45}.list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.list li{cursor:pointer;background:var(--sunken);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.list li:hover{background:var(--hover)}.list li.on{outline:1px solid var(--accent-2)}.list .name{flex:1}.list .meta{color:var(--muted);font-size:12px}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.sel-counts{flex-wrap:wrap;gap:4px 10px;margin:0 0 4px;padding:0;list-style:none;display:flex}.sel-counts li{color:var(--muted);font-size:12.5px}.sel-counts b{color:var(--text)}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats div{flex-direction:column;display:flex}.stats b{font-size:15px}.stats span{color:var(--muted);font-size:11px}.view3d{flex:1;position:relative}.view3d-mount{position:absolute;inset:0}.view3d-hud{background:var(--float);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:11px;flex-wrap:wrap;align-items:center;gap:10px;max-width:calc(100% - 28px);padding:7px 10px;display:flex;position:absolute;top:14px;left:14px}.view3d-hud .slider{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:flex}.view3d-hud .slider input[type=range]{width:110px;accent-color:var(--accent-2)}.view3d-hud button{background:var(--panel-2);color:var(--text);cursor:pointer;border:0;border-radius:8px;padding:7px 11px;font-size:13px}.view3d-hud button:hover,.view3d-hud button.on{background:var(--accent-2);color:var(--on-accent)}.view3d-empty{color:#33475c;pointer-events:none;place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.print-view{background:var(--desk);flex:1;overflow:auto}.print-controls{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);padding:10px 14px;position:sticky;top:0}.print-controls .row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.print-controls button.primary{white-space:nowrap;padding:7px 12px}.print-controls .check{white-space:nowrap;margin:0}.print-controls .row.wrap{flex-wrap:wrap;margin-top:10px}.print-controls .field{margin:0}.chip{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:13px;display:inline-flex}.sheets{flex-direction:column;align-items:center;gap:24px;padding:24px;display:flex}.sheet{color:#0f172a;background:#fff;flex-direction:column;display:flex;box-shadow:0 10px 40px #0006}.sheet-head{border-bottom:1px solid #94a3b8;justify-content:space-between;align-items:flex-start;margin-bottom:4mm;display:flex}.sheet-head h2{margin:0;font-size:15pt}.sheet-head p{color:#475569;margin:2px 0 0;font-size:9pt}.sheet-meta{color:#475569;flex-direction:column;align-items:flex-end;gap:2px;font-size:8pt;display:flex}.sheet-project{color:#0f172a;font-weight:600}.sheet-no{font-variant-numeric:tabular-nums}.sched-body{flex-direction:column;flex:1;gap:7mm;display:flex;overflow:hidden}.sched-body section h3{color:#0f172a;text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #94a3b8;margin:0 0 2mm;padding-bottom:1mm;font-size:10pt}table.sched{border-collapse:collapse;color:#0f172a;width:100%;font-size:9pt}table.sched th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #cbd5e1;padding:1.4mm 2mm;font-size:8pt;font-weight:600}table.sched td{border-bottom:1px solid #e2e8f0;padding:1.4mm 2mm}table.sched tfoot td{border-top:1px solid #94a3b8;border-bottom:0;font-weight:600}table.sched .num{text-align:right;font-variant-numeric:tabular-nums}table.sched .mark{font-variant-numeric:tabular-nums;font-weight:700}.sched-body .none{color:#64748b;margin:1mm 0 0;font-size:9pt}.sheet canvas{display:block}@media print{@page{margin:0}body{background:#fff}.no-print,.print-controls,.toolbar,.inspector{display:none!important}.print-view,.app,.workspace{background:#fff;height:auto;display:block;overflow:visible}.sheets{gap:0;padding:0;display:block}.sheet{box-shadow:none;break-after:page;page-break-after:always}.sheet:last-child{break-after:auto;page-break-after:auto}}.loading{color:var(--muted);flex:1;place-items:center;display:grid}.dim-entry{background:var(--float-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:13px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;max-width:calc(100% - 24px);padding:9px 12px;animation:.18s ease-out rise;display:flex;position:absolute;bottom:62px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #00000073}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.dim-entry.error{border-color:var(--danger);animation:.3s shake}@keyframes shake{0%,to{transform:translate(-50%)}25%{transform:translate(calc(-50% - 5px))}75%{transform:translate(calc(5px - 50%))}}.dim-label{color:var(--muted);font-size:12px}.opening-entry .len{background:var(--sunken-2);border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;border-radius:8px;padding:7px 9px;font-size:14px}.opening-entry .len:focus{border-color:var(--accent-2);outline:none;box-shadow:0 0 0 3px #0ea5e933}.size-field{align-items:center;gap:6px;display:inline-flex}.size-field em{color:var(--muted);font-size:11px;font-style:normal}.seg{background:var(--sunken-2);border:1px solid var(--line);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:6px;padding:5px 8px;font-size:12px}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent-2);color:var(--on-accent);font-weight:600}.wide-seg{width:100%;margin:6px 0;display:flex}.wide-seg button{flex:1}.opening-entry .len.steps{width:62px}.opening-entry .len.label-text{text-transform:none;width:190px}.stair-entry{gap:12px}.dim-tip{color:var(--faint);font-size:11px}.dim-entry input{background:var(--sunken-2);border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;border-radius:8px;padding:7px 9px;font-size:14px}.dim-entry input:focus{border-color:var(--accent-2);outline:none;box-shadow:0 0 0 3px #0ea5e933}.dim-len{width:108px}.dim-ang{width:66px}.dim-sep,.dim-deg{color:var(--muted);font-size:12px}.dim-dirs{gap:3px;display:flex}.dim-dirs button{background:var(--panel-2);width:26px;height:26px;color:var(--text);cursor:pointer;border:0;border-radius:7px;font-size:13px}.dim-dirs button:hover{background:var(--accent-2);color:var(--on-accent)}.dim-err{color:var(--danger);font-size:12px}.dim-echo{color:var(--accent);font-variant-numeric:tabular-nums;min-width:56px;font-size:12px}.dim-echo.muted{color:var(--danger)}.dim-dirs button.on{background:var(--accent-2);color:var(--on-accent)}.dim-free{background:var(--panel-2);width:30px;height:30px;color:var(--muted);cursor:pointer;border:0;border-radius:8px;font-size:14px}.dim-free.on,.dim-free:hover{background:var(--accent-2);color:var(--on-accent)}.dim-free-wrap{align-items:center;gap:4px;display:inline-flex}.dim-go,.dim-done{cursor:pointer;border:0;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600}.dim-go{background:var(--accent-2);color:var(--on-accent)}.dim-go:hover{background:var(--accent)}.dim-done{background:var(--panel-2);color:var(--text);font-weight:500}.dim-done:hover{background:#2b3a4c}.field input.len{font-variant-numeric:tabular-nums;width:110px}.field input.len.bad{border-color:var(--danger)}.flights{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.flight-block{border:1px solid var(--line);background:var(--sunken);border-radius:9px;padding:8px}.flight-row{align-items:center;gap:8px;margin-bottom:6px;font-size:12.5px;display:flex}.flight-row:last-child{margin-bottom:0}.flight-row.head{color:var(--text)}.flight-row>span:first-child{color:var(--muted);flex:1}.flight-row input[type=number]{background:var(--sunken-2);width:58px;color:var(--text);border:1px solid var(--line);border-radius:7px;padding:5px 7px;font-size:12.5px}.flight-row .unit{color:var(--muted);flex:none;font-size:11px}.flight-row .lvl{align-items:center;gap:6px;display:flex}.flight-row .lvl em{color:var(--accent);font-size:11px;font-style:normal}.flight-row .drop{width:22px;height:22px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;font-size:14px}.flight-row .drop:hover{background:#f8717124}.floorbar{margin-bottom:8px}.floorbar-head{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.floorbar-actions{gap:3px;display:flex}.floorbar-actions button{border:1px solid var(--line);background:var(--sunken);color:var(--muted);cursor:pointer;border-radius:6px;padding:3px 6px;font-size:11px}.floorbar-actions button:hover{background:var(--accent-2);color:var(--on-accent);border-color:#0000}.floor-list{flex-direction:column;gap:3px;margin:0 0 6px;padding:0;list-style:none;display:flex}.floor-list li{background:var(--sunken);cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.floor-list li:hover{background:var(--hover)}.floor-list li.on{border-color:var(--accent-2);background:var(--selected)}.fl-name{flex:1}.fl-lvl{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.fl-drop{width:18px;height:18px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:5px;font-size:13px;line-height:1}.fl-drop:hover{background:#f8717129}.tabs{background:var(--panel-2);border:1px solid var(--line);z-index:2;border-radius:10px;gap:2px;padding:3px;display:flex;position:sticky;top:0}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:6px 4px;font-size:12px;transition:background .15s,color .15s}.tabs button:hover{color:var(--text)}.tabs button.on{background:var(--accent-2);color:var(--on-accent);font-weight:600}.empty-state p{color:var(--muted);margin:0 0 8px;font-size:12.5px;line-height:1.55}.empty-state p:last-child{margin-bottom:0}.empty-state b{color:var(--text)}.empty-state em{font-style:italic}.panel h3{justify-content:space-between;align-items:center;gap:8px;display:flex}.panel h3 .link{color:var(--accent);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.panel h3 .link:hover{text-decoration:underline}.layer-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.layer-list li{background:var(--sunken);border-radius:7px;align-items:center;gap:6px;padding:4px 6px;font-size:12.5px;display:flex}.layer-list li.off{opacity:.45}.lyr-name{flex:1}.lyr-count{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;min-width:16px;font-size:11px}.lyr-eye,.lyr-lock{cursor:pointer;width:22px;height:22px;color:var(--muted);background:0 0;border:0;border-radius:6px;flex:none;font-size:12px;line-height:1}.lyr-eye:hover,.lyr-lock:hover{background:var(--panel-2);color:var(--text)}.lyr-lock.on{color:var(--accent)}.save-warning{background:var(--warn-bg);color:var(--warn-text);border-bottom:1px solid var(--warn-line);flex-wrap:wrap;align-items:center;gap:12px;padding:9px 14px;font-size:14px;line-height:1.45;display:flex}.save-warning b{color:currentColor}.save-warning button{cursor:pointer;background:var(--warn-text);color:var(--warn-bg);border:0;border-radius:7px;flex:none;margin-left:auto;padding:6px 12px;font-weight:600}.save-warning button:hover{filter:brightness(1.08)}.crash{max-width:560px;color:var(--text);margin:12vh auto;padding:0 24px;font-size:15px;line-height:1.6}.crash h2{margin:0 0 10px}.crash p{color:var(--muted)}.crash-actions{gap:10px;margin-top:18px;display:flex}.crash .cta{cursor:pointer;background:var(--accent);color:var(--on-accent);border:0;border-radius:9px;padding:9px 16px;font-weight:600}.crash .cta.ghost{color:var(--text);border:1px solid var(--line);background:0 0}.crash pre{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:8px;margin-top:20px;padding:10px 12px;font-size:12.5px;overflow-x:auto}@media (width<=700px){:root{--panel-w:min(300px, 86vw)}.inspector{z-index:2;position:absolute;top:0;bottom:0;right:0;box-shadow:-18px 0 40px #00000073}.toolbar{flex-wrap:wrap;gap:6px;padding:6px;overflow-x:visible}.brand-mark,.hud-tip{display:none}.canvas-hud{gap:4px;padding:4px;bottom:8px;left:8px}.canvas-hint{max-width:calc(100% - 20px)}.dim-entry{gap:6px;max-width:calc(100% - 12px);padding:8px;bottom:54px}}.tour-scrim{z-index:50;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;animation:.18s ease-out tour-in;display:grid;position:fixed;inset:0}.tour{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(440px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 18px 14px;animation:.22s cubic-bezier(.2,.8,.3,1) tour-rise;position:relative;overflow-y:auto;box-shadow:0 30px 70px #0000008c}@keyframes tour-in{0%{opacity:0}}@keyframes tour-rise{0%{opacity:0;transform:translateY(10px)scale(.985)}}.tour-close{z-index:1;color:#334155;cursor:pointer;background:#0f172a12;border:0;border-radius:50%;width:26px;height:26px;font-size:17px;line-height:1;position:absolute;top:24px;right:26px}.tour-close:hover{color:#0f172a;background:#0f172a29}.tour-art{margin-bottom:12px}.tour-stage{border:1px solid var(--line);border-radius:10px;width:100%;height:auto;display:block}.tour-paper{fill:#f7f9fb}.tour-head{align-items:center;gap:9px;margin:0 0 6px;display:flex}.tour-head h2{letter-spacing:-.01em;margin:0;font-size:16px}.tour-head kbd{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:5px;padding:2px 6px;font:600 10.5px ui-monospace,monospace}.tour-badge{background:var(--accent-2);width:28px;height:28px;color:var(--on-accent);border-radius:8px;flex:none;place-items:center;display:grid}.tour-badge svg{width:18px;height:18px}.tour-body{color:var(--muted);min-height:60px;margin:0 0 12px;font-size:13px;line-height:1.55}.tour-dots{flex-wrap:wrap;justify-content:center;gap:5px;margin-bottom:10px;display:flex}.tour-dot{background:var(--line);cursor:pointer;border:0;border-radius:50%;width:7px;height:7px;padding:0;transition:background .15s,transform .15s}.tour-dot:hover{transform:scale(1.35)}.tour-dot.on{background:var(--accent)}.tour-timer{background:var(--accent-2);transform-origin:0;border-radius:2px;height:2px;margin:0 0 12px;animation:linear forwards tour-run}@keyframes tour-run{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tour-actions{align-items:center;gap:8px;display:flex}.tour-count{color:var(--muted);margin-left:auto;font-size:11.5px}.tour-skip{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:12px;text-decoration:underline}.tour-skip:hover{color:var(--text)}.tour-nav{border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:12.5px}.tour-nav:hover{border-color:var(--accent-2)}.tour-nav.primary{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent);font-weight:600}.tour-room>*{fill:none;stroke:#0f172a;stroke-width:7px;stroke-linejoin:round}.tour-room-dim>*{opacity:.28}.tour-pick>*{fill:var(--accent);opacity:0;animation:.9s ease-out 1.05s forwards tour-flash}@keyframes tour-flash{0%{opacity:0}30%{opacity:.85}to{opacity:.55}}.tour-cursor{fill:#0f172a;stroke:#fff;stroke-width:1.1px;transform:translate(var(--x1), var(--y1));animation:1.5s cubic-bezier(.4,0,.2,1) forwards tour-move}@keyframes tour-move{0%{transform:translate(var(--x1), var(--y1))}to{transform:translate(var(--x2), var(--y2))}}.tour-anchor>*{fill:var(--accent-2);animation:.4s ease-out backwards tour-pop}@keyframes tour-pop{0%{transform-origin:50%;opacity:0;transform:scale(0)}}.tour-wall>*,.tour-treads>*,.tour-beam>*,.tour-poly>*,.tour-measure>*,.tour-hip>*,.tour-ridge>*,.tour-up>*{fill:none;stroke-dasharray:var(--len,420);stroke-dashoffset:var(--len,420);animation:tour-draw var(--dur,1.1s) ease-out forwards}@keyframes tour-draw{to{stroke-dashoffset:0}}.tour-wall>*{stroke:#0f172a;stroke-width:7px;stroke-linecap:round;--dur:1s;animation-delay:.5s}.tour-treads>*{stroke:#0f172a;stroke-width:2.4px;--len:60;--dur:.3s}.tour-up>*{stroke:var(--accent-2);stroke-width:2.4px;--len:120;--dur:1s;animation-delay:1.9s}.tour-beam>*{stroke:#64748b;stroke-width:4px;stroke-dasharray:9 7;animation:.8s ease-out .7s backwards tour-fade}.tour-poly>*{stroke:#7c3aed;stroke-width:3px;--len:380;--dur:1.5s}.tour-measure>*{stroke:#f59e0b;stroke-width:2.4px;stroke-dasharray:7 5;animation:.7s ease-out .5s backwards tour-fade}.tour-hip>*{stroke:#94a3b8;stroke-width:2.2px;--len:70;--dur:.9s;animation-delay:.7s}.tour-ridge>*{stroke:#475569;stroke-width:3.4px;--len:60;--dur:.5s;animation-delay:1.5s}@keyframes tour-fade{0%{opacity:0}}.tour-typed>*{fill:var(--accent-2);animation:.35s ease-out .35s backwards tour-pop}.tour-readout>*{fill:#f59e0b;animation:.35s ease-out 1.5s backwards tour-pop}.tour-typed-text{fill:var(--on-accent);font:700 11px ui-sans-serif,system-ui,sans-serif;animation:.3s ease-out .45s backwards tour-fade}.tour-measure~.tour-typed-text{animation-delay:1.6s}.tour-dim>*{fill:none;stroke:#64748b;stroke-width:1.4px;animation:.5s ease-out 1.6s backwards tour-fade}.tour-leaf>*{stroke:#8b5e34;stroke-width:5px;stroke-linecap:round;transform-origin:98px 66px;animation:1.3s cubic-bezier(.3,1.2,.4,1) 1.1s backwards tour-swing}@keyframes tour-swing{0%{transform:rotate(-90deg)}}.tour-arc>*{fill:none;stroke:#94a3b8;stroke-width:1.6px;stroke-dasharray:4 4;animation:.6s ease-out 2.1s backwards tour-fade}.tour-glaz>*{fill:#38bdf859;stroke:#0284c7;stroke-width:2.4px;animation:.45s ease-out 1.1s backwards tour-pop}.tour-column>*{fill:#0f172a;animation:.45s cubic-bezier(.2,1.4,.4,1) 1.15s backwards tour-pop}.tour-fill>*{fill:#7c3aed29;animation:.7s ease-out 1.7s backwards tour-fade}.tour-note{fill:#334155;font:700 10px ui-sans-serif,system-ui,sans-serif;animation:.6s ease-out 2s backwards tour-fade}.tour-note-small{fill:#64748b;font-size:9px;font-weight:600}.tour-typing>text{fill:#0f172a;clip-path:inset(0 100% 0 0);font:700 15px ui-sans-serif,system-ui,sans-serif;animation:1.6s steps(8,end) .6s forwards tour-type}@keyframes tour-type{to{clip-path:inset(0)}}.tour-caret>*{stroke:var(--accent-2);stroke-width:2px;animation:.5s step-end infinite tour-blink}@keyframes tour-blink{50%{opacity:0}}.tour-slab>*{fill:#0f172a1a;animation:.8s ease-out .5s backwards tour-fade}.tour-edge>*{fill:none;stroke:#64748b;stroke-width:2px;stroke-dasharray:6 5;animation:.8s ease-out 1.4s backwards tour-fade}.tour-sheet{animation:1.6s cubic-bezier(.4,0,.2,1) .3s backwards tour-drag}@keyframes tour-drag{0%{transform:translate(-26px,18px)}}.tour-mode>*{fill:none;stroke:var(--accent-2);stroke-width:2.4px;animation:1s ease-out backwards tour-lift}@keyframes tour-lift{0%{opacity:0;transform:translateY(8px)}60%{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tour-scrim,.tour,.tour-art *,.tour-timer{animation:none!important}.tour-wall>*,.tour-treads>*,.tour-beam>*,.tour-poly>*,.tour-measure>*,.tour-hip>*,.tour-ridge>*,.tour-up>*{stroke-dashoffset:0}.tour-pick>*,.tour-fill>*,.tour-note{opacity:1}}@media (width<=700px){.tour{width:calc(100vw - 20px);padding:14px 14px 12px}.tour-body{font-size:12.5px}}
