/* ==========================================================================
   SCHERRE TYPOGRAPHY SYSTEM (css/typography.css)
   Single Source of Truth for Design Tokens & Utility Classes
   
   Core Families:
   - AT Aero (Sans): Variable weights 100-900 (--font-aero)
   - F3 Mono (Monospace): Fixed uppercase data display (--font-mono)
   
   Preset Scale:
   - .type-aero-a : 38px / 40px / -1.6px (Display Hero Headlines)
   - .type-aero-b : 28px / 32px / -1.4px (Section Subheadlines & Bio)
   - .type-aero-c : 20px / 23.6px / -1.2px (Project Card Titles)
   - .type-aero-d : 24px / 28px / -1.0px (Signature & Accents)
   - .type-aero-e : 14px / 20px / -0.6px (Body Text, Metadata, Deliverables)
   - .type-aero-f : 16px / 16px / -0.3px (Pill Buttons & Floating CTA)
   - .type-mono-a : 11px / 11px / 0.5px (Status Lines, Live Clocks, Badges)
   - .type-mono-b : 10px / 10px / 0.4px (Micro Indices & Footnotes)
   
   RULE 6: All new text elements MUST be linked to these classes.
   Do not introduce divergent inline or standalone typography rules without approval.
   ========================================================================== */

/* ==========================================================================
   AT Aero — Exact Local OTF Webfonts
   ========================================================================== */
@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Air.otf") format("opentype");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-AirItalic.otf") format("opentype");
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Thin.otf") format("opentype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-ThinItalic.otf") format("opentype");
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-LightItalic.otf") format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-RegularItalic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: local("At Aero Retina"), local("AtAero-Retina"), url("../assets/fonts/AtAero-Retina.otf") format("opentype");
  font-weight: 350;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: local("At Aero Retina Italic"), local("AtAero-RetinaItalic"), url("../assets/fonts/AtAero-RetinaItalic.otf") format("opentype");
  font-weight: 350;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero Retina";
  src: local("At Aero Retina"), local("AtAero-Retina"), url("../assets/fonts/AtAero-Retina.otf") format("opentype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero Retina";
  src: local("At Aero Retina Italic"), local("AtAero-RetinaItalic"), url("../assets/fonts/AtAero-RetinaItalic.otf") format("opentype");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "At Aero Retina";
  src: local("At Aero Retina"), local("AtAero-Retina"), url("../assets/fonts/AtAero-Retina.otf") format("opentype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-MediumItalic.otf") format("opentype");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Semibold.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-SemiboldItalic.otf") format("opentype");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-BoldItalic.otf") format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Super.otf") format("opentype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "AT Aero";
  src: url("../assets/fonts/AtAero-BlackItalic.otf") format("opentype");
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* Aliases: Also map "Neue Haas Grotesk Display Pro" and "Neue Haas Grotesk Display" to AT Aero */
@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/fonts/AtAero-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/fonts/AtAero-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/fonts/AtAero-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display Pro";
  src: url("../assets/fonts/AtAero-Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display";
  src: url("../assets/fonts/AtAero-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display";
  src: url("../assets/fonts/AtAero-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display";
  src: url("../assets/fonts/AtAero-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Grotesk Display";
  src: url("../assets/fonts/AtAero-Black.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* Inter Display Webfonts Fallback */
@font-face {
  font-family: "Inter Display";
  src: url("https://framerusercontent.com/assets/gazZKZuUEtvr9ULhdA4SprP0AZ0.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter Display";
  src: url("https://framerusercontent.com/assets/ePuN3mCjzajIHnyCdvKBFiZkyY0.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter Display";
  src: url("https://framerusercontent.com/assets/I11LrmuBDQZweplJ62KkVsklU5Y.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Authentic Neue Haas Display for Geometric Symbols & Underscores */
@font-face {
  font-family: "Neue Haas Real";
  src: url("../assets/fonts/NeueHaasDisplayBold.ttf") format("truetype");
  font-weight: 600 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Real";
  src: url("../assets/fonts/NeueHaasDisplayMediu.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Neue Haas Real";
  src: url("../assets/fonts/NeueHaasDisplayRoman.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* PP Supply Mono — Local OTF Webfonts & OS Local Lookups */
@font-face {
  font-family: "PP Supply Mono";
  src: local("PP Supply Mono"),
    local("PP Supply Mono Regular"),
    local("PPSupplyMono-Regular"),
    url("../assets/fonts/PPSupplyMono-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PP Supply Mono";
  src: local("PP Supply Mono Italic"),
    local("PPSupplyMono-RegularItalic"),
    local("PPSupplyMono-Italic"),
    url("../assets/fonts/PPSupplyMono-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "PP Supply Mono";
  src: local("PP Supply Mono Medium"),
    local("PPSupplyMono-Medium"),
    url("../assets/fonts/PPSupplyMono-Regular.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PP Supply Mono";
  src: local("PP Supply Mono Bold"),
    local("PPSupplyMono-Bold"),
    url("../assets/fonts/PPSupplyMono-Regular.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PPSupplyMono-Regular";
  src: local("PP Supply Mono"),
    local("PP Supply Mono Regular"),
    local("PPSupplyMono-Regular"),
    url("../assets/fonts/PPSupplyMono-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PP Supply Mono";
  src: local("Supply-Light"),
    local("PP Supply Mono Light"),
    url("../assets/fonts/Supply-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Supply-Light";
  src: local("Supply-Light"),
    local("PP Supply Mono Light"),
    url("../assets/fonts/Supply-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

