:root,[data-theme=light]{--c-bg: #f1f1ee;--c-surface: #ffffff;--c-surface-2: #f7f7f4;--c-surface-3: #ecece7;--c-line: #dedcd5;--c-line-strong: #c6c3b9;--c-ink: #18191c;--c-ink-2: #55585f;--c-ink-3: #8a8d94;--c-accent: #cf4318;--c-accent-ink: #ffffff;--c-accent-soft: rgba(207, 67, 24, .1);--c-accent-line: rgba(207, 67, 24, .35);--c-ok: #1f7a46;--c-warn: #9a6a00;--c-err: #b8322a;--c-shadow: 0 1px 2px rgba(20, 20, 18, .06), 0 8px 24px rgba(20, 20, 18, .1);--c-grid: rgba(24, 25, 28, .055);color-scheme:light}[data-theme=dark]{--c-bg: #0d0e10;--c-surface: #17181b;--c-surface-2: #1d1f23;--c-surface-3: #26282d;--c-line: #2c2f35;--c-line-strong: #3d4148;--c-ink: #eceef1;--c-ink-2: #a6acb5;--c-ink-3: #757b84;--c-accent: #ff6a33;--c-accent-ink: #1a0d06;--c-accent-soft: rgba(255, 106, 51, .14);--c-accent-line: rgba(255, 106, 51, .4);--c-ok: #46b878;--c-warn: #e0a83a;--c-err: #ff6b5e;--c-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 12px 32px rgba(0, 0, 0, .45);--c-grid: rgba(236, 238, 241, .05);color-scheme:dark}:root{--t-micro: .6875rem;--t-small: .75rem;--t-base: .8125rem;--t-body: .9375rem;--t-lg: 1.1875rem;--t-xl: 1.5625rem;--f-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--f-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--panel-left: 296px;--panel-right: 344px;--topbar-h: 52px}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--f-sans);font-size:var(--t-base);line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}button,input,select,textarea{font:inherit;color:inherit}svg.icon{display:block;flex:none}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.app{display:grid;grid-template-rows:var(--topbar-h) 1fr auto;height:100dvh;overflow:hidden}.sitefoot{display:flex;flex-wrap:wrap;gap:2px var(--s-4);padding:6px var(--s-3);border-top:1px solid var(--c-line);background:var(--c-surface)}.sitefoot-line{margin:0;color:var(--c-ink-2);font-size:11px;line-height:1.45}.sitefoot-line strong{color:var(--c-ink);font-weight:600}.sitefoot-credit{color:var(--c-ink-2)}.sitefoot a{color:inherit;text-decoration:underline;text-underline-offset:2px}.sitefoot a:hover{color:var(--c-ink)}.topbar{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s-3);min-width:0;padding:0 var(--s-3);background:var(--c-surface);border-bottom:1px solid var(--c-line)}.brand{display:flex;align-items:center;gap:var(--s-2);min-width:0}.brand-mark{height:26px;aspect-ratio:542 / 617;flex:none;background-color:var(--c-ink);-webkit-mask:url(/brand/mark-small.svg) no-repeat center / contain;mask:url(/brand/mark-small.svg) no-repeat center / contain}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-name{font-size:var(--t-small);font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:var(--t-micro);color:var(--c-ink-3);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-lead{display:flex;align-items:center;gap:var(--s-3);min-width:0}.support{display:flex;align-items:center;gap:var(--s-3);min-width:0;justify-self:center}.support-pair{display:inline-flex;align-items:center;gap:var(--s-2);min-width:0}.support-line{font-size:var(--t-micro);color:var(--c-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.support-cta{display:inline-flex;align-items:center;gap:6px;flex:none;padding:8px var(--s-3);border:1px solid var(--c-accent);border-radius:var(--r-sm);background:var(--c-accent);color:var(--c-accent-ink);font-size:var(--t-small);font-weight:650;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color .14s ease,border-color .14s ease}.support-cta:hover{background:color-mix(in srgb,var(--c-accent) 88%,black);border-color:color-mix(in srgb,var(--c-accent) 88%,black)}.support-cta--licence{border-color:#a97f15;background:linear-gradient(180deg,#f8dc74,#e7bc41 48%,#cf9c20);color:#2b1f04;text-shadow:0 1px 0 rgba(255,255,255,.4);box-shadow:inset 0 1px #fff9,inset 0 -1px #7a540866,0 1px 3px #00000040}.support-cta--licence:hover{background:linear-gradient(180deg,#ffe994,#f2c94f 48%,#dca82a);border-color:#b8891a;box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #7a540866,0 2px 8px #deac2c73}.topbar-actions{display:flex;align-items:center;gap:var(--s-1);justify-self:end}.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}.progress[data-busy=true]:after{content:"";position:absolute;inset-block:0;width:32%;background:var(--c-accent);animation:sweep 1.1s cubic-bezier(.4,0,.2,1) infinite}@keyframes sweep{0%{transform:translate(-110%)}to{transform:translate(420%)}}.workspace{position:relative;display:grid;grid-template-columns:var(--panel-left) minmax(0,1fr) var(--panel-right);min-height:0}.panel-host{min-height:0;overflow-y:auto;overscroll-behavior:contain;background:var(--c-surface);scrollbar-width:thin}.panel-host-left{border-right:1px solid var(--c-line)}.panel-host-right{border-left:1px solid var(--c-line)}.stage{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background-color:var(--c-bg);overflow:hidden}.viewer-host{position:relative;flex:1 1 0;min-height:120px}.viewer-host{background-image:radial-gradient(var(--c-grid) 1px,transparent 1px);background-size:24px 24px;background-position:center}.viewer-host canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.scrim{display:none}.panel{display:flex;flex-direction:column}.panel-section{border-bottom:1px solid var(--c-line)}.section-head{display:flex;align-items:center;gap:var(--s-2);width:100%;min-height:40px;padding:0 var(--s-3);background:none;border:0;color:var(--c-ink-2);cursor:pointer;text-align:left}.section-head:hover{color:var(--c-ink);background:var(--c-surface-2)}.section-title{flex:1;font-size:var(--t-micro);font-weight:650;letter-spacing:.09em;text-transform:uppercase}.section-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:999px;background:var(--c-surface-3);color:var(--c-ink-2);font-family:var(--f-mono);font-size:10px;letter-spacing:.02em}.section-badge:has(.section-badge-art){padding:2px 4px}.section-badge-art{display:block;width:14px;height:14px;object-fit:contain;flex:none}.section-chevron{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .12s ease}.panel-section[data-open=false] .section-chevron{transform:rotate(-45deg) translate(-1px,1px)}.section-body{padding:var(--s-1) var(--s-3) var(--s-3);display:flex;flex-direction:column}.divider{height:1px;margin:var(--s-2) 0;background:var(--c-line)}.hint{margin:var(--s-1) 0 var(--s-2);color:var(--c-ink-3);font-size:var(--t-small);line-height:1.5}.field{display:flex;flex-direction:column;gap:var(--s-1);padding:7px 0}.field[data-disabled=true],.segmented[data-disabled=true]{opacity:.45;pointer-events:none}.field-head{display:flex;align-items:center;gap:var(--s-1);min-height:20px}.field-label{flex:1;color:var(--c-ink-2);font-size:var(--t-small);font-weight:500;letter-spacing:.005em}.field-value{display:flex;align-items:center;gap:3px}.field-readout{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--c-ink-3);letter-spacing:-.01em}.unit{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--c-ink-3)}.num{width:62px;height:24px;padding:0 5px;background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-sm);font-family:var(--f-mono);font-size:var(--t-small);text-align:right;letter-spacing:-.02em;-moz-appearance:textfield}.num::-webkit-outer-spin-button,.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num:hover{border-color:var(--c-line-strong)}.num:focus{border-color:var(--c-accent);background:var(--c-surface)}.num-standalone{width:100%;min-width:0;text-align:center}.text-input{height:32px;padding:0 var(--s-2);background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-sm);font-size:var(--t-base)}.text-input:hover{border-color:var(--c-line-strong)}.text-input:focus{border-color:var(--c-accent);background:var(--c-surface);outline:none;box-shadow:0 0 0 3px var(--c-accent-soft)}.range{--fill: 0%;width:100%;height:18px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}.range::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,var(--c-accent) var(--fill),var(--c-surface-3) var(--fill))}.range::-moz-range-track{height:4px;border-radius:999px;background:linear-gradient(to right,var(--c-accent) var(--fill),var(--c-surface-3) var(--fill))}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;margin-top:-5.5px;border-radius:50%;background:var(--c-surface);border:1.5px solid var(--c-ink-2);box-shadow:0 1px 2px #0000002e;transition:border-color .1s ease,transform .1s ease}.range::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--c-surface);border:1.5px solid var(--c-ink-2);box-shadow:0 1px 2px #0000002e}.range:hover::-webkit-slider-thumb,.range:focus-visible::-webkit-slider-thumb{border-color:var(--c-accent)}.range:hover::-moz-range-thumb,.range:focus-visible::-moz-range-thumb{border-color:var(--c-accent)}.range:active::-webkit-slider-thumb{transform:scale(1.08)}.range:disabled{cursor:default}.segmented{display:flex;gap:2px;padding:2px;background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md)}.segmented-wrap{flex-wrap:wrap}.segment{display:flex;align-items:center;justify-content:center;gap:5px;flex:1 1 auto;min-width:0;min-height:28px;padding:0 var(--s-2);background:none;border:0;border-radius:var(--r-sm);color:var(--c-ink-2);font-size:var(--t-small);font-weight:500;white-space:nowrap;cursor:pointer}.segmented-wrap .segment{flex:1 0 30%}.segment:hover{color:var(--c-ink);background:var(--c-surface-3)}.segment[aria-checked=true]{background:var(--c-surface);color:var(--c-ink);box-shadow:0 0 0 1px var(--c-accent-line),0 1px 1px #00000014}[data-theme=dark] .segment[aria-checked=true]{background:var(--c-surface-3)}.segment[aria-checked=true] .icon{color:var(--c-accent)}.segment:disabled{opacity:.4;cursor:default}.segment-icon{flex:0 0 auto;padding:0 var(--s-2)}.level-picker .segment{font-family:var(--f-mono);min-width:24px;padding:0 4px}.field-toggle{flex-direction:row;align-items:center;gap:var(--s-2)}.field-toggle .field-head{flex:1}.switch{position:relative;flex:none;width:38px;height:22px;padding:0;border:1px solid var(--c-line-strong);border-radius:999px;background:var(--c-surface-3);cursor:pointer;transition:background .12s ease,border-color .12s ease}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--c-surface);box-shadow:0 1px 2px #00000040;transition:transform .13s cubic-bezier(.4,0,.2,1)}.field-toggle[data-on=true] .switch{background:var(--c-accent);border-color:var(--c-accent)}.field-toggle[data-on=true] .switch-thumb{transform:translate(16px)}.help{display:grid;place-items:center;width:15px;height:15px;padding:0;border:1px solid var(--c-line-strong);border-radius:50%;background:none;color:var(--c-ink-3);cursor:help;flex:none}.help:hover{color:var(--c-accent);border-color:var(--c-accent)}.help-glyph{font-size:9px;font-weight:700;line-height:1}.tooltip{position:fixed;z-index:60;max-width:258px;padding:var(--s-2) 10px;background:var(--c-ink);color:var(--c-bg);border-radius:var(--r-md);font-size:var(--t-small);line-height:1.4;box-shadow:var(--c-shadow);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 90ms ease}.tooltip[data-open=true]{opacity:1;visibility:visible}.popover{position:fixed;z-index:70;padding:var(--s-3);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--c-shadow)}.popover-title{margin-bottom:var(--s-2);font-size:var(--t-micro);font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3)}.swatch-pop{width:214px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 11px;background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-md);color:var(--c-ink);font-size:var(--t-small);font-weight:550;white-space:nowrap;cursor:pointer;transition:background .1s ease,border-color .1s ease}.btn:hover:not(:disabled){background:var(--c-surface-2);border-color:var(--c-ink-3)}.btn:active:not(:disabled){background:var(--c-surface-3)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--c-accent) 88%,black);border-color:color-mix(in srgb,var(--c-accent) 88%,black)}.btn-ghost{background:none;border-color:transparent;color:var(--c-ink-2)}.btn-ghost:hover:not(:disabled){background:var(--c-surface-2);border-color:var(--c-line);color:var(--c-ink)}.btn-danger{color:var(--c-err);border-color:var(--c-line-strong)}.btn-icon{width:34px;min-height:34px;padding:0}.button-row{display:flex;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-1) 0}.button-row .btn{flex:1 1 auto}a.btn{text-decoration:none}.btn-boost{background:#00ae42;border-color:#00ae42;color:#fff}.btn-boost:hover:not(:disabled){background:color-mix(in srgb,#00ae42 86%,white);border-color:color-mix(in srgb,#00ae42 74%,white);color:#fff}.history-row .btn{flex:1 1 0}.swatch-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.swatch{--swatch: #888;position:relative;aspect-ratio:1;min-height:26px;padding:0;border:1px solid rgba(0,0,0,.18);border-radius:var(--r-sm);background:var(--swatch);cursor:pointer}.swatch[data-dark=true]{border-color:#ffffff29}.swatch:hover{transform:scale(1.06)}.swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--c-surface),0 0 0 3.5px var(--c-accent)}.swatch[aria-checked=true]:after{content:"";position:absolute;left:50%;top:46%;width:5px;height:9px;border:2px solid rgba(0,0,0,.72);border-top:0;border-left:0;transform:translate(-50%,-50%) rotate(42deg)}.swatch[aria-checked=true][data-dark=true]:after{border-color:#ffffffe6}.swatch-trigger{width:30px;height:30px;min-height:30px;aspect-ratio:auto;flex:none}.field-swatch{flex:0 0 auto;min-width:0}.swatch-line{display:flex;align-items:center;gap:var(--s-2);min-width:0}.swatch-line .field-readout{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-custom{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2)}.color-custom-label{font-size:var(--t-small);color:var(--c-ink-2)}.color-input{width:34px;height:26px;padding:0;border:1px solid var(--c-line-strong);border-radius:var(--r-sm);background:none;cursor:pointer}.color-input::-webkit-color-swatch-wrapper{padding:2px}.color-input::-webkit-color-swatch{border:none;border-radius:2px}.color-readout{margin-left:auto;font-family:var(--f-mono);font-size:var(--t-micro);color:var(--c-ink-3)}.source-tabs{margin-bottom:var(--s-2)}.source-pane{display:flex;flex-direction:column;gap:var(--s-1)}.sample-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1);padding-top:var(--s-2)}.sample-label{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-3);margin-right:var(--s-1)}.sample-row .btn{min-height:26px;padding:0 8px;font-size:var(--t-micro);flex:0 0 auto}.icon-picker{display:flex;flex-direction:column;gap:var(--s-2)}.icon-search{height:30px}.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;max-height:232px;overflow-y:auto;padding:2px;scrollbar-width:thin}.icon-cell{display:grid;place-items:center;aspect-ratio:1;padding:0;background:var(--c-surface-2);border:1px solid transparent;border-radius:var(--r-md);color:var(--c-ink-2);cursor:pointer}.icon-cell:hover{background:var(--c-surface-3);color:var(--c-ink)}.icon-cell[aria-checked=true]{background:var(--c-accent-soft);border-color:var(--c-accent-line);color:var(--c-accent)}.emoji-art{display:block;width:100%;height:100%;object-fit:contain;min-width:0;min-height:0}.emoji-cell{position:relative;padding:4px}.emoji-cell .emoji-art{width:24px;height:24px}.emoji-cell-mini .emoji-art{width:22px;height:22px}.emoji-count{position:absolute;right:2px;bottom:1px;font-family:var(--f-mono);font-size:9px;line-height:1;color:var(--c-ink-3);pointer-events:none}.emoji-cell[aria-checked=true] .emoji-count{color:var(--c-accent)}.emoji-current{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--s-2);padding:var(--s-2);background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md)}.emoji-current-art{width:40px;height:40px;flex:0 0 auto}.emoji-current-text{display:flex;flex-direction:column;gap:2px;min-width:0}.emoji-current-name{font-size:var(--t-small);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emoji-current-meta{white-space:normal;overflow-wrap:anywhere}.emoji-groups{display:flex;flex-direction:column;gap:var(--s-1)}.emoji-recent{gap:4px;padding-top:0}.emoji-result-label{margin:0}.emoji-grid{grid-template-columns:repeat(7,1fr);max-height:208px}.emoji-empty,.emoji-message,.emoji-notice{margin:0}.emoji-notice{padding:var(--s-2);background:var(--c-surface-2);border:1px solid var(--c-line);border-left:3px solid var(--c-accent);border-radius:var(--r-md);color:var(--c-ink-2)}.emoji-custom-row{display:flex;align-items:center;gap:var(--s-1)}.emoji-input{flex:1 1 auto;min-width:0}.emoji-suggestions{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:var(--s-2)}.emoji-suggestion{display:flex;flex-direction:column;align-items:center;gap:2px;aspect-ratio:auto;width:64px;padding:var(--s-1) 2px;font-size:var(--t-micro);line-height:1.15}.emoji-suggestion-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--c-ink-3);text-align:center;word-break:break-word}.emoji-suggestion:hover .emoji-suggestion-name{color:var(--c-ink-2)}.emoji-proposal-art,.emoji-proposal .emoji-art{width:28px;height:28px}.emoji-proposal{display:flex;align-items:center;gap:var(--s-1);flex:0 0 auto}.emoji-proposal-name{font-size:var(--t-micro);color:var(--c-ink-3);max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-list{display:flex;flex-direction:column;gap:var(--s-2)}.layer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-2);align-items:center;padding:var(--s-2);background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md)}.layer-info{display:flex;flex-direction:column;gap:3px;min-width:0}.layer-name{font-size:var(--t-small);font-weight:600}.layer-meta{display:flex;align-items:center;gap:5px;font-family:var(--f-mono);font-size:10px;color:var(--c-ink-3)}.source-chip{--swatch: #888;width:9px;height:9px;border-radius:2px;background:var(--swatch);border:1px solid rgba(0,0,0,.2);flex:none}.source-chip[data-dark=true]{border-color:#ffffff40}.coverage{display:block;height:3px;border-radius:999px;background:var(--c-surface-3);overflow:hidden}.coverage-fill{display:block;height:100%;background:var(--c-ink-3)}.layer .level-picker{grid-column:1 / -1}.field-row .row-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:4px}.row-tag{font-family:var(--f-mono);font-size:10px;color:var(--c-ink-3)}.placement-list{display:flex;flex-direction:column}.trace-preview{position:relative;display:grid;place-items:center;border:1px solid var(--c-line);border-radius:var(--r-md);background-color:var(--c-surface-2);background-image:radial-gradient(var(--c-grid) 1px,transparent 1px);background-size:12px 12px;overflow:hidden}.trace-canvas{display:block;width:100%}.trace-empty{position:absolute;font-size:var(--t-small);color:var(--c-ink-3)}.status-line{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) 0;font-size:var(--t-small)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--c-ink-3);flex:none}.status-line[data-tone=busy] .status-dot{background:var(--c-accent);animation:pulse 1s ease-in-out infinite}.status-line[data-tone=ok] .status-dot{background:var(--c-ok)}.status-line[data-tone=error] .status-dot{background:var(--c-err)}.status-line[data-tone=error] .status-text{color:var(--c-err)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.status-text{color:var(--c-ink-2);overflow-wrap:anywhere}.stats{display:grid;gap:2px}.stat{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);padding:3px 0;border-bottom:1px dotted var(--c-line);font-size:var(--t-small)}.stat-key{color:var(--c-ink-3)}.stat-value{font-family:var(--f-mono);font-size:var(--t-small);letter-spacing:-.02em}.warning-block{margin-top:var(--s-2)}.warning-title{font-size:var(--t-micro);font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--c-warn);margin-bottom:var(--s-1)}.warnings{display:flex;flex-direction:column;gap:var(--s-1)}.warning{padding:5px var(--s-2);border-left:2px solid var(--c-warn);background:var(--c-surface-2);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:var(--t-small);color:var(--c-ink-2);line-height:1.4}.guide{width:min(520px,calc(100vw - 2rem));padding:var(--s-5);border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface);color:var(--c-ink);box-shadow:var(--c-shadow)}.guide::backdrop{background:#0a0a0c80;backdrop-filter:blur(2px)}.guide-head{display:flex;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4)}.guide-title{flex:1;font-size:var(--t-lg);font-weight:650;letter-spacing:-.015em}.guide-steps{display:flex;flex-direction:column;gap:var(--s-4)}.guide-step{display:flex;gap:var(--s-3)}.guide-step-index{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--c-accent-soft);border:1px solid var(--c-accent-line);color:var(--c-accent);font-family:var(--f-mono);font-size:var(--t-small);font-weight:600}.guide-step-title{font-size:var(--t-base);font-weight:650;margin-bottom:2px}.guide-step-body{font-size:var(--t-base);color:var(--c-ink-2);line-height:1.5}.guide-note{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--c-line);font-size:var(--t-small);color:var(--c-ink-3)}.guide-foot{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-4)}.checkbox{display:flex;align-items:center;gap:var(--s-2);margin-right:auto;font-size:var(--t-small);color:var(--c-ink-2);cursor:pointer}.checkbox input{width:15px;height:15px;accent-color:var(--c-accent);cursor:pointer}.quick-host{flex:0 1 auto;min-width:0;max-height:38%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-top:1px solid var(--c-line);background:var(--c-surface)}.quickbar{display:flex;align-items:start;gap:var(--s-3);padding:var(--s-2) var(--s-3)}.quickbar-common{display:flex;flex:1 1 340px;flex-wrap:wrap;align-items:start;gap:0 var(--s-3);min-width:0}.quickbar-colours{display:flex;gap:var(--s-3);flex:0 0 auto}.quickbar-sliders{display:flex;flex:1 1 260px;flex-wrap:wrap;gap:0 var(--s-3);min-width:0}.quickbar-sliders>.field{flex:1 1 150px;min-width:0}.quickbar-switches{flex:0 1 380px;min-width:0}.quickbar-switches .panel-section{border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface-2)}.quickbar-switches .section-head{border-radius:calc(var(--r-md) - 1px)}.quickbar-switches .section-head{min-height:34px}.quickbar-switches .section-body{padding:var(--s-1) var(--s-2) var(--s-2)}.quickbar .field{padding:2px 0}.drawer-toggle{display:none}@media(max-width:899px){.workspace{grid-template-columns:minmax(0,1fr)}.quick-host{max-height:46%}.quickbar{flex-direction:column;align-items:stretch}.quickbar-common,.quickbar-switches{flex:0 0 auto}.drawer-toggle{display:inline-flex}.brand-sub,.support-line,.support-cta-label{display:none}.support-cta{padding:7px}.panel-host{position:absolute;inset-block:0;z-index:30;width:min(360px,88vw);box-shadow:var(--c-shadow);transition:transform .18s cubic-bezier(.4,0,.2,1)}.panel-host-left{left:0;transform:translate(-101%)}.panel-host-right{right:0;transform:translate(101%)}.app[data-drawer=left] .panel-host-left,.app[data-drawer=right] .panel-host-right{transform:none}.scrim{display:block;position:absolute;inset:0;z-index:20;background:#0a0a0c66;opacity:0;pointer-events:none;transition:opacity .16s ease}.app:not([data-drawer=none]) .scrim{opacity:1;pointer-events:auto}}@media(pointer:coarse){.btn,.segment{min-height:38px}.num{height:32px}.swatch{min-height:32px}.icon-grid{grid-template-columns:repeat(5,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.b2-app [hidden],.b2-app[hidden]{display:none!important}.b2-app{display:grid;grid-template-columns:minmax(0,1fr) var(--b2-panel-w, 420px);grid-template-rows:minmax(200px,36vh) minmax(0,1fr);gap:var(--s-3);padding:var(--s-3);height:100dvh;box-sizing:border-box;background:var(--c-bg);color:var(--c-ink);font-family:var(--f-sans);font-size:var(--t-base)}@media(max-width:1023px){.b2-app{--b2-panel-w: 360px}}.b2-stage{display:contents}.b2-stage-editor{grid-area:1 / 1 / 3 / 2;min-width:0;min-height:0}.b2-stage-viewer{grid-area:1 / 2 / 2 / 3;position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--c-line);background:var(--c-surface-2)}.b2-panel{grid-area:2 / 2 / 3 / 3;min-height:0;display:flex;flex-direction:column;gap:var(--s-2);overflow:hidden}.b2-panel-body{display:flex;flex-direction:column;gap:var(--s-2);overflow-y:auto;overscroll-behavior:contain;padding-right:var(--s-1)}.b2-title{margin:0;font-size:var(--t-lg);letter-spacing:-.01em}.b2-sub{margin:0 0 var(--s-1);color:var(--c-ink-2);font-size:var(--t-small)}.b2-credit{margin:var(--s-3) 0 var(--s-5);color:var(--c-ink-3);font-size:var(--t-micro);line-height:1.5}.b2-stage-switch{display:none}.bubble-dims{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;transition:opacity .14s ease}.bubble-dims.is-hidden{opacity:0}.bubble-dims-line{fill:none;stroke:var(--c-ink-3);stroke-width:1;stroke-linecap:round;transform:translate(.5px,.5px)}.bubble-dims-label{position:absolute;top:0;left:0;pointer-events:none;white-space:nowrap;font-size:.7rem;font-weight:560;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--c-ink-2);background:color-mix(in srgb,var(--c-surface) 82%,transparent);border:1px solid var(--c-line);border-radius:5px;padding:.08rem .32rem;transition:opacity .14s ease}.bubble-dims-label.is-hidden{opacity:0}.b2-stage-viewer>canvas{position:absolute;inset:0;width:100%;height:100%}.b2-viewer-tools{position:absolute;left:var(--s-2);right:var(--s-2);bottom:var(--s-2);display:flex;flex-wrap:wrap;gap:var(--s-1);align-items:center;justify-content:center}.b2-click.is-pressing{transform:translateY(1px)}.b2-ruler{position:absolute;left:var(--s-2);top:var(--s-2);display:flex;align-items:center;gap:var(--s-1);color:var(--c-ink-2);font-size:var(--t-micro);pointer-events:none}.b2-ruler.is-hidden{opacity:0}.b2-ruler-bar{height:3px;border-left:1px solid currentColor;border-right:1px solid currentColor;border-bottom:1px solid currentColor}.b2-group{display:flex;flex-direction:column;gap:var(--s-2)}.b2-row-2,.b2-row-3{display:grid;gap:var(--s-2);align-items:end}.b2-row-2{grid-template-columns:1fr 1fr}.b2-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.b2-field{display:flex;flex-direction:column;gap:var(--s-1);min-width:0}.b2-field-label{color:var(--c-ink-2);font-size:var(--t-micro)}.b2-tools{position:sticky;top:0;z-index:2;padding-bottom:var(--s-1);background:var(--c-bg)}.b2-file{display:none}.b2-inspector{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-surface)}.b2-insp-title{margin:0;font-size:var(--t-body)}.b2-insp-hint{margin:0;color:var(--c-ink-3);font-size:var(--t-small)}.b2-insp-group{display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--c-line)}.b2-presets{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1)}.b2-presets .btn[data-on=true]{border-color:var(--c-accent-line);background:var(--c-accent-soft);color:var(--c-accent)}.b2-swatches,.b2-palette{display:flex;flex-wrap:wrap;gap:var(--s-1);align-items:center}.b2-palette{flex-direction:column;align-items:stretch}.b2-facts{margin:0;color:var(--c-ink-2);font-size:var(--t-micro);line-height:1.5}.b2-offer{display:none;flex-direction:column;gap:var(--s-2);padding:var(--s-2);border:1px solid var(--c-accent-line);border-radius:var(--r-md);background:var(--c-accent-soft)}.b2-offer.is-shown{display:flex}.b2-offer-note{margin:0;font-size:var(--t-small)}.b2-status-line{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-2) var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-surface)}.b2-bar{display:none;height:3px;border-radius:999px;background:var(--c-surface-3);overflow:hidden}.b2-bar.is-shown{display:block}.b2-bar-fill{height:100%;width:0;background:var(--c-accent);transition:width .12s linear}.b2-say{margin:0;font-size:var(--t-small);line-height:1.45}.b2-say.is-error{color:var(--c-err)}.b2-meta{margin:0;color:var(--c-ink-3);font-size:var(--t-micro)}.b2-notes-block{display:flex;flex-direction:column;gap:var(--s-1)}.b2-notes,.b2-warnings,.b2-legend{display:none;flex-direction:column;gap:var(--s-1)}.b2-notes.is-shown,.b2-warnings.is-shown,.b2-legend.is-shown{display:flex}.b2-note{display:flex;gap:var(--s-2);align-items:baseline;margin:0;padding:var(--s-2);border-radius:var(--r-md);border:1px solid var(--c-line);background:var(--c-surface-2);color:var(--c-ink-2);font-size:var(--t-micro);line-height:1.5;text-align:left}button.b2-note{width:100%;cursor:pointer;font-family:inherit}button.b2-note:hover{border-color:var(--c-line-strong)}.b2-note-title{flex:none;font-weight:600;color:var(--c-ink)}.b2-note.is-warn{border-color:color-mix(in srgb,var(--c-warn) 40%,var(--c-line))}.b2-note.is-warn .b2-note-title{color:var(--c-warn)}.b2-note.is-error{border-color:color-mix(in srgb,var(--c-err) 45%,var(--c-line))}.b2-note.is-error .b2-note-title{color:var(--c-err)}.b2-note.is-done{border-style:dashed}.b2-switch-total{margin:0;font-size:var(--t-body);font-weight:600}.b2-legend-row{display:flex;align-items:center;gap:var(--s-2)}.b2-legend-chip{width:18px;height:18px;flex:none;border-radius:var(--r-sm);border:1px solid var(--c-line-strong)}.b2-legend-text{font-size:var(--t-micro);color:var(--c-ink-2)}@media(max-width:859px){.b2-app{display:block;position:relative;padding:0;gap:0;--b2-tile-h: min(132px, calc(100dvh - var(--b2-sheet-h, 26vh) - var(--s-2) - var(--s-2)))}.b2-stage{display:block;position:absolute;inset:0;bottom:var(--b2-sheet-h, 26vh)}.b2-stage>.b2-stage-editor,.b2-stage>.b2-stage-viewer{position:absolute;inset:var(--s-2);border-radius:var(--r-lg)}.b2-stage[data-show=edit] .b2-stage-viewer,.b2-stage[data-show="3d"] .b2-stage-editor{inset:auto var(--s-2) var(--s-2) auto;width:104px;height:var(--b2-tile-h, 132px);box-shadow:var(--c-shadow);border:1px solid var(--c-line-strong);pointer-events:none;z-index:2}.b2-stage[data-show=edit] .b2-stage-viewer .b2-viewer-tools,.b2-stage[data-show=edit] .b2-stage-viewer .b2-ruler,.b2-stage[data-show="3d"] .b2-stage-editor .b2-overlay{display:none}.b2-stage[data-show="3d"] .b2-stage-viewer .b2-ruler{left:auto;right:var(--s-2)}.b2-stage[data-show="3d"] .b2-stage-viewer .b2-viewer-tools{right:calc(104px + var(--s-2));justify-content:flex-start}.b2-panel{display:none}.b2-stage-switch{position:absolute;top:var(--s-2);left:var(--s-2);z-index:3;display:flex;gap:var(--s-2);align-items:center;justify-content:space-between}.b2-pip-swap{position:fixed;right:var(--s-2);bottom:calc(var(--b2-sheet-h, 26vh) + var(--s-2));width:104px;height:var(--b2-tile-h, 132px);z-index:4;opacity:0}.b2-pip-swap:focus-visible{opacity:1;background:var(--c-accent-soft)}.b2-app>.b2-swap{display:none}.b2-panel-body{padding:0 var(--s-3) var(--s-5)}.b2-tools{background:var(--c-surface)}}@media(min-width:860px){.b2-pip-swap{display:none}.b2-stage[data-show="3d"] .b2-stage-viewer{grid-area:1 / 1 / 3 / 2}.b2-stage[data-show="3d"] .b2-stage-editor{grid-area:1 / 2 / 2 / 3}.b2-app>.b2-swap{grid-area:1 / 2 / 2 / 3;justify-self:end;align-self:start;margin:var(--s-2);z-index:3}.b2-app>.b2-swap.btn[aria-pressed=true]{border-color:var(--c-accent-line);background:linear-gradient(var(--c-accent-soft),var(--c-accent-soft)),var(--c-surface);color:var(--c-accent)}.b2-app>.b2-swap.btn[aria-pressed=true]:hover{border-color:var(--c-accent)}}.b2-sheet{position:absolute;left:0;right:0;bottom:0;z-index:5;height:var(--b2-sheet-h, 26vh);display:flex;flex-direction:column;border-top:1px solid var(--c-line);border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--c-surface);box-shadow:var(--c-shadow);transition:height .16s ease}.b2-sheet.is-dragging{transition:none}.b2-sheet-handle{flex:none;display:flex;align-items:center;justify-content:center;height:28px;border:0;background:none;cursor:grab;touch-action:none}.b2-sheet-grip{width:44px;height:4px;border-radius:999px;background:var(--c-line-strong)}.b2-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(prefers-reduced-motion:reduce){.b2-sheet,.b2-bar-fill{transition:none}}@media(min-width:860px){.b2-sheet{display:none}}.b2-editor{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:var(--radius-lg, 14px);background:var(--c-surface-2, #f7f7f4);background-image:linear-gradient(var(--c-grid, rgba(24, 25, 28, .055)) 1px,transparent 1px),linear-gradient(90deg,var(--c-grid, rgba(24, 25, 28, .055)) 1px,transparent 1px);background-size:24px 24px;touch-action:none;user-select:none;-webkit-user-select:none}.b2-editor:focus-visible{outline:2px solid var(--c-accent, #cf4318);outline-offset:-2px}.b2-canvas{display:block;width:100%;height:100%}.b2-canvas *{vector-effect:non-scaling-stroke}.b2-body{fill:var(--b2-body, #f4c430);fill-opacity:.5;stroke:var(--b2-body-line, #d9a916);stroke-width:1.5}.b2-well{fill:var(--c-ink, #18191c);fill-opacity:.16;stroke:none;fill-rule:evenodd}.b2-letter path{stroke:var(--c-ink, #18191c);stroke-opacity:.35;stroke-width:1.2;cursor:grab}.b2-letter.is-selected path{stroke:var(--c-accent, #cf4318);stroke-opacity:1;stroke-width:2}.b2-letter.is-pinned path{stroke-dasharray:6 3}.b2-letter.is-fused path{fill-opacity:.35;stroke-dasharray:2 3}.b2-letter.is-yielding path{stroke-dasharray:3 2;stroke-opacity:.8}.b2-ghost{fill:none;stroke:var(--c-ink-3, #8a8d94);stroke-width:1.2;stroke-dasharray:4 3;animation:b2-ghost-fade .6s ease-out forwards;pointer-events:none}@keyframes b2-ghost-fade{0%{opacity:.85}to{opacity:0}}@media(prefers-reduced-motion:reduce){.b2-ghost{animation:none;opacity:.5}}.b2-mark{pointer-events:none}.b2-mark-box{fill:none;stroke:var(--c-ink, #18191c);stroke-width:1.1;stroke-dasharray:5 3;opacity:.75}.b2-mark-num{fill:var(--c-ink, #18191c);font-size:11px;font-weight:600;opacity:.75;font-family:inherit}.b2-mark.is-wall .b2-mark-box,.b2-mark.is-wall .b2-mark-num{stroke:var(--c-warn, #9a6a00);fill:var(--c-warn, #9a6a00);opacity:1}.b2-mark.is-wall .b2-mark-box{fill:none}.b2-mark.is-off .b2-mark-box,.b2-mark.is-off .b2-mark-num{stroke:var(--c-err, #b8322a);fill:var(--c-err, #b8322a);opacity:1}.b2-mark.is-off .b2-mark-box{fill:none;stroke-width:1.8}.b2-frame-box{fill:none;stroke:var(--c-accent, #cf4318);stroke-width:1.4;stroke-dasharray:6 4;opacity:.9}.b2-frame-stalk{stroke:var(--c-accent, #cf4318);stroke-width:1.4}.b2-frame-centre{fill:var(--c-accent, #cf4318)}.b2-handle{fill:var(--c-surface, #fff);stroke:var(--c-accent, #cf4318);stroke-width:2}.b2-handle-corner{cursor:nwse-resize}.b2-handle-edge{cursor:ns-resize}.b2-handle-knob{cursor:grab}.b2-overlay{position:absolute;inset:0;pointer-events:none;font-size:var(--t-small, .75rem)}.b2-chip{position:absolute;transform:translate(-50%,-160%);padding:.1rem .4rem;border-radius:999px;border:1px solid currentColor;background:var(--c-surface, #fff);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.3}.b2-chip.is-ok{color:var(--c-ok, #1f7a46)}.b2-chip.is-tight{color:var(--c-warn, #9a6a00)}.b2-chip.is-touch{color:var(--c-err, #b8322a)}.b2-status{position:absolute;left:.75rem;right:.75rem;bottom:.5rem;margin:0;color:var(--c-ink-2, #55585f);min-height:1.2em;text-wrap:balance}@media(max-width:859px){.b2-handle{stroke-width:2.5}.b2-chip{font-size:var(--t-micro, .6875rem)}}.field-dpad .field-head{margin-bottom:var(--s-1)}.dpad-body{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}.dpad{display:grid;grid-template-columns:repeat(3,26px);grid-template-rows:repeat(3,26px);gap:2px;padding:2px;flex:none;background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md)}.dpad[data-disabled=true]{opacity:.45;pointer-events:none}.dpad-key{display:grid;place-items:center;padding:0;background:none;border:0;border-radius:var(--r-sm);color:var(--c-ink-2);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.dpad-key:hover{background:var(--c-surface-3);color:var(--c-ink)}.dpad-key[data-active=true]{background:var(--c-accent-soft);color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent-line)}.dpad-key[data-blocked=true]{color:var(--c-warn)}.dpad-up{grid-area:1 / 2}.dpad-left{grid-area:2 / 1}.dpad-hub{grid-area:2 / 2;display:grid;place-items:center}.dpad-hub:after{content:"";width:4px;height:4px;border-radius:50%;background:var(--c-ink-3)}.dpad-right{grid-area:2 / 3}.dpad-down{grid-area:3 / 2}.dpad-readout{display:grid;grid-template-columns:auto 72px auto;align-items:center;justify-content:start;gap:3px var(--s-1);flex:0 1 auto;min-width:0}.dpad-readout .num-standalone{text-align:right}.dpad-readout .row-tag{width:9px}.dpad-note{margin-top:var(--s-1);color:var(--c-warn);font-size:var(--t-small);line-height:1.4}.dpad-note:empty{display:none}.dpad-actions{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2)}.dpad-auto{display:inline-flex}.spinpad{display:grid;grid-template-columns:repeat(2,26px);grid-template-rows:26px;gap:2px;padding:2px;flex:none;background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--r-md)}.spinpad[data-disabled=true]{opacity:.45;pointer-events:none}.spinpad-key{display:grid;place-items:center;padding:0;background:none;border:0;border-radius:var(--r-sm);color:var(--c-ink-2);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.spinpad-key:hover{background:var(--c-surface-3);color:var(--c-ink)}.spinpad-key[data-active=true]{background:var(--c-accent-soft);color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent-line)}.spinpad-key[data-blocked=true]{color:var(--c-warn)}.spinpad-anticlockwise{grid-area:1 / 1}.spinpad-clockwise{grid-area:1 / 2}
