    :root {
      --bg-dark: #08080d;
      --bg-card: #111119;
      --bg-card-hover: #16161f;
      --gold: #ffd700;
      --gold-dim: rgba(255, 215, 0, 0.15);
      --silver: #c0c0c0;
      --bronze: #cd7f32;
      --accent: #ff3e3e;
      --accent-glow: rgba(255, 62, 62, 0.4);
      --text: #e8e8f0;
      --text-dim: #55556a;
      --border: rgba(255, 255, 255, 0.04);
      --green: #22c55e;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; cursor: url('/cursors/pointer.cur'), auto; }
    html { scroll-behavior: smooth; }

    /* Desktop zoom — disabled */
    @media (min-width: 601px) {
      html { zoom: 1; }
    }

    a, button, .entry, .entry *, .podium-slot, .podium-slot *, .past-seasons-btn, .admin-btn, .admin-action-btn,
    .admin-close, .logout-link, input, textarea, select, [onclick] {
      cursor: url('/cursors/link.cur'), pointer;
    }
    input, textarea {
      cursor: url('/cursors/text.cur'), text;
    }
    .entry, .podium-slot {
      touch-action: manipulation;
      -webkit-user-select: none; user-select: none;
    }
    .entry.disabled, .entry.disabled *, .entry.disabled:hover, .entry.disabled:hover *, button:disabled, [disabled] {
      cursor: url('/cursors/unavailable.cur'), not-allowed;
    }

    body {
      background: var(--bg-dark);
      color: var(--text);
      font-family: 'Outfit', sans-serif;
      min-height: 100vh;
      overflow-x: hidden;
    }

    /* ── Background effects ── */
    .bg-grid {
      position: fixed; inset: 0; z-index: 0; pointer-events: none;
      background-image:
        linear-gradient(rgba(255, 62, 62, 0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 62, 62, 0.025) 1px, transparent 1px);
      background-size: 80px 80px;
    }
    .bg-noise {
      position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0.03;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
      background-repeat: repeat;
    }
    .orb {
      position: fixed; border-radius: 50%; pointer-events: none;
      filter: blur(100px); opacity: 0.12; z-index: 0;
      animation: orbFloat 20s ease-in-out infinite;
    }
    .orb-1 { width: 600px; height: 600px; background: var(--accent); top: -15%; left: -10%; }
    .orb-2 { width: 500px; height: 500px; background: var(--gold); bottom: -15%; right: -10%; animation-delay: -8s; animation-duration: 25s; }
    .orb-3 { width: 350px; height: 350px; background: #6c3aed; top: 40%; left: 60%; animation-delay: -4s; animation-duration: 22s; }
    @keyframes orbFloat {
      0%, 100% { transform: translate(0, 0) scale(1); }
      25% { transform: translate(40px, -30px) scale(1.05); }
      50% { transform: translate(-20px, 40px) scale(0.95); }
      75% { transform: translate(30px, 20px) scale(1.08); }
    }

    /* ── Disable heavy effects on mobile for performance ── */
    @media (max-width: 600px) {
      .orb { display: none !important; }
      .bg-grid { display: none !important; }
      .bg-noise { display: none !important; }
      #particle-canvas { display: none !important; }
    }

    /* ── Canvases ── */
    #confetti-canvas, #particle-canvas {
      position: fixed; inset: 0; pointer-events: none;
    }
    #confetti-canvas { z-index: 999; }
    #particle-canvas { z-index: 0; }

    /* ── Vote Glitch Effect ── */
    @keyframes glitchShake {
      0% { transform: translate(0, 0); }
      20% { transform: translate(-1px, 0.5px); }
      40% { transform: translate(1px, -0.5px); }
      60% { transform: translate(-0.5px, 0); }
      80% { transform: translate(0.5px, 0.5px); }
      100% { transform: translate(0, 0); }
    }
    @keyframes glitchFilter {
      0% { filter: hue-rotate(0deg) brightness(1); }
      20% { filter: hue-rotate(-8deg) brightness(1.15); }
      40% { filter: hue-rotate(5deg) brightness(0.95); }
      60% { filter: hue-rotate(-3deg) brightness(1.08); }
      100% { filter: hue-rotate(0deg) brightness(1); }
    }
    .glitch-active {
      animation: glitchShake 200ms ease-out, glitchFilter 200ms ease-out;
    }

    /* ── Combined Top Bar ── */
    .top-bar {
      position: sticky; top: 0; z-index: 100;
      backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
      transition: box-shadow 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* ── Votes remaining ── */
    .votes-remaining {
      padding: 6px 20px; text-align: center;
      font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--text-dim);
      letter-spacing: 1px; transition: all 0.3s ease;
      border-bottom: none;
      background: rgba(8, 8, 13, 0.82);
      display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
    }
    .votes-center { text-align: center; white-space: nowrap; }
    .votes-spacer-left { }
    .votes-spacer-right { display: flex; justify-content: flex-start; padding-left: 12px; }
    .votes-remaining .count {
      color: var(--gold); font-weight: 700; font-size: 14px;
      transition: color 0.3s ease;
    }
    .votes-remaining.exhausted .count { color: var(--accent); }
    .votes-remaining.exhausted { border-bottom-color: rgba(255, 62, 62, 0.15); }
    .bonus-votes { color: #a78bfa; font-weight: 700; }

    /* ── All-In toggle ── */
    .all-in-toggle {
      font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700;
      letter-spacing: 0.8px; padding: 3px 10px; border-radius: 5px;
      border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.03);
      color: var(--text-dim); cursor: pointer; transition: all 0.2s;
      white-space: nowrap; user-select: none;
    }
    .all-in-toggle:hover { border-color: rgba(255,62,62,0.3); color: var(--accent); }
    .all-in-toggle.active {
      border-color: rgba(255,62,62,0.5); background: rgba(255,62,62,0.12);
      color: var(--accent); text-shadow: 0 0 8px rgba(255,62,62,0.3);
      animation: allInPulse 1.5s ease-in-out infinite;
    }
    @keyframes allInPulse {
      0%, 100% { box-shadow: 0 0 0 0 rgba(255,62,62,0); }
      50% { box-shadow: 0 0 8px 2px rgba(255,62,62,0.15); }
    }
    .all-in-toggle.dumping {
      animation: allInDumping 0.3s ease-in-out infinite;
      border-color: rgba(255,62,62,0.7); background: rgba(255,62,62,0.2);
    }
    @keyframes allInDumping {
      0%, 100% { transform: scale(1); }
      50% { transform: scale(1.05); }
    }

    /* ── Level System ── */
    .level-box {
      display: inline-flex; align-items: center; gap: 6px;
      margin-left: 10px; padding: 2px 10px; border-radius: 6px;
      background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
      cursor: pointer; transition: all 0.2s;
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 0.5px;
    }
    .level-box:hover { border-color: rgba(255,215,0,0.3); }
    .level-badge {
      font-weight: 700; min-width: 14px; text-align: center;
    }
    .level-box .level-progress-text { font-size: 9px; color: var(--text-dim); }
    .chat-level-badge {
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      font-weight: 700; margin-right: 4px; padding: 0 3px;
      border-radius: 3px; display: inline-block; min-width: 12px; text-align: center;
    }
    /* Achievement modal */
    .achieve-overlay {
      display: none; position: fixed; inset: 0; z-index: 1000;
      background: rgba(0,0,0,0.7); backdrop-filter: blur(6px);
      align-items: center; justify-content: center;
    }
    .achieve-overlay.open { display: flex; }
    .achieve-modal {
      background: var(--bg-dark); border: 1px solid var(--border);
      border-radius: 16px; width: 95%; max-width: 420px; padding: 24px;
      max-height: 80vh; overflow-y: auto; position: relative;
    }
    .achieve-close {
      position: absolute; top: 12px; right: 16px; background: none;
      border: none; color: var(--text-dim); font-size: 18px; cursor: pointer;
    }
    .achieve-close:hover { color: var(--text); }
    .achieve-title {
      font-family: 'JetBrains Mono', monospace; font-size: 14px;
      color: var(--gold); text-transform: uppercase; letter-spacing: 1.5px;
      margin-bottom: 6px; text-align: center;
    }
    .achieve-subtitle {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); text-align: center; margin-bottom: 16px;
    }
    .achieve-item {
      display: flex; align-items: center; gap: 12px;
      padding: 10px 12px; margin-bottom: 4px; border-radius: 8px;
      background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04);
      transition: all 0.2s;
    }
    .achieve-item.unlocked { border-color: rgba(255,215,0,0.15); background: rgba(255,215,0,0.03); }
    .achieve-item.locked { opacity: 0.4; }
    .achieve-icon {
      font-size: 16px; min-width: 24px; text-align: center;
    }
    .achieve-info { flex: 1; }
    .achieve-name {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      font-weight: 700; letter-spacing: 0.5px;
    }
    .achieve-item.unlocked .achieve-name { color: var(--gold); }
    .achieve-item.locked .achieve-name { color: var(--text-dim); }
    .achieve-desc {
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      color: var(--text-dim); margin-top: 2px;
    }
    .achieve-lvl {
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      color: var(--text-dim); letter-spacing: 1px;
    }
    /* Level up toast */
    .level-up-toast {
      position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.8);
      z-index: 9998; background: rgba(8,8,13,0.95); border: 1px solid rgba(255,215,0,0.4);
      border-radius: 16px; padding: 24px 40px; text-align: center;
      opacity: 0; pointer-events: none; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
      box-shadow: 0 0 40px rgba(255,215,0,0.1);
    }
    .level-up-toast.show { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    .level-up-toast .lu-label {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--gold); letter-spacing: 3px; text-transform: uppercase;
    }
    .level-up-toast .lu-number {
      font-family: 'Dela Gothic One', cursive; font-size: 48px;
      color: var(--gold); line-height: 1.1; margin: 4px 0;
    }
    .level-up-toast .lu-perk {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); margin-top: 4px;
    }
    .share-btn {
      display: inline-flex; align-items: center; gap: 4px;
      margin-left: 12px; margin-top: 1px;
      padding: 3px 10px; border-radius: 6px;
      background: rgba(167,139,250,0.15); border: 1px solid rgba(167,139,250,0.3);
      color: #a78bfa; font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 1px; cursor: pointer; transition: all 0.2s;
    }
    .share-btn:hover { background: rgba(167,139,250,0.25); border-color: rgba(167,139,250,0.5); }

    /* Referral Modal */
    .ref-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.7); z-index: 9999; display: none; align-items: center; justify-content: center; }
    .ref-overlay.open { display: flex; }
    .ref-modal {
      background: var(--bg); border: 1px solid var(--border); border-radius: 16px;
      padding: 28px; max-width: 420px; width: 90%; position: relative;
      animation: fadeUp 0.3s ease-out;
    }
    .ref-modal h3 {
      font-family: 'Dela Gothic One', cursive; font-size: 1.1rem; color: #a78bfa;
      margin: 0 0 6px 0;
    }
    .ref-modal p { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-dim); line-height: 1.6; margin: 0 0 16px 0; }
    .ref-link-box {
      display: flex; gap: 8px; margin-bottom: 16px;
    }
    .ref-link-box input {
      flex: 1; background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px;
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 10px 12px; outline: none;
    }
    .ref-link-box button {
      padding: 10px 16px; border-radius: 8px; border: none;
      background: #a78bfa; color: #000; font-family: 'JetBrains Mono', monospace;
      font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap;
      transition: background 0.2s;
    }
    .ref-link-box button:hover { background: #c4b5fd; }
    .ref-stats {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px;
    }
    .ref-stat {
      background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px;
      padding: 10px; text-align: center;
    }
    .ref-stat-val { font-family: 'Dela Gothic One', cursive; font-size: 1rem; color: #a78bfa; }
    .ref-stat-label { font-family: 'JetBrains Mono', monospace; font-size: 8px; color: var(--text-dim); letter-spacing: 1px; margin-top: 3px; text-transform: uppercase; }
    .ref-rules { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-dim); line-height: 1.7; }
    .ref-rules li { margin-bottom: 4px; }
    .ref-close {
      position: absolute; top: 12px; right: 16px; background: none; border: none;
      color: var(--text-dim); font-size: 20px; cursor: pointer; line-height: 1;
    }
    .ref-close:hover { color: var(--text); }

    /* ── Ticker ── */
    .ticker-wrap {
      width: 100%; overflow: hidden;
      padding: 0;
      background: rgba(8, 8, 13, 0.82);
      border-bottom: 1px solid var(--border);
      position: relative; z-index: 99;
      transition: padding 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                  background 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                  box-shadow 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                  margin-bottom 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                  border-color 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    }
    /* Accent line at top of ticker */
    .ticker-accent-line {
      height: 1px; width: 100%;
      background: linear-gradient(90deg, transparent 0%, rgba(255,62,62,0.2) 30%, rgba(255,215,0,0.3) 50%, rgba(255,62,62,0.2) 70%, transparent 100%);
    }
    /* Fade edges */
    .ticker-fade-l, .ticker-fade-r {
      position: absolute; top: 0; bottom: 0; width: 50px; z-index: 3; pointer-events: none;
    }
    .ticker-fade-l { left: 0; background: linear-gradient(90deg, rgba(8,8,13,0.94) 20%, transparent); }
    .ticker-fade-r { right: 0; background: linear-gradient(270deg, rgba(8,8,13,0.94) 20%, transparent); }

    .ticker-wrap.countdown-mode {
      padding: 14px 0;
      margin-bottom: -16px;
      background: linear-gradient(180deg, rgba(255, 62, 62, 0.18) 0%, rgba(255, 62, 62, 0.06) 100%), rgba(8, 8, 13, 0.92);
      border-bottom-color: rgba(255, 62, 62, 0.4);
    }
    .ticker-wrap.countdown-mode .ticker-accent-line,
    .ticker-wrap.countdown-critical .ticker-accent-line,
    .ticker-wrap.shuffle-mode .ticker-accent-line { display: none; }
    .ticker-wrap.countdown-mode .ticker-fade-l,
    .ticker-wrap.countdown-mode .ticker-fade-r,
    .ticker-wrap.countdown-critical .ticker-fade-l,
    .ticker-wrap.countdown-critical .ticker-fade-r,
    .ticker-wrap.shuffle-mode .ticker-fade-l,
    .ticker-wrap.shuffle-mode .ticker-fade-r { display: none; }

    .top-bar:has(.countdown-mode) {
      box-shadow: 0 4px 24px rgba(255, 62, 62, 0.1), inset 0 0 40px rgba(255, 62, 62, 0.03);
    }
    .ticker-wrap.countdown-critical {
      padding: 18px 0;
      margin-bottom: -24px;
      background: linear-gradient(180deg, rgba(255, 62, 62, 0.28) 0%, rgba(255, 62, 62, 0.1) 100%), rgba(8, 8, 13, 0.92);
      border-bottom-color: rgba(255, 62, 62, 0.6);
    }
    .top-bar:has(.countdown-critical) {
      box-shadow: 0 6px 32px rgba(255, 62, 62, 0.2), inset 0 0 60px rgba(255, 62, 62, 0.05);
      animation: countdownPulse 1s ease-in-out infinite;
    }
    @keyframes countdownPulse {
      0%, 100% { box-shadow: 0 6px 32px rgba(255, 62, 62, 0.2), inset 0 0 60px rgba(255, 62, 62, 0.05); }
      50% { box-shadow: 0 6px 40px rgba(255, 62, 62, 0.35), inset 0 0 80px rgba(255, 62, 62, 0.08); }
    }
    .ticker-wrap.shuffle-mode {
      padding: 16px 0;
      margin-bottom: -20px;
      background: linear-gradient(90deg, rgba(255,215,0,0.1), rgba(255,62,62,0.1), rgba(255,215,0,0.1)), rgba(8, 8, 13, 0.92);
      background-size: 200% 100%, 100% 100%;
      animation: tickerShimmer 1.5s ease-in-out infinite;
      border-bottom-color: rgba(255, 215, 0, 0.4);
    }
    .top-bar:has(.shuffle-mode) {
      box-shadow: 0 4px 24px rgba(255, 215, 0, 0.1);
    }
    @keyframes tickerShimmer {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }
    .ticker-track {
      display: flex; width: 100%; overflow: hidden;
      justify-content: center; align-items: center; gap: 20px;
      padding: 10px 60px;
      position: relative;
      max-width: 100vw;
      transition: justify-content 0.3s ease;
    }
    .countdown-mode .ticker-track,
    .countdown-critical .ticker-track,
    .shuffle-mode .ticker-track {
      justify-content: center;
      padding: 0;
      gap: 0;
    }
    .ticker-item {
      flex-shrink: 0;
      display: inline-flex; align-items: center; gap: 8px;
      font-family: 'JetBrains Mono', monospace;
      font-size: 12px; letter-spacing: 0.5px;
      color: var(--text); white-space: nowrap;
      transition: transform 0.3s ease, opacity 0.3s ease, color 0.3s ease;
    }
    .ticker-chevron {
      color: rgba(255, 215, 0, 0.4); font-weight: 700; font-size: 13px;
    }
    .ticker-item.hot .ticker-chevron { color: var(--gold); opacity: 1; }
    .ticker-item.mega .ticker-chevron {
      color: var(--accent);
      filter: drop-shadow(0 0 4px rgba(255, 62, 62, 0.5));
    }
    .ticker-name {
      font-weight: 400; color: var(--text);
    }
    .ticker-item.hot .ticker-name { color: var(--gold); font-weight: 700; }
    .ticker-item.mega .ticker-name { color: var(--accent); font-weight: 700; }
    .ticker-count {
      display: inline-flex; align-items: center; justify-content: center;
      font-weight: 700; font-size: 11px;
      padding: 1px 7px; border-radius: 4px; min-width: 26px; text-align: center;
      color: var(--gold);
      background: rgba(255, 215, 0, 0.08);
      border: 1px solid rgba(255, 215, 0, 0.12);
      transition: all 0.15s ease;
    }
    .ticker-item.hot .ticker-count {
      color: var(--bg-dark); background: var(--gold); border-color: var(--gold);
      box-shadow: 0 0 8px rgba(255, 215, 0, 0.25);
    }
    .ticker-item.mega .ticker-count {
      color: #fff; font-size: 12px;
      background: linear-gradient(135deg, var(--accent), #cc2200);
      border-color: var(--accent);
      box-shadow: 0 0 12px rgba(255, 62, 62, 0.4), 0 2px 6px rgba(0,0,0,0.3);
    }
    .ticker-time {
      font-size: 9px; color: var(--text-dim); min-width: 3ch;
    }

    /* Animations */
    .ticker-item.ticker-entering {
      animation: tickerSlideIn 0.3s ease-out forwards;
    }
    @keyframes tickerSlideIn {
      0% { transform: translateX(-20px); opacity: 0; }
      100% { transform: translateX(0); opacity: 1; }
    }
    .ticker-item.ticker-exiting {
      animation: tickerSlideOut 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    @keyframes tickerSlideOut {
      0% { transform: translateX(0); opacity: 1; max-width: 300px; }
      50% { transform: translateX(30px); opacity: 0; max-width: 300px; }
      100% { transform: translateX(30px); opacity: 0; max-width: 0; padding: 0; margin: 0; gap: 0; }
    }
    .ticker-count.ticker-count-bump {
      animation: tickerCountPop 0.2s ease-out;
    }
    @keyframes tickerCountPop {
      0% { transform: scale(1.35); }
      50% { transform: scale(0.95); }
      100% { transform: scale(1); }
    }
    .ticker-item.ticker-text-bump .ticker-name {
      animation: tickerTextShake 0.12s ease-out;
    }
    @keyframes tickerTextShake {
      0% { transform: translateX(0); }
      25% { transform: translateX(2px); }
      75% { transform: translateX(-1px); }
      100% { transform: translateX(0); }
    }

    /* Countdown / shuffle text (unchanged logic) */
    .ticker-item.countdown-text {
      color: var(--accent); font-weight: 700; letter-spacing: 4px; font-size: 14px;
      text-shadow: 0 0 12px rgba(255, 62, 62, 0.3);
      padding: 0; gap: 0;
    }
    .ticker-item.countdown-critical-text {
      color: #ff5555; font-weight: 700; letter-spacing: 5px; font-size: 18px;
      text-shadow: 0 0 20px rgba(255, 62, 62, 0.5), 0 0 40px rgba(255, 62, 62, 0.2);
      animation: countdownTextPulse 0.8s ease-in-out infinite;
      padding: 0; gap: 0;
    }
    @keyframes countdownTextPulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.85; transform: scale(1.03); }
    }
    .ticker-item.shuffle-text {
      color: var(--gold); font-weight: 700; letter-spacing: 5px; font-size: 16px;
      text-shadow: 0 0 16px rgba(255, 215, 0, 0.4);
      padding: 0; gap: 0;
    }
    .countdown-bar {
      display: inline-block; width: 80px; height: 3px;
      background: rgba(255, 62, 62, 0.15); border-radius: 2px;
      overflow: hidden; vertical-align: middle; margin: 0 12px;
    }
    .countdown-bar-fill {
      height: 100%; border-radius: 2px;
      background: linear-gradient(90deg, var(--accent), #ff6b6b);
      transition: width 1s linear;
      box-shadow: 0 0 8px rgba(255, 62, 62, 0.4);
    }
    .countdown-bar-critical .countdown-bar-fill {
      background: linear-gradient(90deg, #ff4444, #ff7777);
      animation: barGlow 0.8s ease-in-out infinite;
    }
    @keyframes barGlow {
      0%, 100% { box-shadow: 0 0 8px rgba(255, 62, 62, 0.4); }
      50% { box-shadow: 0 0 16px rgba(255, 62, 62, 0.7); }
    }
    .live-dot {
      display: inline-block; width: 7px; height: 7px;
      background: var(--accent); border-radius: 50%;
      margin-right: 6px; vertical-align: middle;
      box-shadow: 0 0 6px var(--accent-glow);
      animation: livePulse 2s ease-in-out infinite;
    }
    @keyframes livePulse {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.5; transform: scale(0.85); }
    }

    /* ── Container ── */
    .container {
      position: relative; z-index: 1;
      max-width: 820px; margin: 0 auto;
      padding: 50px 20px 100px;
    }

    /* ── Header ── */
    .header { text-align: center; margin-bottom: 40px; position: relative; overflow: visible; }
    .header > .header-child {
      opacity: 0; transform: translateY(15px);
      animation: fadeUp 0.7s ease-out forwards;
    }
    .header > .header-child:nth-child(1) { animation-delay: 0.1s; }
    .header > .header-child:nth-child(2) { animation-delay: 0.25s; }
    .header > .header-child:nth-child(3) { animation-delay: 0.4s; }
    .header > .header-child:nth-child(4) { animation-delay: 0.55s; }
    .header > .header-child:nth-child(5) { animation-delay: 0.65s; }
    @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }

    /* Scanline overlay on header */
    .header::before {
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        rgba(0,0,0,0.03) 2px,
        rgba(0,0,0,0.03) 4px
      );
      pointer-events: none;
      z-index: 10;
    }

    /* Ambient glow behind title */
    .header::after {
      content: '';
      position: absolute;
      top: 30%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 400px;
      height: 200px;
      background: radial-gradient(ellipse, rgba(255,62,62,0.07) 0%, transparent 70%);
      pointer-events: none;
      z-index: 0;
    }

    /* Floating particles */
    .header-particle {
      position: absolute;
      width: 2px;
      height: 2px;
      background: var(--accent);
      border-radius: 50%;
      opacity: 0;
      animation: particleFloat 8s ease-in-out infinite;
      pointer-events: none;
      z-index: 0;
    }
    .header-particle:nth-child(1) { left: 8%; top: 12%; animation-delay: 0s; }
    .header-particle:nth-child(2) { left: 88%; top: 18%; animation-delay: 2s; }
    .header-particle:nth-child(3) { left: 20%; top: 75%; animation-delay: 4s; }
    .header-particle:nth-child(4) { left: 75%; top: 65%; animation-delay: 1s; }
    .header-particle:nth-child(5) { left: 45%; top: 8%; animation-delay: 3s; }
    .header-particle:nth-child(6) { left: 92%; top: 45%; animation-delay: 5s; }
    .header-particle:nth-child(7) { left: 5%; top: 50%; animation-delay: 6s; }
    .header-particle:nth-child(8) { left: 60%; top: 85%; animation-delay: 1.5s; }
    @keyframes particleFloat {
      0%, 100% { opacity: 0; transform: translateY(0); }
      20% { opacity: 0.6; }
      50% { opacity: 0.3; transform: translateY(-30px); }
      80% { opacity: 0.6; }
    }

    /* Badge row — badge + timer side by side */
    .badge-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-bottom: 28px;
      flex-wrap: wrap;
      position: relative; z-index: 2;
    }
    .badge {
      display: inline-flex; align-items: center; gap: 7px;
      background: linear-gradient(135deg, var(--accent), #c41e1e);
      color: white; font-family: 'JetBrains Mono', monospace;
      font-size: 10px; font-weight: 700; letter-spacing: 3px;
      text-transform: uppercase; padding: 7px 20px;
      border-radius: 50px;
      box-shadow: 0 4px 20px rgba(255, 62, 62, 0.25);
      position: relative; overflow: hidden;
    }
    .badge::after {
      content: '';
      position: absolute;
      top: 0; left: -100%;
      width: 50%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
      animation: badgeScan 3s ease-in-out infinite;
    }
    @keyframes badgeScan {
      0%, 100% { left: -100%; }
      50% { left: 100%; }
    }
    .season-timer {
      font-family: 'JetBrains Mono', monospace;
      font-size: 11px;
      color: var(--text-dim);
      letter-spacing: 1px;
      position: relative; z-index: 2;
    }
    .season-timer span { color: var(--accent); font-weight: 700; transition: all 0.6s ease; }
    .season-timer.urgent {
      color: rgba(255, 160, 50, 0.6);
    }
    .season-timer.urgent span {
      color: #ffa032;
    }
    .season-timer.critical {
      color: rgba(255, 62, 62, 0.6);
    }
    .season-timer.critical span {
      color: var(--accent);
      animation: seasonPulse 1s ease-in-out infinite;
    }
    @keyframes seasonPulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.5; }
    }

    /* Title — glitch effect */
    .title {
      font-family: 'Dela Gothic One', system-ui, Impact, sans-serif;
      font-size: clamp(4.2rem, 13vw, 7.8rem);
      line-height: 0.9; letter-spacing: -4px; color: #ff4444; margin-bottom: 12px;
      position: relative; z-index: 2;
    }
    @supports (-webkit-background-clip: text) {
      .title {
        background: linear-gradient(160deg, #ff4444 0%, #ff2222 30%, #ffd700 60%, #ff4444 85%, #ffd700 100%);
        background-size: 200% 200%;
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: fadeUp 0.7s ease-out forwards, titleShimmer 6s ease-in-out infinite;
      }
    }
    .title::before,
    .title::after {
      content: attr(data-text);
      position: absolute;
      top: 0; left: 0;
      width: 100%; height: 100%;
      background: inherit;
      -webkit-background-clip: text; background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .title::before {
      animation: glitch1 4s ease-in-out infinite;
      clip-path: inset(20% 0 60% 0);
      opacity: 0.6;
    }
    .title::after {
      animation: glitch2 4s ease-in-out infinite 0.1s;
      clip-path: inset(60% 0 10% 0);
      opacity: 0.6;
    }
    @keyframes glitch1 {
      0%, 90%, 100% { transform: translate(0); }
      92% { transform: translate(-3px, 1px); }
      94% { transform: translate(3px, -1px); }
      96% { transform: translate(-1px, 0); }
    }
    @keyframes glitch2 {
      0%, 88%, 100% { transform: translate(0); }
      90% { transform: translate(2px, -1px); }
      93% { transform: translate(-2px, 1px); }
      95% { transform: translate(1px, 0); }
    }
    @keyframes titleShimmer {
      0%, 100% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
    }

    /* Subtitle with decorative lines */
    .subtitle-row {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      margin-bottom: 0;
      position: relative; z-index: 2;
    }
    .subtitle-line {
      width: 40px;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--accent), transparent);
    }
    .subtitle {
      font-family: 'JetBrains Mono', monospace;
      color: var(--text-dim); font-size: 11px; letter-spacing: 2.5px;
      text-transform: uppercase;
    }
    .subtitle span { color: var(--accent); font-weight: 700; }
    /* ── Stats bar ── */
    .stats-bar {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
      margin-bottom: 28px;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.6s forwards;
    }
    .stat-card {
      background: rgba(255,255,255,0.02);
      border: 1px solid rgba(255,255,255,0.05);
      border-radius: 12px; padding: 16px 12px; text-align: center;
      transition: all 0.3s ease;
      position: relative; overflow: hidden;
      backdrop-filter: blur(4px);
    }
    .stat-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      border-radius: 12px 12px 0 0;
      opacity: 0.6;
      transition: opacity 0.3s;
    }
    .stat-card:nth-child(1)::before { background: linear-gradient(90deg, transparent, var(--gold), transparent); }
    .stat-card:nth-child(2)::before { background: linear-gradient(90deg, transparent, var(--accent), transparent); }
    .stat-card:nth-child(3)::before { background: linear-gradient(90deg, transparent, var(--green), transparent); }
    .stat-card:nth-child(4)::before { background: linear-gradient(90deg, transparent, var(--gold), transparent); }
    .stat-card:hover::before { opacity: 1; }
    .stat-card:last-child { border-right: 1px solid rgba(255,255,255,0.05); }
    .stat-card:hover {
      background: rgba(255,255,255,0.035);
      border-color: rgba(255,255,255,0.08);
      transform: translateY(-2px);
    }
    .stat-card:nth-child(1):hover { box-shadow: 0 4px 20px rgba(255,215,0,0.06); }
    .stat-card:nth-child(2):hover { box-shadow: 0 4px 20px rgba(255,62,62,0.06); }
    .stat-card:nth-child(3):hover { box-shadow: 0 4px 20px rgba(34,197,94,0.06); }
    .stat-card:nth-child(4):hover { box-shadow: 0 4px 20px rgba(255,215,0,0.06); }
    .stat-value {
      font-family: 'Dela Gothic One', cursive; font-size: 1.3rem;
      color: var(--gold); line-height: 1; min-height: 1.4em;
      display: flex; align-items: center; justify-content: center;
    }
    .stat-label {
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      color: var(--text-dim); letter-spacing: 2px; margin-top: 5px;
      text-transform: uppercase;
    }
    .stat-card:nth-child(2) .stat-value { color: var(--accent); }
    .stat-card:nth-child(3) .stat-value { color: var(--green); }
    .stat-card:nth-child(4) { transition: all 0.3s ease; }
    .stat-card:nth-child(4):hover { border-color: rgba(255,215,0,0.15); }
    .online-counter {
      position: fixed; top: 12px; right: 16px; z-index: 150;
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      color: var(--accent); font-weight: 700; letter-spacing: 0.5px;
      display: flex; align-items: center; gap: 6px;
    }
    .online-counter .online-dot {
      display: inline-block; width: 7px; height: 7px; border-radius: 50%;
      background: var(--accent); animation: pulse-dot 2s ease-in-out infinite;
    }
    .online-dot {
      display: inline-block; width: 8px; height: 8px; border-radius: 50%;
      background: #22c55e; margin-right: 5px; vertical-align: middle;
      animation: pulse-dot 2s ease-in-out infinite;
    }
    @keyframes pulse-dot {
      0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34,197,94,0.5); }
      50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(34,197,94,0); }
    }

    /* ── Podium (top 3) ── */
    .podium {
      display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px;
      margin-bottom: 28px; align-items: end;
      opacity: 0; animation: fadeUp 0.7s ease-out 0.3s forwards;
      perspective: 1000px;
      width: 100%; max-width: 780px; margin-left: auto; margin-right: auto;
    }
    .podium-slot {
      text-align: center; cursor: pointer; user-select: none;
      transition: transform 0.3s cubic-bezier(0.2,0,0,1);
      min-width: 0; overflow: hidden;
    }
    .podium-slot:hover { transform: translateY(-4px); }
    .podium-slot:active { transform: scale(0.97); }
    .podium-card {
      background: rgba(8,8,16,0.7);
      border: 2px solid var(--border);
      border-radius: 20px; padding: 28px 20px 24px; position: relative;
      overflow: hidden; transition: all 0.3s ease;
      backdrop-filter: blur(4px);
      height: 320px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
    }
    .podium-slot:hover .podium-card {
      background: rgba(16,16,26,0.8); border-color: rgba(255,255,255,0.08);
    }
    .podium-slot.gold { order: 2; }
    .podium-slot.silver { order: 1; }
    .podium-slot.bronze { order: 3; }
    .podium-slot.gold .podium-card {
      border-color: rgba(255,215,0,0.3);
      box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 40px rgba(255,215,0,0.1);
      padding: 40px 20px 28px;
      height: 380px;
    }
    .podium-slot.gold:hover .podium-card {
      border-color: rgba(255,215,0,0.5);
      box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 60px rgba(255,215,0,0.15);
    }
    .podium-slot.silver .podium-card {
      border-color: rgba(192,192,192,0.2);
      box-shadow: inset 0 0 15px rgba(0,0,0,0.3), 0 0 25px rgba(192,192,192,0.06);
    }
    .podium-slot.bronze .podium-card {
      border-color: rgba(205,127,50,0.2);
      box-shadow: inset 0 0 15px rgba(0,0,0,0.3), 0 0 25px rgba(205,127,50,0.06);
    }

    /* Glass Tank — liquid fill */
    .tank-liquid {
      position: absolute; bottom: 0; left: 0; right: 0;
      border-radius: 0 0 12px 12px;
      transition: height 0.6s cubic-bezier(0.2,0,0,1);
      pointer-events: none;
    }
    .podium-slot.gold .tank-liquid {
      background: linear-gradient(to top, rgba(255,215,0,0.15), rgba(255,215,0,0.03));
    }
    .podium-slot.silver .tank-liquid {
      background: linear-gradient(to top, rgba(192,192,192,0.12), rgba(192,192,192,0.02));
    }
    .podium-slot.bronze .tank-liquid {
      background: linear-gradient(to top, rgba(205,127,50,0.12), rgba(205,127,50,0.02));
    }

    /* Wavy surface on the liquid */
    .tank-wave {
      position: absolute; top: -5px; left: 0; width: 100%; height: 10px;
      pointer-events: none;
    }
    .tank-wave svg { width: 100%; height: 100%; }
    .podium-slot.gold .tank-wave path { fill: rgba(255,215,0,0.12); animation: tankWave 3s ease-in-out infinite; }
    .podium-slot.silver .tank-wave path { fill: rgba(192,192,192,0.09); animation: tankWave 3.5s ease-in-out infinite; }
    .podium-slot.bronze .tank-wave path { fill: rgba(205,127,50,0.09); animation: tankWave 4s ease-in-out infinite; }
    @keyframes tankWave {
      0%,100% { d: path("M0,5 Q25,0 50,5 Q75,10 100,5 Q125,0 150,5 Q175,10 200,5 L200,10 L0,10 Z"); }
      50% { d: path("M0,5 Q25,10 50,5 Q75,0 100,5 Q125,10 150,5 Q175,0 200,5 L200,10 L0,10 Z"); }
    }

    /* Bubble on vote */
    .tank-bubble {
      position: absolute; border-radius: 50%; pointer-events: none;
      animation: bubbleUp 0.7s ease-out forwards;
    }
    .podium-slot.gold .tank-bubble { border: 1px solid rgba(255,215,0,0.35); }
    .podium-slot.silver .tank-bubble { border: 1px solid rgba(192,192,192,0.3); }
    .podium-slot.bronze .tank-bubble { border: 1px solid rgba(205,127,50,0.3); }
    @keyframes bubbleUp {
      0% { transform: translateY(0) scale(1); opacity: 0.5; }
      100% { transform: translateY(-55px) scale(0.4); opacity: 0; }
    }

    .podium-medal { font-size: 3.6rem; margin-bottom: 10px; filter: drop-shadow(0 0 8px rgba(255,215,0,0.4)); position: relative; z-index: 2; }
    .podium-slot.gold .podium-medal { font-size: 4.6rem; animation: crownFloat 3s ease-in-out infinite; }
    .podium-rank {
      font-family: 'Dela Gothic One', cursive; font-size: 1.5rem;
      color: var(--text-dim); margin-bottom: 6px; position: relative; z-index: 2;
    }
    .podium-slot.gold .podium-rank { color: var(--gold); font-size: 1.8rem; }
    .podium-slot.silver .podium-rank { color: var(--silver); }
    .podium-slot.bronze .podium-rank { color: var(--bronze); }
    .podium-name {
      font-weight: 800; font-size: 1.8rem; letter-spacing: -0.3px;
      white-space: nowrap; color: #ccc;
      position: relative; z-index: 2;
      display: inline-block;
      transform-origin: center center;
    }
    .podium-slot.gold .podium-name { font-size: 2.1rem; color: #fff; }
    .podium-score { font-family: 'Dela Gothic One', cursive; margin-top: 10px; display: inline-flex; overflow: visible; justify-content: center; position: relative; z-index: 2; }
    .podium-slot.gold .podium-score { color: var(--gold); font-size: 2.3rem; }
    .podium-slot.silver .podium-score { color: var(--silver); font-size: 1.9rem; }
    .podium-slot.bronze .podium-score { color: var(--bronze); font-size: 1.9rem; }
    .podium-desc {
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      color: var(--text-dim); letter-spacing: 0.3px; margin-top: 8px;
      line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
      position: relative; z-index: 2; flex-shrink: 1;
    }
    .podium-vote-hint {
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      color: var(--gold); opacity: 0; transition: opacity 0.25s; margin-top: 10px; letter-spacing: 1px;
      position: relative; z-index: 2;
    }
    .podium-slot:hover .podium-vote-hint { opacity: 1; }
    .podium-card.voted { animation: podiumFlash 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
    @keyframes podiumFlash {
      0% { box-shadow: inset 0 0 0 2px var(--gold), 0 0 50px rgba(255,215,0,0.5); transform: scale(1.04); }
      40% { transform: scale(1); }
      100% { box-shadow: none; transform: scale(1); }
    }
    @keyframes crownFloat {
      0%, 100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-3px) rotate(2deg); }
    }

    /* ── Divider ── */
    .section-divider {
      margin: 4px 0 14px; opacity: 0;
      animation: fadeUp 0.6s ease-out 0.7s forwards;
    }
    .section-divider-row {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 6px;
    }
    .section-divider-text {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      color: var(--accent); letter-spacing: 3px; text-transform: uppercase;
      font-weight: 700; white-space: nowrap;
    }
    .section-divider-right {
      display: flex; align-items: center; gap: 6px;
    }
    .section-divider-label {
      font-family: 'JetBrains Mono', monospace; font-size: 8px;
      letter-spacing: 2px; color: var(--text-dim); text-transform: uppercase;
    }
    .rankings-countdown {
      font-family: 'Dela Gothic One', cursive; font-size: 13px;
      color: var(--gold); letter-spacing: 0.5px;
      transition: all 0.3s ease;
    }
    .rankings-countdown.imminent {
      color: var(--accent); font-size: 16px;
      text-shadow: 0 0 8px rgba(255,62,62,0.4);
      animation: countPulse 0.5s ease-in-out infinite;
    }
    @keyframes countPulse {
      0%, 100% { transform: scale(1); }
      50% { transform: scale(1.15); }
    }
    .drain-bar {
      height: 2px; background: rgba(255,255,255,0.04);
      border-radius: 1px; overflow: hidden;
    }
    .drain-bar-fill {
      height: 100%;
      background: linear-gradient(90deg, var(--accent), var(--gold));
      border-radius: 1px;
      transition: width 0.8s linear, background 0.3s;
    }
    .drain-bar-fill.imminent {
      background: linear-gradient(90deg, #ff2222, var(--accent));
      box-shadow: 0 0 6px rgba(255,62,62,0.3);
    }

    /* ── Filter pills ── */
    .filter-pills {
      display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap;
      justify-content: center;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.6s forwards;
    }
    .filter-pill {
      padding: 6px 14px; border-radius: 20px;
      background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
      color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 1px; text-transform: uppercase;
      cursor: pointer; transition: all 0.25s ease; white-space: nowrap;
    }
    .filter-pill:hover {
      color: var(--text); border-color: rgba(255,215,0,0.2);
      background: rgba(255,215,0,0.04);
    }
    .filter-pill.active {
      color: var(--gold); border-color: rgba(255,215,0,0.4);
      background: rgba(255,215,0,0.08);
      box-shadow: 0 0 10px rgba(255,215,0,0.06);
    }
    .filter-pill::before { content: none; }
    .filter-count {
      font-size: 8px; margin-left: 4px; opacity: 0.6;
    }

    /* ── Search bar ── */
    .search-wrap {
      margin-bottom: 18px; position: relative;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.65s forwards;
    }
    .search-input {
      width: 100%; padding: 13px 18px 13px 44px;
      background: var(--bg-card); border: 1px solid var(--border);
      border-radius: 12px; color: var(--text);
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      outline: none; transition: all 0.3s ease; letter-spacing: 0.3px;
    }
    .search-input::placeholder { color: var(--text-dim); }
    .search-input:focus {
      border-color: rgba(255, 215, 0, 0.3);
      box-shadow: 0 0 20px rgba(255, 215, 0, 0.06);
    }
    .search-icon {
      position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
      color: var(--text-dim); font-size: 14px; pointer-events: none;
    }
    .search-count {
      position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 1px;
    }

    /* ── Leaderboard ── */
    .leaderboard { display: flex; flex-direction: column; gap: 5px; perspective: 1200px; }
    .entry {
      display: grid;
      grid-template-columns: 50px 1fr auto 90px;
      align-items: center; gap: 12px;
      background: var(--bg-card); border: 1px solid var(--border);
      border-radius: 12px; padding: 12px 16px;
      cursor: pointer; user-select: none;
      position: relative; overflow: hidden;
      transition: transform 0.25s cubic-bezier(0.2, 0, 0, 1),
                  background 0.25s ease, border-color 0.25s ease, box-shadow 0.35s ease;
      opacity: 0; transform: translateY(12px);
      animation: entryIn 0.4s ease-out forwards;
    }
    @keyframes entryIn { to { opacity: 1; transform: none; } }
    .entry::before {
      content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
      background: var(--text-dim); opacity: 0.2; border-radius: 12px 0 0 12px;
    }
    .entry::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(135deg, transparent 50%, rgba(255, 255, 255, 0.01));
      pointer-events: none; border-radius: 12px;
    }
    /* Rank 4-5: near-podium glow */
    .entry.rank-4, .entry.rank-5 {
      border-color: rgba(255, 215, 0, 0.08);
      background: linear-gradient(135deg, var(--bg-card) 0%, rgba(255, 215, 0, 0.02) 100%);
    }
    .entry.rank-4::before, .entry.rank-5::before { background: var(--gold); opacity: 0.5; }
    .entry.rank-4 .rank-num, .entry.rank-5 .rank-num { color: var(--gold); }
    .entry.rank-4 .score, .entry.rank-5 .score { color: var(--gold); }
    /* Rank 6-10: contender tier */
    .entry.rank-6, .entry.rank-7, .entry.rank-8, .entry.rank-9, .entry.rank-10 {
      border-color: rgba(255, 62, 62, 0.06);
    }
    .entry.rank-6::before, .entry.rank-7::before, .entry.rank-8::before,
    .entry.rank-9::before, .entry.rank-10::before { background: var(--accent); opacity: 0.35; }
    .entry.rank-6 .rank-num, .entry.rank-7 .rank-num, .entry.rank-8 .rank-num,
    .entry.rank-9 .rank-num, .entry.rank-10 .rank-num { color: rgba(255, 62, 62, 0.7); }
    .entry.rank-6 .score, .entry.rank-7 .score, .entry.rank-8 .score,
    .entry.rank-9 .score, .entry.rank-10 .score { color: #e8e8f0; }

    .entry:hover {
      transform: translateY(-2px); background: var(--bg-card-hover);
      border-color: rgba(255, 255, 255, 0.08);
    }
    .entry:active { transform: scale(0.985); }
    .entry.disabled { cursor: not-allowed; opacity: 0.5; filter: saturate(0.5); }
    .entry.disabled:hover { transform: none; background: var(--bg-card); border-color: var(--border); }
    .entry.voted { animation: voteFlash 0.4s ease-out forwards; }
    @keyframes voteFlash {
      0% { box-shadow: inset 0 0 0 2px var(--gold), 0 0 30px rgba(255, 215, 0, 0.35); border-color: rgba(255, 215, 0, 0.5); transform: scale(1.015); opacity: 1; }
      100% { box-shadow: none; border-color: var(--border); transform: none; opacity: 1; }
    }
    .entry.hidden-entry { display: none; }

    /* Vote bar inside entries — lightweight glowing bar (no per-tile animations) */
    .entry-vote-bar {
      position: absolute; bottom: 0; left: 0; height: 5px;
      border-radius: 0 3px 3px 0;
      transition: width 0.3s cubic-bezier(0.2,0,0,1);
      z-index: 2;
    }
    .entry-vote-bar.bar-hot {
      background: linear-gradient(90deg, #ff3e3e, #ff6b3e, #ffa500, #ffd700);
      box-shadow: 0 0 8px rgba(255,165,0,0.5), 0 -1px 6px rgba(255,215,0,0.2);
    }
    .entry-vote-bar.bar-warm {
      background: linear-gradient(90deg, #ff3e3e, #ff6b6b, #ffa500);
      box-shadow: 0 0 6px rgba(255,62,62,0.4);
    }
    .entry-vote-bar.bar-cool {
      background: linear-gradient(90deg, #cc2222, #ff3e3e);
      box-shadow: 0 0 4px rgba(255,62,62,0.25);
    }

    /* Mercury Pour — drip falling in (only on voted tile, not 500 at once) */
    .mercury-drip {
      position: absolute; bottom: 5px; z-index: 15; pointer-events: none;
      width: 5px; height: 6px;
      border-radius: 3px 3px 50% 50%;
      background: linear-gradient(to bottom, rgba(255,220,150,0.8), rgba(255,165,0,0.9));
      box-shadow: 0 0 6px rgba(255,165,0,0.5);
      transform: translateX(-50%);
      animation: dripFall 0.14s ease-in forwards;
    }
    @keyframes dripFall {
      0% { transform: translateX(-50%) translateY(-5px); opacity: 0.9; }
      100% { transform: translateX(-50%) translateY(0); opacity: 1; }
    }

    /* Mercury Pour — splash pop */
    .mercury-splash {
      position: absolute; bottom: 3px; z-index: 13; pointer-events: none;
      width: 5px; height: 5px; border-radius: 50%;
      background: rgba(255,220,150,0.7);
      box-shadow: 0 0 6px rgba(255,165,0,0.5);
      transform: translateX(-50%);
      animation: splashPop 0.25s ease-out forwards;
    }
    @keyframes splashPop {
      0% { transform: translateX(-50%) scale(1); opacity: 1; }
      100% { transform: translateX(-50%) scale(2); opacity: 0; }
    }

    /* Mercury Pour — ripple traveling left */
    .mercury-ripple-wrap {
      position: absolute; bottom: 0; left: 0; height: 7px;
      overflow: hidden; border-radius: 0 3px 3px 0;
      pointer-events: none; z-index: 10;
    }
    .mercury-ripple-left {
      position: absolute; top: 0; right: 0;
      width: 14px; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
      animation: rippleLeft 0.35s ease-out forwards;
      border-radius: 3px;
    }
    @keyframes rippleLeft {
      0% { transform: translateX(0); opacity: 1; }
      100% { transform: translateX(-500%); opacity: 0; }
    }

    /* Mercury Pour — ripple traveling right */
    .mercury-ripple-right {
      position: absolute; top: 0; right: 0;
      width: 10px; height: 100%;
      background: linear-gradient(270deg, transparent, rgba(255,255,255,0.2), transparent);
      animation: rippleRight 0.25s ease-out forwards;
      border-radius: 3px;
    }
    @keyframes rippleRight {
      0% { transform: translateX(0); opacity: 1; }
      100% { transform: translateX(50px); opacity: 0; }
    }

    .rising-badge {
      display: inline-flex; align-items: center; gap: 3px;
      background: rgba(34, 197, 94, 0.12);
      color: var(--green); font-family: 'JetBrains Mono', monospace;
      font-size: 9px; font-weight: 700; letter-spacing: 0.5px;
      padding: 3px 8px; border-radius: 6px;
      animation: risePulse 2s ease-in-out infinite;
    }
    @keyframes risePulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }

    .my-votes-badge {
      display: inline-flex; align-items: center;
      background: rgba(139, 92, 246, 0.12);
      color: #a78bfa; font-family: 'JetBrains Mono', monospace;
      font-size: 9px; font-weight: 600; letter-spacing: 0.3px;
      padding: 2px 7px; border-radius: 5px;
      white-space: nowrap; margin-top: 2px;
    }
    .my-votes-badge.podium-my-votes {
      position: relative; z-index: 2;
      margin-top: 4px; font-size: 8px;
    }

    .rank-num {
      font-family: 'Dela Gothic One', cursive;
      font-size: 1rem; line-height: 1; text-align: center;
      color: var(--text-dim); transition: all 0.3s ease;
    }
    .rank-change {
      font-size: 9px; display: block; text-align: center; margin-top: 1px;
      font-family: 'JetBrains Mono', monospace; font-weight: 700;
      line-height: 1; height: 0; overflow: visible;
    }
    .rank-change.up { color: var(--green); }
    .rank-change.down { color: var(--accent); }

    .player-info { min-width: 0; overflow: hidden; }
    .player-name {
      font-weight: 800; font-size: 0.95rem; letter-spacing: -0.3px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      color: #ccc; transition: color 0.2s ease;
    }
    .entry:hover .player-name { color: #fff; }
    .entry.rank-4 .player-name, .entry.rank-5 .player-name { color: #e0d8c0; }
    .player-title {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 0.3px; margin-top: 2px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .player-title .highlight { color: var(--accent); }

    .score-block { text-align: right; flex-shrink: 0; min-width: 75px; }
    .score {
      font-family: 'Dela Gothic One', cursive;
      font-size: 1rem; line-height: 1; color: var(--text-dim); transition: all 0.3s ease;
      display: inline-flex; overflow: hidden;
    }
    .score .odometer-digit {
      display: inline-block; position: relative; overflow: hidden;
      height: 1.15em; line-height: 1.15em; vertical-align: top;
    }
    .score .odometer-digit .digit-strip {
      display: flex; flex-direction: column;
      position: relative; transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .score .odometer-digit .digit-strip span {
      display: block; height: 1.15em; line-height: 1.15em; text-align: center;
    }
    .score .odometer-sep {
      display: inline-block; vertical-align: top; height: 1.15em; line-height: 1.15em;
    }
    .podium-score .odometer-digit {
      display: inline-block; position: relative; overflow: hidden;
      height: 1.15em; line-height: 1.15em; vertical-align: top;
    }
    .podium-score .odometer-digit .digit-strip {
      display: flex; flex-direction: column;
      position: relative; transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .podium-score .odometer-digit .digit-strip span {
      display: block; height: 1.15em; line-height: 1.15em; text-align: center;
    }
    .podium-score .odometer-sep {
      display: inline-block; vertical-align: top; height: 1.15em; line-height: 1.15em;
    }
    .score-label {
      font-family: 'JetBrains Mono', monospace; font-size: 8px;
      letter-spacing: 2px; text-transform: uppercase;
      color: var(--text-dim); margin-top: 2px; opacity: 0.6;
    }
    .vote-btn-label {
      font-family: 'JetBrains Mono', monospace; font-size: 9px; letter-spacing: 1px;
      color: var(--gold); opacity: 0; transition: opacity 0.25s ease; margin-top: 2px;
    }
    .entry:hover .vote-btn-label { opacity: 1; }
    .entry.disabled:hover .vote-btn-label { opacity: 0; }

    /* ── Rankings update system ── */

    /* Entry movement animations */
    .entry.move-up {
      animation: moveUpFlash 0.8s ease-out;
    }
    .entry.move-down {
      animation: moveDownFlash 0.8s ease-out;
    }
    .entry.big-mover {
      animation: bigMoveFlash 1.2s ease-out;
    }
    @keyframes moveUpFlash {
      0% { box-shadow: inset 0 0 0 2px rgba(34,197,94,0.6), 0 0 20px rgba(34,197,94,0.2); background: rgba(34,197,94,0.08); }
      100% { box-shadow: none; background: var(--bg-card); }
    }
    @keyframes moveDownFlash {
      0% { box-shadow: inset 0 0 0 2px rgba(255,62,62,0.4), 0 0 15px rgba(255,62,62,0.15); background: rgba(255,62,62,0.05); }
      100% { box-shadow: none; background: var(--bg-card); }
    }
    @keyframes bigMoveFlash {
      0% { box-shadow: inset 0 0 0 3px rgba(255,215,0,0.7), 0 0 40px rgba(255,215,0,0.3); background: rgba(255,215,0,0.08); transform: scale(1.02); }
      50% { transform: scale(1); }
      100% { box-shadow: none; background: var(--bg-card); }
    }

    /* Lockdown overlay on leaderboard */
    .leaderboard.locked {
      pointer-events: none;
      position: relative;
    }
    .leaderboard.locked .entry {
      transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.3s ease;
    }
    .podium.locked { pointer-events: none; }

    /* ── Smooth FLIP shuffle animations ── */
    .entry.shuffle-sliding {
      transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
      z-index: 10;
    }
    .entry.shuffle-glow-up {
      animation: shuffleGlowUp 1s ease-out forwards;
    }
    @keyframes shuffleGlowUp {
      0% { box-shadow: inset 0 0 0 2px rgba(34,197,94,0.8), 0 0 30px rgba(34,197,94,0.3); background: rgba(34,197,94,0.1); }
      100% { box-shadow: none; background: var(--bg-card); }
    }
    .entry.shuffle-glow-down {
      animation: shuffleGlowDown 1s ease-out forwards;
    }
    @keyframes shuffleGlowDown {
      0% { box-shadow: inset 0 0 0 2px rgba(255,62,62,0.6), 0 0 25px rgba(255,62,62,0.25); background: rgba(255,62,62,0.08); }
      100% { box-shadow: none; background: var(--bg-card); }
    }
    .entry.shuffle-glow-big {
      animation: shuffleGlowBig 1.4s ease-out forwards;
    }
    @keyframes shuffleGlowBig {
      0% { box-shadow: inset 0 0 0 3px rgba(255,215,0,0.9), 0 0 50px rgba(255,215,0,0.4); background: rgba(255,215,0,0.12); transform: scale(1.03); }
      30% { transform: scale(1); }
      100% { box-shadow: none; background: var(--bg-card); transform: scale(1); }
    }
    .entry.shuffle-new-entry {
      animation: shuffleNewEntry 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    }
    @keyframes shuffleNewEntry {
      0% { opacity: 0; transform: scale(0.95); }
      100% { opacity: 1; transform: scale(1); }
    }

    /* Podium smooth transitions */
    .podium-slot.shuffle-crossfade .podium-card {
      animation: podiumCrossfade 0.6s ease-out forwards;
    }
    @keyframes podiumCrossfade {
      0% { opacity: 0.3; transform: scale(0.96); }
      100% { opacity: 1; transform: scale(1); }
    }

    /* Screen flash overlay for shuffle (subtle) */
    .shuffle-flash-overlay {
      position: fixed; inset: 0; z-index: 998; pointer-events: none;
      background: radial-gradient(ellipse at center, rgba(255,215,0,0.08) 0%, transparent 70%);
      animation: shuffleFlashOverlay 0.6s ease-out forwards;
    }
    @keyframes shuffleFlashOverlay {
      0% { opacity: 1; }
      100% { opacity: 0; }
    }

    /* Rankings countdown next to section divider */
    /* rankings-countdown styles now in section-divider above */

    .float-vote {
      position: absolute; right: 20px; top: 35%;
      font-family: 'Dela Gothic One', cursive; font-size: 1.1rem;
      color: var(--gold); pointer-events: none; z-index: 10;
      text-shadow: 0 0 12px rgba(255,215,0,0.5);
      animation: floatUp 1s cubic-bezier(0.2, 0, 0, 1) forwards;
    }
    @keyframes floatUp {
      0% { opacity: 1; transform: translateY(0) scale(1); }
      60% { opacity: 1; }
      100% { opacity: 0; transform: translateY(-60px) scale(1.3); }
    }

    /* ── Dark Horse Alert ── */
    .ticker-item.dark-horse {
      color: var(--accent); font-weight: 700;
      animation: darkHorseGlow 1.5s ease-in-out;
    }
    .ticker-item.dark-horse .ticker-name { color: var(--accent); font-weight: 700; }
    .ticker-item.dark-horse .ticker-chevron {
      color: var(--accent);
      filter: drop-shadow(0 0 4px rgba(255, 62, 62, 0.5));
    }
    @keyframes darkHorseGlow {
      0% { text-shadow: 0 0 12px rgba(255, 62, 62, 0.6); }
      100% { text-shadow: none; }
    }

    /* ── Podium Velocity ── */
    .podium-velocity {
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      color: var(--green); letter-spacing: 0.5px; margin-top: 4px;
      opacity: 0.8;
    }
    .podium-velocity.hot { color: var(--accent); }

    /* ── Vote Feed ── */
    .vote-feed {
      margin-top: 32px;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.9s forwards;
    }
    .feed-title {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 3px; text-transform: uppercase;
      margin-bottom: 10px; text-align: center;
    }
    .feed-items {
      display: flex; flex-direction: column; gap: 3px;
      max-height: 180px; overflow: hidden;
    }
    .feed-item {
      display: flex; align-items: center; justify-content: space-between;
      padding: 7px 14px; background: rgba(255,255,255,0.015); border-radius: 8px;
      font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-dim);
      animation: feedSlideIn 0.3s ease-out;
    }
    @keyframes feedSlideIn {
      from { opacity: 0; transform: translateX(-10px); }
      to { opacity: 1; transform: translateX(0); }
    }
    .feed-name { color: var(--text); font-weight: 600; }
    .feed-time { font-size: 9px; opacity: 0.5; }
    .feed-vote-icon { color: var(--gold); }

    /* ── Footer ── */
    .footer {
      text-align: center; margin-top: 50px;
      opacity: 0; animation: fadeUp 0.7s ease-out 0.8s forwards;
    }
    .total-votes {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      color: var(--text-dim); letter-spacing: 1px;
    }
    .total-votes span { color: var(--gold); font-weight: 700; }
    .footer-text {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 1.5px; margin-top: 16px; opacity: 0.6;
    }
    .footer-text .blink { animation: blink 1.2s step-end infinite; color: var(--accent); }
    @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
    .disclaimer {
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      color: rgba(85, 85, 106, 0.4); margin-top: 12px; letter-spacing: 0.5px;
    }

    /* Toast */
    .toast {
      position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(20px);
      background: linear-gradient(135deg, var(--accent), #cc2222);
      color: white; font-family: 'JetBrains Mono', monospace;
      font-size: 12px; font-weight: 700; padding: 14px 28px; border-radius: 12px;
      z-index: 200; opacity: 0; pointer-events: none;
      transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.2, 0, 0, 1);
      letter-spacing: 0.5px; box-shadow: 0 8px 30px rgba(255, 62, 62, 0.3);
      max-width: 90vw; text-align: center; line-height: 1.4;
    }
    .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
    .toast.broadcast {
      background: linear-gradient(135deg, #22c55e, #16a34a);
      box-shadow: 0 8px 30px rgba(34, 197, 94, 0.3);
    }
    .toast.broadcast.persistent {
      pointer-events: auto; cursor: pointer;
    }
    .toast.broadcast .toast-close {
      display: inline-block; margin-left: 12px; opacity: 0.7;
      font-size: 10px; vertical-align: middle;
    }
    .toast.broadcast a {
      color: white; text-decoration: underline; font-weight: 700;
    }
    .toast.success {
      background: linear-gradient(135deg, #22c55e, #16a34a);
      box-shadow: 0 8px 30px rgba(34, 197, 94, 0.3);
    }

    /* ── Responsive ── */
    @media (max-width: 600px) {
      .online-counter { font-size: 10px; top: 10px; right: 10px; }
      .entry { grid-template-columns: 38px 1fr auto 60px; padding: 10px 12px; gap: 8px; }
      .rank-num { font-size: 0.85rem; }
      .player-name { font-size: 0.85rem; }
      .score { font-size: 0.85rem; }
      .score-block { min-width: 50px; }
      .container { padding: 30px 14px 60px; }
      .header { margin-bottom: 30px; }
      .stats-bar { grid-template-columns: repeat(2, 1fr); gap: 8px; }
      .stat-card { padding: 12px 8px; }
      .stat-value { font-size: 1rem; }
      .podium { gap: 6px; max-width: 100%; }
      .podium-card { padding: 12px 6px 10px; height: 160px; }
      .podium-slot.gold .podium-card { padding: 16px 6px 12px; height: 190px; }
      .podium-name { font-size: 0.7rem; }
      .podium-slot.gold .podium-name { font-size: 0.85rem; }
      .podium-medal { font-size: 1.4rem; margin-bottom: 4px; }
      .podium-slot.gold .podium-medal { font-size: 1.8rem; }
      .podium-rank { font-size: 0.85rem; }
      .podium-slot.gold .podium-rank { font-size: 1.1rem; }
      .podium-score { margin-top: 4px; }
      .podium-slot.gold .podium-score { font-size: 1.1rem; }
      .podium-slot.silver .podium-score { font-size: 0.9rem; }
      .podium-slot.bronze .podium-score { font-size: 0.9rem; }
      .podium-desc { font-size: 7px; }
      .podium-velocity { font-size: 8px; }
      .rising-badge { display: none; }
      .my-votes-badge:not(.podium-my-votes) { font-size: 8px; padding: 1px 5px; }
      .my-votes-badge.podium-my-votes { font-size: 7px; padding: 1px 5px; }
      .votes-remaining { padding: 5px 12px; font-size: 10px; grid-template-columns: auto 1fr auto; }
      .votes-remaining .count { font-size: 12px; }
      .votes-spacer-left { display: none; }
      .all-in-toggle { font-size: 8px; padding: 2px 6px; }
      .share-btn { font-size: 9px; padding: 2px 7px; margin-left: 8px; }
      .share-btn-text { display: none; }
      .ticker-item { font-size: 10px; letter-spacing: 0.5px; gap: 6px; }
      .ticker-chevron { font-size: 11px; }
      .ticker-track { gap: 12px; padding: 8px 40px; }
      .ticker-count { font-size: 10px; padding: 1px 5px; min-width: 22px; }
      .ticker-wrap.countdown-mode { padding: 10px 0; margin-bottom: -10px; }
      .ticker-wrap.countdown-critical { padding: 12px 0; margin-bottom: -14px; }
      .ticker-wrap.shuffle-mode { padding: 10px 0; margin-bottom: -10px; }
      .ticker-item.countdown-text { font-size: 11px; letter-spacing: 2px; }
      .ticker-item.countdown-critical-text { font-size: 14px; letter-spacing: 3px; }
      .ticker-item.shuffle-text { font-size: 13px; letter-spacing: 3px; }
      .countdown-bar { width: 50px; margin: 0 8px; }
      .corner-btn { font-size: 9px; padding: 6px 10px; letter-spacing: 1px; }
      .left-btn-stack { left: 12px; bottom: 16px; }
      .suggest-btn-corner { right: 12px; bottom: 50px; }
      .redeem-btn { right: 12px; bottom: 86px; }
      .poll-btn-corner { right: 12px; bottom: 122px; }
      .admin-btn { right: 12px; bottom: 16px; }
      .chat-panel { left: 10px; right: 10px; width: auto; bottom: 50px; }
      .podium-velocity { font-size: 10px; }
    }

    /* ── Admin ── */
    .corner-btn {
      position: fixed; bottom: 20px; z-index: 200;
      background: rgba(8, 8, 13, 0.9); border: 1px solid rgba(255, 255, 255, 0.06);
      color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
      padding: 8px 16px; border-radius: 6px; cursor: pointer;
      backdrop-filter: blur(12px); transition: all 0.3s ease;
    }
    .corner-btn::before {
      content: '// '; color: rgba(255, 62, 62, 0.4); font-weight: 700;
    }
    .corner-btn:hover {
      color: var(--text); border-color: rgba(255, 62, 62, 0.3);
      box-shadow: 0 0 12px rgba(255, 62, 62, 0.08);
    }
    .admin-btn { right: 20px; }
    .admin-btn.logged-in { border-color: rgba(34,197,94,0.3); color: var(--green); }
    .mute-btn { }
    .mute-btn.muted { color: var(--accent); border-color: rgba(255,62,62,0.15); }
    .mute-btn.muted::before { color: var(--accent); }
    .suggest-btn-corner { right: 20px; bottom: 56px; }
    
    /* ── Poll button & modal ── */
    .poll-btn-corner { right: 20px; bottom: 134px; }
    .poll-btn-corner.has-poll {
      border-color: rgba(255, 215, 0, 0.3);
      color: var(--gold);
      animation: pollBreathe 2s ease-in-out infinite;
    }
    .poll-btn-corner.has-poll::before { color: rgba(255, 215, 0, 0.6); }
    .poll-btn-corner.voted { animation: none; border-color: rgba(34,197,94,0.3); color: var(--green); }
    @keyframes pollBreathe {
      0%, 100% { box-shadow: 0 0 8px rgba(255, 215, 0, 0.05); transform: scale(1); }
      50% { box-shadow: 0 0 18px rgba(255, 215, 0, 0.15); transform: scale(1.04); }
    }
    .poll-overlay {
      display: none; position: fixed; inset: 0; z-index: 1000;
      background: rgba(0,0,0,0.7); backdrop-filter: blur(6px);
      align-items: center; justify-content: center;
    }
    .poll-overlay.open { display: flex; }
    .poll-modal {
      background: var(--bg-dark); border: 1px solid var(--border);
      border-radius: 16px; width: 95%; max-width: 420px; padding: 28px;
      max-height: 80vh; overflow-y: auto;
    }
    .poll-question {
      font-family: 'JetBrains Mono', monospace; font-size: 14px;
      color: var(--gold); text-transform: uppercase; letter-spacing: 1px;
      margin-bottom: 20px; line-height: 1.5; text-align: center;
    }
    .poll-option {
      position: relative; width: 100%; padding: 12px 16px;
      margin-bottom: 8px; background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.06); border-radius: 8px;
      color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 11px; letter-spacing: 0.5px; cursor: pointer;
      transition: all 0.3s ease; overflow: hidden; text-align: left;
    }
    .poll-option:hover { border-color: rgba(255,215,0,0.3); color: var(--text); }
    .poll-option.selected { border-color: rgba(255,215,0,0.5); color: var(--gold); }
    .poll-option .poll-bar {
      position: absolute; left: 0; top: 0; bottom: 0;
      background: rgba(255, 215, 0, 0.06); border-radius: 8px;
      transition: width 0.6s ease; z-index: 0;
    }
    .poll-option .poll-option-inner { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; }
    .poll-pct { color: var(--text-dim); font-size: 10px; }
    .poll-total {
      text-align: center; margin-top: 12px;
      font-family: 'JetBrains Mono', monospace; font-size: 9px;
      color: var(--text-dim); letter-spacing: 1px; text-transform: uppercase;
    }
    .poll-close {
      position: absolute; top: 12px; right: 16px; background: none;
      border: none; color: var(--text-dim); font-size: 18px; cursor: pointer;
    }
    .poll-close:hover { color: var(--text); }
    .poll-modal { position: relative; }

    /* ── Gachi Easter Egg ── */
    .gachi-overlay {
      position: fixed; inset: 0; z-index: 9999;
      display: flex; align-items: center; justify-content: center;
      pointer-events: none; opacity: 0;
      transition: opacity 0.4s ease;
    }
    .gachi-overlay.active { opacity: 1; }
    .gachi-overlay.fade-out { opacity: 0; }
    .admin-overlay {
      display: none; position: fixed; inset: 0; z-index: 1000;
      background: rgba(0,0,0,0.7); backdrop-filter: blur(6px);
      align-items: center; justify-content: center;
    }
    .admin-overlay.open { display: flex; }
    .admin-modal {
      background: var(--bg-dark); border: 1px solid var(--border);
      border-radius: 16px; width: 95%; max-width: 750px; max-height: 88vh;
      overflow-y: auto; padding: 0; box-shadow: 0 25px 60px rgba(0,0,0,0.6);
    }
    .admin-modal::-webkit-scrollbar { width: 6px; }
    .admin-modal::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }
    .admin-header {
      padding: 20px 24px; border-bottom: 1px solid var(--border);
      display: flex; justify-content: space-between; align-items: center;
      position: sticky; top: 0; background: var(--bg-dark); z-index: 1;
    }
    .admin-header h2 { font-family: 'JetBrains Mono', monospace; font-size: 16px; color: var(--gold); }
    .admin-close {
      background: none; border: none; color: var(--text-dim); font-size: 22px;
      cursor: pointer; padding: 4px 8px; border-radius: 6px;
    }
    .admin-close:hover { color: var(--accent); }
    .admin-body { padding: 20px 24px; }
    .admin-tabs {
      display: flex; gap: 0; border-bottom: 1px solid var(--border); margin: 0 -24px 20px -24px; padding: 0 24px;
    }
    .admin-tab {
      padding: 10px 18px; font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 1.5px; text-transform: uppercase; color: var(--text-dim);
      background: none; border: none; border-bottom: 2px solid transparent;
      cursor: pointer; transition: all 0.2s; white-space: nowrap;
    }
    .admin-tab:hover { color: var(--text); }
    .admin-tab.active { color: var(--gold); border-bottom-color: var(--gold); font-weight: 700; }
    .admin-tab-content { display: none; }
    .admin-tab-content.active { display: block; }
    .admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    @media (max-width: 600px) {
      .admin-grid { grid-template-columns: 1fr; }
      #tab-dashboard [style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2, 1fr) !important; }
      #tab-dashboard [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
    }
    .admin-login-form { display: flex; flex-direction: column; gap: 12px; }
    .admin-login-form input {
      background: var(--bg-card); border: 1px solid var(--border); color: var(--text);
      font-family: 'JetBrains Mono', monospace; font-size: 13px;
      padding: 10px 14px; border-radius: 8px; outline: none;
    }
    .admin-login-form input:focus { border-color: rgba(255,215,0,0.3); }
    .admin-login-form input::placeholder { color: var(--text-dim); }
    .admin-action-btn {
      background: var(--bg-card); border: 1px solid var(--border); color: var(--text);
      font-family: 'JetBrains Mono', monospace; font-size: 12px;
      padding: 10px 16px; border-radius: 8px; cursor: pointer; transition: all 0.2s;
      width: 100%; text-align: left;
    }
    .admin-action-btn:hover { border-color: rgba(255,215,0,0.2); background: var(--bg-card-hover); }
    .admin-action-btn.danger:hover { border-color: rgba(255,62,62,0.4); background: rgba(255,62,62,0.05); }
    .admin-action-btn.gold { color: var(--gold); }
    .admin-section { margin-bottom: 20px; }
    .admin-section-title {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      text-transform: uppercase; letter-spacing: 2px; color: var(--text-dim); margin-bottom: 10px;
    }
    .admin-actions { display: flex; flex-direction: column; gap: 8px; }
    .admin-add-form { display: flex; gap: 8px; }
    .admin-add-form input {
      flex: 1; background: var(--bg-card); border: 1px solid var(--border);
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 12px;
      padding: 10px 14px; border-radius: 8px; outline: none;
    }
    .admin-add-form input:focus { border-color: rgba(255,215,0,0.3); }
    .admin-add-form button {
      background: var(--gold); color: #000; border: none; padding: 10px 18px;
      border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px;
      font-weight: 700; cursor: pointer; white-space: nowrap;
    }
    .admin-log { max-height: 250px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
    .admin-log-entry {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 8px 10px; background: var(--bg-card); border-radius: 6px;
      border-left: 3px solid var(--text-dim); line-height: 1.5;
    }
    .admin-log-entry .log-time { color: var(--text-dim); }
    .admin-log-entry .log-admin { color: var(--gold); }
    .admin-log-entry .log-action { color: var(--accent); }
    .admin-log-entry.action-LOGIN { border-left-color: var(--green); }
    .admin-log-entry.action-RESET_COOLDOWNS { border-left-color: #3b82f6; }
    .admin-log-entry.action-RESET_LEADERBOARD { border-left-color: var(--accent); }
    .admin-log-entry.action-ADD_CONTESTANT { border-left-color: var(--gold); }
    .admin-log-entry.action-REMOVE_CONTESTANT { border-left-color: #f97316; }
    .admin-msg {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 8px 12px; border-radius: 6px; margin-bottom: 12px; text-align: center;
    }
    .admin-msg.success { background: rgba(34,197,94,0.1); color: var(--green); border: 1px solid rgba(34,197,94,0.2); }
    .admin-msg.error { background: rgba(255,62,62,0.1); color: var(--accent); border: 1px solid rgba(255,62,62,0.2); }
    .admin-user-badge {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      color: var(--green); margin-bottom: 16px; display: flex;
      align-items: center; justify-content: space-between;
    }
    .admin-user-badge .logout-link { color: var(--text-dim); cursor: pointer; font-size: 10px; }
    .admin-user-badge .logout-link:hover { color: var(--accent); }

    /* ── Suggestion box ── */
    /* ── Chat Panel ── */
    .chat-btn {
      border-color: rgba(255, 215, 0, 0.45) !important;
      color: var(--gold) !important;
      text-shadow: 0 0 8px rgba(255, 215, 0, 0.3);
      box-shadow: 0 0 10px rgba(255, 215, 0, 0.1), inset 0 0 8px rgba(255, 215, 0, 0.03);
    }
    .chat-btn.bonus-ready {
      animation: chatBonusBreathe 2s ease-in-out infinite;
    }
    @keyframes chatBonusBreathe {
      0%, 100% { box-shadow: 0 0 10px rgba(167,139,250,0.1), inset 0 0 8px rgba(167,139,250,0.03); border-color: rgba(167,139,250,0.45); }
      50% { box-shadow: 0 0 22px rgba(167,139,250,0.3), inset 0 0 12px rgba(167,139,250,0.08); border-color: rgba(167,139,250,0.7); }
    }
    .chat-btn::before { color: rgba(255, 215, 0, 0.6) !important; }
    .chat-btn:hover {
      border-color: rgba(255, 215, 0, 0.7) !important;
      box-shadow: 0 0 18px rgba(255, 215, 0, 0.2), inset 0 0 12px rgba(255, 215, 0, 0.05) !important;
      color: #fff !important; text-shadow: 0 0 12px rgba(255, 215, 0, 0.5);
    }

    /* ── Left button stack ── */
    .left-btn-stack {
      position: fixed; left: 20px; bottom: 20px; z-index: 200;
      display: flex; flex-direction: column-reverse; gap: 8px;
      align-items: flex-start;
    }
    .left-btn-stack .corner-btn {
      position: static;
    }
    .left-btn-group {
      display: flex; flex-direction: column; gap: 4px;
      align-items: flex-start;
    }



    .newcode-hint { color: #a78bfa; animation: newcodePulse 2s ease-in-out infinite; }
    @keyframes newcodePulse {
      0%, 100% { opacity: 0.7; text-shadow: none; }
      50% { opacity: 1; text-shadow: 0 0 8px rgba(167,139,250,0.5); }
    }

    /* ── X / Twitter Button ── */
    .x-btn {
      border-color: rgba(29, 161, 242, 0.45) !important;
      color: rgba(29, 161, 242, 1) !important;
      text-shadow: 0 0 8px rgba(29, 161, 242, 0.3);
      box-shadow: 0 0 10px rgba(29, 161, 242, 0.1), inset 0 0 8px rgba(29, 161, 242, 0.03);
    }
    .x-btn::before { content: ''; }
    .x-btn:hover {
      border-color: rgba(29, 161, 242, 0.7) !important;
      box-shadow: 0 0 18px rgba(29, 161, 242, 0.2), inset 0 0 12px rgba(29, 161, 242, 0.05) !important;
      color: #fff !important; text-shadow: 0 0 12px rgba(29, 161, 242, 0.5);
    }
    .x-btn.has-reward {
      animation: xBtnBreathe 2s ease-in-out infinite;
    }
    @keyframes xBtnBreathe {
      0%, 100% { box-shadow: 0 0 10px rgba(29,161,242,0.1), inset 0 0 8px rgba(29,161,242,0.03); border-color: rgba(29,161,242,0.45); }
      50% { box-shadow: 0 0 22px rgba(29,161,242,0.3), inset 0 0 12px rgba(29,161,242,0.08); border-color: rgba(29,161,242,0.7); }
    }
    .x-panel {
      position: fixed; bottom: 56px; left: 20px; z-index: 200;
      width: 260px; background: rgba(8,8,13,0.96); border: 1px solid rgba(29,161,242,0.2);
      border-radius: 12px; backdrop-filter: blur(16px); overflow: hidden;
      transform: translateY(10px); opacity: 0; pointer-events: none;
      transition: all 0.25s ease;
    }
    .x-panel.open { transform: translateY(0); opacity: 1; pointer-events: auto; }
    .x-panel-header {
      padding: 12px 14px; border-bottom: 1px solid rgba(29,161,242,0.1);
      display: flex; justify-content: space-between; align-items: center;
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 1.5px; text-transform: uppercase; color: rgba(29,161,242,0.9);
    }
    .x-panel-close { background: none; border: none; color: var(--text-dim); font-size: 16px; cursor: pointer; padding: 2px 6px; }
    .x-panel-close:hover { color: var(--accent); }
    .x-panel-body { padding: 14px; }
    .x-follow-section { }
    .x-follow-btn {
      width: 100%; padding: 10px; border-radius: 8px; border: 1px solid rgba(29,161,242,0.3);
      background: rgba(29,161,242,0.08); color: rgba(29,161,242,1);
      font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700;
      cursor: pointer; transition: all 0.2s; letter-spacing: 0.5px;
    }
    .x-follow-btn:hover { background: rgba(29,161,242,0.15); border-color: rgba(29,161,242,0.5); }
    .x-follow-btn.claimed { color: rgba(29,161,242,0.9); border-color: rgba(29,161,242,0.3); background: rgba(29,161,242,0.05); opacity: 1; cursor: pointer; }
    .x-follow-desc {
      font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-dim);
      margin-top: 6px; line-height: 1.5; letter-spacing: 0.3px;
    }

    /* ── Redeem Code Button (right side) ── */
    .redeem-btn {
      right: 20px; bottom: 94px;
      cursor: pointer; transition: all 0.3s ease;
      border-color: rgba(167,139,250,0.3) !important;
      color: #a78bfa !important;
    }
    .redeem-btn::before { color: rgba(167,139,250,0.5) !important; }
    .redeem-btn:hover {
      border-color: rgba(167,139,250,0.5) !important;
      box-shadow: 0 0 12px rgba(167,139,250,0.1);
      color: #c4b5fd !important;
    }
    .redeem-btn.expanded {
      border-radius: 8px; padding: 8px 12px;
    }
    .redeem-expanded {
      display: flex; gap: 6px; margin-top: 8px; align-items: center;
    }
    .redeem-expanded input {
      background: rgba(255,255,255,0.04); border: 1px solid rgba(167,139,250,0.2);
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 6px 8px; border-radius: 5px; outline: none; width: 120px;
      text-transform: uppercase;
    }
    .redeem-expanded input:focus { border-color: rgba(167,139,250,0.4); }
    .redeem-submit {
      background: rgba(167,139,250,0.15); border: 1px solid rgba(167,139,250,0.3);
      color: #a78bfa; font-family: 'JetBrains Mono', monospace; font-size: 10px;
      font-weight: 700; padding: 6px 10px; border-radius: 5px; cursor: pointer;
    }
    .redeem-submit:hover { background: rgba(167,139,250,0.25); }
    .redeem-msg {
      font-family: 'JetBrains Mono', monospace; font-size: 9px; margin-top: 4px; min-height: 0;
    }
    .redeem-msg.success { color: var(--green); }
    .redeem-msg.error { color: var(--accent); }
    .chat-panel {
      position: fixed; bottom: 56px; left: 20px; z-index: 200;
      width: 320px; max-height: 400px;
      background: rgba(8, 8, 13, 0.95); border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 10px; backdrop-filter: blur(16px);
      display: none; flex-direction: column;
      font-family: 'JetBrains Mono', monospace;
      box-shadow: 0 8px 32px rgba(0,0,0,0.5);
    }
    .chat-panel.open { display: flex; }
    .chat-panel-header {
      display: flex; justify-content: space-between; align-items: center;
      padding: 10px 14px; border-bottom: 1px solid rgba(255,255,255,0.06);
    }
    .chat-panel-title {
      font-size: 10px; letter-spacing: 2px; color: var(--text-dim); text-transform: uppercase;
    }
    .chat-panel-title::before { content: '// '; color: rgba(255, 62, 62, 0.4); font-weight: 700; }
    .chat-panel-close {
      background: none; border: none; color: var(--text-dim); font-size: 14px; cursor: pointer;
      transition: color 0.2s;
    }
    .chat-panel-close:hover { color: var(--text); }
    .chat-messages {
      flex: 1; overflow-y: auto; padding: 10px 14px;
      display: flex; flex-direction: column; gap: 6px;
      max-height: 280px; min-height: 120px;
      scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.08) transparent;
    }
    .chat-messages::-webkit-scrollbar { width: 4px; }
    .chat-messages::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 2px; }
    .chat-msg {
      font-size: 11px; line-height: 1.4; color: var(--text-dim);
      animation: chatFadeIn 0.2s ease-out;
    }
    .chat-msg .chat-name { color: var(--gold); font-weight: 700; font-size: 10px; }
    .chat-msg .chat-name.chat-role-owner {
      color: var(--gold);
      text-shadow: 0 0 8px rgba(255, 215, 0, 0.4);
    }
    .chat-msg .chat-name.chat-role-admin {
      color: var(--accent);
      text-shadow: 0 0 8px rgba(255, 62, 62, 0.3);
    }
    .chat-crown { font-size: 10px; margin-right: 2px; }
    .chat-msg .chat-text { color: #c8c8d8; }
    .chat-msg .chat-ban {
      opacity: 0; margin-left: 6px; background: none; border: none;
      color: var(--accent); font-family: 'JetBrains Mono', monospace;
      font-size: 9px; cursor: pointer; transition: opacity 0.2s;
      padding: 0 4px;
    }
    .chat-msg .chat-delete {
      opacity: 0; margin-left: 4px; background: none; border: none;
      color: #f97316; font-family: 'JetBrains Mono', monospace;
      font-size: 9px; cursor: pointer; transition: opacity 0.2s;
      padding: 0 4px;
    }
    .chat-msg .chat-timeout {
      opacity: 0; margin-left: 4px; background: none; border: none;
      color: #a855f7; font-family: 'JetBrains Mono', monospace;
      font-size: 9px; cursor: pointer; transition: opacity 0.2s;
      padding: 0 4px;
    }
    .chat-msg:hover .chat-ban, .chat-msg:hover .chat-delete, .chat-msg:hover .chat-timeout { opacity: 0.6; }
    .chat-msg .chat-ban:hover { opacity: 1; }
    .chat-msg .chat-delete:hover { opacity: 1; }
    .chat-msg .chat-timeout:hover { opacity: 1; }
    @keyframes chatFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
    .chat-input-wrap {
      display: flex; gap: 6px; padding: 10px 14px;
      border-top: 1px solid rgba(255,255,255,0.06);
    }
    .chat-input-wrap input {
      flex: 1; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06);
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 6px 10px; border-radius: 6px; outline: none;
      transition: border-color 0.2s;
    }
    .chat-input-wrap input:focus { border-color: rgba(255,62,62,0.3); }
    .chat-input-wrap input::placeholder { color: var(--text-dim); }
    .chat-send {
      background: none; border: 1px solid rgba(255,255,255,0.06);
      color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 10px; padding: 6px 10px; border-radius: 6px; cursor: pointer;
      transition: all 0.2s;
    }
    .chat-send:hover { color: var(--gold); border-color: rgba(255,215,0,0.3); }
    .chat-disabled-msg {
      padding: 30px 14px; text-align: center; font-size: 10px;
      color: var(--text-dim); letter-spacing: 1px;
    }
    .chat-name-setup {
      padding: 14px; display: flex; flex-direction: column; gap: 8px;
    }
    .chat-name-setup input {
      background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06);
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 8px 10px; border-radius: 6px; outline: none; text-align: center;
    }
    .chat-name-setup input::placeholder { color: var(--text-dim); }
    .chat-name-setup button {
      background: none; border: 1px solid rgba(255,255,255,0.06);
      color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 10px; letter-spacing: 1px; padding: 8px; border-radius: 6px;
      cursor: pointer; transition: all 0.2s;
    }
    .chat-name-setup button:hover { color: var(--gold); border-color: rgba(255,215,0,0.3); }

    /* ── Suggestion Modal ── */
    .suggest-overlay {
      display: none; position: fixed; inset: 0; z-index: 1000;
      background: rgba(0,0,0,0.7); backdrop-filter: blur(6px);
      align-items: center; justify-content: center;
    }
    .suggest-overlay.open { display: flex; }
    .suggest-modal {
      background: var(--bg-card); border: 1px solid var(--border);
      border-radius: 16px; width: 90%; max-width: 480px; padding: 24px;
      max-height: 90vh; overflow-y: auto;
    }
    .suggest-modal-header {
      display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;
    }
    .suggest-modal-header h2 {
      font-family: 'JetBrains Mono', monospace; font-size: 14px;
      color: var(--gold); letter-spacing: 2px;
    }
    .suggest-close {
      background: none; border: none; color: var(--text-dim);
      font-size: 18px; cursor: pointer; transition: color 0.2s;
    }
    .suggest-close:hover { color: var(--text); }
    .suggest-modal textarea {
      width: 100%; background: var(--bg-dark); border: 1px solid var(--border);
      color: var(--text); font-family: 'Outfit', sans-serif; font-size: 13px;
      padding: 12px 14px; border-radius: 8px; outline: none; resize: vertical;
      min-height: 80px; max-height: 160px; transition: border 0.2s;
    }
    .suggest-modal textarea:focus { border-color: rgba(255,215,0,0.3); }
    .suggest-modal textarea::placeholder { color: var(--text-dim); }
    .suggest-send {
      width: 100%; margin-top: 10px;
      background: var(--gold); color: #000; border: none; padding: 10px 18px;
      border-radius: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px;
      font-weight: 700; cursor: pointer; transition: opacity 0.2s;
    }
    .suggest-send:hover { opacity: 0.85; }
    .suggest-msg {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      margin-top: 8px; color: var(--green); text-align: center;
    }
    .suggest-msg.error { color: var(--accent); }

    /* ── Seasons (styles in header section above) ── */

    /* ── Season 2 Hall of Fame Banner ── */
    .hall-of-fame {
      background: linear-gradient(135deg, rgba(255,215,0,0.06), rgba(255,62,62,0.04));
      border: 1px solid rgba(255,215,0,0.12);
      border-radius: 10px; padding: 10px 16px;
      display: flex; align-items: center; justify-content: center; gap: 10px;
      margin-bottom: 16px; cursor: pointer;
      transition: all 0.3s ease;
      font-family: 'JetBrains Mono', monospace;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.2s forwards;
    }
    .hall-of-fame:hover { border-color: rgba(255,215,0,0.3); background: rgba(255,215,0,0.08); }
    .hof-crown { font-size: 18px; }
    .hof-text { font-size: 10px; letter-spacing: 1px; color: var(--text-dim); }
    .hof-name { color: var(--gold); font-weight: 700; }
    .hof-score { color: var(--text-dim); font-size: 9px; }
    .hof-tag {
      font-size: 8px; letter-spacing: 2px; text-transform: uppercase;
      color: var(--accent); background: rgba(255,62,62,0.1);
      padding: 2px 6px; border-radius: 4px;
    }

    /* ── Vote Streak Widget ── */
    .streak-widget {
      display: flex; align-items: center; gap: 6px;
      margin-left: 10px;
    }
    .streak-fire { font-size: 12px; }
    .streak-count {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      font-weight: 700; letter-spacing: 0.5px;
    }
    .streak-count.hot { color: #ff6b35; text-shadow: 0 0 8px rgba(255,107,53,0.3); }
    .streak-count.blaze { color: #ff3e3e; text-shadow: 0 0 8px rgba(255,62,62,0.4); }
    .streak-label {
      font-family: 'JetBrains Mono', monospace; font-size: 8px;
      letter-spacing: 1px; color: var(--text-dim);
    }
    .streak-bonus-toast {
      color: #ff6b35; font-family: 'JetBrains Mono', monospace;
      font-size: 10px; font-weight: 700;
      animation: streakPop 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards;
    }
    @keyframes streakPop {
      0% { transform: scale(0.8); opacity: 0; }
      100% { transform: scale(1); opacity: 1; }
    }

    /* ── Velocity Chart ── */
    .velocity-section {
      margin-top: 24px; margin-bottom: 8px;
      opacity: 0; animation: fadeUp 0.6s ease-out 0.85s forwards;
    }
    .velocity-title {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--text-dim); letter-spacing: 3px; text-transform: uppercase;
      margin-bottom: 8px; text-align: center;
    }
    .velocity-grid {
      display: flex; flex-direction: column; gap: 4px;
    }
    .velocity-row {
      display: grid; grid-template-columns: 100px 1fr 50px; align-items: center; gap: 8px;
      padding: 6px 10px; background: rgba(255,255,255,0.015); border-radius: 6px;
    }
    .velocity-name {
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      color: var(--text); font-weight: 600;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .velocity-sparkline {
      height: 20px; display: flex; align-items: flex-end; gap: 2px;
    }
    .velocity-bar {
      flex: 1; border-radius: 2px 2px 0 0; min-height: 2px;
      background: linear-gradient(to top, var(--accent), var(--gold));
      transition: height 0.5s ease;
      opacity: 0.7;
    }
    .velocity-votes {
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      color: var(--gold); font-weight: 700; text-align: right;
    }

    /* ── FAB (Floating Action Button) ── */
    .fab-container {
      position: fixed; right: 20px; bottom: 20px; z-index: 200;
      display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 6px;
    }
    .fab-main {
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(8,8,13,0.92); border: 1px solid rgba(255,215,0,0.3);
      color: var(--gold); font-size: 18px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1);
      box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    }
    .fab-main:hover { border-color: rgba(255,215,0,0.6); transform: scale(1.08); }
    .fab-main.open { transform: rotate(45deg); border-color: var(--accent); color: var(--accent); }
    .fab-items {
      display: flex; flex-direction: column-reverse; gap: 6px;
      max-height: 0; overflow: hidden; opacity: 0;
      transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
    }
    .fab-items.open { max-height: 400px; opacity: 1; }
    .fab-item {
      display: flex; align-items: center; gap: 8px;
      padding: 8px 14px; border-radius: 8px;
      background: rgba(8,8,13,0.95); border: 1px solid rgba(255,255,255,0.06);
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 1px; text-transform: uppercase;
      color: var(--text-dim); cursor: pointer; white-space: nowrap;
      transition: all 0.2s ease;
      transform: translateX(10px); opacity: 0;
      animation: fabItemIn 0.25s ease-out forwards;
    }
    .fab-item:hover { color: var(--gold); border-color: rgba(255,215,0,0.2); background: rgba(255,215,0,0.04); }
    .fab-item:nth-child(1) { animation-delay: 0.05s; }
    .fab-item:nth-child(2) { animation-delay: 0.1s; }
    .fab-item:nth-child(3) { animation-delay: 0.15s; }
    .fab-item:nth-child(4) { animation-delay: 0.2s; }
    .fab-item:nth-child(5) { animation-delay: 0.25s; }
    .fab-item:nth-child(6) { animation-delay: 0.3s; }
    .fab-item:nth-child(7) { animation-delay: 0.35s; }
    .fab-item:nth-child(8) { animation-delay: 0.4s; }
    @keyframes fabItemIn {
      to { transform: translateX(0); opacity: 1; }
    }
    .fab-item-icon { font-size: 12px; min-width: 16px; text-align: center; }
    .fab-item.purple { border-color: rgba(167,139,250,0.2); }
    .fab-item.purple:hover { color: #a78bfa; border-color: rgba(167,139,250,0.4); background: rgba(167,139,250,0.06); }
    .fab-chat { border-color: rgba(255,215,0,0.2); }
    .fab-chat:hover { color: var(--gold) !important; border-color: rgba(255,215,0,0.4) !important; background: rgba(255,215,0,0.04) !important; }
    .fab-x { border-color: rgba(29,161,242,0.2); }
    .fab-x:hover { color: rgba(29,161,242,1) !important; border-color: rgba(29,161,242,0.4) !important; background: rgba(29,161,242,0.04) !important; }
    .fab-notif {
      position: absolute; top: -2px; right: -2px;
      width: 10px; height: 10px; border-radius: 50%;
      background: var(--gold); border: 2px solid var(--bg-dark);
      animation: fabNotifPulse 2s ease-in-out infinite;
    }
    @keyframes fabNotifPulse {
      0%, 100% { box-shadow: 0 0 4px rgba(255,215,0,0.3); }
      50% { box-shadow: 0 0 12px rgba(255,215,0,0.6); }
    }
    .fab-main { position: relative; }
    .fab-google { border-color: rgba(66,133,244,0.2); }
    .fab-google:hover { color: #4285F4 !important; border-color: rgba(66,133,244,0.4) !important; background: rgba(66,133,244,0.04) !important; }
    .fab-google.signed-in { border-color: rgba(34,197,94,0.2); color: var(--green) !important; }
    .fab-google.signed-in:hover { border-color: rgba(34,197,94,0.4) !important; background: rgba(34,197,94,0.04) !important; }

    /* ── FAB Hint/Toast Bar ── */
    .fab-hint-bar {
      position: absolute; right: 0; bottom: 0;
      display: flex; align-items: center; gap: 8px;
      height: 44px; padding: 0 52px 0 16px;
      border-radius: 22px;
      background: rgba(8,8,13,0.95);
      border: 1px solid rgba(255,215,0,0.25);
      font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 0.5px; color: var(--text-dim);
      white-space: nowrap; pointer-events: auto;
      max-width: 0; opacity: 0; overflow: hidden;
      transition: max-width 0.4s cubic-bezier(0.4,0,0.2,1), opacity 0.3s ease, border-color 0.3s ease, background 0.3s ease;
      box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    }
    .fab-hint-bar.show {
      max-width: 90vw; opacity: 1;
    }
    .fab-hint-bar.success {
      border-color: rgba(34,197,94,0.35);
      color: #22c55e;
    }
    .fab-hint-bar.error {
      border-color: rgba(255,62,62,0.35);
      color: var(--accent);
    }
    .fab-hint-bar.broadcast {
      border-color: rgba(34,197,94,0.35);
      color: #22c55e;
    }
    .fab-hint-bar.hint-poll {
      border-color: rgba(255,215,0,0.3);
      color: var(--gold);
    }
    .fab-hint-bar.hint-signin {
      border-color: rgba(66,133,244,0.3);
      color: #4285F4;
    }
    .fab-hint-bar.hint-x {
      border-color: rgba(29,161,242,0.3);
      color: rgba(29,161,242,0.9);
    }
    .fab-hint-bar.hint-redeem {
      border-color: rgba(167,139,250,0.3);
      color: #a78bfa;
    }
    .fab-hint-bar.hint-chat {
      border-color: rgba(167,139,250,0.3);
      color: #a78bfa;
    }
    .fab-hint-bar.hint-newcode {
      border-color: rgba(167,139,250,0.3);
      color: #a78bfa;
      animation: fabHintPulse 2s ease-in-out infinite;
    }
    @keyframes fabHintPulse {
      0%, 100% { border-color: rgba(167,139,250,0.2); }
      50% { border-color: rgba(167,139,250,0.5); box-shadow: 0 4px 16px rgba(0,0,0,0.4), 0 0 12px rgba(167,139,250,0.15); }
    }
    .fab-hint-bar .fab-hint-dismiss {
      margin-left: 4px; cursor: pointer; opacity: 0.5; font-size: 9px;
      transition: opacity 0.2s;
    }
    .fab-hint-bar .fab-hint-dismiss:hover { opacity: 1; }
    @media (max-width: 600px) {
      .fab-hint-bar.show { max-width: 70vw; }
      .fab-hint-bar { font-size: 9px; padding: 0 48px 0 12px; }
    }

    /* ── Google Auth ── */
    .google-auth-btn {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 7px 14px; border-radius: 8px;
      background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
      color: var(--text); font-family: 'JetBrains Mono', monospace; font-size: 10px;
      letter-spacing: 0.5px; cursor: pointer; transition: all 0.2s;
    }
    .google-auth-btn:hover { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.06); }
    .google-auth-btn img { width: 14px; height: 14px; }
    .google-user-badge {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 4px 10px; border-radius: 6px;
      background: rgba(34,197,94,0.06); border: 1px solid rgba(34,197,94,0.15);
      font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--green);
    }
    .google-user-badge img {
      width: 16px; height: 16px; border-radius: 50%;
    }

    @media (max-width: 600px) {
      .fab-container { right: 12px; bottom: 16px; }
      .velocity-row { grid-template-columns: 80px 1fr 40px; }
      .velocity-name { font-size: 10px; }
      .hall-of-fame { padding: 8px 12px; gap: 6px; }
      .hof-text { font-size: 9px; }
    }
    .past-seasons-btn {
      background: var(--bg-card); border: 1px solid var(--border); color: var(--text-dim);
      font-family: 'JetBrains Mono', monospace; font-size: 11px;
      padding: 8px 16px; border-radius: 8px; cursor: pointer; transition: all 0.2s;
      display: inline-flex; align-items: center; gap: 6px;
    }
    .past-seasons-btn:hover { color: var(--gold); border-color: rgba(255,215,0,0.2); }
    .seasons-list { display: flex; flex-direction: column; gap: 8px; }
    .season-card {
      background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px;
      padding: 14px 16px; cursor: pointer; transition: all 0.2s;
    }
    .season-card:hover { border-color: rgba(255,215,0,0.2); background: var(--bg-card-hover); }
    .season-card-header {
      display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px;
    }
    .season-card-title {
      font-family: 'Dela Gothic One', cursive; font-size: 14px; color: var(--gold);
    }
    .season-card-date {
      font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--text-dim);
    }
    .season-card-stats {
      font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-dim);
    }
    .season-card-podium {
      display: flex; gap: 12px; margin-top: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12px;
    }
    .season-card-podium span { color: var(--text); }
    .season-detail-back {
      background: none; border: none; color: var(--text-dim); font-family: 'JetBrains Mono', monospace;
      font-size: 11px; cursor: pointer; padding: 4px 0; margin-bottom: 12px;
    }
    .season-detail-back:hover { color: var(--gold); }
    .season-detail-entry {
      display: flex; justify-content: space-between; align-items: center;
      padding: 8px 10px; background: var(--bg-card); border-radius: 6px;
      font-family: 'JetBrains Mono', monospace; font-size: 12px; margin-bottom: 4px;
    }
    .season-detail-rank { color: var(--text-dim); width: 36px; }
    .season-detail-name { flex: 1; color: var(--text); }
    .season-detail-votes { color: var(--gold); }
    .season-detail-entry:nth-child(1) .season-detail-rank { color: var(--gold); }
    .season-detail-entry:nth-child(2) .season-detail-rank { color: var(--silver); }
    .season-detail-entry:nth-child(3) .season-detail-rank { color: var(--bronze); }
    /* ═══════════════════════════════════════════
       SEASON END — COMBINED SPOTLIGHT + CINEMATIC
       ═══════════════════════════════════════════ */

    /* Dim overlay — radial vignette (spotlight) */
    .season-end-overlay {
      position: fixed; inset: 0; z-index: 50; pointer-events: none;
      background: radial-gradient(
        ellipse 55% 60% at 50% 40%,
        transparent 0%, rgba(0,0,0,0.88) 100%
      );
      opacity: 0;
      transition: opacity 1.4s cubic-bezier(0.4,0,0.2,1);
    }
    .season-end-overlay.active { opacity: 1; }

    /* Letterbox bars (cinematic) */
    .season-end-bar {
      position: fixed; left: 0; right: 0; z-index: 55;
      pointer-events: none; background: #000;
      height: 0;
      transition: height 1.6s cubic-bezier(0.7,0,0.3,1);
    }
    .season-end-bar.top { top: 0; }
    .season-end-bar.bottom { bottom: 0; }
    .season-end-bar.active { height: 11vh; }

    /* Thin gold accent lines at bar edges */
    .season-end-bar-line {
      position: fixed; left: 0; right: 0; height: 1px; z-index: 56;
      pointer-events: none;
      background: linear-gradient(90deg, transparent, rgba(255,215,0,0.1), transparent);
      opacity: 0; transition: opacity 0.8s ease 1.8s;
    }
    .season-end-bar-line.top-line { top: 11vh; }
    .season-end-bar-line.bottom-line { bottom: 11vh; }
    .season-end-bar-line.active { opacity: 1; }

    /* Spotlight beams */
    .season-end-beam {
      position: fixed; top: 0; z-index: 49;
      pointer-events: none; height: 110vh;
      clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
      opacity: 0; transform-origin: top center;
    }
    .season-end-beam.active {
      animation: seasonBeamDrop 1.2s cubic-bezier(0.16,1,0.3,1) forwards;
    }
    .season-end-beam.beam-gold {
      left: 50%; transform: translateX(-50%); width: 140px;
      background: linear-gradient(180deg,
        rgba(255,215,0,0.15) 0%, rgba(255,215,0,0.04) 35%, transparent 75%);
      animation-delay: 0s;
    }
    .season-end-beam.beam-silver {
      left: 25%; transform: translateX(-50%); width: 110px;
      background: linear-gradient(180deg,
        rgba(192,192,192,0.12) 0%, rgba(192,192,192,0.03) 35%, transparent 75%);
      animation-delay: 0.35s;
    }
    .season-end-beam.beam-bronze {
      left: 75%; transform: translateX(-50%); width: 110px;
      background: linear-gradient(180deg,
        rgba(205,127,50,0.12) 0%, rgba(205,127,50,0.03) 35%, transparent 75%);
      animation-delay: 0.55s;
    }
    @keyframes seasonBeamDrop {
      0%   { opacity: 0; clip-path: polygon(48% 0%, 52% 0%, 52% 0%, 48% 0%); }
      40%  { opacity: 0.8; }
      100% { opacity: 1; clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); }
    }

    /* Particle canvas */
    #season-end-particles {
      position: fixed; inset: 0; z-index: 52;
      pointer-events: none; opacity: 0;
      transition: opacity 1s ease;
    }
    #season-end-particles.active { opacity: 1; }

    /* Banner text */
    .season-end-banner {
      position: fixed; top: calc(11vh + 16px); left: 50%;
      transform: translateX(-50%); z-index: 60;
      font-family: 'Dela Gothic One', cursive;
      font-size: 18px; color: var(--gold);
      letter-spacing: 6px; text-transform: uppercase;
      text-shadow: 0 0 30px rgba(255,215,0,0.4);
      pointer-events: none; white-space: nowrap;
      opacity: 0; transition: opacity 1s ease 2s;
    }
    .season-end-banner.active { opacity: 1; }

    /* Podium punches through everything */
    .season-end-active .podium {
      position: relative; z-index: 53;
      transition: transform 1s cubic-bezier(0.2,0,0,1);
    }

    /* Dim + blur everything else */
    .season-end-active .header,
    .season-end-active .stats-bar,
    .season-end-active .section-divider,
    .season-end-active .filter-pills,
    .season-end-active .search-wrap,
    .season-end-active .leaderboard,
    .season-end-active .velocity-section,
    .season-end-active .vote-feed,
    .season-end-active .footer,
    .season-end-active .hall-of-fame,
    .season-end-active .top-bar,
    .season-end-active .online-counter {
      opacity: 0.06 !important;
      filter: blur(2px);
      transition: all 1.4s cubic-bezier(0.4,0,0.2,1);
    }

    /* Podium cards get extra glow when season ends */
    .season-end-active .podium-slot.gold .podium-card {
      border-color: rgba(255,215,0,0.6) !important;
      box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 50px rgba(255,215,0,0.2) !important;
    }
    .season-end-active .podium-slot.silver .podium-card {
      border-color: rgba(192,192,192,0.5) !important;
      box-shadow: inset 0 0 15px rgba(0,0,0,0.3), 0 0 35px rgba(192,192,192,0.12) !important;
    }
    .season-end-active .podium-slot.bronze .podium-card {
      border-color: rgba(205,127,50,0.5) !important;
      box-shadow: inset 0 0 15px rgba(0,0,0,0.3), 0 0 35px rgba(205,127,50,0.12) !important;
    }
    .season-end-active .podium-slot {
      transform: translateY(-6px) !important;
      transition: transform 1s cubic-bezier(0.2,0,0,1) !important;
    }
    .season-end-active .podium-slot.gold {
      transform: translateY(-10px) scale(1.03) !important;
    }

    /* Mobile adjustments */
    @media (max-width: 600px) {
      .season-end-beam.beam-gold { width: 100px; }
      .season-end-beam.beam-silver { width: 75px; left: 20%; }
      .season-end-beam.beam-bronze { width: 75px; left: 80%; }
      .season-end-bar.active { height: 8vh; }
      .season-end-bar-line.top-line { top: 8vh; }
      .season-end-bar-line.bottom-line { bottom: 8vh; }
      .season-end-banner { top: calc(8vh + 10px); font-size: 13px; letter-spacing: 4px; }
    }

    /* ── Floating Bonus Button ── */
    #floating-bonus-btn {
      position: fixed;
      bottom: 20px;
      left: 20px;
      z-index: 99999;
      cursor: pointer;
      user-select: none;
      pointer-events: auto;
      will-change: transform;
      animation: bonusBounce 1s ease-in-out infinite alternate;
    }
    @keyframes bonusBounce {
      0%   { transform: translateY(0); }
      100% { transform: translateY(-8px); }
    }
    #floating-bonus-btn .bonus-pill {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 18px;
      border-radius: 30px;
      background: linear-gradient(135deg, rgba(167,139,250,0.25) 0%, rgba(139,92,246,0.35) 100%);
      border: 2px solid rgba(167,139,250,0.7);
      color: #e2d9ff;
      font-family: 'JetBrains Mono', monospace;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: 0.5px;
      box-shadow: 0 0 20px rgba(167,139,250,0.3), 0 4px 15px rgba(0,0,0,0.3);
      backdrop-filter: blur(10px);
      white-space: nowrap;
      transition: transform 0.15s ease, box-shadow 0.15s ease;
    }
    #floating-bonus-btn:hover .bonus-pill {
      transform: scale(1.08);
      box-shadow: 0 0 30px rgba(167,139,250,0.5), 0 4px 20px rgba(0,0,0,0.4);
      border-color: rgba(167,139,250,0.9);
    }
    #floating-bonus-btn:active .bonus-pill {
      transform: scale(0.95);
    }
    #floating-bonus-btn.collected .bonus-pill {
      animation: bonusCollected 0.6s ease-out forwards;
    }
    @keyframes bonusCollected {
      0% { transform: scale(1); opacity: 1; }
      30% { transform: scale(1.3); opacity: 1; }
      100% { transform: scale(0.5); opacity: 0; }
    }

    #chat-body { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0; }
