/* Fonts ship with the template (SIL OFL, see assets/fonts/OFL-*.txt): no request to Google Fonts. */
@font-face { font-family: "Host Grotesk"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/host-grotesk-400-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Host Grotesk"; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/host-grotesk-400-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: "Host Grotesk"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/host-grotesk-500-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Host Grotesk"; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/host-grotesk-500-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: "Host Grotesk"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/host-grotesk-600-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Host Grotesk"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/host-grotesk-600-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: "Parkinsans"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/parkinsans-600-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Parkinsans"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/parkinsans-600-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: "Parkinsans"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/parkinsans-700-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Parkinsans"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/parkinsans-700-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: "Parkinsans"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/parkinsans-800-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Parkinsans"; font-style: normal; font-weight: 800; font-display: swap; src: url(../fonts/parkinsans-800-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; }
/* Lustrum design tokens. Two colors carry the template: --petrol (the deep teal of the uniforms and the dark bands)
 * and --sky (the light blue of the buttons and the clean streak). Change them and every section, tag and the 3D floor
 * follow. --lustre is the lime sheen, used only where something shines (the squeegee pass, the sparkle in the logo). */
:root {
  /* color */
  --petrol:     oklch(29% 0.05 228);    /* dark teal: hero, bands, footer, ink of the buttons */
  --petrol-2:   oklch(34% 0.055 228);
  --petrol-3:   oklch(41% 0.06 228);
  --rule-dark:  oklch(46% 0.05 228);
  --brand:      oklch(58% 0.125 228);   /* the blue of the uniform badge: links, labels, kicker */
  --brand-deep: oklch(49% 0.12 228);    /* blue as text on white (AA) */
  --sky:        oklch(77% 0.12 232);    /* the clean streak: primary buttons, highlights */
  --sky-hi:     oklch(82% 0.11 232);    /* hover: lighter, never darker */
  --on-sky:     oklch(24% 0.05 228);    /* petrol ink on sky */
  --lustre:     oklch(91% 0.17 118);    /* lime sheen: the shine only */
  --tint:       oklch(93% 0.035 230);   /* pale blue panel */
  --mist:       oklch(96.5% 0.008 215); /* the paper of the site */
  --paper:      oklch(99% 0.003 215);   /* white cards on mist */
  --wash:       oklch(94% 0.012 218);   /* a deeper mist for alternate bands */
  --ink:        oklch(26% 0.025 228);
  --ink-2:      oklch(40% 0.025 228);
  --muted:      oklch(52% 0.02 228);
  --rule:       oklch(88% 0.012 218);
  --on-dark:    oklch(97% 0.005 215);
  --on-dark-2:  oklch(80% 0.02 225);
  --focus:      oklch(58% 0.15 228);
  --error:      oklch(52% 0.18 27);
  --ok:         oklch(52% 0.13 152);
  /* gradients: every dark surface and every veil comes from here */
  --grad-dark: linear-gradient(165deg, oklch(26% 0.05 228) 0%, oklch(30% 0.055 228) 55%, oklch(36% 0.07 232) 100%);
  --grad-veil: linear-gradient(180deg, transparent 0%, color-mix(in oklch, var(--petrol) 85%, transparent) 100%);
  --grad-side: linear-gradient(90deg, color-mix(in oklch, var(--petrol) 94%, transparent) 0%, color-mix(in oklch, var(--petrol) 60%, transparent) 55%, transparent 100%);
  --grad-sheen: linear-gradient(115deg, transparent 30%, color-mix(in oklch, var(--lustre) 55%, transparent) 50%, transparent 70%);
  --grad-sky: linear-gradient(135deg, var(--sky) 0%, oklch(84% 0.09 220) 100%);
  /* type */
  --font-display: "Parkinsans", "Avenir Next", -apple-system, sans-serif;
  --font-body: "Host Grotesk", -apple-system, system-ui, sans-serif;
  --text-sm: 0.875rem; --text-base: 1.0625rem; --text-md: 1.3rem; --text-lg: 1.7rem; --text-xl: 2.2rem; --text-2xl: 2.85rem;
  --text-display: clamp(2.5rem, 3.9vw + 0.8rem, 4.5rem); --text-display-s: clamp(2.1rem, 2.8vw + 0.9rem, 3.5rem);
  /* space */
  --space-2xs: .25rem; --space-xs: .5rem; --space-sm: .75rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2.5rem; --space-2xl: 4rem; --space-3xl: 6.5rem; --space-4xl: 10rem;
  --wrap: 78rem;
  /* motion: the squeegee pass. Quick to start, settles without a bounce. */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); --ease-wipe: cubic-bezier(0.7, 0, 0.2, 1);
  --dur-micro: 160ms; --dur-short: 260ms; --dur-long: 700ms; --dur-wipe: 1100ms;
  --z-base: 1; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-modal: 400;
  --radius: 6px; --radius-s: 3px; --radius-l: 14px; --radius-pill: 999px;
  --shadow: 0 1px 2px oklch(29% 0.05 228 / 0.06), 0 16px 36px -20px oklch(29% 0.05 228 / 0.28);
  --shadow-up: 0 2px 4px oklch(29% 0.05 228 / 0.06), 0 26px 44px -22px oklch(29% 0.05 228 / 0.36);
}
@media (prefers-reduced-motion: reduce) { :root { --dur-micro: 1ms; --dur-short: 1ms; --dur-long: 1ms; --dur-wipe: 1ms; } }
