/* ---------------------------------------------------------------------------
   Self-hosted fonts. Previously four families pulled from fonts.googleapis.com,
   which cost a render-blocking cross-origin stylesheet, two preconnects, an
   extra DNS + TLS handshake, and leaked every visitor's IP to Google.
   Now: 6 woff2 files from this origin, 140 KB, cached for a year.

   Inter and Space Grotesk are VARIABLE fonts — one file each covers the whole
   weight range the design uses, instead of one file per weight (185 KB saved).
   Regenerate with the command in README.md if the type ever changes.
   --------------------------------------------------------------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-var.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;
  src:url('../fonts/space-grotesk-var.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/ibm-plex-mono-400.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/ibm-plex-mono-500.woff2') format('woff2');}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/instrument-serif-400.woff2') format('woff2');}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/instrument-serif-400-italic.woff2') format('woff2');}
/* ASMET 2027 — design tokens
   Generated from the approved design. Edit here, not inline in templates. */

/* ============ TOKENS ============ */
:root{
--ink:#0B1A33; --ink-soft:#16294A; --teal:#12A594; --teal-dark:#0C7A6D;
--amber:#E8792B; /* fills only - 2.92:1 on white, too low for text */
  --amber-text:#A8500F; /* 5.50:1 on white, 5.12:1 on mist - WCAG AA */ --crimson:#D42C2C; --slate:#5A6B84; --mist:#F4F7FB;
--line:#DDE5EF; --white:#fff;
--t1:#12A594; --t2:#2E9E5B; --t3:#3B6FD4; --t4:#7A4FD0; --t5:#E8792B;
--grad:linear-gradient(135deg,#0B1A33 0%,#16294A 55%,#0C7A6D 100%);
--r-sm:4px; --r-md:10px; --r-lg:20px; --r-pill:999px;
--sh-sm:0 1px 2px rgba(11,26,51,.06);
--sh-md:0 6px 18px rgba(11,26,51,.08);
--sh-lg:0 18px 44px rgba(11,26,51,.12);
--disp:'Space Grotesk',Poppins,system-ui,sans-serif;
--body:Inter,Poppins,system-ui,-apple-system,sans-serif;
--mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
--serif:'Instrument Serif',Georgia,'Times New Roman',serif;
--maxw:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.65;color:var(--ink);background:var(--white);
-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3,h4,h5{font-family:var(--disp);line-height:1.14;margin:0 0 .45em;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:var(--teal-dark)}
img{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
:focus-visible{outline:2px solid var(--teal-dark);outline-offset:2px;border-radius:2px}
