/* Bluefyn brand tokens — LOCKED. Do not introduce any colour or face not here. */

/* Self-hosted Geist (perf 2026-08-06). Was a Google Fonts @import here, which blocked first
   paint on mobile; now the woff2 files are served from our own origin — no third-party font
   round-trip. Geist is a VARIABLE font, so one file per subset covers weights 300–600. The
   latin subset is preloaded in the page <head>. font-display:swap keeps text visible while it
   loads. Only latin + latin-ext subsets are shipped (an English site needs no Cyrillic/Vietnamese). */
@font-face{
  font-family:'Geist'; font-style:normal; font-weight:300 600; font-display:swap;
  src:url('/_drafts/v3/fonts/geist-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Geist'; font-style:normal; font-weight:300 600; font-display:swap;
  src:url('/_drafts/v3/fonts/geist-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
:root{
  /* ink + paper */
  --ink:#14202F;            /* headings, primary ink (navy-black, never #000) */
  --ink-soft:#1E2432;       /* carbon */
  --body:#4A4F5C;           /* graphite body */
  --muted:#5A6878;          /* AA-driven: #6C7B90 failed WCAG AA on all 3 grounds it sits on
                                (white/cream/warm-paper); this clears ~5.1:1 / ~5.4:1 */
  --paper:#FFFFFF;
  --paper-warm:#FAF9F7;     /* warm ground */
  --paper-cream:#F6F4F0;    /* deeper warm paper */
  --edge:#E0E9FB;           /* hairline */
  /* brand accents */
  --fyn-blue:#B5CAF8;       /* periwinkle */
  --deep-fyn:#4A6FD4;
  --ember:#E78432;          /* brand orange */
  --peach:#FFC9AE;
  --shell:#FFE6D8;
  --midnight:#0F1724;
  /* the sunset gradient stops (the brand's own animated field, from the product login) */
  --sun-1:#B5CAF8; --sun-2:#CCC7E9; --sun-3:#FFC9AE; --sun-4:#FFB282; --sun-5:#FF9A56; --sun-6:#F58B40; --sun-base:#FFEBDD;
  --radius-sm:4px; --radius:8px; --radius-lg:14px;
  /* first layer retuned from a blue-grey rgba(50,60,90,.45) to the page's own ink, so
     every shadow on the page (incl. .eng .ucard / .cta-card, pointed here below) shares
     one tint instead of two competing greys */
  --shadow-plate:0 30px 60px -40px rgba(20,32,47,.42), 0 8px 24px -18px rgba(20,32,47,.28);
}
html,body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Geist',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
/* Geist only — the mono face was dropped from the brand set (2026-07-30). .mono is
   kept as a hook so existing markup keeps resolving to the brand face, not a system mono. */
.mono{font-family:'Geist',system-ui,sans-serif;}
