:root{--s4:4px;--s8:8px;--s12:12px;--s16:16px;--s24:24px;--s32:32px;--s40:40px;--s64:64px;--max:1120px;--paper:#f3f6f9;--white:#fff;--line:#d3dfeb;--line-2:#a9bfd4;--ink:#0e2a47;--ink-2:#3d5672;--accent:#0f5fb4;--navy:#0b1f36;--paper-muted:#b9cadd;--amber:#ffd166;--err:#a3231f;--ok:#1d5c34;--mono:"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--sans:"Segoe UI",system-ui,-apple-system,Helvetica,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);line-height:1.6;background-color:var(--paper);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);background-size:24px 24px,24px 24px,120px 120px,120px 120px}
h1,h2,h3,p,li,dd,dt,td,th{overflow-wrap:anywhere}
h1,h2,h3{line-height:1.15;margin:0 0 var(--s16);letter-spacing:-.01em}
h1{font-size:clamp(1.875rem,4.5vw,3.25rem);line-height:1.05}
h2{font-size:1.5rem}
h3{font-size:1.125rem}
p{margin:0 0 var(--s16)}
a{color:var(--accent)}
img,svg{max-width:100%;height:auto;display:block}
.container{width:min(calc(100% - var(--s32)),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:var(--s8);top:calc(var(--s40) * -1);padding:var(--s8) var(--s16);background-color:var(--ink);color:var(--white);font-family:var(--mono);z-index:60;text-decoration:none}
.skip-link:focus{top:var(--s8)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.site-footer :focus-visible,.mobile-menu :focus-visible,.cookie-banner :focus-visible,.btn-cta:focus-visible{outline-color:var(--amber)}
.btn-cta:focus-visible{outline-color:var(--accent)}
.callout{display:inline-flex;align-items:center;gap:var(--s8);margin:0 0 var(--s12);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.callout::before{content:"";width:24px;height:1px;background-color:var(--accent);flex-shrink:0}
.callout::after{content:"";width:6px;height:6px;border:1px solid var(--accent);border-radius:50%;flex-shrink:0}
.sheet{position:relative;background-color:var(--white);border:1px solid var(--ink);padding:var(--s24);min-width:0}
.sheet::before{content:"";position:absolute;inset:var(--s8);border:1px dashed var(--line-2);pointer-events:none}
.sheet>*{position:relative}
.rule{border:0;border-top:1px solid var(--ink);margin:0}
.mono{font-family:var(--mono)}
.muted{color:var(--ink-2)}
.site-header{border-bottom:1px solid var(--ink);background-color:var(--paper);position:relative;z-index:30}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s16);min-height:52px}
.header-row>*{min-width:0}
.brand{display:inline-flex;align-items:center;gap:var(--s8);color:var(--ink);text-decoration:none;font-family:var(--mono);font-weight:700;font-size:.9375rem;letter-spacing:-.02em}
.brand svg{width:28px;height:28px;flex-shrink:0}
.site-nav,.header-cta{display:none}
.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 var(--s8);background-color:var(--white);border:1px solid var(--ink);cursor:pointer}
.menu-toggle span{display:block;height:1px;background-color:var(--ink)}
.mobile-menu{position:fixed;inset:53px 0 0 0;background-color:var(--navy);color:var(--white);overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-start;padding:var(--s24) var(--s16);z-index:40}
.mobile-menu[hidden]{display:none}
.mobile-menu ul{list-style:none;margin:auto 0;padding:0;width:min(100%,480px);margin-inline:auto}
.mobile-menu li{border-bottom:1px solid rgba(255,255,255,.2)}
.mobile-menu li:last-child{border:0;padding-top:var(--s16)}
.mobile-menu a{display:block;padding:var(--s12) var(--s4);color:var(--white);text-decoration:none;font-family:var(--mono);font-size:1.0625rem;overflow-wrap:anywhere}
.mobile-menu .btn-cta{background-color:var(--amber);color:var(--navy);border-color:var(--amber);justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s8);padding:var(--s8) var(--s16);border:1px solid var(--ink);font-family:var(--mono);font-size:.875rem;text-decoration:none;color:var(--ink);background-color:var(--white);cursor:pointer;line-height:1.4}
.btn:hover{background-color:var(--paper)}
.btn-cta{background-color:var(--ink);color:var(--white)}
.btn-cta:hover{background-color:var(--accent);color:var(--white)}
.hero{padding-block:var(--s64);display:grid;gap:var(--s32);align-items:center}
.hero>*{min-width:0}
.hero-copy p{font-size:1.125rem;color:var(--ink-2);max-width:60ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s12);margin-top:var(--s24)}
.hero-art{color:var(--accent);width:min(100%,360px);margin-inline:auto}
.section{padding-block:var(--s64)}
.section-head{margin-bottom:var(--s40);max-width:64ch}
.section-head p{color:var(--ink-2)}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;top:0;bottom:0;left:12px;width:1px;background-color:var(--ink)}
.timeline>li{position:relative;padding-left:var(--s40);margin-bottom:var(--s32);min-width:0}
.timeline>li::before{content:"";position:absolute;left:var(--s24);top:var(--s16);width:var(--s16);height:1px;background-color:var(--ink)}
.timeline .node{position:absolute;left:0;top:var(--s4);width:24px;height:24px;border:1px solid var(--ink);background-color:var(--paper);display:grid;place-items:center}
.timeline .node::after{content:"";width:8px;height:8px;background-color:var(--accent);border-radius:50%}
.timeline .index{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--accent);margin-bottom:var(--s8);display:block}
.timeline h2{font-size:1.375rem;margin-bottom:var(--s8)}
.timeline h2 a{color:var(--ink);text-decoration:none}
.timeline h2 a:hover{color:var(--accent);text-decoration:underline}
.timeline p{color:var(--ink-2);margin-bottom:var(--s12)}
.timeline .more{font-family:var(--mono);font-size:.875rem}
.spec-strip{display:grid;gap:var(--s16);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:var(--s40)}
.spec-strip>*{min-width:0}
.spec dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--s8)}
.spec dd{margin:0;font-size:.9375rem;color:var(--ink-2)}
.criteria{display:grid;gap:var(--s16)}
.criteria>*{min-width:0}
.criteria h3{margin-bottom:var(--s8)}
.criteria p{margin:0;color:var(--ink-2)}
.article{padding-block:var(--s64)}
.article-head{max-width:70ch;margin-bottom:var(--s40)}
.standfirst{font-size:1.125rem;color:var(--ink-2)}
.article-body{display:grid;gap:var(--s32)}
.article-body>*{min-width:0}
.prose h2{font-size:1.375rem;margin-top:var(--s32);padding-top:var(--s16);border-top:1px solid var(--line-2)}
.prose h2:first-child{margin-top:0;padding-top:0;border:0}
.prose ul,.prose ol{padding-left:var(--s24);margin:0 0 var(--s16)}
.prose li{margin-bottom:var(--s8)}
.aside .sheet{margin-bottom:var(--s24)}
.aside ul{margin:0;padding-left:var(--s16);font-size:.9375rem}
.aside li{margin-bottom:var(--s8)}
.related{display:flex;flex-wrap:wrap;gap:var(--s12);margin-top:var(--s32)}
.table-wrap{overflow-x:auto;margin:0 0 var(--s24)}
table{border-collapse:collapse;width:100%;font-size:.9375rem}
th,td{border:1px solid var(--line-2);padding:var(--s8) var(--s12);text-align:left;vertical-align:top}
th{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;background-color:var(--paper);color:var(--ink)}
.form-grid{display:grid;gap:var(--s16)}
.form-grid>*{min-width:0}
.field label{display:block;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--s4)}
.field input,.field textarea,.field select{width:100%;padding:var(--s12);border:1px solid var(--ink);background-color:var(--white);color:var(--ink);font:inherit}
.field textarea{min-height:160px;resize:vertical}
.field.check{display:flex;gap:var(--s8);align-items:flex-start;flex-wrap:wrap}
.field.check input{width:18px;height:18px;margin-top:var(--s4)}
.field.check label{text-transform:none;font-family:var(--sans);font-size:.9375rem;letter-spacing:0;flex:1 1 200px}
.field.is-invalid input,.field.is-invalid textarea,.field.is-invalid select{border-color:var(--err);box-shadow:inset 0 0 0 1px var(--err)}
.error{display:none;color:var(--err);font-size:.875rem;margin:var(--s4) 0 0;flex-basis:100%}
.field.is-invalid .error{display:block}
.form-status{margin:0 0 var(--s16);padding:var(--s12) var(--s16);border:1px solid var(--ink);font-size:.9375rem;background-color:var(--white)}
.form-status.is-error{color:var(--err);border-color:var(--err)}
.form-status.is-ok{color:var(--ok);border-color:var(--ok)}
.form-status[hidden]{display:none}
.contact-grid{display:grid;gap:var(--s32)}
.contact-grid>*{min-width:0}
.contact-grid address{font-style:normal;line-height:1.7}
.site-footer{background-color:var(--navy);color:var(--paper-muted);background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:24px 24px;padding-block:var(--s64) var(--s32);margin-top:var(--s64);border-top:1px solid var(--ink)}
.footer-grid{display:grid;gap:var(--s32);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.footer-grid>*{min-width:0}
.site-footer h2{color:var(--white);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--s12)}
.site-footer a{color:var(--white)}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{padding-block:var(--s4);font-size:.9375rem}
.site-footer p{font-size:.9375rem}
.site-footer address{font-style:normal;font-size:.9375rem;line-height:1.7}
.footer-brand{display:inline-flex;align-items:center;gap:var(--s8);color:var(--white);text-decoration:none;font-family:var(--mono);font-weight:700;margin-bottom:var(--s12)}
.footer-brand svg{width:24px;height:24px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);margin-top:var(--s40);padding-top:var(--s24);font-size:.875rem;display:grid;gap:var(--s8)}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;background-color:var(--navy);color:var(--white);border-top:1px solid var(--amber);padding:var(--s16);z-index:50}
.cookie-banner[hidden]{display:none}
.cookie-inner{display:flex;flex-direction:column;gap:var(--s12);width:min(100%,var(--max));margin-inline:auto}
.cookie-inner>*{min-width:0}
.cookie-inner p{margin:0;font-size:.9375rem}
.cookie-inner a{color:var(--amber)}
.cookie-actions{display:flex;flex-direction:column;gap:var(--s8)}
.cookie-actions .btn{width:100%;background-color:var(--white);color:var(--ink);border-color:var(--white)}
.cookie-actions .btn:hover{background-color:var(--amber);color:var(--navy)}
.cookie-prefs{width:min(100%,var(--max));margin:var(--s12) auto 0;padding-top:var(--s12);border-top:1px solid rgba(255,255,255,.2);display:grid;gap:var(--s8)}
.cookie-prefs[hidden]{display:none}
.cookie-prefs label{display:flex;gap:var(--s8);align-items:flex-start;font-size:.9375rem}
.cookie-prefs input{margin-top:var(--s4)}
.cookie-prefs .btn{justify-self:start;background-color:var(--amber);color:var(--navy);border-color:var(--amber)}
@media (min-width:480px){.cookie-actions{flex-direction:row;flex-wrap:wrap}.cookie-actions .btn{flex:1 1 auto;width:auto}}
@media (min-width:768px){.hero{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.prose.sheet{padding:var(--s40)}.criteria{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.form-grid .span{grid-column:1 / -1}.contact-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.cookie-inner{flex-direction:row;align-items:center;justify-content:space-between}.cookie-actions{flex:0 0 auto;justify-content:flex-end}.cookie-actions .btn{flex:0 0 auto}}
@media (min-width:1024px){.header-row{min-height:64px}.brand{flex-shrink:0;white-space:nowrap;font-size:1rem}.site-nav{display:block;flex:1 1 auto;min-width:0}.site-nav ul{display:flex;justify-content:center;gap:var(--s16);list-style:none;margin:0;padding:0}.site-nav a{white-space:nowrap;font-family:var(--mono);font-size:.875rem;color:var(--ink);text-decoration:none;padding:var(--s4) 0;border-bottom:1px solid transparent}.site-nav a:hover,.site-nav a[aria-current=page]{border-bottom-color:var(--accent);color:var(--accent)}.header-cta{display:inline-flex;flex-shrink:0;white-space:nowrap}.menu-toggle,.mobile-menu{display:none}.timeline::before{left:50%}.timeline>li{width:50%;padding-left:0;padding-right:var(--s40)}.timeline>li::before{left:auto;right:0;width:var(--s16)}.timeline>li:nth-child(odd) .node{left:auto;right:-12px}.timeline>li:nth-child(even){margin-left:50%;padding-right:0;padding-left:var(--s40)}.timeline>li:nth-child(even)::before{right:auto;left:0}.timeline>li:nth-child(even) .node{left:-12px}.article-body{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}