:root{--bg:#1e1e1e;--chrome:#262626;--panel:#2d2d2d;--head:#252525;--field:#1b1b1b;--line:#141414;--line-2:#444;--hover:#3a3a3a;--text:#d6d6d6;--muted:#8d8d8d;--accent:#3b82f6;--accent-soft:rgba(59,130,246,0.28);--danger:#ff6b6b;--ok:#78dc96;--warn:#ffd166;color-scheme:dark}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#555 transparent}body,html{margin:0;height:100%;background:var(--bg);color:var(--text);font:12px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.small{font-size:11px}.spacer{flex:1 1}button{font:inherit;color:inherit}.btn{background:var(--hover);color:var(--text);border:1px solid var(--line-2);border-radius:4px;padding:4px 10px;cursor:pointer;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.small{padding:2px 8px;font-size:11px}.home{display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;height:100%;text-align:center}.home h1{margin:0;font-size:40px}.app{display:grid;height:100vh;overflow:hidden;grid-template-areas:"menu menu menu" "options options options" "tools tabs dock" "tools canvas dock" "tools timeline dock" "status status status"}.area-menu{grid-area:menu;position:relative;z-index:40}.area-options{grid-area:options}.area-tools{grid-area:tools}.area-canvas{grid-area:canvas}.area-canvas,.area-timeline{min-width:0;min-height:0;position:relative}.area-timeline{grid-area:timeline;border-top:1px solid var(--line)}.area-dock{grid-area:dock;min-height:0;position:relative;background:var(--panel);border-left:1px solid var(--line)}.area-status{grid-area:status}.split{position:absolute;z-index:20}.split-v{left:-3px;top:0;bottom:0;width:6px;cursor:ew-resize}.split-h{top:-3px;left:0;right:0;height:6px;cursor:ns-resize}.split:hover{background:var(--accent-soft)}.menubar{height:28px;display:flex;align-items:center;padding:0 8px;gap:2px;background:var(--chrome);border-bottom:1px solid var(--line)}.brand{font-weight:600;margin-right:10px;letter-spacing:.02em}.doc-title{color:var(--muted)}.menu{position:relative}.menu-btn{background:none;border:0;padding:4px 9px;border-radius:3px;cursor:pointer}.menu-btn.open,.menu-btn:hover{background:var(--hover)}.menu-pop{position:absolute;top:100%;left:0;min-width:250px;padding:4px;background:#343434;border:1px solid #1a1a1a;border-radius:6px;box-shadow:0 10px 28px rgba(0,0,0,.5);z-index:60}.menu-item{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;text-align:left;padding:5px 8px;border-radius:3px;cursor:pointer}.menu-item:hover:not(:disabled){background:var(--accent);color:#fff}.menu-item:disabled{color:#777;cursor:default}.menu-check{width:12px;color:var(--accent)}.menu-item:hover:not(:disabled) .menu-check,.menu-item:hover:not(:disabled) .menu-key{color:#fff}.menu-key{color:var(--muted);font-size:11px}.menu-sep{height:1px;background:#444;margin:4px 2px}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--line-2);border-radius:8px;padding:18px 22px;max-height:80vh;overflow:auto;min-width:420px}.modal h2{margin:0 0 10px;font-size:15px}.modal table{border-collapse:collapse;margin-bottom:14px}.modal td{padding:3px 14px 3px 0}.optionsbar{height:36px;display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--panel);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap}.tool-name{font-weight:600;min-width:62px}.osep{width:1px;height:18px;background:var(--line-2);flex:none}.zoom-select{background:var(--field);color:var(--text);border:1px solid var(--line-2);border-radius:3px;height:22px;width:64px}.ibtn{width:26px;height:26px;display:inline-grid;place-items:center;background:none;border:1px solid transparent;border-radius:4px;color:var(--text);cursor:pointer;flex:none}.ibtn:hover:not(:disabled){background:var(--hover)}.ibtn:disabled{opacity:.35;cursor:default}.ibtn.active{background:var(--accent-soft);border-color:var(--accent);color:#fff}.ibtn.mini{width:20px;height:20px}.toolbar{height:100%;width:44px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;background:var(--chrome);border-right:1px solid var(--line)}.toolbar .tool{width:32px;height:32px}.toolbar .tool.small{width:24px;height:20px}.tool-sep{width:24px;height:1px;background:var(--line-2);margin:4px 0}.paint{position:relative;width:34px;height:34px;margin-top:8px}.paint-fill{position:absolute;left:0;top:0;z-index:2}.paint-stroke{position:absolute;right:0;bottom:0}.reset-paint{width:14px;height:14px;margin:4px 0 6px;padding:0;border:1px solid #777;background:linear-gradient(135deg,#fff 50%,#000 0);cursor:pointer}.swatch{position:relative;display:inline-block;border:1px solid #000;outline:1px solid #666;background:#fff;flex:none}.swatch.none{background:linear-gradient(135deg,#fff 46%,#e33 0,#e33 54%,#fff 0)}.swatch-fill{position:absolute;inset:0}.swatch input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}.nf{display:inline-flex;align-items:center;height:22px;min-width:0;background:var(--field);border:1px solid var(--line-2);border-radius:3px;padding:0 6px;gap:5px}.nf:focus-within{border-color:var(--accent)}.nf.disabled{opacity:.5}.nf-label{color:var(--muted);cursor:ew-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:11px;min-width:12px}.nf-input{width:100%;min-width:34px;background:transparent;border:0;outline:0;color:var(--text);font:inherit;text-align:right}.nf-suffix{color:var(--muted);font-size:11px}.optionsbar .nf{width:92px}.canvas{width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.canvas.with-rulers{grid-template-columns:20px minmax(0,1fr);grid-template-rows:20px minmax(0,1fr)}.viewport{position:relative;overflow:hidden;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.artboard{position:absolute;box-shadow:0 0 0 1px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.45);pointer-events:auto}.artboard svg{display:block}.overlay{position:absolute;inset:0;pointer-events:none;overflow:visible}.ov-sel{fill:none;stroke:var(--accent);stroke-width:1.25}.ov-multi{fill:rgba(59,130,246,.08);stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3}.ov-marquee{fill:rgba(59,130,246,.12);stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}.ov-hover{fill:none;stroke:rgba(59,130,246,.7);stroke-width:1}.ov-locked{fill:none;stroke:#999;stroke-dasharray:4 3}.ov-origin{fill:var(--accent);stroke:#fff;stroke-width:1}.ov-handle{fill:#fff;stroke:var(--accent);stroke-width:1.25;pointer-events:all}.ov-rot{fill:#fff}.ov-pnode{fill:#fff;stroke:var(--accent);stroke-width:1.5;pointer-events:all;cursor:move}.ov-phandle,.ov-pnode.ov-close{fill:var(--accent)}.ov-phandle{stroke:#fff;stroke-width:1;pointer-events:all;cursor:crosshair}.ov-pline{stroke:var(--accent);stroke-width:1;pointer-events:none}.ov-pencil{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.inline-sel{flex:none}.ov-pen{fill:none;stroke:var(--accent);stroke-width:1.5}.ov-rubber{stroke-dasharray:4 3;opacity:.7}.ov-guide{stroke:#ff3df2;stroke-width:1;pointer-events:none}.ov-mnode{fill:#fff;stroke:#ff9f43;stroke-width:1.5;pointer-events:all;cursor:move}.ov-mhandle{fill:#ff9f43;stroke:#fff;stroke-width:1;pointer-events:all;cursor:crosshair}.ov-draw{fill:rgba(59,130,246,.15);stroke:var(--accent);stroke-dasharray:4 3}.checker{background:repeating-conic-gradient(#ffffff 0 25%,#d4d4d4 0 50%) 50% /16px 16px}.ruler{background:var(--chrome);display:block}.ruler line{stroke:#777;stroke-width:1}.ruler text{fill:#a0a0a0;font-size:9px;font-family:ui-monospace,Menlo,monospace}.ruler .ruler-cursor{stroke:#ff5d5d}.ruler-top{border-bottom:1px solid var(--line)}.ruler-corner,.ruler-left{border-right:1px solid var(--line)}.ruler-corner{background:var(--chrome);border-bottom:1px solid var(--line)}.dock-scroll{height:100%;overflow-y:auto;display:flex;flex-direction:column}.panel{border-bottom:1px solid var(--line);flex:none}.panel.grow{flex:1 1 230px;min-height:190px;display:flex;flex-direction:column}.panel-head{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;background:var(--head);color:#bdbdbd;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:-webkit-sticky;position:sticky;top:0;z-index:2}.panel-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.panel-body{padding:8px 10px 10px}.panel.grow .panel-body{flex:1 1;min-height:0;display:flex;flex-direction:column;padding:0}.empty{margin:0;padding:10px;color:var(--muted)}.props{display:grid;grid-gap:6px;gap:6px}.grad-bar{height:14px;border:1px solid #000;border-radius:2px;background-clip:padding-box}.group-title{margin-top:6px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.group-title:first-child{margin-top:0}.prow{display:flex;align-items:center;gap:8px}.prow>.nf{flex:1 1}.prow.wrap{flex-wrap:wrap}.check{gap:5px;color:var(--text)}.check,.sel{display:inline-flex;align-items:center}.sel{gap:6px;color:var(--muted);flex:1 1}.props select,.sel select{flex:1 1;height:22px}.props select,.props textarea,.sel select{background:var(--field);color:var(--text);border:1px solid var(--line-2);border-radius:3px}.props textarea{width:100%;font:11px ui-monospace,Menlo,monospace;resize:vertical}.ok{color:var(--ok)}.error,.ok{margin-top:6px}.error{color:var(--danger);white-space:pre-wrap}.warn{color:var(--warn);margin-top:2px}.lottie-box{width:100%;border:1px solid var(--line-2);overflow:hidden}.lottie-box svg{display:block}.chip{background:var(--field);color:var(--muted);border:1px solid var(--line-2);border-radius:999px;padding:1px 10px;font-size:11px;cursor:pointer}.chip:hover{color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-2)}.tab{background:none;border:0;padding:4px 8px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;font-size:11px}.tab.on,.tab:hover{color:var(--text)}.tab.on{border-bottom-color:var(--accent)}.preset-grid{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.chip.preset{border-radius:4px;padding:3px 8px}.apply{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:2px}.layers{display:flex;flex-direction:column;height:100%;min-height:0}.layer-list{flex:1 1;overflow-y:auto;min-height:0}.layer-row{display:flex;align-items:center;gap:6px;height:34px;padding:0 6px;border-bottom:1px solid #262626;cursor:default}.layer-row:hover{background:#343434}.layer-row.drop-target{outline:2px solid #ff9f43;outline-offset:-2px;background:rgba(255,159,67,.18)}.layer-row.no-drop{opacity:.55}.layer-row.child{padding-left:24px;background:rgba(255,159,67,.07)}.layer-row.child .layer-name{font-style:italic}.child-mark{color:#ff9f43;flex:none;margin:0 4px}.mini-gap{width:20px;flex:none}.layer-list.pull-out{outline:2px dashed #ff9f43;outline-offset:-3px}.pull-hint{margin:8px;padding:10px;text-align:center;color:#ff9f43;border:1px dashed #ff9f43;border-radius:4px;pointer-events:none}.layer-row.sel{background:var(--accent-soft)}.layer-row.is-hidden .layer-name,.layer-row.is-hidden .thumb{opacity:.4}.layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-name,.rename{flex:1 1;min-width:0}.rename{background:var(--field);color:var(--text);border:1px solid var(--accent);border-radius:3px;height:22px;padding:0 4px;font:inherit}.thumb{width:40px;height:26px;flex:none;border:1px solid #000;background-size:8px 8px!important;overflow:hidden}.thumb,.thumb svg{display:block}.sel-count{margin-left:6px;color:var(--accent);font-size:11px}.multi-note{margin:0;padding:6px 8px;background:var(--accent-soft);border-radius:4px;font-size:11px}.layer-foot{display:flex;align-items:center;gap:2px;padding:4px 6px;border-top:1px solid var(--line);background:var(--head)}.ease{display:grid;grid-gap:8px;gap:8px}.presets{display:flex;flex-wrap:wrap;gap:4px}.ease-plot{width:100%;max-width:240px;touch-action:none}.ease-bg{fill:var(--field);stroke:var(--line-2)}.ease-guide{stroke:var(--line-2);stroke-dasharray:3 3}.ease-arm{stroke:var(--muted);stroke-width:1}.ease-curve{fill:none;stroke:#ffd166;stroke-width:2.5}.ease-handle{fill:var(--accent);stroke:#fff;stroke-width:1.5;cursor:-webkit-grab;cursor:grab}.ease-values{font-size:11px}.timeline{display:flex;flex-direction:column;height:100%;background:var(--panel)}.tl-head{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;background:var(--head);border-bottom:1px solid var(--line);flex:none}.tl-head .nf{width:104px}.tl-zoom{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.tl-zoom input{width:90px;accent-color:var(--accent)}.legend{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.legend .key{position:static;transform:rotate(45deg);display:inline-block;width:8px;height:8px}.legend .key.hold{transform:none}.tl-body{flex:1 1;min-height:0;overflow:auto}.tracks{position:relative;min-height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tl-row{display:flex;height:26px;border-bottom:1px solid #262626}.tl-row.drop-target{outline:2px solid #ff9f43;outline-offset:-2px;background:rgba(255,159,67,.18)}.tl-row.no-drop{opacity:.55}.tl-label.grab{cursor:-webkit-grab;cursor:grab}.tl-row.child .tl-label{padding-left:22px;font-style:italic}.tl-row.sel{background:var(--accent-soft)}.tl-row.sel .tl-label{background:#2c3a55}.tl-row.is-hidden .layer-name{opacity:.4}.tl-label{position:-webkit-sticky;position:sticky;left:0;z-index:5;background:var(--panel);flex:none;display:flex;align-items:center;gap:2px;padding:0 8px;border-right:1px solid var(--line);overflow:hidden}.tl-track{position:relative;flex:1 1;cursor:col-resize}.tl-ruler{height:22px;background:var(--head);position:-webkit-sticky;position:sticky;top:0;z-index:3}.tl-ruler .tl-track{overflow:hidden}.tick{top:4px;padding-left:4px;font-size:10px;color:var(--muted);border-left:1px solid var(--line-2);height:14px;line-height:12px;pointer-events:none}.key,.tick{position:absolute}.key{top:50%;width:10px;height:10px;background:#b8bdd0;transform:translate(-50%,-50%) rotate(45deg);border-radius:2px;cursor:pointer}.key.eased{background:#ffd166}.key.hold{background:#ff9f6b;border-radius:0;transform:translate(-50%,-50%)}.key.on{outline:2px solid var(--accent);outline-offset:2px}.playhead{position:absolute;top:0;bottom:0;width:1px;background:#ff5d5d;pointer-events:none;z-index:4}.playhead-cap{position:absolute;top:0;left:-4px;fill:#ff5d5d;color:#ff5d5d}.statusbar{height:24px;display:flex;align-items:center;gap:16px;padding:0 10px;font-size:11px;color:var(--muted);background:var(--chrome);border-top:1px solid var(--line);overflow:hidden;white-space:nowrap}.status-ok{color:var(--ok)}.status-err{color:var(--danger)}.tl-group{display:contents}.prop-toggle{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:1px;height:16px;padding:0 4px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted,#9a9a9a);font-size:10px;cursor:pointer}.prop-toggle.on,.prop-toggle:hover{color:#fff;border-color:var(--accent)}.tl-row.prop{height:20px;background:rgba(255,255,255,.02)}.tl-row.prop .tl-label{padding-left:46px}.prop-name{font-size:10.5px;color:var(--muted,#9a9a9a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.key.small{width:7px;height:7px}.tl-range{position:absolute;top:4px;bottom:4px;border-radius:3px;background:rgba(120,150,255,.1);border:1px solid rgba(120,150,255,.22);pointer-events:none}.tl-range.trimmed{background:rgba(120,150,255,.22);border-color:rgba(120,150,255,.5);pointer-events:auto}.tl-range-end{position:absolute;top:-1px;bottom:-1px;width:6px;cursor:ew-resize;pointer-events:auto;border-radius:2px}.tl-range-end.in{left:-1px}.tl-range-end.out{right:-1px}.tl-range-end:hover{background:var(--accent)}.artboard.onion{pointer-events:none;background:none!important;box-shadow:none}.artboard.onion.past{filter:sepia(1) saturate(6) hue-rotate(-40deg)}.artboard.onion.future{filter:sepia(1) saturate(6) hue-rotate(80deg)}.anchor-grid{display:grid;grid-template-columns:repeat(3,12px);grid-gap:3px;gap:3px;padding:4px;border:1px solid var(--line);border-radius:4px;flex:none}.anchor-grid button{width:12px;height:12px;padding:0;border:1px solid #666;border-radius:2px;background:transparent;cursor:pointer}.anchor-grid button:hover{border-color:#fff}.anchor-grid button.on{background:var(--accent);border-color:var(--accent)}.ov-artboard{fill:none;stroke:#ff9f43;stroke-width:1.5;stroke-dasharray:6 4;pointer-events:none}.ov-handle.ov-ab{stroke:#ff9f43}.ov-ab-label{fill:#ff9f43;font-size:11px;font-family:ui-monospace,monospace;pointer-events:none}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.nd{width:min(1000px,96vw);height:min(640px,92vh);display:flex;flex-direction:column;background:#323232;border:1px solid #1a1a1a;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.6);overflow:hidden;color:var(--text)}.nd-head{display:flex;align-items:center;gap:28px;height:52px;padding:0 16px 0 22px;background:#2a2a2a;border-bottom:1px solid #1a1a1a;flex:none}.nd-head h2{margin:0;font-size:15px;font-weight:600;white-space:nowrap}.nd-tabs{display:flex;gap:22px;height:100%;flex:1 1;min-width:0;overflow-x:auto}.nd-tab{height:100%;padding:0 2px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-size:13px;cursor:pointer;white-space:nowrap}.nd-tab:hover{color:var(--text)}.nd-tab.on{color:#fff;border-bottom-color:var(--accent)}.nd-close{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:4px;background:none;color:var(--muted);cursor:pointer}.nd-close:hover{background:var(--hover);color:#fff}.nd-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;flex:1 1;min-height:0}.nd-gallery{padding:18px 22px;overflow:auto;background:#323232}.nd-section{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#b4b4b4;margin-bottom:14px}.nd-section span{color:var(--muted);font-weight:400}.nd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));grid-gap:12px;gap:12px}.nd-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px 12px;border:1px solid transparent;border-radius:6px;background:#3a3a3a;color:var(--text);cursor:pointer;text-align:center}.nd-card:hover{background:#424242}.nd-card.on{border-color:var(--accent);background:#3d4657;box-shadow:0 0 0 1px var(--accent) inset}.nd-thumb{display:grid;place-items:center;width:56px;height:56px;margin-bottom:6px}.nd-page{display:block;background:#f2f2f2;border-radius:1px;box-shadow:0 1px 3px rgba(0,0,0,.5)}.nd-card-name{font-size:12.5px;font-weight:600}.nd-card-size{font-size:11px;color:var(--muted)}.nd-details{display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:#2c2c2c;border-left:1px solid #1a1a1a;overflow:auto}.nd-details .nd-section{margin-bottom:0}.nd-name{width:100%;padding:4px 0;border:0;border-bottom:1px solid #555;background:none;color:#fff;font-size:16px;font-weight:600;outline:none}.nd-name:focus{border-bottom-color:var(--accent)}.nd-row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.nd-field,.nd-row2 label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:#b4b4b4}.nd-input{width:100%;height:28px;padding:0 8px;border:1px solid #555;border-radius:4px;background:#1f1f1f;color:#fff;font-size:13px;outline:none}.nd-input:focus{border-color:var(--accent)}.nd-unit{position:relative;display:block}.nd-unit .nd-input{padding-right:26px}.nd-unit em{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:11px;color:var(--muted);pointer-events:none}.nd-orient{display:flex;gap:6px}.nd-orient button{display:grid;place-items:center;width:34px;height:30px;border:1px solid #555;border-radius:4px;background:#1f1f1f;color:var(--muted);cursor:pointer}.nd-orient button:hover{color:#fff}.nd-orient button.on{border-color:var(--accent);background:var(--accent-soft);color:#fff}.nd-bg{display:flex;align-items:center;gap:8px}.nd-hint{margin:-6px 0 0;font-size:11px;color:var(--muted)}.nd-spacer{flex:1 1;min-height:8px}.nd-actions{display:flex;justify-content:flex-end;gap:10px}.nd-btn{min-width:88px;height:32px;padding:0 18px;border:1px solid #6a6a6a;border-radius:16px;background:none;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.nd-btn:hover{background:var(--hover)}.nd-btn.primary{background:var(--accent);border-color:var(--accent)}.nd-btn.primary:hover{filter:brightness(1.1)}.nd-btn:focus-visible,.nd-card:focus-visible,.nd-orient button:focus-visible,.nd-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:760px){.nd-body{grid-template-columns:1fr;overflow:auto}.nd-details{border-left:0;border-top:1px solid #1a1a1a}.nd-details,.nd-gallery{overflow:visible}.nd{height:auto;max-height:94vh}}.modal.trace{width:min(920px,94vw);max-height:92vh;display:flex;flex-direction:column;gap:10px}.trace-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;grid-gap:14px;gap:14px;min-height:0}.trace-preview{position:relative;height:min(56vh,520px);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:grid;place-items:center;background-color:#fff;background-image:linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0),linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0);background-size:16px 16px;background-position:0 0,8px 8px}.trace-preview img,.trace-svg{width:100%;height:100%;object-fit:contain}.trace-svg svg{display:block}.trace-busy{position:absolute;right:8px;bottom:8px;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,.7);color:#fff;font-size:11px}.trace-opts{overflow:auto;padding:0}@media (max-width:720px){.trace-body{grid-template-columns:1fr}.trace-preview{height:40vh}}.area-dock{display:flex;background:#262a33}.dock-rail{flex:none;width:40px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;background:#20232b;border-right:1px solid #15171c;overflow-y:auto}.rail-btn{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:6px;background:none;color:#aeb4c0;cursor:pointer}.rail-btn:hover{background:#2f3440;color:#fff}.rail-btn.on{background:#3a4152;color:#fff}.dock-tab:focus-visible,.qa:focus-visible,.rail-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rail-sep{width:24px;height:1px;margin:6px 0;background:#3a3f4b;flex:none}.dock-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.dock-tabs{flex:none;display:flex;height:36px;background:#20232b;border-bottom:1px solid #15171c;overflow-x:auto}.dock-tab{padding:0 14px;border:0;background:none;color:#aeb4c0;font-size:13px;white-space:nowrap;cursor:pointer}.dock-tab:hover{color:#fff}.dock-tab.on{background:#262a33;color:#fff}.dock-content{flex:1 1;min-height:0;overflow-y:auto;padding:14px 16px 20px}.dock-content.dock-layers{padding:0;display:flex;flex-direction:column;overflow:hidden}.dock-content.dock-layers>.layers{flex:1 1;min-height:0}.dock-content>.empty{padding:0;font-size:13px;line-height:1.5}.dock-content .props{gap:10px;font-size:13px}.dock-content .prop-kind{color:#9aa1ae;font-size:13px;display:flex;gap:8px;align-items:baseline}.dock-content .prop-kind span{color:#6f7684;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-content .group-title{margin-top:12px;padding-top:16px;border-top:1px solid #3a3f4b;font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:#fff}.dock-content .prop-kind+.group-title,.dock-content .props>.group-title:first-child,.dock-content .props>.tabs+.group-title{border-top:0;padding-top:0;margin-top:2px}.dock-content .sub-title{margin-top:2px;font-size:12px;color:#9aa1ae}.dock-content .prow{gap:10px}.dock-content .nf{height:30px;padding:0 0 0 2px;gap:8px;border:0;background:none}.dock-content .nf:focus-within{border:0}.dock-content .nf-label{min-width:16px;font-size:13px;color:#c9ced8;white-space:nowrap}.dock-content .nf-label:after{content:":"}.dock-content .nf-input{height:30px;padding:0 8px;border:1px solid #454b59;border-radius:6px;background:#15171c;color:#fff;font-size:13px;text-align:left;min-width:0;flex:1 1}.dock-content .nf:focus-within .nf-input{border-color:var(--accent)}.dock-content .nf-suffix{font-size:12px;color:#9aa1ae;min-width:14px}.dock-content .sel{gap:8px;color:#c9ced8;font-size:13px}.dock-content .props select,.dock-content .sel select{height:30px;padding:0 6px;color:#fff;font-size:13px}.dock-content .props select,.dock-content .props textarea,.dock-content .sel select{border:1px solid #454b59;border-radius:6px;background:#15171c}.dock-content .check{font-size:13px;color:#c9ced8}.dock-content .ibtn{width:30px;height:30px;border-radius:6px;color:#c9ced8}.dock-content .btn{height:30px;padding:0 12px;border:0;border-radius:6px;background:#3a4152;color:#fff;font-size:13px}.dock-content .btn:hover:not(:disabled){background:#465066}.dock-content .btn.small{height:28px;padding:0 10px;font-size:12.5px}.dock-content .btn.primary{background:var(--accent)}.dock-content .chip{padding:4px 10px;font-size:12px}.dock-content .muted.small,.dock-content p.small{font-size:12px;line-height:1.45}.dock-content .swatch{border-radius:3px}.qa-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.qa{height:30px;padding:0 8px;border:0;border-radius:6px;background:#3a4152;color:#fff;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qa:hover:not(:disabled){background:#465066}.qa:disabled{opacity:.4;cursor:default}.qa.wide{grid-column:1/-1}.qa.danger:hover{background:#7a2f37}.dock-content{overflow-x:hidden}.dock-content .props{grid-template-columns:minmax(0,1fr)}.dock-content .nf,.dock-content .sel{min-width:0}.dock-content .nf-input{width:100%}.dock-content .sel select{min-width:0}.dock-content .prow.wrap>*{flex:0 1 auto}.menu-sub{position:relative}.menu-sub-pop{display:none;position:absolute;left:100%;top:-5px}.menu-sub:focus-within>.menu-sub-pop,.menu-sub:hover>.menu-sub-pop{display:block}.menu-sub:hover>.menu-item{background:var(--accent);color:#fff}.menu-arrow{color:var(--muted);font-size:14px;line-height:1}.menu-sub:hover>.menu-item .menu-arrow{color:#fff}.menu-pop{min-width:230px;padding:5px;border-radius:8px}.menu-item{border-radius:5px;padding-top:5px;padding-bottom:5px;font-size:13px}.menu-key{font-size:12px}.artboard.outline [data-layer-id]{opacity:1!important;mix-blend-mode:normal!important}.artboard.outline [data-layer-id]>:not(defs){fill:none!important;stroke:#1a1a1a!important;stroke-width:1px!important;stroke-dasharray:none!important;stroke-opacity:1!important;vector-effect:non-scaling-stroke}.artboard.outline,.artboard.outline.checker{background:#fff!important}.app.presenting .overlay,.app.presenting>.area-dock,.app.presenting>.area-menu,.app.presenting>.area-options,.app.presenting>.area-status,.app.presenting>.area-tools{display:none}.present-exit{position:fixed;right:14px;top:14px;z-index:60;padding:6px 12px;border:0;border-radius:16px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;cursor:pointer;opacity:.35}.present-exit:hover{opacity:1}.area-options,.area-tools{overflow:hidden}.toolbar{width:48px;gap:3px;padding:10px 0;background:#20232b;border-right:1px solid #15171c;overflow-y:auto;scrollbar-width:none}.toolbar .tool{width:36px;height:36px;border:0;border-radius:8px;color:#c9ced8;flex:none}.toolbar .tool:hover:not(:disabled){background:#2f3440;color:#fff}.toolbar .tool.active{background:#4a3f45;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}.toolbar .tool.small{width:28px;height:22px}.toolbar .tool-sep{width:26px;margin:5px 0;background:#3a3f4b;flex:none}.toolbar .paint{width:38px;height:38px;flex:none}.toolbar .reset-paint,.toolbar .spacer{flex:none}.toolbar .spacer{flex:1 0 8px}.ds{width:min(720px,94vw);min-height:460px;display:flex;flex-direction:column;padding:28px 30px 26px;background:#262a33;border:1px solid #15171c;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.6);color:#e6e8ee;font-size:14px}.ds h2{margin:0 0 18px;font-size:18px;font-weight:600}.ds-tabs{display:flex;gap:24px;margin-bottom:22px}.ds-tabs button{padding:4px 0 8px;border:0;border-bottom:2px solid transparent;background:none;color:#b9bfcb;font-size:14px;cursor:pointer}.ds-tabs button:hover{color:#fff}.ds-tabs button.on{color:#fff;font-weight:600;border-bottom-color:var(--accent)}.ds-body{flex:1 1;display:flex;flex-direction:column;gap:16px}.ds-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;grid-gap:12px;gap:12px}.ds-row.top{align-items:start}.ds-row.top>span:first-child{padding-top:26px}.ds-input{height:32px;width:110px;padding:0 10px;border:1px solid #454b59;border-radius:6px;background:#15171c;color:#fff;font-size:14px;outline:none}.ds-input.wide{width:260px}.ds-input:focus{border-color:var(--accent)}.ds-static{color:#b9bfcb}.ds-cols{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.ds-anchor,.ds-cols label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa1ae}.ds-anchor .anchor-grid{width:max-content;border-color:#454b59}.ds-btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ds-btn{height:32px;padding:0 18px;border:0;border-radius:6px;background:#3a4152;color:#fff;font-size:14px;cursor:pointer}.ds-btn:hover{background:#465066}.ds-btn.big{min-width:96px;height:38px;font-weight:600}.ds-btn.primary{background:var(--accent)}.ds-btn.primary:hover{filter:brightness(1.1)}.ds-check{display:flex;align-items:center;gap:10px}.ds-note{margin:0;color:#9aa1ae;font-size:12.5px;line-height:1.5;max-width:520px}.ds-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.menu-item{white-space:nowrap}.menu-pop{width:max-content}.artboard:not(.checker):not(.onion){background:#fff}.ds.save-as{width:min(480px,94vw);min-height:0}.save-as-label{font-size:12.5px;color:#9aa1ae;margin-bottom:6px}.save-as-field{display:flex;align-items:center;gap:8px;margin-bottom:12px}.save-as-field .ds-input{flex:1 1;width:auto;height:36px}.save-as-ext{color:#b9bfcb;font-family:ui-monospace,monospace;font-size:13px}.ds-btn:disabled{opacity:.45;cursor:default}button.swatch{padding:0;cursor:pointer;border-radius:2px;overflow:hidden;background-color:#fff;background-image:linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0),linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0);background-size:8px 8px;background-position:0 0,4px 4px}button.swatch.none{background:linear-gradient(135deg,#fff 46%,#e33 0,#e33 54%,#fff 0)}button.swatch:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cp{position:fixed;z-index:200;padding:12px;background:#262a33;border:1px solid #15171c;border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.6);color:#e6e8ee;font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;font-weight:600}.cp-preview{width:34px;height:20px;border-radius:4px;border:1px solid #000;outline:1px solid #555}.cp-preview[data-none]{background:linear-gradient(135deg,#fff 46%,#e33 0,#e33 54%,#fff 0)}.cp-sv{position:relative;height:150px;border-radius:6px;overflow:hidden;cursor:crosshair;touch-action:none}.cp-sv-black,.cp-sv-white{position:absolute;inset:0;pointer-events:none}.cp-sv-white{background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.cp-sv-black{background:linear-gradient(0deg,#000,rgba(0,0,0,0))}.cp-dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.6);pointer-events:none}.cp-slider{position:relative;height:12px;margin-top:10px;border-radius:6px;cursor:pointer;touch-action:none}.cp-hue{background:linear-gradient(90deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}.cp-alpha{background-color:#fff;background-image:linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0),linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0);background-size:8px 8px;background-position:0 0,4px 4px}.cp-alpha-fill{position:absolute;inset:0;border-radius:6px}.cp-thumb{position:absolute;top:-2px;width:8px;height:16px;margin-left:-4px;border:2px solid #fff;border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.6);pointer-events:none}.cp-fields{display:grid;grid-template-columns:1.9fr 1fr 1fr 1fr 1fr;grid-gap:6px;gap:6px;margin-top:12px}.cp-fields label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:#9aa1ae}.cp-fields input{width:100%;height:26px;padding:0 5px;border:1px solid #454b59;border-radius:5px;background:#15171c;color:#fff;font-size:12px;font-family:ui-monospace,monospace;outline:none;-webkit-user-select:text;-moz-user-select:text;user-select:text}.cp-fields input:focus{border-color:var(--accent)}.cp-swatches{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:4px;gap:4px;margin-top:12px}.cp-sw{aspect-ratio:1;padding:0;border:1px solid rgba(0,0,0,.6);border-radius:3px;cursor:pointer}.cp-sw:focus-visible,.cp-sw:hover{outline:2px solid #fff;outline-offset:1px}.cp-none{background:linear-gradient(135deg,#fff 44%,#e33 0,#e33 56%,#fff 0)}.cp-label{margin-top:10px;font-size:10.5px;color:#9aa1ae}.cp-label+.cp-swatches{margin-top:5px}.cp-head{gap:8px}.cp-eye{display:grid;place-items:center;width:26px;height:22px;border:1px solid #454b59;border-radius:5px;background:#15171c;color:#c9ced8;cursor:pointer}.cp-eye:hover{color:#fff;border-color:#6a7183}.cp-eye.on{background:var(--accent);border-color:var(--accent);color:#fff}body.eyedropping,body.eyedropping *{cursor:crosshair!important}.cp-hint{margin:8px 0 0;font-size:11px;color:#9aa1ae}.area-tabs{grid-area:tabs;min-width:0;overflow:hidden;background:#1b1e25;border-bottom:1px solid #15171c}.app.presenting>.area-tabs{display:none}.doc-tabs{display:flex;height:100%;overflow-x:auto;scrollbar-width:none}.doc-tab{display:flex;align-items:center;gap:2px;max-width:360px;padding:0 14px 0 6px;border-right:1px solid #15171c;color:#9aa1ae;flex:none}.doc-tab.on{background:#262a33;color:#fff}.doc-tab-name{min-width:0;height:100%;padding:0 2px;border:0;background:none;color:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.doc-tab:not(.on) .doc-tab-name{font-weight:400}.doc-tab:not(.on):hover{color:#e6e8ee;background:#20232b}.doc-tab-x{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:4px;background:none;color:inherit;cursor:pointer;flex:none}.doc-tab-x:hover{background:#3a4152;color:#fff}.doc-tab-name:focus-visible,.doc-tab-x:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.start{height:100%;display:grid;place-items:center;background:#1b1e25;color:#e6e8ee}.start-box{max-width:520px;padding:24px;text-align:center}.start-box h1{margin:0 0 8px;font-size:20px;font-weight:600}.start-box p{margin:0 0 22px;color:#9aa1ae;font-size:13.5px;line-height:1.5}.start-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.start-btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:0;border-radius:8px;background:#3a4152;color:#fff;font-size:13.5px;cursor:pointer}.start-btn:hover{background:#465066}.start-btn.primary{background:var(--accent)}.start-btn.primary:hover{filter:brightness(1.1)}.start-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.canvas{position:relative}.canvas.previewing .artboard.onion,.canvas.previewing .overlay{display:none}.preview-badge{position:absolute;left:50%;top:28px;transform:translateX(-50%);z-index:6;padding:4px 12px;border-radius:12px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:600;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.4)}.preset-select{width:100%}.preview-row{display:flex;gap:8px;align-items:center}.preview-row .btn{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px}.trace-preview{touch-action:none}.trace-preview.zoomed{cursor:-webkit-grab;cursor:grab}.trace-preview.zoomed:active{cursor:-webkit-grabbing;cursor:grabbing}.trace-stage{width:100%;height:100%;display:grid;place-items:center;transform-origin:50% 50%;will-change:transform}.trace-stage img{-webkit-user-select:none;-moz-user-select:none;user-select:none}.trace-zoom{position:absolute;left:8px;bottom:8px;display:flex;align-items:center;gap:2px;padding:3px;border-radius:8px;background:rgba(20,22,28,.88);color:#fff;font-size:11.5px}.trace-zoom span{min-width:44px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.trace-zoom button{display:grid;place-items:center;width:26px;height:24px;border:0;border-radius:5px;background:none;color:#fff;cursor:pointer}.trace-zoom button:hover:not(:disabled){background:#3a4152}.trace-zoom button:disabled{opacity:.35;cursor:default}.trace-preview.picking,.trace-preview.picking *{cursor:crosshair!important}.trace-remove{display:flex;flex-wrap:wrap}.trace-pick,.trace-remove{align-items:center;gap:6px}.trace-chip,.trace-pick{display:inline-flex}.trace-chip{align-items:center;gap:2px;padding:2px 2px 2px 3px;border:1px solid var(--line-2);border-radius:6px;background:var(--field)}.trace-chip i{width:16px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.6);display:block}.trace-chip button{display:grid;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:3px;background:none;color:var(--muted);cursor:pointer}.trace-chip button:hover{background:var(--hover);color:#fff}.artboard svg{overflow:visible}.app.presenting .artboard svg,.artboard.onion svg{overflow:hidden}.dock-content a.btn,.menubar .brand{display:inline-flex;align-items:center}.menubar .brand{color:#fff}