:root {
  color-scheme: light;
  --bg: #f5f5f7;
  --surface: rgba(255,255,255,.78);
  --surface-solid: #ffffff;
  --ink: #151518;
  --muted: #6e6e73;
  --line: rgba(20,20,25,.09);
  --blue: #2364e8;
  --blue-soft: #eaf1ff;
  --shadow: 0 18px 54px rgba(18,25,38,.08);
  --nav-bg: rgba(245,245,247,.82);
  --nav-menu: rgba(245,245,247,.97);
  --nav-ink: #424247;
  --soft: #f5f6f8;
  --tag-bg: #f0f1f4;
  --tag-ink: #616269;
  --story-ink: #2a2a2e;
  --story-muted: #62636a;
  --why-bg: #edf3ff;
  --why-line: #d9e6ff;
  --radius: 28px;
  --max: 1180px;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #090a0d;
  --surface: rgba(24,25,30,.82);
  --surface-solid: #15171c;
  --ink: #f5f5f7;
  --muted: #a3a4aa;
  --line: rgba(255,255,255,.1);
  --blue: #78a7ff;
  --blue-soft: #17274b;
  --shadow: 0 18px 54px rgba(0,0,0,.28);
  --nav-bg: rgba(9,10,13,.82);
  --nav-menu: rgba(9,10,13,.97);
  --nav-ink: #c5c6cb;
  --soft: #1d2026;
  --tag-bg: #272a31;
  --tag-ink: #ced0d5;
  --story-ink: #e3e3e7;
  --story-muted: #b7b8bf;
  --why-bg: #142342;
  --why-line: #263e6d;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #090a0d;
    --surface: rgba(24,25,30,.82);
    --surface-solid: #15171c;
    --ink: #f5f5f7;
    --muted: #a3a4aa;
    --line: rgba(255,255,255,.1);
    --blue: #78a7ff;
    --blue-soft: #17274b;
    --shadow: 0 18px 54px rgba(0,0,0,.28);
    --nav-bg: rgba(9,10,13,.82);
    --nav-menu: rgba(9,10,13,.97);
    --nav-ink: #c5c6cb;
    --soft: #1d2026;
    --tag-bg: #272a31;
    --tag-ink: #ced0d5;
    --story-ink: #e3e3e7;
    --story-muted: #b7b8bf;
    --why-bg: #142342;
    --why-line: #263e6d;
  }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif; font-size: 16px; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.nav-shell { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: var(--nav-bg); backdrop-filter: blur(22px) saturate(170%); }
