/* X-15 Class: official racing imagery, clear rules, and a local way into the sport. */
.x15-home, .x15-page { --x15-ink:#102d3a; --x15-sea:#145f72; --x15-paper:#f2f6f7; color:var(--x15-ink); }
.x15-home { padding:0 20px 80px; }
.x15-home-inner { max-width:1560px; margin:auto; display:grid; grid-template-columns:.85fr 1.15fr; background:var(--x15-ink); color:#fff; }
.x15-home-copy { padding:clamp(32px,4.5vw,72px); align-self:center; }
.x15-wordmark { width:190px; height:auto; margin-bottom:30px; }
.x15-eyebrow { font:700 .8125rem/1.6 var(--font-head); letter-spacing:.13em; text-transform:uppercase; }
.x15-home .x15-eyebrow { color:#b7d9e2; margin-bottom:12px; }
.x15-home h2 { color:#fff; font-size:clamp(2rem,3vw,3.5rem); line-height:1.3; letter-spacing:-.05em; margin-bottom:18px; word-break:keep-all; }
.x15-home-copy > p:not(.x15-eyebrow) { color:#e0ebef; max-width:32rem; line-height:1.85; }
.x15-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; margin-top:28px; }
.x15-primary, .x15-secondary { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 22px; font-weight:700; font-size:1rem; }
.x15-primary { background:var(--red-deep); color:#fff; border:1px solid var(--red-deep); }
.x15-primary:hover { background:#a9241f; border-color:#a9241f; }
.x15-secondary { color:inherit; border:1px solid currentColor; }
.x15-secondary:hover { text-decoration:underline; text-underline-offset:5px; }
.x15-home-image { margin:0; min-height:420px; position:relative; }
.x15-home-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.x15-home-image figcaption { position:absolute; bottom:0; left:0; right:0; color:white; font-size:.8125rem; padding:30px 22px 14px; background:linear-gradient(transparent,#08212bbf); }
.x15-page h1, .x15-page h2, .x15-page h3 { color:var(--x15-ink); word-break:keep-all; }
.x15-page p { word-break:keep-all; overflow-wrap:anywhere; }
.x15-wrap { max-width:1280px; margin-inline:auto; padding-inline:28px; }
.x15-hero { position:relative; isolation:isolate; display:flex; align-items:center; min-height:660px; min-height:clamp(660px,76svh,860px); overflow:hidden; background:var(--x15-ink); }
.x15-hero-media { position:absolute; inset:0; z-index:-2; }
.x15-hero-poster,.x15-hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.x15-hero-video { opacity:0; transition:opacity .6s ease; }
.x15-hero-video.is-ready { opacity:1; }
.x15-hero::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(5,25,35,.88) 0%,rgba(5,25,35,.74) 32%,rgba(5,25,35,.3) 67%,rgba(5,25,35,.12) 100%),linear-gradient(0deg,rgba(5,25,35,.42),transparent 25%); }
.x15-hero-copy { position:relative; width:min(100%,820px); padding:64px clamp(28px,5vw,96px) 100px; }
.x15-hero .x15-wordmark { width:210px; margin-bottom:35px; }
.x15-hero .x15-eyebrow { color:#d7edf3; }
.x15-hero h1 { font-size:clamp(2.7rem,4vw,4.5rem); line-height:1.18; letter-spacing:-.055em; color:#fff; margin:18px 0 24px; }
.x15-hero-copy > p:not(.x15-eyebrow) { color:#fff; line-height:1.9; max-width:33rem; text-shadow:0 1px 8px #051923; }
.x15-hero .x15-actions { color:#fff; }
.x15-hero .x15-secondary { background:#071f2b66; }
.x15-hero-controls { position:absolute; right:28px; bottom:22px; left:28px; display:flex; justify-content:flex-end; align-items:center; gap:12px 20px; flex-wrap:wrap; color:#fff; font-size:.8125rem; }
.x15-hero-controls a { color:#fff; text-shadow:0 1px 5px #051923; padding-block:8px; }
.x15-hero-controls button { color:#fff; background:#071f2bcc; border:1px solid #ffffff80; min-height:44px; padding:9px 16px; font:inherit; cursor:pointer; }
.x15-hero-controls button:hover { background:#102d3a; }
.x15-hero-controls [hidden] { display:none; }
.x15-jumpnav { border-bottom:1px solid #dce5e9; background:#fff; }
.x15-jumpnav .x15-wrap { display:flex; gap:12px 32px; flex-wrap:wrap; padding-block:14px; }
.x15-jumpnav a { min-height:36px; display:inline-flex; align-items:center; font-weight:700; font-size:.9375rem; color:var(--x15-ink); }
.x15-jumpnav a:hover { color:var(--red-deep); text-decoration:underline; text-underline-offset:6px; }
.x15-section { padding-block:82px; }
.x15-section + .x15-section { border-top:1px solid #dce5e9; }
.x15-section h2 { font-size:clamp(1.8rem,2.6vw,2.65rem); line-height:1.4; letter-spacing:-.045em; margin:10px 0 22px; }
.x15-section .x15-eyebrow { color:var(--x15-sea); }
.x15-origin { background:linear-gradient(180deg,#f2f6f7,#fff 440px); }
.x15-origin-column { max-width:850px; }
.x15-origin-column > .x15-eyebrow { color:var(--red-deep); }
.x15-origin-headline { font:700 clamp(1.25rem,2vw,1.65rem)/1.6 var(--font-head); margin:0 0 18px; }
.x15-origin-intro { font-size:1.0625rem; line-height:1.95; color:#465f6b; }
.x15-origin-photo { max-width:512px; margin:38px auto 46px; }
.x15-origin-photo img { display:block; width:100%; height:auto; object-fit:contain; }
.x15-origin-photo figcaption { margin-top:12px; color:#526875; font-size:.8125rem; line-height:1.7; }
.x15-origin-chapter { border-top:1px solid #dce5e9; padding-top:28px; margin-top:32px; }
.x15-origin-chapter .x15-eyebrow { color:var(--red-deep); margin-bottom:8px; }
.x15-origin-chapter h3 { font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.5; margin:0 0 18px; letter-spacing:-.035em; }
.x15-origin-chapter p:not(.x15-eyebrow) { line-height:1.95; margin:0 0 14px; }
.x15-origin-chapter strong { color:var(--x15-sea); }
.x15-origin-source { border-left:3px solid var(--red-deep); padding:18px 22px; margin-top:36px; background:var(--x15-paper); font-size:.875rem; line-height:1.85; }
.x15-origin-source p { margin:0 0 8px; color:#526875; }
.x15-origin-source a { color:var(--x15-sea); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.x15-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; }
.x15-intro-copy { padding-top:6px; }
.x15-intro-copy > p { line-height:1.95; margin-bottom:18px; }
.x15-note { color:#526875; font-size:.875rem; line-height:1.8; }
.x15-note a, .x15-source a { color:var(--x15-sea); text-decoration:underline; text-underline-offset:3px; }
.x15-proof { padding:22px 0; border-top:2px solid var(--x15-ink); display:flex; gap:18px; align-items:baseline; }
.x15-proof strong { font:800 2rem/1 var(--font-head); }
.x15-proof span { font-size:.9375rem; }
.x15-race-steps { counter-reset:race; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:30px 0 0; padding:0; list-style:none; }
.x15-race-photo { margin:30px 0; }
.x15-race-photo img { width:100%; height:auto; max-height:490px; object-fit:cover; }
.x15-race-photo figcaption { color:#526875; font-size:.8125rem; padding-top:10px; }
.x15-race-note { margin-top:26px; }
.x15-race-steps li { counter-increment:race; padding-top:22px; border-top:2px solid #c9d9df; }
.x15-race-steps li::before { content:'0' counter(race); font:800 1.15rem/1 var(--font-head); color:var(--x15-sea); }
.x15-race-steps h3 { font-size:1.25rem; margin:12px 0; }
.x15-race-steps p { line-height:1.85; color:#465f6b; }
.x15-equipment { background:var(--x15-paper); }
.x15-gear-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:32px 0 24px; }
.x15-gear { background:#fff; padding:24px 24px 28px; display:flex; flex-direction:column; }
.x15-gear img { width:100%; height:230px; object-fit:contain; margin-bottom:20px; }
.x15-gear .x15-eyebrow { font-size:.8125rem; }
.x15-gear h3 { font-size:1.4rem; margin:6px 0 12px; }
.x15-gear p { color:#465f6b; line-height:1.85; margin-bottom:20px; }
.x15-gear-links { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:auto; }
.x15-gear-links a, .x15-text-link { color:var(--x15-sea); font-weight:700; padding-block:8px; text-decoration:underline; text-underline-offset:5px; }
.x15-section-header { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.x15-section-header .x15-actions { margin:0 0 22px; }
.x15-rule-summary { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-block:30px; }
.x15-rule-summary article { border-left:3px solid var(--x15-sea); padding:5px 20px; }
.x15-rule-summary h3 { font-size:1.125rem; margin-bottom:8px; }
.x15-rule-summary p { line-height:1.85; }
.x15-table-wrap { overflow-x:auto; border:1px solid #d8e2e7; margin:24px 0 16px; }
.x15-table { width:100%; border-collapse:collapse; font-size:.9375rem; }
.x15-table caption { text-align:left; font-size:1.125rem; font-weight:700; padding:20px; background:var(--x15-paper); color:var(--x15-ink); }
.x15-table th, .x15-table td { text-align:left; vertical-align:top; padding:15px 20px; border-top:1px solid #d8e2e7; }
.x15-table thead th { background:var(--x15-ink); color:white; border-color:var(--x15-ink); }
.x15-table tbody th { white-space:nowrap; font-weight:700; }
.x15-table tbody tr:nth-child(even) { background:#f6f9fa; }
.x15-rules-details { margin-top:28px; border-top:1px solid #d8e2e7; }
.x15-rules-details details { border-bottom:1px solid #d8e2e7; padding-block:18px; }
.x15-rules-details summary { cursor:pointer; font-size:1.0625rem; font-weight:700; color:var(--x15-ink); padding:7px 0; }
.x15-rules-details details p { margin:14px 0 0; max-width:64rem; line-height:1.9; }
.x15-news { background:var(--x15-paper); }
.x15-news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:24px; }
.x15-news-card { border-top:3px solid var(--x15-ink); padding:24px 0; }
.x15-news-card a { display:block; height:100%; color:var(--x15-ink); }
.x15-news-card time { color:#526875; font-size:.875rem; }
.x15-news-card h3 { margin:16px 0 14px; line-height:1.5; font-size:1.4rem; }
.x15-news-card p { font-size:.9375rem; line-height:1.9; color:#465f6b; }
.x15-news-card span { display:block; color:var(--x15-sea); font-weight:700; margin-top:24px; }
.x15-news-card a:hover h3 { text-decoration:underline; text-underline-offset:5px; }
.x15-korea { display:grid; grid-template-columns:.78fr 1.22fr; gap:64px; align-items:center; }
.x15-korea-photo { aspect-ratio:4/3; width:100%; object-fit:cover; object-position:50% 35%; }
.x15-korea p + p { margin-top:18px; }
.x15-legacy { background:var(--x15-ink); color:#e0ecf0; }
.x15-legacy h2, .x15-legacy h3 { color:white; }
.x15-legacy .x15-eyebrow { color:#bedce3; }
.x15-legacy-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:30px; }
.x15-legacy-grid article { border-top:1px solid #5a7683; padding-top:26px; }
.x15-legacy-grid h3 { font:800 1.75rem/1.3 var(--font-head); margin-bottom:14px; }
.x15-legacy-grid p { line-height:1.9; }
.x15-legacy .x15-note { color:#bdd0d9; margin-top:25px; }
.x15-legacy a { color:#fff; }
.x15-source { padding-block:28px; font-size:.875rem; color:#526875; }
.x15-source-links { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:12px; }
@media(max-width:900px) {
  .x15-home-inner { grid-template-columns:1fr; }
  .x15-home { padding:0 20px 52px; }
  .x15-home-image { min-height:340px; }
  .x15-hero-copy { padding:56px 28px 100px; }
  .x15-hero::after { background:linear-gradient(90deg,rgba(5,25,35,.82),rgba(5,25,35,.6)),linear-gradient(0deg,rgba(5,25,35,.42),transparent 35%); }
  .x15-intro { grid-template-columns:1fr; gap:12px; }
  .x15-section { padding-block:54px; }
  .x15-gear-grid { gap:14px; }
  .x15-gear { padding:18px; }
  .x15-gear img { height:165px; }
  .x15-korea { gap:28px; }
}
@media(max-width:620px) {
  .x15-wrap { padding-inline:20px; }
  .x15-home { padding-inline:0; }
  .x15-home-copy { padding:35px 24px; }
  .x15-home-image { min-height:275px; }
  .x15-hero { min-height:680px; min-height:clamp(680px,86svh,820px); }
  .x15-hero-copy { padding:48px 24px 118px; }
  .x15-hero::after { background:linear-gradient(90deg,rgba(5,25,35,.7),rgba(5,25,35,.55)),linear-gradient(0deg,rgba(5,25,35,.75),transparent 65%); }
  .x15-hero-controls { left:24px; right:24px; bottom:20px; justify-content:flex-start; }
  .x15-hero h1 { font-size:2.75rem; }
  .x15-jumpnav .x15-wrap { gap:4px 22px; }
  .x15-gear-grid,.x15-rule-summary,.x15-news-grid,.x15-korea,.x15-legacy-grid,.x15-race-steps { grid-template-columns:1fr; }
  .x15-gear img { height:230px; }
  .x15-race-steps { gap:26px; }
  .x15-rule-summary { gap:26px; }
  .x15-table th,.x15-table td { padding:13px 12px; }
  .x15-table { min-width:480px; }
  .x15-news-grid { gap:4px; }
  .x15-news-card { padding-bottom:32px; }
  .x15-korea-photo { max-height:400px; }
  .x15-actions { gap:12px; }
  .x15-primary,.x15-secondary { padding-inline:18px; }
}
