/* latin-ext */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Barlow Semi Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/barlow-semi-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/oswald-300-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;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/oswald-300-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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/oswald-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/oswald-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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/oswald-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/oswald-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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/oswald-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/oswald-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;
}
/* latin-ext */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/oswald-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/oswald-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/saira-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/saira-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/saira-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/saira-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/saira-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/saira-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/saira-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/saira-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/saira-condensed-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/saira-condensed-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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/saira-condensed-900-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;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/saira-condensed-900-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;
}

/* ============================================================
   TACTICAL ACADEMY FINLAND — Force on Force design system
   Shared across all pages. Edit tokens here to retune globally.
   ============================================================ */

:root{
  /* palette */
  --ink:#080806;
  --ink-2:#0e100d;
  --gunmetal:#181c1b;
  --gunmetal-2:#232826;
  --line:#2b3128;
  --line-soft:#1d211b;
  --green:#5a6043;
  --green-bright:#8a9263;
  --gold:#c9a44c;
  --gold-bright:#e6c873;
  --bone:#e9e7dd;
  --bone-dim:#c9c7bc;
  --muted:#909286;
  --crimson:#a82a33;

  /* type */
  --f-display:'Saira Condensed',sans-serif;
  --f-head:'Oswald',sans-serif;
  --f-body:'Barlow Semi Condensed',sans-serif;
  --f-mono:'IBM Plex Mono',monospace;

  /* metrics */
  --maxw:1280px;
  --gutter:clamp(18px,5vw,56px);
  --nav-h:64px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--f-body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold);color:var(--ink);}

/* scrollbar */
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--ink-2);}
::-webkit-scrollbar-thumb{background:var(--gunmetal-2);border-radius:0;}
::-webkit-scrollbar-thumb:hover{background:var(--green);}

/* ---------- layout primitives ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.section{padding:clamp(56px,10vw,128px) 0;}
.section--tight{padding:clamp(40px,7vw,88px) 0;}

.eyebrow{
  font-family:var(--f-mono);font-size:12px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--gold);flex:none;}
.eyebrow--plain::before{display:none;}

.h-xl{font-family:var(--f-display);font-weight:900;text-transform:uppercase;line-height:.86;letter-spacing:-.005em;font-size:clamp(52px,12vw,150px);}
.h-lg{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:.92;letter-spacing:0;font-size:clamp(38px,7vw,86px);}
.h-md{font-family:var(--f-head);font-weight:600;text-transform:uppercase;line-height:1.02;letter-spacing:.01em;font-size:clamp(26px,4vw,44px);}
.h-sm{font-family:var(--f-head);font-weight:600;text-transform:uppercase;line-height:1.1;letter-spacing:.02em;font-size:clamp(19px,2.4vw,26px);}
.gold{color:var(--gold);}
.lede{font-size:clamp(17px,2vw,21px);line-height:1.55;color:var(--bone-dim);max-width:60ch;}
p.body{color:var(--muted);max-width:66ch;}
p.body + p.body{margin-top:1.1em;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;font-size:17px;line-height:1;
  padding:16px 30px;border:1px solid transparent;cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.btn .arr{font-family:var(--f-mono);font-weight:400;transition:transform .2s ease;}
.btn:hover .arr{transform:translateX(5px);}
.btn--gold{background:var(--gold);color:var(--ink);}
.btn--gold:hover{background:var(--gold-bright);transform:translateY(-2px);}
.btn--ghost{border-color:var(--line);color:var(--bone);}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);}
.btn--block{width:100%;justify-content:center;}

/* ---------- top navigation ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:120;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--gutter);
  background:rgba(8,8,6,.6);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:background .3s ease,border-color .3s ease;
}
.nav.scrolled{background:rgba(8,8,6,.92);border-bottom-color:var(--line);}
.nav__brand{display:flex;align-items:center;gap:12px;z-index:2;}
.nav__brand img{width:36px;height:36px;}
.nav__brand b{font-family:var(--f-head);font-weight:600;font-size:14px;letter-spacing:.13em;text-transform:uppercase;line-height:1;}
.nav__brand span{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.22em;color:var(--gold);margin-top:3px;}
.nav__links{display:flex;align-items:center;gap:30px;}
.nav__links a{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--bone-dim);position:relative;padding:6px 0;transition:color .2s ease;}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .25s ease;}
.nav__links a:hover,.nav__links a.is-active{color:var(--bone);}
.nav__links a:hover::after,.nav__links a.is-active::after{width:100%;}
.nav__ig{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);color:var(--bone-dim);transition:.2s;}
.nav__ig:hover{border-color:var(--gold);color:var(--gold);}
.nav__burger{display:none;flex-direction:column;gap:5px;width:40px;height:40px;align-items:center;justify-content:center;background:none;border:1px solid var(--line);cursor:pointer;z-index:2;}
.nav__burger span{display:block;width:18px;height:2px;background:var(--bone);transition:.3s;}

/* mobile menu */
.navmenu{
  position:fixed;inset:0;z-index:110;background:var(--ink);
  display:flex;flex-direction:column;justify-content:center;padding:var(--gutter);
  transform:translateY(-100%);transition:transform .5s cubic-bezier(.7,0,.2,1);
  visibility:hidden;
}
.navmenu.open{transform:translateY(0);visibility:visible;}
.navmenu a{
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(34px,9vw,58px);line-height:1.08;color:var(--bone);
  border-bottom:1px solid var(--line);padding:14px 0;display:flex;align-items:baseline;gap:18px;
  opacity:0;transform:translateY(20px);
}
.navmenu.open a{opacity:1;transform:none;transition:opacity .4s ease,transform .4s ease;}
.navmenu.open a:nth-child(1){transition-delay:.08s;}
.navmenu.open a:nth-child(2){transition-delay:.14s;}
.navmenu.open a:nth-child(3){transition-delay:.20s;}
.navmenu.open a:nth-child(4){transition-delay:.26s;}
.navmenu.open a:nth-child(5){transition-delay:.32s;}
.navmenu a .n{font-family:var(--f-mono);font-size:13px;font-weight:400;color:var(--gold);letter-spacing:.1em;}
.navmenu a:hover{color:var(--gold);}

