.season-timeline{position:relative;--season-progress:0%;padding-top:8px}
.season-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:0;position:relative}
.season-step{display:flex;flex-direction:column;gap:24px;padding-right:24px;min-width:0}
.season-step:last-child{padding-right:0}
.season-dot{display:block;flex:none;width:24px;height:24px;border:2px solid #8e9ab3;border-radius:50%;background:#f3f5f9;position:relative;z-index:1;transition:background .2s,border-color .2s,box-shadow .2s}
.season-step-content{display:flex;flex-direction:column;gap:10px}
.season-date{font-size:22px;line-height:1.3;overflow-wrap:normal}
.season-step-title{font-family:Onest,Arial,sans-serif;font-size:18px;font-weight:600;line-height:1.3}
.season-description{color:#4f5a70;font-size:15px;line-height:1.5}
.season-status{align-self:flex-start}
.season-step[data-state="active"] .season-dot{border:6px solid #1e50e6;background:#fff;box-shadow:0 0 0 6px rgba(30,80,230,.15)}
.season-step[data-state="active"] .season-step-title{color:#1e50e6}
.season-step[data-state="active"] .season-status{color:#07122b;background:#c8f53c;border-color:#c8f53c}
.season-step[data-state="done"] .season-dot{background:#1e50e6;border-color:#1e50e6}
.season-step[data-state="done"] .season-status{color:#1638b0;background:#e8eeff;border-color:#e8eeff}
.season-rail{position:absolute;left:12px;top:19px;width:80%;height:2px;background:repeating-linear-gradient(90deg,#9aa6bf 0 6px,transparent 6px 12px)}
.season-progress{display:block;background:#1e50e6;width:var(--season-progress);height:100%;transition:width .4s}
.season-marker{position:absolute;left:var(--season-progress);top:-24px;width:1px;height:18px;background:#0b1530;transition:left .4s}
.season-marker-label{position:absolute;top:-48px;left:clamp(0px,calc(var(--season-progress) - 82px),calc(100% - 164px));width:164px;text-align:center;font-size:10px;color:#0b1530;background:#c8f53c;padding:3px 6px;border-radius:4px;transition:left .4s}
.season-marker[hidden],.season-marker-label[hidden]{display:none}
.season-mobile-today{display:none}
.season-timeline[data-has-dates="false"] .season-progress{visibility:hidden}
@media(max-width:1279px){
  .season-timeline{padding-top:0}
  .season-mobile-today{display:block;font-size:11px;color:#4f5a70;margin-bottom:26px!important}
  .season-steps{display:flex;flex-direction:column;gap:24px}
  .season-step{flex-direction:row;gap:16px;padding:0}
  .season-dot{width:18px;height:18px;background:#fff}
  .season-step[data-state="active"] .season-dot{border-width:4px;box-shadow:0 0 0 4px rgba(30,80,230,.15)}
  .season-step-content{gap:6px;margin-top:-2px;flex:1;min-width:0}
  .season-date{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.02em;color:#1e50e6;font-weight:500}
  .season-description{font-size:14px}
  .season-status{margin-top:4px}
  .season-rail{left:8px;top:var(--season-rail-top,49px);width:2px;height:var(--season-rail-height,0px);background:#d6dce7}
  .season-progress{width:100%;height:var(--season-vertical-progress,0%);transition:height .4s}
  .season-marker{left:-3px;top:var(--season-vertical-progress,0%);width:8px;height:8px;transform:translateY(-50%) rotate(45deg);background:#c8f53c;border:1px solid #0b1530;z-index:2;transition:top .4s}
  .season-marker-label{display:none}
}
