.selection-box{z-index:18;outline:1px solid var(--sel);transform-origin:0 0;pointer-events:none;position:absolute}.selection-handle{pointer-events:auto;touch-action:none;width:24px;height:24px;position:absolute;transform:translate(-50%,-50%)}.selection-handle:after{content:"";border:1px solid var(--sel);background:#fff;border-radius:1px;width:8px;height:8px;position:absolute;top:8px;left:8px}.selection-handle:hover:after,.selection-handle:focus-visible:after{background:var(--sel)}.selection-handle--nw,.selection-handle--se{cursor:nwse-resize}.selection-handle--ne,.selection-handle--sw{cursor:nesw-resize}.selection-rotation-stem{background:var(--sel);width:1px;height:22px;position:absolute;top:-22px;left:50%}.selection-rotate{border:1px solid var(--sel);width:20px;height:20px;color:var(--sel);pointer-events:auto;touch-action:none;cursor:grab;background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;top:-26px;left:50%;transform:translate(-50%,-50%)}.selection-rotate:hover{background:var(--sel);color:#fff}.selection-rotate:active{cursor:grabbing}.selection-size{white-space:nowrap;border-radius:var(--radius-xs);color:#fff;background:var(--sel);font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding:2px 4px;line-height:15px;position:absolute;top:calc(100% + 6px);left:50%}.canvas__marquee{z-index:19;pointer-events:none;border:1px solid var(--sel);background:var(--sel-wash);position:absolute}.shape-handle{z-index:20;touch-action:none;cursor:grab;width:26px;height:26px;position:absolute;transform:translate(-50%,-50%)}.shape-handle:after{content:"";border:1.5px solid var(--sel);background:var(--surface);border-radius:50%;position:absolute;inset:9px}.shape-handle--inner:after{border-radius:1px;transform:rotate(45deg)}.shape-handle:hover:after,.shape-handle:focus-visible:after{background:var(--sel)}.shape-handle:active{cursor:grabbing}.node-editor{z-index:21;pointer-events:none;position:absolute;inset:0}.node-editor__paths{fill:none;position:absolute;inset:0;overflow:visible}.node-editor__outline,.node-editor__tangent{stroke:var(--sel);stroke-width:1px;pointer-events:none}.node-editor__tangent{opacity:.6}.node-editor__segment{stroke:#0000;stroke-width:12px;pointer-events:stroke;cursor:grab;touch-action:none}.node-editor__segment:hover{stroke:color-mix(in srgb, var(--sel) 15%, transparent)}.node-editor__node,.node-editor__handle{pointer-events:auto;touch-action:none;cursor:grab;width:22px;height:22px;padding:0;position:absolute;transform:translate(-50%,-50%)}.node-editor__node:after,.node-editor__handle:after{content:"";border:1.5px solid var(--sel);background:var(--surface);border-radius:1px;position:absolute;inset:7px}.node-editor__node[data-smooth=true]:after,.node-editor__handle:after{border-radius:50%}.node-editor__node:after{box-sizing:border-box;pointer-events:none;width:min(8px,100%);height:min(8px,100%);inset:50% auto auto 50%;transform:translate(-50%,-50%)}.node-editor__node[data-selected=true]:after{background:var(--sel)}.node-editor__node:hover:after,.node-editor__handle:hover:after{box-shadow:0 0 0 3px color-mix(in srgb, var(--sel) 18%, transparent)}.node-editor__node:active,.node-editor__handle:active,.node-editor__segment:active{cursor:grabbing}.node-editor[data-panning=true] *{pointer-events:none}.node-tools{bottom:max(14px, env(safe-area-inset-bottom));z-index:46;background:var(--surface);border-radius:14px;align-items:center;gap:3px;max-width:calc(100vw - 16px);padding:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.node-tools button{white-space:nowrap;border-radius:8px;height:36px;padding:0 12px;font-size:12px}.node-tools button:hover{background:var(--hover)}.node-tools button:disabled{opacity:.35;cursor:default}.node-tools .node-tools__done{background:var(--fg-strong);color:var(--fg-inverse)}.node-tools__count{color:var(--fg-muted);white-space:nowrap;padding:0 8px;font-size:11px}.node-tools__hint{text-align:center;background:var(--surface);width:max-content;max-width:calc(100vw - 24px);color:var(--fg-muted);pointer-events:none;border-radius:8px;padding:6px 10px;font-size:11px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}@media (width<=640px){.node-tools button{padding:0 10px}.node-tools__count{padding:0 5px}.node-tools__hint{font-size:10px}}.frame-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.frame-label{align-items:center;gap:var(--space-4);pointer-events:auto;white-space:nowrap;height:20px;display:flex;position:absolute;top:0;left:0}.frame-label__name{cursor:grab;touch-action:none;font-size:var(--text-sm);color:var(--fg-muted);border-radius:var(--radius-xs);transition:color var(--duration-fast) var(--ease-out);margin-left:-3px;padding:1px 3px;font-weight:500}.frame-label__name:hover{color:var(--fg);background:var(--hover)}.frame-label--active .frame-label__name{color:var(--sel)}.frame-label__input{width:130px;height:20px;padding:0 var(--space-2);font-size:var(--text-sm);border-radius:var(--radius-xs);background:var(--surface);box-shadow:0 0 0 1.5px var(--sel);border:none;font-weight:500}.frame-label__input:focus{outline:none}.frame-label__size{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint)}.frame-label__badge{height:16px;padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-weight:500;display:inline-flex}.frame-label__badge--error{background:var(--danger-soft);color:var(--danger)}.frame-label__badge--warning{background:var(--amber-soft);color:var(--amber)}.frame-label__spinner{border-radius:var(--radius-full);border:1.5px solid var(--border);border-top-color:var(--fg-strong);width:11px;height:11px;animation:.62s linear infinite frame-spin}@keyframes frame-spin{to{transform:rotate(360deg)}}.first-run{pointer-events:none;z-index:4;animation:first-run-in var(--duration-slow) var(--ease-out);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.first-run-hint{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--hairline);background:var(--surface);font-size:var(--text-sm);color:var(--fg-muted);white-space:nowrap;display:inline-flex}.first-run-hint__icon{color:var(--fg-faint);place-items:center;display:grid}@keyframes first-run-in{0%{opacity:0}to{opacity:1}}.text-editor{pointer-events:none;z-index:15;position:absolute;inset:0;overflow:hidden}.text-editor__field{box-sizing:border-box;pointer-events:auto;resize:none;color:#0000;box-shadow:0 0 0 1px var(--sel);white-space:pre;caret-color:var(--sel);background:0 0;border:none;border-radius:0;margin:0;padding:0;font-family:ui-sans-serif,system-ui,sans-serif;font-weight:500;position:absolute;top:0;left:0;overflow:hidden}.text-editor__field:focus{outline:none}.text-editor__field::selection{background:var(--sel-soft);color:#0000}.text-editor__field--all-selected{background:var(--sel-soft)}.text-editor__field--all-selected::selection{color:#0000;background:0 0}.context-menu,.context-sub{z-index:200;border:1px solid var(--hairline);border-radius:var(--radius-menu);background:var(--surface);min-width:220px;box-shadow:var(--shadow-float);animation:context-in var(--duration-fast) var(--ease-out);padding:6px;position:fixed}.context-sub{min-width:180px}.context-menu:focus{outline:none}.context-menu__list{flex-direction:column;display:flex}.context-menu__item{align-items:center;gap:var(--space-4);border-radius:var(--radius-control);height:32px;font-size:var(--text-md);color:var(--fg);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);padding:0 10px;display:flex}.context-menu__item:hover,.context-menu__item[data-focused=true],.context-menu__item--open,.context-menu__item--open:hover{background:#f4f4f6}.context-menu__item--checked .context-menu__icon{color:var(--sel)}.context-menu__item--danger{color:var(--danger)}.context-menu__item--danger:hover,.context-menu__item--danger[data-focused=true]{background:var(--danger-soft);color:var(--danger)}.context-menu__item--disabled{opacity:.4;pointer-events:none}.context-menu__icon{width:16px;color:var(--fg-strong);opacity:.55;flex-shrink:0;place-items:center;display:grid}.context-menu__label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.context-menu__shortcut{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint)}.context-menu__sub{color:var(--fg-faint);place-items:center;display:grid}.context-menu__separator{background:var(--hairline);height:1px;margin:6px -6px}@keyframes context-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}.canvas{background:var(--canvas);transition:background-color var(--duration-slow) var(--ease-out);position:absolute;inset:0;overflow:hidden}.canvas__surface{touch-action:none;position:absolute;inset:0}.canvas__surface canvas{display:block}.drawing-preview{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.canvas__scrub{border-radius:var(--radius-xs);background:var(--sel);color:#fff;min-width:28px;height:20px;font-family:var(--font-mono);font-size:var(--text-sm);pointer-events:none;z-index:20;place-items:center;padding:0 6px;display:grid;position:absolute;top:0;left:0}.first-project{gap:18px;padding:20px 16px 16px}.first-project__intro{flex-direction:column;gap:6px;display:flex}.first-project__eyebrow{font-size:var(--text-sm);color:var(--fg-subtle);font-weight:500}.first-project h2{font-size:var(--text-xl);letter-spacing:-.02em;color:var(--fg);font-weight:600;line-height:1.15}.first-project__intro p{font-size:var(--text-md);color:var(--fg-muted);line-height:1.5}.starter-choices,.starter-examples{flex-direction:column;gap:6px;display:flex}.starter-choice,.starter-example{background:var(--field);text-align:left;width:100%;transition:background var(--duration-fast) var(--ease-out);border-radius:12px;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}.starter-choice:hover,.starter-example:hover{background:#02020212}.starter-choice>span,.starter-example>span{flex:1;min-width:0}.starter-choice strong,.starter-example strong{font-size:var(--text-md);color:var(--fg);font-weight:500;display:block}.starter-choice small,.starter-example small{font-size:var(--text-sm);color:var(--fg-muted);margin-top:1px;line-height:1.45;display:block}.starter-choice>svg:last-child{color:var(--fg-strong);opacity:.5;flex-shrink:0}.starter-art{background:var(--surface);width:52px;height:48px;box-shadow:inset 0 0 0 1px var(--hairline);color:#315c9b;border-radius:8px;flex-shrink:0;display:block}.starter-art--badge{color:#367466}.starter-art--sprig{color:#526d50}.starter-art--svg,.starter-art--examples{color:var(--fg-strong)}.starter-example{grid-template-columns:64px 1fr;gap:2px 10px;display:grid}.starter-example .starter-art{grid-row:1/3;width:64px;height:56px}.starter-example strong{align-self:end}.starter-example>span{font-size:var(--text-sm);color:var(--fg-muted);align-self:start;line-height:1.45}.starter-choice:disabled,.starter-example:disabled{opacity:.5;cursor:wait}.first-project__footnote{font-size:var(--text-xs);color:var(--fg-subtle);align-items:center;gap:6px;display:flex}.first-project__note{font-size:var(--text-xs);color:var(--fg-muted);line-height:1.5}.first-project__back{border-radius:var(--radius-control);height:24px;font-size:var(--text-sm);color:var(--fg-strong);align-self:flex-start;margin-left:-6px;padding:0 6px}.first-project__back:hover{background:var(--hover)}.first-guide{gap:10px}.first-guide__header{font-size:var(--text-sm);color:var(--fg-strong);justify-content:space-between;align-items:center;font-weight:500;display:flex}.first-guide__steps{justify-content:space-between;gap:4px;margin:2px 0;padding:0;list-style:none;display:flex}.first-guide__steps li{font-size:var(--text-xs);color:var(--fg-subtle);flex-direction:column;align-items:center;gap:4px;display:flex}.first-guide__steps li>span{border:1px solid var(--border);border-radius:var(--radius-full);width:18px;height:18px;font-family:var(--font-mono);color:var(--fg-strong);place-items:center;font-size:9px;display:grid}.first-guide__steps li[aria-current=step]{color:var(--fg);font-weight:500}.first-guide__steps li[aria-current=step]>span,.first-guide__steps li[data-complete=true]>span{border-color:var(--fg-strong);background:var(--fg-strong);color:var(--fg-inverse)}.first-guide h3{letter-spacing:-.015em;color:var(--fg);font-size:15px;font-weight:600;line-height:1.25}.first-guide>p{font-size:var(--text-sm);color:var(--fg-muted);line-height:1.5}.first-guide__size{height:var(--control-h);border-radius:var(--radius-control);background:var(--field);font-size:var(--text-sm);align-items:center;gap:6px;padding:0 8px 0 6px;display:flex}.first-guide__size strong{font-family:var(--font-mono);color:var(--fg-strong);font-weight:400}.first-guide__size>span{font-size:var(--text-xs);color:var(--fg-subtle);margin-left:auto}.first-guide>.first-guide__readiness{font-size:var(--text-xs);color:var(--amber)}.selection-measurements__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.selection-measure .field__input{text-align:left}.selection-measure[data-disabled=true]{opacity:.45}.selection-proportions[aria-pressed=true]{background:var(--pressed)}.selection-measurements__hint{font-size:var(--text-2xs);color:var(--fg-subtle);align-self:center;line-height:1.35}.scrub{justify-content:space-between;align-items:center;gap:var(--space-4);height:var(--control-h);border-radius:var(--radius-control);background:var(--field);cursor:ew-resize;touch-action:none;padding:0 10px;display:flex;position:relative;overflow:hidden}.scrub:focus-visible{outline:1.5px solid var(--sel);outline-offset:-1.5px}.scrub__fill{transition:background var(--duration-fast) var(--ease-out);background:#0202020b;position:absolute;top:0;bottom:0;left:0}.scrub:hover:not(.scrub--disabled) .scrub__fill{background:#02020212}.scrub__edge{display:none}.scrub--live{outline:1.5px solid var(--sel);outline-offset:-1.5px}.scrub--live .scrub__fill,.scrub--live:hover .scrub__fill{background:var(--sel-soft)}.scrub--disabled{cursor:not-allowed}.scrub--disabled .scrub__label,.scrub--disabled .scrub__number{color:var(--fg-faint)}.scrub__label,.scrub__value{position:relative}.scrub__label{font-size:var(--text-sm);color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scrub__value{flex-shrink:0;align-items:baseline;gap:3px;display:inline-flex}.scrub__number{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong)}.scrub__unit{font-size:var(--text-xs);color:var(--fg-subtle);font-weight:500}.scrub__input{width:68px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--surface);box-shadow:0 0 0 1.5px var(--sel);font-family:var(--font-mono);font-size:var(--text-sm);text-align:right;cursor:text;border:none;outline:none;position:relative}.fontpicker{position:relative}.fontpicker__trigger{align-items:center;gap:var(--space-2);width:100%;height:var(--control-h);padding:0 var(--space-2) 0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-control);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;display:flex}.fontpicker__trigger:hover{background:var(--hover)}.fontpicker__trigger:focus-visible,.fontpicker__trigger--open{outline:1.5px solid var(--sel);outline-offset:-1.5px}.fontpicker__trigger-label{font-size:var(--text-sm);color:var(--fg-subtle)}.fontpicker__trigger-value{min-width:0;font-size:var(--text-sm);color:var(--fg-strong);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.fontpicker__chevron{opacity:.5;flex-shrink:0}.fontpicker__panel{z-index:120;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);animation:fontpicker-open var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}@keyframes fontpicker-open{0%{transform:translateY(-3px)}to{transform:none}}.fontpicker__search{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--hairline);display:flex}.fontpicker__search-icon{color:var(--fg-subtle);flex-shrink:0}.fontpicker__search-input{min-width:0;font:inherit;font-size:var(--text-md);color:var(--fg-strong);background:0 0;border:none;flex:1}.fontpicker__search-input:focus{outline:none}.fontpicker__search-input::placeholder{color:var(--fg-subtle)}.fontpicker__filters{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--hairline);flex-wrap:wrap;flex-shrink:0;display:flex}.fontpicker__filter-gap{width:1px;height:14px;margin:0 var(--space-2);background:var(--hairline)}.fontpicker__chip{border:1px solid var(--border-chip);border-radius:var(--radius-full);height:24px;font-size:var(--text-sm);color:var(--fg);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;padding:0 10px}.fontpicker__chip:hover{background:var(--hover)}.fontpicker__chip--on,.fontpicker__chip--on:hover{border-color:var(--fg-strong);background:var(--fg-strong);color:var(--fg-inverse)}.fontpicker__list{min-height:0;padding:var(--space-2);overscroll-behavior:contain;flex:1;margin:0;list-style:none;overflow-y:auto}.fontpicker__row{align-items:center;gap:var(--space-5);width:100%;min-height:58px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex}.fontpicker__row:hover{background:var(--hover)}.fontpicker__row:focus-visible{background:var(--hover);outline:none;outline:1.5px solid var(--sel);outline-offset:-1.5px}.fontpicker__row--on{background:var(--sel-row)}.fontpicker__sample{border-radius:var(--radius-control);background:var(--field);width:210px;height:48px;box-shadow:inset 0 0 0 1px var(--hairline);flex:0 0 210px;position:relative;overflow:hidden}.fontpicker__sample-status{padding:var(--space-4);font-size:var(--text-xs);color:var(--fg-faint);place-items:center;display:grid;position:absolute;inset:0}.fontpicker__preview{object-fit:contain;object-position:left center;opacity:0;width:auto;max-width:none;height:48px;transition:opacity var(--duration-fast) var(--ease-out);display:block;position:relative}.fontpicker__sample--ready .fontpicker__preview{opacity:1}.fontpicker__row-name{min-width:0;font-size:var(--text-sm);color:var(--fg-strong);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.fontpicker__spinner{border:1.5px solid var(--border);border-top-color:var(--fg-strong);border-radius:var(--radius-full);flex-shrink:0;width:13px;height:13px;animation:.62s linear infinite fontpicker-spin}@keyframes fontpicker-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fontpicker__spinner{animation-duration:2s}}.fontpicker__empty{padding:var(--space-8) var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--fg-subtle)}.fontpicker__error{padding:var(--space-3) var(--space-6);border-top:1px solid color-mix(in srgb, var(--danger) 28%, transparent);background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--danger);font-size:var(--text-sm);margin:0;line-height:1.4}.fontpicker__footer{padding:var(--space-3) var(--space-6);border-top:1px solid var(--hairline);font-size:var(--text-sm);color:var(--fg-subtle);flex-shrink:0;margin:0}@media (width<=720px){.fontpicker__filters{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.fontpicker__filters::-webkit-scrollbar{display:none}.fontpicker__filter-gap,.fontpicker__chip{flex-shrink:0}.fontpicker__row{gap:var(--space-4);min-height:58px}.fontpicker__sample{flex-basis:148px;width:148px;height:48px}.fontpicker__preview{height:48px}}.issues{flex-direction:column;display:flex}.issue{text-align:left;align-items:flex-start;gap:8px;width:calc(100% + 32px);margin:0 -16px;padding:8px 16px;display:flex}.issue--selectable{transition:background var(--duration-fast) var(--ease-out)}.issue--selectable:hover{background:color-mix(in srgb, var(--border) 50%, transparent)}.issue__dot{border-radius:var(--radius-full);color:#fff;flex-shrink:0;place-items:center;width:14px;height:14px;margin-top:1px;display:grid}.issue__dot--clear{background:var(--ok)}.issue__dot--warning{background:var(--amber)}.issue__dot--error{background:var(--danger)}.issue__body{flex-direction:column;gap:2px;min-width:0;display:flex}.issue__title{font-size:var(--text-sm);color:var(--fg-strong);font-weight:500}.issue__fix{font-size:var(--text-xs);color:var(--fg-strong);line-height:1.5}.tooltip{z-index:1000;background:var(--fg-strong);max-width:240px;color:var(--fg-inverse);box-shadow:var(--shadow-menu);pointer-events:none;animation:tooltip-in var(--duration-fast) var(--ease-out);transition:opacity var(--duration-fast) var(--ease-out);border-radius:8px;flex-direction:column;gap:2px;padding:6px 10px 7px;display:flex;position:fixed}.tooltip__title{font-size:var(--text-sm);font-weight:500;line-height:1.4}.tooltip__detail{font-size:var(--text-sm);color:#fafafa9e;line-height:1.45}@keyframes tooltip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.thread-trigger{align-items:center;gap:var(--space-4);width:100%;height:var(--control-h);padding:0 var(--space-2) 0 3px;border-radius:var(--radius-control);background:var(--field);transition:background var(--duration-fast) var(--ease-out);display:flex}.thread-trigger:hover{background:#0202020f}.thread-trigger--open{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.thread-trigger__swatch{border:1px solid var(--border);border-radius:var(--radius-xs);flex-shrink:0;width:16px;height:16px}.thread-trigger__name{min-width:0;font-size:var(--text-sm);color:var(--fg-strong);text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.thread-trigger__approx{color:var(--fg-subtle)}.thread-trigger__index{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-subtle);flex-shrink:0}.thread-trigger__chevron{opacity:.5;flex-shrink:0}.thread-popover{z-index:60;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);width:280px;box-shadow:var(--shadow-float);animation:thread-pop var(--duration-base) var(--ease-out);position:fixed;overflow:hidden}@keyframes thread-pop{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.thread-popover__header{justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.thread-popover__title{font-size:var(--text-sm);color:var(--fg-strong);font-weight:500}.thread-popover__count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-subtle)}.thread-popover__grid{grid-template-columns:repeat(8,1fr);gap:6px;max-height:236px;padding:2px 14px 14px;display:grid;overflow-y:auto}.thread-chip{aspect-ratio:1;border-radius:var(--radius-xs);transition:box-shadow var(--duration-fast) var(--ease-out);box-shadow:inset 0 0 0 1px #0000001a}.thread-chip:hover{box-shadow:inset 0 0 0 1px #0000001a, 0 0 0 2px #fff, 0 0 0 3px var(--border-strong)}.thread-chip--active,.thread-chip--active:hover{box-shadow:inset 0 0 0 1px #0000001a, 0 0 0 2px #fff, 0 0 0 3.5px var(--sel)}.thread-popover__footer{border-top:1px solid var(--hairline);font-size:var(--text-xs);color:var(--fg-muted);padding:9px 14px 10px;line-height:1.5}.color-trigger{align-items:center;gap:var(--space-3);width:100%;min-width:0;height:var(--control-h);padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--radius-control);background:var(--field);text-align:left;transition:background var(--duration-fast) var(--ease-out);display:flex}.color-trigger:hover{background:var(--hover)}.color-trigger[aria-expanded=true]{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.color-trigger__label{font-size:var(--text-sm);color:var(--fg-muted);flex:1}.color-trigger__swatch{border:1px solid var(--border-chip);border-radius:var(--radius-xs);flex-shrink:0;width:16px;height:16px}.color-trigger__hex{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-subtle)}.color-trigger__chevron{opacity:.5;flex-shrink:0}.color-popover{z-index:60;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);width:280px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:var(--shadow-float);position:fixed}.color-popover__header{justify-content:space-between;align-items:center;padding:8px 10px 6px 14px;display:flex}.color-popover__header h3{font-size:var(--text-sm);color:var(--fg-strong);font-weight:500}.color-editor{gap:var(--space-6);flex-direction:column;padding:0 14px 14px;display:flex}.color-editor__plane{border-radius:var(--radius-control);touch-action:none;cursor:crosshair;background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#0000);flex-shrink:0;height:156px;position:relative;box-shadow:inset 0 0 0 1px #0000000f}.color-editor__cursor{border-radius:var(--radius-full);pointer-events:none;border:2px solid #fff;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0006}.color-editor__hue-row{align-items:center;gap:var(--space-6);display:flex}.color-editor__preview{border:1px solid var(--border-chip);border-radius:var(--radius-control);flex-shrink:0;width:28px;height:28px}.color-editor__hue{appearance:none;border-radius:var(--radius-full);cursor:pointer;touch-action:none;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border:0;width:100%;min-width:0;height:12px;margin:0}.color-editor__hue::-webkit-slider-thumb{appearance:none;border:2px solid var(--surface);border-radius:var(--radius-full);background:0 0;width:16px;height:16px;box-shadow:0 0 0 1px #0000004d}.color-editor__hue::-moz-range-thumb{border:2px solid var(--surface);border-radius:var(--radius-full);background:0 0;width:12px;height:12px;box-shadow:0 0 0 1px #0000004d}.color-editor__values{gap:var(--space-2);grid-template-columns:1.8fr repeat(3,1fr);display:grid}.color-editor__value{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.color-editor__value>span{font-size:var(--text-2xs);color:var(--fg-subtle);padding-left:2px}.color-editor__value input{width:100%;min-width:0;height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius-control);background:var(--field);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-strong);border:1px solid #0000}.color-editor__value input:focus{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.color-editor__presets{gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--hairline);grid-template-columns:repeat(8,1fr);display:grid}.color-editor__preset{aspect-ratio:1;border-radius:var(--radius-xs);box-shadow:inset 0 0 0 1px #0000001a}.color-editor__preset:hover{outline:1px solid var(--border-strong);outline-offset:2px}.color-editor__preset[aria-pressed=true]{outline:1.5px solid var(--sel);outline-offset:2px}.color-editor__sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.segmented{align-items:center;display:flex}.segmented__slot{display:contents}.segmented__option{justify-content:center;align-items:center;gap:var(--space-2);color:var(--fg-strong);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);background:0 0;display:inline-flex}.segmented__option:disabled{opacity:.35;cursor:not-allowed}.segmented--field{gap:var(--space-2);border-radius:var(--radius-control);background:var(--field);padding:1px}.segmented--field .segmented__slot{flex:1;min-width:0;display:flex}.segmented--field .segmented__option{border-radius:var(--radius-control);height:24px;font-size:var(--text-sm);flex:1}.segmented--field .segmented__option:hover:not([data-active=true]):not(:disabled){background:var(--hover)}.segmented--field .segmented__option[data-active=true]{background:var(--surface);box-shadow:var(--shadow-toggle)}.segmented--header{gap:var(--space-1)}.segmented--header .segmented__option{height:30px;font-size:var(--text-md);color:var(--fg-muted);border-radius:12px;padding:0 12px;font-weight:500}.segmented--header .segmented__option:hover:not([data-active=true]):not(:disabled){background:var(--hover);color:var(--fg)}.segmented--header .segmented__option[data-active=true]{background:var(--tab-on);color:var(--fg)}.segmented--compact .segmented__option{gap:0;padding:0}.inspector__head{flex-direction:column;gap:4px;padding:12px 16px 14px;display:flex}.inspector__name-row{align-items:center;display:flex;position:relative}.inspector__name-icon{z-index:1;width:28px;height:30px;color:var(--fg-strong);pointer-events:none;place-items:center;display:grid;position:absolute;top:0;left:0}.inspector__name,.inspector__name--static{border-radius:var(--radius-control);width:100%;height:30px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong);text-overflow:ellipsis;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;outline:none;align-items:center;padding:0 8px 1px 28px;display:flex;overflow:hidden}.inspector__name:hover{background:var(--field)}.inspector__name:focus{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.inspector__kind{font-size:var(--text-xs);color:var(--fg-strong);align-items:center;gap:6px;padding-left:6px;font-weight:500;display:flex}.inspector__kind-detail{color:var(--fg-subtle);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.inspector__kind-detail:before{content:"·";color:var(--fg-faint);margin-right:6px}.inspector__note{padding:0 16px 14px}.inspector__export{margin-top:auto;padding-bottom:16px}.align-row{gap:var(--space-3);display:flex}.field-field{gap:var(--space-2);flex-direction:column;display:flex}.field-field__label{font-size:var(--text-2xs);color:var(--fg-strong)}.field-field__text{border-radius:var(--radius-control);background:var(--field);width:100%;min-height:56px;color:var(--fg-strong);font-size:var(--text-md);resize:vertical;border:1px solid #0000;outline:none;padding:6px 8px;line-height:1.45;display:block;overflow-y:auto}.field-field__text:focus{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.field-field__text::placeholder{color:var(--fg-faint)}.text-inspector__scale{font-size:var(--text-xs);color:var(--fg-muted);line-height:1.5}.text-inspector__scale--warning{color:var(--amber)}.text-inspector__credit{font-size:var(--text-xs);color:var(--fg-subtle);text-overflow:ellipsis;white-space:nowrap;margin:-2px 0 0;line-height:1.5;overflow:hidden}.text-inspector__credit span{color:var(--fg-faint);margin-top:1px;display:block}.text-inspector__credit--missing{color:var(--amber);white-space:normal}.stat--boxed{height:var(--control-h);padding:0 var(--space-4);border-radius:var(--radius-control);background:var(--field)}.stat__value--text{font-family:var(--font-sans);font-weight:500}.pp1-preflight__material{border-radius:var(--radius-control);background:var(--field);font-size:var(--text-xs);color:var(--fg-strong);padding:7px 9px;line-height:1.5}.pp1-checklist{counter-reset:pp1-step;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pp1-checklist li{font-size:var(--text-xs);color:var(--fg-muted);counter-increment:pp1-step;grid-template-columns:16px 1fr;gap:8px;line-height:1.5;display:grid}.pp1-checklist li:before{content:counter(pp1-step);border:1px solid var(--border);border-radius:var(--radius-xs);width:16px;height:16px;font-family:var(--font-mono);color:var(--fg-strong);place-items:center;font-size:9px;display:grid}.pp1-advanced{padding-top:var(--space-3);border-top:1px solid var(--hairline)}.pp1-advanced summary{font-size:var(--text-xs);color:var(--fg-strong);cursor:pointer;font-weight:500}.pp1-advanced[open] summary{margin-bottom:var(--space-3)}.pp1-advanced>p+p{margin-top:var(--space-3)}.digitization-error{background:var(--danger-soft);flex-direction:row;justify-content:space-between;align-items:center}.digitization-error>div{flex-direction:column;gap:2px;display:flex}.digitization-error strong{font-size:var(--text-sm);color:var(--danger);font-weight:500}.digitization-error span{font-size:var(--text-xs);color:var(--fg-muted)}.row__order{width:14px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint);text-align:right;flex-shrink:0}.row__swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0000001f}.row__type{font-size:var(--text-xs);color:var(--fg-subtle);white-space:nowrap;flex-shrink:0}.row__flag{border-radius:var(--radius-full);color:#fff;flex-shrink:0;place-items:center;width:14px;height:14px;display:grid}.row__flag--warning{background:var(--amber)}.row__flag--error{background:var(--danger)}.row-group{align-items:center;gap:var(--space-1);height:var(--row-h);transition:background var(--duration-fast) var(--ease-out);margin:0 -16px;padding:0 10px 0 6px;display:flex}.row-group:hover{background:color-mix(in srgb, var(--border) 50%, transparent)}.row-group__toggle{width:16px;height:16px;color:var(--fg-subtle);flex-shrink:0;place-items:center;display:grid}.row-group__name{justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;flex:1;min-width:0;height:100%;display:flex}.row-group__label{font-size:var(--text-sm);color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.row-group__count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint);flex-shrink:0}.row-group--selected,.row-group--selected:hover{background:var(--sel-row)}.row-group--entered .row-group__label{text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px}.row--in-group .row__hit{padding-left:30px}.row--in-group:before{content:"";background:var(--border);width:1px;position:absolute;top:0;bottom:0;left:23px}.thread-plan__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.thread-plan__list li{grid-template-columns:14px 12px minmax(0,1fr) auto;align-items:center;column-gap:8px;min-height:26px;display:grid}.thread-plan__number{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint);text-align:right}.thread-plan__swatch{border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0000001f}.thread-plan__name{min-width:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.thread-plan__code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-subtle);white-space:nowrap}.thread-plan__note{font-size:var(--text-xs);color:var(--fg-muted);line-height:1.5}.combination-toggle{width:20px;height:28px;margin-left:6px}.operand-row{align-items:center;min-height:32px;margin:0 -16px;padding-right:12px;display:flex;position:relative}.operand-row:hover{background:var(--hover)}.operand-row.row--selected{background:var(--sel-row)}.operand-row__select{text-align:left;flex:1;align-items:center;gap:7px;min-width:0;height:32px;display:flex}.operand-row__drag{height:30px;color:var(--fg-faint);cursor:grab;touch-action:none;flex:0 0 20px;font-size:17px}.operand-row__drag:active{cursor:grabbing}.operand-row[data-drop]:after{content:"";background:var(--sel);pointer-events:none;height:2px;position:absolute;left:18px;right:12px}.operand-row[data-drop=before]:after{top:0}.operand-row[data-drop=after]:after{bottom:0}.layers-toggle{display:none}@media (width<=900px){.layers-toggle{z-index:51;background:var(--surface);color:var(--fg-muted);border-radius:10px;padding:7px 10px;font-size:11px;display:block;position:absolute;top:108px;left:8px}.panel-shell--left[data-open=true]{z-index:50;width:min(280px,100vw - 16px);display:flex;top:146px;bottom:130px}}.operand-row__toggle{position:absolute;transform:translate(-100%)}.simbar{left:calc(var(--inset) + var(--sidebar-width) + var(--gap) + (100% - 2 * var(--inset) - var(--sidebar-width) - var(--inspector-width) - 2 * var(--gap)) / 2);z-index:30;align-items:center;gap:var(--space-4);border-radius:var(--radius-island);background:var(--island);height:40px;animation:simbar-rise var(--duration-slow) var(--ease-out);padding:0 12px 0 6px;display:flex;position:absolute;bottom:82px;transform:translate(-50%)}@keyframes simbar-rise{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.simbar__divider{background:var(--hairline);width:1px;height:16px}.simbar__play{border-radius:var(--radius-full);background:var(--fg-strong);width:28px;height:28px;color:var(--fg-inverse);transition:background var(--duration-fast) var(--ease-out);place-items:center;display:grid}.simbar__play:hover{background:#3f3f46}.simbar__play:disabled{opacity:.35;cursor:default}.simbar__step{border-radius:var(--radius-full);width:28px;height:28px;color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out);place-items:center;display:grid}.simbar__step:hover{background:var(--hover)}.simbar__scrub{align-items:center;width:220px;height:20px;display:flex;position:relative}.simbar__scrub input[type=range]{z-index:2;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.simbar__track{border-radius:var(--radius-full);background:var(--border);height:4px;position:absolute;left:0;right:0;overflow:hidden}.simbar__band{opacity:.35;position:absolute;top:0;bottom:0}.simbar__progress{background:var(--fg-strong);position:absolute;top:0;bottom:0;left:0}.simbar__knob{border-radius:var(--radius-full);background:var(--surface);width:12px;height:12px;box-shadow:0 0 0 1px var(--border-strong), 0 1px 2px #0000001f;pointer-events:none;margin-left:-6px;position:absolute}.simbar__count{min-width:96px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong);text-align:right}.simbar__thread{border-radius:var(--radius-control);background:var(--field);align-items:center;gap:6px;max-width:150px;height:24px;padding:0 8px 0 4px;display:inline-flex}.simbar__thread-swatch{border:1px solid var(--border);border-radius:var(--radius-xs);flex-shrink:0;width:16px;height:16px}.simbar__thread-name{font-size:var(--text-sm);color:var(--fg-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.simbar__speed{border-radius:var(--radius-control);height:24px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out);padding:0 8px}.simbar__speed:hover{background:var(--hover)}@media (width<=1180px){.simbar__thread{display:none}.simbar__scrub{width:140px}}@media (width<=900px){.simbar{bottom:82px;left:50%}}@media (width<=640px){.simbar{width:calc(100% - 16px);top:calc(46vh - 48px);bottom:auto}.simbar__scrub{flex:1;width:auto;min-width:32px}.simbar__count{min-width:0;font-size:var(--text-xs)}.simbar__divider{display:none}}.toasts{right:calc(var(--inset) + var(--inspector-width) + var(--gap));bottom:calc(var(--inset) + 32px + var(--gap));z-index:200;gap:var(--gap);pointer-events:none;flex-direction:column;width:320px;display:flex;position:fixed}.toast{border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);pointer-events:auto;animation:toast-in var(--duration-slow) var(--ease-out);align-items:flex-start;gap:10px;padding:12px 10px 12px 12px;display:flex}.toast__icon{border-radius:var(--radius-full);color:#fff;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.toast--success .toast__icon{background:var(--ok)}.toast--warning .toast__icon{background:var(--amber)}.toast--error .toast__icon{background:var(--danger)}.toast--info .toast__icon{background:var(--fg-strong)}.toast__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.toast__title{font-size:var(--text-md);color:var(--fg);font-weight:500}.toast__detail{font-size:var(--text-sm);color:var(--fg-muted);line-height:1.5}.toast__close{border-radius:var(--radius-control);width:20px;height:20px;color:var(--fg-strong);opacity:.6;transition:background var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);flex-shrink:0;place-items:center;display:grid}.toast__close:hover{background:var(--hover);opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=900px){.toasts{right:var(--inset);bottom:var(--inset);width:min(320px,100% - 16px)}}.shape-operations{background:var(--surface);border-radius:14px;justify-content:center;align-items:center;gap:3px;width:max-content;max-width:100%;margin:0 auto 6px;padding:5px 6px;display:flex}.shape-operations__count{color:var(--fg-muted);white-space:nowrap;padding:0 8px;font-size:11px}.shape-operations button{height:36px;color:var(--fg-muted);border-radius:9px;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:flex}.shape-operations button:hover{background:var(--hover);color:var(--fg)}.shape-operations button[aria-disabled=true]{opacity:.4;cursor:default}@media (width<=640px){.shape-operations__count{display:none}.shape-operations button{gap:5px;padding:0 9px}}.design-dock{bottom:max(14px, env(safe-area-inset-bottom));z-index:45;max-width:calc(100vw - 16px);position:absolute;left:50%;transform:translate(-50%)}.tool-rail{background:var(--surface);border-radius:16px;align-items:center;gap:3px;padding:6px;display:flex}.tool-rail__group,.tool-rail__shape{align-items:center;gap:3px;display:flex}.tool-rail__shape{gap:0}.tool-rail__button{width:36px;height:36px;color:var(--fg-muted);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border-radius:10px;flex:none;place-items:center;display:grid}.tool-rail__button:hover,.tool-rail__expand:hover{background:var(--hover);color:var(--fg)}.tool-rail__button[data-active=true]{background:var(--fg-strong);color:var(--fg-inverse)}.tool-rail__expand{width:16px;height:36px;color:var(--fg-subtle);border-radius:6px;place-items:center;display:grid}.tool-rail__divider{background:var(--hairline);flex:0 0 1px;width:1px;height:20px;margin:0 5px}.design-dock__hint{border:1px solid var(--rim);background:var(--surface);width:max-content;max-width:min(520px,100vw - 24px);color:var(--fg-muted);text-align:center;pointer-events:none;border-radius:8px;padding:6px 12px;font-size:11px;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.tool-rail .thread-trigger{background:0 0;border:0;border-radius:10px;width:36px;height:36px;padding:8px}.tool-rail .thread-trigger:hover{background:var(--hover)}.tool-rail .thread-trigger__swatch{border-radius:50%;width:20px;height:20px}@media (width<=640px){.design-dock{bottom:max(10px, env(safe-area-inset-bottom))}.tool-rail{gap:1px;padding:5px}.tool-rail__group{gap:1px}.tool-rail__button,.tool-rail .thread-trigger{width:31px;height:36px}.tool-rail__divider{margin:0 3px}.design-dock__hint{font-size:10px}}@media (width<=360px){.tool-rail__button,.tool-rail .thread-trigger{width:27px}.tool-rail__expand{width:12px}}.shape-operations__scope{color:var(--fg-muted);white-space:nowrap;padding:0 8px;font-size:11px}.shape-operations .shape-operations__type{justify-content:center;width:36px;padding:0}.shape-operations button[aria-pressed=true]{background:var(--fg-strong);color:var(--fg-inverse)}.topbar{left:var(--inset);right:var(--inset);top:var(--inset);z-index:40;align-items:center;gap:var(--gap);height:var(--bar-h);pointer-events:none;grid-template-columns:1fr auto 1fr;display:grid;position:absolute}.topbar__island{height:var(--bar-h);border-radius:var(--radius-island);background:var(--island);pointer-events:auto;align-items:center;display:flex}.topbar__island--title{justify-self:start;gap:7px;min-width:0;max-width:100%;padding:0 18px 0 16px}.topbar__island--views{padding:0 10px}.topbar__island--actions{justify-self:end;gap:var(--space-2);padding:0 10px 0 12px}.topbar__brand{flex-shrink:0;align-items:center;gap:7px;margin-right:8px;display:flex}.topbar__mark{color:var(--fg);place-items:center;display:grid}.topbar__wordmark{letter-spacing:-.025em;color:var(--fg);white-space:nowrap;font-size:15px;font-weight:600}.topbar__file{min-width:0;font-size:var(--text-md);color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;font-weight:600;line-height:1;overflow:hidden}.topbar__status{min-width:0;font-size:var(--text-md);color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;line-height:1;overflow:hidden}.topbar__status[data-status=error]{color:var(--danger)}.topbar__icon{border-radius:var(--radius-control);width:30px;height:30px;color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);place-items:center;display:grid}.topbar__icon:hover:not(:disabled){background:var(--hover)}.topbar__icon:active:not(:disabled){background:var(--pressed)}.topbar__icon:disabled{opacity:.3;cursor:default}.topbar__divider{width:1px;height:16px;margin:0 var(--space-2);background:var(--hairline)}.topbar__label{border-radius:var(--radius-control);height:30px;font-size:var(--text-md);color:var(--fg-strong);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);padding:0 10px;font-weight:500;line-height:1}.topbar__label:hover{background:var(--hover)}.topbar__export{height:30px;margin-left:var(--space-2);border-radius:var(--radius-inner);background:var(--fg-strong);font-size:var(--text-md);color:var(--fg-inverse);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out);padding:0 12px;font-weight:500;line-height:1}.topbar__export:hover{background:#3f3f46}.topbar__export:active{background:#27272a}.zoom-island{right:var(--inset);z-index:25;align-items:center;gap:var(--space-2);border-radius:var(--radius-island);background:var(--island);padding:2px;display:flex;position:absolute;bottom:20px}.zoom-island__step{width:28px;height:28px;color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out);border-radius:18px;place-items:center;display:grid}.zoom-island__step:hover{background:var(--hover)}.zoom-island__value{border-radius:var(--radius-xs);width:48px;height:24px;font-family:var(--font-mono);font-size:var(--text-md);color:var(--fg-strong);text-align:center;transition:background var(--duration-fast) var(--ease-out);line-height:24px}.zoom-island__value:hover{background:var(--hover)}@media (width<=1280px){.topbar__wordmark{display:none}}@media (width<=1080px){.topbar__status{display:none}}@media (width<=900px){.app{--bar-h:40px;--panel-top:calc(var(--inset) + 2 * var(--bar-h) + 2 * var(--gap))}.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:var(--bar-h) var(--bar-h);height:calc(2 * var(--bar-h) + var(--gap))}.topbar__island--views{grid-area:2/1/auto/-1;justify-self:center}.topbar__island--actions{grid-area:1/2}.zoom-island{right:auto;left:var(--inset)}}@media (width<=640px){.topbar__island--title{display:none}.topbar{grid-template-columns:minmax(0,1fr)}.topbar__island--actions{grid-column:1;justify-content:space-between;justify-self:stretch;padding:0 6px}.topbar__divider{display:none}.topbar__island--views .segmented__option{padding:0 8px}.zoom-island{display:none}}.import-dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f6f6f699;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.import-dialog{border:1px solid var(--hairline);border-radius:var(--radius-island);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-float);padding:22px 22px 18px}.import-dialog__eyebrow{color:var(--fg-subtle);font-size:var(--text-sm);margin-bottom:8px;font-weight:500}.import-dialog h2{max-width:340px;font-size:var(--text-xl);letter-spacing:-.02em;font-weight:600;line-height:1.15}.import-dialog__copy{color:var(--fg-muted);font-size:var(--text-md);margin-top:8px;line-height:1.5}.import-dialog__measurement{border-radius:var(--radius-inner);background:var(--field);margin-top:18px;padding:12px 14px}.import-dialog__measurement label,.import-dialog__measurement small{color:var(--fg-subtle);font-size:var(--text-sm);display:block}.import-dialog__measurement>div{align-items:baseline;gap:8px;margin:4px 0;display:flex}.import-dialog__measurement input{border:0;border-bottom:1px solid var(--border-strong);width:140px;font-family:var(--font-mono);background:0 0;outline:0;font-size:24px;font-weight:500}.import-dialog__warning{border-radius:var(--radius-control);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm);margin-top:12px;padding:10px 12px}.import-dialog__actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.import-dialog__actions button{border-radius:var(--radius-menu);height:28px;font-size:var(--text-md);transition:background var(--duration-fast) var(--ease-out);padding:0 12px;font-weight:500}.import-dialog__secondary{border:1px solid var(--border);background:var(--surface);color:var(--fg-strong)}.import-dialog__secondary:hover:not(:disabled){background:var(--hover)}.import-dialog__primary{background:var(--fg-strong);color:var(--fg-inverse)}.import-dialog__primary:hover:not(:disabled){background:#3f3f46}.import-dialog__actions button:disabled{opacity:.45;cursor:not-allowed}@media (width<=560px){.import-dialog{padding:22px}.import-dialog__actions{flex-direction:column-reverse;align-items:stretch}}.import-dialog{max-height:calc(100dvh - 40px);overflow-y:auto}.app{background:var(--canvas);height:100%;position:relative;overflow:hidden}.island,.panel-shell,.topbar__island,.tool-rail,.zoom-island,.simbar{outline:1px solid var(--rim);outline-offset:-1px}.panel-shell{z-index:30;top:var(--panel-top);border-radius:var(--radius-island);background:var(--island);flex-direction:column;display:flex;position:absolute;bottom:76px}.panel-shell--left{left:var(--inset);width:var(--sidebar-width)}.panel-shell--right{right:var(--inset);width:var(--inspector-width)}.card{gap:var(--space-4);border-top:1px solid var(--hairline);flex-direction:column;padding:14px 16px 16px;display:flex}.card:first-child{border-top:0}.card__header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:24px;display:flex}.card__title{font-size:var(--text-sm);color:var(--fg-strong);font-weight:600;line-height:1.5}.card__meta{font-size:var(--text-xs);color:var(--fg-subtle);font-weight:500}.card__rows{flex-direction:column;display:flex}.card__header--toggle{cursor:pointer;list-style:none}.card__header--toggle::-webkit-details-marker{display:none}.card__header--toggle .card__meta{align-items:center;gap:4px;display:inline-flex}.card__chevron{color:var(--fg-subtle);transition:transform var(--duration-base) var(--ease-out)}details.card:not([open]){gap:0}details.card[open] .card__chevron{transform:rotate(180deg)}.card--footer{margin-top:auto}.sublabel{margin:var(--space-1) 0 calc(-1 * var(--space-1));font-size:var(--text-2xs);color:var(--fg-strong)}@media (width<=900px){.panel-shell--left{display:none}.panel-shell--right{width:min(280px,100vw - 16px)}}@media (width<=640px){.panel-shell--right{left:var(--inset);right:var(--inset);width:auto;top:46vh}}:root{--canvas:#f6f6f6;--island:#fafafa;--surface:#fff;--field:#0202020a;--hover:#0000000d;--pressed:#3f3f461f;--tab-on:#00000014;--fg:#020202;--fg-strong:#18181b;--fg-muted:#5d5d5d;--fg-subtle:#71717a;--fg-faint:#a1a1aa;--fg-inverse:#fafafa;--rim:#e4e4e7;--hairline:#ececee;--border:#e4e4e7;--border-strong:#d4d4d8;--border-chip:#dcdce0;--sel:#3b82f6;--sel-soft:#3b82f633;--sel-wash:#3b82f614;--sel-row:#dbe5f5;--amber:#bb4d00;--amber-soft:#fe9a0026;--danger:#d4351c;--danger-soft:#d4351c14;--ok:#2f8a4f;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--space-7:14px;--space-8:16px;--radius-xs:4px;--radius-control:7px;--radius-menu:10px;--radius-inner:10px;--radius-card:14px;--radius-island:20px;--radius-full:999px;--shadow-float:0 8px 24px #0000001a, 0 2px 6px #0000000f;--shadow-menu:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-toggle:0 1px 2px #00000014;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Roboto Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-lg:14px;--text-xl:22px;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-base:.18s;--duration-slow:.32s;--inset:8px;--gap:8px;--bar-h:46px;--control-h:28px;--row-h:32px;--sidebar-width:272px;--inspector-width:280px;--rail-width:36px;--panel-top:calc(var(--inset) + var(--bar-h) + var(--gap));--type-satin:#3b82f6;--type-tatami:#71717a;--type-running:#a1a1aa}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--fg);background:var(--canvas);font-optical-sizing:auto;font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overscroll-behavior:none;-webkit-user-select:none;user-select:none;line-height:1.5}input,textarea{-webkit-user-select:text;user-select:text}h1,h2,h3,h4,p,figure{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:1.5px solid var(--sel);outline-offset:1px}::selection{background:var(--sel-soft)}.tabular{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.scroll{overscroll-behavior:contain;scrollbar-width:none;overflow-y:auto}.scroll::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.icon-button{border-radius:var(--radius-control);width:26px;height:26px;color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);flex-shrink:0;place-items:center;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--hover)}.icon-button:active:not(:disabled){background:var(--pressed)}.icon-button:disabled{opacity:.3;cursor:default}.icon-button--danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.icon-button--reveal{opacity:0;pointer-events:none}.row:hover .icon-button--reveal,.row:focus-within .icon-button--reveal{opacity:1;pointer-events:auto}.row:hover .icon-button--reveal:disabled,.row:focus-within .icon-button--reveal:disabled{opacity:.3}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--island);font-size:var(--text-sm);color:var(--fg-strong);white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:inline-flex}.btn:hover:not(:disabled){background:var(--hover)}.btn:active:not(:disabled){background:var(--pressed)}.btn:disabled{opacity:.4;cursor:default}.btn--wide{width:100%}.btn--primary{border-color:var(--fg-strong);border-radius:var(--radius-menu);background:var(--fg-strong);height:34px;color:var(--fg-inverse);font-size:var(--text-md);font-weight:500}.btn--primary:hover:not(:disabled){background:#3f3f46}.btn--primary:active:not(:disabled){background:#27272a}.btn--danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);border-color:#0000}.chip-button{align-items:center;gap:var(--space-2);height:26px;padding:0 var(--space-4) 0 var(--space-3);border-radius:var(--radius-control);font-size:var(--text-xs);color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out);font-weight:500;display:inline-flex}.chip-button:hover{background:var(--hover)}.field{min-width:0;height:var(--control-h);border-radius:var(--radius-control);background:var(--field);border:1px solid #0000;align-items:center;display:flex;position:relative}.field:focus-within{outline:1.5px solid var(--sel);outline-offset:-1.5px;background:var(--sel-wash)}.field__prefix{width:28px;font-size:var(--text-xs);color:var(--fg-subtle);flex:0 0 28px;place-items:center;font-weight:500;display:grid}.field__input{min-width:0;padding:0 var(--space-4) 1px 0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong);background:0 0;border:0;outline:none;flex:1}.field__suffix{padding-right:var(--space-4);font-size:var(--text-sm);color:var(--fg-subtle);font-weight:500}.dropdown{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;height:var(--control-h);padding:0 var(--space-2) 0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-control);font-size:var(--text-sm);color:var(--fg-strong);text-align:left;transition:background var(--duration-fast) var(--ease-out);display:flex;position:relative}.dropdown:hover{background:var(--hover)}.dropdown[aria-expanded=true]{outline:1.5px solid var(--sel);outline-offset:-1.5px}.dropdown__chevron{opacity:.5;flex-shrink:0}.btn-group{min-width:0;height:var(--control-h);border-radius:var(--radius-control);background:var(--field);flex:1;display:flex}.btn-group>*,.btn-group button{height:var(--control-h);border-radius:var(--radius-control);color:var(--fg-strong);transition:background var(--duration-fast) var(--ease-out);flex:1;place-items:center;display:grid}.btn-group button:hover{background:var(--hover)}.btn-group button:active{background:var(--pressed)}.btn-group svg{opacity:.7}.checkbox{align-items:center;gap:var(--space-4);text-align:left;width:100%;min-height:28px;font-size:var(--text-sm);color:var(--fg-strong);display:flex}.checkbox__box{border:1px solid var(--border);border-radius:var(--radius-xs);color:#0000;width:16px;height:16px;transition:background var(--duration-fast), border-color var(--duration-fast);flex:0 0 16px;place-items:center;display:grid}.checkbox:hover .checkbox__box{border-color:var(--border-strong)}.checkbox[aria-checked=true] .checkbox__box{border-color:var(--fg-strong);background:var(--fg-strong);color:var(--fg-inverse)}.row{height:var(--row-h);transition:background var(--duration-fast) var(--ease-out);align-items:center;margin:0 -16px;padding-right:10px;display:flex;position:relative}.row--button:hover{background:color-mix(in srgb, var(--border) 50%, transparent)}.row--selected,.row--selected.row--button:hover{background:var(--sel-row)}.row--current,.row--current.row--button:hover{background:#0000000b}.row--current .row__name{font-weight:600}.row--dim .row__hit{opacity:.45}.row__hit{min-width:0;height:100%;padding:0 var(--space-2) 0 16px;text-align:left;color:inherit;flex:1;align-items:center;gap:10px;display:flex}.row__icon{color:var(--fg-strong);flex-shrink:0}.row__name{min-width:0;font-size:var(--text-sm);color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.row__meta{max-width:55%;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-subtle);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;overflow:hidden}.row__actions{flex-shrink:0;align-items:center;display:flex}.stats{flex-direction:column;display:flex}.stat{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:26px;display:flex}.stat__label{font-size:var(--text-sm);color:var(--fg-muted)}.stat__value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-strong);text-align:right}.stat--warning .stat__value{color:var(--amber)}.empty-hint{gap:var(--space-1);padding:var(--space-2) 0 var(--space-3);flex-direction:column;display:flex}.empty-hint__title{font-size:var(--text-sm);color:var(--fg-strong);font-weight:500}.empty-hint__detail{font-size:var(--text-sm);color:var(--fg-muted);line-height:1.45}.note{font-size:var(--text-xs);color:var(--fg-muted);line-height:1.5}.note--warning{color:var(--amber)}.spinner{border:1.5px solid var(--border);border-top-color:var(--fg-strong);border-radius:var(--radius-full);flex-shrink:0;width:11px;height:11px;animation:.62s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
