:root{--s4:4px;--s8:8px;--s12:12px;--s16:16px;--s24:24px;--s32:32px;--s40:40px;--s64:64px;--max:1120px;--paper:#f3f6f9;--paper2:#e8eef5;--line:rgba(30,70,120,.11);--line2:rgba(30,70,120,.24);--hair:#6e8399;--ink:#0f1f33;--ink2:#3d5166;--accent:#0a4fb5;--accent2:#9a2b0b;--dark:#0e2140;--on-dark:#e9f0f8;--muted-dark:#aabfd6;--focus:#0a4fb5;--focus-dark:#ffd166;--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--sans:"Helvetica Neue",Arial,"Segoe UI",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 var(--sans);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:16px 16px,16px 16px,80px 80px,80px 80px}
[hidden]{display:none!important}
h1,h2,h3,p,li,dd,dt,td,th,label{overflow-wrap:anywhere}
h1,h2,h3{line-height:1.15;margin:0 0 var(--s16);font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(1.875rem,4.5vw,3.25rem)}
h2{font-size:clamp(1.375rem,3vw,1.875rem)}
h3{font-size:1.125rem}
p,ul,ol,dl{margin:0 0 var(--s16)}
a{color:var(--accent)}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.site-footer :focus-visible,.mobile-menu :focus-visible,.cookie-banner :focus-visible{outline-color:var(--focus-dark)}
.container{width:min(calc(100% - var(--s32)),var(--max));margin-inline:auto}
.skip-link{position:absolute;top:calc(var(--s64) * -2);left:var(--s8);z-index:100;padding:var(--s8) var(--s16);background-color:var(--ink);color:#fff;font-family:var(--mono);text-decoration:none}
.skip-link:focus{top:var(--s8)}
.site-header{border-bottom:1px solid var(--ink);background-color:var(--paper)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s16);height:52px}
.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;white-space:nowrap;flex-shrink:0}
.brand svg{width:24px;height:24px;flex-shrink:0}
.site-nav{display:none}
.site-nav a{white-space:nowrap;font-family:var(--mono);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:var(--s4);width:44px;height:44px;padding:0;margin-left:auto;background-color:transparent;border:1px solid var(--ink);cursor:pointer;flex-shrink:0}
.nav-toggle span{display:block;width:20px;height:2px;margin:0 auto;background-color:var(--ink)}
.header-cta{display:none}
.mobile-menu{position:fixed;top:52px;left:0;right:0;bottom:0;z-index:50;display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;padding:var(--s24) var(--s16);background-color:var(--dark);color:var(--on-dark);overflow-wrap:anywhere}
.mobile-menu ul{list-style:none;margin:auto 0;padding:0;display:grid;gap:var(--s16)}
.mobile-menu ul > *{min-width:0}
.mobile-menu a{color:var(--on-dark);font-family:var(--mono);font-size:1.25rem;text-decoration:none;text-transform:uppercase;letter-spacing:.06em}
.mobile-menu .btn{display:inline-block;margin-top:var(--s16);font-size:.9375rem;color:var(--ink);background-color:var(--focus-dark);border-color:var(--focus-dark)}
.btn{display:inline-block;font-family:var(--mono);font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;padding:var(--s8) var(--s16);border:1px solid var(--ink);background-color:transparent;color:var(--ink);text-decoration:none;cursor:pointer;line-height:1.4}
.btn:hover{background-color:var(--paper2);color:var(--ink)}
.btn-primary{background-color:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{background-color:#083f92;color:#fff}
.cta{white-space:nowrap;flex-shrink:0}
.callout{display:inline-flex;align-items:center;gap:var(--s12);margin:0 0 var(--s12);font-family:var(--mono);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2)}
.callout::before{content:"";flex-shrink:0;width:var(--s32);height:1px;background-color:var(--ink)}
.callout::after{content:"";flex-shrink:0;width:6px;height:6px;border:1px solid var(--ink);border-radius:50%;background-color:var(--accent)}
.sheet{position:relative;border:1px solid var(--ink);background-color:rgba(255,255,255,.78);padding:var(--s24)}
.sheet::before,.sheet::after{content:"";position:absolute;width:var(--s12);height:var(--s12);border:1px solid var(--accent)}
.sheet::before{top:-6px;left:-6px;border-right:0;border-bottom:0}
.sheet::after{bottom:-6px;right:-6px;border-left:0;border-top:0}
.sheet > :last-child{margin-bottom:0}
.figure{--fx:50%;--fy:50%;--fr:96px;--fa:35deg;position:relative;aspect-ratio:4/3;width:100%;border:1px solid var(--ink);background-color:var(--paper2);background-image:radial-gradient(circle var(--fr) at var(--fx) var(--fy),var(--accent) 4px,transparent 5px,transparent calc(60% - 1px),var(--hair) calc(60% - 1px),var(--hair) 60%,transparent calc(60% + 1px),transparent calc(100% - 2px),var(--ink) calc(100% - 2px),var(--ink) 100%,transparent 100%),linear-gradient(var(--fa),transparent calc(50% - 1px),var(--ink) 50%,transparent calc(50% + 1px)),linear-gradient(calc(var(--fa) + 90deg),rgba(10,79,181,.12) 38%,transparent 38%),linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px),linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 100%,100% 100%,100% 100%,80px 80px,80px 80px,16px 16px,16px 16px}
.figure::before,.figure::after{content:"";position:absolute;width:var(--s12);height:var(--s12);border:1px solid var(--accent)}
.figure::before{top:-6px;right:-6px;border-left:0;border-bottom:0}
.figure::after{bottom:-6px;left:-6px;border-right:0;border-top:0}
.figure svg{position:absolute;inset:0;width:100%;height:100%;color:var(--ink)}
.figure-label{position:absolute;left:var(--s12);bottom:var(--s12);z-index:1;margin:0;padding:var(--s4) var(--s8);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background-color:var(--paper);border:1px solid var(--ink)}
.figure-tag{left:auto;bottom:auto;top:var(--s12);right:var(--s12)}
.figure[data-fig="1"]{--fx:30%;--fy:62%;--fr:110px;--fa:30deg}
.figure[data-fig="2"]{--fx:70%;--fy:40%;--fr:84px;--fa:-40deg}
.figure[data-fig="3"]{--fx:50%;--fy:52%;--fr:120px;--fa:90deg}
.figure[data-fig="4"]{--fx:36%;--fy:36%;--fr:76px;--fa:60deg}
.figure[data-fig="5"]{--fx:66%;--fy:64%;--fr:100px;--fa:-20deg}
.hero{display:grid;gap:var(--s40);align-items:center;padding-block:var(--s64)}
.hero > *{min-width:0}
.hero-lede{font-size:1.125rem;color:var(--ink2);max-width:60ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s12);margin-top:var(--s24)}
.section-head{margin-bottom:var(--s32)}
.section-head p{max-width:65ch;color:var(--ink2)}
.feature-bands{display:grid;gap:var(--s64);padding-block:var(--s40) var(--s64)}
.feature-bands > *{min-width:0}
.band{display:grid;gap:var(--s24);align-items:center}
.band > *{min-width:0}
.band-body h2{margin-bottom:var(--s12)}
.band-body ul{padding-left:var(--s24)}
.more{font-family:var(--mono);font-size:.875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent)}
.more:hover{color:var(--ink);border-bottom-color:var(--ink)}
.protocol{padding-block:var(--s64);border-top:1px solid var(--ink)}
.table-wrap{overflow-x:auto;border:1px solid var(--ink);background-color:rgba(255,255,255,.82);margin-bottom:var(--s24)}
table{width:100%;border-collapse:collapse;font-size:.9375rem}
th,td{padding:var(--s12) var(--s16);text-align:left;vertical-align:top;border-bottom:1px solid var(--line2)}
th{font-family:var(--mono);font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);background-color:var(--paper2)}
tbody tr:last-child td{border-bottom:0}
.article-head{padding-block:var(--s64) var(--s40);border-bottom:1px solid var(--ink);margin-bottom:var(--s40)}
.article-head h1{max-width:24ch}
.article{max-width:72ch}
.article h2{margin-top:var(--s40)}
.article ul,.article ol{padding-left:var(--s24)}
.lede{font-size:1.125rem;color:var(--ink2);max-width:60ch}
.note{margin-block:var(--s32)}
.spec{display:grid;gap:var(--s8) var(--s24);margin:0}
.spec > *{min-width:0}
.spec dt{font-family:var(--mono);font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.spec dd{margin:0 0 var(--s8)}
.related{margin-block:var(--s64);max-width:72ch}
.related ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--s8)}
.related a{font-family:var(--mono);font-size:.9375rem;text-decoration:none;border-bottom:1px solid var(--accent)}
.contact-grid{display:grid;gap:var(--s40);padding-block:var(--s40) var(--s64)}
.contact-grid > *{min-width:0}
.form-grid{display:grid;gap:var(--s16)}
.form-row{display:grid;gap:var(--s16)}
.form-row > *,.form-grid > *{min-width:0}
.field label{display:block;margin-bottom:var(--s4);font-family:var(--mono);font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}
.field input,.field textarea{width:100%;padding:var(--s12);border:1px solid var(--hair);background-color:#fff;color:var(--ink);font:inherit;line-height:1.4}
.field textarea{min-height:160px;resize:vertical}
.field.is-invalid input,.field.is-invalid textarea{border-color:var(--accent2);border-width:2px}
.error{display:none;margin:var(--s4) 0 0;font-size:.875rem;color:var(--accent2)}
.field.is-invalid .error{display:block}
.form-status{margin:var(--s16) 0 0;font-family:var(--mono);font-size:.9375rem;min-height:var(--s24)}
.address{font-style:normal;line-height:1.7}
.site-footer{margin-top:var(--s64);padding-block:var(--s64) var(--s32);background-color:var(--dark);color:var(--on-dark);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:80px 80px}
.footer-grid{display:grid;gap:var(--s32)}
.footer-grid > *{min-width:0}
.site-footer a{color:var(--on-dark)}
.site-footer .brand{color:var(--on-dark);margin-bottom:var(--s16)}
.site-footer .muted{color:var(--muted-dark);font-size:.9375rem}
.footer-h{font-family:var(--mono);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-dark);margin-bottom:var(--s12)}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--s8)}
.footer-bottom{margin-top:var(--s40);padding-top:var(--s24);border-top:1px solid rgba(255,255,255,.22);font-size:.875rem;color:var(--muted-dark)}
.footer-bottom p{margin:0}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:60;background-color:var(--dark);color:var(--on-dark);border-top:2px solid var(--focus-dark)}
.cookie-inner{display:flex;flex-direction:column;gap:var(--s16);padding-block:var(--s16)}
.cookie-inner > *{min-width:0}
.cookie-inner p{margin:0;font-size:.9375rem}
.cookie-banner a{color:var(--on-dark)}
.cookie-actions{display:flex;flex-direction:column;gap:var(--s8)}
.cookie-actions .btn{width:100%;text-align:center}
.cookie-banner .btn{color:var(--on-dark);border-color:var(--on-dark)}
.cookie-banner .btn:hover{background-color:#1b3766;color:var(--on-dark)}
.cookie-banner .btn-primary{background-color:var(--focus-dark);border-color:var(--focus-dark);color:var(--ink)}
.cookie-banner .btn-primary:hover{background-color:#f5c24d;color:var(--ink)}
.cookie-prefs{display:grid;gap:var(--s12);padding:var(--s16);border:1px solid rgba(255,255,255,.3)}
.cookie-prefs label{display:flex;gap:var(--s8);align-items:flex-start;font-size:.9375rem}
.cookie-prefs .btn{justify-self:start;width:auto}
@media (min-width:480px){.cookie-actions{flex-direction:row;flex-wrap:wrap}.cookie-actions .btn{width:auto;flex:1 1 auto}}
@media (min-width:768px){.header-row{height:64px;gap:var(--s24)}.brand{font-size:1rem}.header-cta{display:inline-block}.mobile-menu{top:64px}.band{grid-template-columns:1fr 1fr;gap:var(--s40)}.band:nth-child(even) .band-media{order:2}.form-row{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.spec{grid-template-columns:auto 1fr}.spec dd{margin-bottom:0}.cookie-inner{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.cookie-inner p{flex:1 1 280px}.cookie-actions{flex:0 0 auto;justify-content:flex-end}.cookie-actions .btn{flex:0 0 auto}.cookie-prefs{flex-basis:100%}}
@media (min-width:1024px){.site-nav{display:flex;gap:var(--s24);min-width:0}.nav-toggle{display:none}.mobile-menu{display:none}.brand{white-space:nowrap}.hero{grid-template-columns:3fr 2fr}.footer-grid{grid-template-columns:2fr 1fr 1fr 1.5fr}.contact-grid{grid-template-columns:3fr 2fr}}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}html{scroll-behavior:auto}}