:root{--bg: #f4f0e7;--panel: rgba(255, 253, 248, .86);--line: rgba(45, 40, 30, .14);--text: #2c2925;--muted: #8a8475;--accent: #0891b2;--danger: #e03131;--hover: rgba(45, 40, 30, .06);--hover-plate: #fff;--hover-ink: var(--accent);--rest: #f0efe6;--shadow-sm: 0 1px 2px rgba(60, 50, 30, .1), 0 3px 8px rgba(60, 50, 30, .07);--shadow-md: 0 2px 6px rgba(60, 50, 30, .1), 0 14px 34px rgba(60, 50, 30, .13);--shadow: var(--shadow-md);--edge: inset 0 1px 0 rgba(255, 255, 255, .6);--tag-bg: var(--rest);--r-xs: 6px;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--z-object: 1;--z-console: 5;--z-float: 10;--z-float-active: 20;--z-popover: 30;--z-popover-active: 35;--z-drag: 40;--z-marking: 80;--dress-dur: .68s;font-family:Work Sans,-apple-system,BlinkMacSystemFont,SF Pro,Helvetica,Arial,sans-serif}html[data-theme=dark]{--bg: #0f1115;--panel: rgba(22, 25, 32, .86);--tag-bg: var(--panel);--line: rgba(255, 255, 255, .1);--text: #e7e9ee;--muted: #8b90a0;--accent: #22d3ee;--danger: #ff6b6b;--hover: rgba(255, 255, 255, .08);--hover-plate: #000;--hover-ink: var(--accent);--rest: transparent;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 3px 8px rgba(0, 0, 0, .32);--shadow-md: 0 2px 8px rgba(0, 0, 0, .42), 0 18px 44px rgba(0, 0, 0, .5);--shadow: var(--shadow-md);--edge: inset 0 1px 0 rgba(255, 255, 255, .07)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}html,body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);overscroll-behavior:none;touch-action:none}body{position:relative}#stage{position:absolute;top:0;left:0;display:block;touch-action:none}#stage3d{position:absolute;top:0;left:0;display:none;pointer-events:none}#markstage{position:absolute;top:0;left:0;display:block;pointer-events:none;z-index:var(--z-marking)}html.marking body>:not(#stage):not(#markstage):not(#library):not(#screendeck),html.marking body>:not(#stage):not(#markstage):not(#library):not(#screendeck) *{pointer-events:none!important}#screendeck{position:fixed;z-index:var(--z-console);touch-action:none;user-select:none;-webkit-user-select:none}#screendeck .sd-key{border-radius:10px;touch-action:none;cursor:pointer}#ui{position:fixed;inset:0;z-index:var(--z-float);pointer-events:none;transition:opacity .16s ease,transform .16s ease}#rail.z-front,#artboard.z-front,#docs.z-front,#palette.z-front,#hud.z-front,#threed.z-front{z-index:var(--z-float-active)}.text-edit{z-index:var(--z-popover)}#colorpicker.z-pop-front,#library.z-pop-front,#calibrate.z-pop-front,.text-edit.z-pop-front,.popmenu.z-pop-front{z-index:var(--z-popover-active)}#ui.hidden{opacity:0;transform:scale(.98);pointer-events:none}#ui.hidden *{pointer-events:none!important}#ui.editing{opacity:0;transform:scale(.98);pointer-events:none}#ui.editing *{pointer-events:none!important}.card,#palette,.chip,#hudmain,#coords,#dims,#colorpicker,#library,#vectorpanel,#dimbadge .db-meas,#theme,.modkey{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}#threed{position:absolute;z-index:var(--z-float);top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-10px);display:flex;flex-direction:column;gap:7px;padding:9px 14px;border-radius:12px;font-size:11.5px;color:var(--text);pointer-events:none;opacity:0;transition:opacity .16s ease,transform .16s ease}#threed.on{pointer-events:auto;opacity:1;transform:translate(-50%) translateY(0)}#threed .td-row{display:flex;align-items:center;gap:14px}#threed .td-chk,#threed .td-rng,#threed .td-sel,#threed .td-col{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;-webkit-user-select:none}#threed .td-chk{min-width:84px;font-weight:500}#threed .td-sub{display:none;align-items:center;gap:12px;padding-left:6px;border-left:1px solid var(--line)}#threed .td-sub.on{display:flex}#threed .td-rng>span,#threed .td-sel>span,#threed .td-col>span{opacity:.65}#threed .td-val{font:10.5px/1 Work Sans,-apple-system,BlinkMacSystemFont,SF Pro,Helvetica,Arial,sans-serif;opacity:.85;min-width:26px;text-align:right;font-weight:500}#threed input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}#threed input[type=range]{width:70px;accent-color:var(--accent);cursor:pointer}#threed .td-col input[type=range]{width:48px}#threed select{background:transparent;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:1px 4px;font-size:11px;cursor:pointer}#threed input[type=color]{width:22px;height:18px;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer}#threed .td-height{align-self:flex-start}#threed .td-foot{justify-content:space-between}#threed .td-btn{background:transparent;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:3px 10px;font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}#threed .td-btn:hover{background:var(--hover-plate);color:var(--text);border-color:var(--hover-plate)}#threed .td-btn:active{background:var(--accent);border-color:var(--accent);color:var(--menu-text-active, #fff)}#palette{pointer-events:auto;position:absolute;z-index:var(--z-float);top:50%;left:max(20px,calc(env(safe-area-inset-left) + 8px));transform:translateY(-50%);display:grid;place-items:center;padding:5px;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;touch-action:none}#palette:before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:var(--r-lg);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-md),var(--edge);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}.tool-ind{display:block}.tool-fam{position:absolute;left:5px;pointer-events:none;opacity:1;transition:transform .1s}.tool-fam.on{transform:scale(1.16)}#palette .k{position:absolute;bottom:calc(50% - 16px);right:calc(50% - 17px);font-size:9px;color:var(--muted)}.tool-sub{pointer-events:none;position:fixed;z-index:var(--z-popover);transform:translateY(-50%);display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow-md),var(--edge)}.tool-sub-item{display:grid;place-items:center;border-radius:8px;transition:transform .1s}.tool-sub-item.active{background:color-mix(in srgb,var(--accent) 16%,transparent)}.tool-sub-item.on{transform:scale(1.16)}.prop-swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--line)}#rail{pointer-events:none;position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:var(--z-float);width:auto;display:flex;flex-direction:row;align-items:flex-start;gap:10px}#docs,#nshapes,#regions,#artboard{pointer-events:auto;position:relative;z-index:var(--z-float);transition:width var(--dress-dur) ease-out}#docs{pointer-events:none}#docs .pal-card,#docs .docs-head,#docs .docs-types,#docs .docs-empty{pointer-events:auto}#nshapes,#regions,#artboard{pointer-events:none}#nshapes .pal-card,#nshapes .ol-prefs,#nshapes .ns-list,#artboard .pal-card,#artboard .op-head,#artboard .add,#artboard #grid-units,#artboard #layers,#artboard .sub-note,#artboard #lightpanel,#artboard #canvas-size,.op-cap .op-body,.op-cap .ol-swipe,.op-cap .op-nm,.op-cap .op-ctl,.op-cap.sel{pointer-events:auto}.add{display:flex;height:34px;border-radius:11px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.add button{flex:1;height:34px;font-size:16px;color:var(--text);background:transparent;border:none;cursor:pointer;display:grid;place-items:center;transition:background .12s ease,color .12s ease}.add button+button{box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent)}.add button svg{display:block}.add button:hover,.add button:active{background:var(--hover-plate);color:var(--hover-ink)}#layers{display:flex;flex-direction:column;gap:0;width:216px}#layers>.gridgroup:first-child>.chip:first-child,#layers>.chip:first-child{border-top-left-radius:0;border-top-right-radius:0}#canvas-size{width:216px}.chip{display:flex;align-items:center;gap:8px;height:66px;padding:7px 10px;border-radius:11px;border:none;cursor:pointer;font-size:12.5px;box-shadow:var(--shadow-sm),var(--edge);transition:box-shadow .12s ease}.chip.active{border-color:transparent;box-shadow:inset 0 0 0 2px var(--text),var(--shadow-sm)}#layers>.gridgroup:first-child>.chip:first-child.active,#layers>.chip:first-child.active{box-shadow:inset 2px 0 0 0 var(--text),inset -2px 0 0 0 var(--text),inset 0 -2px 0 0 var(--text),var(--shadow-sm)}.chip .sw{width:11px;height:11px;border-radius:3px;flex:none;box-shadow:0 0 0 1px #8080804d inset}.chip .sw.picker-swatch{cursor:pointer}.chip.frame{height:auto;min-height:66px}.chip.frame .nm{font-size:14px;font-weight:400;margin-left:-4px;white-space:normal;line-height:1.2;overflow-wrap:break-word}.chip .nm{flex:1;font-size:20px;font-weight:550;color:var(--text)}.chip .eye,.chip .del{flex:none;display:inline-flex;align-items:center;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;line-height:1}.chip .eye{color:var(--text);margin-right:8px}.chip .eye svg{width:16px;height:16px}.chip .del:hover{background:var(--hover-plate);color:var(--danger);border-radius:6px}.chip .eye:hover{background:var(--hover-plate);color:var(--hover-ink);border-radius:6px}.gridgroup{display:flex;flex-direction:column;gap:0}#grid-units{display:flex;width:216px;margin-bottom:0;border-radius:11px 11px 0 0;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.unit-pill{flex:1 1 0;min-width:0;height:34px;border:none;border-radius:8px 8px 0 0;background:transparent;color:var(--text);font:inherit;font-size:18px;font-weight:400;cursor:pointer}.unit-pill:not(.on){box-shadow:inset 0 -2px 0 0 var(--text)}.unit-pill+.unit-pill:not(.on){box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent),inset 0 -2px 0 0 var(--text)}.unit-pill.on{font-weight:700;box-shadow:inset 0 2px 0 0 var(--text),inset 2px 0 0 0 var(--text),inset -2px 0 0 0 var(--text)}.unit-pill:first-child.on{border-top-left-radius:11px}.unit-pill:last-child.on{border-top-right-radius:11px}.chip .dist{flex:none;width:3.6em;text-align:right;font:inherit;font-size:20px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:6px;padding:1px 4px}.chip .dist:focus{outline:none;color:inherit;border-color:var(--line);background:var(--bg)}.chip .dunit{flex:1;margin-left:-4px;color:var(--text);font-size:18px}.op-head{position:relative;flex:none;align-self:flex-start;display:flex;align-items:center;width:144px;height:44px;margin-left:12px;margin-bottom:6px;padding:0 12px 0 34px;border-radius:11px;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);font-size:11px;letter-spacing:.1em;font-weight:700;color:var(--text)}.op-head-title{flex:1;cursor:pointer}.op-head-tw{position:absolute;left:0;top:0;width:34px;height:100%;border:none;background:transparent;color:var(--text);cursor:pointer;padding:0;line-height:0;display:inline-flex;align-items:center;justify-content:center}.op-head-tw svg{width:22px;height:22px}.op-head-tw:hover,.op-head-tw:active{background:var(--hover-plate);color:var(--hover-ink);border-radius:8px}.pal-card{flex:none;align-self:flex-start;display:flex;flex-direction:column;margin:0 0 6px 12px}#docs .pal-card{margin-left:0}#nshapes.pal-closed .pal-card .shapes-io,#nshapes.pal-closed .ol-prefs,#artboard.pal-closed .artboard-sub,#artboard.pal-closed .sub-body{display:none}.pal-closed .pal-head{border-radius:11px}.op-head.pal-head{width:max-content;padding:0;gap:0;margin:0;border-radius:11px 11px 0 0;background:#fff;cursor:pointer;font-family:Work Sans,-apple-system,sans-serif;font-size:20px;font-weight:400;letter-spacing:0}.op-head.pal-head svg{height:44px;width:auto;display:block}.pal-head .op-head-tw{position:static;transform:none;flex:none;width:auto;height:auto}.pal-head .op-head-icon{flex:none;line-height:0}.pal-head .op-head-title{padding:0 17px 0 4px;position:relative;top:-2px;min-width:0;max-width:180px;overflow:hidden;white-space:nowrap;transition:max-width var(--dress-dur) ease-out,padding var(--dress-dur) ease-out,opacity .1s ease-out .08s}.pal-head .pal-drag.pal-grip{width:auto;height:auto;margin:0;padding:0;background-image:none;line-height:0;display:flex;align-items:center}.op-head.pal-head.pal-solo{border-radius:11px}html[data-theme=dark] .op-head.pal-head{background:#000}html[data-theme=dark] .op-head.pal-head .op-head-icon svg,html[data-theme=dark] .op-head.pal-head .pal-drag svg{filter:invert(1)}.ol-drop{position:absolute;right:8px;height:2px;background:var(--accent);border-radius:1px;pointer-events:none;display:none;z-index:6}@property --cap-w{syntax: "<length>"; inherits: true; initial-value: 144px;}.op-cap{--cap-w: 144px;position:relative;flex:none;display:flex;align-items:center;width:100%;height:44px;cursor:pointer;color:var(--text)}.op-cap.group{height:88px}.op-cap.off .op-tw,.op-cap.off .op-thumb,.op-cap.off .op-glyph,.op-cap.off .op-nm,.op-cap.off .op-ctl{opacity:.4}.op-body{position:relative;z-index:1;flex:none;align-self:stretch;display:flex;align-items:center;justify-content:center;width:var(--cap-w);background:var(--panel);border-radius:11px;box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.op-cap.group .op-body{width:var(--cap-w)}.op-cap.op-open .op-body{border-bottom-left-radius:0;border-bottom-right-radius:0;box-shadow:var(--shadow-sm),var(--edge)}.op-cap.op-nested .op-body{width:var(--cap-w);border-radius:0;box-shadow:var(--shadow-sm)}.op-cap.op-merged-end .op-body{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.op-cap.op-open.op-grp-sel .op-body{border:1px solid var(--text);border-bottom:none}.op-cap.op-nested.op-grp-sel .op-body{border-left:1px solid var(--text);border-right:1px solid var(--text)}.op-cap.op-merged-end.op-grp-sel .op-body{border-bottom:1px solid var(--text)}.op-tw{position:absolute;left:0;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;background:transparent;color:color-mix(in srgb,var(--text) 40%,transparent);cursor:pointer;padding:0;line-height:0;display:inline-flex;align-items:center;justify-content:flex-start}.op-tw svg{width:32px;height:32px}.op-tw.leaf{display:none}.op-tw:hover,.op-tw:active{background:var(--hover-plate);color:var(--hover-ink);border-radius:50%}.op-cap.op-open .op-tw{left:-11px}.op-cap.sel .op-tw{color:var(--text)}.op-thumb{flex:none;max-height:30px;max-width:64px;width:auto;height:auto;object-fit:contain}.op-thumb.group{max-height:74px;max-width:96px}.op-glyph{flex:none;text-align:center;color:var(--muted);font-size:24px;line-height:1}.op-glyph svg{display:block;margin:0 auto}.op-nm{flex:0 1 auto;min-width:0;align-self:center;height:44px;line-height:44px;margin-left:-22px;padding:0 20px 0 30px;font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);background:var(--tag-bg);box-shadow:inset 0 0 0 1px #fff;border-radius:11px;max-width:calc(100% - 100px);cursor:pointer}.op-cap:not(.sel) .op-nm{cursor:default}.op-cap.group .op-nm{height:88px;white-space:normal;line-height:1.25;display:flex;flex-direction:column;justify-content:center}.op-nm.placeholder{display:none;border-radius:0;box-shadow:inset 0 0 0 2px #fff}.op-cap.group .op-nm.placeholder{display:none}.op-nm.placeholder:before{content:attr(data-placeholder)}.op-cap.sel .op-body{box-shadow:inset 0 0 0 2px var(--text),var(--shadow-sm)}.op-cap.sel .op-nm{max-width:150px}.op-cap.unnamed.sel .op-nm.placeholder{display:flex;align-items:center;color:var(--muted)}.op-cap.op-open.sel,.op-cap.op-nested.sel{width:100%;background:transparent;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.op-cap.op-open.sel .op-body,.op-cap.op-nested.sel .op-body{background:var(--panel);border:2px solid var(--text);box-shadow:none}.op-cap.armed .op-body{box-shadow:var(--shadow-md)}.artboard-sub.drop-hot,#nshapes .pal-head.drop-hot,.sub-note.drop-hot{background:var(--text);border-radius:11px}.sub-note.drop-hot,.artboard-sub.drop-hot .op-head-title,.artboard-sub.drop-hot .op-head-tw,#nshapes .pal-head.drop-hot .op-head-title,#nshapes .pal-head.drop-hot .op-head-tw{color:var(--bg)}.sub-body[data-cat].cat-armed{outline:2px solid var(--accent);outline-offset:-2px;border-radius:11px;background:color-mix(in srgb,var(--accent) 10%,transparent)}.sub-body[data-cat].cat-armed .sub-note{color:var(--text);font-weight:550}.ol-swipe{position:absolute;left:0;top:0;bottom:0;width:var(--cap-w);display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:11px;background:var(--tag-bg);pointer-events:none;opacity:0}.op-cap.swiping .ol-swipe{opacity:1}.sw-ic{display:none;position:relative;color:var(--text);padding:3px;border-radius:7px;background:transparent;transition:color .12s ease,transform .12s ease,background-color .12s ease}.sw-ic svg{display:block;position:relative;z-index:1;fill:var(--bg);transition:fill .12s ease}.op-cap.sw-del .sw-ic-del{display:block;margin-left:auto}.op-cap.sw-grp .sw-ic-grp,.op-cap.sw-ungrp .sw-ic-ungrp{display:block;margin-right:auto}.op-cap.sw-armed .sw-ic{transform:scale(1.12)}.op-cap.sw-armed.sw-del .sw-ic-del{color:var(--text)}.op-cap.sw-armed.sw-del .sw-ic-del svg{fill:var(--danger)}.op-cap.sw-armed.sw-del .sw-ic-del .dl-x{stroke:var(--bg)}.sw-ic-grp .grp-on,.op-cap.sw-armed.sw-grp .sw-ic-grp .grp-off{display:none}.op-cap.sw-armed.sw-grp .sw-ic-grp .grp-on{display:block}.op-cap.sw-armed.sw-grp .sw-ic-grp{color:var(--text)}.sw-ic-grp .grp-paper{fill:var(--bg)}.op-cap.sw-armed.sw-grp .sw-ic-grp svg{fill:none}.op-cap.sw-armed.sw-ungrp .sw-ic-ungrp{color:var(--text)}.op-cap.sw-armed.sw-ungrp .sw-ic-ungrp svg{fill:var(--text)}.op-cap.swiping{z-index:6;transition:none}.op-cap.sw-src .op-body{visibility:hidden}.op-cap.swiping .op-body{box-shadow:var(--shadow-md)}.op-cap.dragging{z-index:5;transition:none;cursor:grabbing}.op-cap.dragging .op-body{box-shadow:var(--shadow-md),inset 0 0 0 2px var(--text)}.ol-edit{width:14ch;font-family:inherit;border:none;cursor:text}.ol-edit:focus{outline:none}.op-ctl{position:absolute;bottom:6px;left:52px;transform:translate(-50%);display:none;align-items:center;gap:2px;padding:3px 5px;border-radius:999px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);z-index:7}.op-cap.show-controls .op-ctl{display:flex}.op-ctl .ol-imgdown,.op-ctl .ol-imgfail{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;padding:4px 5px;line-height:0;display:inline-flex;align-items:center;opacity:1}.op-ctl .ol-imgdown{color:var(--accent)}.op-ctl .ol-imgfail{color:#e03131}.op-ctl .ol-imgdown.busy{animation:ol-pulse .8s ease-in-out infinite}.op-body .ol-eye,.op-body .ol-lock{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:none;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:999px;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);color:var(--text);cursor:pointer;padding:0;line-height:0}.op-body .ol-eye svg,.op-body .ol-lock svg{width:16px;height:16px}.op-body .ol-eye{left:4px}.op-body .ol-lock{right:4px}.op-cap.group .op-body .ol-eye,.op-cap.group .op-body .ol-lock{top:4px;transform:none}.op-cap.sel .op-body .ol-eye,.op-cap.off .op-body .ol-eye,.op-cap.sel .op-body .ol-lock,.op-cap.locked .op-body .ol-lock{display:inline-flex}.op-body .ol-lock.inherited{cursor:default;opacity:.4}.op-body .ol-eye:hover,.op-body .ol-lock:not(.inherited):hover{background:var(--hover-plate);color:var(--hover-ink)}.ol-count{font-size:9px;font-weight:700;line-height:1}@keyframes ol-pulse{50%{opacity:.4}}#docs{--pal-w: 264px;--pal-w-narrow: 120px;width:var(--pal-w);display:flex;flex-direction:column;gap:0}.docs-head{margin-bottom:6px}#docs .docs-head-recent{width:242px;align-self:flex-start;margin-top:6px;cursor:pointer}#docs .docs-head-recent .docs-title{font-family:Work Sans,-apple-system,sans-serif;font-size:20px;font-weight:400;letter-spacing:0;text-transform:none}.docs-actions{align-self:stretch;display:flex;height:40px;margin:0;border-radius:0 0 11px 11px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.doc-act{flex:1 1 0;min-width:0;height:40px;display:grid;place-items:center;border:none;background:transparent;color:var(--text);cursor:pointer;line-height:0}.doc-act+.doc-act{box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent)}.doc-act svg{width:22px;height:22px}.doc-act:hover{background:var(--hover-plate);color:var(--hover-ink)}.doc-act.open{color:var(--accent)}#artboard{--pal-w: 264px;--pal-w-narrow: 120px;width:var(--pal-w);display:flex;flex-direction:column;gap:0}.ol-prefs{flex:none;align-self:flex-start;display:flex;width:144px;height:26px;margin:0 0 0 12px;border-radius:9px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.ol-prefs button{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.05em;white-space:nowrap;overflow:hidden;padding:0;cursor:pointer}.ol-prefs button svg{flex:none}.ol-prefs button.on{color:var(--text)}.ol-prefs button+button{box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent)}.ol-prefs button:hover{background:var(--hover-plate);color:var(--hover-ink)}.shapes-io{flex:none;align-self:stretch;display:flex;height:40px;margin:0;border-radius:0 0 11px 11px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.shapes-io button{flex:1 1 0;min-width:0;display:grid;place-items:center;border:none;background:transparent;color:var(--text);font-size:16px;line-height:0;cursor:pointer}.shapes-io button+button{box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent)}.shapes-io button:hover{background:var(--hover-plate);color:var(--hover-ink)}.artboard-sub{width:216px;font-family:Work Sans,-apple-system,sans-serif;font-size:20px;font-weight:400;letter-spacing:0;cursor:pointer}.artboard-sub[data-sub=grids].open{border-radius:11px 11px 0 0;margin-bottom:0}.artboard-sub[data-sub=background]:has(+.sub-body.open .sub-note),.artboard-sub[data-sub=guides]:has(+.sub-body.open .sub-note){border-radius:11px 11px 0 0;margin-bottom:0}.sub-body{display:none;flex-direction:column;gap:0;margin-left:12px}.sub-body.open{display:flex;margin-bottom:6px}.sub-body .add{width:216px;margin-bottom:6px;box-sizing:border-box}.sub-body[data-body=grids] .add{border-top-left-radius:0;border-top-right-radius:0}.sub-note{position:relative;width:216px;box-sizing:border-box;padding:10px 12px;border-radius:0 0 11px 11px;background:#fff;box-shadow:var(--shadow-sm),var(--edge);font-size:12px;color:var(--muted)}html[data-theme=dark] .sub-note{background:var(--panel);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}#lightpanel{position:relative;width:216px;box-sizing:border-box;padding:9px 12px 10px;border-radius:0 0 11px 11px;background:#fff;box-shadow:var(--shadow-sm),var(--edge);font-size:12px;display:flex;flex-direction:column;gap:7px}html[data-theme=dark] #lightpanel{background:var(--panel);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}#lightpanel .lp-chk{display:flex;align-items:center;gap:7px;font-weight:500;cursor:pointer;user-select:none;-webkit-user-select:none}#lightpanel .lp-body{display:none;flex-direction:column;gap:6px}#lightpanel .lp-body.on{display:flex}#lightpanel .lp-sun{font-weight:400;opacity:.9}#lightpanel .lp-rng{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;-webkit-user-select:none}#lightpanel .lp-rng>span{opacity:.65;min-width:58px}#lightpanel .lp-val{min-width:30px;text-align:right;font-weight:500;opacity:.85;font-size:10.5px}#lightpanel .lp-note{width:auto;padding:2px 0 0;background:none;box-shadow:none;border-radius:0;line-height:1.35}html[data-theme=dark] #lightpanel .lp-note{background:none;backdrop-filter:none;-webkit-backdrop-filter:none}#lightpanel input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}#lightpanel input[type=range]{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.artboard-sub[data-sub=light]:has(+.sub-body.open){border-radius:11px 11px 0 0;margin-bottom:0}.ol-ghost{z-index:var(--z-drag);pointer-events:none}.cat-list{display:flex;flex-direction:column;align-items:flex-start;gap:0}#guide-list{width:216px}.cat-row{cursor:grab}.cat-row .op-nm{font-size:20px}#guide-list .op-nm{font-size:14px;font-weight:300}.cat-row.cat-dragging{position:relative;z-index:1000;cursor:grabbing}.cat-row.cat-dragging .op-body{box-shadow:var(--shadow-md),inset 0 0 0 2px var(--text)}.cat-row.off .op-thumb,.cat-row.off .op-glyph,.cat-row.off .op-nm{opacity:.45}.op-magnet{flex:none;display:inline-flex;align-items:center;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:3px;line-height:0}.op-magnet.on{color:var(--accent)}.docs-head{position:relative;display:flex;align-items:center;gap:6px;height:44px;padding:0 10px 0 34px;border-radius:11px;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.docs-title{flex:1;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text);cursor:pointer}.pal-drag{flex:none;width:50px;height:50px;margin:-15px;padding:17px;cursor:grab;touch-action:none;background-image:radial-gradient(circle,color-mix(in srgb,var(--text) 45%,transparent) 1px,transparent 1.5px);background-size:5px 5px;background-position:center;background-origin:content-box;background-clip:content-box}.pal-drag:active{cursor:grabbing}.docs-types{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;margin-bottom:6px;border-radius:11px;background:var(--panel);box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.doc-type{height:28px;padding:0 11px;border:none;border-radius:14px;background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text);font:inherit;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer}.doc-type:hover{background:var(--hover-plate);color:var(--text)}.doc-type.wip{opacity:.55}.docs-list{display:flex;flex-direction:column;align-items:flex-start;gap:0;overflow-x:hidden;overflow-y:auto;touch-action:none;overscroll-behavior:contain;max-height:calc(100vh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)) - 320px);padding-bottom:16px;scrollbar-width:thin}.docs-empty{padding:6px 4px 10px;font-size:12px;color:var(--muted)}#docs .op-cap{align-self:flex-start}#docs .op-nm{max-width:120px}#docs .op-body{justify-content:flex-start;overflow:hidden;padding:2px}#docs .op-thumb{max-width:none;max-height:none;height:100%;width:auto;border-radius:9px;margin-left:-1px}html[data-theme=dark] .op-cap:not(.sel) .op-nm{box-shadow:var(--shadow-sm),var(--edge)}html[data-theme=dark] .op-nm.placeholder{background:var(--panel);box-shadow:inset 0 0 0 2px var(--line)}#hud{pointer-events:none;position:absolute;z-index:var(--z-float);bottom:max(12px,env(safe-area-inset-bottom));left:0;right:0;margin:0 auto;width:max-content;max-width:calc(100vw - 24px);font-variant-numeric:tabular-nums;font-size:14px;color:var(--muted)}#hudmain{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 6px;border-radius:var(--r-pill);padding:7px 13px;box-shadow:var(--shadow-sm),var(--edge)}#hudside{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}#coords,#dims{font-variant-numeric:tabular-nums;font-size:14px;color:var(--muted);border-radius:var(--r-pill);padding:7px 13px;display:flex;align-items:center;gap:4px 6px;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-sm),var(--edge)}#coords{min-height:42px}#coords:empty{visibility:hidden}#dims:empty{display:none}#hud .sep{opacity:.35}#hud .dev{pointer-events:auto;cursor:pointer;color:var(--text);font-weight:600;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:8px;padding:4px 9px}#hud .dev:hover{background:var(--hover-plate);color:var(--text)}#hud .num{display:inline-block;min-width:1.5em;text-align:center;color:var(--text);font-weight:600;padding:4px 6px;border-radius:7px}#hud .num.editable,#hud .unit.live,#hud .zoom{pointer-events:auto;cursor:pointer}#hud .num.editable{text-decoration:underline dotted;text-underline-offset:3px}#hud .num.editable:hover,#hud .unit.live:hover,#hud .zoom:hover{background:var(--hover-plate);color:var(--text)}#hud .unit{padding:4px 8px;border-radius:7px;font-weight:600}#hud .unit.live{border:1px solid var(--line)}#hud .zoom{padding:4px 7px;border-radius:7px;text-decoration:underline dotted;text-underline-offset:3px}#hud .scale{pointer-events:auto;cursor:pointer;font-weight:600;padding:4px 8px;border-radius:7px;border:1px solid var(--line)}#hud .scale:hover{background:var(--hover-plate);color:var(--text)}#hud .usuf{font-size:.82em;opacity:.6;margin-left:1px;margin-right:2px}#scalemenu{max-width:264px}.popmenu .scale-in{margin-top:2px;width:8em;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--hover);color:var(--text)}#hud .lock{pointer-events:auto;cursor:pointer;display:inline-flex;align-items:center;padding:4px 6px;border-radius:7px;color:var(--muted);transition:background .12s ease,color .12s ease}#hud .lock svg{display:block}#hud .lock:hover{background:var(--hover-plate);color:var(--hover-ink)}#hud .lock.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.hud-input{width:4.5em;font:inherit;font-weight:600;text-align:center;color:var(--text);background:var(--bg);border:1px solid var(--accent);border-radius:7px;padding:3px 4px;pointer-events:auto}.popmenu{pointer-events:auto;position:fixed;transform:translate(-50%,-100%);display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-md),var(--edge);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);z-index:var(--z-popover)}#calibrate{pointer-events:auto;position:fixed;transform:translate(-50%,-100%);display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),var(--edge);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);z-index:var(--z-popover)}.cal-slider{width:200px;accent-color:var(--accent);touch-action:none}.cal-pct{display:inline-flex;align-items:baseline;gap:1px;color:var(--text);font-weight:600}.cal-pct-in{width:3.2em;font:inherit;font-weight:600;text-align:right;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:3px 4px}.cal-pct-in:focus{border-color:var(--accent);outline:none}.cal-pct-suf{color:var(--muted)}.cal-actions{display:inline-flex;align-items:center;gap:6px}.cal-btn{font:inherit;font-weight:600;font-size:12px;color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent);border:none;border-radius:9px;padding:5px 11px;cursor:pointer}.cal-btn:hover{background:var(--hover-plate);color:var(--text)}.cal-do.active{background:var(--accent);color:#fff}.cal-btn:disabled{opacity:.4;cursor:default}.cal-name{width:12em;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--accent);border-radius:7px;padding:4px 7px}.cal-name:focus{outline:none}.popmenu button{min-width:56px;font-size:14px;padding:8px 12px;background:transparent;border:none;border-radius:7px;color:var(--text);cursor:pointer;white-space:nowrap;text-align:left}.popmenu button:hover{background:var(--hover-plate);color:var(--text)}.popmenu button.on{color:var(--accent);font-weight:700}.popmenu .menusep{height:1px;margin:3px 6px;background:var(--line)}.checker{background-image:linear-gradient(45deg,#bbb 25%,transparent 0),linear-gradient(-45deg,#bbb 25%,transparent 0),linear-gradient(45deg,transparent 75%,#bbb 0),linear-gradient(-45deg,transparent 75%,#bbb 0);background-color:#fff;background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0}#vectorpanel{pointer-events:auto;position:fixed;z-index:var(--z-popover);width:268px;max-height:90vh;overflow-y:auto;padding:12px;border-radius:var(--r-lg);box-shadow:var(--shadow-md),var(--edge);display:flex;flex-direction:column;gap:9px}#vectorpanel .vp-head{display:flex;align-items:center;gap:6px;margin:-4px -6px 0;cursor:grab;touch-action:none}#vectorpanel .vp-head:active{cursor:grabbing}#vectorpanel .vp-title{flex:1;font-size:12px;font-weight:700;color:var(--text)}#vectorpanel .vp-status{min-height:14px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}#vectorpanel .cp-track{flex:1;background:var(--hover);box-shadow:0 0 0 1px var(--line) inset}#vectorpanel .vp-actions{display:flex;gap:8px;margin-top:2px}#vectorpanel .vp-actions button{flex:1;padding:9px 0;font:inherit;font-size:12.5px;font-weight:600;color:var(--text);background:var(--hover);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}#vectorpanel .vp-place{color:#fff;background:var(--accent);border-color:transparent}#vectorpanel .vp-actions button:disabled{opacity:.5;cursor:default}#library{pointer-events:auto;position:fixed;z-index:var(--z-popover);width:248px;max-height:60vh;padding:10px;border-radius:var(--r-lg);box-shadow:var(--shadow-md),var(--edge);display:flex;flex-direction:column;gap:8px}.lib-head{display:flex;align-items:center}.lib-title{flex:1;font-size:12px;font-weight:700;color:var(--text)}.lib-docs{display:flex;flex-wrap:wrap;gap:6px}.doc-type.sel{background:var(--accent);color:#fff}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;overflow-y:auto}.lib-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border:none;border-radius:var(--r-md);background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);font:inherit;font-size:10px;cursor:pointer}.lib-card:hover{background:var(--hover)}.lib-thumb{height:40px;max-width:72px;object-fit:contain}.lib-glyph{height:40px;line-height:40px;font-size:22px;color:var(--muted)}.lib-nm{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-empty{font-size:11px;color:var(--muted);padding:4px 2px 6px}#colorpicker{pointer-events:auto;position:fixed;z-index:var(--z-popover);width:288px;padding:14px;border-radius:var(--r-lg);box-shadow:var(--shadow-md),var(--edge);display:flex;flex-direction:column;gap:12px;touch-action:none}.cp-image{display:none;flex-direction:column;align-items:center;gap:8px}#colorpicker.cp-image .cp-image{display:flex}#colorpicker.cp-image .cp-tabs,#colorpicker.cp-image .cp-grad,#colorpicker.cp-image .cp-wheel,#colorpicker.cp-image .cp-alpha,#colorpicker.cp-image .cp-dabs,#colorpicker.cp-image .cp-hex,#colorpicker.cp-image .cp-stroke{display:none}.cp-image-swatch{width:100%;height:132px;border-radius:var(--r-md);background-color:var(--panel-2, rgba(128, 128, 128, .18));background-size:contain;background-repeat:no-repeat;background-position:center;box-shadow:var(--edge),inset 0 0 0 1px #80808040;image-rendering:auto}.cp-image-label{font-size:12px;opacity:.66;letter-spacing:.02em}.cp-head{display:flex;align-items:center;gap:6px;margin:-6px -6px -4px;cursor:grab;touch-action:none}.cp-head:active{cursor:grabbing}.cp-grip{flex:none;width:44px;height:44px;margin:-5px 0 -5px -9px;padding:14px;background-image:radial-gradient(circle,color-mix(in srgb,var(--text) 45%,transparent) 1px,transparent 1.5px);background-size:5px 5px;background-position:center;background-origin:content-box;background-clip:content-box}.cp-chans{flex:1;display:flex;justify-content:center;gap:8px}.cp-chan{width:34px;height:34px;display:grid;place-items:center;border:none;background:none;color:var(--muted);border-radius:var(--r-sm);cursor:pointer}.cp-chan:hover{background:var(--hover-plate);color:var(--text)}.cp-chan.on{color:var(--accent);background:var(--hover);cursor:default}.cp-chan svg{width:19px;height:19px}.cp-close{width:34px;height:34px;flex:none;border:none;background:transparent;color:var(--muted);font-size:13px;line-height:1;border-radius:var(--r-sm);cursor:pointer}.cp-close:hover{background:var(--hover-plate);color:var(--text)}.cp-tabs{display:flex;gap:3px;padding:3px;background:var(--hover);border-radius:11px}.cp-solid .cp-tabs{display:none}.cp-tab{flex:1;padding:8px 0;font:inherit;font-size:12.5px;font-weight:600;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-tab.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f}.cp-tabs{font-size:11.5px;gap:2px}.cp-tab{padding-left:2px;padding-right:2px}.cp-blend{display:none;grid-template-columns:1fr 1fr;gap:2px}#colorpicker.cp-btab .cp-blend{display:grid}#colorpicker.cp-btab .cp-wheel,#colorpicker.cp-btab .cp-alpha,#colorpicker.cp-btab .cp-dabs,#colorpicker.cp-btab .cp-hex,#colorpicker.cp-btab .cp-stroke,#colorpicker.cp-btab .cp-matrow,#colorpicker.cp-btab .cp-crow,#colorpicker.cp-btab .cp-none,#colorpicker.cp-ftab .cp-wheel,#colorpicker.cp-ftab .cp-alpha,#colorpicker.cp-ftab .cp-dabs,#colorpicker.cp-ftab .cp-hex,#colorpicker.cp-ftab .cp-stroke,#colorpicker.cp-ftab .cp-matrow,#colorpicker.cp-ftab .cp-crow,#colorpicker.cp-ftab .cp-none{display:none}.cp-fx{display:none;flex-direction:column;gap:10px}#colorpicker.cp-ftab .cp-fx{display:flex}.cp-fx-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}.cp-fx-tracks{display:flex;flex-direction:column;gap:10px}.cp-fx-tracks:empty{display:none}.cp-fx-bar{display:flex;justify-content:flex-end;margin:-6px 0}.cp-fxsheetbtn{padding:3px 9px;font:inherit;font-size:10.5px;font-weight:600;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-fxsheetbtn:hover{background:var(--hover)}.cp-fxsheetbtn.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f,0 0 0 1px var(--accent) inset}.cp-fxsheet{display:flex;flex-direction:column;gap:6px}.cp-fxsheet-grid{display:grid;gap:4px}.cp-fxsh{position:relative;height:44px;padding:0;border:none;border-radius:var(--r-xs);overflow:hidden;cursor:pointer;background:var(--bg);box-shadow:0 0 0 1px var(--line) inset}.cp-fxsh:hover{box-shadow:0 0 0 1px var(--accent) inset}.cp-fxsh.on{box-shadow:0 0 0 2px var(--accent) inset;cursor:default}.cp-fxsh svg{display:block;width:100%;height:100%}.cp-fxt{display:flex;align-items:center;gap:7px;padding:5px 6px;font:inherit;font-size:11.5px;font-weight:600;text-align:left;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-fxt:hover{background:var(--hover)}.cp-fxt.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f,0 0 0 1px var(--accent) inset}.cp-fxt-sw{position:relative;flex:none;width:30px;height:30px;border-radius:var(--r-xs);overflow:hidden;background:var(--bg);box-shadow:0 0 0 1px var(--line) inset}.cp-fxt-sw svg{display:block;width:100%;height:100%}.cp-fxt-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cp-fxc{display:flex;flex-direction:column;gap:8px}.cp-fxc-chips{display:flex;flex:1;gap:6px}.cp-fxc-chip{position:relative;flex:1;height:26px;padding:0;border:none;border-radius:var(--r-xs);cursor:pointer;background:none}.cp-fxc-fill{position:absolute;inset:0;border-radius:var(--r-xs);box-shadow:0 0 0 1px var(--line) inset,inset 0 1.5px 2px #ffffff47,inset 0 -1.5px 2px #00000024}.cp-fxc-chip.on{box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--accent)}.cp-fxdabs{display:flex;flex-wrap:wrap;gap:6px 0;justify-content:space-between}.cp-fxp{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px}.cp-fxpb{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;font:inherit;font-size:10.5px;font-weight:600;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-fxpb:hover{background:var(--hover)}.cp-fxpb.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f,0 0 0 1px var(--accent) inset}.cp-fxpb-sw{position:relative;width:100%;height:26px;border-radius:var(--r-xs);overflow:hidden;background:var(--bg);box-shadow:0 0 0 1px var(--line) inset}.cp-fxpb-sw svg{display:block;width:100%;height:100%}.cp-fxk{flex:1;background:var(--hover);box-shadow:0 0 0 1px var(--line) inset}.cp-fxv{width:48px;font-size:12px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text)}.cp-bl{display:flex;align-items:center;gap:7px;padding:5px 6px;font:inherit;font-size:11.5px;font-weight:600;text-align:left;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-bl:hover{background:var(--hover)}.cp-bl.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f,0 0 0 1px var(--accent) inset}.cp-bl-sw{position:relative;flex:none;width:24px;height:24px;border-radius:var(--r-xs);overflow:hidden;isolation:isolate;background:linear-gradient(135deg,#dfa33e,#3b5ea8);box-shadow:0 0 0 1px var(--line) inset}.cp-bl-top{position:absolute;inset:4px;border-radius:50%;background:var(--cp-bl-ink, #c73e2c);mix-blend-mode:var(--cp-bl-mode, normal)}.cp-bl-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cp-grad{display:flex;flex-direction:column;gap:10px}.cp-bar{position:relative;height:28px;border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--line) inset;cursor:copy}.cp-stop{position:absolute;top:50%;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff,0 0 0 3px #0006,0 1px 4px #0000004d;overflow:hidden;cursor:grab}.cp-stop.sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent),0 1px 4px #0000004d}.cp-stop-fill{position:absolute;inset:0}.cp-grow{display:flex;align-items:center;gap:10px}.cp-dial{position:relative;width:44px;height:44px;flex:none;border-radius:50%;background:var(--hover);box-shadow:0 0 0 1px var(--line) inset;cursor:grab;touch-action:none}.cp-dial:active{cursor:grabbing}.cp-dial:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);background:var(--muted)}.cp-tick{position:absolute;left:calc(50% - 1.5px);bottom:50%;width:3px;height:16px;border-radius:2px;background:var(--accent);transform-origin:50% 100%}.cp-angle-val{flex:1;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.cp-del{width:34px;height:34px;flex:none;font-size:13px;line-height:1;color:var(--muted);background:var(--hover);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.cp-del:disabled{opacity:.35;cursor:default}.cp-wheel{position:relative;width:100%;aspect-ratio:1;touch-action:none}.cp-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);-webkit-mask:radial-gradient(closest-side,transparent calc(100% - var(--cp-ring)),#000 calc(100% - var(--cp-ring) + 1px));mask:radial-gradient(closest-side,transparent calc(100% - var(--cp-ring)),#000 calc(100% - var(--cp-ring) + 1px));cursor:crosshair}.cp-sv{position:absolute;border-radius:10px;box-shadow:0 0 0 1px var(--line) inset;cursor:crosshair}.cp-track{position:relative;height:22px;border-radius:var(--r-pill);cursor:pointer}.cp-alpha-grad{position:absolute;inset:0;border-radius:var(--r-pill)}.cp-ring-thumb,.cp-sv-thumb,.cp-thumb{position:absolute;width:24px;height:24px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #00000059,0 1px 4px #00000040;transform:translate(-50%,-50%);pointer-events:none}.cp-thumb{top:50%;width:22px;height:22px}.cp-dabs{display:flex;justify-content:space-between}.cp-dab{position:relative;width:28px;height:28px;flex:none;padding:0;border:none;border-radius:50%;cursor:pointer}.cp-dab-fill{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 1px var(--line) inset,inset 0 1.5px 2px #ffffff47,inset 0 -1.5px 2px #00000024}.cp-dab.on{box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--accent)}.cp-well{width:28px;height:28px;flex:none;border-radius:50%;border:1px dashed var(--line)}.cp-hex{width:100%;box-sizing:border-box;padding:8px;font:inherit;font-size:13px;text-align:center;letter-spacing:.04em;color:var(--text);background:var(--hover);border:1px solid var(--line);border-radius:var(--r-sm);outline:none}.cp-stroke{display:none;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.cp-has-stroke .cp-stroke{display:flex}.cp-no-align .cp-arow{display:none}.cp-weight-only .cp-srow~.cp-srow{display:none}.cp-marks-off .cp-mrow{display:none}.cp-no-space .cp-sval{visibility:hidden}.cp-nseg button{font-size:13px;line-height:1}.cp-srow{display:flex;align-items:center;gap:8px}.cp-matrow{padding-top:12px;border-top:1px solid var(--line)}.cp-has-stroke .cp-matrow{padding-top:0;border-top:none}#colorpicker.cp-image .cp-matrow,#colorpicker.cp-image .cp-crow{display:none!important}.cp-slab{font-size:11px;font-weight:600;color:var(--muted);min-width:44px}.cp-w,.cp-n{flex:1;background:var(--hover);box-shadow:0 0 0 1px var(--line) inset}.cp-wval,.cp-nval,.cp-sval{width:48px;padding:6px 4px;font:inherit;font-size:12.5px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text);background:var(--hover);border:1px solid var(--line);border-radius:var(--r-xs);outline:none}.cp-seg{flex:1;display:flex;gap:2px;padding:3px;background:var(--hover);border-radius:10px}.cp-seg button{flex:1;padding:8px 0;font:inherit;font-size:11.5px;font-weight:600;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer;white-space:nowrap}.cp-seg button.on{color:var(--text);background:var(--panel);box-shadow:0 1px 3px #0000001f}.cp-none{flex:0 0 auto;padding:8px 7px;font:inherit;font-size:12.5px;font-weight:600;color:var(--muted);background:none;border:none;border-radius:8px;cursor:pointer}.cp-none:active{color:var(--text);background:var(--panel)}#dimbadge{position:fixed;z-index:var(--z-object);pointer-events:none}#dimbadge .db-meas{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:3px;padding:3px 7px;border-radius:2px;border:none;box-shadow:none;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text);background:var(--panel);white-space:nowrap}#dimbadge .db-meas .du{color:var(--muted);font-size:10.5px}#dimbadge .db-meas .num.editable{cursor:pointer;font-weight:600;text-decoration:underline dotted;text-underline-offset:2px}#dimbadge .db-svg{position:absolute;overflow:visible}#dimbadge .db-arrow line{stroke:var(--accent);stroke-width:2}#dimbadge .db-cap rect,#dimbadge .db-cap polygon{fill:var(--accent)}#dimbadge .db-cap.partial{opacity:.5}#dimbadge .db-count{position:absolute;left:0;top:0;color:#fff;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}#theme{pointer-events:auto;position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:38px;height:38px;border-radius:50%;font-size:16px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm),var(--edge);transition:filter .12s ease,transform .12s ease}#theme:hover{background:var(--hover-plate);color:var(--hover-ink)}#theme:active{transform:scale(.94)}#tabhint{pointer-events:none;position:absolute;bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));font-size:10.5px;color:var(--muted);opacity:.6}#modkeys{pointer-events:auto;position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:calc(max(12px,env(safe-area-inset-left)) + 48px);display:flex;gap:5px;touch-action:none}.modkey{width:38px;height:38px;border-radius:var(--r-md);font-size:15px;color:var(--muted);cursor:pointer;box-shadow:var(--shadow-sm),var(--edge);display:grid;place-items:center;transition:background .12s ease,color .12s ease,border-color .12s ease;touch-action:none}.modkey.on{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-sm)}#capslatch{pointer-events:auto;position:absolute;left:max(12px,env(safe-area-inset-left));bottom:calc(25% - 19px)}html.has-kbd #modkeys,html.has-kbd:not(.touch) #capslatch{display:none}.op-cap.sw-src .op-nm{visibility:hidden}.op-cap.ol-ghost{z-index:var(--z-drag)}.sub-body[data-cat],#guide-list{position:relative}.reordering{touch-action:none}.sub-body[data-cat]>.ol-drop,#guide-list>.ol-drop{right:8px}.artboard-sub:not(.drop-hot):hover,.docs-head-recent:hover{background:var(--hover-plate)}.artboard-sub:not(.drop-hot):hover .op-head-title,.docs-head-recent:hover .docs-title{color:var(--text)}.artboard-sub:not(.drop-hot):hover .op-head-tw,.docs-head-recent:hover .op-head-tw{color:var(--hover-ink)}.op-head.pal-head:not(.drop-hot):not(:has(.pal-drag:hover)):not(:has(.op-head-tw:hover)):hover .op-head-tw{color:var(--accent)}.op-nm:not(.ol-edit):hover,.op-cap.unnamed.sel .op-nm.placeholder:hover{background:var(--hover-plate);color:var(--text)}.add button,.ol-prefs button,.shapes-io button,.doc-act,.op-body .ol-eye,.op-body .ol-lock,#hud .num.editable,#hud .unit.live,#hud .zoom,#hud .scale,#hud .lock,.popmenu button,.cp-chan,.cp-close,#threed .td-btn{background:var(--rest)}.chip .eye,.chip .del{background:var(--rest);border-radius:6px}#theme{background:color-mix(in srgb,var(--panel),var(--text) 8%)}html[data-theme=dark] #hud .num.editable{background:var(--hover)}html[data-theme=dark] .op-body .ol-eye,html[data-theme=dark] .op-body .ol-lock{background:color-mix(in srgb,var(--panel) 88%,transparent)}html[data-theme=dark] #theme{background:var(--panel)}#nshapes{--pal-w: 264px;--pal-w-narrow: 120px;width:var(--pal-w);display:flex;flex-direction:column;gap:0}#nshapes .ol-prefs{width:var(--ns-w, 144px);position:relative;z-index:2}#nshapes .ol-prefs button{flex:1}.ns-list{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;width:calc(var(--ns-w, 100%) + 12px);margin-left:6px;margin-top:-13px;padding:13px 6px 16px;scrollbar-width:none;outline:none;position:relative}.ns-list::-webkit-scrollbar{display:none}.ns-row{position:relative;flex:none;width:var(--ns-w, 100%);height:60px;cursor:pointer;color:var(--text)}.ns-row.group{height:104px}.ns-body{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;height:100%;background:var(--panel);border-radius:11px;box-shadow:var(--shadow-sm),var(--edge);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.ns-row.open .ns-body{border-bottom-left-radius:0;border-bottom-right-radius:0}.ns-row.nested .ns-body{border-radius:0;box-shadow:var(--shadow-sm)}.ns-row.merged-end .ns-body{border-bottom-left-radius:11px;border-bottom-right-radius:11px}.ns-row.open.grp-sel .ns-body{border:1px solid var(--text);border-bottom:none}.ns-row.nested.grp-sel .ns-body{border-left:1px solid var(--text);border-right:1px solid var(--text)}.ns-row.merged-end.grp-sel .ns-body{border-bottom:1px solid var(--text)}.ns-row.sel .ns-body{box-shadow:inset 0 0 0 2px var(--text),var(--shadow-sm)}.ns-thumb,.ns-glyph{flex:none;margin:auto;max-height:30px;max-width:64px;width:auto;height:auto;object-fit:contain}.ns-row.group .ns-thumb,.ns-row.group .ns-glyph{max-height:74px;max-width:96px}.ns-glyph{text-align:center;color:var(--muted);font-size:24px;line-height:1}.ns-glyph svg{display:block;margin:0 auto}.ns-label{flex:none;height:16px;line-height:15px;padding:0 34px;font-size:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);visibility:hidden}.ns-label.named{color:var(--text);visibility:visible}.ns-row.sel .ns-label{visibility:visible}.ns-tw{position:absolute;left:0;top:calc((100% - 16px)/2);transform:translateY(-50%);width:36px;height:36px;border:none;background:transparent;color:color-mix(in srgb,var(--text) 40%,transparent);cursor:pointer;padding:0;line-height:0;display:inline-flex;align-items:center;justify-content:flex-start;z-index:2}.ns-tw svg{width:32px;height:32px}.ns-tw:hover,.ns-tw:active{background:var(--hover-plate);color:var(--hover-ink);border-radius:50%}.ns-row.sel .ns-tw{color:var(--text)}.ns-eye,.ns-lock,.ns-imgload{position:absolute;top:4px;width:26px;height:26px;padding:3px;border:none;background:transparent;color:var(--text);cursor:pointer;line-height:0;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;opacity:0;z-index:2;transition:opacity .12s ease}.ns-eye{left:4px}.ns-lock{right:4px}.ns-imgload{right:32px;opacity:.75}.ns-row:hover .ns-eye,.ns-row:hover .ns-lock,.ns-row.sel .ns-eye,.ns-row.sel .ns-lock,.ns-row.off .ns-eye,.ns-row.locked .ns-lock{opacity:1}.ns-eye:hover,.ns-lock:hover,.ns-imgload:hover{background:var(--hover-plate);color:var(--hover-ink)}.ns-lock.inherited{opacity:.55;cursor:default}.ns-imgload .ns-count{font-size:10px;margin-left:2px}.ns-imgload.busy{opacity:.4;pointer-events:none}.ns-region{position:absolute;left:6px;bottom:1px;max-width:30px;font-size:10px;line-height:14px;font-variant-numeric:tabular-nums;color:var(--muted);opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.ns-row.sel .ns-region{opacity:1}.ns-row.off .ns-thumb,.ns-row.off .ns-glyph,.ns-row.off .ns-label,.ns-row.off .ns-tw{opacity:.4}.ns-edit{width:calc(100% - 12px);height:15px;border:none;background:transparent;color:var(--text);font:inherit;font-size:12px;text-align:center;outline:none;padding:0}.ns-swipe{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:11px;background:var(--tag-bg);pointer-events:none;opacity:0}.ns-row.swiping .ns-swipe{opacity:1}.ns-row.swiping{z-index:6}.ns-row.swiping .ns-body{box-shadow:var(--shadow-md)}.ns-row.sw-del .sw-ic-del{display:block;margin-left:auto}.ns-row.sw-grp .sw-ic-grp,.ns-row.sw-ungrp .sw-ic-ungrp{display:block;margin-right:auto}.ns-row.sw-armed .sw-ic{transform:scale(1.12)}.ns-row.sw-armed.sw-del .sw-ic-del{color:var(--text)}.ns-row.sw-armed.sw-del .sw-ic-del svg{fill:var(--danger)}.ns-row.sw-armed.sw-del .sw-ic-del .dl-x{stroke:var(--bg)}.ns-row.sw-armed.sw-grp .sw-ic-grp .grp-off{display:none}.ns-row.sw-armed.sw-grp .sw-ic-grp .grp-on{display:block}.ns-row.sw-armed.sw-grp .sw-ic-grp{color:var(--text)}.ns-row.sw-armed.sw-grp .sw-ic-grp svg{fill:none}.ns-row.sw-armed.sw-ungrp .sw-ic-ungrp{color:var(--text)}.ns-row.sw-armed.sw-ungrp .sw-ic-ungrp svg{fill:var(--text)}.ns-row.armed .ns-body{box-shadow:var(--shadow-md);transform:scale(1.02)}.ns-row.sw-src .ns-body,.ns-row.lifted .ns-body{visibility:hidden}.ns-drop{position:absolute;right:14px;height:2px;background:var(--accent);border-radius:1px;pointer-events:none;display:none;z-index:6}#regions .pal-card,#regions .rg-list{pointer-events:auto}#regions{--pal-w: 210px;--pal-w-narrow: 108px;width:var(--pal-w)}#regions .rg-list{display:flex;flex-direction:column;gap:3px;padding:6px 4px;max-height:calc(100vh - 340px - max(var(--pal-drag-y, 0px),0px));overflow-y:auto;touch-action:pan-y;background:var(--panel);border-radius:0 0 12px 12px}#regions.pal-closed .rg-list{display:none}.rg-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;user-select:none;-webkit-user-select:none}.rg-row:hover{background:var(--hover-plate)}.rg-row.armed{background:var(--accent-soft, rgba(64, 156, 255, .18));outline:1.5px solid var(--accent, #409cff)}.rg-chip{flex:none;width:18px;height:18px;border-radius:5px;border:1px solid rgba(0,0,0,.35)}.rg-row.armed .rg-chip{box-shadow:0 0 0 2px var(--accent, #409cff)}.rg-name{flex:1;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rg-name.quiet{color:var(--muted);font-style:italic}.rg-count{flex:none;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.shapes-io,.add,.docs-actions{transition:height var(--dress-dur) ease-out}.artboard-sub{transition:width var(--dress-dur) ease-out,font-size var(--dress-dur) ease-out,padding var(--dress-dur) ease-out}.artboard-sub .op-head-tw,.sub-body .add,.sub-note,#grid-units,#layers,#canvas-size,#guide-list,#lightpanel{transition:width var(--dress-dur) ease-out}.op-cap{transition:--cap-w var(--dress-dur) ease-out}.op-thumb{transition:max-width var(--dress-dur) ease-out}.op-nm{transition:margin-left var(--dress-dur) ease-out,padding var(--dress-dur) ease-out}.ns-label{transition:padding var(--dress-dur) ease-out}.chip{transition:padding var(--dress-dur) ease-out,gap var(--dress-dur) ease-out}.chip .nm,.chip .dunit{transition:font-size var(--dress-dur) ease-out,margin var(--dress-dur) ease-out}.chip .dist{transition:width var(--dress-dur) ease-out,font-size var(--dress-dur) ease-out,padding var(--dress-dur) ease-out}.chip .eye{transition:margin-right var(--dress-dur) ease-out}.pal-narrow .pal-head .op-head-title{max-width:0;padding-left:0;padding-right:0;opacity:0;transition:max-width var(--dress-dur) ease-out,padding var(--dress-dur) ease-out,opacity .08s ease-out}#docs.pal-narrow,#nshapes.pal-narrow,#artboard.pal-narrow,#regions.pal-narrow{width:var(--pal-w-narrow)}.pal-narrow .shapes-io,.pal-narrow .add,.pal-narrow .docs-actions{flex-wrap:wrap}.pal-narrow .shapes-io{height:80px}.pal-narrow .add{height:68px}.pal-narrow .docs-actions{height:80px}.pal-narrow .shapes-io button,.pal-narrow .add button,.pal-narrow .docs-actions button{flex:1 1 40%}.pal-narrow .shapes-io button{height:40px}.pal-narrow .add button{height:34px}.pal-narrow .shapes-io button+button,.pal-narrow .add button+button,.pal-narrow .docs-actions button+button{box-shadow:none}.pal-narrow .shapes-io button:nth-child(2n),.pal-narrow .add button:nth-child(2n),.pal-narrow .docs-actions button:nth-child(2n){box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent)}.pal-narrow .shapes-io button:nth-child(n+3),.pal-narrow .add button:nth-child(n+3),.pal-narrow .docs-actions button:nth-child(n+3){box-shadow:inset 0 1px color-mix(in srgb,var(--text) 12%,transparent)}.pal-narrow .shapes-io button:nth-child(2n):nth-child(n+3),.pal-narrow .add button:nth-child(2n):nth-child(n+3),.pal-narrow .docs-actions button:nth-child(2n):nth-child(n+3){box-shadow:inset 1px 0 color-mix(in srgb,var(--text) 12%,transparent),inset 0 1px color-mix(in srgb,var(--text) 12%,transparent)}.pal-narrow .op-cap,.op-cap.pal-narrow{--cap-w: 72px}.pal-narrow .op-thumb,.pal-narrow.op-cap .op-thumb{max-width:56px}.pal-narrow .op-thumb.group,.pal-narrow.op-cap .op-thumb.group{max-width:60px}.pal-narrow .op-nm{margin-left:-11px;padding:0 10px 0 17px}.pal-narrow .ns-label{padding:0 28px}.pal-narrow .artboard-sub{width:108px;font-size:14px;padding:0 10px 0 26px}.pal-narrow .artboard-sub .op-head-tw{width:26px}.pal-narrow .artboard-sub .op-head-tw svg{width:18px;height:18px}.pal-narrow .sub-body .add,.pal-narrow .sub-note,.pal-narrow #grid-units,.pal-narrow #layers,.pal-narrow #canvas-size,.pal-narrow #guide-list,.pal-narrow #lightpanel{width:108px}.pal-narrow #lightpanel .lp-sun{font-weight:400;opacity:.9}.pal-narrow #lightpanel .lp-rng{flex-wrap:wrap;gap:2px 6px}.pal-narrow #lightpanel .lp-rng>span{min-width:0;flex:1 0 100%}.pal-narrow .chip{position:relative;padding:7px 5px;gap:4px}.pal-narrow .chip .nm{font-size:14px}.pal-narrow .chip .eye{margin-right:2px}.pal-narrow .chip .eye svg{width:14px;height:14px}.pal-narrow .chip .dist{width:2.5em;font-size:13px;padding:1px 2px}.pal-narrow .chip .dunit{font-size:11px;margin-left:-2px}.pal-narrow .chip .del{position:absolute;top:3px;right:3px}#docs.pal-narrow .docs-head-recent{width:auto}.pal-roll{position:absolute;display:none;width:24px;height:24px;padding:0;border:none;background:none;color:var(--text);line-height:0;pointer-events:auto;touch-action:none;cursor:pointer;z-index:var(--z-float-active)}.pal-roll.on{display:block}.pal-roll rect{fill:var(--panel)}.pal-roll svg{display:block;filter:drop-shadow(0 1px 2px rgb(0 0 0 / 18%))}.pal-roll:hover{color:var(--accent)}@media (max-width: 520px){#rail{gap:6px}#hudside{position:absolute;top:auto;bottom:100%;left:calc((100% - 100vw)/2 + 12px);margin-bottom:8px;flex-direction:column-reverse}#coords,#dims{font-size:13px;padding:6px 10px;white-space:normal;flex-wrap:wrap;max-width:calc(100vw - 24px)}#coords{min-height:36px}#dims .sep{flex-basis:100%;height:0;overflow:hidden}}
