:root{--ink:#1c1e26;--mut:#6b7280;--hair:#e5e7eb;--bg:#fcfcfa;--card:#ffffff; --acc:#2547d0;--ok:#0e8a5f;--bad:#c2413b;--upd:#b07807;--soft:#f4f4f0} *{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink); font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif; -webkit-font-smoothing:antialiased} .serif{font-family:Charter,Georgia,"Times New Roman",serif} header{max-width:980px;margin:0 auto;padding:56px 24px 8px} header .kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);font-weight:700} header h1{font-size:44px;line-height:1.12;margin:10px 0 12px;font-weight:400} header .dek{font-size:19px;color:var(--mut);max-width:640px;margin:0 0 10px} header .meta{font-size:12.5px;color:var(--mut);border-top:1px solid var(--hair);padding-top:12px} main{max-width:980px;margin:0 auto;padding:8px 24px 80px} section{margin-top:56px} .sn{display:flex;gap:16px;align-items:baseline;border-bottom:1px solid var(--hair);padding-bottom:10px;margin-bottom:18px} .sn .n{font-size:13px;color:var(--acc);font-weight:700;letter-spacing:.08em} .sn h2{font-size:26px;font-weight:400;margin:0} p.lead{font-size:16.5px;color:#374151;max-width:700px} .fig{background:var(--card);border:1px solid var(--hair);border-radius:14px;padding:22px;margin-top:16px; box-shadow:0 1px 2px rgba(28,30,38,.04)} .figcap{font-size:13px;color:var(--mut);margin-top:12px;border-top:1px solid var(--soft);padding-top:10px} label{font-size:13px;color:#374151;display:block;margin:10px 0 4px;font-weight:600} input[type=text],textarea{width:100%;border:1px solid var(--hair);border-radius:8px;padding:9px 11px; font:14px/1.5 -apple-system,sans-serif;background:#fff;color:var(--ink)} textarea{min-height:84px;resize:vertical} input:focus,textarea:focus{outline:2px solid #cdd8f8;border-color:var(--acc)} .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px} @media(max-width:760px){.grid2{grid-template-columns:1fr}} button{background:var(--ink);color:#fff;border:0;border-radius:999px;padding:10px 22px;font-size:14px; font-weight:600;cursor:pointer;margin-top:14px} button.sec{background:#fff;color:var(--ink);border:1px solid var(--ink)} button:disabled{opacity:.45;cursor:wait} .pairs{margin-top:10px;display:grid;gap:8px} .prow{display:grid;grid-template-columns:1fr 1fr 1fr 32px;gap:8px;align-items:center} .prow input{padding:7px 9px} .prow .del{border:0;background:none;color:var(--bad);font-size:17px;cursor:pointer;padding:4px} .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin:16px 0 4px} .stat{background:var(--soft);border-radius:10px;padding:12px 14px} .stat b{display:block;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums} .stat span{font-size:11.5px;color:var(--mut);letter-spacing:.04em;text-transform:uppercase} table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:6px;font-variant-numeric:tabular-nums} th{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);text-align:left; border-bottom:1px solid var(--hair);padding:6px 8px} td{padding:6px 8px;border-bottom:1px solid var(--soft)} .y{color:var(--ok);font-weight:600}.n{color:var(--bad);font-weight:600}.updv{color:var(--upd)} .pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:#f6ecd8;color:var(--upd)} canvas{width:100%;background:#fff;border:1px solid var(--hair);border-radius:10px} .row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:8px} .rangewrap{display:flex;align-items:center;gap:10px} input[type=range]{accent-color:var(--acc);width:150px} .rv{font-variant-numeric:tabular-nums;font-weight:600;min-width:52px} .note{font-size:13px;color:var(--mut)} code{background:var(--soft);padding:1px 6px;border-radius:6px;font-size:12.5px} footer{max-width:980px;margin:0 auto;padding:24px;color:var(--mut);font-size:12.5px; border-top:1px solid var(--hair)}