/* release 259: "Where is the proof?" on the home page. Two chart cards in the shadcn/ui card style:
   left, every FPL gameweek as a point with the season #1's average as a line; right, Cyrus as candlesticks with the other
   sportsbook models as lines. Light theme only, like the rest of the home page. Text stays in ink; colour is on the marks. */
/* Owner (259): the coverage strip ("12 sportsbooks compared / 28 upcoming games priced") should not be the second thing on
   the page. Its markup stays because the deploy checks read data-home-proof; it is hidden here, on the home page only. */
body.sx .intro-hero [data-home-proof] { display: none !important; }
body.sx .vp-copy p strong { color: #171717; font-weight: 600; }
body.sx .season-proof { padding-block: 48px 8px; }
body.sx .season-proof .sp-head { max-width: 760px; }
body.sx .season-proof .sx-h2 { font-size: clamp(26px, 3.4vw, 38px); margin: 0 0 10px; max-width: 32ch; }
body.sx .season-proof .sp-lede { margin: 0; font-size: clamp(16px, 1.3vw, 18px); line-height: 1.55; color: #525252; max-width: 62ch; }
.season-proof .spc-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.season-proof .spc-card { position: relative; margin: 0; display: flex; flex-direction: column; gap: 18px; padding: 24px; border: 1px solid #e5e5e5; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.05); color: #0a0a0a; }
.season-proof .spc-head { display: grid; gap: 6px; }
.season-proof .spc-title { font-size: 16px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: #0a0a0a; }
.season-proof .spc-desc { font-size: 14px; line-height: 1.4; color: #737373; }
.season-proof .spc-body { position: relative; padding: 22px 84px 40px 46px; }
.season-proof .spc-ylab { position: absolute; left: 4px; top: 0; font-size: 12px; color: #525252; white-space: nowrap; }
.season-proof .spc-xlab { position: absolute; right: 84px; bottom: 0; font-size: 12px; color: #525252; white-space: nowrap; }
.season-proof .spc-plot { position: relative; height: 260px; touch-action: pan-y; cursor: crosshair; }
.season-proof .spc-grid { position: absolute; left: 0; right: 0; height: 0; border-top: 1px solid #f0f0f0; }
.season-proof .spc-grid i { position: absolute; right: calc(100% + 8px); top: -7px; font-size: 12px; font-weight: 400; line-height: 1; font-style: normal; color: #737373; font-variant-numeric: tabular-nums; white-space: nowrap; }
.season-proof .spc-vgrid { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px solid #f5f5f5; }
.season-proof .spc-zero { position: absolute; left: 0; right: 0; height: 0; border-top: 1px solid #d4d4d4; }
.season-proof .spc-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.season-proof .spc-svg polyline, .season-proof .spc-svg line { fill: none; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.season-proof .spc-pts { position: absolute; inset: 0; }
.season-proof .spc-pt { position: absolute; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #ff5a1f; box-shadow: 0 0 0 1.5px #fff; transition: transform .12s ease; }
.season-proof .spc-pt.is-chip { box-shadow: 0 0 0 1.5px #fff, 0 0 0 3px #ff5a1f; }
.season-proof .spc-pt b { position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translateX(-50%); z-index: 3; padding: 1px 3px; border-radius: 3px; background: rgba(255,255,255,.92); font-size: 9px; font-weight: 700; letter-spacing: .02em; color: #9a3412; line-height: 1.1; }
.season-proof .spc-pt b.is-side { left: auto; right: calc(100% + 4px); bottom: auto; top: 50%; transform: translateY(-50%); }   /* 264: next week is a chip too */
.season-proof .spc-pt.is-active { transform: scale(1.5); z-index: 2; }
.season-proof .spc-champ { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #171717; box-shadow: 0 0 0 2px #fff; }
.season-proof .spc-champ-label { position: absolute; transform: translateY(-50%); font-size: 12px; color: #525252; white-space: nowrap; background: rgba(255,255,255,.92); padding: 1px 4px; border-radius: 4px; }
.season-proof .spc-champ-label b { color: #0a0a0a; font-weight: 600; }
.season-proof .spc-ref { position: absolute; left: 0; right: 0; height: 0; pointer-events: none; }
.season-proof .spc-ref em { position: absolute; left: calc(100% + 8px); top: 0; transform: translateY(-50%); font-style: normal; font-size: 11px; line-height: 1.25; color: #404040; width: 76px; white-space: normal; }
.season-proof .spc-ref em small { display: block; color: #737373; font-size: 11px; }
.season-proof .spc-ref.is-champ { border-top: 2px dashed #171717; }
.season-proof .spc-ref.is-champ em { color: #0a0a0a; font-weight: 600; transform: translateY(-85%); }
.season-proof .spc-ref.is-champ em small { font-weight: 400; }
.season-proof .spc-ref.is-ours { border-top: 1.5px solid rgba(255,90,31,.55); }
.season-proof .spc-ref.is-ours em { transform: translateY(0); padding-top: 4px; color: #9a3412; }
.season-proof .spc-end { position: absolute; left: calc(100% + 8px); transform: translateY(-50%); display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #525252; font-variant-numeric: tabular-nums; white-space: nowrap; }
.season-proof .spc-end i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.season-proof .spc-end b { display: block; color: #0a0a0a; font-weight: 600; }
.season-proof .spc-end > span { line-height: 1.25; }
.season-proof .spc-end.is-strong { margin-top: -10px; }
.season-proof #spFpl .spc-end.is-champ { margin-top: -18px; align-items: flex-start; }
.season-proof #spFpl .spc-end.is-champ i { margin-top: 4px; }
.season-proof #spFpl .spc-end.is-champ > span { display: block; line-height: 1.2; color: #404040; }
.season-proof #spFpl .spc-end.is-strong { margin-top: 4px; }
.season-proof #spFpl .spc-end:not(.is-strong):not(.is-champ) { margin-top: 14px; }
.season-proof .spc-end:not(.is-strong) { margin-top: 10px; }
.season-proof .spc-x { position: absolute; left: 46px; right: 84px; bottom: 20px; height: 16px; }
.season-proof .spc-x span { position: absolute; transform: translateX(-50%); font-size: 12px; color: #737373; white-space: nowrap; font-variant-numeric: tabular-nums; }
.season-proof .spc-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; font-size: 12px; color: #525252; }
.season-proof .spc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.season-proof .spc-legend i { flex: none; display: inline-block; }
.season-proof .spc-legend i.is-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.season-proof .spc-legend i.is-ring { width: 8px; height: 8px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 1.5px #fff, 0 0 0 3px var(--c); margin: 0 2px; }
.season-proof .spc-legend i.is-dash { width: 18px; height: 0; border-top: 2px dashed var(--c); }
.season-proof .spc-legend i.is-box { width: 8px; height: 12px; border-radius: 1.5px; background: var(--c); }
.season-proof .spc-legend i.is-line { width: 18px; height: 2px; border-radius: 2px; background: var(--c); }
.season-proof .spc-foot { display: grid; gap: 6px; font-size: 14px; line-height: 1.45; margin-top: auto; }
.season-proof .spc-foot-1 { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: #0a0a0a; }
.season-proof .spc-foot-2 { color: #737373; }
.season-proof .spc-cross { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px solid #d4d4d4; pointer-events: none; }
.season-proof .spc-dots { position: absolute; inset: 0; pointer-events: none; }
.season-proof .spc-dots i { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.season-proof .spc-tip { position: absolute; top: 0; z-index: 3; min-width: 176px; padding: 8px 10px; border: 1px solid #e5e5e5; border-radius: 8px; background: #fff; box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1); font-size: 12px; line-height: 1.55; color: #737373; pointer-events: none; }
.season-proof .spc-tip b { display: block; margin-bottom: 3px; color: #0a0a0a; font-weight: 600; }
.season-proof .spc-tip span { display: flex; align-items: center; gap: 8px; }
.season-proof .spc-tip span i { width: 10px; height: 10px; border-radius: 2px; flex: none; }
.season-proof .spc-tip span em { font-style: normal; margin-left: auto; padding-left: 14px; color: #0a0a0a; font-weight: 500; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; white-space: nowrap; }
.season-proof .spc-tip hr { border: 0; border-top: 1px solid #f0f0f0; margin: 4px 0; }
.season-proof .spc-table { position: absolute; left: 0; top: 0; display: block; width: 1px; height: 1px; padding: 0; margin: -1px; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.season-proof .sp-note { margin: 16px 0 0; font-size: 13px; line-height: 1.55; color: #737373; }
.season-proof .sp-note a { color: #0a0a0a; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 960px) { .season-proof .spc-grid2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  body.sx .season-proof { padding-block: 36px 4px; }
  .season-proof .spc-card { padding: 18px 14px; gap: 14px; }
  .season-proof .spc-body { padding: 20px 70px 38px 38px; }
  .season-proof .spc-x { left: 38px; right: 70px; }
  .season-proof .spc-xlab { right: 70px; }
  .season-proof .spc-plot { height: 220px; }
  .season-proof .spc-pt { width: 6px; height: 6px; margin: -3px 0 0 -3px; }
  .season-proof .spc-champ-label { font-size: 11px; }
  .season-proof .spc-pt b { display: none; }
  .season-proof .spc-ref em { width: 62px; font-size: 10px; }
  .season-proof .spc-ref em small { font-size: 10px; }
  .season-proof .spc-grid i, .season-proof .spc-x span, .season-proof .spc-end { font-size: 11px; }
  .season-proof .spc-foot { font-size: 13px; }
  .season-proof .spc-x span:nth-child(2), .season-proof .spc-x span:nth-child(4) { display: none; }
}
@media print { .season-proof .spc-cross, .season-proof .spc-tip, .season-proof .spc-dots { display: none !important; } }
/* release 268: the draw-in (static/js/season_proof.js adds .spc-pre at load and .spc-play when a chart comes into view) */
.season-proof .spc-pre .spc-svg { clip-path: inset(-8px 100% -8px -8px); }
.season-proof .spc-pre .spc-pt { opacity: 0; scale: .2; }
.season-proof .spc-pre .spc-end { opacity: 0; }
.season-proof .spc-pre .spc-svg rect, .season-proof .spc-pre .spc-svg line { transform-box: view-box; transform-origin: 0 var(--spc-zero, 100%); transform: scaleY(0); }
.season-proof .spc-pre.spc-play .spc-svg { clip-path: inset(-8px -8px -8px -8px); transition: clip-path var(--spc-run) linear var(--spc-lag); }
.season-proof .spc-pre.spc-play .spc-pt { opacity: 1; scale: 1; transition: opacity .2s ease var(--spc-at), scale .35s cubic-bezier(.3,1.6,.5,1) var(--spc-at); }
.season-proof .spc-pre.spc-play .spc-end { opacity: 1; transition: opacity .5s ease calc(var(--spc-lag) + var(--spc-run)); }
.season-proof .spc-pre.spc-play .spc-svg rect, .season-proof .spc-pre.spc-play .spc-svg line { transform: scaleY(1); transition: transform .45s cubic-bezier(.2,.8,.2,1) var(--spc-at); }
@media (prefers-reduced-motion: reduce) { .season-proof .spc-pre .spc-svg, .season-proof .spc-pre .spc-pt, .season-proof .spc-pre .spc-end, .season-proof .spc-pre .spc-svg rect, .season-proof .spc-pre .spc-svg line { clip-path: none; opacity: 1; scale: 1; transform: none; } }
