:root {
  --home-navy: #001141;
  --home-panel: #001d6c;
  --home-blue: #0f62fe;
  --home-blue-deep: #0043ce;
  --home-blue-soft: #78a9ff;
  --home-page: #dce3eb;
  --home-surface: #e8edf2;
  --home-line: #c9d2dc;
  --home-ink: #172332;
  --home-muted: #58697c;
  --home-ease: cubic-bezier(.23, 1, .32, 1);
}

html { background: var(--home-page); scroll-behavior: smooth; }
body.public-home { background: var(--home-page); color: var(--home-ink); font-family: var(--font-ui); }
.public-home main { display: block; overflow: clip; }
.public-home h1,
.public-home h2,
.public-home h3 { margin: 0; font-family: var(--font-score); font-weight: 700; letter-spacing: -.018em; }
.public-home p,
.public-home dl,
.public-home ol { margin-top: 0; }
.public-home-container { width: min(calc(100% - 48px), 1240px); margin-inline: auto; }
.public-home-skip { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 11px 14px; border-radius: 8px; background: #fff; color: var(--home-navy); transform: translateY(-150%); }
.public-home-skip:focus { transform: translateY(0); }
.section-kicker { margin: 0 0 10px; color: var(--home-blue-deep); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.home-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid transparent; border-radius: 8px; font-size: 14px; font-weight: 750; line-height: 1.2; text-align: center; text-decoration: none; transition: color 220ms var(--home-ease), background-color 220ms var(--home-ease), border-color 220ms var(--home-ease), opacity 220ms var(--home-ease); }
.home-button:hover { text-decoration: none; }
.home-button--primary { background: var(--home-blue); color: #fff; }
.home-button--primary:hover { background: var(--home-blue-deep); }
.home-button--light { background: #fff; color: var(--home-navy); }
.home-button--light:hover { background: #dfeaff; }
.home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.home-hero { position: relative; min-height: clamp(600px, 53vw, 730px); isolation: isolate; overflow: hidden; background: var(--home-navy); color: #fff; }
.home-hero__media,
.home-hero__media img,
.home-hero__veil { position: absolute; inset: 0; width: 100%; height: 100%; }
.home-hero__media { overflow: hidden; }
.home-hero__media img { object-fit: cover; object-position: center; transform: scale(1.025); animation: hero-settle 1500ms var(--home-ease) 120ms both; }
.home-hero__veil { z-index: 1; background: linear-gradient(90deg, rgba(0,17,65,.98) 0%, rgba(0,17,65,.9) 34%, rgba(0,17,65,.4) 60%, rgba(0,17,65,.06) 82%), linear-gradient(0deg, rgba(0,17,65,.44), transparent 48%); }
.home-hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: inherit; padding-block: 70px 54px; }
.home-hero h1 { max-width: 780px; margin-bottom: 18px; color: #fff; font-size: clamp(48px, 6.25vw, 84px); line-height: .96; }
.home-hero__lead { max-width: 520px; margin-bottom: 26px; color: #d6e0ef; font-size: clamp(16px, 1.35vw, 18px); line-height: 1.5; }
@keyframes hero-settle { from { transform: scale(1.055); } to { transform: scale(1.025); } }

.season-rail { padding: 72px 0 78px; background: var(--home-surface); }
.season-rail__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 8px; }
.season-rail__heading h2 { color: var(--home-navy); font-size: clamp(38px, 4vw, 56px); line-height: .95; }
.season-rail__controls { display: flex; gap: 4px; }
.season-rail__controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: rgba(0,17,65,.045); transition: background-color 220ms var(--home-ease), opacity 220ms var(--home-ease); }
.season-rail__controls button:hover { background: #d0e2ff; }
.season-rail__controls button:disabled { cursor: default; opacity: .38; }
.season-rail__controls button:focus-visible { outline: 3px solid var(--home-blue); outline-offset: 2px; }
.season-rail__controls img { width: 19px; height: 19px; }
.season-api-state { min-height: 34px; margin-bottom: 18px; }
.season-api-state__inner { display: flex; align-items: center; gap: 9px; min-height: 34px; }
.season-api-state p { margin: 0; color: #647487; font-size: 12px; line-height: 1.35; }
.season-api-state__indicator { flex: none; width: 7px; height: 7px; border: 2px solid #8090a2; border-radius: 50%; opacity: .75; }
.season-api-state[data-season-state="loading"] .season-api-state__indicator { animation: home-state-pulse 1.2s ease-in-out infinite; }
.season-api-state[data-season-state="success"] .season-api-state__indicator { border-color: #26745f; background: #26745f; }
.season-api-state[data-season-state="empty"] .season-api-state__indicator { border-color: #6a7b8e; background: #6a7b8e; }
.season-api-state[data-season-state="error"] .season-api-state__indicator { border-color: #9a3f50; background: #9a3f50; }
.season-api-state button { margin-left: 4px; min-height: 32px; padding: 5px 10px; border: 0; border-radius: 8px; background: rgba(88,105,124,.1); color: var(--home-ink); font-size: 12px; font-weight: 700; transition: background-color 220ms var(--home-ease), color 220ms var(--home-ease); }
.season-api-state button:hover { background: #d0e2ff; color: var(--home-navy); }
@keyframes home-state-pulse { 50% { opacity: .2; } }
.season-rail__viewport { width: 100%; min-height: 360px; overflow: hidden; outline: none; touch-action: pan-y; cursor: grab; }
.season-rail.is-empty .season-rail__viewport { min-height: 0; }
.season-rail__viewport:focus-visible { box-shadow: inset 0 0 0 3px var(--home-blue); }
.season-rail__viewport.is-dragging { user-select: none; cursor: grabbing; }
.season-rail__viewport.is-dragging .season-card { cursor: grabbing; }
.season-rail__track { display: flex; width: max-content; animation: season-showcase 46s linear infinite; will-change: transform; }
.season-rail.is-motion-paused .season-rail__track,
.season-rail.is-interacting .season-rail__track { animation-play-state: paused; }
.season-rail.is-empty .season-rail__track { animation: none; }
.season-rail__list { display: flex; flex: none; gap: 18px; margin: 0; padding: 0 9px; list-style: none; }
.season-card { position: relative; display: flex; flex-direction: column; width: clamp(320px, 28vw, 410px); min-height: 360px; padding: 28px 30px 26px; overflow: hidden; border-radius: 8px; background-color: var(--home-panel); background-position: center; background-size: cover; background-repeat: no-repeat; background-blend-mode: luminosity; color: #fff; text-decoration: none; isolation: isolate; }
.season-card:hover { color: #fff; text-decoration: none; }
.season-card:focus-visible { outline: 3px solid var(--home-blue); outline-offset: -4px; }
.season-card::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(0,17,65,.32), rgba(0,17,65,.58) 46%, rgba(0,17,65,.98)); transition: background-color 220ms var(--home-ease); }
.season-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(15,98,254,0); transition: background-color 220ms var(--home-ease); }
.season-card--image-1 { background-image: url('/assets/images/season-stage-01-d112.webp'); background-position: 52% center; }
.season-card--image-2 { background-image: url('/assets/images/season-stage-02-d112.webp'); background-position: 50% center; }
.season-card--image-3 { background-image: url('/assets/images/season-stage-03-d112.webp'); background-position: 46% center; }
.season-card--image-4 { background-image: url('/assets/images/season-stage-04-d112.webp'); background-position: 35% center; }
.season-card--image-5 { background-image: url('/assets/images/season-stage-05-d112.webp'); background-position: 60% center; }
.season-card--enhanced::after { background: rgba(15,98,254,.16); }
.season-card__number { display: flex; align-items: flex-start; justify-content: space-between; color: #fff; }
.season-card__number span { padding-top: 6px; color: #d6e2f4; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.season-card__number strong { color: #fff; font: 700 72px/.8 var(--font-score); letter-spacing: -.055em; }
.season-card__body { margin-top: auto; }
.season-card__demo { margin: 0 0 10px; color: #a1c3c8; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.season-card h3 { max-width: 330px; color: #fff; font-size: clamp(28px, 2.4vw, 35px); line-height: .98; text-wrap: balance; }
.season-card__date { margin: 13px 0 0; color: #dce8f7; font-size: 14px; font-weight: 650; }
.season-card__status { display: flex; align-items: center; gap: 8px; margin: 22px 0 0; color: #b8c8dc; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.season-card__status::before { content: ""; flex: none; width: 5px; height: 5px; border-radius: 50%; background: #a1c3c8; }
@keyframes season-showcase { to { transform: translate3d(calc(-1 * var(--season-loop-width, 50%)), 0, 0); } }

.season-guide { padding: 88px 0; background: var(--home-page); }
.season-guide__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, 1.25fr); gap: clamp(52px, 8vw, 116px); align-items: end; }
.season-guide__intro h2 { max-width: 560px; color: var(--home-navy); font-size: clamp(42px, 5vw, 68px); line-height: .96; }
.season-guide__intro > p:last-child { max-width: 560px; margin: 22px 0 0; color: var(--home-muted); font-size: 16px; line-height: 1.65; }
.season-guide__facts { margin: 0; }
.season-guide__facts > div { display: grid; grid-template-columns: 110px 1fr; gap: 22px; align-items: center; min-height: 112px; padding: 20px 0; border-top: 1px solid var(--home-line); }
.season-guide__facts > div:last-child { border-bottom: 1px solid var(--home-line); }
.season-guide__facts dt { color: var(--home-muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.season-guide__facts dd { display: grid; grid-template-columns: 72px 1fr; gap: 18px; align-items: center; margin: 0; color: var(--home-ink); }
.season-guide__facts strong { color: var(--home-navy); font: 700 58px/.9 var(--font-score); }
.season-guide__facts span { font-size: 14px; line-height: 1.5; }

.next-tournament { background: var(--home-panel); color: #fff; }
.next-tournament__layout { display: flex; align-items: center; justify-content: space-between; gap: 42px; min-height: 230px; padding-block: 54px; }
.next-tournament__copy { max-width: 760px; }
.next-tournament h2 { margin-bottom: 10px; color: #fff; font-size: clamp(34px, 4.1vw, 56px); line-height: 1.02; }
.next-tournament__copy p { margin: 0; color: #b8c7de; font-size: 15px; line-height: 1.5; }
.next-tournament .home-button { flex: none; }

.rating-system { padding: 84px 0 66px; background: var(--home-navy); color: #fff; }
.section-title { margin-bottom: 30px; }
.section-title h2 { color: #fff; font-size: clamp(38px, 4.5vw, 60px); line-height: 1; }
.rating-system__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rating-card { border-radius: 8px; background: rgba(120,169,255,.08); }
.rating-card--enhanced { background: rgba(15,98,254,.16); }
.rating-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 24px 28px 12px; }
.rating-card header h3 { color: #fff; font-size: 22px; }
.rating-card header p { margin: 0; color: var(--home-blue-soft); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.rating-card__rows { display: grid; gap: 3px; margin: 0; padding: 12px 28px 24px; }
.rating-card__rows > div { display: grid; grid-template-columns: 96px 1fr; align-items: center; min-height: 43px; }
.rating-card__rows dt { color: #d9e3f1; font-size: 13px; }
.rating-card__rows dd { display: grid; grid-template-columns: 1fr 38px; align-items: center; gap: 12px; margin: 0; }
.rating-card__rows b { color: #fff; font: 700 14px/1 var(--font-score); text-align: right; font-variant-numeric: tabular-nums; }
.rating-bar { position: relative; display: block; width: 100%; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(208,226,255,.11); }
.rating-bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--rating-width); border-radius: inherit; background: var(--home-blue-soft); transform: scaleX(0); transform-origin: left; transition: transform 900ms var(--home-ease); }
.rating-card.is-visible .rating-bar::after { transform: scaleX(1); }
.rating-bar--150 { --rating-width: 100%; }
.rating-bar--120 { --rating-width: 80%; }
.rating-bar--100 { --rating-width: 66.666%; }
.rating-bar--80 { --rating-width: 53.333%; }
.rating-bar--65 { --rating-width: 43.333%; }
.rating-bar--50 { --rating-width: 33.333%; }
.rating-bar--40 { --rating-width: 26.666%; }
.rating-bar--15 { --rating-width: 10%; }
.rating-bar--10 { --rating-width: 6.666%; }

.about-league { display: grid; grid-template-columns: 1fr 1fr; min-height: 540px; background: var(--home-panel); color: #fff; }
.about-league__media { position: relative; min-height: 470px; overflow: hidden; }
.about-league__media picture { display: block; width: 100%; height: 100%; }
.about-league__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: none; transition: transform 1100ms var(--home-ease); }
.about-league__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,29,108,.16), rgba(0,29,108,.22) 66%, var(--home-panel)); }
.about-league__media.is-visible img { transform: scale(1.025); }
.about-league__copy { display: flex; flex-direction: column; justify-content: center; max-width: 640px; padding: 64px clamp(32px, 6vw, 92px); }
.about-league h2 { margin-bottom: 18px; color: #fff; font-size: clamp(40px, 4.6vw, 62px); line-height: 1; }
.about-league__copy p { margin: 0; color: #c8d4e6; font-size: 17px; line-height: 1.5; }


.home-footer { padding: 40px 0 28px; background: var(--carbon-blue-100); color: #d9e3f1; }
.home-footer__grid { display: grid; grid-template-columns: 230px 1fr; gap: 42px; align-items: center; }
.home-footer__brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; font: 700 16px/1 var(--font-score); text-decoration: none; }
.home-footer__brand img { width: 44px; height: 44px; object-fit: contain; }
.home-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px 24px; }
.home-footer nav a { color: #d9e3f1; font-size: 13px; text-decoration: none; transition: color 220ms var(--home-ease), opacity 220ms var(--home-ease); }
.home-footer nav a:hover { color: #fff; }
.home-footer__bottom { margin-top: 22px; color: #8395b1; font-size: 11px; }

.reveal-ready [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 680ms var(--home-ease), transform 680ms var(--home-ease); }
.reveal-ready [data-reveal][data-reveal-delay="1"] { transition-delay: 70ms; }
.reveal-ready [data-reveal][data-reveal-delay="2"] { transition-delay: 140ms; }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (hover: hover) and (pointer: fine) {
  .season-card:hover::after { background: rgba(15,98,254,.24); }
}

@media (max-width: 1000px) {
  .home-hero__veil { background: linear-gradient(90deg, rgba(0,17,65,.98) 0%, rgba(0,17,65,.86) 50%, rgba(0,17,65,.28) 82%), linear-gradient(0deg, rgba(0,17,65,.48), transparent 50%); }
  .season-guide__layout { grid-template-columns: 1fr; gap: 46px; }
  .about-league__copy { padding-inline: 48px; }
}

@media (max-width: 900px) {
  .about-league { grid-template-columns: 1fr; min-height: 0; }
  .about-league__media { min-height: 0; aspect-ratio: 4 / 3; }
  .about-league__media::after { background: linear-gradient(0deg, var(--home-panel), rgba(0,29,108,.18) 30%, rgba(0,29,108,.2)); }
  .about-league__copy { max-width: none; padding: 50px 24px 56px; }
}

@media (max-width: 720px) {
  .public-home .global-site-header .brand span { display: inline; }
  .public-home-container { width: min(calc(100% - 32px), 1240px); }
  .home-hero { min-height: 650px; }
  .home-hero__media img { object-position: center; }
  .home-hero__veil { background: linear-gradient(180deg, rgba(0,17,65,.72) 0%, rgba(0,17,65,.12) 32%, rgba(0,17,65,.4) 54%, rgba(0,17,65,.98) 80%), linear-gradient(90deg, rgba(0,17,65,.72), rgba(0,17,65,.04)); }
  .home-hero__content { justify-content: flex-end; padding-block: 48px 72px; }
  .home-hero h1 { max-width: 520px; font-size: clamp(40px, 11vw, 58px); }
  .home-hero__lead { font-size: 15px; }
  .season-rail { padding-block: 58px 64px; }
  .season-rail__heading { align-items: center; }
  .season-rail__heading h2 { font-size: 40px; }
  .season-rail__controls button { width: 40px; height: 40px; }
  .season-api-state { min-height: 40px; }
  .season-api-state__inner { min-height: 40px; }
  .season-rail__viewport { min-height: 350px; }
  .season-rail.is-empty .season-rail__viewport { min-height: 0; }
  .season-rail__list { gap: 14px; padding-inline: 8px; }
  .season-card { width: min(84vw, 340px); min-height: 350px; padding: 24px; }
  .season-card__number strong { font-size: 64px; }
  .season-card h3 { font-size: 29px; }
  .season-guide { padding-block: 70px; }
  .season-guide__facts > div { grid-template-columns: 86px 1fr; }
  .next-tournament__layout { min-height: 0; padding-block: 50px; }
  .rating-system { padding-block: 70px 56px; }
  .rating-system__grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .home-actions { display: grid; width: 100%; }
  .home-button { width: 100%; }
  .home-hero h1 { margin-bottom: 14px; line-height: .98; }
  .home-hero__lead { margin-bottom: 20px; }
  .season-rail__heading { gap: 14px; }
  .season-rail__heading .section-kicker { margin-bottom: 6px; }
  .season-rail__heading h2 { font-size: 34px; }
  .season-rail__controls { gap: 2px; }
  .season-rail__controls button { width: 38px; height: 38px; }
  .season-api-state { margin-bottom: 12px; }
  .season-guide__intro h2 { font-size: 44px; }
  .season-guide__facts > div { grid-template-columns: 72px 1fr; gap: 12px; min-height: 104px; }
  .season-guide__facts dd { grid-template-columns: 54px 1fr; gap: 12px; }
  .season-guide__facts strong { font-size: 48px; }
  .next-tournament__layout { align-items: flex-start; flex-direction: column; gap: 24px; }
  .next-tournament h2 { font-size: 38px; }
  .next-tournament .home-button { width: auto; }
  .section-title h2 { font-size: 40px; }
  .rating-card header { padding-inline: 20px; }
  .rating-card__rows { padding-inline: 20px; }
  .rating-card__rows > div { grid-template-columns: 82px 1fr; }
  .rating-card__rows dd { gap: 8px; }
  .home-footer { padding-bottom: 112px; }
  .home-footer__grid { grid-template-columns: 1fr; gap: 26px; }
  .home-footer nav { display: grid; grid-template-columns: 1fr 1fr; justify-content: start; }
}

@media (max-width: 360px) {
  .season-rail__heading { flex-wrap: wrap; }
  .season-rail__controls { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-hero__media img,
  .season-rail__track,
  .season-api-state__indicator { animation: none !important; }
  .season-rail__viewport { overflow-x: auto; scrollbar-width: thin; touch-action: auto; }
  .home-button,
  .season-card::before,
  .season-card::after,
  .season-rail__controls button,
  .season-api-state button,
  .rating-bar::after,
  .about-league__media img,
  .home-footer nav a,
  .reveal-ready [data-reveal] { transition-duration: 1ms !important; transition-delay: 0ms !important; }
  .reveal-ready [data-reveal] { opacity: 1; transform: none; }
  .rating-bar::after { transform: scaleX(1); }
}

/* HOME.PH1: real league photographs selected from the channel album. */
.about-league__media img{object-position:45% center}
@media(min-width:1024px){.home-hero__media{left:30%;width:70%}.home-hero__media img{object-position:50% 50%}}
