.wrap.pg-season { width: 100%; max-width: none; padding: 0; margin: 0; background: #0d1016; color: #eff1f5; --season-line: #ffffff12; --season-muted: #929aab; --event-accent: #edca72; }
.pg-season a { color: inherit; text-decoration: none; }
.pg-season button, .pg-season select { font-family: Archivo, sans-serif; }
.season-event-switch { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1320px; padding: 20px 28px; margin: auto; color: #8e97a8; font-size: 12px; }
.season-event-switch > a { font-weight: 700; color: #bdc4d2; }
.season-back-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px 10px 12px; border-radius: 10px; border: 1px solid #ffffff22; background: #151c26; color: #e6ebf2 !important; font: 700 14px/1 'Big Shoulders Display', Archivo, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.season-back-btn:hover { color: #e9c46f !important; border-color: #d4af3766; }
.season-back-btn:hover svg { transform: translateX(-3px); }
.season-back-btn svg { transition: transform .2s; }
.season-event-switch > div { display: flex; gap: 26px; }
.season-event-switch a[aria-current] { color: #f1ce79; }
.season-event-switch a:hover { color: #fff; }
.season-hero { position: relative; height: 330px; isolation: isolate; overflow: hidden; background: #12294d; }
.season-event-art { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 68%; }
.season-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #050c1eee, #09122882 46%, #08131b0a 78%), linear-gradient(0deg, #0d1016b0, transparent 55%); }
.season-hero-inner { display: flex; flex-direction: column; justify-content: center; height: 100%; max-width: 1320px; margin: auto; padding: 28px; }
.season-kicker { margin: 0 0 13px; color: #a3adbf; font: 600 10px/1.4 Archivo, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.season-hero .season-kicker { color: #e4eaf2; display: flex; gap: 14px; align-items: center; }
.season-completed { padding: 5px 9px; color: #14191d; background: #eed696; font-size: 9px; border-radius: 3px; }
.season-live { padding: 5px 9px; color: #0b1a12; background: #7ee0a8; font-size: 9px; border-radius: 3px; }
.season-hero h1 { max-width: 880px; margin: 8px 0 22px; color: #fff; font: 800 italic clamp(68px, 8vw, 112px)/.88 'Big Shoulders Display', sans-serif; letter-spacing: -.025em; text-transform: uppercase; }
.season-summary { display: flex; flex-wrap: wrap; gap: 22px; margin: 0; color: #d4dbe6; font-size: 13px; line-height: 1.5; }
.season-summary span { padding-inline: 22px; border-inline: 1px solid #ffffff36; }
.season-section-nav { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1320px; margin: auto; padding: 0 28px; border-bottom: 1px solid #ffffff16; }
.season-section-nav > div { display: flex; gap: 30px; }
.season-section-nav button { position: relative; padding: 20px 0; background: none; border: 0; color: #929baa; font-size: 13px; cursor: pointer; }
.season-section-nav button.is-active { color: #fff; }
.season-section-nav button.is-active::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: #ecc978; }
.season-section-nav > span { color: #758093; font-size: 11px; }
.season-content { max-width: 1320px; padding: 0 28px 44px; margin: auto; }
.season-championship { display: grid; grid-template-columns: 1fr 1.25fr; gap: 26px 48px; padding: 36px 0 28px; }
.season-champion { display: flex; flex-direction: column; gap: 7px; }
.season-champion small, .season-title-fixture > small { color: #d4b56d; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.season-champion strong { font: 700 38px/1.1 'Big Shoulders Display', sans-serif; color: #fff; }
.season-champion > span { font-size: 11px; color: #8590a2; }
.season-title-fixture { align-self: center; padding-left: 34px; border-left: 1px solid #ffffff14; }
.season-title-fixture > div { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 14px; }
.season-title-fixture span { font-size: 13px; }
.season-title-fixture b { font: 700 42px/1 'Big Shoulders Display', sans-serif; color: #ecd190; white-space: nowrap; }
.season-podium { grid-column: 1 / -1; display: flex; gap: 48px; padding-top: 22px; border-top: 1px solid #ffffff12; }
.season-podium-place { display: flex; align-items: center; gap: 13px; }
.season-place-no { color: #677286; font: 500 26px/1 'Big Shoulders Display',sans-serif; }
.season-podium-copy { display: flex; gap: 3px; flex-direction: column; }
.season-podium-copy small { font-size: 9px; color: #8d97a8; }
.season-podium-copy b { font-size: 12px; font-weight: 500; }
.season-section { margin: 10px 0 0; scroll-margin-top: 20px; }
.season-section-head { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 26px 0 24px; }
.season-section-head h2, .dm-final h2 { margin: 0; font: 650 26px/1.2 Archivo,sans-serif; letter-spacing: -.04em; }
.season-section-head .season-kicker { margin-bottom: 6px; }
.season-section-head p:not(.season-kicker) { max-width: 660px; color: #929bab; font-size: 13px; line-height: 1.5; }
.season-path-picker { display: grid; gap: 7px; font-size: 10px; color: #8894a8; width: 220px; }
.season-path-picker select { padding: 10px 12px; width: 100%; min-height: 38px; color: #d4dcea; background: #191e29; border: 1px solid #ffffff14; border-radius: 5px; font-size: 12px; }
.season-path-summary { margin: 0 0 18px; padding: 12px 16px; border-left: 2px solid #e7c675; color: #ebd29e; background: #e7c67508; font-size: 12px; }
.season-path-summary[hidden] { display: none; }
.season-brackets { padding: 20px; background: #141922; border-radius: 6px; }
.season-lane { padding: 0 0 16px; }
.season-lane + .season-lane { padding-top: 24px; border-top: 1px solid #ffffff0d; }
.season-lane-title { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.season-lane-title > span { color: #ebeff6; font-size: 13px; font-weight: 600; }
.season-lane-title > small { font-size: 10px; color: #7e8aa0; }
.season-round-track { overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 1px 16px; scrollbar-width: thin; scrollbar-color: #425068 #141922; }
.season-bracket-canvas { position: relative; width: 100%; }
.season-connectors.is-desktop path { vector-effect: non-scaling-stroke; }
.pg-season .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.season-round-label { position: absolute; top: 0; margin: 0; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; color: #8e9cb1; font: 500 11px/1.2 Archivo,sans-serif; }
.season-match-position { position: absolute; }
.season-connectors { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.season-connectors path { fill: none; stroke: #48576b; stroke-width: 1; stroke-linejoin: round; }
.season-connectors path.is-path { stroke: #e5c77f; stroke-width: 2; }
.season-match { box-sizing: border-box; display: block; width: 100%; height: 66px; position: relative; padding: 0; overflow: hidden; text-align: left; color: #c5cedb; background: #202735; border: 1px solid #ffffff16; border-radius: 3px; cursor: pointer; transition: opacity .15s ease, border-color .15s ease; }
.season-match:hover { border-color: #a1adc0; }
.season-match.is-final { border-color: #d7b568; background: #302e27; }
.season-side { display: flex; align-items: center; gap: 7px; height: 32px; padding-left: 8px; font-size: 12px; }
.season-side + .season-side { border-top: 1px solid #ffffff08; }
.season-side-name { display: flex; align-items: center; gap: 6px; min-width: 0; flex: 1; }
.season-team-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.season-team-link { display: flex; min-width: 0; text-decoration: none; }
.season-team-link span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.season-team-link:hover { color: #ecd190; }
.season-seed { min-width: 15px; color: #8390a4; font-size: 9px; text-align: center; }
.season-score { display: grid; place-items: center; align-self: stretch; width: 29px; flex: 0 0 29px; color: #a0aabb; background: #ffffff05; font-size: 12px; }
.season-side.is-winner .season-score { background: #dcc37e; color: #201e16; }
.season-side.is-winner .season-team-name { color: #fff; font-weight: 650; }
.season-mark { color: #d99f8b; font-size: 8px; }
.season-result-dialog { box-sizing: border-box; width: min(620px, calc(100vw - 40px)); max-height: 80vh; padding: 24px; color: #eff1f5; background: #161d28; border: 1px solid #394457; border-radius: 8px; font-family: Archivo,sans-serif; }
.season-result-dialog::backdrop { background: #060b14c9; }
.season-result-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.season-result-dialog h2 { margin: 0; font-size: 20px; }
.season-result-dialog button { border: 1px solid #647088; padding: 8px 12px; border-radius: 3px; color: #fff; background: transparent; cursor: pointer; }
.season-result-row { padding: 18px 0; border-top: 1px solid #ffffff16; }
.season-result-row > div { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; font-size: 13px; }
.season-result-row .season-team-link span { white-space: normal; }
.season-result-row .season-team-link:last-child { text-align: right; justify-content: end; }
.season-result-row strong { color: #e5c77f; font-size: 23px; }
.season-result-row p { color: #9ca9bd; font-size: 11px; line-height: 1.5; }
.season-match.is-path { border-color: #d8bd7b; }
.season-match.is-dimmed { opacity: .35; }
.season-lane-tabs, .season-mobile-label, .season-connectors.is-mobile { display: none; }
.season-data-note { margin: 20px 0; font-size: 10px; line-height: 1.5; color: #69778c; }
.season-loading { min-height: 45vh; display: grid; place-content: center; }
/* the Deathmatch art carries its own logo in the centre: widen it and pin it left so the logo sits clear of the title, as an event badge */
.dm-hero .season-event-art { inset: auto; left: 0; top: 50%; width: 150%; height: auto; min-height: 100%; object-fit: cover; transform: translateY(-56%); }
.dm-hero h1 { max-width: 720px; }
.dm-podium { display: grid; gap: 9px; }
.dm-podium-place { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 12px; padding: 6px 0; }
.dm-rank { color: #606c82; font-size: 12px; }
.dm-podium-team { display: grid; gap: 3px; }
.dm-podium-team b { font-size: 12px; }
.dm-podium-team em { color: #808da2; font-style: normal; font-size: 9px; }
.dm-podium-place > strong { color: #e0c47d; font-size: 16px; }
.dm-podium-place > strong small { font-size: 9px; font-weight: 400; }
.dm-totals { color: #8896ab; font-size: 10px; line-height: 1.7; text-align: right; }
.dm-round-tabs { display: flex; gap: 24px; border-bottom: 1px solid #ffffff14; }
.dm-round-tabs button { flex-shrink: 0; padding: 14px 0; border: 0; border-bottom: 2px solid transparent; background: none; color: #7e8da5; font-size: 12px; cursor: pointer; }
.dm-round-tabs button[aria-selected=true] { border-color: #e8c779; color: #e8c779; }
.dm-round-panel { padding: 25px 0; }
.dm-round-panel[hidden] { display: none; }
.dm-round-intro { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.dm-round-intro h3 { margin: 0; font: 600 18px/1.2 Archivo,sans-serif; }
.dm-round-intro p { color: #7f8ea6; font-size: 10px; }
.dm-table-wrap { padding: 0 20px 10px; border-radius: 10px; background: #141922; }
.dm-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; }
.dm-table th, .dm-table td { padding: 13px 10px; border-bottom: 1px solid #ffffff08; text-align: left; vertical-align: middle; }
.dm-table thead th { color: #7a889f; text-transform: uppercase; font-size: 9px; font-weight: 500; letter-spacing: .08em; }
.dm-table .dm-c-rank { width: 34px; color: #68758c; font-variant-numeric: tabular-nums; }
.dm-table tbody .dm-c-team { font-size: 14px; font-weight: 600; color: #f3f5f9; }
.dm-table .dm-c-num { width: 64px; text-align: right; color: #c3cad6; font-variant-numeric: tabular-nums; }
.dm-table .dm-c-total { width: 170px; text-align: right; }
.dm-table .dm-c-total b { font: 700 20px/1 'Big Shoulders Display', sans-serif; color: #fff; }
.dm-table .dm-c-status { width: 150px; text-align: right; }
.dm-points-bar { display: block; height: 3px; width: var(--points); margin: 7px 0 0 auto; background: #d4b977; border-radius: 2px; }
.dm-cell-label { display: none; }
.dm-battles { display: inline-flex; gap: 4px; }
.dm-battles span { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 3px; font: 700 9px/1 Archivo, sans-serif; color: #10141b; }
.dm-battles .pip-win { background: #d9bd73; }
.dm-battles .pip-loss { background: #ffffff14; color: #c9a294; }
.dm-battles .pip-void { background: none; border: 1px dashed #ffffff40; color: #8e97a8; }
.dm-table tr.is-cut > :not(.dm-c-status) { opacity: .5; }
.dm-table tr.cut-start > * { border-top: 1px dashed #d68f79; }
.dm-status { font-size: 10px; color: #98b39e; }
.dm-table tr.is-cut .dm-status { color: #d99f8b; }
.dm-ledger { margin: 18px 0; font-size: 11px; color: #8b9aaf; }
.dm-ledger div { display: flex; flex-wrap: wrap; gap: 12px 25px; padding-top: 12px; }
.dm-final { border-top: 1px solid #ffffff12; padding-top: 28px; }
.dm-final > p:not(.season-kicker) { font-size: 12px; color: #8a99b0; line-height: 1.6; }
.dm-final-grid { display: grid; gap: 10px; margin-top: 22px; }
.dm-final-series { background: #171d28; border-radius: 6px; padding: 18px 24px; }
.dm-final-score { display: grid; grid-template-columns: 1fr 60px 1fr; align-items: center; gap: 20px; }
.dm-final-score .season-team-link { font-size: 13px; }
.dm-final-score .season-team-link:last-child { justify-content: end; }
.dm-final-score > strong { color: #ead192; font: 600 27px/1 'Big Shoulders Display',sans-serif; text-align: center; }
.dm-final-series > p { font-size: 10px; color: #7586a0; }
.dm-battle-pips { display: flex; gap: 8px; }
.dm-battle-pips span { display: grid; place-items: center; width: 23px; height: 20px; color: #a9c6b1; background: #759d8318; border-bottom: 2px solid #6c9b7b; font-size: 9px; }
.dm-battle-pips .pip-loss { color: #d5a58e; background: #bc6a4318; border-color: #ad795f; }
.pg-season :is(button,select,a,summary,[tabindex]):focus-visible { outline: 2px solid #e3c584; outline-offset: 4px; }
@media (max-width: 760px) {
  .season-event-switch { display: block; padding: 14px 20px; }
  .season-event-switch > a { display: none; }
  .season-event-switch > div { gap: 25px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; font-size: 11px; }
  .season-hero { height: 285px; }
  .season-event-art { object-position: 64% 70%; }
  .season-hero::after { background: linear-gradient(90deg,#071029b0,#07102925),linear-gradient(0deg,#0d1016b0,transparent 85%); }
  .season-hero-inner { padding: 28px 20px; justify-content: end; }
  .season-hero h1 { font-size: 66px; margin-bottom: 18px; }
  .season-hero .season-kicker { font-size: 8px; gap: 9px; }
  .season-summary { gap: 8px 12px; font-size: 10px; }
  .season-summary span { padding-inline: 12px; }
  .season-section-nav { padding: 0 20px; }
  .season-section-nav > div { gap: 27px; }
  .season-section-nav > span { display: none; }
  .season-section-nav button { padding-block: 16px; font-size: 12px; }
  .season-content { padding: 0 20px 30px; }
  .season-championship { grid-template-columns: 1fr; gap: 23px; padding-block: 26px 18px; }
  .season-champion strong { font-size: 32px; }
  .season-title-fixture { border: 0; padding: 0; }
  .season-title-fixture > div { gap: 12px; margin-top: 8px; }
  .season-title-fixture span { font-size: 11px; }
  .season-title-fixture b { font-size: 32px; }
  .season-podium { gap: 15px; justify-content: space-between; padding-top: 18px; }
  .season-podium-place { gap: 6px; align-items: start; }
  .season-place-no { font-size: 17px; }
  .season-podium-copy b { font-size: 9px; }
  .season-podium-copy small { font-size: 8px; }
  .season-section-head { gap: 14px; flex-wrap: wrap; margin-top: 26px; }
  .season-section-head h2 { font-size: 24px; }
  .season-path-picker { width: 100%; }
  .season-brackets { padding: 17px 14px; margin-inline: -6px; }
  .season-lane-tabs { display: flex; gap: 20px; margin: 0 0 18px; }
  .season-lane-tabs button { border: 0; border-bottom: 2px solid transparent; background: none; padding: 10px 0; color: #7c8ba3; font-size: 11px; }
  .season-lane-tabs .is-active { color: #e3c584; border-color: #e3c584; }
  .season-brackets:not([data-mobile-side=losers]) [data-bracket-side=losers], .season-brackets[data-mobile-side=losers] [data-bracket-side=winners] { display: none; }
  .season-lane + .season-lane { border: 0; padding-top: 0; }
  .season-lane-title small { display: none; }
  .season-round-track { overflow: visible; padding: 0; }
  .season-bracket-canvas { width: 100% !important; min-width: 0 !important; height: var(--mobile-height) !important; }
  .season-connectors.is-desktop, .season-desktop-label { display: none; }
  .season-connectors.is-mobile, .season-mobile-label { display: block; }
  .season-connectors.is-mobile path { vector-effect: non-scaling-stroke; stroke: #65748d; }
  .season-round-label { top: var(--mobile-label-top); left: var(--mobile-left) !important; width: var(--mobile-width) !important; min-height: 44px; font-size: 9px; color: #c7d0dd; text-align: center; line-height: 1.25; }
  .season-match-position { left: var(--mobile-left) !important; top: var(--mobile-top) !important; width: var(--mobile-width) !important; height: 44px !important; }
  .season-match { height: 44px; border-radius: 2px; }
  .season-side { height: 21px; padding-left: 3px; gap: 0; font: 500 9px/1 Archivo,sans-serif; }
  .season-side-name { gap: 0; }
  .season-seed, .season-mark { display: none; }
  .season-score { width: 11px; flex-basis: 11px; font: 600 9px/1 Archivo,sans-serif; }
  .season-match.is-final .season-side { font-size: 11px; }
  .season-lane { padding-bottom: 0; }
  .season-lane-title { margin-bottom: 12px; }
  .season-brackets { padding: 16px 8px; }
  .season-data-note { font-size: 9px; }
  .dm-podium { margin-top: 0; }
  .dm-hero h1 { font-size: 59px; max-width: 330px; }
  .dm-hero .season-event-art { width: 260%; transform: translateY(-50%); } /* keeps the art's own logo off-screen behind the title */
  .dm-totals { text-align: left; }
  .dm-round-tabs { gap: 25px; overflow-x: auto; }
  .dm-round-intro { align-items: start; gap: 8px; flex-direction: column; }
  .dm-round-intro p { margin: 0; }
  .dm-table-wrap { padding: 0 12px; }
  .dm-table { display: block; width: 100%; min-width: 0; }
  .dm-table thead { display: none; }
  .dm-table tbody { display: grid; }
  /* phone row: rank / team / total on top; pips, record, points, bonus and result on one quiet line below */
  .dm-table tbody tr { display: grid; grid-template-columns: 22px auto auto auto auto minmax(0,1fr); grid-template-areas: 'rank team team team team total' '. pips wl pts bonus status'; column-gap: 10px; row-gap: 7px; padding: 12px 0; border-bottom: 1px solid #ffffff0d; }
  .dm-table tbody tr > * { border: 0; padding: 0; width: auto; text-align: left; }
  .dm-table tbody .dm-c-rank { grid-area: rank; font-size: 12px; }
  .dm-table tbody .dm-c-team { grid-area: team; font-size: 14px; min-width: 0; }
  .dm-table tbody .dm-c-total { grid-area: total; justify-self: end; width: 88px; }
  .dm-table tbody .dm-c-total b { font-size: 19px; }
  .dm-table tbody .dm-c-battles { grid-area: pips; }
  .dm-table tbody .dm-c-wl { grid-area: wl; }
  .dm-table tbody .dm-c-pts { grid-area: pts; }
  .dm-table tbody .dm-c-bonus { grid-area: bonus; }
  .dm-table tbody .dm-c-status { grid-area: status; justify-self: end; }
  .dm-table tbody :is(.dm-c-rank, .dm-c-battles, .dm-c-num, .dm-c-status) { width: auto; }
  .dm-table tbody tr:not(.is-cut) .dm-status { display: none; }
  .dm-table tbody :is(.dm-c-battles, .dm-c-num, .dm-c-status) { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: #a9b3c3; white-space: nowrap; }
  .dm-cell-label { display: inline; font-size: 9px; color: #75849b; }
  .dm-battles span { width: 13px; height: 13px; font-size: 8px; }
  .dm-status { font-size: 9px; text-align: right; }
  .dm-table tr.cut-start { border-top: 1px dashed #cf8c76; }
  .dm-final-series { padding: 15px; }
  .dm-final-score { gap: 8px; grid-template-columns: 1fr 38px 1fr; }
  .dm-final-score .season-team-link { font-size: 10px; }
  body:has(.pg-season) #help-fab { display: none; }
}
@media (prefers-reduced-motion: reduce) { .season-match { transition: none; } }
