:root{--bg:#faf8f5;--text:#1c1917;--muted:#57534e;--accent:#2563eb;--accent-text:#fff;--surface:#fff;--border:#d6d3d1;--warn-bg:#fef3c7;--warn-text:#78350f;--ok-bg:#dcfce7;--ok-text:#14532d;--danger:#b91c1c;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0;font-size:1.25rem}p{margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-weight:600;display:inline-flex}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.button:disabled,.button.disabled{opacity:.55;cursor:default}.button.big{min-height:56px;padding:0 32px;font-size:1.125rem}.button:focus-visible,.thumb:focus-visible,select:focus-visible,summary:focus-visible,.swatch:focus-visible,input[type=color]:focus-visible,input[type=range]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.button:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.swatch:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.notice{background:var(--warn-bg);color:var(--warn-text);border-radius:10px;padding:10px 14px}.privacy,.hint{color:var(--muted);text-align:center;font-size:.875rem}.pick{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:24px 16px;display:flex}.pick h1{font-size:2rem}.lede{color:var(--muted)}.editor{max-width:560px;height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.editor-bar{justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.button.ghost{background:0 0;border-color:#0000;padding:0 10px}.stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:4px 12px;display:flex;position:relative}.preview-frame{position:relative}.preview-frame canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:12px;width:100%;height:100%;display:block;box-shadow:0 2px 12px #0000002e}.preview-frame canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.photo-tip{z-index:2;background:#1c1917eb;border-radius:999px;align-items:center;animation:.16s ease-out pop-in;display:flex;position:absolute;box-shadow:0 6px 20px #0000004d}.photo-tip button{color:#fff;min-width:56px;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:none;padding:0 14px;font-weight:600}.photo-tip button:focus-visible{outline-offset:-4px;border-radius:999px;outline:3px solid #93c5fd}.tip-sep{background:#ffffff4d;width:1px;height:20px}.coach{color:#fff;text-align:center;pointer-events:none;background:#1c1917bf;border-radius:999px;width:max-content;max-width:calc(100% - 24px);padding:8px 14px;font-size:.8125rem;animation:.3s ease-out fade-up;position:absolute;bottom:12px;left:50%;translate:-50%}.toasts{z-index:3;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:8px;left:12px;right:12px}.toast{color:#fff;pointer-events:auto;background:#1c1917e0;border-radius:14px;align-items:center;gap:4px;max-width:100%;padding:4px 4px 4px 14px;font-size:.875rem;animation:.25s ease-out fade-down;display:flex;box-shadow:0 4px 14px #00000040}.toast.notice{background:var(--warn-bg);color:var(--warn-text)}.toast-close{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:none;flex:none;font-size:1.25rem}.keyboard-help{z-index:3;color:#fff;text-align:center;background:#1c1917e0;border-radius:10px;padding:8px 12px;font-size:.8125rem;position:absolute;bottom:8px;left:12px;right:12px}.tool-panel{border-top:1px solid var(--border);background:var(--surface);flex:none;align-items:center;height:132px;padding:0 12px;display:flex}.tool-content{width:100%;animation:.18s ease-out fade-up}.tool-slider{color:var(--muted);grid-template-columns:5.5em 1fr 3em;align-items:center;gap:8px;font-size:.875rem;display:grid}.tool-slider input[type=range]{width:100%;min-height:44px}.tool-slider .tool-value{color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.photo-tool{flex-direction:column;gap:4px;display:flex}.photo-tool .hint,.export-tool .privacy{text-align:left}.tabbar{border-top:1px solid var(--border);background:var(--surface);flex:none;display:flex}.tab{min-height:48px;color:var(--muted);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;flex:1;font-weight:600;position:relative}.tab[aria-selected=true]{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.tab:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.badge{background:#d97706;border-radius:50%;width:8px;height:8px;margin-left:4px;position:absolute;top:10px}.button:active,.tab:active,.chip:active,.photo-tip button:active{transform:scale(.96)}.strip{scroll-snap-type:x proximity;gap:10px;padding:4px 2px;display:flex;overflow-x:auto}.thumb{cursor:pointer;scroll-snap-align:start;touch-action:manipulation;background:0 0;border:2px solid #0000;border-radius:10px;flex:none;padding:3px;transition:transform .15s ease-out}.thumb[aria-checked=true]{border-color:var(--accent);transform:scale(1.04)}.thumb svg{border-radius:6px;width:54px;height:96px;display:block}.diagram-frame{fill:var(--surface);stroke:var(--border);stroke-width:2px}.diagram-cell{fill:var(--border);stroke:var(--surface);stroke-width:2px;stroke-linejoin:round}.thumb[aria-checked=true] .diagram-cell{fill:color-mix(in srgb, var(--accent) 40%, var(--surface))}.export-tool{flex-direction:column;gap:8px;max-height:120px;display:flex;overflow-y:auto}.warnings{background:var(--warn-bg);color:var(--warn-text);border-radius:10px;margin:0;padding:8px 12px 8px 28px;font-size:.8125rem}.format{color:var(--muted);align-items:center;gap:8px;font-size:.875rem;display:flex}.format select{border:1px solid var(--border);appearance:none;background:linear-gradient(45deg, transparent 50%, var(--muted) 50%) right 16px center / 6px 6px no-repeat, linear-gradient(135deg, var(--muted) 50%, transparent 50%) right 10px center / 6px 6px no-repeat, var(--surface);min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:0 30px 0 12px}.style-tool{flex-direction:column;gap:6px;display:flex}.chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:999px;flex:none;padding:0 14px;font-size:.875rem}.chip[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.chip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.style-control{animation:.16s ease-out fade-up}.swatches{gap:8px;padding:4px 4px 4px 2px;display:flex;overflow-x:auto}.swatch{flex:none}.border-row{align-items:center;gap:8px;display:flex}.border-row .tool-slider{flex:1}.color-input input[type=color]{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:44px;height:44px;padding:2px}.swatch{border:1px solid var(--border);cursor:pointer;touch-action:manipulation;border-radius:50%;width:44px;height:44px;padding:0;position:relative}.swatch[aria-pressed=true],.swatch.checked{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.swatch.blur{filter:saturate(.9);background:radial-gradient(circle at 35% 35%,#f2c6a0,#7aa0c4 55%,#6b8f5e)}.swatch.custom{background:conic-gradient(#f87171,#facc15,#4ade80,#60a5fa,#c084fc,#f87171);display:inline-flex;overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-6px)}}@keyframes pop-in{0%{opacity:0;scale:.9}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.pick{position:relative}.pick>a.button{position:absolute;top:12px;right:16px}.header-actions{gap:8px;display:flex}a.button{text-decoration:none}.account-screen{z-index:10;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.account-inner{max-width:480px;padding:12px 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.account-inner h1:focus{outline:none}.account-form{flex-direction:column;gap:12px;display:flex}.account-form .hint{text-align:left}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:.875rem;display:flex}.field input{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:0 12px;font-size:1rem}.field input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.success{background:var(--ok-bg);color:var(--ok-text);border-radius:10px;padding:10px 14px}.account-links{color:var(--muted);font-size:.875rem}.account-links a,.account-form .hint a,.legal a{color:var(--accent)}.turnstile{min-height:65px}.danger-zone{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:0 14px}.danger-zone[open]{padding-bottom:14px}.danger-zone summary{min-height:44px;color:var(--danger);cursor:pointer;align-items:center;font-weight:600;display:flex}.button.danger{border-color:var(--danger);background:var(--danger);color:#fff}.legal{line-height:1.55}.legal table{border-collapse:collapse;width:100%;font-size:.875rem}.legal th,.legal td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px}.sources{flex-direction:column;gap:10px;width:min(100%,340px);display:flex}.sources .button{width:100%}.dropzone{border:2px dashed var(--border);background:var(--surface);border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:min(100%,520px);padding:36px 24px;transition:border-color .15s,background .15s;display:flex}.dropzone.dragging{border-color:var(--accent);background:#eff6ff}.dropzone-title{font-size:1.125rem;font-weight:600}
