@import"https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap";:root{color-scheme:dark;--bg: #121317;--bg-canvas: #0C0D10;--surface: #191B21;--surface-2: #23262E;--surface-hi: #2B2F38;--accent: #FFFFFF;--accent-press: #C9CDD6;--accent-ink: #121317;--ink: #E8EAF0;--ink-2: #9297A3;--ink-3: #5B606B;--line: rgba(255,255,255,.08);--line-strong: rgba(255,255,255,.16);--focus: #FFFFFF;--knob: #E8EAF0;--handle-chip: #FFFFFF;--checker-a: #191B21;--checker-b: #23262E;--backdrop: var(--bg-canvas);--glass: rgba(22,24,29,.62);--glass-2: rgba(255,255,255,.06);--glass-line: rgba(255,255,255,.11);--glass-blur: blur(30px) saturate(1.5);--glass-blur-sm: blur(16px) saturate(1.4);--handle: #ffffff;--handle-ring: rgba(0,0,0,.42);--r-panel: 20px;--r-card: 16px;--r-ctl: 10px;--r-pill: 999px;--r-sub: 12px;--panel-inset-x: 16px;--section-pad-top: 20px;--section-pad-bottom: 24px;--header-gap: 14px;--row-gap: 14px;--group-gap: 24px;--field-label-gap: 6px;--field-group-gap: 20px;--ctl-h: 28px;--card-pad: 12px;--card-gap: 16px;--hit-min: 24px;--shadow-card: 0 8px 24px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.05);--shadow-pop: 0 16px 40px rgba(0,0,0,.62), inset 0 0 0 1px rgba(255,255,255,.06);--font-body: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-num: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}:root[data-theme=light]{color-scheme:light;--bg:#E7E7EA;--bg-canvas:#E9E9EB;--surface:#F4F3F0;--surface-2:#EAE9E5;--surface-hi:#FFFFFF;--accent:#1B1B1B;--accent-press:#3A3D45;--accent-ink:#FFFFFF;--focus:#1B1B1B;--ink:#1B1B1B;--ink-2:#8C8C8C;--ink-3:#B4B4B0;--line:rgba(0,0,0,.08);--line-strong:rgba(0,0,0,.16);--knob:#FFFFFF;--checker-a:#FFFFFF;--checker-b:#DFDFE4;--shadow-card:0 8px 24px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-pop:0 12px 32px rgba(0,0,0,.14);--glass: rgba(255,255,255,.7);--glass-2: rgba(0,0,0,.04);--glass-line: rgba(0,0,0,.1);--glass-blur: blur(30px) saturate(1.5);--glass-blur-sm: blur(16px) saturate(1.4);--handle: #ffffff;--handle-ring: rgba(0,0,0,.35)}:root[data-theme=dark]{color-scheme:dark;--glass: rgba(22,24,29,.62);--glass-2: rgba(255,255,255,.06);--glass-line: rgba(255,255,255,.11);--glass-blur: blur(30px) saturate(1.5);--glass-blur-sm: blur(16px) saturate(1.4);--handle: #ffffff;--handle-ring: rgba(0,0,0,.42)}.num,output,input[type=number]{font-family:var(--font-num);letter-spacing:.5px}*{box-sizing:border-box}:root{--dock-w: 330px;--dock-reserve-left: 330px;--dock-reserve-bottom: 0px;--sheet-h: 0px}.ui-icon{vertical-align:-.125em;flex-shrink:0}body,#root{margin:0;height:100vh;font-family:var(--font-body);background:var(--bg);color:var(--ink)}.editor{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.editor__body{position:relative;flex:1;min-height:0}.app{position:relative;height:100%;overflow:hidden;background:var(--bg)}.dock-foot__svg{position:relative;display:inline-flex}.export-drawer{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);white-space:nowrap}@media (prefers-reduced-motion: no-preference){.export-drawer{animation:pop-in .14s ease-out}}.export-drawer__opt{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink);cursor:pointer}.export-drawer__actions{display:flex;gap:8px}.dock-foot .export-drawer{left:auto;right:0;transform:none;white-space:normal;max-width:240px}.tb-color{display:inline-flex;align-items:center;gap:5px}.tb-color__lbl{font-family:var(--font-body);font-size:11px;color:var(--ink-2);white-space:nowrap}.tb-color .dropdown-ctl{margin:0;grid-template-columns:1fr}.tb-color .dropdown-select{padding:5px 10px}.stage{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px 24px calc(var(--dock-reserve-bottom) + 24px) calc(var(--dock-reserve-left) + 34px);overflow:auto;background:var(--bg-canvas)}.preview-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden}.preview-inner{position:relative;max-width:100%;max-height:100%}.preview-canvas{display:block;width:100%;height:100%;background:transparent}.preview-svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.preview-svg svg{display:block;width:100%;height:100%}.handle-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:all;overflow:visible}.blob-handle{fill:transparent;stroke:var(--accent);stroke-width:1.5;cursor:grab;transition:width 80ms ease,height 80ms ease,x 80ms ease,y 80ms ease,stroke-width 80ms ease}.blob-handle--hover{fill:var(--accent);fill-opacity:.25;stroke-width:2;cursor:grab}.blob-handle:active{cursor:grabbing}.panel{position:absolute;top:10px;left:10px;bottom:10px;width:var(--dock-w);z-index:25;overflow-y:auto;overflow-x:visible;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-panel);box-shadow:var(--shadow-pop),inset 0 1px #ffffff14;padding:0;color:var(--ink);display:flex;flex-direction:column;gap:0}.dock__header,.dock__footer{padding:14px var(--panel-inset-x)}.dock__header{border-bottom:1px solid var(--glass-line)}.dock__footer{margin-top:auto;border-top:1px solid var(--glass-line)}.dock__grip,.dock-collapse{display:none}@media (min-width: 768px) and (max-width: 1023px){.panel{transition:transform .22s cubic-bezier(.4,0,.2,1)}.panel--collapsed{transform:translate(calc(-100% - 16px));pointer-events:none}.dock-collapse{display:grid;place-items:center;position:fixed;top:14px;right:14px;z-index:40;width:40px;height:40px;padding:0;border:1px solid var(--glass-line);border-radius:var(--r-ctl);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);color:var(--ink-2);box-shadow:var(--shadow-card);cursor:pointer}.dock-collapse:hover,.dock-collapse[aria-pressed=true]{color:var(--ink)}}@media (max-width: 767px){:root{--dock-w: 0px;--dock-reserve-left: 0px;--dock-reserve-bottom: 55vh;--sheet-h: 55vh}.panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:var(--sheet-h);max-height:90vh;border-radius:var(--r-panel) var(--r-panel) 0 0;border-bottom:none;overscroll-behavior:contain;transition:height .2s cubic-bezier(.4,0,.2,1)}.panel--dragging{transition:none}.dock__grip{display:flex;position:sticky;top:0;z-index:3;align-items:center;justify-content:center;height:24px;flex:none;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--r-panel) var(--r-panel) 0 0;cursor:grab;touch-action:none}.dock__grip:active{cursor:grabbing}.dock__grip-bar{width:36px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 30%,transparent)}.dock__footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}@media (max-width: 767px) and (prefers-reduced-motion: reduce){.panel{transition:none}}@media (prefers-reduced-motion: reduce){.panel--collapsed,.panel{transition:none}}.dock-head{display:flex;flex-direction:column;gap:10px}.dock-head__row{display:flex;align-items:center;gap:12px}.dock-head__seed{flex-shrink:0;display:inline-flex;align-items:center;gap:5px}.dock-head .tb-color--grow,.dock-head .tb-color--grow .dropdown-ctl{flex:1;min-width:0}.dock-foot{display:flex;flex-direction:column;gap:12px}.dock-foot__transport{display:flex;align-items:center;gap:8px}.dock-foot__transport-play{flex:none;width:24px;height:24px;padding:0;display:grid;place-items:center}.dock-foot__transport-play svg{display:block;margin-left:1px}.dock-foot__transport-scrub{flex:1;min-width:0;margin:0}.dock-foot__transport-time{flex:none;font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap}.dock-foot__preview{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px}.dock-foot__png{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--glass-line);padding-top:12px}.dock-foot__export{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dock-foot__png button,.dock-foot__export>button,.dock-foot__svg,.dock-foot__svg>button{width:100%}.dock-foot__svg>button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.panel-btn{padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer;transition:background .12s ease}.panel-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.add-select{width:100%;padding:9px 26px 9px 12px;border:1px dashed var(--line);border-radius:var(--r-ctl);background:transparent;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.add-select:hover{background-color:color-mix(in srgb,var(--ink) 5%,transparent);border-color:color-mix(in srgb,var(--ink) 30%,transparent);color:var(--ink)}.panel-section{display:flex;flex-direction:column;gap:var(--row-gap);padding:var(--section-pad-top) var(--panel-inset-x) var(--section-pad-bottom);border-bottom:1px solid var(--glass-line)}.panel-section:last-of-type{border-bottom:none}.panel-section:has(>h3.is-collapsed){padding-top:12px;padding-bottom:12px}.panel-section>h3,section>h3{font:700 10px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 65%,transparent);margin:0;display:flex;align-items:center;gap:6px}.section-actions{margin-left:auto;display:inline-flex;align-items:center;gap:4px}.section-reset,.section-collapse{display:inline-flex;align-items:center;justify-content:center;width:var(--hit-min);height:var(--hit-min);padding:0;background:transparent;border:1px solid transparent;border-radius:var(--r-ctl);color:var(--ink-3);cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease,opacity .12s ease,transform .18s ease}.section-reset:hover,.section-collapse:hover{color:var(--ink);background:var(--glass-2);border-color:var(--line)}.section-reset{opacity:0}.panel-section:hover .section-reset,.section-reset:focus-visible{opacity:1}.is-collapsed .section-collapse{transform:rotate(-90deg)}section>h3.is-collapsed{margin-bottom:0}section>h3.is-collapsed~*{display:none!important}.ctl{display:grid;grid-template-columns:96px 1fr 48px;align-items:center;gap:8px;font-size:12px;min-height:var(--ctl-h);margin:0;font-family:var(--font-body)}.ctl input[type=range]{width:100%}.ctl-cluster{display:flex;flex-direction:column;gap:var(--row-gap);margin-top:calc(var(--group-gap) - var(--row-gap))}.ctl-label,.ctl>span:first-child{font-size:11px;color:color-mix(in srgb,var(--ink) 76%,transparent)}.ctl .num-field{font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--ink) 90%,transparent)}.ctl-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.ctl-info{flex:none;width:12px;height:12px;opacity:.4;border-radius:50%;border:1px solid var(--line-strong);color:var(--ink-3);font-size:8px;font-style:normal;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:help}.ascii-ramp-input{grid-column:2 / 4;width:100%;min-width:0;padding:6px 8px;font-family:monospace;font-size:12px;letter-spacing:1px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink)}.text-block-input{grid-column:1 / 4;width:100%;min-width:0;padding:6px 8px;font-family:var(--font-body);font-size:12px;line-height:1.35;resize:vertical;min-height:46px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink)}.num-field{width:100%;min-width:0;background:transparent;border:1px solid transparent;border-radius:var(--r-ctl);padding:3px 5px;text-align:right;color:var(--ink);cursor:text;transition:background .12s ease,border-color .12s ease}.num-field:hover{background:var(--surface-2)}.num-field:focus,.num-field:focus-visible{outline:none;background:var(--surface-hi);border-color:var(--accent)}.gradient-layer .num-field:hover{background:var(--surface-hi)}.ctl>*{min-width:0}.ctl input[type=file]{width:100%;max-width:100%;min-width:0}.ctl--toggle{grid-template-columns:1fr auto}.subgroup{display:flex;flex-direction:column;gap:var(--row-gap);background:var(--surface-2);border-radius:var(--r-sub);padding:var(--card-pad);margin-top:calc(var(--card-gap) - var(--row-gap))}.subgroup__label{display:block;font:700 10px/1 var(--font-body);letter-spacing:1px;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 65%,transparent);margin-bottom:0}.subgroup__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;background:none;border:0;cursor:pointer}.subgroup__toggle .subgroup__label{margin-bottom:0}.subgroup__chevron{font-size:9px;color:var(--ink-3);line-height:1}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:16px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0 var(--fill, 50%),var(--surface-2) var(--fill, 50%) 100%);box-shadow:inset 0 0 0 1px var(--line)}input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-4px;border-radius:4px;background:var(--accent);box-shadow:0 1px 2px #00000038;transition:transform .11s cubic-bezier(.34,1.56,.64,1),box-shadow .11s ease}input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:4px;background:var(--accent);transition:transform .11s cubic-bezier(.34,1.56,.64,1)}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.45);box-shadow:0 2px 7px #00000052}input[type=range]:hover::-moz-range-thumb{transform:scale(1.12)}input[type=range]:active::-moz-range-thumb{transform:scale(1.45)}input[type=range]:active{cursor:grabbing}@media (pointer: coarse){:root{--hit-min: 44px}.ctl{min-height:44px;align-content:center}.panel-btn,.add-select{min-height:44px}input[type=range]{height:44px}input[type=range]::-webkit-slider-runnable-track,input[type=range]::-moz-range-track,input[type=range]::-moz-range-progress{height:4px}input[type=range]::-webkit-slider-thumb{width:20px;height:20px;margin-top:-8px}input[type=range]::-moz-range-thumb{width:20px;height:20px}}button{font-family:var(--font-body);font-size:12px;background:var(--surface-2);color:var(--ink);border:none;border-radius:var(--r-ctl);padding:4px 10px;cursor:pointer;transition:background .12s ease,color .12s ease,transform .08s ease}button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}button:active,button.active,button.is-active{background:var(--accent);color:var(--accent-ink)}button:active{transform:translateY(1px) scale(.97)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}.num{font-family:var(--font-num);letter-spacing:.5px;color:var(--ink)}.blob-size-ring{fill:none;stroke:var(--accent);stroke-width:1.5;opacity:.7;cursor:nwse-resize}.blob-size-ring--hover{opacity:1;stroke-width:2}.blob-falloff-ring{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:3 4;opacity:.95}.blob-size-grip,.blob-falloff-grip{stroke:var(--handle);stroke-width:1.5}.blob-size-grip,.blob-falloff-grip{fill:var(--accent)}.blob-size-grip:hover,.blob-falloff-grip:hover{stroke:var(--accent)}.cluster-ring{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:5 4;opacity:.6;pointer-events:none}.cluster-ring-grip{fill:transparent;stroke:var(--accent);stroke-width:1.5;cursor:ns-resize}.cluster-ring-grip:hover{fill:var(--accent);fill-opacity:.2}.cluster-crosshair{stroke:var(--accent);stroke-width:1.5;pointer-events:none}.cluster-center{fill:transparent;stroke:var(--accent);stroke-width:1.5;cursor:move}.cluster-center:hover{fill:var(--accent);fill-opacity:.25}.stop-drag-label rect{fill:var(--glass);stroke:var(--glass-line);stroke-width:1;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.stop-drag-label text{fill:var(--ink);font-family:var(--font-num);font-weight:700}.layer-bbox{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.layer-grip{fill:var(--surface-hi);stroke:var(--accent);stroke-width:1.5}.layer-grip:hover{fill:var(--accent)}.layer-rot-stem{stroke:var(--accent);stroke-width:1.5;pointer-events:none}.layer-rot-knob{fill:var(--surface-hi);stroke:var(--accent);stroke-width:1.5}.canvas-drag-border{fill:none;stroke:var(--accent);stroke-width:2;pointer-events:none}.snap-guide{stroke:#ff2d9b;stroke-width:1.5;opacity:.9;pointer-events:none}.gradient-line{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;opacity:.55;pointer-events:none}.gradient-center{fill:var(--accent);fill-opacity:.3;stroke:var(--accent);stroke-width:1.5;cursor:move}.gradient-center:hover{fill-opacity:.5}.gradient-endpoint{fill:transparent;stroke:var(--accent);stroke-width:1.5;cursor:crosshair}.gradient-endpoint:hover{fill:var(--accent);fill-opacity:.25}.gradient-width{fill:var(--surface-hi);stroke:var(--accent);stroke-width:1.5;cursor:ew-resize}.gradient-width:hover{fill:var(--accent);fill-opacity:.5}.gradient-stop-swatch{stroke:var(--handle);stroke-width:2.5;cursor:grab}.gradient-stop-swatch:hover{stroke:var(--accent)}.gradient-stop-swatch:active{cursor:grabbing}.blob-size-grip,.blob-falloff-grip,.cluster-ring-grip,.cluster-center,.gradient-center,.gradient-endpoint,.gradient-width,.gradient-stop-swatch,.layer-grip,.layer-rot-knob{transform-box:fill-box;transform-origin:center;transition:transform .13s cubic-bezier(.34,1.56,.64,1),fill .12s ease,stroke .12s ease;cursor:grab}.blob-size-grip:hover,.blob-falloff-grip:hover,.cluster-ring-grip:hover,.cluster-center:hover,.gradient-center:hover,.gradient-endpoint:hover,.gradient-width:hover,.gradient-stop-swatch:hover,.layer-grip:hover,.layer-rot-knob:hover{transform:scale(1.25)}.blob-size-grip:active,.blob-falloff-grip:active,.cluster-ring-grip:active,.cluster-center:active,.gradient-center:active,.gradient-endpoint:active,.gradient-width:active,.gradient-stop-swatch:active,.layer-grip:active,.layer-rot-knob:active{transform:scale(1.5);cursor:grabbing}.stop-pick-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.stop-pick-anchor{position:absolute;transform:translate(-100px,16px);pointer-events:auto}.stop-pick-anchor .cp-trigger{display:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cp-host{position:relative;display:inline-block;vertical-align:middle}.cp-trigger{display:block;width:22px;height:22px;border-radius:var(--r-ctl);border:1px solid var(--line);padding:0;cursor:pointer;flex-shrink:0;background-image:conic-gradient(var(--ink-3) 90deg,transparent 0 180deg,var(--ink-3) 0 270deg,transparent 0);background-size:8px 8px;background-position:0 0;position:relative}.cp-trigger:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:inherit}.cp-trigger--round{border-radius:50%;width:22px;height:22px}.cp-popover{position:fixed;z-index:1000;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--r-card);box-shadow:var(--shadow-pop);border:1px solid var(--glass-line);padding:10px;width:200px;display:flex;flex-direction:column;gap:8px;-webkit-user-select:none;user-select:none;transform-origin:top left}@media (prefers-reduced-motion: no-preference){.cp-popover{animation:pop-in .14s ease-out}}.cp-sv{position:relative;width:100%;height:140px;border-radius:var(--r-ctl);overflow:hidden;cursor:crosshair;flex-shrink:0}.cp-sv-white{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,#fff,transparent);pointer-events:none}.cp-sv-black{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent,#000);pointer-events:none}.cp-thumb{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000059,0 1px 3px #00000040;transform:translate(-50%,-50%);pointer-events:none}.cp-slider{position:relative;height:12px;border-radius:var(--r-pill);cursor:pointer;overflow:hidden}.cp-slider--hue{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.cp-slider--alpha{background-image:conic-gradient(var(--ink-3) 90deg,transparent 0 180deg,var(--ink-3) 0 270deg,transparent 0);background-size:8px 8px}.cp-alpha-gradient{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cp-slider-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000059,0 1px 3px #00000040;transform:translate(-50%,-50%);pointer-events:none}.cp-inputs{display:flex;align-items:center;gap:6px}.cp-hex{flex:1;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);font-family:var(--font-body);font-size:11px;color:var(--ink);padding:3px 6px;min-width:0;text-transform:uppercase}.cp-hex:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.cp-alpha-label{font-size:11px;color:var(--ink-2);white-space:nowrap}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg)}.tooltip{position:fixed;z-index:3000;transform:translate(-50%,-100%);max-width:260px;padding:4px 8px;font-family:var(--font-body);font-size:12px;line-height:1.35;color:var(--ink);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-line);border-radius:var(--r-ctl);box-shadow:var(--shadow-pop);pointer-events:none;white-space:nowrap}@media (prefers-reduced-motion: no-preference){.tooltip{animation:pop-in .1s ease-out}}.color-input-wrap{display:flex;flex-direction:column;gap:var(--field-label-gap);margin:calc(var(--field-group-gap) - var(--row-gap)) 0 0}.color-input-wrap:not(:has(.color-input-label)){margin-top:calc(var(--field-label-gap) - var(--row-gap))}.color-input-label{font-family:var(--font-body);font-size:11px;color:var(--ink-2)}.color-input-row{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);padding:6px 10px;position:relative}.color-input-swatch{width:20px;height:20px;border-radius:5px;border:1px solid var(--line);flex-shrink:0;cursor:pointer}.color-input-native{position:absolute;left:10px;top:6px;width:20px;height:20px;opacity:0;cursor:pointer}.color-input-hex{font-family:var(--font-body);font-size:12px;color:var(--ink);flex:1;min-width:0;overflow:hidden}.color-input-alpha-wrap{display:flex;align-items:center;gap:1px;flex-shrink:0;cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none}.color-input-alpha{min-width:26px;background:transparent;border:none;font-family:var(--font-num);font-size:12px;color:var(--ink);text-align:right;padding:0}.color-input-alpha:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.color-input-alpha::-webkit-outer-spin-button,.color-input-alpha::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.color-input-alpha[type=number]{-moz-appearance:textfield}.color-input-alpha-pct{font-family:var(--font-body);font-size:11px;color:var(--ink-2)}.number-input-wrap{display:flex;flex-direction:column;gap:var(--field-label-gap);margin:calc(var(--field-group-gap) - var(--row-gap)) 0 0}.number-input-label{font-family:var(--font-body);font-size:11px;color:var(--ink-2)}.number-input-field{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);padding:6px 8px;font-family:var(--font-num);font-size:12px;color:var(--ink);width:100%;text-align:right}.number-input-field:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.number-input-field::-webkit-outer-spin-button,.number-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input-field[type=number]{-moz-appearance:textfield}.preset-pills{display:flex;flex-wrap:wrap;gap:6px;margin:0}.preset-pill{font-family:var(--font-body);font-size:11px;background:var(--surface-2);color:var(--ink);border:none;border-radius:var(--r-pill);padding:5px 8px;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.preset-pill:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.preset-pill--active{background:var(--accent);color:var(--accent-ink)}.preset-pill--active:hover{background:var(--accent-press)}@media (pointer: coarse){.preset-pill{min-height:36px;padding:8px 12px;display:inline-flex;align-items:center}}.toggle-wrap{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.toggle-input{position:absolute;opacity:0;width:0;height:0}.toggle-track{position:relative;display:inline-block;width:36px;height:20px;border-radius:var(--r-pill);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);transition:background .18s ease,box-shadow .18s ease;cursor:pointer;flex-shrink:0}.toggle-input:checked+.toggle-track{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-press)}.toggle-wrap:hover .toggle-input:not(:checked)+.toggle-track{background:color-mix(in srgb,var(--ink) 6%,var(--surface-2))}.toggle-wrap:hover .toggle-input:checked+.toggle-track{background:var(--accent-press)}.toggle-knob{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:5px;background:var(--knob);box-shadow:0 1px 3px #00000038;transition:transform .22s cubic-bezier(.34,1.56,.64,1),width .15s ease}.toggle-input:checked+.toggle-track .toggle-knob{transform:translate(16px)}.toggle-wrap:active .toggle-knob{width:17px}.toggle-input:focus-visible+.toggle-track{outline:2px solid var(--focus);outline-offset:2px}.toggle-label{font-family:var(--font-body);font-size:12px;color:var(--ink);-webkit-user-select:none;user-select:none}.ctl.dropdown-ctl{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;font-size:12px;margin:0;font-family:var(--font-body)}.dropdown-wrap{display:flex;align-items:center}.dropdown-select{display:flex;align-items:center;gap:6px;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);padding:7px 10px;font-family:var(--font-body);font-size:12px;color:var(--ink);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.dropdown-select:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.dropdown-select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dropdown-select__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-chevron{display:flex;color:var(--ink-2);font-size:10px}.dropdown-select:hover .dropdown-chevron,.dropdown-chevron--open{color:var(--ink)}@media (prefers-reduced-motion: no-preference){.dropdown-chevron{transition:color .12s ease-out,transform .14s ease-out}.dropdown-chevron--open{transform:rotate(180deg)}}.dropdown-menu{position:fixed;z-index:1000;width:max-content;max-width:240px;max-height:320px;overflow-y:auto;padding:6px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-ctl);box-shadow:var(--shadow-pop);font-family:var(--font-body)}@media (prefers-reduced-motion: no-preference){.dropdown-menu{animation:pop-in .14s ease-out}}.dropdown-option{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;color:var(--ink);border-radius:var(--r-ctl);cursor:pointer}.dropdown-option--active{background:color-mix(in srgb,var(--ink) 10%,transparent)}.dropdown-option--selected{color:var(--accent)}.dropdown-option__marker{display:flex;align-items:center;justify-content:center;width:12px;flex:none}.dropdown-option__dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.dropdown-option__label{flex:1;min-width:0;white-space:nowrap}.add-select--picker{display:flex;align-items:center;justify-content:space-between;gap:6px}.add-select--picker:hover .dropdown-chevron{color:var(--ink)}.add-select__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}@media (pointer: coarse){.dropdown-select{min-height:44px}.dropdown-option{min-height:44px;padding-top:10px;padding-bottom:10px}}.gradient-editor{margin-top:6px;padding:8px;border-radius:var(--r-card);transition:box-shadow .12s ease}.gradient-editor.is-focused{box-shadow:0 0 0 2px var(--accent)}.gradient-editor>button{margin-top:8px}.gradient-editor__empty{font-family:var(--font-body);font-size:12px;color:var(--ink-3);margin:4px 0}.gradient-layer{display:flex;flex-direction:column;gap:var(--row-gap);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sub);padding:var(--card-pad);margin-bottom:var(--card-gap)}.gradient-layer:not(.is-selected):hover{border-color:var(--line-strong)}.gradient-layer.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}@media (prefers-reduced-motion: no-preference){.gradient-layer{transition:box-shadow .1s ease-out,border-color .1s ease-out}}.gradient-layer__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:0}.gradient-layer__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-body);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-2)}.gradient-layer__actions{flex:none;display:flex;align-items:center;gap:2px}.gradient-layer .number-input-field,.gradient-layer .dropdown-select,.gradient-layer .color-input-row{background:var(--surface-hi)}.gradient-layer .dropdown-select:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.gradient-layer input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--accent) 0 var(--fill, 50%),var(--surface-hi) var(--fill, 50%) 100%)}.gradient-layer input[type=range]::-moz-range-track{background:var(--surface-hi)}.card-btn,.file-btn{display:block;width:100%;text-align:center;font-family:var(--font-body);font-size:12px;color:var(--ink);background:var(--surface-hi);border:1px solid var(--line);border-radius:var(--r-ctl);padding:8px 12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background .12s ease}.card-btn:hover,.file-btn:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.card-btn--full{margin-top:8px}.source-add{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 8px}.source-add button,.btn-add{width:100%;border-radius:var(--r-pill);border:1px solid var(--line);padding:8px 12px;white-space:nowrap}.btn-add{margin-top:8px}.gradient-layer__icon,.gradient-layer__remove{background:transparent;border:none;color:var(--ink-3);font-size:15px;line-height:1;padding:2px 5px;cursor:pointer;border-radius:var(--r-ctl)}.gradient-layer__icon:hover,.gradient-layer__remove:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.gradient-bar{margin:8px 0 6px;padding:0 7px}.gradient-bar__track{position:relative;height:18px;border-radius:var(--r-ctl);cursor:copy;box-shadow:inset 0 0 0 1px var(--line)}.gradient-bar__pin{position:absolute;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--handle-chip);box-shadow:0 0 0 1px var(--ink),0 1px 3px #0006;padding:0;cursor:grab;z-index:1}.gradient-bar__pin.is-selected{box-shadow:0 0 0 2px var(--accent),0 1px 3px #0006}.gradient-bar__pin:active{cursor:grabbing}.gradient-stops{margin-top:4px}.gradient-stops__header{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}.gradient-stops__title{font-family:var(--font-body);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-2)}.gradient-stops__add{background:transparent;border:none;color:var(--ink-2);font-size:15px;line-height:1;padding:2px 5px;cursor:pointer;border-radius:var(--r-ctl)}.gradient-stops__add:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.gradient-stop-row{display:flex;align-items:center;gap:6px;background:var(--surface);border-radius:var(--r-ctl);padding:5px 8px;margin-bottom:6px;box-shadow:inset 0 0 0 1px transparent}.gradient-stop-row.is-selected{box-shadow:inset 0 0 0 1px var(--accent)}.gradient-stop-pos{width:36px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);font-size:12px;padding:3px 4px;text-align:right;-moz-appearance:textfield}.gradient-stop-pos::-webkit-outer-spin-button,.gradient-stop-pos::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gradient-stop-pct{font-size:11px;color:var(--ink-3);margin-right:2px}.gradient-stop-row .color-input-wrap{flex:1;min-width:0;margin:0}.stop-remove{background:transparent;border:none;color:var(--ink-3);font-size:15px;line-height:1;cursor:pointer;padding:0 4px;border-radius:var(--r-ctl)}.stop-remove:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.stop-remove:disabled{opacity:.3;cursor:default}.listdrag{position:relative}.listdrag--active{-webkit-user-select:none;user-select:none}.listdrag-row--dragging{opacity:.45;outline:1px dashed var(--glass-line);outline-offset:-4px}.listdrag-handle{cursor:grab;-webkit-user-select:none;user-select:none}.listdrag-handle:active{cursor:grabbing}@media (prefers-reduced-motion: no-preference){.listdrag-row--landed{animation:listdrag-land .32s ease-out}}@keyframes listdrag-land{0%{box-shadow:inset 0 0 0 999px var(--glass-2)}}.listdrag__line{position:absolute;left:2px;right:2px;height:0;pointer-events:none;z-index:3;border-top:2px solid var(--accent)}.listdrag__line:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.listdrag__ghost{position:fixed;z-index:1000;pointer-events:none;display:flex;align-items:center;gap:6px;max-width:220px;padding:5px 10px;font-size:12px;color:var(--ink);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--glass-line);border-radius:var(--r-ctl, 8px);box-shadow:var(--shadow-card, 0 4px 14px rgba(0, 0, 0, .18));transform:scale(1.03);transform-origin:top left}.listdrag__ghost span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (prefers-reduced-motion: no-preference){.listdrag__ghost{animation:listdrag-ghost-lift .14s cubic-bezier(.22,1,.36,1)}}@keyframes listdrag-ghost-lift{0%{transform:scale(1);box-shadow:none}}.font-picker{display:flex;flex-direction:column;gap:4px}.font-picker__actions{display:flex;gap:6px}.font-picker__actions .panel-btn{flex:1;font-size:11px}.fp-trigger{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:6px 8px;font-size:12px;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);cursor:pointer}.fp-trigger:hover{border-color:var(--accent)}.fp-trigger__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-trigger__chevron{color:var(--ink-2);font-size:10px}.fp-popout{position:fixed;z-index:1000;display:flex;flex-direction:column;max-height:360px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);overflow:hidden;font-family:var(--font-body)}@media (prefers-reduced-motion: no-preference){.fp-popout{animation:pop-in .14s ease-out}}.fp-search{margin:8px;padding:6px 8px;font-size:12px;font-family:var(--font-body);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink)}.fp-search:focus{outline:2px solid var(--focus);outline-offset:-1px}.fp-list{flex:1;overflow-y:auto;padding:0 4px 4px}.fp-group{margin-bottom:4px}.fp-group__title{position:sticky;top:0;padding:4px 6px 2px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);background:color-mix(in srgb,var(--glass) 88%,transparent);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm)}.fp-group__more{padding:4px 6px;font-size:11px;color:var(--ink-2)}.fp-row{display:flex;align-items:center;border-radius:var(--r-ctl)}.fp-row--hi{background:color-mix(in srgb,var(--accent) 16%,transparent)}.fp-row--sel .fp-row__name{font-weight:600}.fp-row__name{flex:1;min-width:0;text-align:left;padding:5px 8px;font-size:12.5px;font-family:var(--font-body);background:none;border:none;color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-row__del{background:none;border:none;padding:4px 8px;color:#b3261e;font-size:12px;cursor:pointer}.fp-empty{padding:12px;font-size:12px;color:var(--ink-2);text-align:center}.fp-actions{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}.fp-actions .panel-btn{flex:1;font-size:11px}.font-picker__note,.font-picker__err{font-size:11px;padding:4px 8px;border-radius:var(--r-ctl)}.font-picker__note{color:var(--ink-dim, #888);background:var(--surface-2)}.font-picker__err{color:#b3261e;background:#b3261e14}.font-picker__link{margin-left:6px;background:none;border:none;padding:0;color:var(--accent, #d4a000);font:inherit;cursor:pointer;text-decoration:underline}.font-picker__delete{align-self:flex-start;background:none;border:none;padding:2px 0;color:#b3261e;font-size:11px;cursor:pointer;text-decoration:underline}.snippets{display:flex;flex-direction:column;gap:4px}.snippets__save{display:flex;gap:6px;align-items:center}.snippets__label{flex:1;min-width:0;padding:5px 8px;font-family:var(--font-body);font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink)}.snippets__save .panel-btn{font-size:11px;white-space:nowrap}.snippets__list{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.snippets__item{display:flex;align-items:center;gap:4px}.snippets__apply{flex:1;min-width:0;text-align:left;padding:4px 8px;font-size:12px;font-family:var(--font-body);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snippets__apply:hover{border-color:var(--accent, #d4a000)}.snippets__del{background:none;border:none;padding:2px 6px;color:#b3261e;font-size:12px;cursor:pointer}.snippets__note,.snippets__err{font-size:11px;padding:4px 8px;border-radius:var(--r-ctl)}.snippets__note{color:var(--ink-dim, #888);background:var(--surface-2)}.snippets__err{color:#b3261e;background:#b3261e14}.logomorph{display:flex;height:100%;min-height:0;position:relative}.logomorph__stage{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:0;background:var(--backdrop);overflow:hidden;touch-action:none}.logomorph__zoom{position:absolute;left:calc(var(--dock-w) + 24px);bottom:calc(var(--dock-reserve-bottom) + 12px);padding:3px 8px;border:1px solid var(--glass-line);border-radius:var(--r-ctl);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);font:700 11px Space Mono,ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.logomorph__zoom:hover{color:var(--ink)}.logomorph__toolbar{position:absolute;left:calc(var(--dock-w) + 24px);top:14px;z-index:5;display:flex;flex-direction:column;gap:4px;padding:4px;border:1px solid var(--glass-line);border-radius:var(--r-ctl);background:var(--glass);box-shadow:var(--shadow-card);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.logomorph__tool{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-ctl, 6px);background:transparent;color:var(--ink-2);font-size:15px;line-height:1;cursor:pointer}.logomorph__tool:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 8%,transparent)}.logomorph__tool[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.logomorph__tool:disabled{opacity:.3;cursor:default}.logomorph__export{display:grid;grid-template-columns:1fr 1fr;gap:8px}.logomorph__export .panel-btn,.logomorph__btn{flex:1;min-width:60px}.logomorph__list{display:flex;flex-direction:column;gap:2px;margin-bottom:20px}.logomorph__row{display:flex;align-items:center;gap:6px;padding:0 8px;min-height:36px;border-radius:var(--r-ctl, 8px);cursor:pointer;font-size:12px}.logomorph__row .dropdown-ctl{margin:0}.logomorph__bond-row{display:flex;gap:4px;align-items:center;margin-bottom:6px}.logomorph__bond-row .dropdown-ctl{flex:1;margin:0;grid-template-columns:1fr}.logomorph__row:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.logomorph__row.is-active{background:var(--glass-2);box-shadow:inset 0 0 0 1px var(--glass-line),inset 2px 0 0 var(--ink);color:var(--ink)}@media (prefers-reduced-motion: no-preference){.logomorph__row{transition:background .1s ease-out,color .1s ease-out}.logomorph__row button{transition:opacity .1s ease-out}}.logomorph__row button{border:none;background:none;cursor:pointer;font-size:10px;opacity:.6;display:inline-flex;align-items:center;justify-content:center;padding:0}.logomorph__row button:hover{opacity:1}.logomorph__row .logomorph__eye,.logomorph__row .logomorph__chevron{min-height:var(--hit-min)}.logomorph__row>button:not(.logomorph__eye):not(.logomorph__chevron){width:0;min-width:0;min-height:var(--hit-min);overflow:hidden;opacity:0}.logomorph__row:hover>button:not(.logomorph__eye):not(.logomorph__chevron),.logomorph__row:focus-within>button:not(.logomorph__eye):not(.logomorph__chevron){width:var(--hit-min);min-width:var(--hit-min);opacity:.6}.logomorph__row:hover>button:not(.logomorph__eye):not(.logomorph__chevron):hover{opacity:1}.logomorph__row>button:not(.logomorph__eye):not(.logomorph__chevron):disabled,.logomorph__row:hover>button:not(.logomorph__eye):not(.logomorph__chevron):disabled{width:0;min-width:0;opacity:0}.logomorph__rowname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logomorph__eye{font-size:11px}.logomorph__chip{width:12px;height:12px;border-radius:3px;border:1px solid var(--line);flex-shrink:0}.logomorph__row--indent{padding-left:26px}.logomorph__chevron{font-size:10px;width:14px;text-align:center}@media (pointer: coarse){.logomorph__row{min-height:44px}.logomorph__tool{width:44px;height:44px}}.logomorph__list{position:relative;-webkit-user-select:none;user-select:none}.logomorph__row.is-dragging{opacity:.45;outline:1px dashed var(--glass-line);outline-offset:-2px}.logomorph__row.is-drop-into{box-shadow:inset 0 0 0 2px var(--accent)}@media (prefers-reduced-motion: no-preference){.logomorph__row.is-landed{animation:logomorph-land .32s ease-out}}@keyframes logomorph-land{0%{box-shadow:inset 0 0 0 999px var(--glass-2)}}.logomorph__dropline{position:absolute;left:6px;right:6px;height:0;pointer-events:none;z-index:3;border-top:2px solid var(--accent)}.logomorph__dropline:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.logomorph__dropline--indent{left:26px}.logomorph__ghost{position:fixed;z-index:1000;pointer-events:none;display:flex;align-items:center;gap:6px;max-width:220px;padding:5px 10px;font-size:12px;color:var(--ink);background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--glass-line);border-radius:var(--r-ctl, 8px);box-shadow:var(--shadow-card, 0 4px 14px rgba(0, 0, 0, .18));transform:scale(1.03);transform-origin:top left}.logomorph__ghost span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logomorph__ghostcount{min-width:16px;height:16px;padding:0 4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:700}@media (prefers-reduced-motion: no-preference){.logomorph__ghost{animation:logomorph-ghost-lift .14s cubic-bezier(.22,1,.36,1)}}@keyframes logomorph-ghost-lift{0%{transform:scale(1);box-shadow:none}}.logomorph__states{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.logomorph__state{position:relative;width:56px;height:56px;padding:0;border:2px solid var(--line);border-radius:var(--r-ctl, 8px);background:var(--surface-2);cursor:pointer;overflow:hidden}.logomorph__state img{width:100%;height:100%;object-fit:cover;display:block}.logomorph__state:hover{border-color:var(--ink-3)}.logomorph__state.is-active{border-color:var(--accent)}@media (prefers-reduced-motion: no-preference){.logomorph__state{transition:border-color .12s ease-out}}.logomorph__state--add{font-size:18px;color:var(--ink-2)}.logomorph__statex{position:absolute;top:1px;right:3px;font-size:9px;color:var(--ink-2);background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:4px;padding:0 2px}.logomorph__align{display:flex;gap:6px;margin-bottom:6px}.logomorph__align--grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.logomorph__align .logomorph__btn{flex:1;min-width:0;padding:7px 6px;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;gap:5px}.logomorph__align .logomorph__btn:disabled,.logomorph__align .logomorph__btn:disabled:hover{opacity:.35;cursor:default;background:none;border-color:transparent}.logomorph__staterow{display:flex;gap:8px}.logomorph__seed{font-size:11px;opacity:.55;font-variant-numeric:tabular-nums}.logomorph__msel{font-size:11px;opacity:.55;margin:-2px 0 6px}.gradient{display:flex;height:100%;min-height:0}.gradient__stage{flex:1;min-width:0;position:relative;background:var(--backdrop);overflow:hidden}.gradient__canvas{position:absolute;display:block;border-radius:3px;box-shadow:var(--shadow-card);background-color:var(--checker-a);background-image:linear-gradient(45deg,var(--checker-b) 25%,transparent 25%,transparent 75%,var(--checker-b) 75%),linear-gradient(45deg,var(--checker-b) 25%,transparent 25%,transparent 75%,var(--checker-b) 75%);background-size:16px 16px;background-position:0 0,8px 8px}.gradient__overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.gradient__toolbar{position:absolute;top:14px;left:calc(50% + var(--dock-w) / 2);transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-ctl);box-shadow:var(--shadow-card)}.gradient__toolbar button{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:6px 12px;border-radius:calc(var(--r-ctl) - 3px);font:inherit;font-size:12px;color:var(--ink);cursor:pointer;white-space:nowrap}.gradient__toolbar button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.gradient__toolbar button.is-active{background:var(--accent);color:var(--accent-ink)}.gradient__toolbar kbd{font-family:inherit;font-size:10px;opacity:.5;background:color-mix(in srgb,var(--ink) 8%,transparent);border-radius:3px;padding:1px 4px}.gradient__axis{display:flex;gap:2px;border-left:1px solid var(--line);margin-left:4px;padding-left:6px}.gradient__axis button{padding:6px 9px}.fx-card{display:flex;flex-direction:column;gap:var(--row-gap);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sub);padding:var(--card-pad);margin-bottom:var(--card-gap)}.fx-card:hover{border-color:var(--line-strong)}@media (prefers-reduced-motion: no-preference){.fx-card{transition:border-color .1s ease-out}.fx-card__grip{transition:opacity .1s ease-out}.fx-card__btn{transition:opacity .1s ease-out,background .1s ease-out}}.fx-card:hover .fx-card__grip{opacity:.7}.fx-card__head{display:flex;align-items:center;gap:6px;margin-bottom:0;cursor:grab}.fx-card__head:active{cursor:grabbing}.fx-card__grip{font-size:11px;opacity:.4;-webkit-user-select:none;user-select:none;line-height:1}.fx-card__title{flex:1;font-size:12px;font-weight:700}.fx-card__btn{border:0;background:transparent;cursor:pointer;font:inherit;font-size:13px;line-height:1;opacity:.55;padding:3px 6px;border-radius:calc(var(--r-ctl) - 4px)}.fx-card__btn:hover{opacity:1;background:color-mix(in srgb,var(--ink) 8%,transparent)}.gradient__grid-ctl{justify-content:space-between}.gradient__grid-inputs{display:inline-flex;align-items:center;gap:4px}.gradient__grid-inputs input{width:44px;padding:4px 6px;border:1px solid var(--line);border-radius:var(--r-ctl);background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:center}.gradient__grid-x{color:var(--ink-3);font-size:11px}.gradient__timeline{position:absolute;left:calc(50% + var(--dock-w) / 2);bottom:calc(var(--dock-reserve-bottom) + 18px);transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 18px 8px 8px;border-radius:999px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);box-shadow:var(--shadow-pop);z-index:5}.gradient__timeline-play{flex:none;width:32px;height:32px;border:none;border-radius:50%;background:var(--ink);color:var(--bg);cursor:pointer;display:grid;place-items:center;transition:transform .12s ease,background .12s ease}.gradient__timeline-play:hover{transform:scale(1.06)}.gradient__timeline-play:active{transform:scale(.96)}.gradient__timeline-play svg{display:block;margin-left:1px}.gradient__timeline input[type=range]{width:260px;margin:0}.gradient__timeline-time{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.gradient__timeline-cur{color:var(--ink);font-weight:700}.gradient__timeline-total{color:var(--ink-3)}.gradient__presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px}.gradient__preset-swatch{height:44px;border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer;position:relative;overflow:hidden;padding:0;background-size:cover}.gradient__preset-swatch:hover{box-shadow:inset 0 0 0 2px #ffffffd9,0 2px 8px #0000001f}.gradient__preset-label{position:absolute;bottom:0;left:0;right:0;padding:2px 4px;font-size:10px;line-height:1.4;text-align:center;background:#00000059;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gradient__export{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gradient__export .panel-btn{padding:9px 6px}.gradient-node-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0}.gradient-node-actions .panel-btn{padding:7px 6px;font-size:11px}.gradient-node-link{margin:6px 0}.gradient-node-link .panel-btn{width:100%}.gradient-node-link .panel-btn.gradient-node-link--active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}.gradient-palette-swatches{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-bottom:8px}.gradient-palette-swatches>*{min-width:0;margin:0}.gradient-palette-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.anim-timeline{position:absolute;left:calc(50% + var(--dock-w) / 2);bottom:calc(var(--dock-reserve-bottom) + 72px);transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 18px 8px 8px;border-radius:var(--r-pill);background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);box-shadow:var(--shadow-pop);z-index:5}.anim-timeline__play{flex:none;width:32px;height:32px;border:none;border-radius:50%;background:var(--ink);color:var(--bg);cursor:pointer;display:grid;place-items:center;transition:transform .12s ease,background .12s ease}.anim-timeline__play:hover{transform:scale(1.06);background:var(--ink)}.anim-timeline__play:active{transform:scale(.96);background:var(--ink);color:var(--bg)}.anim-timeline__play svg{display:block;margin-left:1px}.anim-timeline input[type=range]{width:260px;margin:0}.anim-timeline__time{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.anim-timeline__cur{color:var(--ink);font-weight:700}.anim-timeline__total{color:var(--ink-3)}.arc{display:flex;height:100%;min-height:0}.arc__stage{flex:1;min-width:0;position:relative;background:var(--backdrop);overflow:hidden;touch-action:none}.arc__canvas{position:absolute;display:block;border-radius:3px;box-shadow:var(--shadow-card);background-color:var(--checker-a);background-image:linear-gradient(45deg,var(--checker-b) 25%,transparent 25%,transparent 75%,var(--checker-b) 75%),linear-gradient(45deg,var(--checker-b) 25%,transparent 25%,transparent 75%,var(--checker-b) 75%);background-size:16px 16px;background-position:0 0,8px 8px}.arc__overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.arc__cp-anchor{position:absolute;transform:translate(-50%);z-index:6}.arc__toolbar{position:absolute;top:14px;left:calc(50% + var(--dock-w) / 2);transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-ctl);box-shadow:var(--shadow-card)}.arc__toolbar button{border:0;background:transparent;padding:6px 12px;border-radius:calc(var(--r-ctl) - 3px);font:inherit;font-size:12px;color:var(--ink);cursor:pointer;white-space:nowrap}.arc__toolbar button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.arc__export{display:grid;grid-template-columns:1fr 1fr;gap:6px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:16px;background:#0006}.modal-card{width:min(340px,100%);padding:20px;color:var(--ink);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-panel);box-shadow:var(--shadow-pop)}.modal-card__title{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.3px}.modal-card__body{margin:0 0 18px;font-size:12px;line-height:1.5;color:var(--ink-2)}.modal-card__input{width:100%;margin:0 0 18px;padding:8px 10px;font:inherit;font-size:12px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-ctl)}.modal-card__input:focus{outline:2px solid var(--focus);outline-offset:-1px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions .panel-btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.modal-actions .panel-btn--primary:hover{background:var(--accent-press)}@media (prefers-reduced-motion: no-preference){.modal-scrim{animation:modal-fade .14s ease-out}.modal-card{animation:pop-in .14s ease-out}}@keyframes modal-fade{0%{opacity:0}}.home{min-height:100vh;background:var(--bg);color:var(--ink);padding-bottom:48px}.home__bar{position:sticky;top:0;z-index:10;padding:14px 0;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-line)}.home__bar-inner{display:flex;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:0 24px}.home__brand{font-size:15px;letter-spacing:1px}.home__spacer{flex:1}.home__section{max-width:1200px;margin:0 auto;padding:28px 24px 0}.home__row-title{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-2)}.home__row{display:flex;gap:18px;overflow-x:auto;padding:8px 4px 14px;margin:-8px -4px 0;scrollbar-width:thin}@media (max-width: 1023px){.home__row{display:grid;grid-template-columns:1fr 1fr;gap:16px;overflow-x:visible}.home__row .gen-card{flex:none}}@media (max-width: 559px){.home__row{grid-template-columns:1fr}}.home__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;padding:8px 4px 14px;margin:-8px -4px 0}.gen-card{position:relative;flex:1 0 260px;aspect-ratio:16 / 9;padding:0;font:inherit;background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-card);overflow:hidden;cursor:pointer;transition:transform .18s ease,border-color .14s ease,box-shadow .18s ease,background .15s ease}.gen-card:hover{transform:scale(1.03);border-color:var(--accent);background:color-mix(in srgb,#fff 4%,var(--glass));box-shadow:var(--shadow-pop);z-index:1}.gen-card:active{transform:scale(1.01)}.gen-card__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.gen-card__play{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:44px;height:44px;padding-left:3px;border-radius:var(--r-pill);background:var(--accent);color:var(--accent-ink);font-size:14px;box-shadow:var(--shadow-pop);opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .14s ease,transform .14s ease;pointer-events:none}.gen-card:hover .gen-card__play{opacity:1;transform:translate(-50%,-50%) scale(1)}.gen-card__label{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:48px 16px 14px;text-align:left;background:linear-gradient(to top,rgba(0,0,0,.55),transparent);pointer-events:none}.gen-card__name{font-size:13px;font-weight:700;letter-spacing:.4px;color:#fff}.gen-card__tagline{max-width:100%;font-size:11px;color:#ffffffa6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-card{position:relative;display:flex;flex-direction:column;aspect-ratio:1 / 1;padding:0;text-align:left;color:var(--ink);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-card);overflow:hidden;cursor:pointer;transition:border-color .14s ease,transform .08s ease,background .15s ease}.proj-card:hover{border-color:var(--accent);background:color-mix(in srgb,#fff 4%,var(--glass))}.proj-card:active{transform:scale(.99)}.proj-card__thumb{flex:1;background-color:var(--surface-2);background-position:center;background-size:cover;background-repeat:no-repeat}.proj-card__thumb:not([style]){background-image:repeating-conic-gradient(var(--ink-3) 0% 25%,transparent 0% 50%);background-size:16px 16px;opacity:.4}.proj-card__badge{position:absolute;top:10px;left:10px;padding:3px 10px;font-size:10px;letter-spacing:.4px;color:var(--ink-2);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur-sm);backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-line);border-radius:var(--r-pill);pointer-events:none}.proj-card__meta{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--surface);border-top:1px solid var(--line)}.proj-card__name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-card__time{font-size:11px;color:var(--ink-3)}.proj-card__actions{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .14s ease}.proj-card:hover .proj-card__actions,.proj-card:focus-within .proj-card__actions{opacity:1}.proj-card__actions button{font-size:11px;padding:4px 10px;background:var(--surface);border:1px solid var(--line)}.home__empty,.home__err{text-align:center;color:var(--ink-2);padding:40px 24px}.home__err{color:#ff6b6b}.route-msg{display:grid;place-items:center;height:100vh;background:var(--bg);color:var(--ink-2)}.route-msg__card{display:grid;justify-items:center;gap:10px;padding:22px 30px;font-size:13px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--r-card);box-shadow:var(--shadow-pop)}.route-msg__card p{margin:0}.route-msg__card a{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.tabbar{display:flex;align-items:flex-end;gap:2px;height:40px;padding:6px 10px 0;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-line);overflow-x:auto;overflow-y:hidden;flex-shrink:0;scrollbar-width:thin}.tabbar__home{flex-shrink:0;align-self:center;margin:0 6px 3px 0;background:transparent;border:none;color:var(--ink);font:inherit;font-size:12px;font-weight:700;letter-spacing:1px;padding:5px 9px;border-radius:7px;cursor:pointer}.tabbar__home:hover{background:var(--surface-2)}.tab{display:flex;align-items:center;gap:8px;min-width:0;max-width:200px;padding:7px 8px 7px 12px;font-size:12px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-bottom:none;border-radius:9px 9px 0 0;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease}.tab:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.tab--active{background:var(--glass-2);color:var(--ink)}.tab__name{overflow:hidden;text-overflow:ellipsis}.tab__rename{min-width:0;max-width:150px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--accent);border-radius:4px;padding:1px 4px;outline:none}.tab__close{flex-shrink:0;background:transparent;border:none;color:var(--ink-3);font-size:15px;line-height:1;padding:1px 4px;border-radius:5px;cursor:pointer}.tab__close:hover{background:var(--surface-2);color:var(--ink)}.tabbar__new{flex-shrink:0;align-self:center;margin-bottom:3px;background:transparent;border:none;color:var(--ink-2);font-size:16px;line-height:1;padding:5px 9px;border-radius:7px;cursor:pointer}.tabbar__new:hover{background:var(--surface-2);color:var(--ink)}.tabbar__user{flex-shrink:0;align-self:center;margin:0 4px 3px auto;display:flex;align-items:center}
