:root{--bg: #000;--card: #161616;--raised: #262626;--chip: rgba(255, 255, 255, .09);--chip-hover: rgba(255, 255, 255, .14);--ring: rgba(255, 255, 255, .06);--track: rgba(255, 255, 255, .12);--text: #fff;--muted: #9a9a9a;--dim: #6b6b6b;--field: #232323;--field-line: #3a3a3a;--seg-on: #3a3a3a;--fill: rgba(255, 255, 255, .6);--accent: #0d99ff;--glass: rgba(32, 32, 32, .74);--inv-bg: #fff;--inv-fg: #000;--inv-hover: #e6e6e6;--check-a: #2a2a2a;--check-b: #1e1e1e;--overlay: rgba(0, 0, 0, .55);--hover: rgba(255, 255, 255, .04);--field-focus: #1e1e1e;--hairline: rgba(255, 255, 255, .1);--popover: #1e1e1e;--ring-hover: rgba(255, 255, 255, .3);--r-field: 8px;--r-block: 12px;--r-seg: 10px;--r-card: 28px;--r-inner: 16px;--panel-w: 288px;--gap: 12px;color-scheme:dark}:root[data-theme=light]{--bg: #e9e9eb;--card: #ffffff;--raised: #f2f2f3;--chip: rgba(0, 0, 0, .05);--chip-hover: rgba(0, 0, 0, .09);--ring: rgba(0, 0, 0, .08);--track: rgba(0, 0, 0, .12);--text: #111;--muted: #6b6b6b;--dim: #9a9a9a;--field: #f2f2f3;--field-line: #d8d8da;--seg-on: #ffffff;--fill: rgba(0, 0, 0, .55);--glass: rgba(255, 255, 255, .82);--inv-bg: #111;--inv-fg: #fff;--inv-hover: #333;--check-a: #e4e4e6;--check-b: #f5f5f6;--overlay: rgba(255, 255, 255, .6);--hover: rgba(0, 0, 0, .04);--field-focus: #ffffff;--hairline: rgba(0, 0, 0, .1);--popover: #ffffff;--ring-hover: rgba(0, 0, 0, .25);color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font:400 14px/1.4 Inter,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2{margin:0;font-weight:500}.app{display:grid;grid-template-columns:minmax(0,1fr) var(--panel-w);grid-template-rows:minmax(0,1fr);overflow:hidden;gap:var(--gap);height:100vh;height:100dvh;padding:var(--gap)}.stage{position:relative;display:grid;place-items:center;padding:84px 32px 48px;background:var(--card);border-radius:var(--r-card);overflow:hidden;min-width:0;min-height:0}.toolbar{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:var(--glass);box-shadow:0 0 0 1px var(--ring),0 8px 24px #0006;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.toolbar-sep{width:1px;height:18px;margin:0 4px;background:var(--track)}.tool{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 10px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:500;font-size:13px;line-height:1;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.tool:hover{background:var(--chip);color:var(--text)}.tool.is-active{background:var(--inv-bg);color:var(--inv-fg)}.tool svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tool-icon{width:36px;padding:0;justify-content:center}.tool:disabled{opacity:.35;cursor:default;background:transparent;color:var(--muted)}kbd{padding:2px 6px;border-radius:6px;background:var(--chip);font-weight:500;font-size:11px;line-height:1.3;font-family:inherit;color:var(--muted)}.tool.is-active kbd{background:color-mix(in srgb,var(--inv-fg) 12%,transparent);color:var(--inv-fg);opacity:.6}.canvas-wrap{position:relative;display:inline-flex;transform-origin:0 0;will-change:transform}.stage.is-space,.stage.is-space #preview{cursor:grab}#preview[data-tool=""],#preview:not([data-tool]){cursor:grab}.stage.is-panning,.stage.is-panning *{cursor:grabbing!important}.zoom-bar{position:absolute;right:16px;bottom:12px;z-index:3;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--glass);box-shadow:0 0 0 1px var(--ring);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.zoom-bar .tool-icon{width:30px;height:30px}.zoom-level{min-width:56px;height:30px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer}.zoom-level:hover{background:var(--chip)}#preview{display:block;border-radius:6px;box-shadow:0 30px 80px #0000008c;touch-action:none}#preview.is-transparent{background:repeating-conic-gradient(var(--check-a) 0 25%,var(--check-b) 0 50%) 0 0 / 16px 16px}#preview[data-tool=thermo]{cursor:crosshair}#preview[data-tool=brush]{cursor:none}.brush-cursor{position:absolute;top:0;left:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #00000059;pointer-events:none}.cell-cursor{position:absolute;top:0;left:0;box-shadow:inset 0 0 0 1.5px #fff,inset 0 0 0 2.5px #0000004d;background:#ffffff14;pointer-events:none;transition:transform .06s linear}#preview[data-tool=cells]{cursor:pointer}.readout{position:absolute;transform-origin:0 0;top:0;left:0;padding:6px 10px;border-radius:999px;background:var(--glass);box-shadow:0 0 0 1px var(--ring);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-weight:500;font-size:13px;line-height:1;font-family:inherit;font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap}.stage-info{position:absolute;left:20px;bottom:16px;font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.dropzone{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.dropzone h1{font-size:40px;letter-spacing:-.022em;line-height:1.1}.dropzone .lead{margin:0 0 8px;color:var(--dim);font-size:15px;line-height:1.5}.drag-overlay{position:absolute;inset:12px;z-index:4;display:grid;place-items:center;border-radius:16px;border:1.5px dashed var(--ring-hover);background:var(--overlay);font-size:18px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .15s}.stage.is-dragging .drag-overlay{opacity:1}.panel{display:flex;flex-direction:column;gap:var(--gap);min-height:0;font-size:12px}.panel-scroll{position:relative;flex:1;display:flex;flex-direction:column;gap:var(--gap);overflow-y:auto;overflow-x:clip;min-height:0;border-radius:var(--r-card);scrollbar-width:none}.panel-scroll::-webkit-scrollbar{display:none}.card{background:var(--card);border-radius:var(--r-card);padding:16px 16px 18px}.card-head,.card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 10px 10px 18px}.card-foot{padding:10px}.card-foot .btn{height:36px}.card-foot .btn-primary{flex:1}.brand{display:flex;align-items:center;gap:10px;font-weight:500;font-size:14px;color:var(--muted)}.brand-logo{width:18px;height:18px;color:var(--text)}.hero-logo{width:56px;height:56px;margin-bottom:8px;color:var(--text)}.brand-mark{color:var(--text);font-weight:600;letter-spacing:-.02em}.card-title{display:flex;align-items:center;justify-content:space-between;min-height:22px;margin-bottom:12px}.card-title h2{flex:1;font-size:13px;font-weight:600;letter-spacing:-.005em}.card-title.is-toggle{gap:6px;margin:-6px -8px 6px;padding:6px 8px;border-radius:var(--r-block);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,margin .25s}.card-title.is-toggle:hover{background:var(--hover)}.card-title.is-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:0}.card-chevron{display:grid;place-items:center;width:16px;height:16px;color:var(--dim);transform:rotate(90deg);transition:transform .25s cubic-bezier(.3,.7,.4,1),color .12s}.card-title:hover .card-chevron{color:var(--text)}.card-chevron svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.card.is-collapsed .card-chevron{transform:rotate(0)}.card.is-collapsed .card-title.is-toggle{margin-bottom:-6px}.card-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .25s cubic-bezier(.3,.7,.4,1),opacity .2s}.card-body-inner{min-height:0;overflow:hidden;margin:-8px;padding:8px}.card.is-collapsed .card-body{grid-template-rows:0fr;opacity:0}.card-content{transition:opacity .2s}.card-content.is-off{opacity:.55;transition:opacity .15s}.card-content.is-off:hover,.card-content.is-off:focus-within{opacity:.85}.row{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px;min-height:30px;margin-top:6px}.row-label{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.row-label.scrub{cursor:ew-resize}.row-label.scrub:hover{color:var(--text)}body.is-scrubbing,body.is-scrubbing *{cursor:ew-resize!important;-webkit-user-select:none;user-select:none}.row-control{display:flex;align-items:center;gap:8px;min-width:0}.row-control.end{justify-content:flex-end}.row:has(.row-control.end){grid-template-columns:1fr auto}.segmented-inline{flex:1}.segmented-inline span{height:24px;line-height:24px;font-size:11.5px}label.row{cursor:pointer}.dim{color:var(--dim)}.hint{margin:8px 0 2px;font-size:11.5px;line-height:1.45;color:var(--dim)}kbd{padding:2px 6px;border-radius:5px;background:var(--field);font:inherit;font-size:11px;font-weight:500;color:var(--muted)}.badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:var(--chip-hover);font-size:11.5px;font-weight:500}.num{display:flex;align-items:center;flex-shrink:0;width:54px;height:28px;padding:0 8px;border-radius:var(--r-field);background:var(--field);box-shadow:inset 0 0 0 1px transparent;color:var(--dim);cursor:text;transition:box-shadow .12s,background .12s}.num:hover{box-shadow:inset 0 0 0 1px var(--field-line)}.num:focus-within{box-shadow:inset 0 0 0 1px var(--accent);background:var(--field-focus)}.num-grow{flex:1;width:auto}.num input{flex:1;min-width:0;width:100%;padding:0;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.num input::-webkit-inner-spin-button,.num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num span{margin-left:3px;font-size:11px}input[type=range]{-webkit-appearance:none;appearance:none;flex:1;min-width:0;height:28px;margin:0;background:transparent;cursor:pointer;--a: 0%;--b: 50%}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(90deg,var(--track) var(--a),var(--fill) var(--a),var(--fill) var(--b),var(--track) var(--b))}input[type=range]::-moz-range-track{height:4px;border-radius:999px;background:linear-gradient(90deg,var(--track) var(--a),var(--fill) var(--a),var(--fill) var(--b),var(--track) var(--b))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px #0000004d,0 1px 3px #00000080;transition:transform .12s}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000080}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}input[type=range]:focus{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--accent)}.color-field{min-width:0;display:flex;align-items:center;gap:8px;flex:1;height:28px;padding:0 8px 0 4px;border-radius:var(--r-field);background:var(--field);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .12s}.color-field:hover{box-shadow:inset 0 0 0 1px var(--field-line)}.color-field:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}.cf-swatch{flex-shrink:0;width:20px;height:20px;padding:0;border:0;border-radius:5px;box-shadow:inset 0 0 0 1px var(--hairline);cursor:pointer}.cf-swatch.is-open{box-shadow:0 0 0 1.5px var(--accent)}.cf-hex{flex:1;min-width:0;padding:0;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-transform:uppercase}.cp{position:fixed;z-index:50;width:240px;padding:12px;border-radius:20px;background:var(--popover);box-shadow:0 0 0 1px var(--hairline),0 16px 48px #00000059;font-size:12px}.cp-sv{position:relative;height:160px;border-radius:var(--r-field);background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--hue, red));cursor:crosshair;touch-action:none}.cp-hue{position:relative;flex:1;height:12px;border-radius:999px;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer;touch-action:none}.cp-knob{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px #0000004d,0 2px 6px #0006;pointer-events:none}.cp-hue .cp-knob{top:50%}.cp-row{display:flex;align-items:center;gap:8px;margin-top:12px}.cp-preview{width:28px;height:28px;border-radius:var(--r-field);box-shadow:inset 0 0 0 1px var(--hairline)}.cp-hexbox{flex:1;width:auto}.cp-hexbox span{margin:0 4px 0 0}.cp-hex{text-transform:uppercase}.icon-btn{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;padding:0;border:0;border-radius:var(--r-field);background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,color .12s}.icon-btn:hover{background:var(--field);color:var(--text)}.icon-btn:disabled{opacity:.3;cursor:not-allowed;background:transparent}.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.palettes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.palette{position:relative;cursor:pointer}.palette input{position:absolute;opacity:0;pointer-events:none}.palette-swatch{display:block;height:28px;border-radius:var(--r-block);box-shadow:inset 0 0 0 1px var(--hairline);transition:box-shadow .12s}.palette:hover .palette-swatch{box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--ring-hover)}.palette:has(input:checked) .palette-swatch{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--text)}.palette-del{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:var(--inv-bg);color:var(--inv-fg);box-shadow:0 0 0 2px var(--card);opacity:0;cursor:pointer;transition:opacity .12s,background .12s}.palette:hover .palette-del{opacity:1}.palette-del:hover{background:#e5484d}.palette-del svg,.palette-add svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.palette-add{display:grid;place-items:center;height:28px;padding:0;border:1px dashed var(--field-line);border-radius:var(--r-block);background:transparent;color:var(--muted);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.palette-add:hover{border-color:var(--muted);color:var(--text);background:var(--field)}.palette-add svg{width:14px;height:14px;stroke-width:2}.ge-bar{height:24px;border-radius:var(--r-field);overflow:hidden;cursor:copy;background:repeating-conic-gradient(var(--check-a) 0 25%,var(--check-b) 0 50%) 0 0 / 8px 8px;box-shadow:inset 0 0 0 1px var(--hairline)}.ge-bar canvas{display:block;width:100%;height:100%}.ge-handles{position:relative;height:20px;margin:0 6px}.ge-handle{position:absolute;top:4px;width:12px;height:12px;margin-left:-6px;padding:0;border:2px solid #fff;border-radius:3px;background:var(--c);box-shadow:0 1px 3px #00000080;cursor:grab;touch-action:none;transition:transform .12s}.ge-handle:hover{transform:scale(1.15)}.ge-handle.is-selected{border-color:var(--accent);transform:scale(1.15)}.ge-handle:active{cursor:grabbing}.ge-row{display:flex;align-items:center;gap:6px;margin:2px 0 6px}.ge-pos{flex-shrink:0;white-space:nowrap;display:grid;place-items:center;width:48px;height:28px;border-radius:var(--r-field);background:var(--field);color:var(--muted);font-variant-numeric:tabular-nums}.switch{-webkit-appearance:none;appearance:none;position:relative;flex-shrink:0;width:30px;height:18px;margin:0;border-radius:999px;background:var(--field-line);cursor:pointer;transition:background .18s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0006;transition:transform .18s cubic-bezier(.3,.7,.4,1)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(12px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;border-radius:var(--r-block);background:var(--field)}.segmented-2{grid-template-columns:1fr 1fr}.segmented label{position:relative;cursor:pointer}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{display:block;height:26px;line-height:26px;border-radius:var(--r-seg);text-align:center;font-weight:500;color:var(--muted);transition:background .12s,color .12s}.segmented label:hover span{color:var(--text)}.segmented input:checked+span{background:var(--seg-on);color:var(--text);box-shadow:0 1px 2px #0006,inset 0 0 0 .5px var(--hairline)}.segmented input:focus-visible+span{outline:2px solid var(--accent)}.btn{appearance:none;height:30px;padding:0 14px;border:0;border-radius:999px;font:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:background .12s,opacity .12s,transform .1s}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--inv-bg);color:var(--inv-fg)}.btn-primary:hover{background:var(--inv-hover)}.btn-secondary{background:var(--field);color:var(--text)}.btn-secondary:hover{background:var(--seg-on)}.btn-block{width:100%;margin-top:12px}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.head-actions{display:flex;align-items:center;gap:4px}.head-btn{width:30px;height:30px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.icon-moon{display:none}:root[data-theme=light] .icon-sun{display:none}:root[data-theme=light] .icon-moon{display:block}body{transition:background .2s}.segmented-grid{grid-template-columns:repeat(3,1fr)}.dropzone-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.privacy{margin:4px 0 0;font-size:12px;color:var(--dim)}.compare-canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:6px;pointer-events:none}.compare-tag{position:absolute;top:10px;padding:3px 8px;border-radius:999px;background:#0000008c;color:#fff;font-size:11px;font-weight:500;pointer-events:none}.compare-before{left:10px}.compare-after{right:10px}.segmented-4{grid-template-columns:repeat(4,1fr)}.btn-icon{display:grid;place-items:center;width:36px;padding:0;flex-shrink:0}.btn-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.btn.is-busy{opacity:.6;cursor:progress}.recipe-save{display:flex;gap:6px}.text-input{flex:1;min-width:0;height:30px;padding:0 10px;border:0;border-radius:var(--r-field);background:var(--field);color:var(--text);font:inherit;outline:none;box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .12s}.text-input::placeholder{color:var(--dim)}.text-input:hover{box-shadow:inset 0 0 0 1px var(--field-line)}.text-input:focus{box-shadow:inset 0 0 0 1px var(--accent);background:var(--field-focus)}.recipe-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}.recipe{display:flex;align-items:center;gap:4px}.recipe-apply{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border:0;border-radius:var(--r-field);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.recipe-apply:hover{background:var(--field)}.recipe-swatch{flex-shrink:0;width:26px;height:14px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--hairline)}.recipe-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;left:50%;bottom:28px;z-index:60;padding:9px 16px;border-radius:999px;background:var(--inv-bg);color:var(--inv-fg);font-size:13px;font-weight:500;box-shadow:0 8px 24px #0000004d;transform:translate(-50%,12px);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.toast.is-visible{opacity:1;transform:translate(-50%)}.btn-link{display:flex;align-items:center;justify-content:center;text-decoration:none}.btn-block+.btn-block{margin-top:6px}.privacy-link{color:var(--muted);font-size:12.5px}.privacy-link:hover{color:var(--text)}.modal{width:min(420px,calc(100vw - 32px));padding:0;border:0;border-radius:var(--r-card);background:var(--card);color:var(--text);box-shadow:0 0 0 1px var(--hairline),0 24px 64px #00000073}.modal::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-body{display:flex;flex-direction:column;gap:10px;padding:16px;font-size:13px}.modal-body h2{font-size:16px}.modal-preview{width:100%;max-height:260px;object-fit:contain;border-radius:var(--r-block);background:var(--field)}.modal-field{display:flex;flex-direction:column;gap:5px;color:var(--muted)}.modal-field .text-input{height:34px}.modal-consent{display:flex;gap:8px;align-items:flex-start;color:var(--muted);line-height:1.4;cursor:pointer}.modal-consent input{margin-top:2px;accent-color:var(--accent)}.modal-status{min-height:1em;margin:0;color:var(--muted)}.modal-status.is-error{color:#e5484d}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.text-area{border-radius:var(--r-block);width:100%;height:auto;min-height:52px;padding:8px 10px;resize:vertical;line-height:1.4}.text-pos{width:96px;margin-left:auto}.text-pos span{height:22px;line-height:22px;font-size:12px}.segmented-grid.segmented{grid-auto-rows:auto}.zoom-bar{overflow:hidden;min-width:132px;transition:transform .32s cubic-bezier(.24,1.34,.38,1)}.zoom-bar.is-pressed{transform:scaleX(1.06);transition-duration:.16s}.zoom-step{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;touch-action:none;transition:background .12s,color .12s}.zoom-step:hover{color:var(--text)}.zoom-step svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.zoom-level{position:relative;z-index:1;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:2px}.zoom-digits{position:relative;display:inline-grid;overflow:hidden;height:18px;transition:transform .32s cubic-bezier(.24,1.34,.38,1)}.zoom-bar.is-pressed .zoom-digits{transform:scale(1.06)}.zoom-num{grid-area:1 / 1;line-height:18px;text-align:right}.zoom-unit{color:var(--muted)}.zoom-num.zoom-in.up{animation:zoomInUp .32s cubic-bezier(.3,.7,.4,1) both}.zoom-num.zoom-in.down{animation:zoomInDown .32s cubic-bezier(.3,.7,.4,1) both}.zoom-num.zoom-out.up{animation:zoomOutUp .32s cubic-bezier(.3,.7,.4,1) both}.zoom-num.zoom-out.down{animation:zoomOutDown .32s cubic-bezier(.3,.7,.4,1) both}@keyframes zoomInUp{0%{transform:translateY(80%);opacity:0;filter:blur(2px)}}@keyframes zoomInDown{0%{transform:translateY(-80%);opacity:0;filter:blur(2px)}}@keyframes zoomOutUp{to{transform:translateY(-80%);opacity:0;filter:blur(2px)}}@keyframes zoomOutDown{to{transform:translateY(80%);opacity:0;filter:blur(2px)}}.zoom-rail{position:absolute;inset:0;border-radius:inherit;pointer-events:none}.zoom-fill{position:absolute;inset:0;background:#ffffff12;transform:scaleX(var(--zf, .2));transform-origin:left center;opacity:0;transition:opacity .22s}:root[data-theme=light] .zoom-fill{background:#0000000f}.zoom-bar.is-sweeping .zoom-fill{opacity:1}.compare-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.compare-line path{fill:none;stroke:#fff;stroke-width:2;filter:drop-shadow(0 0 1px rgba(0,0,0,.35))}.compare-handle{position:absolute;top:0;left:0;display:grid;place-items:center;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;background:#fff;color:#111;box-shadow:0 2px 10px #00000059;cursor:ew-resize;touch-action:none}.compare-handle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.compare-tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#preview{object-fit:cover}#preview.is-morphing{transition:width .45s cubic-bezier(.3,.8,.3,1.1),height .45s cubic-bezier(.3,.8,.3,1.1)}.drag-overlay{border:0;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.drop-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 48px;border:1.5px dashed var(--ring-hover);border-radius:24px;background:var(--card);font-size:15px;transform:scale(.92) translateY(8px);transition:transform .35s cubic-bezier(.3,.8,.3,1.25),border-color .2s}.drop-card svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.stage.is-dragging .drop-card{transform:none}.stage.is-dragging .drop-card svg{animation:dropBob 1s ease-in-out infinite}@keyframes dropBob{50%{transform:translateY(-4px)}}.drop-no{display:none;color:#e5484d}.stage.is-refused .drop-ok{display:none}.stage.is-refused .drop-no{display:inline}.stage.is-refused .drop-card{border-color:#e5484d;animation:dropShake .45s cubic-bezier(.36,.07,.19,.97)}@keyframes dropShake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.home-dots{position:absolute;inset:0;pointer-events:none}.dropzone{position:relative;z-index:1}@media(prefers-reduced-motion:reduce){.zoom-num,.drop-card,.drop-card svg,#preview.is-morphing{animation:none!important;transition:none!important}}.dropzone:before{content:"";position:absolute;inset:-60px -90px;z-index:-1;background:radial-gradient(closest-side,var(--card) 55%,transparent);pointer-events:none}#preview[data-tool=boxes]{cursor:crosshair}.video-types{grid-template-columns:1fr 1fr;margin-top:4px}.stage{touch-action:none}.head-link{padding:6px 10px;border-radius:999px;color:var(--muted);font-size:12.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.head-link:hover{background:var(--chip);color:var(--text)}.head-import{background:var(--inv-bg);color:var(--inv-fg)}.head-import:hover{background:var(--inv-hover);color:var(--inv-fg)}.head-import svg{width:15px;height:15px}.card-head{padding-left:16px}.brand{min-width:0}.brand-mark{white-space:nowrap}@media(max-width:860px){html{overflow:auto;height:auto}body{overflow:visible;height:auto}.app{display:flex;flex-direction:column;gap:8px;overflow:visible;height:auto;min-height:100dvh;padding:8px}.panel{display:contents}.card-head{order:-1;position:sticky;top:8px;z-index:20;box-shadow:0 8px 24px #00000040}.stage{order:0;height:62svh;min-height:340px;padding:60px 8px 52px}.panel-scroll{order:1;overflow:visible;border-radius:0}.card-foot{order:2;position:sticky;bottom:8px;z-index:20;box-shadow:0 0 0 8px var(--bg),0 -8px 24px #0000004d}.toolbar{top:10px;max-width:calc(100% - 16px);overflow-x:auto;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.toolbar .tool:not(.tool-icon){width:36px;padding:0;gap:0;justify-content:center;font-size:0}.toolbar kbd,.stage-info{display:none}.zoom-bar{right:8px;bottom:8px}.dropzone{padding:0 8px}.dropzone h1{font-size:30px}.dropzone .lead{font-size:14px}.dropzone:before{inset:-40px -20px}.drop-card{padding:28px 24px}}.app{grid-template-columns:minmax(0,1fr) var(--panel-w) 188px}@media(min-width:861px){.stage{order:1}.panel{order:2}.side-nav{order:3}}.side-nav{display:flex;flex-direction:column;min-height:0;padding:10px;overflow-y:auto;scrollbar-width:none;font-size:13px}.side-nav::-webkit-scrollbar{display:none}.side-head{display:flex;padding:8px 8px 10px;color:inherit;text-decoration:none}.side-group-title{padding:14px 10px 6px;color:var(--dim);font-size:11.5px;font-weight:500}.nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;border-radius:999px;color:var(--muted);font-weight:500;text-decoration:none;white-space:nowrap;transition:background .12s,color .12s}.nav-item:hover{background:var(--chip);color:var(--text)}.nav-item.is-current{background:var(--seg-on);color:var(--text)}.nav-mark{flex-shrink:0;width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--field-line);transition:background .15s,box-shadow .15s}.nav-item.is-on .nav-mark{background:var(--accent);box-shadow:none}.nav-item kbd{margin-left:auto}.side-foot{display:flex;align-items:center;gap:2px;margin-top:auto;padding:12px 0 0}.side-foot .head-link{margin-right:auto}.import-card{padding:10px}.import-btn{display:flex;align-items:center;gap:8px;width:100%;height:36px;padding:0 8px 0 14px}.import-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.import-btn span{flex:1;text-align:left}.import-btn kbd{background:color-mix(in srgb,var(--inv-fg) 12%,transparent);color:inherit;opacity:.6}.panel-bottom{display:flex;flex-direction:column;gap:var(--gap)}.panel-bottom .card[data-section=format]{padding-bottom:14px}@media(max-width:860px){.side-nav{order:-2;position:sticky;top:8px;z-index:20;display:grid;grid-template-columns:1fr auto;grid-template-areas:"head foot" "groups groups";padding:6px;overflow:visible;box-shadow:0 0 0 8px var(--bg),0 8px 24px #00000040}.side-head{grid-area:head;padding:6px 8px}.side-foot{grid-area:foot;margin:0;padding:0}.side-groups{grid-area:groups;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-top:4px}.side-groups::-webkit-scrollbar{display:none}.side-group{display:contents}.side-group-title,.nav-item kbd{display:none}.nav-item{flex-shrink:0;height:30px;gap:8px;font-size:12.5px}.import-card{order:-1}.panel-bottom{display:contents}.panel-bottom .card[data-section=format]{order:2}.card-foot{order:3}.stage:has(#canvasWrap:not([hidden])){position:sticky;top:94px;z-index:15;height:40svh;min-height:260px;padding:52px 8px 44px;box-shadow:0 0 0 8px var(--bg)}.stage:has(#canvasWrap:not([hidden])) .toolbar{top:8px}.stage:has(#canvasWrap:not([hidden])) .zoom-bar{bottom:6px}.import-card{order:1}}.nav-gallery{position:relative;display:flex;flex-direction:column;gap:10px;margin:2px 0 6px;padding:12px;border-radius:18px;background:var(--field);color:var(--text);text-decoration:none;box-shadow:inset 0 0 0 1px var(--hairline);transition:background .15s,transform .15s}.nav-gallery:hover{background:var(--seg-on)}.nav-gallery:active{transform:scale(.98)}.nav-gallery-thumbs{position:relative;width:72px;height:38px}.nav-gallery-thumbs i{position:absolute;top:2px;width:34px;height:34px;border-radius:9px;box-shadow:0 0 0 2px var(--field),0 3px 8px #0000004d;transition:transform .25s cubic-bezier(.3,.7,.4,1.4)}.nav-gallery-thumbs i:nth-child(1){left:0;transform:rotate(-8deg);z-index:1}.nav-gallery-thumbs i:nth-child(2){left:18px;transform:rotate(2deg);z-index:2}.nav-gallery-thumbs i:nth-child(3){left:36px;transform:rotate(10deg);z-index:3}.nav-gallery:hover .nav-gallery-thumbs i:nth-child(1){transform:rotate(-14deg) translate(-4px)}.nav-gallery:hover .nav-gallery-thumbs i:nth-child(3){transform:rotate(16deg) translate(4px)}.nav-gallery-text{display:flex;flex-direction:column;gap:2px;line-height:1.3}.nav-gallery-text strong{font-size:14px;font-weight:600}.nav-gallery-text span{color:var(--muted);font-size:11.5px}.nav-gallery-arrow{position:absolute;top:12px;right:12px;width:15px;height:15px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s,stroke .15s}.nav-gallery:hover .nav-gallery-arrow{transform:translate(2px,-2px);stroke:var(--text)}@media(min-width:861px){.side-foot .head-link{display:none}.side-foot{justify-content:flex-end}}@media(max-width:860px){.nav-gallery{display:none}}.segmented-grid.distort-types{grid-template-columns:repeat(2,1fr)}.toolbar .tool:not(.tool-icon){width:36px;padding:0;gap:0;justify-content:center;font-size:0}.toolbar kbd{display:none}.nav-item.has-thumb{height:36px;padding-left:5px}.nav-thumb{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--field);box-shadow:0 0 0 1px var(--hairline);transition:box-shadow .15s,transform .2s}.nav-item:hover .nav-thumb{transform:scale(1.06)}.nav-item.is-on .nav-thumb{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--accent)}.filter-strip{display:flex;gap:6px;margin:0 -16px;padding:5px 16px 4px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:0 16px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.filter-strip::-webkit-scrollbar{display:none}.filter-chip{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0;width:48px;scroll-snap-align:start;cursor:pointer}.filter-chip input{position:absolute;opacity:0;pointer-events:none}.filter-thumb{width:44px;height:44px;border-radius:var(--r-seg);background:var(--field);box-shadow:0 0 0 1px var(--hairline);transition:box-shadow .15s,transform .15s}.filter-chip:hover .filter-thumb{transform:translateY(-1px)}.filter-chip span{overflow:hidden;max-width:100%;color:var(--muted);font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.filter-chip input:checked~.filter-thumb{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--accent)}.filter-chip input:checked~span{color:var(--text)}.filter-chip input:focus-visible~.filter-thumb{box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--ring-hover)}@media(max-width:860px){.nav-item.has-thumb{height:30px;padding-left:4px;gap:6px}.nav-thumb{width:22px;height:22px}}.tip{position:fixed;z-index:100;display:flex;align-items:center;gap:4px;padding:5px 6px 5px 9px;border-radius:var(--r-field);background:#1e1e1e;color:#fff;font-size:12px;font-weight:500;line-height:1;white-space:nowrap;pointer-events:none;box-shadow:0 0 0 1px #ffffff14,0 6px 18px #00000059;opacity:0;transform:translateY(-2px)}.tip.is-on{opacity:1;transform:none;transition:opacity .1s,transform .1s}.tip span{margin-right:4px}.tip kbd{padding:2px 5px;border-radius:4px;background:#ffffff1f;color:#ffffffb3;font-size:11px}.segmented-grid.brush-modes{grid-template-columns:repeat(2,1fr)}svg.f7{fill:currentColor!important;stroke:none!important}.tool svg.f7{width:20px;height:20px}.tool svg.sf{width:22px;height:22px;stroke-width:1.5}.tool svg.sf .sf-dot{fill:currentColor;stroke:none}