@media(max-width:920px){
  .nav__links,.nav__ig{display:none;}
  .nav__burger{display:flex;}
}

/* ---------- hero (full-bleed video) ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;}
.hero__media,.hero__media video,.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero__media img{animation:heroZoom 20s ease-out forwards;}
.hero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(8,8,6,.55) 0%,rgba(8,8,6,.15) 35%,rgba(8,8,6,.5) 70%,rgba(8,8,6,.96) 100%);}
.hero__vig{position:absolute;inset:0;box-shadow:inset 0 0 200px 40px rgba(0,0,0,.75);pointer-events:none;z-index:1;}
.hero__grain{position:absolute;inset:0;opacity:.5;z-index:1;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");}
.hero__inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) clamp(48px,9vh,104px);}
.hero__corner{position:absolute;z-index:2;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);}
.hero__corner.tr{top:calc(var(--nav-h) + 22px);right:var(--gutter);text-align:right;color:var(--gold);line-height:1.6;}
.hero h1{margin:18px 0 0;max-width:16ch;}
.hero__sub{margin-top:22px;max-width:54ch;font-size:clamp(16px,2vw,20px);line-height:1.5;color:var(--bone-dim);}
.hero__cta{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap;}
.hero__scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:8px;}
.hero__scroll .line{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);animation:scrollpulse 2s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}
@keyframes heroZoom{0%{transform:scale(1);}100%{transform:scale(1.12);}}

/* ---------- intro / statement band ---------- */
.statement .eyebrow{margin-bottom:26px;}
.statement__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start;}
.statement__grid h2{max-width:14ch;}
@media(max-width:820px){.statement__grid{grid-template-columns:1fr;gap:22px;}}

/* ---------- editorial offering rows ---------- */
.offer{border-top:1px solid var(--line);}
.offerrow{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;}
.offerrow:nth-child(even) .offerrow__media{order:2;}
.offerrow__media{position:relative;min-height:clamp(320px,46vw,540px);overflow:hidden;background:#000;}
.offerrow__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.05) brightness(.82);transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .6s ease;}
.offerrow:hover .offerrow__media img{transform:scale(1.05);filter:grayscale(0) contrast(1.05) brightness(.9);}
.offerrow__media .tagnum{position:absolute;top:20px;left:20px;font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;color:var(--gold);background:rgba(8,8,6,.6);padding:6px 10px;border:1px solid var(--line);}
.offerrow__body{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:clamp(32px,5vw,72px);border-left:1px solid var(--line);}
.offerrow:nth-child(even) .offerrow__body{border-left:0;border-right:1px solid var(--line);}
.offerrow__body .kick{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--green-bright);}
.offerrow__body a.more{font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:inline-flex;gap:10px;align-items:center;margin-top:6px;}
.offerrow__body a.more .arr{transition:transform .2s ease;}
.offerrow__body a.more:hover .arr{transform:translateX(5px);}
@media(max-width:820px){
  .offerrow{grid-template-columns:1fr;}
  .offerrow:nth-child(even) .offerrow__media{order:0;}
  .offerrow__body,.offerrow:nth-child(even) .offerrow__body{border:0;}
  .offerrow__media{min-height:300px;}
}

