:root{--bg:#fff8ec;--surface:#fff;--surface-2:#fbf1de;--text:#1e1236;--muted:#5e5575;--primary:#6a2cf5;--on-primary:#fff;--accent:#ff9e1f;--border:#e8dcc6;--border-strong:#b9a98a;--focus:#6a2cf5;--danger:#b3261e;--ok:#1b7f3b;--warn:#8a4b00;--checker-a:#fff;--checker-b:#e9e2d2;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r-panel:20px;--r-control:12px;--r-thumb:8px;--r-pill:999px;--t1:2.5rem;--t2:2rem;--t3:1.5rem;--t4:1.25rem;--t5:1rem;--t6:.875rem;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#150e26;--surface:#211737;--surface-2:#2a1d47;--text:#f6efff;--muted:#b4a9cc;--primary:#a98bff;--on-primary:#150e26;--accent:#ffb547;--border:#3a2d57;--border-strong:#6b5a94;--focus:#c4adff;--danger:#ff8a80;--ok:#6ee7a0;--warn:#ffc56b;--checker-a:#2a1d47;--checker-b:#211737;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#150e26;--surface:#211737;--surface-2:#2a1d47;--text:#f6efff;--muted:#b4a9cc;--primary:#a98bff;--on-primary:#150e26;--accent:#ffb547;--border:#3a2d57;--border-strong:#6b5a94;--focus:#c4adff;--danger:#ff8a80;--ok:#6ee7a0;--warn:#ffc56b;--checker-a:#2a1d47;--checker-b:#211737;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--t5);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:800;line-height:1.2}h1{font-size:var(--t2)}h2{font-size:var(--t3)}h3{font-size:var(--t5)}h4{font-size:var(--t5);margin-top:var(--s4)}p{margin:0 0 var(--s3)}a{color:var(--primary);text-underline-offset:3px}code{background:var(--surface-2);border-radius:6px;padding:1px 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.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}.skip{left:var(--s2);z-index:100;background:var(--primary);color:var(--on-primary);padding:var(--s2) var(--s4);border-radius:var(--r-control);position:absolute;top:-60px}.skip:focus{top:var(--s2)}.app{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.rail{gap:var(--s4);height:100vh;padding:var(--s4) var(--s3);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--s3);color:var(--text);padding:var(--s1) var(--s2);text-decoration:none;display:flex}.brand img{box-shadow:3px 3px 0 var(--accent);border-radius:10px}.brand-name{font-weight:800;font-size:var(--t4)}.nav-list{gap:var(--s1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.nav-link{align-items:center;gap:var(--s3);min-height:44px;padding:0 var(--s3);border-radius:var(--r-control);color:var(--text);font-weight:600;font-size:var(--t6);text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-2)}.nav-link.active,.nav-link[aria-current=page]{background:var(--primary);color:var(--on-primary)}.rail-foot{gap:var(--s2);flex-direction:column;margin-top:auto;display:flex}.main{outline:none;min-width:0}.page{max-width:1480px;padding:var(--s5);margin:0 auto}.page.narrow{max-width:780px}.page-head{margin-bottom:var(--s5)}.page-head p{max-width:72ch;color:var(--muted);margin-top:var(--s2);margin-bottom:0}.loading{color:var(--muted)}.center{text-align:center}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s4);border-radius:var(--r-control);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:600;font-size:var(--t6);cursor:pointer;text-decoration:none;transition:transform 80ms;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:active:not(:disabled){transform:translate(1px,1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{min-height:36px;padding:0 var(--s3)}.btn.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);border-color:#0000}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--surface)}.btn.danger-outline{color:var(--danger);border-color:var(--danger)}.btn.hardshadow{box-shadow:3px 3px 0 var(--accent)}.btn.hardshadow:active:not(:disabled){box-shadow:1px 1px 0 var(--accent)}.btn.icon{padding:0 var(--s3)}.icon-btn{border-radius:var(--r-control);min-width:36px;min-height:36px;color:var(--text);font:inherit;font-size:var(--t5);cursor:pointer;background:0 0;border:0}.icon-btn:hover:not(:disabled){background:var(--surface-2)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.row{align-items:center;gap:var(--s2);display:flex}.row.wrap,.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}input[type=text],input[type=search],input[type=number],select,textarea{width:100%;min-height:44px;padding:var(--s2) var(--s3);border:1.5px solid var(--border-strong);border-radius:var(--r-control);background:var(--surface);color:var(--text);font:inherit;font-size:var(--t5)}textarea{resize:vertical;line-height:1.4}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.field{gap:var(--s1);margin-bottom:var(--s3);flex-direction:column;display:flex}.field-label,.field label,.field-head label{font-size:var(--t6);font-weight:600}.field-head{align-items:center;gap:var(--s2);display:flex}.field-head label{flex:1}input.num{width:76px;min-height:36px;padding:0 var(--s2);text-align:right}.unit{color:var(--muted);font-size:var(--t6);min-width:1.5ch}input[type=range]{width:100%;accent-color:var(--primary);height:28px;margin:0}.hint{color:var(--muted);font-size:var(--t6);margin:var(--s1) 0 var(--s3)}.note{background:var(--surface-2);border-radius:var(--r-control);padding:var(--s3);font-size:var(--t6)}.color-row{gap:var(--s2);display:flex}.color-input{border:1.5px solid var(--border-strong);border-radius:var(--r-control);background:var(--surface);cursor:pointer;width:52px;height:44px;padding:2px}.hex{text-transform:uppercase;max-width:120px;font-family:ui-monospace,Menlo,Consolas,monospace}.swatches{gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.swatch{border-radius:var(--r-pill);border:2px solid var(--border-strong);cursor:pointer;width:28px;height:28px;padding:0}.swatch.on{outline:3px solid var(--primary);outline-offset:2px}.toggle-row{justify-content:space-between;align-items:center;gap:var(--s3);min-height:44px;margin-bottom:var(--s2);display:flex}.toggle-label{font-size:var(--t6);flex-direction:column;font-weight:600;display:flex}.toggle-label .hint{margin:0;font-weight:400}.switch{appearance:none;border-radius:var(--r-pill);background:var(--border-strong);cursor:pointer;border:0;flex:none;width:48px;height:28px;transition:background .12s;position:relative}.switch:after{content:"";background:var(--surface);border-radius:50%;width:22px;height:22px;transition:transform .12s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--primary)}.switch:checked:after{background:var(--on-primary);transform:translate(20px)}.tabs{gap:var(--s1);border-bottom:1.5px solid var(--border);margin-bottom:var(--s4);display:flex;overflow-x:auto}.tab{min-height:44px;padding:0 var(--s3);color:var(--muted);font:inherit;font-weight:600;font-size:var(--t6);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000}.tab.on{color:var(--text);border-bottom-color:var(--primary)}.segmented{border:1.5px solid var(--border-strong);border-radius:var(--r-control);margin-bottom:var(--s3);flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{min-height:40px;padding:0 var(--s4);background:var(--surface);color:var(--text);font:inherit;font-size:var(--t6);cursor:pointer;border:0;font-weight:600}.segmented button+button{border-left:1.5px solid var(--border-strong)}.segmented button.on{background:var(--primary);color:var(--on-primary)}.chips{gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.chip{min-height:36px;padding:0 var(--s4);border-radius:var(--r-pill);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:var(--t6);cursor:pointer;font-weight:600}.chip.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.badge{padding:1px var(--s2);border-radius:var(--r-pill);border:1px solid var(--border-strong);color:var(--muted);font-size:.8125rem;font-weight:600;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.dot{background:var(--border-strong);width:10px;height:10px;margin-right:var(--s1);border-radius:50%;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);padding:var(--s4);min-width:0}.section{margin-bottom:var(--s5)}.section:last-child{margin-bottom:0}.section-head{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s3);display:flex}.section>h3{margin-bottom:var(--s3)}.empty{text-align:center;padding:var(--s6) var(--s4);border:2px dashed var(--border-strong);border-radius:var(--r-panel);max-width:520px;margin:var(--s5) auto}.empty.small{padding:var(--s4);margin:0}.empty p{color:var(--muted)}.toolbar{align-items:center;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.wrap-toolbar{align-items:flex-end}.wrap-toolbar .field{margin-bottom:0}.project-name{flex:200px;min-width:160px;max-width:360px}.project-name input{font-weight:800;font-size:var(--t4);background:0 0;border-color:#0000}.project-name input:hover,.project-name input:focus{border-color:var(--border-strong);background:var(--surface)}.save-state{color:var(--muted);font-size:var(--t6)}.toolbar-export{min-width:120px;margin-left:auto}.search{flex:240px;max-width:420px}.save-preset{gap:var(--s2);flex-wrap:wrap;align-items:flex-end;display:flex}.studio-grid{gap:var(--s4);grid-template-columns:300px minmax(0,1fr) 340px;align-items:start;display:grid}.studio-grid .center{top:var(--s4);position:sticky}.studio .panel.left,.studio .panel.right{max-height:calc(100vh - 140px);overflow-y:auto}.center-hint{text-align:center;margin:var(--s3) 0 0}.stage-wrap{gap:var(--s3);flex-direction:column;display:flex}.stage{border-radius:var(--r-panel);border:1.5px solid var(--border-strong);background:var(--surface-2);height:360px;box-shadow:6px 6px 0 var(--accent);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.stage:active{cursor:grabbing}.stage-inner{transform-origin:50%;position:absolute;box-shadow:0 0 0 1px #1e123640}.stage-inner svg{display:block}.stage-inner [data-layer]{cursor:move}.zoom-bar{justify-content:center;align-items:center;gap:var(--s2);display:flex}.zoom-read{text-align:center;font-variant-numeric:tabular-nums;min-width:5ch;font-weight:600}.checker{background-color:var(--checker-a);background-image:conic-gradient(var(--checker-b) 25%, transparent 0 50%, var(--checker-b) 0 75%, transparent 0);background-size:20px 20px}.svgview svg{width:100%;height:auto;display:block}.gradient-bar{border-radius:var(--r-pill);border:1.5px solid var(--border-strong);height:20px;margin-bottom:var(--s3)}.stop-row{align-items:flex-end;gap:var(--s2);display:flex}.stop-row .field{flex:1}.layer-list,.stack-list,.font-list,.tile-grid,.sticker-grid,.project-grid,.license-list,.link-list,.status-list{margin:0;padding:0;list-style:none}.layer-list li,.stack-list li{border-radius:var(--r-control);border:1.5px solid #0000;align-items:center;gap:2px;display:flex}.layer-list li.on,.stack-list li.on{border-color:var(--primary);background:var(--surface-2)}.layer-pick,.stack-pick{align-items:center;gap:var(--s2);min-width:0;min-height:44px;padding:0 var(--s2);color:var(--text);font:inherit;font-size:var(--t6);text-align:left;cursor:pointer;border-radius:var(--r-control);background:0 0;border:0;flex:1;font-weight:600;display:flex}.layer-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layer-icon{background:var(--primary);width:24px;height:24px;color:var(--on-primary);border-radius:6px;flex:none;place-items:center;font-size:.8125rem;display:grid}.chip-dot{border:1.5px solid var(--border-strong);border-radius:50%;flex:none;width:16px;height:16px}.align-grid{gap:var(--s1);margin-bottom:var(--s3);grid-template-columns:repeat(6,1fr);display:grid}.dial-row{gap:var(--s4);align-items:flex-start;display:flex}.dial-wrap{align-items:center;gap:var(--s1);flex-direction:column;flex:none;display:flex}.dial{touch-action:none;cursor:pointer;border-radius:50%;width:112px;height:112px}.dial-face{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:2px}.dial-tick{stroke:var(--muted);stroke-width:1.5px}.dial-hand{stroke:var(--primary);stroke-width:4px;stroke-linecap:round}.dial-knob{fill:var(--accent);stroke:var(--text);stroke-width:2.5px}.dial-hub{fill:var(--text)}.dial-read{font-variant-numeric:tabular-nums;font-weight:800}.welcome{gap:var(--s5);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--r-panel);padding:var(--s5);margin-bottom:var(--s4);box-shadow:6px 6px 0 var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.welcome p{max-width:60ch;color:var(--muted);margin:var(--s2) 0}.welcome-list{padding-left:var(--s5);max-width:64ch;margin:0}.welcome-actions{gap:var(--s2);flex-direction:column;min-width:180px;display:flex}.two-col{gap:var(--s5);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;display:grid}.two-col.wide-left{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.preview-card{border:1.5px solid var(--border-strong);border-radius:var(--r-panel);padding:var(--s3);margin-bottom:var(--s3);box-shadow:6px 6px 0 var(--accent)}.preview-card .svgview svg{border-radius:var(--r-thumb)}.anim-stage svg{width:100%;height:auto;display:block}.preview-controls{flex-wrap:wrap}.anim-types{gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.anim-type{text-align:left;min-height:64px;padding:var(--s2) var(--s3);border-radius:var(--r-control);border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;gap:2px;display:flex}.anim-type span{color:var(--muted);font-size:.8125rem}.anim-type.on{border-color:var(--primary);background:var(--surface-2);outline:2px solid var(--primary)}.tile-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);position:relative;overflow:hidden}.tile-main{cursor:pointer;text-align:left;width:100%;color:var(--text);font:inherit;background:0 0;border:0;padding:0;display:block}.tile-main:hover .tile-name{color:var(--primary)}.tile-art{background:var(--surface-2)}.tile-name{padding:var(--s2) var(--s3) 0;font-weight:800;display:block}.tile-mood{padding:0 var(--s3) var(--s3);color:var(--muted);font-size:var(--t6);text-transform:capitalize;display:block}.tile .fav,.tile .del{top:var(--s2);background:var(--surface);border:1px solid var(--border);min-width:44px;min-height:44px;position:absolute}.tile .fav{right:var(--s2);font-size:var(--t4)}.tile .fav.on{color:var(--accent)}.tile .del{left:var(--s2)}.sticker-grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(110px,1fr));display:grid}.sticker-btn{align-items:center;gap:var(--s1);width:100%;padding:var(--s3);border-radius:var(--r-control);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;font-size:.8125rem;font-weight:600;display:flex}.sticker-btn:hover{border-color:var(--primary)}.sticker-btn svg{width:72px;height:72px}.mini-canvas{border-radius:var(--r-thumb);border:1px solid var(--border);overflow:hidden}.font-list{gap:var(--s3);flex-direction:column;display:flex}.font-row{gap:var(--s4);padding:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;display:flex}.font-main{flex:320px;min-width:0}.font-name{align-items:center;gap:var(--s2);display:flex}.font-sample{margin:var(--s2) 0;overflow-wrap:anywhere;font-size:2rem;line-height:1.3}.badges{gap:var(--s1);flex-wrap:wrap;display:flex}.font-license{margin-bottom:0}.font-actions{gap:var(--s2);display:flex}.carousel{justify-content:center;align-items:center;gap:var(--s4);margin:var(--s3) 0;display:flex}.code{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-control);padding:var(--s3);max-height:300px;margin:0 0 var(--s3);white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.5;overflow:auto}.css-box{border:1.5px solid var(--border-strong);border-radius:var(--r-panel);padding:var(--s4);background:var(--surface)}.css-live-wrap{min-height:120px;padding:var(--s3);place-items:center;display:grid;overflow:hidden}.format-grid{gap:var(--s2);margin-bottom:var(--s3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.format-btn{border-radius:var(--r-control);border:1.5px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;font-weight:800}.format-btn.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.project-grid{gap:var(--s4);margin-bottom:var(--s6);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);padding:var(--s3);gap:var(--s3);flex-direction:column;display:flex}.project-card.current{border-color:var(--primary);box-shadow:4px 4px 0 var(--accent)}.project-thumb{width:100%;padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-thumb);cursor:pointer;display:block}.project-info{flex-direction:column;min-width:0;display:flex}.project-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-info .hint{margin:0}.confirm{background:var(--surface-2);border-radius:var(--r-control);padding:var(--s3);font-size:var(--t6)}.status-list li{padding:var(--s1) 0}.license-list li{padding:var(--s3) 0;border-bottom:1px solid var(--border)}.license-list li:last-child{border-bottom:0}.link-list{gap:var(--s2);flex-direction:column;display:flex}details{margin-bottom:var(--s3)}summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.toasts{right:var(--s4);bottom:var(--s4);z-index:50;gap:var(--s2);flex-direction:column;max-width:min(420px,100vw - 32px);display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--s3);background:var(--text);color:var(--bg);padding:var(--s3) var(--s4);border-radius:var(--r-control);box-shadow:4px 4px 0 var(--accent);font-size:var(--t6);display:flex}.toast-error{background:var(--danger);color:var(--surface);box-shadow:4px 4px 0 var(--text)}.toast-close{color:inherit;font-size:var(--t4);cursor:pointer;background:0 0;border:0;min-width:32px;min-height:32px;margin:-6px -8px 0 auto}@media (width<=1180px){.studio-grid{grid-template-columns:280px minmax(0,1fr)}.studio-grid .panel.right{grid-column:1/-1;max-height:none}.studio .panel.left{max-height:none}}@media (width<=860px){.app{display:block}.rail{z-index:40;height:auto;padding:var(--s1) var(--s2);border-right:0;border-top:1px solid var(--border);flex-direction:row;align-items:center;gap:0;position:fixed;inset:auto 0 0;overflow:auto hidden}.brand,.theme-toggle{display:none}.nav-list{flex-direction:row;gap:0}.rail-foot{flex-direction:row;margin-top:0}.nav-link{min-width:68px;min-height:56px;padding:var(--s1) var(--s2);flex-direction:column;justify-content:center;gap:0;font-size:.75rem}.main{padding-bottom:76px}.page{padding:var(--s3)}.studio-grid{flex-direction:column;display:flex}.studio-grid .center{order:-1;width:100%;position:static}.studio .panel.left,.studio .panel.right{width:100%;max-height:none}.stage{box-shadow:4px 4px 0 var(--accent)}.welcome-list,.welcome p{display:none}.welcome{gap:var(--s3);margin-bottom:var(--s3)}.welcome-actions{flex-direction:row;min-width:0}.two-col,.two-col.wide-left{grid-template-columns:minmax(0,1fr)}.btn-text{display:none}.toolbar-export{margin-left:0}.project-name{flex-basis:100%;max-width:none}.toasts{bottom:84px;right:var(--s3);left:var(--s3);max-width:none}.welcome{padding:var(--s4)}h1{font-size:var(--t3)}.format-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.anim-types{grid-template-columns:minmax(0,1fr)}.dial-row{flex-direction:column;align-items:center}.dial-row .grow{width:100%}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.panel>.row,.tab-body+.row,.tab-body{margin-bottom:var(--s4)}.sticker-grid li{display:flex}.sticker-btn{justify-content:flex-start;height:100%}
