:root { color-scheme: light; --ink:#1b2430; --muted:#4a5563; --line:#6b7685; --bg:#fff; --soft:#f2f5f8; --brand:#143a5c; --link:#0a5aa8; --error:#b3261e; --focus:#c2410c; }
* { box-sizing: border-box; }
html { font-size: 106.25%; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; line-height:1.55; }
.wrap { max-width:46rem; margin:0 auto; padding:0 1rem; }
a { color:var(--link); text-underline-offset:.15em; }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
main:focus, h1:focus, .error-summary:focus { outline:none; }
.error-summary:focus { outline:3px solid var(--focus); outline-offset:2px; }
.skip { position:absolute; left:-999px; top:0; background:#fff; color:var(--link); padding:.5rem 1rem; }
.skip:focus { left:0; z-index:2; }
.vh { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.site-header { background:var(--brand); color:#fff; padding:.75rem 0; }
.site-header .wrap { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; align-items:center; justify-content:space-between; }
.site-header a { color:#fff; }
.site-header :focus-visible { outline-color:#ffd166; }
.brand { text-decoration:none; font-weight:700; display:inline-block; padding:.35rem 0; }
.brand-name { font-size:1.4rem; letter-spacing:.04em; }
.brand-sub { font-weight:400; }
.site-header nav { display:flex; flex-wrap:wrap; gap:0 1.25rem; }
.site-header nav a { display:inline-block; padding:.6rem 0; }
.site-header nav a[aria-current] { font-weight:700; text-decoration-thickness:3px; }
main { padding:1.75rem 0 3rem; }
h1 { font-size:1.9rem; line-height:1.2; margin:.25rem 0 .75rem; }
h2 { font-size:1.3rem; margin:2rem 0 .5rem; }
.lead { font-size:1.1rem; }
form { margin-top:1.5rem; }
.field { margin-bottom:1.5rem; }
.field.has-error { border-left:4px solid var(--error); padding-left:.85rem; }
label { font-weight:700; }
.hint { margin:.15rem 0 .4rem; color:var(--muted); }
.error-text { color:var(--error); font-weight:700; }
.error-text p { margin:.2rem 0 .4rem; overflow-wrap:anywhere; }
textarea { width:100%; font:inherit; padding:.6rem; border:2px solid var(--line); border-radius:4px; color:var(--ink); background:#fff; }
.check { display:flex; gap:.6rem; align-items:flex-start; }
.check input { width:1.6rem; height:1.6rem; margin:0; flex:none; accent-color:var(--brand); }
.check label { font-weight:400; padding-top:.1rem; }
button, .button { display:inline-block; font:inherit; font-weight:700; background:var(--brand); color:#fff; border:2px solid var(--brand); border-radius:4px; padding:.65rem 1.25rem; min-height:44px; cursor:pointer; text-decoration:none; }
button:hover, .button:hover { background:#0d2a44; }
.error-summary { border:3px solid var(--error); padding:.75rem 1rem; margin-bottom:1.5rem; }
.error-summary h2 { margin:0 0 .35rem; font-size:1.15rem; }
.error-summary ul { margin:0; padding-left:1.25rem; }
.error-summary a { color:var(--error); font-weight:700; overflow-wrap:anywhere; }
code { background:var(--soft); padding:.1rem .3rem; overflow-wrap:anywhere; }
footer { border-top:1px solid var(--line); color:var(--muted); padding:.25rem 0; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto !important; } }