.nav { max-width: var(--max); min-height: 58px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; gap: 20px; }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 720; margin-right: auto; letter-spacing: -.02em; }
.brand-mark { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 10px; color: white; background: linear-gradient(145deg,#16171b,#41434a); box-shadow: inset 0 1px rgba(255,255,255,.25); }
.nav-links { display: flex; align-items: center; gap: 22px; color: var(--nav-ink); font-size: .9rem; }
.nav-links a { padding: 18px 0 16px; border-bottom: 2px solid transparent; }
.nav-links a:hover,.nav-links a.active { color: var(--ink); border-color: currentColor; }
.theme-control { display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.74rem; }
.theme-control span { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap; }
.theme-control select { appearance:none;min-width:112px;padding:7px 27px 7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23888' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--ink);font:inherit;font-size:.78rem;cursor:pointer; }
.theme-control select:focus-visible { outline:2px solid var(--blue);outline-offset:2px; }

.container { width:min(var(--max),calc(100% - 40px));margin:0 auto; }
h1,h2,h3,p { margin-top:0; }
.eyebrow { display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:650;text-transform:uppercase;letter-spacing:.11em;color:var(--muted); }
.section-head { display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px; }
.section-head h2 { margin:0;font-size:clamp(1.6rem,3vw,2.35rem);letter-spacing:-.045em; }
.section-head p { margin:4px 0 0;color:var(--muted); }
/* Worlds 2026 */
.worlds-hero { position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 78% 15%,rgba(34,211,238,.23),transparent 27%),radial-gradient(circle at 13% 92%,rgba(93,72,198,.42),transparent 34%),linear-gradient(132deg,#07101f 0%,#10192d 52%,#07101f 100%); }
.worlds-hero::before { content:"";position:absolute;inset:0;opacity:.24;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,#000,transparent 88%); }
.worlds-hero-inner { position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.55fr);align-items:end;gap:42px;padding-top:74px;padding-bottom:72px; }
.worlds-kicker { display:flex;align-items:center;gap:10px;color:#a7b8d5;font-size:.8rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase; }
.worlds-live-dot,.worlds-pulse { width:8px;height:8px;border-radius:50%;background:#44e29a;box-shadow:0 0 0 6px rgba(68,226,154,.12); }
.worlds-hero h1 { margin:32px 0 22px;font-size:clamp(3.65rem,8.8vw,8.8rem);line-height:.79;letter-spacing:-.085em;text-transform:uppercase; }
.worlds-hero h1 span { color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.56); }
.worlds-hero p { max-width:720px;margin:0;color:#aebcd2;font-size:1.08rem; }
.worlds-hero-actions { display:flex;gap:10px;margin-top:30px; }
.worlds-hero-actions a { padding:10px 16px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);font-size:.82rem;font-weight:720;backdrop-filter:blur(10px); }
.worlds-hero-actions a:first-child { color:#061020;background:#fff;border-color:#fff; }
.worlds-next { min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:rgba(8,15,29,.62);box-shadow:0 24px 70px rgba(0,0,0,.28);backdrop-filter:blur(18px); }
.worlds-next span { color:#54e7a4;font-size:.73rem;font-weight:760;text-transform:uppercase;letter-spacing:.09em; }
.worlds-next strong { margin:10px 0 5px;font-size:2rem;line-height:1;letter-spacing:-.055em; }
.worlds-next strong i { color:#72819b;font:500 .8rem/1 sans-serif;text-transform:uppercase; }
.worlds-next small { color:#9daabe; }
.worlds-next.is-live { border-color:rgba(68,226,154,.55);box-shadow:0 0 0 1px rgba(68,226,154,.12),0 24px 70px rgba(0,0,0,.3); }
.worlds-status { display:flex;align-items:center;gap:10px;margin:22px 0 14px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid);color:var(--muted);font-size:.78rem; }
.worlds-status.is-warning { color:#c07a24;border-color:rgba(192,122,36,.35); }
.worlds-status.is-warning .worlds-pulse { background:#d99745;box-shadow:0 0 0 6px rgba(217,151,69,.12); }
.worlds-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px; }
.worlds-summary > div { min-height:132px;display:flex;flex-direction:column;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface-solid); }
.worlds-summary span { color:var(--muted);font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.09em; }
.worlds-summary strong { margin:auto 0 2px;font-size:1.85rem;letter-spacing:-.045em; }
.worlds-summary small { color:var(--muted);font-size:.72rem; }
.worlds-tabs { position:sticky;top:59px;z-index:12;display:flex;gap:6px;margin-bottom:20px;padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--nav-bg);backdrop-filter:blur(18px);overflow-x:auto; }
.worlds-tabs a { flex:0 0 auto;padding:8px 13px;border-radius:11px;color:var(--muted);font-size:.82rem;font-weight:700; }
.worlds-tabs a:hover { color:var(--ink);background:var(--soft); }
.worlds-section { padding:46px 0;scroll-margin-top:100px;border-top:1px solid var(--line); }
.worlds-loading { grid-column:1/-1;padding:34px;border:1px dashed var(--line);border-radius:20px;color:var(--muted);text-align:center; }
.swiss-map { display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:16px;overflow-x:auto;padding:4px 2px 18px; }
.swiss-column { min-width:210px;display:flex;flex-direction:column;gap:12px; }
.swiss-round { position:sticky;left:0;color:var(--muted);font-size:.7rem;font-weight:770;text-transform:uppercase;letter-spacing:.1em; }
.swiss-node { position:relative;min-height:124px;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface-solid); }
.swiss-column:not(:first-child) .swiss-node::before { content:"";position:absolute;left:-17px;top:50%;width:16px;border-top:1px solid var(--line); }
.swiss-node.positive { border-color:rgba(52,174,112,.34);background:linear-gradient(145deg,rgba(52,174,112,.08),var(--surface-solid)); }
.swiss-node.negative { border-color:rgba(207,79,86,.3);background:linear-gradient(145deg,rgba(207,79,86,.07),var(--surface-solid)); }
.swiss-node.qualified { border-color:rgba(68,226,154,.55);background:linear-gradient(145deg,rgba(68,226,154,.13),var(--surface-solid)); }
.swiss-node.eliminated { opacity:.72; }
.swiss-node-head { display:flex;align-items:center;justify-content:space-between;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--line); }
.swiss-node-head span { color:var(--muted);font-size:.68rem; }
.swiss-node-head strong { flex:none;font-size:.82rem; }
.swiss-node-teams { display:flex;flex-wrap:wrap;gap:6px;margin-top:11px; }
.swiss-node-teams > small { color:var(--muted);font-size:.7rem; }
.swiss-team-chip { display:flex;align-items:center;gap:6px;padding:5px 8px 5px 5px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-size:.72rem; }
.worlds-team-logo,.worlds-logo-fallback { flex:0 0 34px;width:34px;height:34px;object-fit:contain;border-radius:10px;background:var(--soft);padding:4px; }
.worlds-team-logo.is-small,.swiss-team-chip .worlds-logo-fallback { flex-basis:24px;width:24px;height:24px;border-radius:7px;padding:3px; }
.worlds-logo-fallback { display:grid;place-items:center;color:var(--muted);font-size:.55rem;font-weight:820; }
.worlds-filters { display:flex;gap:8px;overflow-x:auto;margin:-3px 0 20px;padding-bottom:3px; }
.worlds-filters button { flex:0 0 auto;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface-solid);color:var(--muted);cursor:pointer; }
.worlds-filters button.active { color:var(--bg);background:var(--ink);border-color:var(--ink); }
.worlds-games { display:grid;gap:24px; }
.worlds-day-head { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px; }
.worlds-day-head strong { text-transform:capitalize; }
.worlds-day-head span { color:var(--muted);font-size:.78rem; }
.worlds-day-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.worlds-game-card { display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px;border:1px solid var(--line);border-radius:22px;background:var(--surface-solid); }
.worlds-game-meta { display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em; }
.worlds-state { padding:4px 7px;border-radius:999px;background:var(--soft); }
.worlds-state.is-live { color:#16794b;background:rgba(68,226,154,.16); }
.worlds-state.is-done { color:var(--muted); }
.worlds-game-time { grid-column:2;grid-row:1/3;min-width:62px;text-align:right; }
.worlds-game-time strong,.worlds-game-time span { display:block; }
.worlds-game-time strong { font-size:1.15rem; }
.worlds-game-time span { color:var(--muted);font-size:.7rem; }
.worlds-game-match { grid-column:1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px; }
.worlds-game-team { min-width:0;display:flex;align-items:center;gap:9px;opacity:.62; }
.worlds-game-team:nth-child(3) { flex-direction:row-reverse;text-align:right; }
.worlds-game-team.is-winner,.worlds-game-card [data-live] { opacity:1; }
.worlds-game-team span { min-width:0; }
.worlds-game-team strong,.worlds-game-team small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.worlds-game-team small { color:var(--muted);font-size:.64rem; }
.worlds-game-team b { margin-left:auto;font-size:1.35rem; }
.worlds-game-team:nth-child(3) b { margin:0 auto 0 0; }
.worlds-versus { color:var(--muted);font-size:.65rem;font-weight:800; }
.worlds-team-table { overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--surface-solid); }
.worlds-team-row { display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(76px,.55fr));align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--line); }
.worlds-team-row.is-head { border-top:0;color:var(--muted);background:var(--soft);font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.08em; }
.worlds-team-name { display:flex;align-items:center;gap:11px;min-width:0; }
.worlds-team-name strong,.worlds-team-name small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.worlds-team-name small { color:var(--muted);font-size:.68rem; }
.team-status { justify-self:start;min-width:48px;padding:5px 8px;border-radius:999px;background:var(--soft);text-align:center;font-size:.7rem;font-weight:760; }
.team-status.qualified { color:#188453;background:rgba(68,226,154,.14); }
.team-status.eliminated { color:#b64c53;background:rgba(207,79,86,.12); }
.worlds-source { margin:0 0 64px;color:var(--muted);font-size:.75rem;text-align:right; }
.worlds-source a { color:var(--blue); }
@media(max-width:980px){
  .worlds-hero-inner { grid-template-columns:1fr;padding-top:58px;padding-bottom:55px; }
  .worlds-next { min-height:150px; }
  .worlds-summary { grid-template-columns:repeat(2,1fr); }
  .worlds-day-grid { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .worlds-hero h1 { font-size:clamp(3.25rem,18vw,5.3rem); }
  .worlds-hero-actions { flex-wrap:wrap; }
  .worlds-summary { grid-template-columns:1fr 1fr; }
  .worlds-summary > div { min-height:118px;padding:17px; }
  .worlds-section { padding:36px 0; }
  .worlds-tabs { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:5px;border-radius:14px;overflow:visible; }
  .worlds-tabs a { padding:8px 6px;text-align:center;font-size:.76rem; }
  .worlds-game-card { grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px 14px;border-radius:17px; }
  .worlds-game-meta { grid-column:1;grid-row:1;flex-wrap:wrap;gap:5px;font-size:.6rem;letter-spacing:.035em; }
  .worlds-game-time { grid-column:2;grid-row:1;min-width:50px;align-self:start; }
  .worlds-game-time strong { font-size:1rem;line-height:1.2; }
  .worlds-game-time span { font-size:.62rem;margin-top:2px; }
  .worlds-game-match { grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr);gap:8px; }
  .worlds-game-team,.worlds-game-team:nth-child(3) { display:grid;grid-template-columns:26px minmax(0,1fr) 28px;gap:9px;text-align:left; }
  .worlds-game-team .worlds-logo { width:26px;height:26px; }
  .worlds-game-team strong { font-size:.9rem;line-height:1.2; }
  .worlds-game-team small { font-size:.65rem;line-height:1.3;margin-top:2px; }
  .worlds-game-team b,.worlds-game-team:nth-child(3) b { margin:0;justify-self:end;text-align:right;font-size:1.2rem;font-variant-numeric:tabular-nums; }
  .worlds-versus { display:none; }
  .worlds-team-table { overflow-x:auto; }
  .worlds-team-row { min-width:690px; }
}

/* Swiss matchup bracket */
.swiss-map { display:block;overflow:visible;padding:0; }
.swiss-bracket-scroll { display:grid;grid-template-columns:230px 230px 230px 230px 230px 250px;gap:24px;min-width:1370px;padding:8px 4px 20px;overflow:visible; }
.swiss-map { overflow-x:auto;scrollbar-color:var(--line) transparent;scrollbar-width:thin; }
.swiss-bracket-column { display:flex;flex-direction:column;gap:18px;min-width:0; }
.swiss-bracket-column.split-round { justify-content:space-between; }
.swiss-bracket-column.three-way { gap:18px; }
.swiss-bracket-column.round-five { justify-content:center; }
.swiss-bracket-group { position:relative; }
.swiss-bracket-header { height:30px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding:0 10px;border-radius:6px;background:#ececee;color:#17191d; }
.swiss-bracket-header strong { font-size:.67rem;text-transform:uppercase;letter-spacing:.045em; }
.swiss-bracket-header span { display:flex;gap:3px; }
.swiss-bracket-header i { width:9px;height:9px;border-radius:1px;background:#bfc1c5; }
.swiss-bracket-header i.win { background:#2cc38a; }
.swiss-bracket-header i.loss { background:#ff655d; }
.swiss-bracket-record { position:absolute;z-index:2;right:10px;top:36px;padding:2px 6px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:.58rem;font-weight:800; }
.swiss-bracket-group > div { padding:6px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-solid) 92%,transparent); }
.swiss-bracket-match { overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--soft); }
.swiss-bracket-match + .swiss-bracket-match { margin-top:7px; }
.swiss-bracket-match.is-live { border-color:#2cc38a;box-shadow:0 0 0 1px rgba(44,195,138,.15); }
.swiss-bracket-team { display:grid;grid-template-columns:24px minmax(0,1fr) 22px;align-items:center;gap:7px;min-height:35px;padding:5px 8px;color:var(--muted); }
.swiss-bracket-team + .swiss-bracket-team { border-top:1px solid var(--line); }
.swiss-bracket-team.is-winner { color:var(--ink);background:rgba(44,195,138,.07); }
.swiss-bracket-team > span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.69rem; }
.swiss-bracket-team > strong { text-align:right;font-size:.72rem; }
.swiss-bracket-match-meta { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-top:1px solid var(--line);background:var(--surface-solid);color:var(--muted);font-size:.56rem; }
.swiss-bracket-match-meta b { color:var(--ink); }
.swiss-outcomes { display:flex;flex-direction:column;gap:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid); }
.swiss-outcomes section + section { padding-top:2px;border-top:1px solid var(--line); }
.swiss-outcomes h3 { margin:0 0 9px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em; }
.swiss-outcome-team { display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--muted); }
.swiss-outcome-team + .swiss-outcome-team { margin-top:6px; }
.swiss-outcome-team span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem; }
.swiss-outcome-team b { font-size:.62rem; }
@media(max-width:720px){
  .swiss-bracket-scroll { grid-template-columns:210px 210px 210px 210px 210px 225px;gap:16px;min-width:1265px; }
  .swiss-bracket-team { grid-template-columns:24px minmax(0,1fr) 18px;padding-left:6px;padding-right:6px; }
}

/* A single status palette for schedule and Swiss. */
.worlds-status-legend { display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:4px 0 25px;color:var(--muted);font-size:.76rem; }
.worlds-status-legend > span { display:flex;align-items:center;gap:7px; }
.worlds-status-legend i { width:10px;height:10px;border-radius:50%;border:1px solid rgba(100,110,125,.2); }
.worlds-status-legend .scheduled { background:#2dae79; }
.worlds-status-legend .completed { background:#858d9a; }
.worlds-status-legend .undrawn { background:#f5f7fa;border-color:#b2bac7; }
.worlds-status-legend .live { background:#1fdcb0;box-shadow:0 0 0 3px rgba(31,220,176,.14); }
.worlds-game-card,.swiss-bracket-match { --match-accent:#cbd1db;--match-tint:rgba(235,239,245,.08);border-color:color-mix(in srgb,var(--match-accent) 44%,var(--line));background:linear-gradient(var(--match-tint),var(--match-tint)),var(--surface-solid);box-shadow:inset 3px 0 0 var(--match-accent); }
.worlds-game-card.match-state-scheduled,.swiss-bracket-match.match-state-scheduled { --match-accent:#2dae79;--match-tint:rgba(45,174,121,.1); }
.worlds-game-card.match-state-completed,.swiss-bracket-match.match-state-completed { --match-accent:#8c94a0;--match-tint:rgba(124,133,147,.12); }
.worlds-game-card.match-state-undrawn,.swiss-bracket-match.match-state-undrawn { --match-accent:#e3e7ef;--match-tint:rgba(226,232,241,.16); }
.worlds-game-card.match-state-live,.swiss-bracket-match.match-state-live { --match-accent:#1acfa0;--match-tint:rgba(26,207,160,.15);box-shadow:inset 3px 0 0 var(--match-accent),0 0 0 1px rgba(26,207,160,.2); }
.worlds-state.match-state-scheduled { color:#147a50;background:rgba(45,174,121,.18); }
.worlds-state.match-state-completed { color:var(--muted);background:rgba(124,133,147,.16); }
.worlds-state.match-state-undrawn { color:#536072;background:#eef1f5; }
.worlds-state.match-state-live { color:#075c44;background:#5be4bd;font-weight:850; }
.worlds-game-card.match-state-scheduled .worlds-game-team,.worlds-game-card.match-state-live .worlds-game-team { opacity:1; }
.worlds-game-card.match-state-completed .worlds-game-match { grid-column:1/-1; }
.worlds-game-card.match-state-completed .worlds-game-team { opacity:.7; }
.worlds-game-card.match-state-completed .worlds-game-team.is-winner { opacity:1; }
.swiss-bracket-match.match-state-completed .swiss-bracket-team.is-winner { background:rgba(124,133,147,.09); }
.swiss-bracket-match.match-state-scheduled .swiss-bracket-team,.swiss-bracket-match.match-state-live .swiss-bracket-team { color:var(--ink); }
.swiss-bracket-match-meta { background:transparent; }
.match-state-scheduled .swiss-bracket-match-meta { color:#269c6a; }
.match-state-live .swiss-bracket-match-meta { color:#19b58b;font-weight:800; }
.worlds-logo { display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--soft);overflow:hidden; }
.worlds-logo.is-small { flex-basis:26px;width:26px;height:26px;padding:2px;border-radius:7px; }
.worlds-logo > img { width:100%;height:100%;object-fit:contain; }
.worlds-logo .worlds-logo-fallback { flex:1;width:auto;height:auto;padding:0;background:transparent;font-size:.56rem; }
.worlds-logo [hidden],.worlds-player-card [hidden] { display:none!important; }
.worlds-roster-details { border:1px solid var(--line);border-radius:24px;background:var(--surface-solid);padding:0 22px 22px; }
.worlds-roster-details:not([open]) { padding-bottom:0; }
.worlds-roster-details > summary { display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:24px 0; }
.worlds-roster-details > summary::-webkit-details-marker { display:none; }
.worlds-roster-details > summary strong { display:block;margin:5px 0;font-size:1.8rem;letter-spacing:-.04em; }
.worlds-roster-details > summary small { display:block;color:var(--muted);font-size:.8rem; }
.worlds-roster-chevron { display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--soft);font-size:1.4rem;transition:transform .15s; }
.worlds-roster-details[open] .worlds-roster-chevron { transform:rotate(180deg); }
.worlds-roster-status { margin:0 0 18px;color:var(--muted);font-size:.78rem; }
.worlds-roster-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px; }
.worlds-roster-team { min-width:0;padding:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(150deg,rgba(45,174,121,.045),transparent),var(--bg); }
.worlds-roster-team > header { display:flex;gap:10px;align-items:center;min-height:75px;padding:4px 2px 15px; }
.worlds-roster-team h3 { margin:0 0 3px;font-size:1rem;line-height:1.15;letter-spacing:-.025em; }
.worlds-roster-team header span { color:var(--muted);font-size:.72rem; }
.worlds-roster-players { display:grid;gap:8px; }
.worlds-player-card { display:flex;align-items:center;position:relative;min-height:112px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 75%,#7b938d 25%);border-radius:14px;background:color-mix(in srgb,var(--soft) 95%,#6ba18e 5%); }
.worlds-player-copy { position:relative;z-index:2;display:flex;gap:8px;align-items:center;width:67%;padding:15px 4px 15px 12px; }
.worlds-role-icon { display:grid;place-items:center;flex:0 0 17px;width:17px;height:20px;border:1px solid var(--line);border-radius:6px;font-size:.6rem;color:var(--muted); }
.worlds-player-copy > div { min-width:0; }
.worlds-player-copy strong { display:block;color:var(--ink);font-size:.83rem;overflow-wrap:anywhere;text-shadow:0 1px 4px var(--soft); }
.worlds-player-copy div > span { display:block;color:var(--muted);font-size:.72rem;margin-top:2px; }
.worlds-player-copy small { display:block;color:var(--muted);font-size:.58rem;margin-top:5px;line-height:1.3;max-width:110px; }
.worlds-player-photo { position:absolute;right:-10px;bottom:0;width:51%;height:104px;object-fit:contain;object-position:bottom; }
.worlds-player-placeholder { position:absolute;right:10px;bottom:20px;display:grid;place-items:center;width:55px;height:62px;border-radius:24px 24px 12px 12px;background:var(--surface-solid);color:var(--muted);font-weight:800;font-size:1.05rem; }
.worlds-roster-source { display:inline-block;margin:12px 2px 2px;color:var(--muted);font-size:.68rem; }
@media(max-width:1100px){.worlds-roster-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }}
@media(max-width:840px){.worlds-roster-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }}
@media(max-width:520px){.worlds-roster-grid { grid-template-columns:1fr; }.worlds-roster-details { padding-left:14px;padding-right:14px; }.worlds-status-legend { gap:10px 15px; }.worlds-player-card { min-height:120px; }.worlds-player-photo { height:118px; }.worlds-roster-details > summary .eyebrow { font-size:.67rem; }}

/* Broadcast-style Swiss path. All labels remain real, selectable HTML. */
.swiss-flow-shell { overflow:hidden;border:1px solid #303969;border-radius:24px;color:#e8edff;background:radial-gradient(ellipse at 25% 65%,rgba(39,61,189,.33),transparent 55%),radial-gradient(ellipse at 90% 15%,rgba(44,110,180,.22),transparent 48%),linear-gradient(145deg,#101740,#04081d); }
.swiss-flow-title { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#2433aa,#7fefef) 1;background:rgba(3,8,30,.55); }
.swiss-flow-title > span { font-size:clamp(1.7rem,3vw,2.9rem);font-weight:900;letter-spacing:-.055em; }
.swiss-flow-title b { color:#a7edee; }
.swiss-flow-title small { color:#a3b8eb;font-weight:700;font-size:.65rem;letter-spacing:.12em;text-align:right; }
.swiss-flow-scroll { overflow-x:auto;scrollbar-color:#6375a7 #090f30; }
.swiss-flow-canvas { display:grid;grid-template-columns:repeat(6,242px);gap:32px;position:relative;min-width:1640px;height:860px;padding:0 8px; }
.swiss-flow-column { position:relative;z-index:1; }
.swiss-flow-group,.swiss-flow-outcome { position:absolute;left:0;width:242px;background:rgba(2,5,22,.7);border:1px solid #30385b;border-radius:5px;overflow:hidden; }
.swiss-flow-group > header { height:28px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-bottom:2px solid #33458b;background:rgba(5,9,30,.9);color:#c9d4ee;font-size:.65rem; }
.swiss-flow-group header strong { font-weight:650; }
.swiss-flow-group header b { font-size:.7rem; }
.flow-col-1 .pool-0-0 { top:190px; }
.flow-col-2 .pool-1-0 { top:120px; }.flow-col-2 .pool-0-1 { top:430px; }
.flow-col-3 .pool-2-0 { top:45px; }.flow-col-3 .pool-1-1 { top:300px; }.flow-col-3 .pool-0-2 { top:680px; }
.flow-col-4 .advance { top:45px; }.flow-col-4 .pool-2-1 { top:240px; }.flow-col-4 .pool-1-2 { top:540px; }.flow-col-4 .eliminate { top:790px; }
.flow-col-5 .advance { top:180px; }.flow-col-5 .pool-2-2 { top:450px; }.flow-col-5 .eliminate { top:745px; }
.flow-col-6 .advance { top:450px; }.flow-col-6 .eliminate { top:640px; }
.swiss-flow-match { height:56px;padding:7px 9px 4px;border-bottom:1px solid #2c3355;border-left:3px solid var(--flow-accent,#e3e7ef);background:var(--flow-bg,rgba(242,246,255,.1)); }
.swiss-flow-match:last-child { border-bottom:0; }
.swiss-flow-match.match-state-scheduled { --flow-accent:#31ce8d;--flow-bg:rgba(33,148,95,.2); }
.swiss-flow-match.match-state-completed { --flow-accent:#8b93a7;--flow-bg:rgba(127,139,162,.15); }
.swiss-flow-match.match-state-undrawn { --flow-accent:#e3e7ef;--flow-bg:rgba(230,237,255,.1); }
.swiss-flow-match.match-state-live { --flow-accent:#20edb7;--flow-bg:rgba(28,203,145,.27); }
.swiss-flow-match > div { display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;gap:4px; }
.swiss-flow-team { display:flex;align-items:center;gap:5px;min-width:0; }
.swiss-flow-team:last-child { flex-direction:row-reverse; }
.swiss-flow-team > b { font-size:.75rem;white-space:nowrap; }
.swiss-flow-team .worlds-logo { border:0;background:rgba(255,255,255,.06); }
.swiss-flow-team .worlds-logo-fallback { color:#a8bad8;font-size:.44rem; }
.swiss-flow-score { color:#d3def4;text-align:center;font-size:.72rem; }
.swiss-flow-match > small { display:block;margin-top:3px;color:#a4b2d0;text-align:center;font-size:.53rem;line-height:1; }
.swiss-flow-match.match-state-scheduled > small { color:#79dfb1; }.swiss-flow-match.match-state-live > small { color:#6effd9; }
.swiss-flow-outcome { border-radius:0;background:rgba(3,8,28,.8); }
.swiss-flow-outcome > header { display:flex;justify-content:space-between;align-items:center;height:25px;padding:0 8px;color:#072231;background:#93ecf0;text-transform:uppercase;font-size:.64rem;font-weight:800; }
.swiss-flow-outcome.eliminate > header { background:#242d4a;color:#b7c5e2; }
.swiss-flow-outcome > div { display:flex;justify-content:space-evenly;align-items:center;min-height:33px;gap:6px; }
.swiss-flow-outcome > div > span { display:flex;align-items:center;gap:3px;font-size:.61rem; }
.swiss-flow-outcome .worlds-logo { width:21px;height:21px;flex-basis:21px; }
.swiss-outcome-empty { color:#6d7d9f;font-size:1.4rem!important; }
.swiss-flow-connectors { position:absolute;z-index:0;inset:0;width:1640px;height:860px;pointer-events:none; }
.swiss-flow-connectors path { fill:none;stroke:#b8c6df;stroke-width:1;opacity:.65; }
@media(max-width:700px){.swiss-flow-title { align-items:flex-start;flex-direction:column;gap:3px;padding:19px; }.swiss-flow-title small { text-align:left;font-size:.58rem; }}
