@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 900;
    font-display: block;
    src: url('../fonts/inter-latin-var.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: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400 700;
    font-display: block;
    src: url('../fonts/jetbrains-mono-latin-var.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: 'Caveat';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/caveat-latin-700.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;
}

html.ffn-fonts-pending .ffn-pilot-title,
html.ffn-fonts-pending .ffn-pilot-eyebrow {
    visibility: hidden;
}

:root {
    --brand-white: #ffffff;
    --brand-black: #0a0a0a;
    --brand-navy: #0e2240;
    --brand-navy-light: #1e3a5f;
    --brand-blue: #38b6ff;
    --brand-blue-dark: #2563eb;
    --brand-green: #047857;
    --brand-green-light: #059669;
    --brand-purple: #7c3aed;
    --brand-rose: #be185d;
    --brand-slate: #475569;
    --brand-bg: #f8f9fa;
    --brand-surface: #f1f5f9;
    --brand-text: #333333;
    --brand-text-heading: #0f172a;
    --brand-text-muted: #64748b;
    --brand-border: #e2e8f0;
    --brand-shadow-soft: 0 10px 30px -5px rgba(0, 0, 0, 0.08);
    --brand-gradient-editorial: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-light) 60%, #1a3a5c 100%);
    --brand-gradient-product: linear-gradient(135deg, var(--brand-green) 0%, var(--brand-green-light) 35%, var(--brand-blue-dark) 70%, var(--brand-purple) 100%);
    --brand-gradient-wordmark: linear-gradient(135deg, var(--brand-green) 0%, var(--brand-green-light) 20%, var(--brand-blue-dark) 50%, var(--brand-purple) 80%, var(--brand-rose) 100%);
    --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

    /* Type scale */
    --font-size-xs: 0.72rem;
    --font-size-sm: 0.82rem;
    --font-size-base: 0.94rem;
    --font-size-md: 1.06rem;
    --font-size-lg: 1.25rem;
    --font-size-xl: 1.5rem;
    --font-size-2xl: 2rem;
    --font-size-3xl: 2.5rem;
    --font-size-4xl: clamp(2.5rem, 6vw, 4rem);

    /* Button tokens */
    --btn-radius: 0.5rem;
    --btn-radius-pill: 999px;
    --btn-padding-sm: 0.5rem 1rem;
    --btn-padding-md: 0.625rem 1.25rem;
    --btn-padding-lg: 0.75rem 1.5rem;
    --btn-font-size: 0.82rem;
    --btn-font-weight: 700;
    --btn-transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    --ffn-action-height: 2.9rem;
    --ffn-action-mobile-height: 44px;
    --ffn-action-padding-x: 1rem;
    --ffn-action-font-size: 0.78rem;
    --ffn-action-small-font-size: 0.72rem;
    --ffn-action-font-weight: 700;
    --ffn-action-letter-spacing: 0.08em;

    /* Editorial design tokens */
    --ffn-ed-bg: #f1f5fb;
    --ffn-ed-surface: #ffffff;
    --ffn-ed-surface-strong: #ffffff;
    --ffn-ed-surface-muted: #e8eef6;
    --ffn-ed-text: #07101f;
    --ffn-ed-text-muted: #42516c;
    --ffn-ed-text-soft: #5f6f8c; /* 4.6:1 on the page background (WCAG AA for small text) */
    --ffn-ed-border: rgba(7, 16, 31, 0.1);
    --ffn-ed-border-strong: rgba(7, 16, 31, 0.14);
    --ffn-ed-accent: #0057ff;
    --ffn-ed-accent-soft: rgba(0, 87, 255, 0.1);
    --ffn-ed-shadow-soft: 0 1px 2px rgba(7, 16, 31, 0.04), 0 6px 16px rgba(7, 16, 31, 0.05);
    --ffn-ed-shadow-card: 0 1px 3px rgba(7, 16, 31, 0.06), 0 10px 28px rgba(7, 16, 31, 0.07);
    --ffn-ed-radius-card: 1.6rem;
    --ffn-ed-radius-pill: 999px;
    --ffn-ed-max-width: 1560px;
    --ffn-ed-font-sans: var(--font-body);
    --ffn-ed-font-mono: var(--font-mono);
    --ffn-ed-font-hand: 'Caveat', cursive;

    /* Extended surface & background tokens */
    --brand-surface-white: #ffffff;
    --brand-surface-subtle: #f7f8fa;
    --brand-surface-muted: #eef0f4;
    --brand-surface-panel: #ffffff;

    /* Extended text tokens */
    --brand-text-primary: #0f172a;
    --brand-text-secondary: #576175;
    --brand-text-tertiary: #8c95a8;
    --brand-text-soft: #667085;

    /* Extended border tokens */
    --brand-border-light: #e8ebf0;
    --brand-border-subtle: #d4d9e3;
    --brand-border-strong: #cbd5e1;

    /* Accent extensions */
    --brand-accent-blue: #2563eb;
    --brand-accent-blue-light: #3b82f6;
    --brand-accent-blue-glow: #60a5fa;
    --brand-accent-cyan: #38bdf8;
    --brand-accent-gold: #c8952e;
    --brand-accent-gold-hover: #d4a33a;
    --brand-accent-gold-muted: #9a6a00;

    /* Status colors */
    --brand-status-success-bg: #ddf5e6;
    --brand-status-success-text: #14713a;
    --brand-status-success-border: #b4ebc8;
    --brand-status-warning-bg: #fffbeb;
    --brand-status-warning-text: #b45309;
    --brand-status-warning-border: #f59e0b;
    --brand-status-danger-bg: #fde4e4;
    --brand-status-danger-text: #a31b1b;
    --brand-status-danger-border: #f5c6c6;

    /* Position badge colors */
    --brand-pos-qb-bg: #fef3c7;
    --brand-pos-qb-text: #92400e;
    --brand-pos-rb-bg: #dcfce7;
    --brand-pos-rb-text: #166534;
    --brand-pos-wr-bg: #dbeafe;
    --brand-pos-wr-text: #1e40af;
    --brand-pos-te-bg: #fce7f3;
    --brand-pos-te-text: #9d174d;
    --brand-pos-k-bg: #f3e8ff;
    --brand-pos-k-text: #6b21a8;

    /* Radius tokens */
    --brand-radius-sm: 0.5rem;
    --brand-radius-md: 0.75rem;
    --brand-radius-lg: 1rem;
    --brand-radius-xl: 1.25rem;
    --brand-radius-2xl: 1.6rem;
    --brand-radius-pill: 999px;

    /* Shadow depth scale */
    --brand-shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.05);
    --brand-shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.06);
    --brand-shadow-md: 0 10px 30px -5px rgba(0, 0, 0, 0.08);
    --brand-shadow-lg: 0 20px 45px -25px rgba(15, 23, 42, 0.35);
    --brand-shadow-xl: 0 26px 80px rgba(7, 16, 31, 0.1);

    /* Hero gradients (shared across pages) */
    --brand-gradient-hero-dark: linear-gradient(145deg, var(--brand-navy) 0%, var(--brand-navy-light) 50%, #1a3a5c 100%);
    --brand-gradient-hero-light: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(243, 250, 247, 0.98) 50%, rgba(238, 245, 252, 1) 100%);

    /* Tool page aliases (maps --tp-* to brand tokens) */
    --tp-bg: var(--brand-surface);
    --tp-ink: var(--brand-text-primary);
    --tp-text: var(--brand-text-secondary);
    --tp-muted: var(--brand-text-muted);
    --tp-soft: var(--brand-text-soft);
    --tp-border: var(--brand-border);
    --tp-border-light: var(--brand-surface);
    --tp-surface: var(--brand-surface-subtle);
    --tp-blue: var(--brand-accent-blue);
    --tp-cyan: var(--brand-accent-cyan);
    --tp-green: #22c55e;
    --tp-blue-glow: var(--brand-accent-blue-glow);
    --tp-r-sm: var(--brand-radius-sm);
    --tp-r-md: var(--brand-radius-md);
    --tp-r-lg: var(--brand-radius-lg);
    --tp-r-xl: var(--brand-radius-xl);
    --tp-r-pill: var(--brand-radius-pill);
    --tp-shadow-card: var(--brand-shadow-md);
    --tp-shadow-card-hover: var(--brand-shadow-lg);

    /* Transition tokens */
    --brand-transition-fast: 0.15s ease;
    --brand-transition-base: 0.2s ease;
    --brand-transition-slow: 0.3s ease;
}

