@font-face {
    font-family: "PolySans Bulky";
    src: url("../fonts/PolySans-Bulky.woff2") format("woff2"),
         url("../fonts/PolySans-Bulky.woff")  format("woff"),
         url("../fonts/PolySans-Bulky.ttf")   format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "PolySans Median";
    src: url("../fonts/polysanstrial-median.otf") format("opentype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

*, *::before, *::after { box-sizing: border-box; }

html {
    height: 100%;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    margin: 0;
    min-height: 100%;
    background: var(--bg-canvas);
    color: var(--text-body);
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    letter-spacing: var(--tracking-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "ss01", "cv11";
    font-synthesis-weight: none;
    text-rendering: optimizeLegibility;
    transition: background var(--t-slow) var(--e-standard), color var(--t-slow) var(--e-standard);
}

h1, h2, h3, h4, h5, h6, .display {
    margin: 0;
    color: var(--text-primary);
    font-family: var(--font-display);
    font-weight: 700;
    line-height: var(--lh-heading);
    letter-spacing: var(--tracking-heading);
}
.display-xl { font-size: var(--fs-display-xl); line-height: var(--lh-display); letter-spacing: var(--tracking-display); }
.display-l  { font-size: var(--fs-display-l);  line-height: var(--lh-display); letter-spacing: var(--tracking-display); }
.display-m  { font-size: var(--fs-display-m);  line-height: var(--lh-heading); letter-spacing: var(--tracking-heading); }
h1          { font-size: var(--fs-h1); }
h2          { font-size: var(--fs-h2); }
h3          { font-size: var(--fs-h3); }
h4          { font-size: var(--fs-h4); }

p { margin: 0; }

a {
    color: var(--accent-text);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
    transition: color var(--t-fast) var(--e-standard);
}
a:hover { color: var(--brand-blue); }

.eyebrow {
    font-family: var(--font-ui);
    font-size: var(--fs-caption);
    font-weight: 700;
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--accent-text);
}

.caps {
    font-family: var(--font-ui);
    font-weight: 600;
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
}

.muted { color: var(--text-muted); }
.tabular { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

:focus { outline: none; }
:focus-visible { outline: none; box-shadow: var(--ring-focus); border-radius: var(--radius-xs); }

::selection { background: var(--highlighter); color: var(--black); }

.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;
}

html.scroll-lock, body.scroll-lock { overflow: hidden; }

.hidden { display: none !important; }

* {
    scrollbar-width: thin;
    scrollbar-color: var(--grey-blue) var(--cream-dark);
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--cream-dark); }
::-webkit-scrollbar-thumb {
    background: var(--grey-blue);
    border-radius: 999px;
}
::-webkit-scrollbar-thumb:hover { background: var(--navy); }
::-webkit-scrollbar-corner { background: var(--cream-dark); }
