:root{--bg:#f4f0ea;--panel:#fffdfa;--ink:#1f1c19;--muted:#736b62;--line:#e6dfd5;--accent:#e8692c;--accent-ink:#fff;--accent-soft:#fbe6da;--danger:#c23b2a;--radius:14px;--font:ui-sans-serif, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 85%, white);z-index:10;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{font-size:26px;line-height:1}.brand-name{letter-spacing:-.02em;font-size:20px;font-weight:800}.topbar-actions{gap:8px;display:flex}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms}.btn:hover{background:#fff;border-color:#d4c9bb}.btn:active{transform:translateY(1px)}.btn:focus-visible,.tile:focus-visible,.swatch:focus-visible,.side-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#d65c21}.btn.primary:disabled{opacity:.6;cursor:progress}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink);background:#0000000a}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger)}.workspace{grid-template-columns:280px minmax(0,1fr) 280px;align-items:start;gap:20px;max-width:1440px;margin:0 auto;padding:20px 24px 32px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-height:calc(100vh - 104px);padding:4px 18px;position:sticky;top:84px;overflow:auto}.panel section{border-bottom:1px solid var(--line);padding:16px 0}.panel section:last-child{border-bottom:0}.panel h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:700}.row{align-items:flex-end;gap:8px;display:flex}input[type=text],textarea,select{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:8px 10px}textarea{resize:vertical;min-height:52px}input[type=text]:focus,textarea:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input[type=color]{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;width:100%;height:36px;padding:2px}input[type=range]{width:100%;accent-color:var(--accent)}.field{flex-direction:column;gap:6px;margin-top:10px;font-size:13px;font-weight:600;display:flex}.field>span{justify-content:space-between;display:flex}.field output{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.grow{flex:1}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;height:36px;font-size:13px;font-weight:600;display:flex}.toggle input{accent-color:var(--accent);width:16px;height:16px}.swatches{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.swatch{aspect-ratio:1;background:var(--c);cursor:pointer;border:1px solid #0000001f;border-radius:50%;padding:0;transition:transform .12s;box-shadow:inset 0 -3px 6px #00000014}.swatch:hover{transform:scale(1.08)}.swatch.active{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent)}.custom-color{color:var(--muted);align-items:center;gap:10px;margin-top:10px;font-size:13px;font-weight:600;display:flex}.custom-color input{width:56px;height:30px}.upload{text-align:center;cursor:pointer;border:1.5px dashed #d4c9bb;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:18px 12px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:flex}.upload small{color:var(--muted);font-size:12px;font-weight:400}.upload-icon{color:var(--accent);font-size:20px}.upload:hover,.upload.dragging{border-color:var(--accent);background:var(--accent-soft)}.grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tile{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:10px;place-items:center;padding:10px;transition:border-color .15s,transform .12s;display:grid}.tile svg{width:100%;height:100%}.tile.emoji{padding:0;font-size:24px}.tile:hover{border-color:var(--accent);transform:translateY(-1px)}.stage{flex-direction:column;align-items:center;gap:14px;min-width:0;display:flex}.side-tabs{background:#e9e2d8;border-radius:999px;padding:4px;display:inline-flex}.side-tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 22px;font-size:14px;font-weight:600}.side-tabs button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #0000001f}.canvas-wrap{border:1px solid var(--line);background:radial-gradient(at 50% 40%,#fffdf9 0%,#ece5db 100%);border-radius:20px;width:100%;max-width:640px;padding:16px;transition:box-shadow .15s}.canvas-wrap.dragging{box-shadow:0 0 0 3px var(--accent)}#canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}#canvas .item{cursor:grab}#canvas.grabbing,#canvas.grabbing .item{cursor:grabbing}.hint{color:var(--muted);text-align:center;margin:0;font-size:13px}.empty{text-align:center;color:var(--muted);padding:40px 8px}.empty-icon{filter:grayscale(.3);margin-bottom:8px;font-size:40px}.empty p{margin:0;font-size:14px}.actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.actions .danger{grid-column:1/-1}[hidden]{display:none!important}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:50;border-radius:10px;padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=1080px){.workspace{grid-template-columns:1fr 1fr}.stage{order:-1;grid-column:1/-1}.panel{max-height:none;position:static}}@media (width<=680px){.workspace{grid-template-columns:1fr;gap:12px;padding:12px}.topbar{padding:10px 12px}.brand-name{font-size:18px}.btn.ghost{display:none}.canvas-wrap{padding:6px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
