:root{--ink-ditto:#6b21a8;--ink-mimeo:#1a1a1f;--ink-copier:#1e1b17;--ink-dotmatrix:#0d2540;--ink-inkjet:#00527a;--accent:var(--ink-ditto);--accent-text:var(--ink-ditto);--bg:#fafaf8;--surface:#fff;--surface-2:#f4f0ec;--border:#ddd8d0;--text:#1a1818;--text-secondary:#5a5450;--text-muted:#6e6864;--focus-ring:2px solid var(--accent);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--font-system:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--max-w:680px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#13121a;--surface:#1e1c28;--surface-2:#252233;--border:#6a6189;--accent-text:#a78bfa;--text:#ece8f4;--text-secondary:#b3aacb;--text-muted:#8a80a8;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006}}:root[data-theme=dark]{--bg:#13121a;--surface:#1e1c28;--surface-2:#252233;--border:#6a6189;--accent-text:#a78bfa;--text:#ece8f4;--text-secondary:#b3aacb;--text-muted:#8a80a8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-system);background:var(--bg);color:var(--text);grid-template-rows:auto 1fr auto;min-height:100dvh;line-height:1.55;display:grid}body>*{min-width:0}a{color:var(--accent-text)}a:focus-visible{outline:var(--focus-ring);border-radius: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}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:16px}.site-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;box-shadow:var(--shadow-sm);padding-block:16px;position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-icon{flex-shrink:0;width:36px;height:36px}.brand-text{flex-direction:column;display:flex}.wordmark{color:var(--accent-text);letter-spacing:-.02em;font-size:clamp(1.4rem,4vw,1.75rem);font-weight:800;line-height:1}.wordmark .tld{opacity:.5;font-weight:400}.tagline{color:var(--text-secondary);letter-spacing:.02em;margin-top:3px;font-size:.8rem}.notice{border-radius:var(--radius-sm);margin-block:12px;padding:10px 14px;font-size:.875rem}.notice-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .notice-error{color:#fca5a5;background:#2d1a1a;border-color:#7f1d1d}}.notice-idle{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary)}.site-main{padding-block:28px 48px}.fine-tuning{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-block:20px}.fine-tuning-toggle{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:14px 18px;font-size:.9rem;font-weight:600;list-style:none;display:flex}.fine-tuning-toggle::-webkit-details-marker{display:none}.fine-tuning-toggle:before{content:"▶";color:var(--text-muted);font-size:.65rem;transition:transform .18s}.fine-tuning[open] .fine-tuning-toggle:before{transform:rotate(90deg)}.fine-tuning-toggle:focus-visible{outline:var(--focus-ring);border-radius:var(--radius-md)}.fine-tuning-body{border-top:1px solid var(--border);gap:14px;padding:4px 18px 18px;display:grid}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:center;padding:40px 24px;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--surface-2)}.drop-zone:focus-visible{outline:var(--focus-ring)}.drop-icon{margin-bottom:10px;font-size:2.5rem}.drop-primary{color:var(--text);margin-bottom:6px;font-size:1.05rem;font-weight:600}.drop-secondary{color:var(--text-muted);font-size:.825rem}.drop-sample{color:var(--text-muted);margin-top:8px;font-size:.8rem}.link-btn{color:var(--accent-text);font-size:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.link-btn:hover{opacity:.75}.presets{flex-direction:column;gap:10px;margin-block:0 20px;display:flex}.preset-era{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.preset-era-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;flex:0 0 100%;margin-bottom:-2px;font-size:.72rem;font-weight:700}.preset-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.825rem;transition:border-color .12s,color .12s}.preset-btn:hover{border-color:var(--accent-text);color:var(--accent-text)}.preset-btn:focus-visible{outline:var(--focus-ring)}.preset-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.control-row{grid-template-columns:140px 1fr 40px;align-items:center;gap:10px;display:grid}.control-row--select{grid-template-columns:140px 1fr}.control-row--check{grid-template-columns:1fr}.control-row label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.control-row--check label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:.875rem;display:flex}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}input[type=range]:focus-visible{outline:var(--focus-ring);border-radius:2px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;width:100%;padding:6px 8px;font-size:.875rem}select:focus-visible{outline:var(--focus-ring)}.ctrl-value{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;font-size:.825rem}@media (width<=480px){.control-row{grid-template-rows:auto auto;grid-template-columns:1fr 40px}.control-row label{grid-column:1/-1}.control-row--select{grid-template-columns:1fr}}.spinner-row{color:var(--text-secondary);align-items:center;gap:10px;padding:14px 0;font-size:.9rem;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:var(--accent);animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.preview-section{margin-block:20px}.preview-nav{align-items:center;gap:12px;margin-bottom:12px;display:flex}.page-label{color:var(--text-muted);font-size:.875rem}.comparison-slider{border-radius:var(--radius-md);border:1px solid var(--border);cursor:ew-resize;background:var(--surface-2);touch-action:none;position:relative;overflow:hidden}.comparison-slider canvas{max-width:100%;height:auto;display:block}#canvas-after{width:100%;height:auto;display:block}#canvas-before{object-fit:contain;clip-path:inset(0 50% 0 0);width:100%;height:100%;transition:clip-path;position:absolute;inset:0}.slider-handle{pointer-events:none;flex-direction:column;align-items:center;width:40px;display:flex;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.slider-line{background:#ffffffd9;flex:1;width:2px;box-shadow:0 0 4px #0006}.slider-thumb{color:#444;box-shadow:var(--shadow-sm);white-space:nowrap;background:#fffffff2;border-radius:999px;padding:4px 8px;font-size:.7rem;position:absolute;top:50%;transform:translateY(-50%)}.slider-label{color:#fff;letter-spacing:.05em;pointer-events:none;background:#00000073;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;position:absolute;top:10px}.slider-label--before{left:10px}.slider-label--after{right:10px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:9px 18px;font-size:.9rem;font-weight:600;transition:opacity .12s,transform 80ms;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:not(:disabled):hover{opacity:.88}.btn:not(:disabled):active{transform:scale(.97)}.btn:focus-visible{outline:var(--focus-ring)}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-gag{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border);font-style:italic}.btn-icon{background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:6px 12px;font-size:1rem}.download-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.privacy-note{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-secondary);border-left:3px solid var(--accent);margin-top:32px;padding:14px 16px;font-size:.825rem}.privacy-note strong{color:var(--text)}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding-block:20px}.site-footer .container{flex-wrap:wrap;align-items:center;gap:12px 24px;display:flex}.footer-nav{gap:16px;display:flex}.footer-nav a{color:var(--text-secondary);font-size:.875rem;text-decoration:none}.footer-nav a:hover{color:var(--accent-text)}.footer-credits{color:var(--text-muted);flex:1;font-size:.775rem}.sniff-overlay{z-index:9999;opacity:0;background:#0000008c;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.sniff-overlay.sniff-phase-rise{opacity:1}.sniff-content{flex-direction:column;align-items:center;gap:20px;display:flex}.sniff-sheet{width:120px;height:160px;box-shadow:var(--shadow-md);background:#f6eedc;border-radius:4px;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:12px;transition:transform .5s cubic-bezier(.34,1.56,.64,1);display:flex;transform:translateY(40px)}.sniff-phase-rise .sniff-sheet{transform:translateY(0)}.sniff-lines{opacity:0;gap:8px;transition:opacity .3s .5s;display:flex}.sniff-phase-sniff .sniff-lines{opacity:1}.sniff-lines span{background:linear-gradient(#0000,#7b3ab8);border-radius:2px;width:3px;height:30px;animation:1s ease-in-out infinite alternate sniff-wave;display:block}.sniff-lines span:nth-child(2){animation-delay:.2s}.sniff-lines span:nth-child(3){animation-delay:.4s}@keyframes sniff-wave{0%{opacity:.4;transform:scaleY(.6)translateY(4px)}to{opacity:1;transform:scaleY(1)translateY(-4px)}}@media (prefers-reduced-motion:reduce){.sniff-lines span{animation:none}.sniff-sheet{transition:none}}.sniff-caption{color:#fff;text-shadow:0 2px 8px #0006;opacity:0;font-size:1.8rem;font-weight:800;transition:opacity .4s}.sniff-phase-caption .sniff-caption{opacity:1}.sniff-phase-fade{opacity:0;transition:opacity .5s}body[data-mode=mimeo]{--accent:#1a1a1f}body[data-mode=copier],body[data-mode=drum]{--accent:var(--ink-copier)}body[data-mode=dotmatrix],body[data-mode=newribbon]{--accent:var(--ink-dotmatrix)}body[data-mode=inkjet]{--accent:var(--ink-inkjet)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body[data-mode=mimeo]{--accent:#a0a0b0}:root:not([data-theme=light]) body[data-mode=copier],:root:not([data-theme=light]) body[data-mode=drum]{--accent:#8a8078}:root:not([data-theme=light]) body[data-mode=dotmatrix],:root:not([data-theme=light]) body[data-mode=newribbon]{--accent:#4a7ab5}:root:not([data-theme=light]) body[data-mode=inkjet]{--accent:#2a9fc0}}:root[data-theme=dark] body[data-mode=mimeo]{--accent:#a0a0b0}:root[data-theme=dark] body[data-mode=copier],:root[data-theme=dark] body[data-mode=drum]{--accent:#8a8078}:root[data-theme=dark] body[data-mode=dotmatrix],:root[data-theme=dark] body[data-mode=newribbon]{--accent:#4a7ab5}:root[data-theme=dark] body[data-mode=inkjet]{--accent:#2a9fc0}
