/* RCF Design System — Fonts
   NOTE: fvsr.ru's exact webfonts could not be extracted (site CSS not reachable).
   These are close, Cyrillic-complete substitutes:
   - Oswald  → condensed athletic display / big numbers (logo descriptor vibe)
   - Golos Text → clean modern UI/body (ParaType, Russian-designed)
   - JetBrains Mono → data / tabular / code
   Replace with the federation's licensed faces when available. */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&family=Golos+Text:wght@400;600;700&family=JetBrains+Mono:wght@400;700&display=swap');

/* RCF Design System — Colors
   Base surfaces: white & gray (per brand). Accent: Russian tricolor —
   RCF red-orange, RCF azure blue, white. Ink: cold navy from the mono mark. */
:root {
  /* ---- Brand core (sampled from the jubilee logo) ---- */
  --rcf-red: #F5411E;        /* primary red-orange */
  --rcf-red-dark: #D8340F;
  --rcf-red-tint: #FDE7E1;
  --rcf-blue: #0F5FB5;       /* RCF azure */
  --rcf-blue-dark: #0A4A93;
  --rcf-blue-tint: #E3EEF9;
  --rcf-ink: #232F38;        /* cold navy, from monochrome logo */
  --rcf-white: #FFFFFF;

  /* ---- Neutral ramp (cool gray) ---- */
  --gray-0: #FFFFFF;
  --gray-25: #FAFBFC;
  --gray-50: #F4F6F8;
  --gray-100: #EAEDF1;
  --gray-200: #DCE1E6;
  --gray-300: #C4CCD3;
  --gray-400: #9BA6AE;
  --gray-500: #6C767E;
  --gray-600: #4B555C;
  --gray-700: #333C43;
  --gray-800: #232F38;
  --gray-900: #141B21;

  /* ---- Semantic status ---- */
  --success: #1E9E5A;
  --success-tint: #E4F4EB;
  --warning: #E8A400;
  --warning-tint: #FCF1D6;
  --danger: #D8340F;
  --danger-tint: #FBE5DF;
  --info: var(--rcf-blue);
  --info-tint: var(--rcf-blue-tint);

  /* ---- Discipline accents (used across fvsr.ru sections) ---- */
  --disc-road: #F5411E;      /* Шоссе */
  --disc-mtb: #1E9E5A;       /* Маунтинбайк */
  --disc-bmx: #E8A400;       /* BMX */
  --disc-track: #0F5FB5;     /* Трек */

  /* ---- Semantic aliases ---- */
  --text-strong: var(--gray-900);
  --text-body: var(--gray-800);
  --text-muted: var(--gray-500);
  --text-faint: var(--gray-400);
  --text-inverse: #FFFFFF;
  --text-accent: var(--rcf-red);

  --surface-page: var(--gray-50);
  --surface-card: #FFFFFF;
  --surface-sunken: var(--gray-100);
  --surface-ink: var(--rcf-ink);
  --surface-hover: var(--gray-50);

  --border: var(--gray-200);
  --border-strong: var(--gray-300);
  --border-ink: var(--rcf-ink);

  --link: var(--rcf-blue);
  --link-hover: var(--rcf-blue-dark);
  --accent: var(--rcf-red);
  --accent-hover: var(--rcf-red-dark);
  --focus-ring: rgba(15, 95, 181, 0.40);
}

/* RCF Design System — Typography */
:root {
  --font-display: 'Oswald', 'Arial Narrow', 'Helvetica Neue', sans-serif;
  --font-sans: 'Golos Text', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Weights */
  --fw-light: 300;      /* @kind font */
  --fw-regular: 400;    /* @kind font */
  --fw-medium: 500;     /* @kind font */
  --fw-semibold: 600;   /* @kind font */
  --fw-bold: 700;       /* @kind font */
  --fw-extrabold: 800;  /* @kind font */

  /* Type scale */
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 15px;
  --text-md: 17px;
  --text-lg: 20px;
  --text-xl: 24px;
  --text-2xl: 30px;
  --text-3xl: 38px;
  --text-4xl: 48px;
  --text-5xl: 64px;
  --text-6xl: 84px;

  /* Line heights */
  --leading-tight: 1.05;
  --leading-snug: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing — Oswald caps want tracking */
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-wider: 0.08em;
  --tracking-caps: 0.06em;
}

/* Display / heading helpers — condensed, uppercase, athletic */
.rcf-display {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  text-transform: uppercase;
  color: var(--text-strong);
}
.rcf-eyebrow {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-accent);
}
.rcf-body {
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
}
.rcf-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

/* RCF Design System — Spacing, radii, elevation, borders, motion */
:root {
  /* Spacing scale (4px base) */
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* Radii — modern-sport, restrained */
  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  /* Elevation — soft, cool-tinted shadows on white/gray surfaces */
  --shadow-xs: 0 1px 2px rgba(20, 27, 33, 0.06);
  --shadow-sm: 0 1px 3px rgba(20, 27, 33, 0.08), 0 1px 2px rgba(20, 27, 33, 0.06);
  --shadow-md: 0 4px 12px rgba(20, 27, 33, 0.08), 0 2px 4px rgba(20, 27, 33, 0.05);
  --shadow-lg: 0 12px 28px rgba(20, 27, 33, 0.12), 0 4px 8px rgba(20, 27, 33, 0.06);
  --shadow-accent: 0 6px 18px rgba(245, 65, 30, 0.28);

  /* Borders */
  --border-width: 1px;
  --border-width-thick: 2px;

  /* Motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);    /* @kind other */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); /* @kind other */
  --dur-fast: 120ms;   /* @kind other */
  --dur-base: 200ms;   /* @kind other */
  --dur-slow: 320ms;   /* @kind other */

  /* Layout */
  --container-max: 1240px;  /* @kind other */
  --header-height: 72px;    /* @kind other */
}

/* RCF Design System — Base resets & element defaults */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-strong);
}
p { margin: 0; text-wrap: pretty; }
a {
  color: var(--link);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--link-hover); }
::selection { background: var(--rcf-red); color: #fff; }
:focus-visible { outline: 2px solid var(--rcf-blue); outline-offset: 2px; }
img { max-width: 100%; display: block; }
hr { border: none; border-top: 1px solid var(--border); margin: var(--space-6) 0; }
code, kbd, samp { font-family: var(--font-mono); font-size: 0.92em; }

