/* ===== reset ===== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{margin:0;}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
img,svg,video{display:block;max-width:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
a{color:inherit;text-decoration:none;}
table{border-collapse:collapse;width:100%;}
address{font-style:normal;}

/* ===== tokens ===== */
:root{
  --ink-base:#07110F;
  --ink-panel:#0E1F1B;
  --pitch-line:#1E4A3E;
  --tactical-gray:#7E93A6;
  --chalk:#F2F5F1;
  --mist:#A9B8B2;
  --lime-signal:#C6F03C;
  --lime-soft:#E4FF9A;
  --amber-pulse:#FF7A2F;
  --amber-soft:#FFB27A;

  --hairline:rgba(126,147,166,.24);
  --hairline-strong:rgba(126,147,166,.45);

  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif;
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular","Roboto Mono",Consolas,"Courier New",monospace;

  --fs-12:12px;--fs-14:14px;--fs-16:16px;--fs-20:20px;
  --fs-26:26px;--fs-36:36px;--fs-56:56px;--fs-96:96px;

  --rail-w:208px;
  --header-h:72px;
  --gap-section:96px;
}

/* ===== base ===== */
html{scroll-behavior:smooth;}
body{
  background:var(--ink-base);
  color:var(--chalk);
  font-family:var(--font-sans);
  font-size:var(--fs-16);
  line-height:1.75;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden;}
:focus-visible{outline:2px solid var(--lime-signal);outline-offset:2px;}
::selection{background:var(--lime-signal);color:var(--ink-base);}

/* ===== typography ===== */
.eyebrow{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:var(--fs-12);
  letter-spacing:.18em;color:var(--lime-signal);
}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;}
.data-title{
  display:inline-block;
  font-family:var(--font-sans);font-weight:900;
  font-size:var(--fs-26);line-height:1.25;
  color:var(--chalk);transform:skewX(-3deg);
}
.section__title{
  font-family:var(--font-serif);font-weight:700;
  font-size:var(--fs-36);line-height:1.3;
  letter-spacing:-.01em;color:var(--chalk);
}
.section__note{font-size:var(--fs-14);color:var(--mist);}
.lede{font-size:var(--fs-20);line-height:1.7;color:var(--mist);max-width:34em;}
.prose{max-width:38em;font-size:var(--fs-16);color:var(--chalk);}
.prose p + p{margin-top:1.2em;}
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;}

/* ===== layout ===== */
.page-shell{padding-top:var(--header-h);}
.container{width:100%;max-width:1440px;margin:0 auto;padding:0 24px;}
.section{padding:var(--gap-section) 0;}
.section + .section{border-top:1px solid var(--hairline);}
.section__head{display:flex;flex-direction:column;gap:14px;margin-bottom:56px;}
.stack > * + *{margin-top:16px;}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;}
.col-4{grid-column:span 4;}
.col-5{grid-column:span 5;}
.col-7{grid-column:span 7;}
.col-8{grid-column:span 8;}
.rule{height:1px;border:0;margin:0;background:var(--hairline);}
.court-lines{position:relative;}
.court-lines::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right,rgba(30,74,62,.55) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(30,74,62,.55) 1px,transparent 1px);
  background-size:88px 88px;
  opacity:.55;
}
.court-lines > *{position:relative;z-index:1;}

/* ===== buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 18px;border:1px solid transparent;border-radius:0;
  font-family:var(--font-sans);font-size:var(--fs-14);font-weight:600;
  letter-spacing:.02em;cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn--primary{background:var(--lime-signal);color:var(--ink-base);}
.btn--primary:hover{background:var(--lime-soft);}
.btn--ghost{background:transparent;color:var(--chalk);border-color:var(--hairline-strong);}
.btn--ghost:hover{border-color:var(--lime-signal);color:var(--lime-signal);}

/* ===== tags / panel / cards ===== */
.tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border:1px solid var(--hairline-strong);
  font-family:var(--font-mono);font-size:var(--fs-12);
  letter-spacing:.06em;color:var(--mist);
}
.tag--lime{background:var(--lime-soft);border-color:var(--lime-soft);color:var(--ink-base);}
.tag--amber{border-color:var(--amber-pulse);color:var(--amber-pulse);}
.panel{background:var(--ink-panel);border:1px solid var(--hairline);padding:28px;}
.data-card{
  display:flex;flex-direction:column;gap:12px;
  background:var(--ink-panel);border:1px solid var(--hairline);padding:28px;
}
.data-card__value{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:var(--fs-56);line-height:1;color:var(--lime-signal);
}
.data-card__unit{font-family:var(--font-mono);font-size:var(--fs-14);color:var(--mist);}
.data-card__cap{font-size:var(--fs-12);color:var(--mist);line-height:1.6;}
.season-unit{
  display:grid;grid-template-columns:auto 1fr;gap:8px 20px;
  border:1px solid var(--hairline);border-left:3px solid var(--lime-signal);
  padding:22px 24px;background:var(--ink-panel);
}
.season-unit__index{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--mist);letter-spacing:.1em;}
.season-unit__nums{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-26);color:var(--chalk);}
.season-unit__note{grid-column:1 / -1;font-size:var(--fs-14);color:var(--mist);}