/* ---------- feature band (FoF spotlight) ---------- */
.feature{position:relative;overflow:hidden;background:var(--ink-2);}
.feature__media{position:absolute;inset:0;}
.feature__media video,.feature__media img{width:100%;height:100%;object-fit:cover;filter:brightness(.32) grayscale(.3);}
.feature__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,6,.92),rgba(8,8,6,.55));}
.feature__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(64px,12vw,150px) var(--gutter);}
.feature__inner .lede{margin-top:24px;color:var(--bone-dim);}
.feature__inner .btn{margin-top:34px;}

/* ---------- big pull quote ---------- */
.pquote{text-align:center;}
.pquote__mark{font-family:var(--f-display);font-weight:900;font-size:clamp(80px,16vw,200px);line-height:.6;color:var(--line);}
.pquote blockquote{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(28px,5.5vw,64px);line-height:1.02;max-width:20ch;margin:0 auto;letter-spacing:-.005em;}
.pquote blockquote em{font-style:normal;color:var(--gold);}
.pquote cite{display:block;margin-top:26px;font-family:var(--f-mono);font-style:normal;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}

/* ---------- image grid (gallery) ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;}
.gallery figure{position:relative;overflow:hidden;background:#000;aspect-ratio:3/4;}
.gallery img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) brightness(.82);transition:transform .7s ease,filter .5s ease;}
.gallery figure:hover img{transform:scale(1.06);filter:none;}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr);}}

/* ---------- partners ---------- */
.partners{border-top:1px solid var(--line);}
.partners__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(28px,5vw,64px);}
.partners__row a{filter:grayscale(1) brightness(.9) contrast(.9);opacity:.62;transition:.3s;}
.partners__row a:hover{filter:none;opacity:1;}
.partners__row img{height:clamp(40px,6vw,62px);width:auto;object-fit:contain;}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);background:var(--ink-2);}
.foot__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,5vw,64px);padding:clamp(48px,7vw,84px) 0;}
.foot__brand{display:flex;flex-direction:column;gap:16px;}
.foot__brand .row{display:flex;align-items:center;gap:12px;}
.foot__brand img{width:44px;height:44px;}
.foot__brand b{font-family:var(--f-head);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:15px;}
.foot__brand .motto{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;}
.foot__brand p{color:var(--muted);font-size:14.5px;max-width:38ch;}
.foot__col h4{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.foot__col a,.foot__col span{display:block;font-family:var(--f-head);font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:16px;color:var(--bone-dim);padding:7px 0;transition:color .2s ease;}
.foot__col a:hover{color:var(--gold);}
.foot__col .cred{font-family:var(--f-mono);font-weight:400;text-transform:none;letter-spacing:.06em;font-size:13px;color:var(--muted);}
.foot__bar{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
@media(max-width:820px){.foot__top{grid-template-columns:1fr;gap:36px;}}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.1s;}
.reveal[data-delay="2"]{transition-delay:.2s;}
.reveal[data-delay="3"]{transition-delay:.3s;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;}
  .hero__scroll .line{animation:none;}
  .hero__media img,.phead__media img{animation:none!important;}
}

