@font-face{font-family:Alice;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/alice-400-DOnBKDre.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fraunces-400-ukD16Tqj.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fraunces-400-ukD16Tqj.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/cormorant-garamond-400-CUoBjw-S.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/cormorant-garamond-400-CUoBjw-S.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/eb-garamond-400-CRpggXlh.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/eb-garamond-400-CRpggXlh.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/playfair-display-400-BOwq7MWX.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/playfair-display-400-BOwq7MWX.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/spectral-400-CTVgUekv.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/spectral-600-DE3OxvnQ.woff2) format("woff2")}@font-face{font-family:Lora;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/lora-400-BiLcIKcI.woff2) format("woff2")}@font-face{font-family:Lora;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/lora-400-BiLcIKcI.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/inter-400-Dx4kXJAl.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/inter-400-Dx4kXJAl.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/instrument-sans-400-BbzFLZTg.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/instrument-sans-400-BbzFLZTg.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fraunces-700-CEOla-zY.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fraunces-400-italic-ChpO6tcr.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/fraunces-700-italic-BTx51a-P.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/cormorant-garamond-700-DajfzrDU.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/cormorant-garamond-400-italic-Dc_OZ8oc.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/cormorant-garamond-700-italic-1ifP4r4a.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/eb-garamond-700-D7LhwqnD.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/eb-garamond-400-italic-DSEbMgZu.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/eb-garamond-700-italic-Db6TyVBE.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/playfair-display-700-CuDiGg7c.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/playfair-display-400-italic-LeeEXsx5.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/playfair-display-700-italic-CB566L-e.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/spectral-700-Cd2m0ohD.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/spectral-400-italic-CDO25mTW.woff2) format("woff2")}@font-face{font-family:Spectral;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/spectral-700-italic-CfJS6vGz.woff2) format("woff2")}@font-face{font-family:Lora;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/lora-700-BHK4Pzk4.woff2) format("woff2")}@font-face{font-family:Lora;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/lora-400-italic-DYjZp4sZ.woff2) format("woff2")}@font-face{font-family:Lora;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/lora-700-italic-BzqHDNuv.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/inter-700-Yt3aPRUw.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/inter-400-italic-D1l0FflY.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/inter-700-italic-BsEzapPQ.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/instrument-sans-700-CYfAanHo.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/instrument-sans-400-italic-DCPiXYsF.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/instrument-sans-700-italic-YQU9YmSo.woff2) format("woff2")}@font-face{font-family:Helvetica;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/helvetica-400-JJMwy8iK.woff2) format("woff2")}@font-face{font-family:Helvetica;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/helvetica-700-B3LV_-_h.woff2) format("woff2")}@font-face{font-family:Helvetica;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/helvetica-400-italic-BCTuf3Qa.woff2) format("woff2")}@font-face{font-family:Helvetica;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/helvetica-700-italic-DRG9rgua.woff2) format("woff2")}@font-face{font-family:Helvetica Compressed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/helvetica-compressed-400-C3e4W2-F.woff2) format("woff2")}@font-face{font-family:Helvetica Rounded;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/helvetica-rounded-700-BGshdu9p.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-400-DMJ8VG8y.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-500-DSY6xOcd.woff2) format("woff2")}:root{--checker: linear-gradient(45deg, #d6d6d0 25%, transparent 25%), linear-gradient(-45deg, #d6d6d0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d6d6d0 75%), linear-gradient(-45deg, transparent 75%, #d6d6d0 75%);--accent: #2A46C8;--accent-hover: #1f39b4;--accent-soft: #eef1fd;--accent-text: #22389f;--danger: #b4443a;--app-bg: #f7f7f4;--bar-bg: #ffffff;--panel-bg: #f4f4f0;--card-bg: #ffffff;--input-bg: #fbfbf9;--seg-track: #f4f4f0;--track: #ecece6;--border: #e6e6e0;--border-card: #e9e9e3;--border-input: #ebebe5;--border-strong: #cfcfc8;--border-hover: #c9c9c2;--text: #14151a;--text-2: #20211f;--text-3: #3c3c37;--label: #5d5d57;--muted: #9a9a92;--stage-grad: radial-gradient(120% 90% at 50% 0%, #23252d 0%, #15161b 60%, #101116 100%);--strip-bg: rgba(12, 13, 17, .72);--strip-border: #262830;--strip-text: #7e8089;--strip-text-hi: #c9cbd2;--strip-line: #33353e;--strip-line-hi: #4d505c;--font-ui: "Instrument Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--app-h: 100vh;--topbar-h: 60px;--panel-w: 392px;--strip-h: 126px;--preview-pad: 34px;--tap: 28px;--field-label-w: 98px;--num-w: 52px;--fs-input: 14px;--fs-input-mono: 11px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}@supports (height: 100dvh){:root{--app-h: 100dvh}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--app-bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:calc(var(--app-h) - var(--kb, 0px));overflow:hidden}.app-body{flex:1;display:flex;min-height:0}.topbar{flex:none;height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--bar-bg);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:9px;flex:none}.brand-mark{width:22px;height:22px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Alice,serif;font-size:13px;line-height:1}.brand-name{font-size:14px;font-weight:600;letter-spacing:-.01em}.bar-divider{width:1px;height:24px;background:#ebebe5;flex:none}.bar-spacer{flex:1}.save-state{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap;flex:none}.save-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);transition:background .15s}.save-state.dirty .save-dot{background:var(--border-strong)}.save-state.failed{color:var(--danger)}.save-state.failed .save-dot{background:var(--danger)}.save-state.failed .save-word{display:inline}.preset-strip{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.preset-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--bar-bg);white-space:nowrap;flex:none}.preset-chip:hover:not(.active){border-color:var(--border-hover)}.preset-chip.active{border-color:var(--accent);background:var(--accent-soft)}.preset-apply{background:none;border:none;font:inherit;font-size:12px;color:var(--label);padding:6px 12px;border-radius:999px;cursor:pointer}.preset-chip.active .preset-apply{color:var(--accent-text);font-weight:500}.preset-del{background:none;border:none;color:var(--muted);font-size:14px;line-height:1;padding:0 9px 0 0;cursor:pointer;transition:opacity .12s}@media (hover: hover){.preset-del{opacity:0}.preset-chip:hover .preset-del,.preset-del:focus-visible{opacity:1}}.preset-del:hover{color:var(--danger)}.preset-save{background:none;border:1px dashed var(--border-strong);border-radius:999px;color:var(--muted);font:inherit;font-size:12px;padding:6px 12px;cursor:pointer;white-space:nowrap;flex:none}.preset-save:hover{border-color:var(--accent);color:var(--accent)}.seg{display:flex;background:var(--seg-track);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px;flex:none}.seg button{background:none;border:none;font:inherit;font-size:12px;font-weight:500;color:var(--label);padding:6px 13px;border-radius:7px;cursor:pointer}.seg button:hover:not(.active){color:var(--text)}.seg button.active{background:var(--accent);color:#fff}.seg-more-narrow{display:none}.seg-tabs button{flex:1}.export-btn{display:flex;align-items:center;gap:9px;background:var(--accent);color:#fff;border:none;border-radius:9px;padding:10px 18px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;flex:none;box-shadow:0 1px 2px #141a3c4d}.export-short{display:none}.undo-btn{font-size:15px}.dest-group{display:flex;align-items:center;gap:4px;flex:none}.dest-clear{width:24px;font-size:15px}.export-btn:hover:not(:disabled){background:var(--accent-hover)}.export-btn:disabled{opacity:.6;cursor:default}.export-icon{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.stage-col{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--stage-grad)}.preview{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:var(--preview-pad);overflow:hidden}.preview-fit{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}.preview-frame{flex:none;border-radius:6px;overflow:hidden;box-shadow:0 34px 80px #0009,0 0 0 1px #ffffff0f}.stage-meta{display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;color:var(--strip-text);flex-wrap:wrap;justify-content:center;text-align:center;flex:none}.stage-meta .dot{width:3px;height:3px;border-radius:50%;background:#4c4e57}.filmstrip{flex:none;height:var(--strip-h);display:flex;align-items:center;justify-content:center;gap:12px;padding:0 20px;border-top:1px solid var(--strip-border);background:var(--strip-bg)}.strip-arrow{width:30px;height:30px;flex:none;background:none;border:1px solid var(--strip-line);border-radius:8px;color:var(--strip-text);font-size:13px;line-height:1;cursor:pointer}.strip-arrow:hover:not(:disabled){border-color:var(--strip-line-hi);color:var(--strip-text-hi)}.strip-arrow:disabled{opacity:.35;cursor:default}.thumbs{display:flex;align-items:center;gap:12px}.thumb{position:relative;padding:0;border:none;background:none;border-radius:5px;cursor:pointer;line-height:0;opacity:.72;box-shadow:0 0 0 1px var(--strip-line);transition:opacity .12s}.thumb:hover{opacity:1}.thumb.active{opacity:1;box-shadow:0 0 0 2px var(--accent),0 4px 14px #00000073}.thumb.ghost{opacity:.3}.thumb-inner{overflow:hidden;border-radius:5px}.thumb-label{position:absolute;bottom:4px;left:4px;font-family:var(--font-mono);font-size:8px;line-height:1.5;color:#fff;background:#0000008c;padding:1px 4px;border-radius:3px}.thumb-del{position:absolute;top:-6px;right:-6px;width:15px;height:15px;display:flex;align-items:center;justify-content:center;font-size:8px;line-height:1;color:#fff;background:#22242c;border:1px solid var(--strip-line-hi);border-radius:50%;cursor:pointer;opacity:0;transition:opacity .12s,background .12s}@media (hover: hover){.thumb:hover .thumb-del{opacity:1}}.thumb.active .thumb-del{opacity:1}.thumb-del:hover{background:var(--danger);border-color:var(--danger)}.thumb.ghost .thumb-del{opacity:0}.thumb-add{flex:none;background:none;border:1px dashed #383a44;border-radius:5px;color:var(--strip-text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.thumb-add:hover{border-color:var(--accent);color:#8fa0f5}.thumb-add .plus{font-size:15px;line-height:1}.thumb-add .word{font-family:var(--font-mono);font-size:8px}.thumb-gap{flex:none;border:2px dashed var(--accent);border-radius:5px}.thumb-clone{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-50%) scale(1.06);border-radius:5px;overflow:hidden;box-shadow:0 0 0 2px var(--accent),0 8px 24px #00000073}.panel{width:var(--panel-w);flex:none;display:flex;flex-direction:column;min-height:0;background:var(--panel-bg);border-left:1px solid var(--border)}.tabbar{flex:none;display:flex;padding:0 16px;background:var(--bar-bg);border-bottom:1px solid var(--border)}.tab{background:none;border:none;font:inherit;font-size:13px;color:var(--muted);padding:17px 13px;cursor:pointer}.tab:hover:not(.active){color:var(--text-3)}.tab.active{color:var(--text);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.sheet-grab{display:none}.tab-body{flex:1;min-height:0;overflow-y:auto;padding:18px 16px 24px;display:flex;flex-direction:column;gap:16px}.card{background:var(--card-bg);border:1px solid var(--border-card);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px}.card-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--muted)}.card-head{display:flex;align-items:center;justify-content:space-between}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.color-field-wrap{position:relative}.color-field-wrap.has-lock .color-field{padding-right:32px}.color-lock{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.color-field{position:relative;display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--border-input);border-radius:9px;padding:8px 10px;cursor:pointer;background:none;font:inherit;text-align:left}.color-field:hover{border-color:var(--border-hover)}.color-field:focus-within{border-color:var(--accent)}.color-swatch{position:relative;overflow:hidden;width:24px;height:24px;flex:none;border-radius:6px;box-shadow:inset 0 0 0 1px #0000001a}.color-text{display:flex;flex-direction:column;gap:1px;min-width:0}.color-name{font-size:12px;color:var(--text-3)}.color-hex{font-family:var(--font-mono);font-size:10px;color:var(--muted)}.cp-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:#1011166b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:cp-fade .12s ease-out}.cp-modal{width:288px;display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--card-bg);border:1px solid var(--border-card);border-radius:14px;box-shadow:0 24px 60px #0000004d,0 2px 6px #00000014;animation:cp-rise .14s cubic-bezier(.2,.8,.3,1)}@keyframes cp-fade{0%{opacity:0}}@keyframes cp-rise{0%{opacity:0;transform:translateY(6px) scale(.985)}}.cp-head{display:flex;align-items:center;justify-content:space-between}.cp-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.cp-close{background:none;border:none;font:inherit;font-size:17px;line-height:1;color:var(--muted);padding:0 2px;cursor:pointer}.cp-close:hover{color:var(--text)}.cp-sv{position:relative;height:152px;border-radius:10px;cursor:crosshair;touch-action:none;box-shadow:inset 0 0 0 1px #0000001a}.cp-sv:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cp-sv-white,.cp-sv-black{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;pointer-events:none}.cp-sv-white{background:linear-gradient(to right,#fff,#fff0)}.cp-sv-black{background:linear-gradient(to top,#000,#0000)}.cp-sv-handle{position:absolute;width:15px;height:15px;border-radius:50%;border:2px solid #fff;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 4px #00000073}.cp-sv-handle.on-light{border-color:#14151a;box-shadow:0 1px 3px #00000040}.cp-hue{position:relative;height:12px;border-radius:999px;cursor:pointer;touch-action:none;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);box-shadow:inset 0 0 0 1px #0000001a}.cp-hue:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cp-hue-handle{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:2px solid #fff;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 4px #00000059}.cp-alpha{position:relative;height:12px;border-radius:999px;cursor:pointer;touch-action:none;overflow:hidden;background-image:var(--checker);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0;box-shadow:inset 0 0 0 1px #0000001a}.cp-alpha:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cp-alpha-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit}.cp-alpha-handle{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;border:2px solid #fff;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 4px #00000059}.cp-alpha-pct{font-family:var(--font-mono);font-size:11px;color:var(--muted);flex:none;-webkit-user-select:none;user-select:none}.color-swatch,.cp-preview{background-color:transparent;background-image:var(--checker);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0}.color-swatch>span,.cp-preview>span{display:block;width:100%;height:100%;border-radius:inherit}.cp-readout{display:flex;align-items:center;gap:8px;border:1px solid var(--border-input);background:var(--input-bg);border-radius:9px;padding:7px 9px}.cp-readout:focus-within{border-color:var(--accent)}.cp-preview{width:20px;height:20px;flex:none;border-radius:6px;box-shadow:inset 0 0 0 1px #0000001a}.cp-hash{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.cp-hex{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--text-2)}.cp-eyedrop{flex:none;background:none;border:none;padding:2px;color:var(--muted);cursor:pointer;display:flex}.cp-eyedrop:hover{color:var(--accent)}.cp-eyedrop-icon{width:15px;height:15px;fill:currentColor}.cp-section{display:flex;flex-direction:column;gap:8px}.cp-section-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--muted)}.cp-swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.cp-swatch{position:relative;aspect-ratio:1;border:none;border-radius:6px;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #0000001f}.cp-swatch:hover{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--border-hover)}.cp-swatch.active{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--accent)}.cp-swatch.active:after{content:"";position:absolute;left:50%;top:46%;width:4px;height:8px;border:1.5px solid #fff;border-top:0;border-left:0;transform:translate(-50%,-50%) rotate(45deg)}.cp-swatch.active.on-light:after{border-color:#14151a}.cp-actions{display:flex;gap:8px}.cp-btn{flex:1;border:1px solid var(--border-strong);background:none;border-radius:9px;padding:9px 12px;font:inherit;font-size:12px;font-weight:500;color:var(--text-3);cursor:pointer}.cp-btn:hover{border-color:var(--border-hover);color:var(--text)}.cp-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.cp-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.cp-btn:disabled{opacity:.45;cursor:default}.ar-modal{width:340px;max-width:100%;max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--card-bg);border:1px solid var(--border-card);border-radius:14px;box-shadow:0 24px 60px #0000004d,0 2px 6px #00000014;animation:cp-rise .14s cubic-bezier(.2,.8,.3,1)}.ar-group{display:flex;flex-direction:column;gap:7px}.ar-list{display:flex;flex-direction:column;gap:4px}.ar-item{display:flex;align-items:baseline;gap:9px;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:9px;padding:7px 10px;font:inherit;color:var(--text-3);cursor:pointer}.ar-item:hover{border-color:var(--border-hover);color:var(--text)}.ar-item.active{background:var(--accent);border-color:var(--accent);color:#fff}.ar-item-label{font-size:12px;font-weight:600;min-width:46px}.ar-item-note{font-size:11px;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-item-px{font-family:var(--font-mono);font-size:10px;color:var(--muted)}.ar-item.active .ar-item-note,.ar-item.active .ar-item-px{color:#ffffffc7}.ar-custom{display:flex;align-items:center;gap:7px}.ar-num{width:62px;border:1px solid var(--border-input);border-radius:9px;background:none;padding:8px 10px;font:inherit;font-size:12px;color:var(--text)}.ar-num:focus{outline:none;border-color:var(--accent)}.ar-colon{color:var(--muted);font-size:12px}.ar-px{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--muted)}.ar-px.invalid{color:var(--danger)}.font-field{position:relative;border:1px solid var(--border-input);border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.font-field:hover{border-color:var(--border-hover)}.font-field:focus-within{border-color:var(--accent)}.font-kind{font-family:var(--font-mono);font-size:9px;color:var(--muted)}.font-name{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:16px;color:var(--text-2)}.font-caret{font-size:11px;color:var(--muted)}.font-field select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.fields{display:flex;flex-direction:column;gap:13px;padding-top:4px}.field{display:flex;align-items:center;gap:11px}.field-label{width:var(--field-label-w);flex:none;font-size:12px;color:var(--label)}.field-num,.num-box{width:var(--num-w);flex:none;border:1px solid var(--border-input);border-radius:7px;padding:5px 7px;font-family:var(--font-mono);font-size:var(--fs-input-mono);color:var(--text-3);text-align:right;background:var(--input-bg)}.field-num:focus{outline:1px solid var(--accent)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;height:15px;margin:0;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:linear-gradient(to right,var(--accent) 0 var(--fill, 0%),var(--track) var(--fill, 0%) 100%)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:15px;height:15px;margin-top:-5px;border-radius:50%;background:#fff;border:1.5px solid var(--accent);box-shadow:0 1px 3px #141a3c40}input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:var(--track)}input[type=range]::-moz-range-progress{height:5px;border-radius:3px;background:var(--accent)}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:1.5px solid var(--accent);box-shadow:0 1px 3px #141a3c40}input[type=range]:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.overlay-trigger{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--border-input);border-radius:9px;padding:8px 10px;background:none;font:inherit;font-size:12px;color:var(--text-3);cursor:pointer}.overlay-trigger:hover{border-color:var(--border-hover)}.overlay-trigger:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.overlay-trigger-swatch{position:relative;isolation:isolate;width:26px;height:26px;flex:none;border-radius:7px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.overlay-trigger-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-modal{width:340px;max-width:100%;max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--card-bg);border:1px solid var(--border-card);border-radius:14px;box-shadow:0 24px 60px #0000004d,0 2px 6px #00000014;animation:cp-rise .14s cubic-bezier(.2,.8,.3,1)}.ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bg-stage{position:relative;align-self:center;flex:none;overflow:hidden;border-radius:8px;box-shadow:inset 0 0 0 1px #0000001f;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.bg-stage:active{cursor:grabbing}.bg-stage img,.bg-stage canvas{pointer-events:none}.grad-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.grad-actions .hint{margin:0}.grad-actions .icon-row{align-items:center}.ramp{display:flex;flex-direction:column;gap:10px}.ramp-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ramp-head .icon-row{align-items:center}.ramp-head .ov-add{align-self:center}.ramp-bar{position:relative;height:22px;border-radius:6px;box-shadow:inset 0 0 0 1px #0000001f;cursor:copy;touch-action:none}.ramp-fill{display:block;width:100%;height:100%;border-radius:inherit}.ramp-stop{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 1px 3px #00000073;cursor:grab;touch-action:none}.ramp-stop:active{cursor:grabbing}.ramp-stop.active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent),0 1px 3px #00000073}.ramp-stop.on-light{box-shadow:0 0 0 2px #00000073,0 1px 3px #00000059}.ramp-stop.on-light.active{box-shadow:0 0 0 2px #00000073,0 0 0 4px var(--accent),0 1px 3px #00000059}.bg-trigger-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.slide-checker{background-color:#fff;background-image:var(--checker);background-size:80px 80px;background-position:0 0,0 40px,40px -40px,-40px 0}.ov-tile{display:flex;flex-direction:column;gap:5px;border:none;background:none;padding:0;font:inherit;cursor:pointer;color:var(--muted)}.ov-swatch{position:relative;isolation:isolate;aspect-ratio:1;border-radius:8px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.ov-tile:hover .ov-swatch{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--border-hover)}.ov-tile.active .ov-swatch{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--accent)}.ov-tile.active{color:var(--text)}.ov-texture{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center}.ov-texture-tint{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:multiply;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ov-tile-name{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.ov-rows{display:flex;flex-direction:column;gap:12px}.ov-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ov-row-blend{flex-basis:100%;margin-left:28px;width:auto;border:1px solid var(--border-input);border-radius:7px;padding:3px 6px;background:none;font:inherit;font-size:11px;color:var(--text-3);text-transform:capitalize;cursor:pointer}.ov-row-blend:hover{border-color:var(--border-hover)}.ov-row-blend:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.ov-row input[type=range]{flex:1;min-width:0}.ov-row-swatch{position:relative;isolation:isolate;width:20px;height:20px;flex:none;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.ov-row-swatch-btn{border:none;padding:0;cursor:pointer}.ov-row-swatch-btn:hover{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--border-hover)}.ov-row-swatch-btn:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.ov-add{align-self:flex-start;border:1px solid var(--border-input);border-radius:7px;padding:4px 10px;background:none;font:inherit;font-size:11px;color:var(--text-3);cursor:pointer}.ov-add:hover{border-color:var(--border-hover);color:var(--text)}.ov-add:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.ov-row-name{width:62px;flex:none;font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-remove{flex:none;border:none;background:none;padding:0 2px;font-size:15px;line-height:1;color:var(--muted);cursor:pointer}.ov-remove:hover{color:var(--text)}.ov-eye{flex:none;display:flex;align-items:center;border:none;background:none;padding:0 2px;color:var(--muted);cursor:pointer}.ov-eye:hover{color:var(--text)}.ov-eye:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.ov-row.is-hidden>*:not(.ov-eye){opacity:.4}.overlay-val{font-family:var(--font-mono);font-size:11px;color:var(--label);width:26px;flex:none;text-align:right}.check{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text-3);cursor:pointer}.check input{width:15px;height:15px;margin:0;flex:none;accent-color:var(--accent);cursor:pointer}.check.strong{font-weight:500}.toggle-block{display:flex;flex-direction:column;gap:7px;padding:2px 4px}.toggle{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;color:var(--text-3);cursor:pointer}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-track{position:relative;width:30px;height:17px;flex:none;border-radius:999px;background:#d8d8d1;transition:background .14s}.toggle-knob{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:transform .14s}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track .toggle-knob{transform:translate(13px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.icon-btn{width:var(--tap);height:var(--tap);flex:none;background:none;border:1px solid var(--border-input);border-radius:8px;color:var(--label);font-size:12px;line-height:1;cursor:pointer}.icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.icon-btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.active{border-color:var(--accent);color:var(--accent)}.icon-row{display:flex;gap:6px}.icon-glyph{width:15px;height:15px;display:block;margin:0 auto;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.field-block{display:flex;flex-direction:column;gap:7px}.field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.field-head .icon-btn{width:24px;height:24px}.field-name{font-size:12px;font-weight:500;color:var(--text-3)}.text-input{width:100%;background:var(--input-bg);border:1px solid var(--border-input);border-radius:9px;padding:10px 11px;font:inherit;font-size:var(--fs-input);color:var(--text-2);resize:vertical}.text-input.body{font-size:calc(var(--fs-input) - 1px);line-height:1.5;min-height:96px}.text-input:focus{outline:none;border-color:var(--accent)}.text-input.rich{white-space:pre-wrap;word-break:break-word;cursor:text;min-height:calc(var(--fs-input) * 1.4)}.text-input.rich.body{min-height:96px}.text-input.rich.is-empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.align-seg{display:flex;background:var(--seg-track);border:1px solid var(--border-input);border-radius:9px;padding:3px;gap:2px}.align-seg button{flex:1;background:none;border:none;font:inherit;font-size:12px;color:var(--label);padding:7px;border-radius:7px;cursor:pointer}.align-seg button:hover:not(.active){color:var(--text)}.align-seg button.active{background:var(--accent);color:#fff;font-weight:500}.card.inline-row{flex-direction:row;align-items:center;justify-content:space-between;padding:11px 14px}.dropzone{position:relative;border:1px dashed var(--border-strong);border-radius:10px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--input-bg);cursor:pointer;text-align:center}.dropzone:hover{border-color:var(--accent);background:#f7f8fe}.dropzone:focus-within{border-color:var(--accent)}.dropzone-title{font-size:12px;font-weight:500;color:var(--text-3)}.dropzone-note{font-family:var(--font-mono);font-size:10px;color:var(--muted)}.dropzone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.logo-preview{max-height:40px;max-width:100%;object-fit:contain}.kv{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--label)}.kv-val{font-family:var(--font-mono);color:var(--text-3);text-align:right;word-break:break-all}.hint{font-size:12px;color:var(--muted);line-height:1.45;margin:0}.hint.indent{padding-left:40px}.hint code{font-family:var(--font-mono);background:var(--seg-track);padding:1px 5px;border-radius:4px}.link-btn{background:none;border:none;color:var(--accent);font:inherit;font-size:12px;font-weight:600;padding:0;cursor:pointer;width:fit-content;text-align:left}.link-btn:hover{color:var(--accent-hover)}.link-btn.quiet{font-weight:400;color:var(--muted)}.link-btn.quiet:hover{color:var(--danger)}@media (max-width: 860px){:root{--panel-w: auto;--strip-h: 96px;--preview-pad: 12px;--field-label-w: 88px;--num-w: 64px;--fs-input: 16px;--fs-input-mono: 16px}.app-body{flex-direction:column}.stage-col{flex:1 1 auto;min-height:0}.panel.sheet{height:45vh;flex:none;border-left:none;border-top:1px solid var(--border);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px #0000002e;padding-bottom:var(--safe-b)}.panel.sheet.snapping{transition:height .22s cubic-bezier(.2,.8,.3,1)}.panel.sheet.peek .tab-body{overflow:hidden}.sheet-grab{display:flex;flex:none;align-items:center;justify-content:center;height:var(--tap);touch-action:none;cursor:grab}.sheet-grab:active{cursor:grabbing}.sheet-grab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sheet-bar{width:40px;height:4px;border-radius:2px;background:var(--border-strong)}.tab-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.topbar{height:auto;min-height:var(--topbar-h);flex-wrap:wrap;gap:10px;row-gap:8px;padding:calc(8px + var(--safe-t)) max(12px,var(--safe-r)) 8px max(12px,var(--safe-l))}.brand-name,.bar-divider,.bar-spacer,.save-word,.export-long{display:none}.export-short{display:inline}.export-btn{padding:10px 14px}.seg button:not(.seg-more){display:none}.seg-tabs button{display:block}.seg-more-wide{display:none}.seg-more-narrow{display:inline}.preset-strip{order:10;flex:1 1 100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.preset-strip::-webkit-scrollbar{display:none}.preset-save{position:sticky;left:0;background:var(--bar-bg)}.save-state{order:5}.filmstrip{padding-left:max(20px,var(--safe-l));padding-right:max(20px,var(--safe-r))}.tab-body{padding-bottom:calc(24px + var(--safe-b))}.text-input.body{font-size:var(--fs-input)}.cp-hex{font-size:var(--fs-input-mono)}.thumb-add{display:none}.filmstrip{gap:8px}.row2{grid-template-columns:1fr}}@media (pointer: coarse){:root{--tap: 44px}*{-webkit-tap-highlight-color:transparent}.field-head .icon-btn{width:40px;height:40px}.lock-btn{width:30px;height:30px;font-size:13px}.color-field-wrap.has-lock .color-field{padding-right:38px}.strip-arrow{height:var(--tap)}.seg button{min-height:var(--tap);padding:6px 14px}.align-seg button{min-height:40px}.tab{min-height:var(--tap);padding:15px 16px}.preset-apply,.preset-save{min-height:40px;padding:10px 14px}.export-btn,.cp-btn{min-height:var(--tap)}.cp-close{width:var(--tap);height:var(--tap)}.overlay-trigger{min-height:var(--tap)}.check input{width:22px;height:22px}.toggle-track{width:44px;height:26px}.toggle-knob{width:22px;height:22px}.toggle input:checked+.toggle-track .toggle-knob{transform:translate(18px)}.thumb-del{width:26px;height:26px;top:-9px;right:-9px;font-size:11px}input[type=range]{height:var(--tap)}input[type=range]::-webkit-slider-thumb{width:26px;height:26px;margin-top:-10px}input[type=range]::-moz-range-thumb{width:24px;height:24px}.cp-scrim{padding:16px;align-items:flex-end}.cp-modal{width:100%;max-width:340px}.ov-modal{width:100%}.cp-sv{height:auto;aspect-ratio:1.6}.cp-sv-handle{width:22px;height:22px}.cp-hue,.cp-alpha{height:22px}.cp-hue-handle,.cp-alpha-handle{width:24px;height:24px}.cp-swatches{grid-template-columns:repeat(6,1fr)}.thumb{touch-action:none}.thumb-clone{transform:translate(-50%,-140%) scale(1.1)}}.lock-btn{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:none;padding:0;font-size:11px;line-height:1;cursor:pointer;opacity:.4}.lock-btn:hover{opacity:.7}.lock-btn.on{opacity:.85}.field-label.has-lock{display:flex;align-items:center;justify-content:space-between;gap:4px}.font-lock{position:absolute;top:5px;right:6px;z-index:1}
