@font-face{font-family:Fraunces;font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/fonts/Fraunces-latin-wght.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/Inter-latin-wght.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --ink:#1F2A44; --chalk:#F4F3EE; --terracotta:#B94A2C; --teal:#3E7C78; --grey:#8A8F98; --paper:#FFFFFF;
  --bg:var(--chalk); --text:var(--ink); --muted:#5B6270; --card:var(--paper);
  --rule:#D9D8D1; --link:#9C3A1F; --btn-bg:var(--ink); --btn-text:var(--chalk);
  --radius:12px;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#141A2B; --text:#ECEBE5; --muted:#A3A8B3; --card:#1B2338;
    --rule:#2E3750; --link:#E58B6C; --btn-bg:var(--chalk); --btn-text:var(--ink);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1.0625rem;line-height:1.65}
.wrap{max-width:720px;margin:0 auto;padding:2rem 1.25rem 3rem}
h1,h2,h3{font-family:Fraunces,Georgia,"Times New Roman",serif;font-weight:600;line-height:1.2;color:var(--text)}
h1{font-size:2.1rem;margin:1.5rem 0 .25rem}
h2{font-size:1.35rem;margin:2.25rem 0 .5rem;padding-top:1.25rem;border-top:1px solid var(--rule)}
p,ul{margin:.6rem 0}
ul{padding-left:1.25rem}
li{margin:.3rem 0}
a{color:var(--link);text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:4px}
.meta{color:var(--muted);font-size:.95rem;margin:0 0 1.5rem}
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--rule)}
.top img{height:34px;width:auto;border-radius:6px;display:block}
.top a.home{display:inline-block;background:#F4F3EE;border-radius:8px;padding:2px 6px}
.top nav a{margin-left:1rem;font-size:.95rem}
.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.25rem}
footer{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.95rem}
footer a{margin-right:1rem}
/* landing */
.hero{text-align:center;padding-top:1rem}
.hero .logo{display:inline-block;background:#F4F3EE;border-radius:var(--radius);padding:.5rem 1rem;margin:1.5rem 0 1rem}
.hero .logo img{width:min(320px,70vw);height:auto;display:block}
.lede{font-family:Fraunces,Georgia,serif;font-size:1.35rem;line-height:1.4;margin:.5rem auto 1.5rem;max-width:30ch}
.benefits{list-style:none;padding:0;margin:1.5rem 0;text-align:left;display:grid;gap:.75rem}
.benefits li{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--terracotta);border-radius:var(--radius);padding:.8rem 1rem;margin:0}
.badges{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin:1.75rem 0 1rem}
.badge{display:inline-block;border:1px solid var(--grey);border-radius:var(--radius);padding:.7rem 1.1rem;color:var(--muted);font-size:.95rem;background:transparent}
.btn{display:inline-block;background:var(--btn-bg);color:var(--btn-text);text-decoration:none;border-radius:var(--radius);padding:.75rem 1.4rem;font-weight:600}
.btn:hover{opacity:.9}
@media (max-width:480px){h1{font-size:1.75rem}.top nav a{margin-left:.6rem}}
/* SEO surface: state pages, calculator, printables */
.crumbs{margin:1rem 0 0;font-size:.95rem}
.lede-p{font-size:1.15rem}
.muted{color:var(--muted);font-size:.95rem}
ul.plain{list-style:none;padding:0}
ul.plain li{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:.7rem 1rem}
h3{font-size:1.1rem;margin:1.4rem 0 .2rem}
.vbadge{display:inline-block;font-size:.8rem;font-weight:600;border-radius:999px;padding:.05rem .6rem;border:1px solid var(--rule);vertical-align:middle}
.vbadge.ok{color:#2E6A66;border-color:var(--teal)} /* darker than --teal: small text on chalk needs 4.5:1 */
.vbadge.no{color:var(--link);border-color:var(--terracotta)}
.notice{border-left:4px solid var(--terracotta);background:var(--card);border-radius:var(--radius);padding:.7rem 1rem}
.disclaimer{margin-top:2rem;color:var(--muted);font-size:.95rem}
.badges.left{justify-content:flex-start;margin:1rem 0 0}
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--rule)}
ul.states{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
ul.states li{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:.55rem .9rem;margin:0}
.calc{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.calc label{display:flex;flex-direction:column;gap:.25rem;font-size:.95rem;font-weight:600}
.calc input,.calc select{font:inherit;font-weight:400;padding:.5rem .6rem;border:1px solid var(--rule);border-radius:8px;background:var(--bg);color:var(--text)}
.result{margin-top:1rem}
.result table{width:100%;border-collapse:collapse}
.result th,.result td{text-align:left;padding:.45rem 0;border-bottom:1px solid var(--rule);font-weight:400}
.result th{color:var(--muted)}
.result td{text-align:right;font-weight:600}
.printables{list-style:none;padding:0;display:grid;gap:1rem}
.printables li{margin:0}
.printables img{width:100%;max-width:320px;height:auto;border:1px solid var(--rule);border-radius:var(--radius);display:block;margin-bottom:.6rem}
