:root{--bg:#fafaf7;--paper:#fff;--ink:#0a0a0a;--muted:#6b7280;--border:#e5e7eb;--accent-soft:#111827;--ok:#16a34a;--radius:10px;--shadow:0 1px 2px #0f172a0a, 0 4px 12px #0f172a0a;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0;padding:0}#app{flex-direction:column;max-width:1024px;min-height:100dvh;margin:0 auto;padding:1.5rem 1.25rem 2rem;display:flex}.header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.brand h1{font-optical-sizing:auto;font-variation-settings:"opsz" 144;letter-spacing:-.02em;margin:0;font-family:Fraunces,Times New Roman,serif;font-size:clamp(2rem,4.5vw,2.75rem);font-weight:600;line-height:1;display:inline-block}.brand h1:after{content:"";background:var(--border);width:100%;height:1px;margin-top:8px;display:block}.trust{color:var(--muted);background:var(--paper);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.5rem;margin:0;padding:.4rem .7rem;font-size:.8rem;display:inline-flex}.dot{background:var(--ok);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #16a34a26}.tabs{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);align-self:flex-start;margin-bottom:.75rem;padding:4px;display:inline-flex}.tab{appearance:none;font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:.5rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.tab:hover{color:var(--ink)}.tab.is-active{background:var(--ink);color:#fff}.mouse-hint{color:var(--muted);text-align:center;margin:.75rem 0 0;font-size:.8rem}.linklike{color:var(--ink);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.canvas-wrap{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:3;width:100%;position:relative;overflow:hidden}@media (max-width:600px){.canvas-wrap{aspect-ratio:2}}.baseline{background:var(--border);pointer-events:none;height:1px;position:absolute;bottom:28%;left:8%;right:8%}#canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.canvas-hint{pointer-events:none;color:#c7c7c2;letter-spacing:.02em;justify-content:center;align-items:center;font-size:clamp(1rem,2vw,1.25rem);font-style:italic;display:flex;position:absolute;inset:0}.canvas-hint.is-hidden{display:none}.type-controls{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.type-controls[hidden]{display:none}#nameInput{min-width:0;font:inherit;background:var(--paper);border:1px solid var(--border);color:var(--ink);border-radius:8px;flex:220px;padding:.6rem .85rem;font-size:.95rem}#nameInput:focus{outline:2px solid var(--ink);outline-offset:2px}.font-picker{flex:240px;position:relative}.font-picker-toggle{width:100%;font:inherit;background:var(--paper);border:1px solid var(--border);color:var(--ink);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .85rem;display:flex}.font-picker-toggle:hover{border-color:#cbd5e1}.font-picker-current{white-space:nowrap;text-overflow:ellipsis;font-family:Dancing Script,cursive;font-size:1.3rem;line-height:1;overflow:hidden}.font-picker-caret{color:var(--muted);flex-shrink:0;font-size:.85rem}.font-picker-menu{background:var(--paper);border:1px solid var(--border);box-shadow:var(--shadow);z-index:30;border-radius:8px;max-height:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.font-picker-menu li{cursor:pointer;color:var(--ink);border-radius:6px;padding:.6rem .85rem;font-size:1.4rem;line-height:1.2}.font-picker-menu li:hover{background:#f5f5f0}.font-picker-menu li[aria-selected=true]{background:#eef0e8}.controls{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.75rem;padding:.75rem 1rem;display:flex}.control-group{gap:.4rem;display:inline-flex}.swatch{background:var(--c);cursor:pointer;outline:1px solid var(--border);outline-offset:0;border:2px solid #0000;border-radius:50%;width:24px;height:24px;padding:0;transition:transform .1s,outline-color .15s}.swatch:hover{transform:scale(1.08)}.swatch.is-active{outline:2px solid var(--ink);outline-offset:2px}.swatch-custom-wrap{line-height:0;display:inline-block;position:relative}.swatch-custom{cursor:pointer;background:conic-gradient(#ef4444,#f59e0b,#84cc16,#06b6d4,#3b82f6,#a855f7,#ec4899,#ef4444);padding:0;display:inline-block;position:relative;overflow:hidden}.swatch-clear{background:var(--ink);color:#fff;border:2px solid var(--paper);cursor:pointer;z-index:5;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:11px;font-weight:700;line-height:1;transition:background .15s,transform .1s;display:inline-flex;position:absolute;top:-6px;right:-6px}.swatch-clear[hidden]{display:none}.swatch-clear:hover{background:#ef4444;transform:scale(1.1)}.swatch-custom:after{content:"+";color:#fff;text-shadow:0 1px 2px #00000080;pointer-events:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.swatch-custom.has-color:after{display:none}.swatch-custom input[type=color]{cursor:pointer;opacity:0;background:0 0;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.swatch-custom.has-color{background:var(--c)}.slider{color:var(--muted);flex-direction:column;gap:.2rem;min-width:110px;font-size:.75rem;display:inline-flex}.slider input[type=range]{accent-color:var(--ink)}.slider.is-disabled{opacity:.4;pointer-events:none}.toggle{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:.45rem;padding:.25rem .5rem;font-size:.75rem;display:inline-flex}.toggle:hover{color:var(--ink);background:#f5f5f0}.toggle input[type=checkbox]{accent-color:var(--ink);cursor:pointer;width:14px;height:14px}.toggle-label,.slider-label{align-items:center;gap:.3rem;display:inline-flex}.info{width:14px;height:14px;color:var(--muted);cursor:help;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-style:normal;line-height:1;display:inline-flex;position:relative}.info:hover{color:var(--ink)}.info:after{content:attr(data-tip);background:var(--ink);color:#fff;white-space:normal;text-align:center;opacity:0;pointer-events:none;z-index:50;border-radius:6px;width:max-content;max-width:200px;padding:.5rem .7rem;font-size:.72rem;font-weight:500;line-height:1.35;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.info:before{content:"";border:5px solid #0000;border-top-color:var(--ink);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%)translateY(4px)}.info:hover:after,.info:hover:before,.info:focus:after,.info:focus:before{opacity:1;transform:translate(-50%)translateY(0)}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:inline-flex}.actions-divider{background:var(--border);width:1px;height:24px;margin:0 .25rem}.btn{appearance:none;font:inherit;border:1px solid var(--border);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:8px;padding:.55rem .95rem;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s,transform 50ms}.btn:hover{border-color:#cbd5e1}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-primary:hover{background:var(--accent-soft)}.btn-sm{color:var(--muted);padding:.45rem .75rem;font-size:.78rem}.btn-sm:hover{color:var(--ink)}.btn-lg{padding:.7rem 1.2rem;font-size:.95rem;font-weight:600}.footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:2rem;font-size:.8rem;display:flex}.footer p{margin:0}.footer a{color:var(--muted);border-bottom:1px solid var(--border);text-decoration:none}.footer a:hover{color:var(--ink)}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:100;border-radius:999px;align-items:center;gap:.6rem;padding:.5rem .5rem .5rem 1rem;font-size:.85rem;font-weight:500;transition:opacity .2s,transform .2s;display:inline-flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(20px)}.toast.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.toast-action{color:#fff;font:inherit;cursor:pointer;background:#ffffff26;border:none;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;font-weight:600;transition:background .15s}.toast-action:hover{background:#ffffff40}@media (hover:hover) and (pointer:fine){.mouse-hint.is-shown{display:block}}