/* Shared NFL team color tokens for static markup, generated pages, and CSP-safe fallbacks. */
:where([data-team], [data-card-team], [data-team-id]) {
    --team-text: var(--ffn-row-team-contrast, #fff);
    --tile-color: var(--team-primary, #2563eb);
    --ffn-row-team-color: var(--team-primary, #6B7280);
    --ffn-team-badge-color: var(--team-primary, #6B7280);
    --ffn-team-badge-contrast: var(--team-text, #fff);
    --ffn-showcase-team: var(--team-primary, #2563eb);
    --team-accent: var(--team-primary, #2563eb);
    --team-accent-bright: var(--team-primary, #2563eb);
    --team-accent-vivid: var(--team-primary, #2563eb);
    --team-secondary-bright: var(--team-secondary, var(--team-primary, #2563eb));
    --team-glow: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.16);
    --team-glow-strong: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.32);
    --team-secondary-wash: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.18);
    --team-border: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.3);
    --team-border-strong: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.56);
    --team-surface-soft: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.14);
    --team-surface-strong: rgba(var(--ffn-row-team-rgb, 37, 99, 235), 0.24);
}

:where([data-team="ARI"], [data-card-team="ARI"], [data-team-id="ARI"]) { --team-primary: #97233F; --team-secondary: #000000; --ffn-row-team-rgb: 151, 35, 63; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="ATL"], [data-card-team="ATL"], [data-team-id="ATL"]) { --team-primary: #A71930; --team-secondary: #000000; --ffn-row-team-rgb: 167, 25, 48; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="BAL"], [data-card-team="BAL"], [data-team-id="BAL"]) { --team-primary: #241773; --team-secondary: #9E7C0C; --ffn-row-team-rgb: 36, 23, 115; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="BUF"], [data-card-team="BUF"], [data-team-id="BUF"]) { --team-primary: #00338D; --team-secondary: #C60C30; --ffn-row-team-rgb: 0, 51, 141; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="CAR"], [data-card-team="CAR"], [data-team-id="CAR"]) { --team-primary: #0085CA; --team-secondary: #000000; --ffn-row-team-rgb: 0, 133, 202; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="CHI"], [data-card-team="CHI"], [data-team-id="CHI"]) { --team-primary: #0B162A; --team-secondary: #E64100; --ffn-row-team-rgb: 11, 22, 42; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="CIN"], [data-card-team="CIN"], [data-team-id="CIN"]) { --team-primary: #FB4F14; --team-secondary: #000000; --ffn-row-team-rgb: 251, 79, 20; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="CLE"], [data-card-team="CLE"], [data-team-id="CLE"]) { --team-primary: #FF3C00; --team-secondary: #311D00; --ffn-row-team-rgb: 255, 60, 0; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="DAL"], [data-card-team="DAL"], [data-team-id="DAL"]) { --team-primary: #002244; --team-secondary: #B0B7BC; --ffn-row-team-rgb: 0, 34, 68; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="DEN"], [data-card-team="DEN"], [data-team-id="DEN"]) { --team-primary: #002244; --team-secondary: #FB4F14; --ffn-row-team-rgb: 0, 34, 68; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="DET"], [data-card-team="DET"], [data-team-id="DET"]) { --team-primary: #0076B6; --team-secondary: #B0B7BC; --ffn-row-team-rgb: 0, 118, 182; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="GB"], [data-card-team="GB"], [data-team-id="GB"]) { --team-primary: #203731; --team-secondary: #FFB612; --ffn-row-team-rgb: 32, 55, 49; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="HOU"], [data-card-team="HOU"], [data-team-id="HOU"]) { --team-primary: #03202F; --team-secondary: #A71930; --ffn-row-team-rgb: 3, 32, 47; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="IND"], [data-card-team="IND"], [data-team-id="IND"]) { --team-primary: #002C5F; --team-secondary: #A5ACAF; --ffn-row-team-rgb: 0, 44, 95; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="JAX"], [data-card-team="JAX"], [data-team-id="JAX"], [data-team="JAC"], [data-card-team="JAC"], [data-team-id="JAC"]) { --team-primary: #006778; --team-secondary: #000000; --ffn-row-team-rgb: 0, 103, 120; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="KC"], [data-card-team="KC"], [data-team-id="KC"]) { --team-primary: #E31837; --team-secondary: #FFB612; --ffn-row-team-rgb: 227, 24, 55; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="LV"], [data-card-team="LV"], [data-team-id="LV"], [data-team="OAK"], [data-card-team="OAK"], [data-team-id="OAK"], [data-team="LVR"], [data-card-team="LVR"], [data-team-id="LVR"]) { --team-primary: #000000; --team-secondary: #A5ACAF; --ffn-row-team-rgb: 0, 0, 0; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="LAC"], [data-card-team="LAC"], [data-team-id="LAC"], [data-team="SD"], [data-card-team="SD"], [data-team-id="SD"]) { --team-primary: #007BC7; --team-secondary: #FFC20E; --ffn-row-team-rgb: 0, 123, 199; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="LAR"], [data-card-team="LAR"], [data-team-id="LAR"], [data-team="LA"], [data-card-team="LA"], [data-team-id="LA"], [data-team="STL"], [data-card-team="STL"], [data-team-id="STL"]) { --team-primary: #003594; --team-secondary: #FFD100; --ffn-row-team-rgb: 0, 53, 148; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="MIA"], [data-card-team="MIA"], [data-team-id="MIA"]) { --team-primary: #008E97; --team-secondary: #F58220; --ffn-row-team-rgb: 0, 142, 151; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="MIN"], [data-card-team="MIN"], [data-team-id="MIN"]) { --team-primary: #4F2683; --team-secondary: #FFC62F; --ffn-row-team-rgb: 79, 38, 131; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="NE"], [data-card-team="NE"], [data-team-id="NE"]) { --team-primary: #002244; --team-secondary: #C60C30; --ffn-row-team-rgb: 0, 34, 68; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="NO"], [data-card-team="NO"], [data-team-id="NO"]) { --team-primary: #D3BC8D; --team-secondary: #000000; --ffn-row-team-rgb: 211, 188, 141; --ffn-row-team-contrast: #0F172A; }
:where([data-team="NYG"], [data-card-team="NYG"], [data-team-id="NYG"]) { --team-primary: #0B2265; --team-secondary: #A71930; --ffn-row-team-rgb: 11, 34, 101; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="NYJ"], [data-card-team="NYJ"], [data-team-id="NYJ"]) { --team-primary: #003F2D; --team-secondary: #000000; --ffn-row-team-rgb: 0, 63, 45; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="PHI"], [data-card-team="PHI"], [data-team-id="PHI"]) { --team-primary: #004C54; --team-secondary: #A5ACAF; --ffn-row-team-rgb: 0, 76, 84; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="PIT"], [data-card-team="PIT"], [data-team-id="PIT"]) { --team-primary: #000000; --team-secondary: #FFB612; --ffn-row-team-rgb: 0, 0, 0; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="SF"], [data-card-team="SF"], [data-team-id="SF"]) { --team-primary: #AA0000; --team-secondary: #B3995D; --ffn-row-team-rgb: 170, 0, 0; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="SEA"], [data-card-team="SEA"], [data-team-id="SEA"]) { --team-primary: #002244; --team-secondary: #69BE28; --ffn-row-team-rgb: 0, 34, 68; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="TB"], [data-card-team="TB"], [data-team-id="TB"]) { --team-primary: #A71930; --team-secondary: #322F2B; --ffn-row-team-rgb: 167, 25, 48; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="TEN"], [data-card-team="TEN"], [data-team-id="TEN"]) { --team-primary: #002244; --team-secondary: #4B92DB; --ffn-row-team-rgb: 0, 34, 68; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="WAS"], [data-card-team="WAS"], [data-team-id="WAS"], [data-team="WSH"], [data-card-team="WSH"], [data-team-id="WSH"]) { --team-primary: #5A1414; --team-secondary: #FFB612; --ffn-row-team-rgb: 90, 20, 20; --ffn-row-team-contrast: #FFFFFF; }
:where([data-team="FA"], [data-card-team="FA"], [data-team-id="FA"]) { --team-primary: #6B7280; --team-secondary: #374151; --ffn-row-team-rgb: 107, 114, 128; --ffn-row-team-contrast: #FFFFFF; }

:where(.team-badge[data-team], .hp-team-badge[data-team], .pc-team-badge[data-team]) {
    background: var(--ffn-team-badge-color, var(--ffn-row-team-color, #6B7280));
    color: var(--ffn-team-badge-contrast, var(--ffn-row-team-contrast, #fff));
}
