﻿:root {
      --bg:           #080808;
      --panel:        rgba(255,255,255,0.03);
      --panel-solid:  #111214;
      --panel-mid:    rgba(255,255,255,0.055);
      --line:         rgba(255,255,255,0.08);
      --line-strong:  rgba(255,255,255,0.14);
      --text:         #f0f0f0;
      --text-dim:     #d1d8e4;
      --muted:        #aab3c2;
      --accent:       #eff923;
      --accent-dim:   rgba(239,249,35,0.10);
      --accent-glow:  rgba(239,249,35,0.22);
      --cyan:         #00bcd4;
      --green:        #22c55e;
      --red:          #ef4444;
      --orange:       #ff9f43;
      --gold:         #ffd700;
      --silver:       #c0c8d4;
      --bronze:       #cd7f32;
      --r:            5px;
      --r-sm:         3px;
      --ease:         cubic-bezier(.4,0,.2,1);
      --fd:           'Barlow Condensed', sans-serif;
      --fb:           'Barlow', sans-serif;
      --fm:           'JetBrains Mono', monospace;
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      background: var(--bg);
      color: var(--text);
      font-family: var(--fb);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: optimizeLegibility;
    }

    /* Noise grain overlay */
    body::after {
      content: '';
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 9999;
      opacity: 0.025;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
    }

    /* ── Topbar ── */
    .topbar {
      height: 72px;
      display: flex;
      align-items: center;
      gap: 28px;
      padding: 0 36px;
      border-bottom: 1px solid var(--line);
      background: #06080b;
      position: sticky;
      top: 0;
      z-index: 100;
      overflow: hidden;
    }

    .topbar::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--accent), transparent);
      background-size: 200% 100%;
      animation: shimmer 5s ease-in-out infinite;
      opacity: 0.35;
    }
    @keyframes shimmer { 0%{background-position:-100% 0} 100%{background-position:200% 0} }

    .brand {
      font-family: var(--fd);
      font-weight: 900;
      font-size: 34px;
      line-height: 1;
      text-transform: uppercase;
      letter-spacing: 0;
      word-spacing: -0.08em;
      white-space: nowrap;
      display: flex;
      align-items: center;
      gap: 8px;
      padding-right: 26px;
      border-right: 1px solid rgba(255,255,255,0.08);
    }
    .brand-wordmark {
      color: inherit;
      text-shadow: none;
    }

    .brand .brand-initial {
      color: var(--accent);
    }

    .nav { display:flex; gap:0; overflow-x:auto; scrollbar-width:none; flex:1; align-items:center; }
    .nav::-webkit-scrollbar { display:none; }
    .brand { color: var(--text); text-decoration: none; }
    .nav a {
      background: transparent;
      color: rgba(255,255,255,0.58);
      height: 72px;
      padding: 0 20px;
      font-family: var(--fd);
      font-weight: 800;
      font-size: 14px;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      cursor: pointer;
      transition: color 0.16s var(--ease);
      display: flex;
      align-items: center;
      text-decoration: none;
      white-space: nowrap;
    }
    .nav a:hover { color: var(--text); }
    .nav a.active { color: var(--accent); }

    .site-footer {
      display:grid;
      grid-template-columns:1fr auto;
      gap:7px 28px;
      align-items:center;
      margin-left:0;
      padding:15px 36px 13px;
      border-top:0;
      position:relative;
      background:
        linear-gradient(180deg, rgba(239,249,35,0.035) 0%, transparent 42%),
        rgba(6,6,6,0.96);
      box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
    }
    .site-footer::before {
      content:'';
      position:absolute;
      top:0;
      left:0;
      right:0;
      height:1px;
      background:rgba(239,249,35,0.16);
      pointer-events:none;
    }
    .site-footer-links {
      display:flex;
      flex-wrap:wrap;
      gap:28px;
    }
    .site-footer-links a {
      font-family:var(--fd);
      font-size:10px;
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:0.08em;
      color:var(--text-dim);
      text-decoration:none;
      transition:color 0.15s;
    }
    .site-footer-links a:hover { color:var(--accent); }
    .site-footer-disclaimer {
      font-family:var(--fb);
      color:var(--text-dim);
      font-size:11px;
      font-weight:600;
      text-align:right;
    }
    .site-footer-copy {
      grid-column:1 / -1;
      color:var(--muted);
      font-family:var(--fm);
      font-size:9px;
    }

    /* ── Shell ── */
    .shell {
      display: grid;
      grid-template-columns: 360px minmax(0, 1fr);
      min-height: calc(100vh - 72px);
    }

    /* ── Events Rail ── */
    .events-rail {
      border-right: 1px solid var(--line);
      background: rgba(6,6,6,0.7);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      padding: 12px 14px 8px;
      height: calc(100vh - 72px);
      position: sticky;
      top: 72px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      z-index: 2;
    }
    .events-rail::after {
      content:'';
      position:absolute;
      left:0;
      right:0;
      bottom:0;
      height:24px;
      background:linear-gradient(180deg, rgba(6,6,6,0), rgba(6,6,6,0.72) 100%);
      pointer-events:none;
      z-index:3;
    }

    .rail-title {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 10px;
    }
    h1,h2,h3,p { margin: 0; }
    .rail-title h1 {
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: 0.18em;
      color: var(--text-dim);
    }
    .rail-title span {
      color: var(--text-dim);
      font-family: var(--fm);
      font-size: 10px;
      background: var(--panel);
      border: 1px solid var(--line);
      padding: 2px 7px;
      border-radius: var(--r-sm);
    }

    .event-card {
      position: relative;
      height: 112px;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--r);
      margin-bottom: 8px;
      cursor: pointer;
      background: #0e0e0e;
      transition: border-color 0.18s var(--ease), transform 0.18s var(--ease), box-shadow 0.18s var(--ease);
    }
    .event-card:hover {
      border-color: var(--line-strong);
      transform: translateY(-1px);
    }
    .event-card.active {
      border-color: rgba(239,249,35,0.5);
      box-shadow: 0 0 18px rgba(239,249,35,0.08), inset 0 1px 0 rgba(239,249,35,0.08);
    }
    .event-card.is-empty {
      cursor: default;
      opacity: 0.72;
    }
    .event-card.is-empty:hover {
      border-color: var(--line);
      transform: none;
    }
    .event-art {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(135deg, rgba(0,188,212,.45), rgba(239,249,35,.22)),
        linear-gradient(160deg, #141414 0%, #1a1a0e 100%);
    }
    .event-art::after {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, transparent 0%, rgba(5,7,9,0.92) 100%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 46px),
        repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 46px);
    }
    .event-art img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .event-main {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
      padding: 36px 12px 10px;
      background: linear-gradient(0deg, rgba(5,7,9,0.98) 0%, rgba(5,7,9,0.74) 60%, transparent 100%);
    }
    .event-name {
      font-family: var(--fd);
      font-size: 20px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      line-height: 1.1;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      margin-bottom: 6px;
      transform: scaleY(1.3);
      transform-origin: bottom left;
    }
    .event-empty-note {
      color: var(--text-dim);
      font-family: var(--fd);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    /* ── Featured Event Card (carousel) ── */
    .feat-wrap { margin-bottom: 8px; flex: 0 0 auto; }

    .feat-track-outer {
      overflow: hidden;
      border-radius: var(--r);
      border: 1px solid var(--line);
      transition: border-color 0.2s;
      background: #0e0e0e;
    }

    .feat-track {
      display: flex;
      transition: transform 0.42s cubic-bezier(.4,0,.2,1);
    }

    /* ── feat-card: Style 03 Reveal ──────────────────────────── */
    .feat-card {
      flex: 0 0 100%;
      height: 182px;
      position: relative;
      overflow: hidden;
      cursor: pointer;
      /* --rc: R,G,B components set per card via JS inline style */
      border-color: rgba(var(--rc,139,117,255),0.2);
      transition: border-color 0.4s, box-shadow 0.4s;
    }
    .feat-card:hover {
      border-color: rgba(var(--rc,139,117,255),0.45);
      box-shadow: 0 0 0 1px rgba(var(--rc,139,117,255),0.15),
                  0 12px 32px rgba(var(--rc,139,117,255),0.1);
    }

    .feat-art {
      position: absolute; inset: 0;
      transition: transform 0.6s var(--ease);
    }
    .feat-card:hover .feat-art { transform: scale(1.04); }

    /* Tactical grid overlay */
    .feat-rv-grid {
      position: absolute; inset: 0; z-index: 1; pointer-events: none;
      background-image:
        linear-gradient(rgba(var(--rc,139,117,255),0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(var(--rc,139,117,255),0.04) 1px, transparent 1px);
      background-size: 22px 22px;
      mask-image: radial-gradient(ellipse at 65% 0%, rgba(0,0,0,0.6) 0%, transparent 60%);
    }

    /* Watermark */
    .feat-rv-watermark {
      position: absolute; top: -2px; right: -6px; z-index: 1;
      font-family: var(--fd); font-size: 60px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0; line-height: 1;
      color: rgba(var(--rc,139,117,255),0.04);
      user-select: none; pointer-events: none;
      transition: color 0.5s;
    }
    .feat-card:hover .feat-rv-watermark { color: rgba(var(--rc,139,117,255),0.08); }

    /* Decorative lines */
    .feat-rv-line {
      position: absolute; pointer-events: none;
      width: 1px; transform-origin: top center; z-index: 1;
    }
    .feat-rv-line-1 {
      height: 90px; top: -12px; right: 150px;
      background: linear-gradient(to bottom, transparent 0%, rgba(var(--rc,139,117,255),0.35) 50%, transparent 100%);
      transform: rotate(14deg); opacity: 0.6; transition: opacity 0.4s;
    }
    .feat-rv-line-2 {
      height: 65px; top: 0; right: 128px;
      background: linear-gradient(to bottom, transparent 0%, rgba(239,249,35,0.25) 55%, transparent 100%);
      transform: rotate(14deg); opacity: 0.3; transition: opacity 0.4s;
    }
    .feat-card:hover .feat-rv-line-1 { opacity: 1; }
    .feat-card:hover .feat-rv-line-2 { opacity: 0.6; }

    /* Scan line */
    .feat-rv-scan {
      position: absolute; left: 0; right: 0; height: 1px; top: 50%; z-index: 1;
      background: linear-gradient(to right, transparent 0%, rgba(var(--rc,139,117,255),0.1) 40%, rgba(239,249,35,0.05) 60%, transparent 100%);
      pointer-events: none;
    }

    /* Tier badge */
    .feat-rv-tier {
      position: absolute; top: 10px; right: 10px; z-index: 4;
      font-family: var(--fd); font-size: 11px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.14em;
      color: rgba(var(--rc,139,117,255),1);
      background: rgba(var(--rc,139,117,255),0.15);
      border: 1px solid rgba(var(--rc,139,117,255),0.45);
      padding: 4px 10px; border-radius: 3px; pointer-events: none;
      box-shadow: 0 0 10px rgba(var(--rc,139,117,255),0.15);
      transition: background 0.4s, border-color 0.4s, color 0.4s;
    }
    .feat-card:hover .feat-rv-tier {
      background: rgba(239,249,35,0.12);
      border-color: rgba(239,249,35,0.45);
      color: rgba(239,249,35,1);
      box-shadow: 0 0 12px rgba(239,249,35,0.2);
    }

    /* Bottom fade overlay */
    .feat-overlay {
      position: absolute; inset: 0; z-index: 2; pointer-events: none;
      background: linear-gradient(to top,
        rgba(5,7,9,0.98) 0%, rgba(5,7,9,0.82) 28%,
        rgba(5,7,9,0.15) 55%, transparent 80%);
    }

    /* Event logo slot uses the exact registered artwork URL. */
    .feat-logo-wrap {
      position: absolute; top: 0; left: 0; right: 0; bottom: 52px;
      z-index: 4; pointer-events: none;
      display: flex; align-items: center; justify-content: center;
      transition: opacity 0.45s var(--ease);
    }
    .feat-card:hover .feat-logo-wrap {
      opacity: 0.12;
    }
    .feat-logo-img {
      max-width: 72%;
      max-height: 88px;
      width: auto;
      height: auto;
      object-fit: contain;
      filter: drop-shadow(0 0 12px rgba(var(--rc,139,117,255),0.45))
              drop-shadow(0 0 28px rgba(var(--rc,139,117,255),0.18));
      transition: filter 0.45s var(--ease);
    }
    .feat-card:hover .feat-logo-img {
      filter: drop-shadow(0 0 4px rgba(var(--rc,139,117,255),0.10));
    }

    /* Content area wrapper */
    .feat-main {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
    }

    /* Static block: event name + meta chips */
    .reveal-static {
      padding: 10px 14px 10px; position: relative; z-index: 2;
      transition: transform 0.45s var(--ease);
    }
    .feat-card:hover .reveal-static { transform: translateY(-46px); }

    .feat-event-name {
      font-family: var(--fd);
      font-size: 18px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.1;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      margin-bottom: 5px;
      transform: scaleY(1.15);
      transform-origin: bottom left;
    }

    .feat-meta { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
    .feat-meta .rv-region-pill,
    .feat-meta .chip {
      width: 70px;
      min-height: 20px;
      box-sizing: border-box;
      justify-content: center;
    }

    /* Region pill */
    .rv-region-pill {
      display: inline-flex; align-items: center; gap: 4px;
      font-family: var(--fd); font-size: 9px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.14em;
      color: rgb(var(--rc,139,117,255));
      background: rgba(var(--rc,139,117,255),0.12);
      border: 1px solid rgba(var(--rc,139,117,255),0.28);
      padding: 2px 7px 2px 5px; border-radius: 3px;
      text-decoration: none;
    }
    .rv-region-pill::before {
      content: ''; display: block; width: 4px; height: 4px;
      border-radius: 50%; background: rgb(var(--rc,139,117,255));
      box-shadow: 0 0 6px rgba(var(--rc,139,117,255),0.8); flex-shrink: 0;
    }

    /* Reveal panel */
    .reveal-panel {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
      background: rgba(5,7,9,0.94);
      backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
      transform: translateY(100%);
      transition: transform 0.45s var(--ease);
    }
    .feat-card:hover .reveal-panel { transform: translateY(0); }
    .reveal-panel::before {
      content: ''; display: block; height: 2px;
      background: linear-gradient(to right,
        rgba(var(--rc,139,117,255),0.9) 0%, rgba(var(--rc,139,117,255),0.5) 35%,
        rgba(239,249,35,0.7) 65%, rgba(var(--rc,139,117,255),0.2) 100%);
    }

    /* Compact stats row inside panel */
    .rv-compact-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      align-items: center;
      gap: 8px;
      padding: 7px 10px 9px;
      min-width: 0;
    }
    .rv-compact-stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      align-items: center;
      min-width: 0;
    }
    .rv-compact-stat {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center; gap: 2px; flex: 1;
      min-width: 0;
      padding: 0 8px;
    }
    .rv-compact-stat + .rv-compact-stat {
      border-left: 1px solid rgba(255,255,255,0.07);
    }
    .rv-compact-val {
      font-family: var(--fd); font-size: 11px; font-weight: 900;
      letter-spacing: 0.02em; color: var(--text); line-height: 1.2;
      white-space: nowrap;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .rv-compact-val.accent { color: var(--accent); text-shadow: 0 0 10px rgba(239,249,35,0.35); }
    .rv-compact-stat.period .rv-compact-val {
      font-size: 12px;
      letter-spacing: 0;
    }
    .rv-compact-label {
      font-family: var(--fd); font-size: 7px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.11em; color: var(--text-dim);
    }
    .rv-cta {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--fd); font-size: 9px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.12em;
      color: #000; background: var(--accent); border: none;
      padding: 5px 11px; border-radius: 3px; cursor: pointer;
      transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
      box-shadow: 0 0 14px rgba(239,249,35,0.3);
      white-space: nowrap;
      min-width: 88px;
      justify-content: center;
      text-decoration: none;
    }
    .rv-cta:hover { background: #fff; box-shadow: 0 0 22px rgba(239,249,35,0.5); transform: translateY(-1px); }
    .rv-cta::after { content: '→'; transition: transform 0.2s; }
    .rv-cta:hover::after { transform: translateX(3px); }

    /* Carousel nav — hidden when only one event */
    .feat-nav {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 9px 0 3px;
    }
    .feat-nav.hidden { display: none; }

    .feat-btn {
      background: transparent;
      border: 1px solid var(--line);
      color: var(--text-dim);
      width: 22px; height: 22px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      border-radius: 50%;
      font-size: 16px; padding: 0; line-height: 1;
      transition: all 0.15s;
    }
    .feat-btn:hover { border-color: rgba(239,249,35,0.4); color: var(--accent); }

    .feat-dots { display: flex; gap: 5px; align-items: center; }
    .feat-dot {
      width: 5px; height: 5px;
      background: var(--line-strong);
      border-radius: 50%;
      cursor: pointer;
      transition: background 0.2s, transform 0.2s;
    }
    .feat-dot.active {
      background: var(--accent);
      transform: scale(1.3);
      box-shadow: 0 0 7px rgba(239,249,35,0.4);
    }

    /* Auto-progress bar at bottom of card when multiple events */
    .feat-progress {
      position: absolute;
      bottom: 0; left: 0;
      height: 2px;
      background: var(--accent);
      opacity: 0.55;
      width: 0%;
      z-index: 10;
      transition: width linear;
    }
    .event-meta { display:flex; flex-wrap:wrap; gap:4px; margin:0; }

    .chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      min-height: 20px;
      border: 1px solid rgba(255,255,255,0.11);
      color: #b4bdca;
      padding: 0 7px;
      font-family: var(--fd);
      font-size: 12px;
      font-weight: 700;
      line-height: 1;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      background: rgba(0,0,0,0.4);
      border-radius: var(--r-sm);
      backdrop-filter: blur(4px);
    }
    .chip.status-live {
      color: var(--red);
      border-color: rgba(239,68,68,0.58);
      background: rgba(239,68,68,0.10);
      box-shadow: 0 0 12px rgba(239,68,68,0.08);
    }
    .chip.status-ongoing {
      color: #38bdf8;
      border-color: rgba(56,189,248,0.46);
      background: rgba(56,189,248,0.09);
    }
    .chip.status-upcoming {
      color: var(--accent);
      border-color: rgba(239,249,35,0.42);
      background: rgba(239,249,35,0.08);
    }
    .chip.status-finished {
      color: #22c55e;
      border-color: rgba(34,197,94,0.42);
      background: rgba(34,197,94,0.08);
    }

    .event-desc { display:none; }

    .feat-meta .chip {
      font-size: 10px;
      font-weight: 900;
      letter-spacing: 0.14em;
      padding: 2px 7px;
      border-radius: 3px;
      line-height: 1.2;
    }

    /* ── Region Tabs ── */
    .region-tabs {
      display:grid;
      gap:5px;
      margin-bottom:12px;
    }
    .region-tabs.region-scope { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .region-tabs.global-scope { grid-template-columns:1fr; }
    .region-tab {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
      min-height: 62px;
      padding: 7px 4px;
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--r);
      cursor: pointer;
      color: var(--text-dim);
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      transition: all 0.2s var(--ease);
    }
    .region-tabs.global-scope .region-tab {
      min-height: 86px;
      flex-direction: row;
      gap: 14px;
      justify-content: flex-start;
      padding: 12px 14px;
    }
    a.region-tab { text-decoration: none; }
    .region-tab.active { color: var(--text); }
    .region-tab[data-region="AM"].active {
      background: rgba(232,53,74,0.10);
      border-color: rgba(232,53,74,0.35);
      box-shadow: 0 0 14px rgba(232,53,74,0.08), inset 0 1px 0 rgba(232,53,74,0.12);
    }
    .region-tab[data-region="EU"].active {
      background: rgba(77,163,255,0.10);
      border-color: rgba(77,163,255,0.35);
      box-shadow: 0 0 14px rgba(77,163,255,0.08), inset 0 1px 0 rgba(77,163,255,0.12);
    }
    .region-tab[data-region="APAC"].active {
      background: rgba(34,197,94,0.10);
      border-color: rgba(34,197,94,0.35);
      box-shadow: 0 0 14px rgba(34,197,94,0.08), inset 0 1px 0 rgba(34,197,94,0.12);
    }
    .region-tab[data-region="ASIA"].active {
      background: rgba(245,197,24,0.10);
      border-color: rgba(245,197,24,0.35);
      box-shadow: 0 0 14px rgba(245,197,24,0.08), inset 0 1px 0 rgba(245,197,24,0.12);
    }
    .region-tab.global-card {
      color: var(--text-dim);
      border-color: rgba(210,215,222,0.22);
      background:
        radial-gradient(ellipse at 82% 18%, rgba(239,249,35,0.15), transparent 42%),
        radial-gradient(ellipse at 18% 84%, rgba(210,215,222,0.13), transparent 48%),
        linear-gradient(135deg, rgba(255,255,255,0.045), rgba(255,255,255,0.012)),
        #090b0e;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 10px 28px rgba(0,0,0,0.20);
      overflow: hidden;
      position: relative;
    }
    .region-tabs.global-scope .global-card::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(239,249,35,0.28), transparent 44%),
        repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 8px);
      opacity: 0.42;
      pointer-events: none;
    }
    .region-tabs.global-scope .global-card::after {
      content: '';
      position: absolute;
      right: -16px;
      top: -28px;
      width: 120px;
      height: 120px;
      border: 1px solid rgba(239,249,35,0.18);
      border-radius: 50%;
      pointer-events: none;
    }
    .region-tab.global-card:hover,
    .region-tab.global-card.active {
      border-color: rgba(239,249,35,0.55);
      background:
        radial-gradient(ellipse at 82% 18%, rgba(239,249,35,0.24), transparent 42%),
        radial-gradient(ellipse at 18% 84%, rgba(210,215,222,0.18), transparent 48%),
        linear-gradient(135deg, rgba(239,249,35,0.08), rgba(255,255,255,0.018)),
        #0d0f10;
      box-shadow: 0 0 22px rgba(239,249,35,0.10), inset 0 1px 0 rgba(239,249,35,0.14);
    }
    .region-tab:hover:not(.active) {
      border-color: var(--line-strong);
      color: var(--text-dim);
      background: var(--panel-mid);
    }
    /* Global card insignia icon */
    .pw-icon {
      width: 42px; height: 42px;
      display: block; margin-bottom: 0;
      position: relative; flex-shrink: 0;
      overflow: hidden;
    }
    .pw-icon img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }
    .region-tabs.global-scope .pw-icon {
      width: 54px;
      height: 54px;
      z-index: 1;
      background: transparent;
      border: 0;
      overflow: visible;
      filter: drop-shadow(0 0 18px rgba(239,249,35,0.16));
    }
    .region-tabs.global-scope .global-logo {
      filter:
        drop-shadow(0 4px 10px rgba(0,0,0,0.45))
        drop-shadow(0 0 12px rgba(239,249,35,0.18));
    }
    .global-card-copy {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      gap: 3px;
      min-width: 0;
      text-align: left;
    }
    .global-card-title {
      color: var(--text);
      font-family: var(--fd);
      font-size: 17px;
      font-weight: 800;
      line-height: 1;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .global-card-kicker {
      color: var(--text-dim);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.1;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .global-logo {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      filter: drop-shadow(0 0 10px rgba(239,249,35,0.22));
      transform-origin: center center;
      transition: transform 0.65s cubic-bezier(.4,0,.2,1), filter 0.25s var(--ease);
    }
    .global-card:hover .global-logo,
    .global-card.active .global-logo {
      filter: drop-shadow(0 0 16px rgba(239,249,35,0.55));
    }

    /* Region color dots — replace blade PNGs */
    .region-dot {
      width: 16px; height: 16px;
      border-radius: 50%;
      margin-bottom: 1px;
      flex-shrink: 0;
      transition: box-shadow 0.2s var(--ease), transform 0.2s var(--ease);
    }
    .region-tab[data-region="AM"]   .region-dot { background: var(--am);   box-shadow: 0 0 0 2px rgba(232,53,74,0.2); }
    .region-tab[data-region="EU"]   .region-dot { background: var(--eu);   box-shadow: 0 0 0 2px rgba(77,163,255,0.2); }
    .region-tab[data-region="APAC"] .region-dot { background: var(--apac); box-shadow: 0 0 0 2px rgba(34,197,94,0.2); }
    .region-tab[data-region="ASIA"] .region-dot { background: var(--asia); box-shadow: 0 0 0 2px rgba(245,197,24,0.2); }

    .region-tab[data-region="AM"].active   .region-dot { box-shadow: 0 0 14px rgba(232,53,74,0.7),  0 0 0 2px rgba(232,53,74,0.45);  transform: scale(1.1); }
    .region-tab[data-region="EU"].active   .region-dot { box-shadow: 0 0 14px rgba(77,163,255,0.7), 0 0 0 2px rgba(77,163,255,0.45); transform: scale(1.1); }
    .region-tab[data-region="APAC"].active .region-dot { box-shadow: 0 0 14px rgba(34,197,94,0.7),  0 0 0 2px rgba(34,197,94,0.45);  transform: scale(1.1); }
    .region-tab[data-region="ASIA"].active .region-dot { box-shadow: 0 0 14px rgba(245,197,24,0.7), 0 0 0 2px rgba(245,197,24,0.45); transform: scale(1.1); }

    .region-tab[data-region]:hover .region-dot { transform: scale(1.08); }

    /* ── Calendar ── */
    .rail-calendar {
      --cal-rc: 139,117,255;
      border-top: 1px solid var(--line);
      padding: 5px 0 2px;
      margin-top: 0;
      position: relative;
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      min-height: 0;
      overflow: hidden;
    }
    .cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
    .cal-month-label {
      font-family: var(--fd);
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: rgb(var(--cal-rc,139,117,255));
    }
    .cal-nav-btn {
      background: var(--panel);
      border: 1px solid var(--line);
      color: var(--text-dim);
      width: 22px; height: 22px;
      font-size: 16px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      padding: 0; line-height: 1;
      border-radius: 4px;
      transition: all 0.15s;
    }
    .cal-nav-btn:hover {
      border-color: rgba(var(--cal-rc,139,117,255),0.42);
      color: rgb(var(--cal-rc,139,117,255));
      background: rgba(var(--cal-rc,139,117,255),0.10);
    }
    .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); column-gap:2px; row-gap:2px; }
    .cal-dow {
      text-align: center;
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 800;
      color: var(--text-dim);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      padding: 1px 0 4px;
    }
    .cal-day {
      border: 1px solid transparent;
      background: transparent;
      width: 100%;
      text-align: center;
      font-family: var(--fm);
      font-size: 11px;
      font-weight: 500;
      color: var(--text-dim);
      padding: 3px 2px;
      cursor: pointer;
      position: relative;
      line-height: 1.2;
      border-radius: 3px;
      transition: background 0.12s, color 0.12s;
    }
    .cal-day.active {
      color: #050709;
      background: linear-gradient(145deg, rgba(var(--cal-rc,139,117,255),0.96), rgba(var(--cal-rc,139,117,255),0.70));
      font-weight: 800;
      box-shadow: 0 0 16px rgba(var(--cal-rc,139,117,255),0.22);
    }
    .cal-day:hover:not(.empty) { background: var(--panel-mid); color: var(--text); }
    .cal-day.active:hover:not(.empty) {
      background: linear-gradient(145deg, rgba(var(--cal-rc,139,117,255),0.98), rgba(var(--cal-rc,139,117,255),0.74));
      color: #050709;
    }
    .cal-day.today {
      color: rgb(var(--cal-rc,139,117,255));
      font-weight: 700;
      background: rgba(var(--cal-rc,139,117,255),0.10);
      border: 1px solid rgba(var(--cal-rc,139,117,255),0.32);
      border-radius: 4px;
      box-shadow: 0 0 14px rgba(var(--cal-rc,139,117,255),0.13), inset 0 0 8px rgba(var(--cal-rc,139,117,255),0.05);
    }
    .cal-day.today.active {
      color: #050709;
      background: linear-gradient(145deg, rgba(var(--cal-rc,139,117,255),0.96), rgba(var(--cal-rc,139,117,255),0.70));
      border-color: rgba(var(--cal-rc,139,117,255),0.98);
      font-weight: 900;
      box-shadow:
        0 0 18px rgba(var(--cal-rc,139,117,255),0.28),
        inset 0 1px 0 rgba(255,255,255,0.20);
    }
    .cal-day.has-event {
      color: var(--text);
      font-weight: 800;
      background:
        linear-gradient(145deg, rgba(var(--cal-rc,139,117,255),0.20), rgba(239,249,35,0.07)),
        rgba(255,255,255,0.018);
      border-color: rgba(var(--cal-rc,139,117,255),0.46);
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.035),
        0 0 14px rgba(var(--cal-rc,139,117,255),0.13);
    }
    .cal-day.has-event::before {
      content: '';
      position: absolute;
      inset: 2px 2px auto 2px;
      height: 1px;
      background: linear-gradient(90deg, rgba(var(--cal-rc,139,117,255),0.8), rgba(239,249,35,0.65));
      opacity: 0.65;
      pointer-events: none;
    }
    .cal-day.selected-event:not(.active) {
      color: rgb(var(--cal-rc,139,117,255));
      border-color: rgba(var(--cal-rc,139,117,255),0.62);
      box-shadow:
        inset 0 0 0 1px rgba(var(--cal-rc,139,117,255),0.14),
        0 0 18px rgba(var(--cal-rc,139,117,255),0.20);
    }
    .cal-day.event-start:not(.active) {
      border-left-color: rgba(var(--cal-rc,139,117,255),0.95);
    }
    .cal-day.event-end:not(.active) {
      border-right-color: rgba(var(--cal-rc,139,117,255),0.95);
    }
    .cal-day.active.has-event {
      color: #050709;
      background:
        linear-gradient(145deg, rgba(var(--cal-rc,139,117,255),0.96), rgba(var(--cal-rc,139,117,255),0.70));
      border-color: rgba(var(--cal-rc,139,117,255),0.98);
      font-weight: 900;
      box-shadow:
        0 0 18px rgba(var(--cal-rc,139,117,255),0.28),
        inset 0 1px 0 rgba(255,255,255,0.20);
    }
    .cal-day.has-event::after {
      content: '';
      position: absolute;
      bottom: 2px; left: 4px; right: 4px;
      height: 2px;
      background: linear-gradient(90deg, rgba(var(--cal-rc,139,117,255),0.95), rgba(239,249,35,0.9));
      border-radius: 999px;
    }
    .cal-day.today.has-event::after { background: rgb(var(--cal-rc,139,117,255)); }
    .cal-day.active.has-event::after { display: none; }
    .cal-day.empty { cursor: default; }
    .cal-agenda {
      display: flex;
      flex-direction: column;
      gap: 7px;
      margin-top: 7px;
      flex: 1 1 auto;
      min-height: 0;
      overflow: hidden;
    }
    .cal-agenda-heading {
      font-family: var(--fd);
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--text-dim);
      margin-bottom: 2px;
    }
    .cal-agenda-item {
      display: flex;
      align-items: center;
      flex: 0 0 auto;
      gap: 9px;
      width: 100%;
      min-height: 76px;
      border: 1px solid rgba(var(--cal-rc,139,117,255),0.42);
      background:
        linear-gradient(135deg, rgba(var(--cal-rc,139,117,255),0.18), rgba(255,255,255,0.02)),
        rgba(255,255,255,0.06);
      color: var(--text);
      border-radius: 6px;
      padding: 11px 10px;
      text-align: left;
      position: relative;
      overflow: hidden;
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.13),
        inset 0 0 0 1px rgba(255,255,255,0.045),
        0 8px 24px rgba(0,0,0,0.16);
    }
    .cal-agenda-item::before {
      content: '';
      position: absolute;
      inset: 0 auto 0 0;
      width: 3px;
      background: linear-gradient(180deg, rgba(var(--cal-rc,139,117,255),1), var(--accent));
    }
    .cal-agenda-date {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 38px;
      min-height: 46px;
      flex-shrink: 0;
      border-right: 1px solid rgba(var(--cal-rc,139,117,255),0.28);
      padding-right: 7px;
      margin-left: 1px;
    }
    .cal-agenda-day {
      font-family: var(--fd);
      font-size: 24px;
      font-weight: 800;
      line-height: 1;
      color: var(--accent);
    }
    .cal-agenda-mon {
      margin-top: 2px;
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: var(--text-dim);
    }
    .cal-agenda-main {
      min-width: 0;
      flex: 1;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      grid-template-rows: repeat(3, auto);
      column-gap: 8px;
      row-gap: 2px;
      align-items: center;
      align-self: stretch;
      align-content: space-between;
      padding: 2px 0;
    }
    .cal-agenda-name {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-family: var(--fd);
      font-size: 15px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0;
      line-height: 1.08;
      grid-column: 1;
    }
    .cal-agenda-phase {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      margin-top: 0;
      font-size: 12px;
      font-weight: 700;
      color: rgba(255,255,255,0.78);
      line-height: 1.1;
      grid-column: 1;
    }
    .cal-agenda-meta {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      margin-top: 0;
      font-size: 10px;
      font-weight: 600;
      color: var(--muted);
      line-height: 1.15;
      grid-column: 1;
    }
    .cal-agenda-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 0;
      grid-column: 2;
      grid-row: 1 / 4;
      flex-direction: column;
      flex-wrap: nowrap;
      justify-content: center;
      align-self: center;
      min-width: 72px;
    }
    .cal-agenda-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      min-height: 20px;
      border: 1px solid rgba(var(--cal-rc,139,117,255),0.36);
      background: rgba(0,0,0,0.22);
      color: var(--text-dim);
      border-radius: 4px;
      padding: 0 5px;
      font-family: var(--fd);
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0;
      line-height: 1;
    }
    .cal-agenda-badge-text {
      display: inline-flex;
      align-items: center;
      line-height: 1;
    }
    .cal-agenda-badge.live {
      color: var(--red);
      border-color: rgba(239,68,68,0.58);
      background: rgba(239,68,68,0.08);
    }
    .cal-agenda-badge.ongoing {
      color: #38bdf8;
      border-color: rgba(56,189,248,0.44);
      background: rgba(56,189,248,0.08);
    }
    .cal-agenda-badge.upcoming {
      color: var(--accent);
      border-color: rgba(239,249,35,0.42);
      background: rgba(239,249,35,0.06);
    }
    .cal-agenda-badge.finished {
      color: #22c55e;
      border-color: rgba(34,197,94,0.38);
      background: rgba(34,197,94,0.07);
    }
    .cal-agenda-empty {
      border: 1px dashed var(--line);
      color: var(--text-dim);
      border-radius: 4px;
      padding: 9px 8px;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    /* ── Watch Live ── */
    .watch-live-btn {
      display: none;
      align-items: center;
      gap: 7px;
      border: 1px solid var(--red);
      background: rgba(239,68,68,0.07);
      color: var(--red);
      font-family: var(--fd);
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      padding: 6px 14px;
      cursor: pointer;
      flex-shrink: 0;
      border-radius: var(--r-sm);
      transition: all 0.2s var(--ease);
    }
    .watch-live-btn.visible { display:flex; }
    .watch-live-btn:hover, .watch-live-btn.active-stream {
      background: var(--red);
      color: #fff;
      box-shadow: 0 0 22px rgba(239,68,68,0.28);
    }

    .live-dot {
      width: 6px; height: 6px;
      background: currentColor;
      border-radius: 50%;
      flex-shrink: 0;
      animation: blink 1.3s ease-in-out infinite;
    }
    @keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.25} }

    /* ── Stream Embed ── */
    .stream-embed {
      display: none;
      width: 100%;
      max-width: 1180px;
      margin: 0 auto;
      border: 1px solid var(--line);
      border-radius: var(--r);
      overflow: hidden;
      background: #000;
    }
    .stream-embed.visible {
      display: flex;
      flex-direction: column;
    }
    .stream-iframe-wrap {
      position: relative;
      width: 100%;
      height: clamp(240px, 52vw, calc(100vh - 260px));
      min-height: 0;
      background: #000;
    }
    .stream-iframe-wrap iframe, .stream-placeholder {
      position:absolute; inset:0; width:100%; height:100%; border:0;
    }
    .stream-placeholder {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 12px;
      background: #060608;
      color: var(--text-dim);
      font-family: var(--fd);
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.07em;
    }
    .stream-placeholder a {
      color: var(--accent);
      text-decoration: none;
      border-bottom: 1px solid rgba(239,249,35,0.35);
    }
    .stream-placeholder a:hover { color: var(--text); border-color: var(--text); }
    .stream-play-icon {
      width: 48px; height: 48px;
      border: 2px solid var(--line-strong);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 20px; color: var(--red);
    }
    .stream-bar {
      display: flex; justify-content: space-between; align-items: center;
      padding: 7px 16px;
      border-top: 1px solid var(--line);
      background: rgba(4,5,8,0.96);
    }
    .stream-bar-label {
      display: flex; align-items: center; gap: 8px;
      font-family: var(--fd); font-size: 10px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.06em;
      color: var(--text-dim);
    }
    .stream-close-btn {
      background: var(--panel); border: 1px solid var(--line); color: var(--text-dim);
      font-size: 14px; cursor: pointer;
      width: 24px; height: 24px;
      display: flex; align-items: center; justify-content: center;
      line-height: 1; padding: 0; border-radius: 4px;
      transition: border-color 0.15s, color 0.15s;
    }
    .stream-close-btn:hover { border-color: var(--line-strong); color: var(--text); }

    /* Stream live toast */
    .stream-live-toast {
      position: fixed; bottom: 24px; right: 24px; z-index: 9998;
      display: flex; align-items: center; gap: 8px;
      background: rgba(10,10,10,0.96);
      border: 1px solid rgba(239,249,35,0.4);
      color: var(--text);
      font-family: var(--fd); font-size: 13px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.08em;
      padding: 10px 18px; border-radius: 4px;
      box-shadow: 0 0 24px rgba(239,249,35,0.14), 0 8px 24px rgba(0,0,0,0.5);
      opacity: 0; transform: translateY(10px);
      transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
      pointer-events: none;
    }
    .stream-live-toast.visible { opacity: 1; transform: translateY(0); }

    /* Platform toggle */
    .stream-platform-toggle {
      display: none; gap: 6px; margin-bottom: 12px;
    }
    .stream-platform-toggle.visible { display: flex; }
    .stream-platform-btn {
      display: inline-flex; align-items: center; gap: 7px;
      font-family: var(--fd); font-size: 11px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.1em;
      padding: 7px 16px; border-radius: 4px; cursor: pointer;
      background: var(--panel); border: 1px solid var(--line);
      color: var(--text-dim); transition: all 0.2s var(--ease);
    }
    .stream-platform-btn:hover { border-color: var(--line-strong); color: var(--text); }
    .stream-platform-btn.active {
      background: rgba(239,249,35,0.10); border-color: rgba(239,249,35,0.4);
      color: var(--accent); box-shadow: 0 0 12px rgba(239,249,35,0.12);
    }
    .stream-platform-btn svg { width: 14px; height: 14px; fill: currentColor; flex-shrink: 0; }

    .stream-panel {
      padding: 14px;
      min-height: calc(100vh - 182px);
      align-content: start;
    }
    .stream-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
      gap: 12px;
      align-items: stretch;
      max-width: 1540px;
      margin: 0 auto;
    }
    .stream-chat {
      display: none;
      border: 1px solid var(--line);
      border-radius: var(--r);
      overflow: hidden;
      background: #080808;
      min-height: 360px;
    }
    .stream-chat.visible {
      display: flex;
      flex-direction: column;
    }
    .stream-chat-header {
      display: flex;
      align-items: center;
      gap: 8px;
      min-height: 38px;
      padding: 0 12px;
      border-bottom: 1px solid var(--line);
      background: rgba(4,5,8,0.96);
      color: var(--text-dim);
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }
    .stream-chat-frame-wrap {
      position: relative;
      flex: 1;
      min-height: 0;
    }
    .stream-chat-frame-wrap iframe,
    .stream-chat-placeholder {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
    .stream-chat-placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 18px;
      color: var(--text-dim);
      font-family: var(--fd);
      font-size: 11px;
      font-weight: 800;
      text-align: center;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      background: #060608;
    }
    @media (max-width:1180px) {
      .stream-layout { grid-template-columns:1fr; }
      .stream-chat { min-height:360px; }
    }

    .board-empty {
      padding: 32px; text-align: center;
      color: var(--text-dim);
      font-family: var(--fd); font-size: 11px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.06em;
    }

    /* ── Content ── */
    .content { padding:0; overflow:auto; }
    .content.is-stats-loading .event-meta-inline strong,
    .content.is-stats-loading .event-meta-inline span {
      color: var(--muted);
      opacity: 0.7;
    }

    /* ── Event Hero ── */
    .event-hero {
      display: flex; align-items: flex-start;
      justify-content: space-between;
      gap: 20px;
      border-bottom: 1px solid var(--line);
      padding: 22px 24px 20px;
      background: linear-gradient(155deg, #0a0c0e 0%, #070809 50%, #090a08 100%);
      position: relative; overflow: hidden;
      min-height: 90px;
    }
    .event-hero::before {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 3px; height: 100%;
      background: linear-gradient(180deg, var(--accent) 0%, rgba(239,249,35,0.2) 70%, transparent 100%);
      z-index: 3;
    }

    /* ── Hero diagonal lines canvas ── */
    .hero-canvas {
      position: absolute; inset: 0; z-index: 1;
      pointer-events: none; width: 100%; height: 100%;
    }
    /* hero content sits above all decorative layers */
    .event-hero > div,
    .event-hero > button { position: relative; z-index: 2; }
    .event-hero h2 {
      font-family: var(--fd);
      font-size: 30px;
      font-weight: 800;
      letter-spacing: 0.01em;
      text-transform: uppercase;
      line-height: 0.98;
      margin-bottom: 10px;
      max-width: min(680px, 70vw);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .event-meta-inline {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px 10px;
      color: var(--text-dim);
    }
    .event-meta-item {
      display: inline-flex;
      align-items: baseline;
      gap: 4px;
      min-height: 18px;
      font-family: var(--fd);
      font-size: 12px;
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.66);
    }
    .event-meta-item strong {
      font-family: var(--fm);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0;
      color: var(--text);
      font-variant-numeric: tabular-nums;
    }
    .event-meta-item + .event-meta-item::before {
      content: '';
      width: 18px;
      height: 2px;
      margin-right: 2px;
      border-radius: 999px;
      background: linear-gradient(90deg, transparent, rgba(239,249,35,0.52), rgba(255,255,255,0.24), transparent);
      box-shadow: 0 0 8px rgba(239,249,35,0.16);
      align-self: center;
      transform: translateY(-1px);
    }
    .event-meta-item.status strong {
      font-family: var(--fd);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: rgba(255,255,255,0.66);
    }
    .event-hero p { display: block; }

    /* ── Live Badge ── */
    .live-badge {
      position: absolute; top: 8px; right: 8px;
      display: flex; align-items: center; gap: 5px;
      background: rgba(239,68,68,0.12);
      border: 1px solid rgba(239,68,68,0.38);
      padding: 3px 8px;
      font-family: var(--fd); font-size: 9px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.1em;
      color: var(--red); border-radius: 3px;
      box-shadow: 0 0 12px rgba(239,68,68,0.1);
    }
    .feat-card .live-badge {
      top: 10px;
      right: 58px;
      min-height: 25px;
      padding: 4px 10px;
      font-size: 11px;
      letter-spacing: 0.14em;
      gap: 6px;
    }

    /* ── Summary Strip ── */
    .summary-strip { display:flex; gap:8px; flex-shrink:0; align-items:flex-start; }
    .summary-item {
      border: 1px solid var(--line);
      background: var(--panel);
      padding: 10px 16px; text-align: center; min-width: 62px;
      border-radius: var(--r);
      backdrop-filter: blur(8px);
      transition: border-color 0.2s, background 0.2s;
    }
    .summary-item:hover { border-color: var(--line-strong); background: var(--panel-mid); }
    .summary-item b {
      display: block;
      font-family: var(--fm); font-size: 20px; font-weight: 700;
      margin-bottom: 3px; color: var(--text); line-height: 1;
    }
    .summary-item span {
      color: var(--text-dim);
      font-family: var(--fd); font-size: 10px;
      text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700;
    }

    /* ── Content Tabs ── */
    .content-tabs {
      display: flex;
      border-bottom: 1px solid var(--line);
      padding: 0 24px;
      background: rgba(6,6,6,0.85);
      gap: 0;
      position: sticky;
      top: 0;
      z-index: 10;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .content-tab {
      display: flex; align-items: center;
      height: 46px; padding: 0 18px;
      background: transparent;
      border: 0;
      font-family: var(--fd); font-size: 12px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.1em;
      color: var(--text-dim); cursor: pointer;
      border-bottom: 2px solid transparent;
      transition: color 0.2s var(--ease), border-color 0.2s var(--ease);
      white-space: nowrap; position: relative;
    }
    .content-tab:hover { color: var(--text-dim); }
    .content-tab.active {
      color: var(--accent);
      border-bottom-color: var(--accent);
      text-shadow: 0 0 18px rgba(239,249,35,0.35);
    }
    .phase-tabs {
      display: none;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
      padding: 9px 24px;
      border-bottom: 1px solid var(--line);
      background: rgba(8,8,8,0.72);
      overflow: visible;
      position: relative;
      z-index: 60;
    }
    .phase-tabs.visible { display: flex; }
    .phase-tabs.loading {
      min-height: 47px;
    }
    .phase-tabs-loading-line {
      width: min(310px, 64%);
      height: 12px;
      border-radius: 4px;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.045) 20%, rgba(255,255,255,0.11) 42%, rgba(255,255,255,0.045) 64%);
      background-size: 280% 100%;
      animation: skeleton-sheen 1.2s ease-in-out infinite;
    }
    .phase-stage-list {
      display: inline-flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
    }
    .phase-tab {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border: 1px solid var(--line);
      background: var(--panel);
      color: var(--text-dim);
      height: 28px;
      padding: 0 11px;
      border-radius: var(--r-sm);
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      white-space: nowrap;
      cursor: pointer;
    }
    .phase-tab:hover { border-color: var(--line-strong); color: var(--text-dim); }
    .phase-tab.active {
      border-color: rgba(239,249,35,0.45);
      color: var(--accent);
      background: var(--accent-dim);
      box-shadow: 0 0 10px rgba(239,249,35,0.10);
    }
    .phase-stage {
      position: relative;
      display: inline-flex;
    }
    .phase-stage-menu {
      position: absolute;
      left: 0;
      top: calc(100% + 8px);
      z-index: 120;
      display: none;
      min-width: 126px;
      border: 1px solid var(--line-strong);
      border-radius: var(--r);
      background: rgba(7,7,7,0.99);
      box-shadow: 0 14px 32px rgba(0,0,0,0.54), 0 0 0 1px rgba(239,249,35,0.045);
      padding: 4px;
    }
    .phase-filter-control {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 9px;
      margin-left: 10px;
      padding-left: 16px;
      border-left: 1px solid var(--line-strong);
    }
    .phase-filter-label {
      color: var(--muted);
      font-family: var(--fd);
      font-size: 9px;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .phase-filter-trigger {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      height: 28px;
      padding: 0 10px;
      border: 1px solid rgba(239,249,35,0.45);
      border-radius: var(--r-sm);
      background: var(--accent-dim);
      box-shadow: 0 0 10px rgba(239,249,35,0.10);
      color: var(--accent);
      cursor: pointer;
      font-family: var(--fd);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .phase-filter-trigger::after {
      content: '▾';
      font-size: 9px;
      opacity: 0.9;
    }
    .phase-filter-control .phase-stage-menu {
      left: 16px;
    }
    .phase-filter-control.open .phase-stage-menu {
      display: grid;
      gap: 4px;
    }
    .phase-menu-item {
      border: 1px solid transparent;
      background: transparent;
      color: var(--text-dim);
      border-radius: 4px;
      padding: 5px 8px;
      font-family: var(--fd);
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      text-align: left;
      cursor: pointer;
      white-space: nowrap;
    }
    .phase-menu-item:hover {
      color: var(--text);
      border-color: var(--line);
      background: rgba(255,255,255,0.045);
    }
    .phase-menu-item.active {
      color: var(--accent);
      border-color: rgba(239,249,35,0.42);
      background: rgba(239,249,35,0.07);
    }
    .tab-panel { display:none; }
    .tab-panel.active {
      display:block;
      animation: panel-enter 380ms cubic-bezier(.16,1,.3,1) both;
    }
    .data-refreshed {
      animation: data-refresh 320ms cubic-bezier(.16,1,.3,1) both;
    }

    @keyframes panel-enter {
      from { opacity:0; transform:translateY(12px); }
      to { opacity:1; transform:translateY(0); }
    }
    @keyframes data-refresh {
      from { opacity:.34; transform:translateY(4px); }
      to { opacity:1; transform:translateY(0); }
    }
    @keyframes panel-fade-in {
      from { opacity:0; }
      to { opacity:1; }
    }

    /* ── Stat Filters ── */
    .stat-filters {
      display: flex; align-items: center;
      gap: 16px; padding: 14px 24px;
      border-bottom: 1px solid var(--line);
      background: rgba(6,6,6,0.7);
      flex-wrap: wrap;
    }
    .filter-group { display:flex; align-items:center; gap:10px; }
    .filter-label {
      font-family: var(--fd); font-size: 10px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.08em;
      color: var(--text-dim); white-space: nowrap;
    }
    .filter-chips { display:flex; gap:4px; }
    .filter-chip {
      padding: 4px 11px;
      border: 1px solid var(--line); background: transparent;
      color: var(--text-dim);
      font-family: var(--fd); font-size: 10px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 0.05em;
      cursor: pointer; border-radius: var(--r-sm);
      transition: all 0.15s var(--ease);
    }
    .filter-chip:hover { border-color: var(--line-strong); color: var(--text-dim); background: var(--panel); }
    .filter-chip.active {
      border-color: rgba(239,249,35,0.38);
      color: var(--accent);
      background: var(--accent-dim);
      box-shadow: 0 0 8px rgba(239,249,35,0.08);
    }
    .filter-select {
      background: var(--panel-solid);
      border: 1px solid var(--line);
      color: var(--text);
      font-family: var(--fb); font-size: 12px; font-weight: 500;
      padding: 0 28px 0 12px;
      height: 30px; cursor: pointer;
      outline: none; min-width: 160px;
      border-radius: var(--r-sm);
      transition: border-color 0.15s;
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23c1c8d4'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 10px center;
    }
    .filter-select:focus { border-color: rgba(239,249,35,0.38); }
    .filter-select option { background: #1a1a1a; }

    /* ── Stats Content ── */
    .stats-content { overflow: hidden; }
    .scroll-top {
      overflow-x: scroll; overflow-y: hidden;
      height: 10px;
      background: #0a0a0a;
      border-bottom: 1px solid var(--line);
    }
    .scroll-top-inner { height:1px; pointer-events:none; }
    .scroll-top::-webkit-scrollbar { height:6px; }
    .scroll-top::-webkit-scrollbar-track { background:#0a0a0a; }
    .scroll-top::-webkit-scrollbar-thumb { background:rgba(239,249,35,0.38); border-radius:3px; }
    .scroll-top::-webkit-scrollbar-thumb:hover { background: var(--accent); }
    .scroll-top { scrollbar-color: rgba(239,249,35,0.38) #0a0a0a; scrollbar-width:thin; }
    .stats-scroll { overflow-y:auto; overflow-x:scroll; }
    .stats-scroll::-webkit-scrollbar { width:5px; height:0; }
    .stats-scroll::-webkit-scrollbar-track { background:#0d0d0d; }
    .stats-scroll::-webkit-scrollbar-thumb { background:#2a2a2a; border-radius:3px; }
    .stats-scroll::-webkit-scrollbar-thumb:hover { background:#444; }
    .stats-scroll::-webkit-scrollbar-corner { background:#0d0d0d; }
    #team-stats-scroll   { max-height:748px; }
    #player-stats-scroll { max-height:572px; }

    /* ── Stats Table ── */
    .stats-table {
      width:auto; border-collapse:collapse; table-layout:fixed;
    }
    .stats-table thead { position:sticky; top:0; z-index:3; }
    .stats-table th {
      background: #0a0a0a;
      border-bottom: 1px solid var(--line);
      padding: 0 22px; height: 40px;
      font-family: var(--fd); font-size: 10px; font-weight: 800;
      text-transform: uppercase; letter-spacing: 0.06em;
      color: var(--text-dim); text-align: center;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      cursor: pointer; user-select: none;
      transition: color 0.15s;
    }
    .stats-table th:hover { color: var(--text-dim); }
    .stats-table th:first-child {
      text-align:left; padding-left:14px; width:46px;
      position:sticky; left:0; z-index:4; background:#0a0a0a;
    }
    .stats-table th:nth-child(2) {
      text-align:left; padding-left:10px;
      width:180px; min-width:180px;
      position:sticky; left:46px; z-index:4; background:#0a0a0a;
      box-shadow: 3px 0 8px rgba(0,0,0,0.6);
    }
    .stats-table th:nth-child(n+3) { width:104px; }
    .stats-table th.sort-desc, .stats-table th.sort-asc {
      color: var(--accent);
      border-bottom: 2px solid var(--accent);
    }
    .stats-table th.sort-desc::after, .stats-table th.sort-asc::after {
      content:''; display:inline-block; margin-left:5px;
      vertical-align:middle; width:0; height:0;
    }
    .stats-table th.sort-desc::after {
      border-left:3px solid transparent; border-right:3px solid transparent;
      border-top:4px solid var(--accent);
    }
    .stats-table th.sort-asc::after {
      border-left:3px solid transparent; border-right:3px solid transparent;
      border-bottom:4px solid var(--accent);
    }
    .stats-table td {
      padding: 0 22px; height: 42px;
      font-family: var(--fm); font-size: 12px; font-weight: 500;
      color: #bac2ce; text-align: center;
      border-bottom: 1px solid rgba(255,255,255,0.04);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .stats-table td:first-child {
      font-size:11px; font-weight:700; color:var(--text-dim);
      text-align:left; padding-left:14px;
      position:sticky; left:0; z-index:1;
    }
    .stats-table td:nth-child(2) {
      text-align:left; padding-left:10px;
      width:180px; min-width:180px;
      font-weight:700; color:var(--text);
      position:sticky; left:46px; z-index:1;
      box-shadow: 3px 0 8px rgba(0,0,0,0.5);
    }
    .stats-table td:nth-child(n+3) { width:104px; }
    .stats-table.team-tbl tbody tr { background:#0c0c0c; }
    .stats-table.team-tbl tbody tr:nth-child(odd) { background:#090909; }
    .stats-table.team-tbl tbody tr:hover td { background:rgba(255,255,255,0.022); }
    .stats-table.team-tbl tbody tr td:first-child,
    .stats-table.team-tbl tbody tr td:nth-child(2) { background:#181818; }
    .stats-table.team-tbl tbody tr:nth-child(odd) td:first-child,
    .stats-table.team-tbl tbody tr:nth-child(odd) td:nth-child(2) { background:#151515; }
    .stats-table.player-tbl tbody tr { background:#0c0c0c; }
    .stats-table.player-tbl tbody tr:nth-child(odd) { background:#090909; }
    .stats-table.player-tbl tbody tr:hover td { background:rgba(255,255,255,0.022); }
    .stats-table.player-tbl tbody tr td:first-child,
    .stats-table.player-tbl tbody tr td:nth-child(2) { background:#181818; }
    .stats-table.player-tbl tbody tr:nth-child(odd) td:first-child,
    .stats-table.player-tbl tbody tr:nth-child(odd) td:nth-child(2) { background:#151515; }
    .stats-table tbody tr:last-child td { border-bottom:0; }
    .stats-table td.hi { color:var(--accent); font-weight:700; }
    .st-logo {
      width:26px; height:26px;
      background:rgba(255,255,255,0.05);
      border:1px solid var(--line); border-radius:4px;
      display:inline-flex; align-items:center; justify-content:center;
      font-family:var(--fd); font-size:8px; font-weight:900;
      color:var(--text-dim); text-transform:uppercase;
      vertical-align:middle; margin-right:8px;
    }

    /* ── Leaderboard ── */
    .leaderboard-head {
      display:flex; justify-content:space-between; gap:14px;
      align-items:center; margin-bottom:12px;
    }
    .leaderboard-head h3 {
      display: inline-flex; align-items: center; gap: 9px;
      font-family:var(--fd); font-size:16px; font-weight:800;
      text-transform:uppercase; letter-spacing:0.12em; color:var(--text);
      margin: 0;
    }
    .leaderboard-head h3::before {
      content:''; display:block; width:3px; height:18px;
      background:var(--accent); border-radius:2px;
      box-shadow:0 0 8px rgba(239,249,35,0.5);
    }
    .leaderboard-head span {
      color:var(--text-dim); font-size:13px; font-weight:600;
      font-family:var(--fd); letter-spacing:0.04em;
      background: transparent; border: 0;
      padding: 0; border-radius: 0;
    }
    .event-body-grid {
      --mvp-card-height:420px;
      --mvp-header-height:56px;
      display:grid;
      grid-template-columns: minmax(0,1fr) 300px;
      gap:0; align-items:start;
      padding:18px 0 18px 18px;
    }
    .event-body-grid > section { padding-right:20px; }
    .event-aside {
      border-left:1px solid var(--line);
      background:rgba(8,8,8,0.6);
      background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent 30%);
      padding:0; overflow:hidden;
      display:flex; flex-direction:column;
      height:var(--mvp-card-height);
      min-height:var(--mvp-card-height);
      max-height:var(--mvp-card-height);
    }

    /* ── Performance Cards ── */
    .perf-header {
      display:flex; justify-content:space-between; align-items:center;
      padding:0 15px 0 16px; min-height:var(--mvp-header-height);
      border-bottom:1px solid var(--line);
      background:
        linear-gradient(90deg, rgba(239,249,35,0.055) 0%, rgba(255,255,255,0.025) 42%, transparent 100%),
        #07090d;
    }
    .perf-header-titles { display:flex; flex-direction:column; gap:4px; min-width:0; }
    .perf-label {
      display: inline-flex; align-items: center; gap: 8px;
      font-family:var(--fd); font-size:15px; font-weight:800;
      text-transform:uppercase; letter-spacing:0.09em; color:var(--text);
      line-height:0.95;
      white-space:nowrap;
    }
    .perf-phase-label {
      font-family:var(--fd); font-size:11px; font-weight:700;
      text-transform:uppercase; letter-spacing:0.08em;
      color:rgba(255,255,255,0.58);
      padding-left:11px;
      line-height:1;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .perf-phase-label.is-fallback {
      color:var(--muted); font-style:italic;
    }
    .perf-label::before {
      content:''; display:block; width:3px; height:22px;
      background:var(--accent); border-radius:2px;
      box-shadow:0 0 12px rgba(239,249,35,0.38);
      flex:0 0 auto;
    }
    .perf-nav { display:flex; align-items:center; gap:9px; flex:0 0 auto; }
    .perf-prev, .perf-next {
      background:rgba(255,255,255,0.035); border:1px solid rgba(255,255,255,0.12); color:rgba(255,255,255,0.72);
      width:26px; height:26px; font-size:17px; cursor:pointer;
      display:flex; align-items:center; justify-content:center;
      line-height:1; padding:0; border-radius:4px;
      transition: border-color 0.15s, color 0.15s, background 0.15s;
    }
    .perf-prev:hover, .perf-next:hover {
      border-color:rgba(239,249,35,0.38); color:var(--accent); background:var(--accent-dim);
    }
    .perf-dots { display:flex; gap:6px; align-items:center; }
    .perf-dot {
      width:5px; height:5px;
      background:var(--line-strong); border-radius:50%;
      display:block; cursor:pointer;
      transition: background 0.2s, transform 0.2s;
    }
    .perf-dot.active {
      background:var(--accent); transform:scale(1.25);
      box-shadow:0 0 7px rgba(239,249,35,0.4);
    }
    .perf-track-wrap {
      overflow:hidden;
      flex:0 0 auto;
      height:calc(var(--mvp-card-height) - var(--mvp-header-height));
      min-height:0;
    }
    .perf-track { display:flex; height:100%; transition:transform 0.35s cubic-bezier(.4,0,.2,1); }
    .perf-card {
      flex:0 0 100%;
      background:#080b10;
      position:relative; overflow:hidden;
      display:flex; flex-direction:column; min-height:0;
    }
    .perf-photo {
      width:100%; height:auto; flex:1 1 auto; min-height:0;
      background:
        radial-gradient(ellipse at 50% -10%, rgba(0,100,160,0.4) 0%, transparent 65%),
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 60%),
        linear-gradient(160deg, #0d1c2e 0%, #081018 55%, #040a10 100%);
      position:relative; overflow:hidden;
      display:flex; align-items:flex-end; justify-content:center;
      border-bottom:1px solid var(--line);
    }
    /* Rank spotlights */
    .perf-card:nth-child(1) .perf-photo {
      background:
        radial-gradient(ellipse at 50% -10%, rgba(239,249,35,0.2) 0%, transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.75) 0%, transparent 60%),
        linear-gradient(160deg, #161600 0%, #0e0c00 55%, #060500 100%);
    }
    .perf-card:nth-child(2) .perf-photo {
      background:
        radial-gradient(ellipse at 50% -10%, rgba(0,188,212,0.24) 0%, transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.75) 0%, transparent 60%),
        linear-gradient(160deg, #001a1e 0%, #001418 55%, #000a0c 100%);
    }
    .perf-card:nth-child(3) .perf-photo {
      background:
        radial-gradient(ellipse at 50% -10%, rgba(192,200,212,0.17) 0%, transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.75) 0%, transparent 60%),
        linear-gradient(160deg, #141418 0%, #0e0e12 55%, #08080c 100%);
    }
    .perf-photo-overlay {
      position:absolute; bottom:0; left:0; right:0;
      padding:44px 14px 14px;
      background:linear-gradient(0deg, rgba(4,6,10,0.97) 0%, rgba(4,6,10,0.5) 55%, transparent 100%);
      z-index:3; display:flex; flex-direction:column; gap:5px;
    }
    .perf-overlay-team { display:flex; align-items:center; gap:10px; }
    .perf-overlay-logo {
      width:44px; height:44px; object-fit:contain; flex-shrink:0;
      filter:drop-shadow(0 3px 10px rgba(0,0,0,0.84));
    }
    .perf-overlay-team-name {
      font-family:var(--fd); font-size:12px; font-weight:800;
      color:rgba(255,255,255,0.78); text-transform:uppercase; letter-spacing:0.06em;
    }
    .perf-photo-rank {
      position:absolute; top:12px; left:14px;
      font-family:var(--fd); font-size:12px; font-weight:800;
      text-transform:uppercase; letter-spacing:0.08em; z-index:4;
    }
    .perf-card:nth-child(1) .perf-photo-rank { color:var(--accent); text-shadow:0 0 14px rgba(239,249,35,0.6); }
    .perf-card:nth-child(2) .perf-photo-rank { color:var(--cyan); text-shadow:0 0 14px rgba(0,188,212,0.5); }
    .perf-card:nth-child(3) .perf-photo-rank { color:var(--silver); text-shadow:0 0 12px rgba(192,200,212,0.4); }
    .perf-player-img {
      position:absolute; bottom:0; left:0;
      width:100%; height:100%;
      object-fit:cover; object-position:top center; z-index:2;
    }
    .perf-photo::before {
      content:''; position:absolute; inset:0;
      background:
        radial-gradient(ellipse at 27% 45%, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.08) 27%, transparent 48%),
        repeating-linear-gradient(
          0deg,
          rgba(255,255,255,0.015) 0px, rgba(255,255,255,0.015) 1px,
          transparent 1px, transparent 4px
        );
      z-index:0; pointer-events:none;
    }
    .perf-photo::after {
      content:'';
      position:absolute;
      left:50%;
      top:44%;
      width:96%;
      aspect-ratio:1;
      transform:translate(-50%, -50%);
      background:url('/static/image/global-events-logo-clean.png') center/contain no-repeat;
      opacity:0.52;
      filter:grayscale(1) brightness(1.08) contrast(1.65) drop-shadow(0 0 16px rgba(255,255,255,0.12));
      z-index:1;
      pointer-events:none;
    }
    .perf-player {
      font-family:var(--fd); font-size:24px; font-weight:800;
      line-height:0.95; letter-spacing:0.01em; text-transform:uppercase;
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .perf-stats { display:grid; grid-template-columns:repeat(3,1fr); flex:0 0 auto; }
    .perf-stat { padding:8px 4px; text-align:center; border-right:1px solid var(--line); }
    .perf-stat:last-child { border-right:0; }
    .perf-stat-val {
      display:block;
      font-family:'Roboto',sans-serif; font-size:15px; font-weight:900;
      line-height:1; margin-bottom:3px;
      font-variant-numeric: tabular-nums;
    }
    .perf-stat-label {
      display:block;
      font-family:var(--fd); font-size:10px; font-weight:700;
      text-transform:uppercase; letter-spacing:0.05em; color:rgba(255,255,255,0.68);
    }

    /* ── Boards ── */
    .leaderboard-grid { display:flex; flex-wrap:wrap; gap:10px; }
    .board {
      border:1px solid var(--line);
      background:rgba(10,10,10,0.9);
      border-radius:var(--r); overflow:hidden;
      flex:1 1 300px; min-width:300px;
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      transition: border-color 0.2s;
      container-type: inline-size;
      container-name: board;
    }
    .board:hover { border-color: var(--line-strong); }
    .skeleton-board:hover { border-color: var(--line); }
    .skeleton-board {
      min-height: 382px;
      padding: 12px;
    }
    .skeleton-line,
    .stats-skeleton-bar,
    .perf-skeleton-line {
      border-radius: 4px;
      background:
        linear-gradient(90deg, rgba(255,255,255,0.045) 20%, rgba(255,255,255,0.11) 42%, rgba(255,255,255,0.045) 64%);
      background-size: 280% 100%;
      animation: skeleton-sheen 1.2s ease-in-out infinite;
    }
    .skeleton-board-head {
      width: 48%;
      height: 12px;
      margin: 3px 0 20px;
    }
    .skeleton-board-row {
      display: grid;
      grid-template-columns: 26px minmax(84px, 1fr) 44px 44px;
      gap: 12px;
      align-items: center;
      height: 42px;
      border-top: 1px solid rgba(255,255,255,0.035);
    }
    .skeleton-board-row .skeleton-line:nth-child(1) { height: 8px; width: 22px; }
    .skeleton-board-row .skeleton-line:nth-child(2) { height: 12px; width: min(126px, 84%); }
    .skeleton-board-row .skeleton-line:nth-child(3),
    .skeleton-board-row .skeleton-line:nth-child(4) { height: 10px; width: 35px; }
    .perf-skeleton {
      flex: 0 0 100%;
      padding: 18px 14px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .perf-skeleton-photo {
      flex: 1;
      min-height: 250px;
    }
    .perf-skeleton-meta { width: 65%; height: 14px; }
    .perf-skeleton-stats { display: flex; gap: 8px; }
    .perf-skeleton-stats .perf-skeleton-line { height: 30px; flex: 1; }
    .stats-skeleton-cell { padding: 11px 16px; }
    .stats-skeleton-bar { display: block; height: 13px; width: min(460px, 68%); }
    @keyframes skeleton-sheen {
      from { background-position: 100% 0; }
      to { background-position: -100% 0; }
    }
    body.hub-loading .feat-art,
    body.hub-loading .leaderboard-grid .team-row {
      background:
        linear-gradient(90deg, rgba(255,255,255,0.035) 20%, rgba(255,255,255,0.095) 42%, rgba(255,255,255,0.035) 64%) !important;
      background-size: 280% 100% !important;
      animation: skeleton-sheen 1.2s ease-in-out infinite;
    }
    body.hub-loading .leaderboard-grid .board-header span,
    body.hub-loading .leaderboard-grid .team-row > *,
    body.hub-loading .perf-card .perf-photo-overlay,
    body.hub-loading .perf-card .perf-stats {
      visibility: hidden;
    }
    body.hub-loading .perf-photo {
      opacity: .52;
    }
    .board-header, .team-row {
      display:grid;
      grid-template-columns:34px 1fr 70px 78px 56px 82px;
      align-items:center; column-gap:0; padding:0 0 0 12px;
    }
    .board-header { min-height:38px; }
    .team-row { min-height:44px; }
    .board-header {
      background: linear-gradient(90deg, rgba(255,255,255,0.045) 0%, rgba(255,255,255,0.02) 100%);
      border-bottom:1px solid var(--line);
      font-family:var(--fd); font-size:10px; font-weight:900;
      text-transform:uppercase; letter-spacing:0.1em; color:var(--text-dim);
    }
    .board-header span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .board-header span:nth-child(2) { padding-left:44px; }
    .board-header span:nth-child(n+3) { text-align:center; }
    .team-info { display:flex; flex-direction:column; min-width:0; gap:1px; overflow:hidden; }
    .team-abbr {
      font-family:var(--fd); font-size:15px; font-weight:800;
      letter-spacing:0.04em; white-space:nowrap;
      overflow:hidden; text-overflow:ellipsis;
    }
    .team-abbr[data-len="5"],.team-abbr[data-len="6"] { font-size:13px; }
    .team-abbr[data-len="7"],.team-abbr[data-len="8"] { font-size:11px; letter-spacing:0.01em; }
    .team-abbr[data-len="9+"] { font-size:9px; letter-spacing:0; }
    .team-full {
      font-size:11px; color:var(--text-dim);
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .team-row {
      border-bottom:1px solid rgba(255,255,255,0.04);
      background:#0d0d0d;
      transition: background 0.15s var(--ease);
    }
    .team-row:hover { background:rgba(255,255,255,0.042); }
    .team-row:last-child { border-bottom:0; }
    .board > .team-players-expand:last-child { border-bottom:0; }
    .team-row.empty-slot {
      background: rgba(255,255,255,0.018);
    }
    .team-row.empty-slot .team-logo {
      background:
        radial-gradient(circle at 28% 48%, rgba(255,255,255,0.18), rgba(255,255,255,0.06) 36%, transparent 62%),
        linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.022));
      border-color: rgba(255,255,255,0.13);
      border-style: solid;
      color: var(--text-dim);
    }
    .team-logo.has-pin {
      background:
        radial-gradient(circle at 28% 48%, rgba(255,255,255,0.18), rgba(255,255,255,0.06) 36%, transparent 62%),
        linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.022));
      border-color: rgba(255,255,255,0.13);
      border-style: solid;
      color: var(--text-dim);
    }
    .team-row.empty-slot .team-logo img.slot-pin,
    .team-logo.has-pin img.logo-pin {
      position: static;
      inset: auto;
      width: 22px;
      height: 22px;
      object-fit: contain;
      opacity: 0.82;
      filter: grayscale(1) brightness(1.08) contrast(1.7) drop-shadow(0 0 7px rgba(255,255,255,0.18));
      transform: none;
    }
    .team-row.empty-slot .team-abbr {
      color: #a3acba;
    }
    .team-row.empty-slot .points {
      color: var(--accent);
      text-shadow: none;
    }
    .team-row.qualified {
      background: linear-gradient(90deg, rgba(34,197,94,0.12) 0%, rgba(34,197,94,0.035) 190px, transparent 100%);
      border-left: 2px solid rgba(34,197,94,0.52);
    }
    .team-row.qualified .rank {
      color: var(--green);
      text-shadow: 0 0 12px rgba(34,197,94,0.45);
      font-weight: 700;
    }
    /* Podium */
    .team-row.rank-1 {
      background:linear-gradient(90deg, rgba(255,215,0,0.13) 0%, rgba(255,215,0,0.04) 180px, transparent 100%);
      border-left:2px solid rgba(255,215,0,0.55);
    }
    .team-row.rank-2 {
      background:linear-gradient(90deg, rgba(192,200,212,0.09) 0%, rgba(192,200,212,0.025) 180px, transparent 100%);
      border-left:2px solid rgba(192,200,212,0.45);
    }
    .team-row.rank-3 {
      background:linear-gradient(90deg, rgba(205,127,50,0.10) 0%, rgba(205,127,50,0.025) 180px, transparent 100%);
      border-left:2px solid rgba(205,127,50,0.45);
    }
    .team-row.rank-1 .rank { color:var(--gold); text-shadow:0 0 14px rgba(255,215,0,0.6); font-weight:700; }
    .team-row.rank-2 .rank { color:var(--silver); text-shadow:0 0 10px rgba(192,200,212,0.45); font-weight:700; }
    .team-row.rank-3 .rank { color:var(--bronze); text-shadow:0 0 10px rgba(205,127,50,0.5); font-weight:700; }

    /* ── Expandable team rows ── */
    .team-row.odd-row:not(.qualified) { background:#0a0a0a; }
    .team-row[data-team-tag] { cursor:pointer; user-select:none; }
    .team-row[data-team-tag]:hover { background:rgba(255,255,255,0.055); }
    .team-row[data-team-tag].lb-expanded { background:rgba(239,249,35,0.06) !important; }

    .team-players-expand {
      overflow:hidden;
      max-height:0;
      transition:max-height 0.28s ease;
    }

    .player-expand-header {
      display:grid;
      grid-template-columns:28px 1fr 52px 52px 66px;
      align-items:center;
      padding:5px 12px;
      font-size:9px; font-weight:700;
      text-transform:uppercase; letter-spacing:0.1em;
      color:var(--text-dim);
      background:rgba(255,255,255,0.025);
      border-bottom:1px solid rgba(255,255,255,0.05);
    }
    .player-expand-header span:nth-child(n+3) { text-align:center; }

    .player-expand-row {
      display:grid;
      grid-template-columns:28px 1fr 52px 52px 66px;
      align-items:center;
      min-height:34px;
      padding:0 12px;
      border-bottom:1px solid rgba(255,255,255,0.04);
      background:rgba(0,0,0,0.22);
    }
    .player-expand-row:last-child { border-bottom:0; }

    .px-photo {
      width:22px; height:22px; border-radius:50%;
      overflow:hidden; flex-shrink:0; position:relative;
      background:rgba(255,255,255,0.07);
      display:flex; align-items:center; justify-content:center;
    }
    .px-photo img {
      position:absolute; inset:0;
      width:100%; height:100%; object-fit:cover;
    }
    .px-initial { font-size:9px; font-weight:700; color:var(--text-dim); position:relative; z-index:0; }

    .px-name {
      font-size:11px; font-weight:600; color:var(--text);
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
      padding-left:8px;
    }
    .px-stat {
      font-family:'Roboto',sans-serif; font-size:12px; font-weight:700;
      font-variant-numeric: tabular-nums;
      text-align:center; color:#d2d8e2;
    }
    .px-stat.green { color:var(--green); }

    .px-empty {
      padding:9px 12px;
      font-size:10px; color:var(--text-dim);
      text-transform:uppercase; letter-spacing:0.08em;
    }

    .rank { color:var(--text-dim); font-family:var(--fm); font-size:11px; font-weight:700; }
    .team { display:flex; align-items:center; gap:6px; min-width:0; }
    .team-logo {
      width:38px; height:38px; flex:0 0 38px;
      background:rgba(255,255,255,0.04);
      border:1px solid var(--line); border-radius:4px;
      display:flex; align-items:center; justify-content:center;
      font-family:var(--fd); font-size:9px; font-weight:900;
      color:var(--text-dim); text-transform:uppercase;
      overflow:hidden; margin-right:8px; position:relative;
    }
    .team-logo img {
      position:absolute; inset:-3px;
      width:calc(100% + 6px); height:calc(100% + 6px);
      object-fit:contain;
      transform: scale(var(--logo-scale, 1));
      transform-origin: center center;
    }
    .team span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .num { text-align:center; font-family:var(--fm); font-weight:650; font-size:13px; color:#d2d8e2; }
    .points {
      color:var(--accent); font-family:var(--fm); font-weight:700;
      font-size:15px; text-align:center;
      text-shadow:0 0 12px rgba(239,249,35,0.25);
    }
    .note { margin-top:12px; color:var(--text-dim); font-size:12px; line-height:1.5; }

    /* ── Section Tag ── */
    .section-tag {
      display: inline-flex; align-items: center; gap: 7px;
      font-family: var(--fd); font-size: 10px; font-weight: 900;
      text-transform: uppercase; letter-spacing: 0.16em;
      color: var(--text-dim); margin-bottom: 14px;
    }
    .section-tag::before {
      content: '';
      display: block; width: 3px; height: 14px;
      background: var(--accent);
      border-radius: 2px;
      box-shadow: 0 0 8px rgba(239,249,35,0.5);
    }

    /* ── Responsive ── */
    @media (max-width:980px) {
      .shell { grid-template-columns:1fr; }
      .site-footer { margin-left:0; }
      .site-footer::before { left:0; }
      .events-rail::after { display:none; }
      .events-rail {
        position: relative;
        top: auto;
        height: auto;
        border-right:0;
        border-bottom:1px solid var(--line);
        max-height:360px;
        overflow:auto;
      }
      .summary-strip { flex-wrap:wrap; }
    }
    @media (max-height:840px) and (min-width:981px) {
      .feat-card { height:158px; }
      .feat-wrap { margin-bottom:6px; }
      .rail-calendar { padding-top:4px; margin-top:0; }
      .cal-header { margin-bottom:5px; }
      .cal-day { padding:3px 2px; font-size:10px; }
      .cal-dow { padding-bottom:4px; }
      .cal-agenda { gap:6px; margin-top:6px; }
      .cal-agenda-item { min-height:70px; padding:10px 10px; }
      .cal-agenda-badges { display:none; }
    }
    @container board (max-width:450px) {
      .board-header, .team-row {
        grid-template-columns:26px minmax(0,1fr) 32px 42px 32px 46px;
        padding:0 8px;
      }
      .player-expand-header,
      .player-expand-row {
        grid-template-columns:24px 1fr 44px 44px 54px;
        padding:0 8px;
      }
    }
    @media (max-width:720px) {
      .topbar { padding:0 14px; gap:14px; }
      .events-rail { padding:12px; }
      .event-body-grid { grid-template-columns:1fr; padding-top:44px; }
      .event-aside { border-left:0; border-top:1px solid var(--line); }
      .board-header, .team-row {
        grid-template-columns:26px minmax(0,1fr) 32px 42px 32px 46px;
        padding:0 8px;
      }
      .player-expand-header,
      .player-expand-row {
        grid-template-columns:24px 1fr 44px 44px 54px;
        padding:0 8px;
      }
      .summary-strip { gap:4px; }
      .summary-item { padding:6px 10px; }
    }

    @keyframes fadeUp { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
    .event-hero { animation: fadeUp 0.5s ease both; }
    .feat-wrap { animation: fadeUp 0.5s 0.08s ease both; }
    .region-tabs { animation: fadeUp 0.4s 0.04s ease both; }
    @media (prefers-reduced-motion: reduce) {
      .event-hero,
      .feat-wrap,
      .region-tabs,
      .skeleton-line,
      .stats-skeleton-bar,
      .perf-skeleton-line,
      .phase-tabs-loading-line,
      body.hub-loading .feat-art,
      body.hub-loading .leaderboard-grid .team-row {
        animation: none;
      }
      .tab-panel.active,
      .data-refreshed {
        animation: panel-fade-in 260ms ease-out both;
      }
    }

