:root{--ink:#17345b;--ink-soft:#43546a;--paper:#f2f0e9;--panel:#e6e9e6;--line:#aeb9b5;--accent:#19684f;--error:#a13428;--focus:#b34f18;--max:1100px}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.58 "Segoe UI",Arial,sans-serif}
body:has(.legal){font-size:1.03rem}
a{color:var(--ink);text-underline-offset:.2em}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
img{max-width:100%;height:auto}
.skip{position:absolute;top:-4rem;left:1rem;background:var(--ink);color:var(--paper);padding:.65rem 1rem;z-index:10}
.skip:focus{top:1rem;color:var(--paper)}
.wrap{width:min(calc(100% - 2.5rem),var(--max));margin-inline:auto}
.site-header{border-bottom:1px solid var(--line)}
.header-row{min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-size:1.24rem;font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;width:2rem;height:2rem;background:var(--ink);color:var(--paper);font-size:.77rem;letter-spacing:-.05em}
.nav{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;font-size:.93rem}
.nav a{text-decoration:none;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.eyebrow{color:var(--accent);font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.1;letter-spacing:-.035em}
h1{font-size:clamp(2.55rem,6vw,5.1rem);margin:.55rem 0 1rem;max-width:12ch}
h2{font-size:clamp(1.85rem,3vw,2.7rem);margin:0 0 1rem}
h3{font-size:1.38rem;margin:0 0 .6rem}
p{margin:.65rem 0 1rem}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding:clamp(3rem,7vw,6rem) 0}
.hero-copy>p{font-size:1.16rem;max-width:54ch;color:var(--ink-soft)}
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.8rem 0 2.2rem}
.coverage-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;border-top:2px solid var(--ink);padding:1.15rem 0 1.25rem;margin:0 0 1.1rem}
.coverage-strip div{min-width:0}
.coverage-strip strong{display:block;font:700 clamp(1.2rem,2vw,1.55rem)/1.15 Georgia,"Times New Roman",serif;letter-spacing:-.035em}
.coverage-strip span{display:block;margin-top:.35rem;font-size:.78rem;line-height:1.35;color:var(--ink-soft)}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:2.9rem;padding:.65rem 1rem;border:2px solid var(--ink);background:var(--ink);color:var(--paper);font:700 .96rem/1.2 "Segoe UI",Arial,sans-serif;text-decoration:none;cursor:pointer;border-radius:0;transition:transform 140ms cubic-bezier(.23,1,.32,1)}
.button:active:not(:disabled){transform:scale(.97)}
.button:disabled{cursor:wait;opacity:.68}
.button.secondary{background:transparent;color:var(--ink)}
@media(hover:hover) and (pointer:fine){.button:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}.button.secondary:hover{background:var(--panel);border-color:var(--ink);color:var(--ink)}}
.proof{border-top:1px solid var(--line);padding-top:1.2rem;max-width:55ch;font-size:.9rem;color:var(--ink-soft)}
.demo{border:2px solid var(--ink);background:var(--panel);padding:clamp(1.3rem,3vw,2rem)}
.demo-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.9rem;margin-bottom:1.4rem}
.demo-head h2{font:700 1rem/1.3 "Segoe UI",Arial,sans-serif;letter-spacing:0;margin:0}
.demo-head span{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-weight:700}
label{display:block;font-weight:700;margin-bottom:.4rem}
.field-row{display:flex;gap:.5rem}
input{width:100%;min-width:0;min-height:2.9rem;border:2px solid var(--ink);border-radius:0;background:var(--paper);padding:.55rem .7rem;color:var(--ink);font:inherit}
.hint{font-size:.84rem;color:var(--ink-soft)}
.result{min-height:8rem;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.result .empty{color:var(--ink-soft);margin:0}
.result dl{display:grid;grid-template-columns:minmax(7rem,36%) 1fr;gap:.35rem .8rem;margin:.8rem 0}
.result dt{color:var(--ink-soft)}
.result dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.result .source{font-size:.84rem;overflow-wrap:anywhere;border-top:1px solid var(--line);padding-top:.8rem}
.result .error{color:var(--error);font-weight:700}
.skeleton{display:grid;gap:.55rem}
.skeleton span{height:1rem;background:#c6d0ca;display:block}
.skeleton span:nth-child(2){width:82%}
.skeleton span:nth-child(3){width:57%}
.section{padding:clamp(2.5rem,5vw,4.5rem) 0;border-top:1px solid var(--line)}
.section-intro{max-width:57ch;color:var(--ink-soft)}
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;margin-top:2rem}
.feature{border-top:2px solid var(--ink);padding:1.2rem 0 1.7rem}
.feature small{display:block;color:var(--accent);font-weight:700;margin-bottom:.6rem}
.method{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);gap:3rem}
.method ol{padding-left:1.4rem;margin:.2rem 0}
.method li{padding:.3rem 0 .7rem}
.note{background:var(--panel);border:1px solid var(--line);padding:1.4rem;align-self:start}
.note p:last-child{margin-bottom:0}
.site-footer{border-top:2px solid var(--ink);padding:2rem 0 3rem;color:var(--ink-soft);font-size:.88rem}
.footer-grid{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.footer-links{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem}
.legal{max-width:780px;padding:3rem 0 5rem}
.legal h1{max-width:none;font-size:clamp(2.55rem,5vw,4rem)}
.legal h2{font-size:1.6rem;margin-top:2.3rem}
.legal p,.legal li{max-width:74ch}
.legal li{margin-bottom:.55rem}
.meta{color:var(--ink-soft);font-size:.9rem}
@media(max-width:760px){.header-row{align-items:flex-start;flex-direction:column;padding:1rem 0}.hero,.method{grid-template-columns:1fr}.hero{padding:2.5rem 0}.feature-list{grid-template-columns:1fr}.nav{font-size:.88rem}.field-row{flex-direction:column}.field-row .button{width:100%}}
@media(max-width:390px){.wrap{width:min(calc(100% - 1.5rem),var(--max))}.nav{gap:.4rem .85rem}.demo{padding:1rem}.result dl{grid-template-columns:1fr;gap:0}.result dd{margin-bottom:.55rem}}
@media(prefers-reduced-motion:reduce){.button{transition:none}.button:active:not(:disabled){transform:none}}
