:root,:root[data-theme=dark]{--bg:#061320;--panel:rgba(10,24,34,0.74);--panel-solid:#0c1c28;--line:rgba(79,227,176,0.18);--accent:#4fe3b0;--accent-ink:#04140d;--text:#eaf5f1;--muted:#8ba5b2;--field:rgba(255,255,255,0.04);--field-line:rgba(255,255,255,0.08);--hover:rgba(255,255,255,0.05);--radius:10px}:root[data-theme=light]{--bg:#eaf5ef;--panel:rgba(255,255,255,0.86);--panel-solid:#ffffff;--line:rgba(13,122,84,0.16);--accent:#0f9d6b;--accent-ink:#ffffff;--text:#0e2a20;--muted:#5a7a6c;--field:rgba(13,60,42,0.04);--field-line:rgba(13,60,42,0.12);--hover:rgba(13,60,42,0.06);--radius:10px}:root[data-theme=light] .chip,:root[data-theme=light] .dock,:root[data-theme=light] .inspector,:root[data-theme=light] .notes,:root[data-theme=light] .rail{box-shadow:0 6px 24px rgba(13,60,42,.1)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shell{position:fixed;inset:0}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.boot{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);letter-spacing:.08em;font-size:13px;text-transform:uppercase}.dock,.hints,.notes,.rail,.topbar{transition:opacity .35s ease,transform .35s ease}.presenting .dock,.presenting .hints,.presenting .notes,.presenting .rail,.presenting .topbar{opacity:0;pointer-events:none}.presenting:hover .dock{opacity:1;pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;justify-content:space-between;padding:14px 18px;gap:12px}.file,.topbar{display:flex;align-items:center}.file{gap:8px;font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.file .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.muted{color:var(--muted)}.topright{display:flex;align-items:center;gap:8px}.chip{font-size:11px;letter-spacing:.06em;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap}.chip.warn{color:#ffd28a;border-color:rgba(255,210,138,.28)}:root[data-theme=light] .chip.warn{color:#8a5300;border-color:rgba(138,83,0,.3);background:#fff6e6}.rail{position:absolute;left:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.railitem{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 10px;background:none;border:0;border-radius:7px;color:var(--muted);font-size:12px;text-align:left;min-width:132px;border-left:2px solid transparent}.railitem:hover{color:var(--text);background:var(--hover)}.railitem.active{color:var(--text);border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.railitem .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:10px;opacity:.6}.dock{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);gap:18px;padding:9px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.controls,.dock{display:flex;align-items:center}.controls{gap:4px}.controls button{width:34px;height:34px;border-radius:50%;border:1px solid transparent;background:var(--field);font-size:20px;line-height:1}.controls button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 20%,transparent)}.controls button:disabled{opacity:.25;cursor:default}.counter{font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:46px;text-align:center}.counter i{color:var(--muted);font-style:normal}.meta{display:flex;align-items:center;gap:8px;font-size:11px;padding-left:14px;border-left:1px solid var(--field-line)}.move{color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.actions{display:flex;align-items:center;gap:6px;padding-left:14px;border-left:1px solid var(--field-line)}.ghost,.primary{border-radius:999px;padding:8px 14px;font-size:12px;border:1px solid var(--line);background:transparent;color:var(--muted)}.ghost:hover{color:var(--text)}.ghost.on{color:var(--accent)}.ghost.on,.primary{border-color:var(--accent)}.primary{background:var(--accent);color:var(--accent-ink);font-weight:600}.notes{position:absolute;right:18px;bottom:22px;width:300px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.notes h2{margin:0 0 8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.notes p{margin:0;font-size:13px;line-height:1.55;color:var(--text)}.overlay{position:absolute;inset:0}.overlay.black{background:#000}.overlay.grid{background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center}.gridinner{display:grid;grid-template-columns:repeat(3,minmax(0,250px));grid-gap:14px;gap:14px}.gridinner button{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:18px;min-height:128px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);text-align:left}.gridinner button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.gridinner .num{font-size:10px;color:var(--accent);letter-spacing:.1em}.gridinner strong{font-size:15px;line-height:1.3}.gridinner em{font-style:normal;font-size:11px;color:var(--muted);margin-top:auto}.hints{position:absolute;left:18px;bottom:22px;font-size:10px;color:var(--muted);letter-spacing:.04em;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}kbd{display:inline-block;padding:2px 5px;border-radius:4px;border:1px solid var(--field-line);background:var(--field);font-family:inherit;font-size:9px}@media (max-width:1100px){.hints,.notes,.rail{display:none}}.inspector{position:absolute;right:18px;top:62px;bottom:78px;width:320px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.presenting .inspector{opacity:0;pointer-events:none}.inspector header{display:flex;flex-direction:column;gap:6px}.inspector .eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.inspector .titleInput{background:transparent;border:0;border-bottom:1px solid transparent;color:var(--text);font:600 17px/1.3 inherit;padding:2px 0}.inspector .titleInput:focus{outline:none;border-bottom-color:var(--accent)}.inspector label{display:flex;flex-direction:column;gap:5px}.inspector label>span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}.inspector label>span em{font-style:normal;color:var(--accent);opacity:.8}.inspector textarea{resize:vertical;background:var(--field);border:1px solid var(--field-line);border-radius:7px;color:var(--text);font:400 13px/1.5 inherit;padding:8px 10px}.inspector textarea:focus{outline:none;border-color:var(--accent)}.inspector textarea.invalid{border-color:rgba(255,145,145,.5)}.inspector .warn{font-size:11px;color:#ffb0b0;line-height:1.4}.inspector fieldset{border:1px solid var(--field-line);border-radius:8px;padding:12px;margin:0;display:flex;flex-direction:column;gap:10px}.inspector legend{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 6px}.inspector .moves{display:flex;flex-wrap:wrap;gap:5px}.inspector .moves button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:5px 11px;font-size:11px}.inspector .moves button.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:600}.inspector .slider span{text-transform:none;letter-spacing:0;font-size:11px}.inspector .slider b{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.inspector input[type=range]{accent-color:var(--accent);width:100%}.inspector .last{font-size:12px}@media (max-width:1280px){.inspector{display:none}}.slideOps{display:flex;align-items:center;justify-content:space-between;gap:8px}.slideOps>div{display:flex;gap:3px}.slideOps button{width:24px;height:24px;border-radius:6px;border:1px solid var(--field-line);background:var(--field);color:var(--muted);font-size:12px;line-height:1;padding:0}.slideOps button:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.slideOps button:disabled{opacity:.25;cursor:default}.slideOps button.danger:hover:not(:disabled){color:#ff9d9d;border-color:rgba(255,157,157,.5)}.slideOps button.add:hover{color:var(--accent)}.inspector .hint{margin:0;font-size:11px;line-height:1.45;color:var(--muted)}.inspector .dataInput,.inspector select{background:var(--field);border:1px solid var(--field-line);border-radius:7px;color:var(--text);font:400 12px/1.5 ui-monospace,SF Mono,Menlo,monospace;padding:7px 10px;width:100%}.inspector select{font-family:inherit;font-size:13px}.inspector .dataInput:focus,.inspector select:focus{outline:none;border-color:var(--accent)}.modes{display:flex;gap:2px;padding:3px;border-radius:8px;background:var(--field);margin-top:4px}.modes button{flex:1 1;border:0;border-radius:6px;padding:6px 8px;font-size:11px;background:transparent;color:var(--muted)}.modes button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.transform h3,.tree h3{margin:0 0 8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}.tree ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.tree li.fixed{color:var(--muted);opacity:.6}.tree li button,.tree li.fixed{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:12px}.tree li button{width:100%;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left}.tree li button:hover{background:var(--hover)}.tree li button.on{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 2px 0 0 var(--accent)}.tree .ic{width:14px;text-align:center;color:var(--accent);font-size:10px}.tree em,.tree li.fixed em{margin-left:auto;font-style:normal;font-size:10px;color:var(--muted);opacity:.8}.transform .row{margin-bottom:10px}.rowlabel{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.axes{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:5px;gap:5px}.axes label{display:flex;align-items:center;gap:4px;background:var(--field);border:1px solid var(--field-line);border-radius:6px;padding:4px 6px}.axes label:focus-within{border-color:var(--accent)}.axes b{font-size:9px;color:var(--muted);font-weight:600}.axes input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font:400 11px/1.4 ui-monospace,SF Mono,Menlo,monospace}.axes input:focus{outline:none}.hint.pad{padding:4px 0}.offsetNote{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:7px;border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 8%,transparent)}.offsetNote button{align-self:flex-start;border:1px solid var(--line);background:transparent;color:var(--accent);border-radius:999px;padding:4px 10px;font-size:11px}.ghost:disabled{opacity:.3;cursor:default}.inspector .fileInput{font-size:11px;color:var(--muted)}.inspector .fileInput::-webkit-file-upload-button{border:1px solid var(--line);background:transparent;color:var(--accent);border-radius:999px;padding:5px 11px;font-size:11px;margin-right:8px;cursor:pointer}.inspector .fileInput::file-selector-button{border:1px solid var(--line);background:transparent;color:var(--accent);border-radius:999px;padding:5px 11px;font-size:11px;margin-right:8px;cursor:pointer}.railitem .thumb{width:64px;height:36px;border-radius:4px;object-fit:cover;flex:0 0 auto;border:1px solid var(--field-line);background:#08131f}.railitem .thumb.placeholder{display:block;opacity:.5}.railitem.active .thumb{border-color:var(--accent)}.railitem .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail{max-height:calc(100vh - 200px);overflow-y:auto}.viewer .boot{flex-direction:column;gap:14px}.viewer .bar{width:220px;height:3px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}.viewer .bar i{display:block;height:100%;background:var(--accent);transition:width .25s ease}.madewith{position:absolute;right:18px;bottom:24px;font-size:10px;letter-spacing:.06em;color:var(--muted);text-decoration:none;opacity:.7}.madewith:hover{opacity:1;color:var(--accent)}.presenting .madewith{opacity:0}.library{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:4px;gap:4px}.library button{border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:6px;padding:7px 8px;font-size:11px;text-align:left}.library button:hover{border-color:var(--accent);color:var(--accent)}.themes{gap:5px}.themes,.themes button{display:flex;flex-direction:column}.themes button{gap:2px;align-items:flex-start;text-align:left;border:1px solid var(--field-line);background:var(--field);color:var(--text);border-radius:7px;padding:8px 10px}.themes button.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.themes strong{font-size:12px}.themes em{font-style:normal;font-size:10px;color:var(--muted);line-height:1.4}