@font-face { font-family: 'DM Sans'; src: url('../fonts/dm-sans-regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../fonts/dm-sans-medium.woff2') format('woff2'); font-weight: 500 700; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('../fonts/ibm-plex-mono-regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-semibold.ttf') format('truetype'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }

:root { --navy: #102b48; --muted: #506780; --blue: #2c73ab; --pink: #f580b7; --paper: #f9fbfd; --line: #dbe5ed; --font-body: 'DM Sans', Arial, sans-serif; --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif; --font-mono: 'IBM Plex Mono', monospace; --page-gutter: clamp(26px, 6.2vw, 105px); font-family: var(--font-body); color: var(--navy); background: var(--paper); font-synthesis: none; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { max-width: 100%; }
.icon { flex-shrink: 0; vertical-align: middle; filter: invert(12%) sepia(30%) saturate(1796%) hue-rotate(172deg) brightness(94%) contrast(95%); }
.hero-cta .icon { filter: brightness(0) invert(1); }
::selection { background: #c6e3f9; color: var(--navy); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 6px; }
.landing { position: relative; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 100; padding: 14px 20px; background: var(--navy); color: white; border-radius: 4px; }
.skip-link:focus { top: 12px; }
@media (max-width: 600px) { :root { --page-gutter: 26px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
