@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/bricolage-grotesque-s2.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-s2.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-s2.woff2)format("woff2")}:root{--bg:#f6f2ea;--surface:#fffdf9;--ink:#17251f;--muted:#5b6157;--accent:#0b7a55;--accent-ink:#075c40;--warm:#e8a13d;--warm-ink:#8a5a12;--pepper:#c2412d;--border:#e5ddcd;--tint:#f7f1e6;--field:#fffefb;--hover:#fff6e6;--deep:#0e1b15;--deep-ink:#d9efe6;--radius:16px;--shadow:0 12px 32px -20px #5c3e1273;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--display:"Bricolage Grotesque", system-ui, sans-serif;--body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--bg);color:var(--ink);font-family:var(--body);margin:0;font-size:16px;line-height:1.6}a{color:var(--accent-ink)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:880px;margin:0 auto;padding:0 20px}.site-header{background-color:var(--deep);color:var(--deep-ink);background-image:radial-gradient(circle at 1px 1px,#e8a13d29 1px,#0000 0);background-size:16px 16px;position:relative}.site-header:after{content:"";background:linear-gradient(90deg, var(--accent) 0 34%, var(--warm) 34% 67%, var(--pepper) 67% 100%);height:4px;position:absolute;bottom:0;left:0;right:0}.site-header .wrap{justify-content:space-between;align-items:center;gap:12px;padding-top:16px;padding-bottom:18px;display:flex}.wordmark{font-family:var(--mono);color:#fff;letter-spacing:.01em;white-space:nowrap;font-size:1.05rem;font-weight:600;text-decoration:none}.wordmark .cursor{background:var(--warm);vertical-align:text-bottom;width:.55em;height:1.05em;margin-left:2px;animation:1.2s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.lang-switch{font-family:var(--mono);color:var(--deep-ink);border:1px solid #d9efe659;border-radius:999px;padding:4px 12px;font-size:.85rem;text-decoration:none}.lang-switch:hover{border-color:var(--warm);color:#fff}.chip{font-family:var(--mono);color:var(--accent-ink);background:#e6f2ea;border:1px solid #bcdccd;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.75rem;display:inline-flex}.chip:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px}h1,h2,h3{font-family:var(--display);line-height:1.2}h1{letter-spacing:-.015em;margin:.4em 0 .25em;font-size:clamp(1.6rem,4.5vw,2.3rem);font-weight:700}h2{margin-top:2em;font-size:1.3rem;font-weight:600}.tagline{color:var(--muted);margin-top:0}.tool-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;margin-top:20px;padding:24px}@media (width<=480px){.tool-card{padding:20px 18px}}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--muted);font-size:.85rem;font-weight:600}textarea,input[type=text],input[type=number],input[type=datetime-local],select{font-family:var(--mono);color:var(--ink);background:var(--field);border:1px solid var(--border);border-radius:12px;width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;min-height:150px;line-height:1.5}textarea.out,input.out{background:var(--tint)}textarea:focus,select:focus,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):focus{border-color:var(--warm);outline:none;box-shadow:0 0 0 3px #e8a13d59}@media (pointer:coarse){textarea,select,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]){font-size:16px!important}button{min-height:44px}button.print-btn{min-height:36px}}.row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.row .field{flex:140px;margin-bottom:0}.check{align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.check input{accent-color:var(--accent);width:16px;height:16px}button,.btn{font-family:var(--body);border:1px solid var(--accent-ink);background:var(--accent);color:#fff;cursor:pointer;border-radius:999px;padding:11px 22px;font-size:.92rem;font-weight:600;transition:background .12s,border-color .12s,transform .12s}button:hover{background:var(--accent-ink)}button.ghost{background:var(--surface);color:var(--accent-ink);border-color:var(--border)}button.ghost:hover{border-color:var(--warm);background:var(--hover)}@media (hover:hover){button:not(:disabled):hover{transform:translateY(-1px)}}.status{font-family:var(--mono);min-height:1.2em;font-size:.82rem}.status.ok{color:var(--accent-ink)}.status.err{color:#b3401f}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.stat{background:var(--tint);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.stat b{font-family:var(--mono);font-size:1.25rem;display:block}.stat span{color:var(--muted);font-size:.78rem}.about p{max-width:68ch}details{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:8px;padding:12px 16px}summary{cursor:pointer;font-weight:600}details p{color:var(--muted);margin:8px 0 2px}.guide p,.guide li{max-width:68ch}.guide-steps{margin:14px 0;padding-left:22px}.guide-steps li{margin-bottom:6px}.guide-code{max-width:100%;margin:14px 0}.guide-code pre{background:var(--tint);border:1px solid var(--border);border-radius:8px;max-width:100%;margin:0;padding:12px 14px;overflow-x:auto}.guide-code code{font-family:var(--mono);white-space:pre;font-size:.85rem}.guide-code figcaption{color:var(--muted);margin-top:6px;font-size:.8rem}.guide-table{max-width:100%;margin:14px 0;overflow-x:auto}.guide table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.9rem}.guide th,.guide td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 10px}.guide th{background:var(--tint);color:var(--muted);font-size:.8rem;font-weight:600}.hero{padding:40px 0 10px}.hero h1{text-underline-offset:.14em;font-size:clamp(1.8rem,5vw,2.6rem);text-decoration:underline .14em #e8a13dbf}.cat-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--warm-ink);margin-top:2.2em;font-size:.8rem}.cat-label:before{content:"● ";color:var(--warm)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:10px;display:grid}.tool-link{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:14px;padding:14px 16px;text-decoration:none;transition:border-color .14s,transform .14s;display:block}.tool-link:hover{border-color:var(--warm)}@media (hover:hover){.tool-link:hover{transform:translateY(-2px)}}.tool-link b{font-family:var(--display);font-weight:600}.tool-link span{color:var(--muted);margin-top:3px;font-size:.85rem;display:block}.site-footer{border-top:1px solid var(--border);color:var(--muted);background:#efe9dc;margin-top:60px;padding:24px 0 34px;font-size:.85rem}.breadcrumb{margin-top:18px;font-size:.85rem}.print-btn{vertical-align:middle;margin-left:8px;padding:3px 12px;font-size:.78rem}.print-only{display:none}.ref-tools{flex-wrap:wrap;align-items:center;gap:6px 8px;margin:14px 0 0;font-size:.85rem;display:flex}.ref-tools span{color:var(--muted);font-weight:600}.ref-tools a{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 11px;text-decoration:none}.ref-tools a:hover{border-color:var(--accent)}@media print{@page{margin:12mm}body{color:#000;background:#fff;font-size:10.5pt;line-height:1.4}.tool-card{box-shadow:none}.site-header,.site-footer,.breadcrumb,.chip,.print-btn,.related,.ref-tools{display:none!important}.print-only{display:block}.wrap{max-width:none;padding:0}a{color:inherit;text-decoration:none}h1{margin:0 0 4pt;font-size:18pt}h2{break-after:avoid;page-break-after:avoid;margin:14pt 0 6pt;font-size:13pt}.tagline{color:#333}.about p,.guide p,.guide li{max-width:none}.guide-table,.guide-code pre{overflow:visible}.guide table{background:0 0;font-size:8.5pt}.guide th,.guide td{border-color:#888;padding:2pt 5pt}.guide th{color:#000;print-color-adjust:exact;background:#eee}thead{display:table-header-group}tr,.guide-code,.guide-steps li{break-inside:avoid;page-break-inside:avoid}.guide-code pre{background:0 0;border-color:#888}.guide-code code{white-space:pre-wrap;overflow-wrap:anywhere}.print-source{color:#333;border-top:1px solid #888;margin-top:18pt;padding-top:6pt;font-size:9pt}}.aff-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--ink);border:1px solid var(--warm);vertical-align:1px;background:#fdf1dc;border-radius:4px;margin-right:4px;padding:0 6px;font-size:.72rem;font-weight:700;line-height:1.5;display:inline-block}.aff-note{color:var(--ink)}