/* ===== media ===== */
.media-frame{
  position:relative;display:block;overflow:hidden;
  background:var(--ink-panel);border:1px solid var(--hairline);
}
.media-frame > img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.7) contrast(1.05) brightness(.94);
}
.media-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(7,17,15,.14),rgba(7,17,15,.46)),
    repeating-linear-gradient(0deg,rgba(198,240,60,.07) 0 1px,transparent 1px 48px);
}
.media-frame--16x9{aspect-ratio:16 / 9;}
.media-frame--4x3{aspect-ratio:4 / 3;}
.media-frame--21x9{aspect-ratio:21 / 9;}
.media-frame--1x1{aspect-ratio:1 / 1;}
.media-frame__caption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px 18px;font-family:var(--font-mono);
  font-size:var(--fs-12);letter-spacing:.04em;color:var(--mist);
  background:linear-gradient(0deg,rgba(7,17,15,.86),rgba(7,17,15,0));
}

/* ===== breadcrumbs ===== */
.breadcrumbs{padding:22px 0;}
.breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--fs-12);color:var(--mist);}
.breadcrumbs__item + .breadcrumbs__item::before{content:"/";margin-right:8px;color:var(--pitch-line);}
.breadcrumbs__item[aria-current="page"]{color:var(--chalk);}

/* ===== tabs ===== */
.tabs__list{
  display:flex;gap:0;overflow-x:auto;
  border-bottom:1px solid var(--hairline);
}
.tabs__tab{
  appearance:none;background:transparent;border:0;
  border-bottom:3px solid transparent;
  padding:12px 18px;white-space:nowrap;cursor:pointer;
  font-family:var(--font-mono);font-size:var(--fs-14);
  letter-spacing:.06em;color:var(--mist);
  transition:color .18s ease,border-color .18s ease;
}
.tabs__tab:hover{color:var(--lime-signal);}
.tabs__tab[aria-selected="true"]{color:var(--chalk);border-bottom-color:var(--lime-signal);}
.tabs__panel{padding-top:28px;}
.tabs__panel[hidden]{display:none;}

/* ===== reveal ===== */
html[data-anim="on"] [data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity .5s ease,transform .5s ease;
}
html[data-anim="on"] [data-reveal][data-revealed="true"]{opacity:1;transform:none;}

/* ===== header ===== */
.skip-link{
  position:absolute;left:16px;top:-72px;z-index:200;
  background:var(--lime-signal);color:var(--ink-base);
  padding:10px 18px;font-size:var(--fs-14);font-weight:600;
  transition:top .18s ease;
}
.skip-link:focus{top:12px;}
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;pointer-events:none;}
.scroll-progress__fill{
  display:block;height:100%;width:100%;
  background:var(--lime-signal);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .1s linear;
}
.header-bar{
  height:var(--header-h);
  background:rgba(7,17,15,.94);
  border-bottom:1px solid var(--hairline);
  transition:height .2s ease;
}
.site-header.is-condensed .header-bar{height:56px;}
.header-bar__inner{
  height:100%;max-width:1600px;margin:0 auto;
  padding:0 24px;display:flex;align-items:center;gap:24px;
}
.brand{display:flex;flex-direction:column;line-height:1.15;}
.brand__word{font-family:var(--font-serif);font-weight:700;font-size:var(--fs-20);letter-spacing:.04em;color:var(--chalk);}
.brand__sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--mist);}
.site-header.is-condensed .brand__sub{display:none;}
.season-chip{
  display:flex;align-items:baseline;gap:10px;margin:0 auto;
  border:1px solid var(--hairline-strong);padding:6px 14px;
}
.season-chip__code{font-family:var(--font-mono);font-size:var(--fs-14);color:var(--lime-signal);letter-spacing:.08em;}
.season-chip__text{font-size:var(--fs-12);color:var(--mist);}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:12px;}
.site-header.is-condensed .header-actions .btn--ghost{display:none;}
.nav-toggle{
  display:none;align-items:center;gap:10px;
  background:transparent;border:1px solid var(--hairline-strong);
  padding:9px 14px;cursor:pointer;
  font-size:var(--fs-12);letter-spacing:.08em;color:var(--chalk);
}
.nav-toggle:hover{border-color:var(--lime-signal);color:var(--lime-signal);}
.nav-toggle__bars{position:relative;display:block;width:18px;height:2px;background:currentColor;}
.nav-toggle__bars::before,
.nav-toggle__bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;}
.nav-toggle__bars::before{top:-6px;}
.nav-toggle__bars::after{top:6px;}
.rail-scrim{display:none;}

