:root{--paper:#FBFAF7;--ink:#17150F;--ink-2:#4A463D;--ink-3:#7A7468;--gold:#8A6A2F;--rule:#E2DED4;--ok:#1F5C3A;--warn:#8A3B12;--font-head:"Instrument Serif",Georgia,serif;--font-body:"Instrument Sans",system-ui,-apple-system,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--max:760px}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65}.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}a:hover{text-decoration-color:var(--gold)}.masthead{border-bottom:1px solid var(--rule);padding:20px 0}.masthead .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{font-family:var(--font-head);font-size:24px;letter-spacing:-.01em;text-decoration:none}.brand span{color:var(--gold)}.masthead nav{font-size:14px;display:flex;gap:18px}.masthead nav a{color:var(--ink-2);text-decoration:none}.masthead nav a:hover{color:var(--gold)}.hero{padding:56px 0 32px}h1{font-family:var(--font-head);font-weight:400;font-size:44px;line-height:1.1;margin:0 0 14px;letter-spacing:-.02em}.lede{font-size:19px;color:var(--ink-2);max-width:34em;margin:0 0 8px}.kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 18px}h2{font-family:var(--font-head);font-weight:400;font-size:30px;margin:44px 0 14px}h3{font-size:19px;margin:28px 0 10px}h4{font-size:16px;margin:22px 0 8px;color:var(--ink-2)}p{margin:0 0 14px}.form{border:1px solid var(--rule);background:#fff;padding:24px;margin:24px 0 0}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media(max-width:620px){.row{grid-template-columns:1fr}}label{display:block;font-size:14px;color:var(--ink-2);margin-bottom:4px}input,select{width:100%;padding:10px 12px;font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:2px}input:focus,select:focus{outline:2px solid var(--gold);outline-offset:0}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--font-body);font-size:16px;padding:13px 22px;border-radius:2px;cursor:pointer}.btn:hover{background:#000}.btn-gold{background:var(--gold);border-color:var(--gold)}.btn-gold:hover{background:#75591f}.result{border-top:2px solid var(--ink);margin-top:36px;padding-top:24px}.score{display:flex;align-items:baseline;gap:14px;margin-bottom:8px}#score-num{font-family:var(--font-mono);font-size:52px;line-height:1}.band{font-family:var(--font-head);font-size:24px}.result ul{list-style:none;padding:0;margin:0 0 20px}.result li{border-left:2px solid var(--gold);padding:2px 0 2px 14px;margin-bottom:14px}.result li strong{display:block;font-weight:500}.result li span{display:block;color:var(--ink-2);font-size:15px}.result li em{display:block;font-family:var(--font-mono);font-size:12px;color:var(--ink-3);font-style:normal;margin-top:4px}#unknowns-block li{border-left-color:var(--rule)}.paywall{border:1px solid var(--rule);background:#fff;padding:22px;margin:8px 0 24px}.paywall p{margin:0 0 14px}.fine{font-size:13px;color:var(--ink-3);margin-top:10px}.letter-body{border:1px solid var(--rule);background:#fff;padding:26px;font-size:16px}.letter-body p{margin:0 0 12px}table{width:100%;border-collapse:collapse;font-size:15px;margin:14px 0 24px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);vertical-align:top}th{font-weight:500;color:var(--ink-2);font-size:13px;text-transform:uppercase;letter-spacing:.04em}td.num{font-family:var(--font-mono)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:18px 0 30px}.card{border:1px solid var(--rule);background:#fff;padding:18px;text-decoration:none;display:block}.card:hover{border-color:var(--gold)}.card strong{display:block;font-weight:500;margin-bottom:6px}.card span{font-size:14px;color:var(--ink-2)}footer{border-top:1px solid var(--rule);margin-top:64px;padding:28px 0;font-size:14px;color:var(--ink-3)}footer a{color:var(--ink-3)}@media print{.masthead nav,.paywall,.btn,footer{display:none}body{background:#fff}}@font-face{font-family:LocalNoto;src:url(/fonts/NotoSans-Regular.ttf) format("truetype");font-display:swap}:root{--max:1100px;--font-body:LocalNoto,system-ui,sans-serif;--font-head:Georgia,serif}html{scroll-padding-top:24px}body{font-size:16px}.hero{padding:56px 0 36px}.hero h1{font-size:clamp(34px,5vw,60px);line-height:1.08}.hero .lede{max-width:44em}.micro{font-size:14px;color:var(--ink-2)}.hero-actions,.actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 8px}.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;font-size:15px;line-height:1.4}.secondary{background:transparent;color:var(--ink);border-color:#c8c0b1}.secondary:hover{background:#eeeae1}.btn:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:32px;align-items:start;padding-top:12px}.workspace>section{min-width:0}.steps{list-style:none;display:flex;gap:16px;padding:0;margin:0;border-bottom:1px solid var(--rule);font-size:13px;line-height:1.6}.steps li{padding:12px 0;color:var(--ink-2)}.steps [aria-current]{color:var(--ink);font-weight:700;border-bottom:3px solid var(--gold)}.form{margin-top:16px;padding:24px}.form h2,.result h2{margin:0 0 20px;font-size:30px}.form .kicker,.result .kicker{margin:0 0 14px}.form h3{font-size:17px;border-top:1px solid var(--rule);padding-top:18px}.form label{margin-bottom:16px;color:var(--ink);font-size:14px}.row{margin-bottom:0}.row>*{min-width:0}input,select,textarea{margin-top:6px;min-height:44px;font-family:var(--font-body);border:1px solid #b8b0a1}textarea{display:block;width:100%;padding:12px;resize:vertical;font-size:15px;line-height:1.7;color:var(--ink);background:var(--paper);border-radius:2px}textarea:focus{outline:2px solid var(--gold)}input[aria-invalid],textarea[aria-invalid],select[aria-invalid]{border-color:#a02319;outline:2px solid #a02319}details{border-bottom:1px solid var(--rule);padding:15px 0}summary{cursor:pointer;min-height:34px;font-weight:600}details>p{margin:12px 0}.sidebar-note{border-top:3px solid var(--gold);padding:24px;background:#f0ece3;margin:16px 0 24px}.sidebar-note h3{margin:0 0 14px;font-family:var(--font-head);font-size:25px;line-height:1.25}.sidebar-note ul{padding-left:18px;font-size:14px}.sidebar-note li{margin:10px 0}.text-btn{background:none;border:0;padding:0;font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px;text-align:left;color:var(--ink)}.result{margin-top:20px;outline:0}.notice{padding:16px;background:#f3efe6;margin:16px 0;border-left:3px solid #8A6A2F;font-size:14px}.notice h3{margin:0 0 10px;font-size:16px}.notice ul{margin:0;padding-left:18px;list-style:disc}.notice li{border:0;margin:7px 0;padding:0}.notice.error{border-color:#a02319;color:#761d18;background:#fff2ef}.notice.warning{border-color:#8a3b12}.route{background:#fff;border:1px solid var(--rule);padding:18px}.route h3{margin:0 0 12px;font-size:18px}.route p{font-size:14px}.point-choice{display:flex;gap:12px;margin:16px 0;font-size:14px;padding:14px;background:#fff;border:1px solid var(--rule);align-items:flex-start}.point-choice input,.review-check input{width:20px;height:20px;min-height:0;flex:0 0 20px;margin:4px 0;accent-color:var(--gold)}.point-choice strong,.point-choice span span{display:block}.point-choice span span{color:var(--ink-2);font-size:13px;margin-top:6px}.draft-label{font-weight:600;margin-top:24px}.draft-label textarea{font-weight:400;background:#fff}.review-check{display:flex;gap:12px;margin:20px 0;font-size:14px}.help{max-width:760px;margin:64px 0 0}.help h2{font-size:34px;margin:0 0 20px}.help #source-list{font-size:14px;margin-top:24px}.help a,.result a{overflow-wrap:anywhere}#export-status{font-size:14px;margin:12px 0;color:var(--ink-2)}#save-again{display:block;overflow-wrap:anywhere}.fine{color:var(--ink-2);font-size:12px}.masthead nav{flex-wrap:wrap}footer{margin-top:48px}.masthead .brand{font-size:27px}@media(max-width:800px){.workspace{grid-template-columns:1fr}.workspace aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hero{padding:36px 0 24px}}@media(max-width:500px){.wrap{padding:0 16px}.hero h1{font-size:39px}.workspace{gap:20px}.workspace aside{display:block}.form{padding:18px}.steps{gap:12px;font-size:12px}.steps li{flex:1}.hero-actions .btn,.actions .btn{width:100%}.hero-actions{gap:8px}.lede{font-size:17px}.masthead nav{gap:14px;font-size:12px}.masthead{padding:16px 0}.help h2{font-size:29px}input,select,textarea{font-size:16px}.notice{padding:12px}.result .actions{gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}dialog{border:1px solid var(--rule);padding:28px;width:min(520px,calc(100% - 32px));background:var(--paper);color:var(--ink);max-height:calc(100vh - 48px);overflow:auto}dialog::backdrop{background:#17150f73}dialog h2{margin:0 0 16px;font-size:28px}dialog p{font-size:15px}dialog .actions{margin-bottom:0}
