@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-gradient:linear-gradient(#00a3ff 0%, #00a3ff 100%);--brand:#00a3ff;--brand-deep:#0089d6;--brand-ink:#0072b5;--brand-soft:#e5f5ff;--brand-pale:#f2faff;--brand-line:#b3e1fd;--brand-ring:#00a3ff4d;--bg:#f4f4f4;--white:#fff;--ink:#171717;--ink-2:#6b6b6b;--ink-3:#9b9b9b;--ink-4:#c9c9c9;--line:#e6e6e6;--line-2:#efefef;--surface:#f5f5f5;--hover:#f1f1f1;--selected:#e5f5ff;--canvas-bg:#f4f4f4;--success:#2f8f5b;--success-soft:#e7f5ec;--warning:#b97a22;--warning-soft:#fbf1e1;--error:#c0513c;--error-soft:#fbebe7;--info:#3b6fb6;--info-soft:#ebf2fb;--guide:#f2557a;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:24px;--r-panel:20px;--r-pill:999px;--sh-1:0 1px 2px #0000000a;--sh-2:0 1px 2px #0000000a, 0 8px 24px -12px #0000001f;--sh-3:0 2px 6px #0000000d, 0 24px 48px -20px #00000038;--sh-raise:0 1px 1px #0000000d, 0 2px 6px -2px #0000001a;--sh-inset:inset 0 1px 2px #0000000a;--sh-panel:0 0 0 1px #0000000f, 0 1px 2px #00000008, 0 10px 30px -18px #00000024;--font:"Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-micro:11.5px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:15px;--fs-title:15px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.12s;--t-mid:.2s;--t-slow:.32s;--gap:12px;--bar-h:52px;--panel-top:calc(var(--gap) * 2 + var(--bar-h));--left-w:296px;--rail-w:48px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}img,svg{display:block}a{color:inherit}h1,h2,h3,h4,p{margin:0}:focus{outline:none}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--brand-soft)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.micro{font-size:var(--fs-sm);letter-spacing:-.005em;color:var(--ink-2);font-weight:500}.mono{font-family:var(--font-mono);font-feature-settings:"zero" 0;letter-spacing:-.01em}.muted{color:var(--ink-2)}.tnum{font-variant-numeric:tabular-nums}.scroll{scrollbar-width:thin;scrollbar-color:#d9dfdc transparent;overflow:auto}.scroll::-webkit-scrollbar{width:8px;height:8px}.scroll::-webkit-scrollbar-thumb{border:2px solid var(--white);background:#dce2df;border-radius:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.btn{border-radius:var(--r-md);height:36px;font-weight:500;font-size:var(--fs-md);letter-spacing:-.01em;white-space:nowrap;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), color var(--t-fast);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;padding:0 14px;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-sm{height:32px;font-size:var(--fs-sm);border-radius:var(--r-sm);gap:6px;padding:0 11px}.btn-lg{height:46px;font-size:var(--fs-lg);border-radius:12px;padding:0 20px}.btn-block{width:100%}.btn-primary{background:var(--brand-gradient);color:#fff;text-shadow:0 1px 1px #003c6440;font-weight:600;box-shadow:inset 0 1px #ffffff38,0 1px 2px #003c6433,0 6px 14px -6px #0089d68c}.btn-primary:hover:not(:disabled){background:linear-gradient(#00325a1f, #00325a1f), var(--brand-gradient)}.btn-primary:active:not(:disabled){background:linear-gradient(#00325a33, #00325a33), var(--brand-gradient)}.btn-secondary{background:var(--white);color:var(--ink);border:1px solid var(--line)}.btn-secondary:hover:not(:disabled){background:#fafafa;border-color:#d9d9d9}.btn-ghost{color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--hover)}.btn-soft{background:var(--brand-soft);color:var(--brand-ink)}.btn-soft:hover:not(:disabled){background:#d6efff}.btn-danger{background:var(--white);color:var(--error);border:1px solid #efd2cb}.btn-danger:hover:not(:disabled){background:var(--error-soft)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{border-radius:var(--r-sm);color:var(--ink);transition:background var(--t-fast) var(--ease), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn-sm{width:28px;height:28px}.icon-btn-md{width:34px;height:34px}.icon-btn-lg{border-radius:var(--r-md);width:40px;height:40px}.icon-btn:hover:not(:disabled){background:var(--hover)}.icon-btn.is-active{background:var(--brand-soft);color:var(--brand-deep)}.icon-btn:disabled{color:var(--ink-4);cursor:default}.icon-btn-outline{border:1px solid var(--line);background:var(--white)}.icon-btn-solid{background:var(--white);box-shadow:var(--sh-panel)}.tooltip{z-index:1000;pointer-events:none;color:#f5f5f5;white-space:nowrap;animation:tip-in .14s var(--ease-out);background:#1a1a1a;border-radius:8px;align-items:center;gap:8px;padding:6px 9px;font-size:12.5px;font-weight:500;display:flex;position:fixed;box-shadow:0 8px 20px -8px #0006}.tooltip kbd{font-family:var(--font-mono);color:#9a9a9a;font-size:11.5px}.tooltip:after{content:"";background:#1a1a1a;border-radius:1px;width:7px;height:7px;position:absolute;transform:rotate(45deg)}.tooltip-bottom{transform:translate(-50%)}.tooltip-bottom:after{top:-3px;left:calc(50% - 3.5px)}.tooltip-top{transform:translate(-50%,-100%)}.tooltip-top:after{bottom:-3px;left:calc(50% - 3.5px)}.tooltip-right{transform:translateY(-50%)}.tooltip-right:after{top:calc(50% - 3.5px);left:-3px}.tooltip-left{transform:translate(-100%,-50%)}.tooltip-left:after{top:calc(50% - 3.5px);right:-3px}@keyframes tip-in{0%{opacity:0}}.popover{z-index:900;background:var(--white);border-radius:var(--r-lg);box-shadow:0 0 0 1px #00000012, var(--sh-3);animation:pop-in .16s var(--ease-out);position:fixed}@keyframes pop-in{0%{opacity:0;transform:scale(.97)translateY(-2px)}}.menu{padding:6px}.menu-list{outline:none;max-height:min(64vh,460px);overflow:auto}.menu-item{border-radius:var(--r-sm);cursor:pointer;min-height:34px;font-size:var(--fs-md);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:5px 10px;display:flex}.menu-item.is-active{background:var(--hover)}.menu-item[aria-selected=true]{font-weight:550}.menu-item.is-disabled{color:var(--ink-4);cursor:default}.menu-item.is-danger{color:var(--error)}.menu-icon{width:16px;color:var(--ink-2);flex-shrink:0;place-items:center;display:grid}.menu-item.is-danger .menu-icon{color:var(--error)}.menu-text{flex-direction:column;flex:1;min-width:0;display:flex}.menu-desc{font-size:var(--fs-xs);color:var(--ink-2);font-weight:400}.menu-check{color:var(--brand-deep)}.menu-kbd{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3);margin-left:18px}.menu-sep{background:var(--line-2);height:1px;margin:5px 4px}.menu-heading{padding:8px 10px 4px}.menu-search{border-bottom:1px solid var(--line-2);color:var(--ink-3);align-items:center;gap:8px;margin-bottom:4px;padding:4px 8px 8px;display:flex}.menu-search input{background:0 0;border:0;flex:1;padding:4px 0}.menu-empty{color:var(--ink-3);text-align:center;padding:12px}.select{border-radius:var(--r-md);background:var(--white);border:1px solid var(--line);text-align:left;width:100%;height:36px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.01em;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);justify-content:space-between;align-items:center;gap:8px;padding:0 10px 0 12px;display:flex}.select:hover{border-color:#d6d6d6}.select.is-open,.select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.select-sm{height:30px}.select-value{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.select-chev{color:var(--ink-3);transition:transform var(--t-mid) var(--ease);flex-shrink:0}.select.is-open .select-chev{transform:rotate(180deg)}.field-label{font-size:var(--fs-sm);color:var(--ink-2)}.text-input,.textarea{border-radius:var(--r-md);background:var(--surface);width:100%;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);border:1px solid #0000;padding:8px 11px}.text-input:hover,.textarea:hover{background:var(--hover)}.text-input:focus,.textarea:focus{background:var(--white);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.textarea{resize:vertical;min-height:64px;line-height:1.4}.num{border-radius:var(--r-sm);background:var(--surface);min-width:0;height:34px;font-family:var(--font-mono);font-size:var(--fs-sm);transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);border:1px solid #0000;align-items:center;gap:8px;padding:0 10px;display:flex}.num:hover{background:var(--hover)}.num:focus-within{background:var(--white);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.num input{width:100%;min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.01em;background:0 0;border:0;padding:0}.num-label{color:var(--ink-3);font-size:var(--fs-xs);-webkit-user-select:none;user-select:none;min-width:10px;font-weight:500}.num-label.scrub{cursor:ew-resize}.num-unit{color:var(--ink-3);font-size:var(--fs-xs)}.num.is-disabled{opacity:.5}.num-compact{background:0 0;justify-content:flex-end;gap:3px;width:72px;height:24px;padding:0 4px}.num-compact input{text-align:right;color:var(--ink)}.slider-field{flex-direction:column;gap:2px;display:flex}.slider-field.is-disabled{opacity:.45;pointer-events:none}.slider-head{justify-content:space-between;align-items:center;min-height:24px;display:flex}.slider{cursor:pointer;touch-action:none;border-radius:6px;align-items:center;height:20px;display:flex;position:relative}.slider-track{background:#ebebeb;border-radius:4px;width:100%;height:4px;position:relative}.slider-fill{background:var(--brand);border-radius:4px;position:absolute;top:0;bottom:0}.slider-origin{background:#d4d4d4;border-radius:2px;width:2px;height:10px;margin-left:-1px;position:absolute;top:-3px}.slider-thumb{width:16px;height:16px;transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast);background:#fff;border-radius:50%;margin:-8px 0 0 -8px;position:absolute;top:50%;box-shadow:0 0 0 1px #0000001f,0 1px 3px #00000029}.slider:hover .slider-thumb,.slider.is-dragging .slider-thumb{transform:scale(1.1)}.slider:focus-visible{outline:none}.slider:focus-visible .slider-thumb{box-shadow:0 0 0 1px var(--brand), 0 0 0 4px var(--brand-ring)}.switch{background:var(--white);width:18px;height:18px;transition:background var(--t-fast) var(--ease), box-shadow var(--t-fast);border-radius:5px;flex-shrink:0;position:relative;box-shadow:inset 0 0 0 1.5px #cfcfcf}.switch:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px #a9a9a9}.switch.on{background:var(--ink);box-shadow:none}.switch:after{content:"";opacity:0;width:5px;height:9px;transition:transform var(--t-mid) var(--ease-out), opacity var(--t-fast);border:2px solid #fff;border-width:0 2px 2px 0;position:absolute;top:2.5px;left:6px;transform:rotate(45deg)scale(.4)}.switch.on:after{opacity:1;transform:rotate(45deg)scale(1)}.switch-knob{display:none}.switch-sm{border-radius:4.5px;width:16px;height:16px}.switch-sm:after{width:4.5px;height:8px;top:2px;left:5.3px}.switch:disabled{opacity:.5}.toggle-row{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px;min-height:28px;display:flex}.toggle-label{font-size:var(--fs-md);cursor:pointer;flex-direction:column;display:flex}.toggle-hint{font-size:var(--fs-xs);color:var(--ink-2)}.toggle-row.is-disabled{opacity:.5}.seg{isolation:isolate;background:#f1f1f1;border-radius:11px;padding:3px;display:inline-flex;position:relative}.seg-block{width:100%;display:flex}.seg-block .seg-opt{flex:1}.seg-ind{background:var(--white);transition:transform var(--t-mid) var(--ease-out), width var(--t-mid) var(--ease-out);z-index:-1;border-radius:8px;position:absolute;top:3px;bottom:3px;left:0;box-shadow:0 0 0 1px #0000000a,0 1px 3px #0000001a}.seg-opt{height:28px;color:var(--ink-2);font-weight:500;font-size:var(--fs-sm);white-space:nowrap;transition:color var(--t-fast);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex;position:relative}.seg-sm .seg-opt{height:24px;font-size:var(--fs-xs);padding:0 9px}.seg-opt:hover,.seg-opt.on{color:var(--ink)}.seg-opt:focus-visible{outline-offset:0}.chip{border:1px solid var(--line);background:var(--white);height:32px;font-size:var(--fs-sm);color:var(--ink);transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);border-radius:9px;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.chip:hover{background:#fafafa;border-color:#d4d4d4}.chip:active{transform:scale(.97)}.chip.is-selected{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}.chip-dot{border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 0 1px #00000014}.section{border-bottom:1px solid var(--line-2);transition:background .6s var(--ease);padding:4px 20px}.section.is-flash{background:var(--brand-pale)}.section-head{justify-content:space-between;align-items:center;min-height:48px;display:flex}.section-toggle{height:30px;font-size:var(--fs-title);letter-spacing:-.015em;color:var(--ink);border-radius:7px;align-items:center;gap:8px;margin-left:-6px;padding:0 6px;font-weight:550;display:flex}.section-toggle:hover:not(.static){background:var(--hover)}.section-title{color:var(--ink)}.section-chev{color:var(--ink-3);transition:transform var(--t-mid) var(--ease);transform:rotate(-90deg)}.section.is-open>.section-head .section-chev,.disclosure.is-open .section-chev{transform:none}.section-actions{align-items:center;gap:2px;display:flex}.section-body{animation:body-in .2s var(--ease-out);flex-direction:column;gap:12px;padding:0 0 18px;display:flex}@keyframes body-in{0%{opacity:0;transform:translateY(-3px)}}.disclosure-btn{font-size:var(--fs-sm);color:var(--ink-2);border-radius:6px;align-items:center;gap:5px;height:26px;font-weight:500;display:flex}.disclosure-btn:hover{color:var(--ink)}.disclosure-body{flex-direction:column;gap:12px;padding-top:8px;display:flex}.color-field{border-radius:var(--r-sm);background:var(--surface);min-width:0;height:34px;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);border:1px solid #0000;align-items:center;gap:0;padding:0 10px 0 5px;display:flex}.color-field:focus-within{background:var(--white);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.color-field.is-disabled{opacity:.5;pointer-events:none}.swatch-btn{background-image:conic-gradient(#e4e4e4 25%, #fff 0 50%, #e4e4e4 0 75%, #fff 0);background-size:8px 8px;border-radius:6px;flex-shrink:0;place-items:center;width:24px;height:24px;display:grid}.swatch-chip{border-radius:5px;width:22px;height:22px;box-shadow:inset 0 0 0 1px #0000001f}.hex-input{text-transform:uppercase;width:100%;min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.01em;background:0 0;border:0;padding:0 0 0 9px}.alpha-read{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--fs-xs);padding-left:6px}.picker-pop{padding:12px}.picker{flex-direction:column;gap:11px;width:240px;display:flex}.picker-sv{cursor:crosshair;touch-action:none;border-radius:10px;height:150px;position:relative;overflow:hidden}.picker-sv-white{background:linear-gradient(90deg,#fff,#fff0);position:absolute;inset:0}.picker-sv-black{background:linear-gradient(#0000,#000);position:absolute;inset:0}.picker-sv:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.picker-dot{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;box-shadow:0 0 0 1px #0003,0 2px 4px #00000040}.picker-row{align-items:center;gap:10px;display:flex}.picker-preview{border-radius:8px;flex-shrink:0;width:30px;height:30px;box-shadow:inset 0 0 0 1px #0000001f}.picker-bars{flex-direction:column;flex:1;gap:8px;display:flex}.picker-hue,.picker-alpha{cursor:pointer;touch-action:none;border-radius:6px;height:10px;position:relative}.picker-hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.picker-alpha{background:linear-gradient(90deg, transparent, var(--c)), conic-gradient(#e4e4e4 25%, #fff 0 50%, #e4e4e4 0 75%, #fff 0);background-size:100% 100%,8px 8px}.picker-knob{pointer-events:none;background:#fff;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%;box-shadow:0 0 0 1px #0000002e,0 1px 3px #00000040}.picker-inputs{grid-template-columns:1.7fr 1fr 1fr 1fr;gap:6px;display:grid}.picker-inputs:has(.picker-in:nth-child(5)){grid-template-columns:1.6fr 1fr 1fr 1fr 1fr}.picker-in{flex-direction:column;gap:3px;display:flex}.picker-in span{color:var(--ink-3);font-size:11px;font-weight:500}.picker-in input{background:var(--surface);width:100%;height:28px;font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;border:1px solid #0000;border-radius:6px;padding:0 6px}.picker-in input:focus{border-color:var(--brand);background:#fff}.picker-swatches{border-top:1px solid var(--line-2);flex-direction:column;gap:6px;padding-top:10px;display:flex}.swatch-row{flex-wrap:wrap;gap:5px;display:flex}.mini-swatch{width:20px;height:20px;transition:transform var(--t-fast);border-radius:5px;box-shadow:inset 0 0 0 1px #0000001f}.mini-swatch:hover{transform:scale(1.12)}.mini-swatch.on{box-shadow:inset 0 0 0 1px #0000001f, 0 0 0 2px #fff, 0 0 0 3.5px var(--brand)}.modal-backdrop{z-index:800;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .2s var(--ease);background:#14141433;place-items:center;padding:24px;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--white);width:100%;max-height:min(860px,100vh - 48px);animation:modal-in .28s var(--ease-out);border-radius:22px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 0 0 1px #0000000f,0 32px 80px -24px #00000059}.modal-sm{max-width:420px}.modal-md{max-width:560px}.modal-lg{max-width:880px}.modal-xl{max-width:1120px}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 18px 14px 24px;display:flex}.modal-title{letter-spacing:-.02em;font-size:18px;font-weight:600}.modal-sub{color:var(--ink-2);font-size:var(--fs-md);margin-top:2px}.modal-body{padding:0 24px 20px;overflow:auto}.modal-foot{border-top:1px solid var(--line-2);justify-content:flex-end;align-items:center;gap:8px;padding:14px 24px;display:flex}.toasts{z-index:1100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:76px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--white);min-width:240px;max-width:460px;box-shadow:var(--sh-panel), 0 16px 40px -16px #0003;animation:toast-in .26s var(--ease-out);border-radius:14px;align-items:center;gap:10px;padding:10px 8px 10px 14px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:var(--brand-deep)}.toast-error .toast-icon{color:var(--error)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--info)}.toast-text{flex-direction:column;flex:1;font-weight:500;display:flex}.toast-detail{color:var(--ink-2);font-weight:400;font-size:var(--fs-sm)}.toast-action{color:var(--brand-ink);border-radius:6px;padding:4px 8px;font-weight:600}.toast-action:hover{background:var(--brand-soft)}.toast-x{width:24px;height:24px;color:var(--ink-3);border-radius:6px;place-items:center;display:grid}.toast-x:hover{background:var(--hover);color:var(--ink)}.ai-badge{background:var(--brand-soft);height:20px;color:var(--brand-ink);font-family:var(--font-mono);border-radius:6px;align-items:center;gap:3px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.status-dot{background:var(--brand);width:7px;height:7px;box-shadow:0 0 0 3px var(--brand-soft);border-radius:50%}.kbd{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.empty-note{color:var(--ink-2);font-size:var(--fs-sm);text-align:center;padding:18px 8px}.editor{height:100vh;background:var(--canvas-bg);height:100dvh;position:relative;overflow:hidden}.island{z-index:20;background:var(--white);border-radius:var(--r-panel);box-shadow:var(--sh-panel);position:absolute}.top-left,.top-right{top:var(--gap);height:var(--bar-h);animation:island-in .36s var(--ease-out) both;border-radius:18px;align-items:center;gap:4px;display:flex}.top-left{left:var(--gap);max-width:calc(58vw - 24px);padding:0 16px 0 8px}.top-right{right:var(--gap);padding:0 8px}@keyframes island-in{0%{opacity:0;transform:translateY(-6px)}}.tb-brand{height:38px;transition:background var(--t-fast);border-radius:12px;align-items:center;gap:8px;padding:0 10px 0 8px;display:flex}.tb-brand:hover{background:var(--hover)}.tb-brand-word{letter-spacing:-.035em;white-space:nowrap;font-size:17px;font-weight:650}.menubar{gap:1px;display:flex}.menubar-btn{height:32px;font-size:var(--fs-md);color:var(--ink-2);border-radius:9px;padding:0 10px;font-weight:500}.menubar-btn:hover,.menubar-btn.is-open{background:var(--hover);color:var(--ink)}.tb-sep,.dock-sep,.ft-sep{background:var(--line);flex-shrink:0;width:1px;height:20px;margin:0 6px}.tb-file{align-items:center;gap:6px;min-width:0;display:flex}.tb-file-icon{color:var(--ink);flex-shrink:0;margin-left:4px}.title-btn{min-width:0;height:32px;transition:background var(--t-fast);border-radius:8px;align-items:center;padding:0 6px;display:flex}.title-btn:hover{background:var(--hover)}.title-text{font-size:var(--fs-lg);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-weight:600;overflow:hidden}.title-input{border:1px solid var(--brand);width:220px;height:32px;box-shadow:0 0 0 3px var(--brand-ring);border-radius:8px;padding:0 8px;font-weight:600}.save-state{font-size:var(--fs-lg);color:var(--ink-3);white-space:nowrap}.save-state.saving{animation:1.1s ease-in-out infinite pulse}.save-state.error{color:var(--error)}@keyframes pulse{50%{opacity:.45}}.tb-link{height:34px;font-size:var(--fs-lg);color:var(--ink);transition:background var(--t-fast), color var(--t-fast);border-radius:9px;align-items:center;gap:6px;padding:0 11px;font-weight:500;display:inline-flex}.tb-link:hover:not(:disabled){background:var(--hover)}.tb-link:disabled{color:var(--ink-4);cursor:default}.top-right .btn-primary{height:36px;font-size:var(--fs-md);border-radius:10px;margin:0 4px 0 6px}.tool-rail{top:var(--panel-top);left:var(--gap);width:var(--rail-w);transition:left .26s var(--ease-out);animation:island-in .36s var(--ease-out) 60ms both;max-height:calc(100% - var(--panel-top) - var(--gap));scrollbar-width:none;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:6px;display:flex;overflow-y:auto}.editor.left-open .tool-rail{left:calc(var(--gap) + var(--left-w) + 10px)}.rail-group{border-top:1px solid var(--line-2);flex-direction:column;align-items:center;gap:2px;width:100%;padding-top:4px;display:flex}.rail-btn{width:36px;height:36px;color:var(--ink);transition:background var(--t-fast) var(--ease), color var(--t-fast), transform var(--t-fast);border-radius:10px;place-items:center;display:grid;position:relative}.rail-btn:hover{background:var(--hover)}.rail-btn:active{transform:scale(.92)}.rail-btn.is-active{background:var(--brand-soft);color:var(--brand-deep)}.rail-btn.is-on{color:var(--ink);background:var(--hover)}.left-panel{top:var(--panel-top);left:var(--gap);bottom:var(--gap);width:var(--left-w);z-index:19;animation:lp-in .26s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}@keyframes lp-in{0%{opacity:0;transform:translate(-10px)}}.lp-tabs{align-items:center;gap:2px;padding:14px 14px 10px;display:flex}.lp-tab{min-width:36px;height:36px;color:var(--ink);font-size:var(--fs-lg);transition:background var(--t-fast), color var(--t-fast);border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 9px;font-weight:500;display:inline-flex}.lp-tab:hover{background:var(--hover)}.lp-tab.on{background:#f0f0f0;padding:0 13px 0 11px}.lp-body{min-height:0;animation:fade-in .2s var(--ease);flex-direction:column;flex:1;gap:12px;padding:6px 16px 20px;display:flex}.lp-intro{flex-direction:column;gap:4px;padding:6px 2px 4px;display:flex}.lp-intro h2{letter-spacing:-.02em;font-size:17px;font-weight:550}.lp-intro p{font-size:var(--fs-md);color:var(--ink-2);line-height:1.5}.lp-sub{font-size:var(--fs-lg);letter-spacing:-.01em;margin-top:8px;font-weight:550}.drawer-upload{background:var(--surface);text-align:center;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);border:1.5px dashed #d6d6d6;border-radius:14px;flex-direction:column;align-items:center;gap:3px;padding:20px 16px 16px;display:flex}.drawer-upload:hover{background:var(--brand-pale);border-color:var(--brand)}.drawer-upload:active{transform:scale(.99)}.du-icon{width:40px;height:40px;color:var(--brand-deep);box-shadow:var(--sh-panel);transition:transform var(--t-mid) var(--ease-out);background:#fff;border-radius:12px;place-items:center;margin-bottom:6px;display:grid}.drawer-upload:hover .du-icon{transform:translateY(-2px)}.drawer-upload strong{font-weight:550;font-size:var(--fs-lg)}.drawer-upload small{color:var(--ink-2);font-size:var(--fs-sm)}.du-types{color:var(--ink-3);margin-top:8px;font-size:11px}.art-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.art-tile{aspect-ratio:1;background:var(--white);border:1px solid var(--line);transition:background var(--t-fast), border-color var(--t-fast);border-radius:12px;place-items:center;display:grid;position:relative}.art-tile img{filter:drop-shadow(1.5px 0 #fff)drop-shadow(-1.5px 0 #fff)drop-shadow(0 1.5px #fff)drop-shadow(0 -1.5px #fff)drop-shadow(0 3px 4px #00000024);width:72%;height:72%;transition:transform var(--t-mid) var(--ease-out)}.art-tile:hover{background:#fafafa;border-color:#d6d6d6}.art-tile:hover img{transform:translateY(-2px)rotate(-3deg)scale(1.05)}.art-busy{color:var(--brand-deep);position:absolute;bottom:6px;right:6px}.shape-fills{gap:6px;display:flex}.mini-swatch.big{border-radius:7px;width:26px;height:26px}.shape-insert-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;display:grid}.shape-insert{border:1px solid var(--line);font-size:var(--fs-xs);color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 9px;display:flex}.shape-insert:hover{color:var(--ink);background:#fafafa;border-color:#d6d6d6}.shape-insert-icon .shape-icon path{fill:var(--fill);stroke:#0000004d;stroke-width:.9px}.layers{flex-direction:column;gap:1px;margin:0 -6px;padding:0;list-style:none;display:flex}.layer{cursor:default;-webkit-user-select:none;user-select:none;height:42px;transition:background var(--t-fast);border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;padding:0 4px;display:flex}.layer:hover{background:var(--hover)}.layer.is-selected{background:var(--brand-soft)}.layer.is-hidden .layer-name,.layer.is-hidden .layer-thumb{opacity:.45}.layer.is-over{border-top-color:var(--brand)}.layer .drag-handle{color:var(--ink-4);cursor:grab;flex-shrink:0}.layer-thumb{background:var(--surface);width:30px;height:30px;color:var(--ink-2);border-radius:8px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.layer-thumb img{object-fit:contain;width:86%;height:86%}.layer-thumb .shape-icon path{fill:var(--fill);stroke:#0000004d}.layer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-md);flex:1;overflow:hidden}.layer-rename{border:1px solid var(--brand);border-radius:7px;flex:1;min-width:0;height:28px;padding:0 7px}.layer-actions{opacity:0;transition:opacity var(--t-fast);display:flex}.layer:hover .layer-actions,.layer.is-selected .layer-actions,.layer-actions:focus-within,.layer-actions .pinned{opacity:1}.layer:not(:hover) .layer-actions:has(.pinned){opacity:1}.layer:not(:hover):not(.is-selected) .layer-actions .icon-btn:not(.pinned){visibility:hidden}.asset-list{flex-direction:column;gap:6px;display:flex}.asset-row{border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.asset-row:hover{background:var(--hover)}.asset-thumb{width:46px;height:46px;box-shadow:inset 0 0 0 1px var(--line);border-radius:10px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.asset-thumb img{max-width:88%;max-height:88%}.asset-meta{flex-direction:column;flex:1;min-width:0;display:flex}.asset-name{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.asset-sub{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.asset-actions{display:flex}.cutout-panel{flex-direction:column;gap:12px;display:flex}.model-card{border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:8px;padding:14px;display:flex}.model-head{align-items:center;gap:8px;display:flex}.model-name{font-weight:550;font-size:var(--fs-sm)}.model-ready{color:var(--brand-ink);font-weight:550;font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.error-text{color:var(--error)}.sel-cutout{flex-direction:column;gap:10px;display:flex}.btn-col{flex-direction:column;gap:6px;display:flex}.btn-col .btn{justify-content:flex-start}.canvas-vp{background:var(--canvas-bg);touch-action:none;-webkit-user-select:none;user-select:none;outline:none;position:absolute;inset:0;overflow:hidden}.artboard{pointer-events:none;position:absolute;box-shadow:0 0 0 1px #0000000d,0 1px 3px #0000000a,0 20px 50px -24px #0000002e}.artboard.is-transparent{background-color:#fff;background-image:conic-gradient(#f0f0f0 25%, #fff 0 50%, #f0f0f0 0 75%, #fff 0);background-size:18px 18px}.scene-svg{position:absolute;overflow:visible}.scene-obj.is-hidden-appear{opacity:0}.scene-obj.is-appearing{animation:obj-in .28s var(--ease-out)}@keyframes obj-in{0%{opacity:0}}.obj-lift{transform-box:fill-box;transform-origin:50%;transition:transform .2s var(--ease-out)}.obj-lift.on{transform:scale(1.02)}.overlay{pointer-events:none;position:absolute;inset:0;overflow:visible}.ov-hover{fill:none;stroke:var(--brand);stroke-width:1.5px}.ov-sel{fill:none;stroke:var(--brand);stroke-width:1.25px;stroke-dasharray:5 3.5;animation:1.6s linear infinite march}.ov-locked{fill:none;stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:2 3}@keyframes march{to{stroke-dashoffset:-17px}}.ov-box{animation:.12s ease-out fade-in}.ov-frame{fill:none;stroke:var(--brand);stroke-width:1.5px}.ov-box.is-dragging .ov-frame{stroke-opacity:.6}.ov-handle{fill:#fff;stroke:var(--brand);stroke-width:1.5px;pointer-events:all;transition:fill var(--t-fast)}.ov-handle:hover{fill:var(--brand-soft)}.ov-rot{fill:#fff;stroke:var(--brand);stroke-width:1.5px;pointer-events:all}.ov-rot:hover{fill:var(--brand-soft)}.ov-rot-line{stroke:var(--brand);stroke-width:1px}.ov-name{fill:var(--brand-deep);font-family:var(--font);letter-spacing:-.01em;font-size:13px;font-weight:500}.ov-guide{stroke:var(--guide);stroke-width:1px}.ov-spacing{stroke:var(--guide);stroke-width:1px;stroke-dasharray:3 2}.ov-spacing-pill{fill:var(--guide)}.ov-spacing-text{fill:#fff;font-size:10.5px;font-weight:600;font-family:var(--font-mono)}.ov-marquee{fill:#00a3ff12;stroke:var(--brand);stroke-width:1px}.ov-size-fo{overflow:visible}.ov-size{background:var(--brand-ink);color:#fff;width:-moz-fit-content;width:fit-content;font-family:var(--font-mono);white-space:nowrap;border-radius:6px;margin:0 auto;padding:2px 8px;font-size:11px;font-weight:500;line-height:17px}.rot-label{background:var(--ink);color:#fff;font-family:var(--font-mono);pointer-events:none;border-radius:6px;padding:3px 7px;font-size:11px;position:absolute}.empty-drop{pointer-events:none;place-items:center;display:grid;position:absolute}.empty-card{pointer-events:auto;text-align:center;animation:fade-in .4s var(--ease);flex-direction:column;align-items:center;gap:6px;padding:34px 40px 28px;display:flex;position:relative}.empty-contour{width:calc(100% + 60px);height:calc(100% + 28px);position:absolute;inset:-14px -30px;overflow:visible}.empty-contour path{fill:var(--brand-pale);stroke:var(--brand);stroke-width:1.2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;animation:2.4s linear infinite march}.empty-card>:not(svg){position:relative}.empty-plus{width:46px;height:46px;color:var(--brand-deep);box-shadow:0 0 0 1px var(--brand-line), 0 6px 16px -6px #0072b566;background:#fff;border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.empty-title{letter-spacing:-.02em;font-size:17px;font-weight:600}.empty-or{color:var(--ink-3);font-size:var(--fs-sm)}.empty-types{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3);margin-top:6px}.empty-engine{font-size:var(--fs-sm);color:var(--ink-2);align-items:center;gap:6px;margin-top:4px;display:flex}.empty-card.compact{padding:18px;transform:scale(.88)}.drop-overlay{pointer-events:none;z-index:25;background:#e5f5ff9e;border-radius:22px;place-items:center;animation:.14s ease-out fade-in;display:grid;position:absolute;inset:14px}.drop-ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.drop-ring rect{fill:none;width:calc(100% - 3px);height:calc(100% - 3px);stroke:var(--brand);stroke-width:2px;stroke-dasharray:9 7;animation:.9s linear infinite march}.drop-label{color:var(--brand-ink);box-shadow:var(--sh-3);animation:pop-in .22s var(--ease-out);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:12px 18px;font-weight:600;display:flex}.pending-layer{pointer-events:none;z-index:3;position:absolute;inset:0}.pending{transition:opacity .36s var(--ease) 80ms;position:absolute}.pending.is-handoff{opacity:0}.pending-media{width:100%;height:100%;position:relative}.pending-orig{filter:saturate(.85);width:100%;height:100%;transition:opacity .52s var(--ease), filter .52s;border-radius:4px;box-shadow:0 10px 30px -14px #00000059}.pending-orig.is-gone{opacity:0}.pending-cut{opacity:0;transition:opacity .52s var(--ease);position:absolute}.pending-cut.is-in{opacity:1}.scan-line{border-bottom:1.5px solid var(--brand);height:28%;animation:scan 1.6s var(--ease) infinite;mix-blend-mode:multiply;background:linear-gradient(#00a3ff00,#00a3ff47 70%,#0089d68c 100%);position:absolute;left:0;right:0}@keyframes scan{0%{opacity:0;top:-28%}15%{opacity:1}85%{opacity:1}to{opacity:0;top:100%}}.focus-corner{border:2px solid var(--brand);width:18px;height:18px;animation:corners 1.6s var(--ease) infinite;position:absolute}.focus-corner.tl{border-bottom:0;border-right:0;border-top-left-radius:6px;top:-8px;left:-8px}.focus-corner.tr{border-bottom:0;border-left:0;border-top-right-radius:6px;top:-8px;right:-8px}.focus-corner.bl{border-top:0;border-right:0;border-bottom-left-radius:6px;bottom:-8px;left:-8px}.focus-corner.br{border-top:0;border-left:0;border-bottom-right-radius:6px;bottom:-8px;right:-8px}@keyframes corners{50%{transform:scale(.88)}}.pending-contour{position:absolute;top:0;left:0;overflow:visible}.pending-contour path{fill:none;stroke:var(--brand);stroke-width:2px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw .82s var(--ease) forwards}@keyframes draw{to{stroke-dashoffset:0}}.pending-card{min-width:224px;box-shadow:var(--sh-panel), 0 16px 40px -18px #00000040;pointer-events:auto;animation:pop-in .22s var(--ease-out);background:#fff;border-radius:14px;padding:12px 14px;position:absolute;top:calc(100% + 16px);left:50%;transform:translate(-50%)}.pending-stages{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pstage{font-size:var(--fs-sm);color:var(--ink-3);transition:color var(--t-mid);align-items:center;gap:9px;display:flex}.pstage.now{color:var(--ink);font-weight:550}.pstage.done{color:var(--ink-2)}.pstage-dot{border:1.5px solid var(--line);color:#fff;width:15px;height:15px;transition:background var(--t-mid), border-color var(--t-mid);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.pstage.now .pstage-dot{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);animation:1s ease-in-out infinite pulse}.pstage.done .pstage-dot{background:var(--brand);border-color:var(--brand)}.pending-progress{background:var(--surface);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.pending-progress span{background:var(--brand);border-radius:4px;height:100%;transition:width .2s linear;display:block}.pending-method{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--brand-ink);margin-top:8px;font-weight:500}.pending-row.error{color:var(--error);font-size:var(--fs-sm);align-items:center;gap:8px;display:flex}.pending.is-error .pending-orig{filter:grayscale()opacity(.5)}.floating-toolbar{box-shadow:var(--sh-panel), 0 12px 28px -14px #00000040;z-index:4;animation:ft-in .18s var(--ease-out);background:#fff;border-radius:12px;align-items:center;gap:1px;padding:4px;display:flex;position:absolute;transform:translate(-50%)}@keyframes ft-in{0%{opacity:0;transform:translate(-50%)translateY(4px)}}.floating-toolbar .ft-sep{height:16px;margin:0 3px}.reopen-right{right:var(--gap);top:var(--panel-top);z-index:20;position:absolute;border-radius:12px!important;width:40px!important;height:40px!important}.right-panel{top:var(--panel-top);right:var(--gap);bottom:var(--gap);min-height:0;animation:rp-in .26s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}@keyframes rp-in{0%{opacity:0;transform:translate(10px)}}.panel-resize{cursor:col-resize;z-index:3;border-radius:3px;width:6px;position:absolute;top:18px;bottom:18px;left:0}.panel-resize:hover{background:linear-gradient(90deg, transparent 1px, var(--brand) 1px 3px, transparent 3px)}.panel-head{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;height:56px;padding:0 12px 0 20px;display:flex}.panel-title{align-items:center;gap:9px;min-width:0;display:flex}.panel-title-icon{color:var(--ink);flex-shrink:0}.panel-title-text{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.panel-quick{border-bottom:1px solid var(--line-2);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:0 14px 12px 20px;display:flex}.panel-kind{font-size:var(--fs-xs);color:var(--ink-3)}.quick-act{height:30px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.02em;color:var(--ink);transition:background var(--t-fast);border-radius:8px;align-items:center;gap:7px;padding:0 9px;display:inline-flex}.quick-act:hover{background:var(--hover)}.panel-body{flex:1;min-height:0;padding-bottom:12px}.panel-body>.section:last-child{border-bottom:0}.mono-btn,.quick-export .btn{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:-.02em;font-weight:500}.prop-row{grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;display:grid}.prop-label{font-size:var(--fs-sm);color:var(--ink-2)}.prop-ctl{min-width:0}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid2.with-link{grid-template-columns:1fr 1fr 28px;align-items:center}.help{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.5}.link-btn{color:var(--brand-ink);font-weight:500;font-size:var(--fs-sm);border-radius:6px;align-self:flex-start;align-items:center;gap:4px;display:inline-flex}.link-btn:hover{text-underline-offset:3px;text-decoration:underline}.chip-row,.chip-wrap,.btn-row{flex-wrap:wrap;gap:6px;display:flex}.sub-group{border-left:1px solid var(--line);flex-direction:column;gap:10px;margin-left:8px;padding-left:12px;display:flex}.checker{background-color:#fff;background-image:conic-gradient(#f0f0f0 25%, #fff 0 50%, #f0f0f0 0 75%, #fff 0);background-size:10px 10px}.img-card{align-items:center;gap:11px;display:flex}.img-thumb{width:46px;height:46px;box-shadow:inset 0 0 0 1px var(--line);border-radius:10px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.img-thumb img{max-width:86%;max-height:86%}.img-meta{flex-direction:column;min-width:0;display:flex}.img-name{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.img-sub{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.palette-dots{gap:3px;margin-left:4px;display:inline-flex}.palette-dots i{border-radius:50%;width:8px;height:8px;box-shadow:inset 0 0 0 1px #0000001a}.suggest-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.suggest-card{color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);border:1px solid #0000;border-radius:11px;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 8px;font-size:11.5px;font-weight:500;display:flex}.suggest-card:hover{border-color:var(--line);color:var(--ink)}.suggest-card:active{transform:scale(.96)}.pthumb{border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid;position:relative}.pthumb.small{width:26px;height:26px}.pthumb img{object-fit:contain;width:76%;height:76%}.pthumb-dot{background:var(--brand);border-radius:50%;width:40%;height:40%}.pthumb.mat-holographic:after{content:"";mix-blend-mode:multiply;background:linear-gradient(120deg,#ffb3de80,#b8d8ff80,#b9f5dc80);border-radius:50%;position:absolute;inset:0}.shape-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.shape-btn{background:var(--white);border:1px solid var(--line);height:44px;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);border-radius:10px;place-items:center;display:grid}.shape-btn:hover{background:#fafafa;border-color:#d6d6d6}.shape-btn:active{transform:scale(.95)}.shape-btn.on{background:var(--brand-soft);border-color:var(--brand-line)}.shape-icon path{fill:#fff;stroke:var(--ink-2);stroke-width:1.3px;stroke-linejoin:round;transition:stroke var(--t-fast)}.shape-btn.on .shape-icon path{stroke:var(--brand-deep)}.shape-icon.is-diecut path{stroke-dasharray:2.2 1.6}.shape-icon-subject{fill:var(--brand)}.preset-swatches{grid-template-columns:repeat(6,1fr);gap:2px;display:grid}.bp{transition:background var(--t-fast);border-radius:9px;flex-direction:column;align-items:center;gap:5px;padding:6px 0 4px;display:flex}.bp:hover{background:var(--hover)}.bp-dot{width:26px;height:26px;transition:transform var(--t-mid) var(--ease-out);border-radius:50%}.bp:hover .bp-dot{transform:scale(1.08)}.bp-label{color:var(--ink-2);white-space:nowrap;font-size:11px}.outline-list{border-top:1px solid var(--line-2);flex-direction:column;gap:4px;padding-top:6px;display:flex}.outline-row{border-radius:8px;grid-template-columns:14px 12px 40px minmax(0,1fr) 28px 28px;align-items:center;gap:6px;padding:3px 0;display:grid}.outline-row .drag-handle{color:var(--ink-4);cursor:grab}.outline-idx{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3)}.outline-row .color-field{width:40px;padding:0 3px}.ol-num{height:32px}.mat-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.mat{transition:background var(--t-fast), border-color var(--t-fast);border:1px solid #0000;border-radius:11px;flex-direction:column;align-items:center;gap:6px;padding:9px 2px 7px;display:flex}.mat:hover{border-color:var(--line)}.mat.on{background:var(--brand-pale);border-color:var(--brand-line)}.mat-swatch{width:32px;height:32px;transition:transform var(--t-mid) var(--ease-out);border-radius:50%;box-shadow:inset 0 0 0 1px #0000001a,0 2px 5px -1px #00000029}.mat:hover .mat-swatch{transform:translateY(-1px)rotate(-8deg)}.mat-holographic{animation:4s ease-in-out infinite alternate holo;background-size:200% 200%!important}@keyframes holo{to{background-position:100% 100%}}.mat-softtouch{box-shadow:inset 0 0 0 1px #0000001a,inset 0 -3px 6px #0000001f,0 2px 5px -1px #00000029!important}.mat-label{color:var(--ink-2);font-size:11.5px;font-weight:500}.mat.on .mat-label{color:var(--ink)}.align-row{background:var(--surface);border-radius:10px;flex-wrap:wrap;align-items:center;gap:2px;padding:4px;display:flex}.align-row .icon-btn:hover:not(:disabled){background:var(--white)}.align-row .ft-sep{height:16px;margin:0 2px}.preset-list{flex-direction:column;gap:6px;display:flex}.preset-row{align-items:center;gap:4px;display:flex}.preset-main{text-align:left;border-radius:10px;flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.preset-main:hover{background:var(--hover)}.preset-text{flex-direction:column;min-width:0;display:flex}.preset-sum{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.count-pill{background:var(--surface);height:20px;line-height:20px;font-family:var(--font-mono);color:var(--ink-2);border-radius:6px;margin-left:2px;padding:0 7px;font-size:11px;font-weight:500}.locked-note{background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);border-radius:12px;align-items:center;gap:8px;margin:14px 16px;padding:11px 12px;display:flex}.locked-note .link-btn{align-self:center;margin-left:auto}.text-area-wrap{position:relative}.text-content{padding-right:36px;font-size:17px;line-height:1.25}.ideas-btn{position:absolute;top:5px;right:5px}.curve-field{flex-direction:column;gap:2px;display:flex}.curve-scale{color:var(--ink-3);justify-content:space-between;font-size:11px;display:flex}.link-aspect{justify-self:center}.dock-zoom{bottom:var(--gap);right:var(--gap);height:44px;transition:right .26s var(--ease-out);animation:island-in .36s var(--ease-out) .12s both;border-radius:14px;align-items:center;gap:2px;padding:0 6px;display:flex}.editor.right-open .dock-zoom{right:calc(var(--gap) * 2 + var(--right-w))}.dock-zoom .dock-sep{height:18px;margin:0 4px}.zoom-read{min-width:54px;height:30px;font-size:var(--fs-sm);border-radius:8px;padding:0 6px}.zoom-read:hover{background:var(--hover)}.dock-center{bottom:var(--gap);animation:dock-in .36s var(--ease-out) .12s both;border-radius:14px;padding:5px;left:50%;transform:translate(-50%)}@keyframes dock-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}}.export-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.export-preview{min-height:380px;box-shadow:inset 0 0 0 1px var(--line);background:#fbfbfb;border-radius:16px;place-items:center;padding:26px;display:grid;position:relative}.export-preview.checker{background-color:#fff;background-image:conic-gradient(#f0f0f0 25%, #fff 0 50%, #f0f0f0 0 75%, #fff 0);background-size:16px 16px}.export-preview img{object-fit:contain;max-width:100%;max-height:360px;animation:.2s ease-out fade-in}.export-count{box-shadow:var(--sh-panel);font-family:var(--font-mono);font-size:var(--fs-xs);background:#fff;border-radius:7px;padding:3px 8px;position:absolute;bottom:12px;right:12px}.export-controls{flex-direction:column;gap:16px;display:flex}.ctl-block{flex-direction:column;gap:8px;display:flex}.ctl-block>.micro{font-size:var(--fs-md);color:var(--ink);font-weight:550}.radio-list{flex-direction:column;gap:2px;display:flex}.radio{cursor:pointer;align-items:center;gap:10px;min-height:32px;display:flex}.radio input{opacity:0;pointer-events:none;position:absolute}.radio-dot{width:17px;height:17px;transition:box-shadow var(--t-fast);background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1.5px #cfcfcf}.radio input:checked+.radio-dot{box-shadow:inset 0 0 0 5px var(--ink)}.radio input:focus-visible+.radio-dot{outline:2px solid var(--brand);outline-offset:2px}.radio.is-disabled{opacity:.45;cursor:not-allowed}.radio .color-field{width:124px;margin-left:auto}.note{background:var(--info-soft);color:#355f96;font-size:var(--fs-sm);border-radius:12px;gap:9px;padding:11px 12px;line-height:1.45;display:flex}.note svg{flex-shrink:0;margin-top:1px}.foot-note{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-xs);margin-right:auto}.print-preview{background:var(--canvas-bg);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:18px;display:flex}.print-paper{height:440px;max-height:440px;box-shadow:var(--sh-2);background:#fff;position:relative}.print-paper img,.print-overlay{width:100%;height:100%;position:absolute;inset:0}.print-legend{font-size:var(--fs-xs);color:var(--ink-2);gap:14px;display:flex}.print-legend span{align-items:center;gap:6px;display:inline-flex}.print-legend i{border-top:2px solid #ec008c;width:14px;height:0}.print-legend .lg-bleed{border-top:2px dashed #e0607e}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.pick{border:1px solid var(--line);text-align:left;transition:border-color var(--t-fast), box-shadow var(--t-fast);background:#fff;border-radius:16px;flex-direction:column;display:flex;position:relative;overflow:hidden}.pick:hover{border-color:#d4d4d4}.pick.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.pick .pthumb-wrap{aspect-ratio:4/3}.pick-meta{flex-direction:column;padding:10px 12px;display:flex}.pick-name{font-weight:550}.pick-sub{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.pick-check{color:#fff;width:22px;height:22px;box-shadow:inset 0 0 0 1.5px var(--line);background:#fff;border-radius:7px;place-items:center;display:grid;position:absolute;top:10px;right:10px}.pick.on .pick-check{background:var(--ink);box-shadow:none}.preview{z-index:700;animation:fade-in .26s var(--ease);transition:background .36s var(--ease);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.preview-top{justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.preview-top .seg{box-shadow:var(--sh-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffd9}.preview-stage{place-items:center;min-height:0;padding:8px 20px;display:grid}.preview-bottom{justify-content:center;padding:16px 16px 22px;display:flex}.preview.is-dark .muted{color:#aab3af}.flat-preview{place-items:center;width:100%;height:100%;display:grid}.tilt{width:min(58vh,540px);transition:transform .26s var(--ease-out);transform-style:preserve-3d;position:relative}.pv-sticker{width:100%;height:auto;overflow:visible}.pv-sheen{pointer-events:none;mix-blend-mode:soft-light;border-radius:50%;position:absolute;inset:12%}.settle{animation:settle .62s var(--ease-out) both}@keyframes settle{0%{opacity:0;transform:translateY(-18px)scale(1.05)}55%{opacity:1}}.pv-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:center;gap:28px;width:min(1040px,92vw);display:grid}.pv-cell svg{width:100%;height:auto;overflow:visible}.bg-chips{box-shadow:var(--sh-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-radius:14px;flex-wrap:wrap;justify-content:center;gap:4px;padding:5px;display:flex}.bg-chip{height:32px;font-size:var(--fs-sm);color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);border-radius:10px;align-items:center;gap:7px;padding:0 13px;font-weight:500;display:inline-flex}.bg-chip:hover{color:var(--ink)}.bg-chip.on{color:var(--ink);background:#f0f0f0}.bg-swatch{border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1px #00000026}.peel-wrap{flex-direction:column;align-items:center;gap:16px;display:flex}.peel-svg{touch-action:none;width:min(62vh,580px);height:auto;overflow:visible}.peel-handle{fill:#00a3ff00;cursor:grab;transition:fill var(--t-mid);animation:peel-invite 2.4s var(--ease) 1s infinite}.peel-handle:hover{fill:#00a3ff24}.peel-handle:active{cursor:grabbing}@keyframes peel-invite{0%,70%,to{fill:#00a3ff00}85%{fill:#00a3ff29}}.peel-hint{box-shadow:var(--sh-panel);font-size:var(--fs-sm);color:var(--ink-2);background:#ffffffe6;border-radius:10px;align-items:center;gap:7px;padding:7px 13px;display:inline-flex}.mockup-wrap{width:min(960px,92vw,133.333vh - 293.333px)}.mk-frame{width:100%;box-shadow:var(--sh-panel), var(--sh-3);border-radius:22px;position:relative;overflow:hidden}.mk-obj{position:absolute}.mk-shadow{filter:blur(20px);background:#1e1e1e33;position:absolute;transform:translateY(14px)}.mk-sticker{transition:transform .4s var(--ease-out);position:absolute}.mk-sticker img{width:100%;height:auto;display:block}.mk-shade{mix-blend-mode:multiply;pointer-events:none;position:absolute;inset:0}.mk-loading{aspect-ratio:1;background:#fff9;border-radius:50%;animation:1s ease-in-out infinite pulse;display:block}.anatomy{z-index:700;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .26s var(--ease);background:#f4f4f4f7;grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;inset:0}.anatomy-head{justify-content:space-between;align-items:center;padding:20px 24px 0 32px;display:flex}.anatomy-head h2{letter-spacing:-.025em;font-size:22px;font-weight:600}.anatomy-body{grid-template-columns:minmax(0,1.25fr) 300px 210px;align-items:center;gap:32px;min-height:0;padding:12px 40px 32px;display:grid}.anatomy-stack{perspective:1600px;place-items:center;height:min(72vh,640px);display:grid;position:relative}.an-layer{aspect-ratio:1;width:min(40vh,340px);transform:translateY(calc((var(--i) - 2) * -62px)) rotateX(58deg) rotateZ(-38deg);transition:transform .42s var(--ease-out), opacity .3s var(--ease);animation:an-in .7s var(--ease-out) both;animation-delay:calc(var(--i) * 70ms);position:absolute}@keyframes an-in{0%{opacity:0;transform:translateY(0)rotateX(58deg)rotate(-38deg)}}.an-layer:before{content:"";background:#e5f5ff99;border:1px solid #00a3ff59;border-radius:24px;position:absolute;inset:0;box-shadow:0 30px 60px -30px #00000040}.an-svg{width:100%;height:100%;position:relative;overflow:visible}.anatomy-stack.has-hover .an-layer{opacity:.32}.anatomy-stack.has-hover .an-layer.is-hover{opacity:1;transform:translateY(calc((var(--i) - 2) * -62px - 14px)) rotateX(58deg) rotateZ(-38deg) scale(1.04)}.an-card{fill:#fff}.an-cut-line{fill:none;stroke:var(--brand);stroke-width:2px;stroke-dasharray:7 5}.an-body-line{fill:none;stroke:var(--ink-3);stroke-width:1.2px}.checker-svg{background:conic-gradient(#ececec 25%, transparent 0 50%, #ececec 0 75%, transparent 0) 0 0 / 22px 22px;border-radius:24px}.anatomy-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.an-item{text-align:left;width:100%;transition:background var(--t-fast), box-shadow var(--t-fast);border-radius:14px;align-items:center;gap:14px;padding:12px 14px;display:flex}.an-item:hover,.an-item:focus-visible{box-shadow:var(--sh-panel);background:#fff}.an-num{font-family:var(--font-mono);color:var(--brand-ink);font-size:12px}.an-text{flex-direction:column;flex:1;display:flex}.an-label{font-weight:600;font-size:var(--fs-lg);letter-spacing:-.01em}.an-note{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2)}.an-go{color:var(--ink-3);opacity:0;transition:opacity var(--t-fast), transform var(--t-fast)}.an-item:hover .an-go{opacity:1;transform:translate(2px)}.an-arrow{color:var(--ink-4);padding-left:24px;font-size:12px;line-height:10px;display:block}.anatomy-result{flex-direction:column;align-items:center;gap:12px;display:flex}.an-result-svg{width:100%;height:auto;overflow:visible}.editor-loading,.editor-missing{text-align:center;background:var(--canvas-bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100vh;padding:24px;display:flex}.editor-missing h1{letter-spacing:-.02em;font-size:22px;font-weight:600}.loading-contour{width:64px;height:64px}.loading-contour path{fill:var(--brand-pale);stroke:var(--brand);stroke-width:2px;stroke-dasharray:6 5;animation:1s linear infinite march}.slideover-scrim{display:none}@media (max-width:1099px){.editor.is-narrow .right-panel{z-index:30;box-shadow:var(--sh-panel), -24px 0 60px -30px #00000059}.editor.is-narrow .left-panel{z-index:30}.editor.is-narrow .slideover-scrim{z-index:29;background:#14141414;display:block;position:absolute;inset:0}.tb-brand-word,.menubar,.save-state{display:none}.editor.is-narrow.right-open .dock-zoom{right:var(--gap)}}@media (max-width:760px){.top-right .tb-link,.dock-center{display:none}.top-left{max-width:calc(100vw - 210px)}.export-grid,.anatomy-body{grid-template-columns:1fr}.anatomy-stack{height:46vh}.left-panel{width:min(var(--left-w), calc(100vw - 90px))}}.page{background:var(--bg);min-height:100vh}.logo{align-items:center;gap:9px;display:inline-flex}.logo-word{letter-spacing:-.035em;color:var(--ink);font-size:17px;font-weight:650}.logo-mark{filter:drop-shadow(0 1px 1.5px #0000001a);transition:transform var(--t-slow) var(--ease-out)}.app-logo:hover .logo-mark,.tb-brand:hover .logo-mark{transform:rotate(-8deg)scale(1.04)}.app-header{z-index:30;padding:var(--gap);pointer-events:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.capsule{pointer-events:auto;height:var(--bar-h);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--sh-panel);background:#ffffffeb;border-radius:18px;align-items:center;gap:4px;min-width:0;padding:0 10px 0 8px;display:flex}.capsule.right{gap:4px;padding:0 8px}.capsule.right .btn-primary{margin-right:4px}.app-logo{height:38px;transition:background var(--t-fast);border-radius:12px;align-items:center;gap:8px;padding:0 10px 0 8px;display:flex}.app-logo:hover{background:var(--hover)}.app-nav{gap:2px;display:flex}.app-nav-item{height:36px;font-size:var(--fs-lg);color:var(--ink-2);white-space:nowrap;transition:background var(--t-fast), color var(--t-fast);border-radius:10px;padding:0 12px;font-weight:500}.app-nav-item:hover{color:var(--ink);background:var(--hover)}.app-nav-item.is-active{color:var(--ink);background:#f0f0f0}.avatar{background:var(--brand-gradient);color:#fff;letter-spacing:.04em;width:32px;height:32px;box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--line);border-radius:50%;place-items:center;margin-left:4px;font-size:11px;font-weight:700;display:grid}.home{flex-direction:column;gap:22px;max-width:1240px;margin:0 auto;padding:18px 28px 64px;display:flex}.home-hero{background:var(--white);outline:1.5px solid var(--brand);outline-offset:0;isolation:isolate;min-height:440px;transition:background var(--t-slow), outline-color var(--t-fast);place-items:center;margin-top:22px;padding:56px 32px;display:grid;position:relative;box-shadow:0 20px 50px -28px #00000040}.home-hero.is-drop{background:var(--brand-pale);outline-width:2px;outline-style:dashed}.frame-label{color:var(--brand-deep);font-size:13.5px;font-weight:500;position:absolute;top:-24px;left:-1px}.frame-handle{border:1.5px solid var(--brand);z-index:2;background:#fff;border-radius:2px;width:9px;height:9px;position:absolute}.frame-handle.tl{top:-5px;left:-5px}.frame-handle.tr{top:-5px;right:-5px}.frame-handle.bl{bottom:-5px;left:-5px}.frame-handle.br{bottom:-5px;right:-5px}.frame-size{background:var(--brand-ink);color:#fff;white-space:nowrap;border-radius:6px;padding:2px 9px;font-size:12px;line-height:19px;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.hero-sticker{filter:drop-shadow(3px 0 #fff)drop-shadow(-3px 0 #fff)drop-shadow(0 3px #fff)drop-shadow(0 -3px #fff)drop-shadow(2px 2px #fff)drop-shadow(-2px -2px #fff)drop-shadow(0 10px 14px #00000029);width:132px;height:132px;transition:transform .5s var(--ease-out);z-index:-1;animation:hero-drop .9s var(--ease-out) both;position:absolute}.hero-sticker.h1{animation-delay:80ms;top:14%;left:7%;transform:rotate(-12deg)}.hero-sticker.h2{width:116px;height:116px;animation-delay:.16s;top:12%;right:8%;transform:rotate(14deg)}.hero-sticker.h3{width:104px;height:104px;animation-delay:.24s;bottom:10%;left:12%;transform:rotate(9deg)}.hero-sticker.h4{width:112px;height:112px;animation-delay:.32s;bottom:12%;right:11%;transform:rotate(-8deg)}.home-hero:hover .hero-sticker.h1{transform:rotate(-16deg)translateY(-4px)}.home-hero:hover .hero-sticker.h2{transform:rotate(18deg)translateY(-4px)}.home-hero:hover .hero-sticker.h3{transform:rotate(4deg)translateY(-3px)}.home-hero:hover .hero-sticker.h4{transform:rotate(-3deg)translateY(-3px)}@keyframes hero-drop{0%{opacity:0;translate:0 -16px;scale:1.08}}.hero-copy{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:560px;display:flex}.hero-eyebrow{background:var(--surface);height:28px;font-size:var(--fs-xs);color:var(--ink-2);border-radius:8px;align-items:center;gap:9px;padding:0 11px 0 9px;display:inline-flex}.hero-eyebrow .status-dot{width:6px;height:6px}.home-hero h1{letter-spacing:-.045em;font-size:clamp(34px,4.6vw,54px);font-weight:650;line-height:1.02}.home-hero p{color:var(--ink-2);text-wrap:pretty;max-width:52ch;font-size:16px;line-height:1.55}.hero-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.home-hero .hero-hint{font-size:var(--fs-sm);color:var(--ink-3)}.hero-hint .mono{font-size:var(--fs-xs);margin-left:4px}.quick-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px;display:grid}.quick{box-shadow:var(--sh-panel);text-align:left;transition:box-shadow var(--t-mid), transform var(--t-mid) var(--ease-out);background:#fff;border-radius:18px;align-items:center;gap:14px;padding:16px 18px;display:flex}.quick:hover{box-shadow:var(--sh-panel), 0 14px 30px -18px #00000040;transform:translateY(-1px)}.quick-icon{background:var(--surface);width:40px;height:40px;color:var(--ink);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.quick:hover .quick-icon{background:var(--brand-soft);color:var(--brand-deep)}.quick-text{flex-direction:column;flex:1;gap:1px;display:flex}.quick-text strong{font-weight:550;font-size:var(--fs-lg)}.quick-text small{font-size:var(--fs-sm);color:var(--ink-2)}.quick-go{color:var(--ink-3);transition:transform var(--t-mid) var(--ease-out), color var(--t-fast)}.quick:hover .quick-go{color:var(--brand-deep);transform:translate(3px)}.recent{flex-direction:column;gap:14px;margin-top:10px;display:flex}.section-title-row{justify-content:space-between;align-items:baseline;display:flex}.section-title-row h2{letter-spacing:-.025em;font-size:19px;font-weight:600}.recent-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.seeding{font-size:var(--fs-sm)}.pcard{box-shadow:var(--sh-panel);transition:box-shadow var(--t-mid), transform var(--t-mid) var(--ease-out);background:#fff;border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.pcard:hover{box-shadow:0 0 0 1.5px var(--brand), 0 16px 34px -20px #00000047;transform:translateY(-2px)}.pcard-open{border-radius:0;display:block}.pcard-open:focus-visible{outline-offset:-3px;border-radius:18px 18px 0 0}.pthumb-wrap{aspect-ratio:4/3;background:var(--surface);place-items:center;display:grid;position:relative;overflow:hidden}.pthumb-wrap img{object-fit:contain;width:100%;height:100%;transition:transform .5s var(--ease-out)}.pthumb-wrap.pack img,.pthumb-wrap.sticker img{object-fit:cover}.pthumb-wrap.sheet{background:var(--canvas-bg)}.pthumb-wrap.sheet img{object-fit:contain;filter:drop-shadow(0 4px 8px #0000001f);padding:10px}.pcard:hover .pthumb-wrap img{transform:scale(1.03)}.pthumb-empty svg{width:56px;height:56px}.pthumb-empty path{fill:#fff;stroke:var(--brand);stroke-dasharray:4 3}.pcard-meta{align-items:flex-start;gap:6px;padding:12px 8px 13px 14px;display:flex}.pcard-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pcard-name{font-size:var(--fs-lg);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.pcard-rename{border:1px solid var(--brand);border-radius:7px;height:26px;margin:-2px -6px;padding:0 6px;font-weight:550}.pcard-sub{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;letter-spacing:-.02em;align-items:center;gap:6px;font-size:11.5px;display:flex}.kind-tag{background:var(--surface);color:var(--ink-2);border-radius:5px;padding:1px 6px;font-size:11px;font-weight:500}.kind-tag.kind-pack{background:var(--brand-soft);color:var(--brand-ink)}.kind-tag.kind-sheet{color:#6b5aa6;background:#f3eefa}.pcard-more{opacity:.6}.pcard:hover .pcard-more,.pcard-more:focus-visible,.pcard-more[aria-expanded=true]{opacity:1}.pcard.is-skeleton .pthumb-wrap{background:linear-gradient(100deg, var(--surface) 30%, #fbfbfb 50%, var(--surface) 70%) 0 0 / 200% 100%;animation:1.4s linear infinite shimmer}.pcard.is-skeleton:hover{box-shadow:var(--sh-panel);transform:none}.sk-line{background:var(--surface);border-radius:6px;width:70%;height:10px;margin:4px 0;display:block}.sk-line.short{width:40%}.pcard.is-skeleton .pcard-meta{flex-direction:column}@keyframes shimmer{to{background-position:-200% 0}}.page-main{flex-direction:column;gap:20px;max-width:1240px;margin:0 auto;padding:26px 28px 64px;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head h1{letter-spacing:-.04em;font-size:34px;font-weight:650;line-height:1.1}.page-head p{font-size:var(--fs-lg);margin-top:6px}.page-head-actions{gap:8px;display:flex}.toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar-right{align-items:center;gap:8px;display:flex}.search{background:var(--white);border:1px solid var(--line);width:240px;height:36px;color:var(--ink-3);transition:border-color var(--t-fast), box-shadow var(--t-fast);border-radius:10px;align-items:center;gap:8px;padding:0 11px;display:flex}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}.search input{min-width:0;color:var(--ink);background:0 0;border:0;flex:1}.project-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.empty-state{text-align:center;background:var(--white);box-shadow:var(--sh-panel);color:var(--ink-2);border-radius:22px;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;display:flex}.empty-state h3{color:var(--ink);font-size:17px;font-weight:600}.empty-state .btn{margin-top:8px}.empty-note{flex-direction:column;align-items:center;gap:8px;display:flex}.new-tile{min-height:240px;color:var(--ink-2);transition:background var(--t-fast), border-color var(--t-fast);background:0 0;border:1.5px dashed #d2d2d2;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.new-tile:hover,.new-tile.is-drop{background:var(--brand-pale);border-color:var(--brand)}.new-tile strong{color:var(--ink);font-weight:600;font-size:var(--fs-lg)}.new-tile small{font-size:var(--fs-sm)}.new-tile-icon{width:44px;height:44px;color:var(--brand-deep);box-shadow:var(--sh-panel);background:#fff;border-radius:14px;place-items:center;margin-bottom:4px;display:grid}.template-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.tcard{box-shadow:var(--sh-panel);text-align:left;transition:box-shadow var(--t-mid), transform var(--t-mid) var(--ease-out);background:#fff;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.tcard:hover{box-shadow:0 0 0 1.5px var(--brand), 0 16px 34px -20px #00000047;transform:translateY(-2px)}.tcard:disabled{opacity:.7}.tcard-art{aspect-ratio:1;background:var(--surface);place-items:center;display:grid;overflow:hidden}.tcard-art img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out)}.tcard:hover .tcard-art img{transform:scale(1.05)rotate(-1.5deg)}.tcard-art.is-sheet{background:var(--canvas-bg)}.tcard-loading{aspect-ratio:1;border:1.5px dashed var(--brand);border-radius:50%;width:46%;animation:6s linear infinite spin}.mini-sheet{aspect-ratio:210/297;width:58%;box-shadow:var(--sh-2);background:#fff;border-radius:3px;grid-template-columns:repeat(3,1fr);gap:8%;padding:10%;display:grid}.mini-sheet i{aspect-ratio:1;background:var(--brand-soft);border:1.5px dashed #ec008c;border-radius:50%}.mini-sheet i:nth-child(3n+2){background:#fdebd2;border-radius:30%}.mini-sheet i:nth-child(4n){background:#f3e8fb}.tcard-meta{flex-direction:column;gap:3px;padding:13px 15px 15px;display:flex}.tcard-name{font-weight:550;font-size:var(--fs-lg);letter-spacing:-.015em}.tcard-desc{font-size:var(--fs-sm);color:var(--ink-2)}.settings-list{flex-direction:column;gap:18px;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-row>div:first-child{flex-direction:column;display:flex}.settings-title{font-weight:550}.settings-desc{font-size:var(--fs-sm);color:var(--ink-2)}.settings-row.danger{border-top:1px solid var(--line-2);padding-top:16px}.shortcut-list{grid-template-columns:1fr 1fr;gap:2px 24px;margin:0;display:grid}.shortcut{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.shortcut dt{font-size:var(--fs-md)}.shortcut dd{margin:0}.shortcut kbd{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2);background:var(--surface);border-radius:6px;padding:2px 7px}@media (max-width:1100px){.recent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recent-grid>:nth-child(n+4){display:none}}@media (max-width:900px){.app-header .tb-brand-word,.app-header .tb-sep{display:none}}@media (max-width:820px){.app-header{overflow-x:auto}.app-nav-item{padding:0 9px}.capsule.right .btn-primary .btn-label{display:none}.home,.page-main{padding-left:16px;padding-right:16px}.quick-row{grid-template-columns:1fr}.recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-sticker{opacity:.5;width:80px!important;height:80px!important}.page-head{flex-direction:column;align-items:flex-start}.search,.toolbar-right{width:100%}.shortcut-list{grid-template-columns:1fr}}