/* ===== rail nav ===== */
.rail-nav{
  position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);z-index:40;
  display:flex;flex-direction:column;
  padding:calc(var(--header-h) + 26px) 0 24px;
  background:var(--ink-base);
  border-right:1px solid var(--hairline);
  overflow-y:auto;
  transition:transform .24s ease;
}
.rail-nav__head{
  padding:0 22px 12px;font-family:var(--font-mono);
  font-size:11px;letter-spacing:.16em;color:var(--mist);
}
.rail-nav__list{border-top:1px solid var(--hairline);}
.rail-nav__item{border-bottom:1px solid var(--hairline);}
.rail-nav__link{
  display:flex;align-items:baseline;gap:12px;
  padding:13px 20px 13px 22px;
  border-left:3px solid transparent;
  font-size:var(--fs-14);line-height:1.45;color:var(--mist);
  transition:color .18s ease,background .18s ease,border-color .18s ease;
}
.rail-nav__link:hover{color:var(--chalk);background:rgba(30,74,62,.4);}
.rail-nav__link[aria-current="page"]{
  color:var(--chalk);border-left-color:var(--lime-signal);
  background:rgba(198,240,60,.07);
}
.rail-nav__index{font-family:var(--font-mono);font-size:11px;color:var(--tactical-gray);}
.rail-nav__link[aria-current="page"] .rail-nav__index{color:var(--lime-signal);}
.rail-nav__foot{
  margin-top:auto;padding:24px 22px 0;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--tactical-gray);
}

/* ===== footer ===== */
.site-footer{
  background:var(--ink-base);
  border-top:1px solid var(--hairline-strong);
}
.footer-inner{max-width:1520px;margin:0 auto;padding:0 24px;}
.footer-ticker{border-bottom:1px solid var(--hairline);}
.footer-ticker__text{
  padding:16px 0;font-family:var(--font-mono);
  font-size:var(--fs-12);letter-spacing:.06em;color:var(--lime-signal);
}
.footer-body{
  display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2.6fr);
  gap:56px;padding:64px 0;
}
.footer-brand__word{font-family:var(--font-serif);font-weight:700;font-size:var(--fs-26);letter-spacing:.03em;color:var(--chalk);}
.footer-brand__sub{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.1em;color:var(--mist);margin-top:8px;}
.footer-brand__meta{font-size:var(--fs-14);color:var(--tactical-gray);margin-top:18px;}
.footer-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;}
.footer-col__title{
  font-family:var(--font-mono);font-size:var(--fs-12);
  letter-spacing:.16em;color:var(--mist);
  padding-bottom:12px;margin-bottom:14px;
  border-bottom:1px solid var(--hairline);
}
.footer-col__list li{font-size:var(--fs-14);line-height:1.9;color:var(--mist);}
.footer-col__list a{color:var(--mist);transition:color .18s ease;}
.footer-col__list a:hover{color:var(--lime-signal);}
.footer-col--contact .footer-col__list li{line-height:1.75;padding-bottom:8px;}
.footer-base{
  display:flex;flex-wrap:wrap;gap:12px 32px;
  justify-content:space-between;align-items:center;
  padding:20px 0 28px;border-top:1px solid var(--hairline);
}
.footer-base__note{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.06em;color:var(--tactical-gray);}

/* ===== responsive ===== */
@media (min-width:1024px){
  .page-shell{padding-left:var(--rail-w);}
  .site-footer{padding-left:var(--rail-w);}
}
@media (max-width:1200px){
  .footer-cols{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:1023px){
  :root{--header-h:60px;--gap-section:64px;}
  .rail-nav{
    width:min(84vw,320px);
    padding-top:76px;
    border-right:1px solid var(--pitch-line);
    transform:translateX(-100%);
    z-index:80;
  }
  .rail-nav[data-open="true"]{transform:translateX(0);}
  .rail-nav__head{color:var(--lime-signal);}
  .rail-nav__link{padding:15px 22px;font-size:var(--fs-16);}
  .rail-scrim{
    display:block;position:fixed;inset:0;z-index:70;
    background:rgba(7,17,15,.76);
  }
  .rail-scrim[hidden]{display:none;}
  .nav-toggle{display:inline-flex;}
  .site-header.is-condensed .brand__sub{display:none;}
  .season-chip{margin-left:auto;}
  .header-actions{margin-left:0;}
  .footer-body{grid-template-columns:1fr;gap:40px;padding:48px 0;}
}
@media (max-width:900px){
  .grid-12{grid-template-columns:repeat(6,minmax(0,1fr));}
  .col-4,.col-5,.col-7,.col-8{grid-column:1 / -1;}
  .section__title{font-size:var(--fs-26);}
  .data-card__value{font-size:var(--fs-36);}
}
@media (max-width:760px){
  .header-actions .btn{display:none;}
  .season-chip__text{display:none;}
  .footer-cols{grid-template-columns:1fr;}
}

/* ===== motion preferences ===== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  html[data-anim="on"] [data-reveal]{opacity:1;transform:none;}
  .scroll-progress__fill{transition:none;}
}