/* ---------- course cards (rendered by site.js) ---------- */
.course-error{color:var(--muted);font-family:var(--f-mono);font-size:14px;padding:40px 0;letter-spacing:.06em;}
#course-list{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.course{display:grid;grid-template-columns:1fr 1fr;}
.course:nth-child(even) .course__media{order:2;}
.course__media{position:relative;min-height:clamp(280px,36vw,500px);overflow:hidden;background:var(--ink-2);}
.course__media>img:first-child{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.82);transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease;}
.course:hover .course__media>img:first-child{transform:scale(1.05);filter:grayscale(0) brightness(.9);}
.course__flag{position:absolute;bottom:16px;right:16px;width:auto;height:36px;object-fit:contain;filter:none!important;opacity:.88;}
.course__status{position:absolute;top:16px;left:16px;font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:6px 10px;border:1px solid transparent;}
.course__status.is-open{color:#7fc47f;border-color:#7fc47f;background:rgba(8,8,6,.7);}
.course__status.is-soon{color:var(--gold);border-color:var(--gold);background:rgba(8,8,6,.7);}
.course__status.is-few{color:#e8a84c;border-color:#e8a84c;background:rgba(8,8,6,.7);}
.course__status.is-full{color:var(--muted);border-color:var(--line);background:rgba(8,8,6,.7);}
.course__body{display:flex;flex-direction:column;gap:10px;padding:clamp(28px,4.5vw,60px);border-left:1px solid var(--line);justify-content:center;border-bottom:1px solid var(--line);}
.course:nth-child(even) .course__body{border-left:0;border-right:1px solid var(--line);}
.course__media{border-bottom:1px solid var(--line);}
.course__no{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;color:var(--muted);}
.course__season{font-family:var(--f-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--green-bright);}
.course__title{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(26px,4vw,48px);line-height:.94;letter-spacing:-.005em;margin-top:4px;}
.course__subtitle{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:2px;}
.course__meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;border-top:1px solid var(--line);padding-top:16px;margin-top:8px;}
.course__meta dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.course__meta dd{font-family:var(--f-body);font-size:15px;color:var(--bone-dim);font-weight:500;}
.course__desc{color:var(--muted);font-size:15px;line-height:1.58;margin-top:6px;max-width:52ch;}
.course__foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;border-top:1px solid var(--line);padding-top:18px;}
.course__info{font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:inline-flex;gap:8px;align-items:center;transition:color .2s;}
.course__info:hover{color:var(--gold-bright);}
.course__disabled{opacity:.45;cursor:not-allowed;pointer-events:none;}
@media(max-width:820px){
  .course{grid-template-columns:1fr;}
  .course:nth-child(even) .course__media{order:0;}
  .course__body,.course:nth-child(even) .course__body{border-left:0;border-right:0;}
  .course__meta{grid-template-columns:1fr;}
}

/* ---------- filter tabs (courses page) ---------- */
.tabs{display:flex;gap:0;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:0;}
.tab{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:14px 22px;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;transition:.2s;margin-bottom:-1px;}
.tab:hover{color:var(--bone);}
.tab.is-active{color:var(--gold);border-bottom-color:var(--gold);}
@media(max-width:640px){.tab{padding:12px 14px;font-size:11px;}}

/* ---------- gear / checklist ---------- */
.checklist{list-style:none;display:flex;flex-direction:column;gap:0;}
.checklist li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;color:var(--bone-dim);}
.checklist li:first-child{border-top:1px solid var(--line);}
.checklist li .ico{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--gold);flex:none;width:24px;}
.checklist li .ico.red{color:var(--crimson);}
.checklist li .ico.green{color:#7fc47f;}
.checklist li .label{flex:1;}
.checklist li .note{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);flex:none;text-transform:uppercase;}

/* ---------- page header (interior pages) ---------- */
.phead{position:relative;min-height:72svh;display:flex;align-items:flex-end;overflow:hidden;}
.phead__media,.phead__media video,.phead__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.phead__media img{animation:heroZoom 20s ease-out forwards;}
.phead__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,6,.6),rgba(8,8,6,.25) 40%,rgba(8,8,6,.95));}
.phead__inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) clamp(40px,7vh,80px);}
.phead h1{margin-top:16px;max-width:18ch;}
.phead__sub{margin-top:20px;max-width:60ch;font-size:clamp(16px,2vw,20px);color:var(--bone-dim);line-height:1.5;}
.phead__cta{margin-top:28px;}
.breadcrumb{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}

/* ---------- accessibility: focus styles ---------- */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.btn:focus-visible{outline-offset:4px;}
.nav__links a:focus-visible{outline-offset:6px;}
.tab:focus-visible{outline-offset:2px;}
.nav__burger:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.nav__ig:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* skip-to-content link */
.skip-link{
  position:fixed;top:-100%;left:var(--gutter);z-index:999;
  padding:12px 24px;background:var(--gold);color:var(--ink);
  font-family:var(--f-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  transition:top .2s ease;
}
.skip-link:focus{top:12px;}

/* hidden utility — prevent display:grid/flex from overriding */
[hidden]{display:none!important;}
