/* =================================================================
       PAGE FOUNDATION
       ================================================================= */
    *,*::before,*::after { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    body {
      background: var(--frisbier-paper);
      color: var(--frisbier-ink);
      font-family: var(--font-body);
      overflow-x: hidden;
    }
    [data-theme="stadion"] {
      background: var(--frisbier-black);
      color: var(--frisbier-white);
    }
    a { color: inherit; text-decoration: none; }
    img { display: block; max-width: 100%; }
    .container {
      max-width: var(--container-max);
      margin: 0 auto;
      padding: 0 var(--container-pad);
    }

    /* Liga-Page wrapper — owns the page background; data-theme attr is set here
       so it works whether or not the host site controls <body>. */
    .liga-page { min-height: 100vh; background: var(--frisbier-paper); color: var(--frisbier-ink); font-family: var(--font-body); font-size: 16px; line-height: 1.55; }
    .liga-page[data-theme="stadion"] { background: var(--frisbier-black); color: var(--frisbier-white); }
    /* Defensive resets when embedded under a WordPress parent theme that may
       set its own typography/colors on inner elements. */
    .liga-page * { box-sizing: border-box; }
    .liga-page h1, .liga-page h2, .liga-page h3, .liga-page h4, .liga-page h5,
    .liga-page p, .liga-page ul, .liga-page dl, .liga-page dt, .liga-page dd { margin: 0; padding: 0; }
    .liga-page ul { list-style: none; }
    .liga-page a { color: inherit; text-decoration: none; }
    .liga-page button { font: inherit; color: inherit; }

    .eyebrow {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 13px;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-500);
      margin-bottom: 12px;
    }
    .eyebrow.yellow { color: var(--frisbier-yellow); }
    .eyebrow.small  { font-size: 11px; margin-bottom: 8px; }
    .mark {
      background: var(--frisbier-yellow);
      color: #000;
      padding: 0 .14em;
      box-decoration-break: clone;
      -webkit-box-decoration-break: clone;
      display: inline-block;
      transform: rotate(-1.2deg);
    }
    .sec-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: 36px;
      flex-wrap: wrap;
    }
    .sec-head h2 {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: clamp(36px, 5vw, 64px);
      line-height: .95;
      letter-spacing: -0.01em;
      text-transform: uppercase;
      margin: 0;
    }
    .sort-hint {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 12px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-400);
    }
    [data-theme="stadion"] .sort-hint { color: var(--frisbier-neutral-300); }
    [data-theme="stadion"] .eyebrow:not(.yellow) { color: var(--frisbier-neutral-300); }

    /* ----- INITIALS BADGE ---------------------------------------- */
    .initials {
      display: grid;
      place-items: center;
      border: 2px solid #000;
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      flex-shrink: 0;
      letter-spacing: -0.02em;
      box-shadow: 2px 2px 0 0 #000;
    }

    /* =================================================================
       SITE HEADER
       ================================================================= */
    .site-header {
      position: sticky; top: 0; z-index: 50;
      background: rgba(250,248,243,.86);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--frisbier-neutral-100);
    }
    [data-theme="stadion"] .site-header {
      background: rgba(14,14,14,.86);
      border-bottom-color: #2a2a2a;
    }
    [data-theme="stadion"] .site-header .brand img { filter: invert(1); }
    .site-header .row {
      display: flex; align-items: center; justify-content: space-between;
      gap: 24px; padding: 16px 0;
    }
    .brand img { height: 38px; width: auto; }
    .nav {
      display: flex; gap: 28px; align-items: center;
      font-family: var(--font-heading);
      font-weight: 700; font-size: 14px;
      letter-spacing: .04em; text-transform: uppercase;
    }
    .nav a { position: relative; padding: 6px 0; }
    .nav a:hover { color: var(--frisbier-black); }
    [data-theme="stadion"] .nav a:hover { color: var(--frisbier-yellow); }
    .nav a:hover::after,
    .nav a.active::after {
      content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
      height: 3px; background: var(--frisbier-yellow);
    }
    .header-tools { display: flex; gap: 14px; align-items: center; }
    .icon-btn {
      display: grid; place-items: center;
      width: 38px; height: 38px;
      border: 1.5px solid var(--frisbier-black);
      background: transparent;
      cursor: pointer; position: relative;
    }
    [data-theme="stadion"] .icon-btn {
      border-color: var(--frisbier-white);
    }
    [data-theme="stadion"] .icon-btn img { filter: invert(1); }
    .icon-btn:hover { background: var(--frisbier-yellow); }
    [data-theme="stadion"] .icon-btn:hover img { filter: none; }
    .icon-btn img { width: 18px; height: 18px; }
    .cart-count {
      position: absolute; top: -6px; right: -6px;
      background: var(--frisbier-black); color: var(--frisbier-yellow);
      font-family: var(--font-heading); font-weight: 800;
      font-size: 10px; padding: 2px 5px;
      border-radius: 999px; min-width: 18px;
      text-align: center; line-height: 1;
    }
    @media (max-width: 880px){ .nav { display: none; } }

    /* =================================================================
       HERO
       ================================================================= */
    .hero {
      position: relative; overflow: hidden;
      background: #0E0E0E; color: #fff;
    }
    .hero-photo {
      position: absolute; inset: 0;
      background-image: url("https://frisbier.de/wp-content/uploads/2025/04/DSC07932.jpg");
      background-size: cover; background-position: center 40%;
      opacity: .42;
      filter: grayscale(40%) contrast(105%);
    }
    .hero-vignette {
      position: absolute; inset: 0;
      background: linear-gradient(180deg, rgba(14,14,14,.55) 0%, rgba(14,14,14,.25) 35%, rgba(14,14,14,.85) 100%);
    }
    .hero-inner {
      position: relative;
      padding: 110px 0 96px;
      display: grid;
      grid-template-columns: 1.2fr .9fr;
      gap: 40px;
      align-items: end;
      min-height: 580px;
    }
    .hero h1 {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: clamp(56px, 10vw, 156px);
      line-height: .88;
      letter-spacing: -0.02em;
      text-transform: uppercase;
      margin: 0;
      color: #fff;
      text-wrap: balance;
    }
    .hero .sub {
      font-size: 19px;
      line-height: 1.55;
      max-width: 50ch;
      margin: 28px 0 36px;
      color: #F1ECDF;
      font-weight: 500;
    }
    .hero-meta {
      display: grid;
      grid-template-columns: repeat(4, max-content);
      gap: 36px;
      padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,.22);
    }
    .hm-n {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 48px; line-height: 1;
      color: var(--frisbier-yellow);
      font-variant-numeric: tabular-nums;
    }
    .hm-l {
      font-family: var(--font-heading);
      font-weight: 800; font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: #B8B3A4;
      margin-top: 6px;
    }
    .hero-badge {
      align-self: end; justify-self: end;
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 14px; letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--frisbier-yellow);
      writing-mode: vertical-rl; rotate: 180deg;
      border-left: 2px solid var(--frisbier-yellow);
      padding: 24px 8px;
    }
    @media (max-width: 880px){
      .hero-inner { grid-template-columns: 1fr; padding: 72px 0 64px; }
      .hero-badge { display: none; }
      .hero-meta { gap: 24px; grid-template-columns: 1fr 1fr; }
      .hm-n { font-size: 36px; }
    }

    /* =================================================================
       YELLOW TAPE MARQUEE
       ================================================================= */
    .tape {
      background: var(--frisbier-yellow);
      color: #000;
      border-top: 2px solid #000; border-bottom: 2px solid #000;
      overflow: hidden;
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      text-transform: uppercase;
      letter-spacing: .04em;
      font-size: 24px;
      display: flex;
    }
    .tape-track {
      display: flex; gap: 56px; padding: 14px 0;
      animation: scroll 36s linear infinite;
      white-space: nowrap;
    }
    @keyframes scroll {
      from { transform: translateX(0); }
      to   { transform: translateX(-33.34%); }
    }

    /* =================================================================
       PODIUM
       ================================================================= */
    .podium { padding: 80px 0 56px; }
    [data-theme="stadion"] .podium { background: #0E0E0E; }
    .podium .eyebrow { text-align: center; margin-bottom: 8px; }
    .podium h2 {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: clamp(40px, 6vw, 76px);
      text-transform: uppercase;
      text-align: center;
      letter-spacing: -0.01em;
      line-height: .95;
      margin: 0 0 48px;
    }
    .podium-grid {
      display: grid;
      grid-template-columns: 1fr 1.1fr 1fr;
      gap: 24px;
      align-items: end;
    }
    .podium-card {
      background: #fff;
      border: 2.5px solid #000;
      padding: 28px 22px 26px;
      text-align: center;
      box-shadow: 6px 6px 0 0 #000;
      position: relative;
      transition: transform .2s var(--ease-snap), box-shadow .2s var(--ease-snap);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
    }
    .podium-card:hover { transform: translate(-2px, -2px); box-shadow: 10px 10px 0 0 #000; }
    [data-theme="stadion"] .podium-card {
      background: #1a1a1a; color: #fff; border-color: var(--frisbier-yellow);
      box-shadow: 6px 6px 0 0 var(--frisbier-yellow);
    }
    [data-theme="stadion"] .podium-card:hover { box-shadow: 10px 10px 0 0 var(--frisbier-yellow); }
    .podium-card.rank-1 {
      background: var(--frisbier-yellow);
      transform: translateY(-32px);
      padding-top: 36px;
    }
    .podium-card.rank-1:hover { transform: translateY(-32px) translate(-2px, -2px); }
    .podium-rank {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 88px; line-height: .9;
      letter-spacing: -0.04em;
      color: #000;
    }
    .podium-card.rank-1 .podium-rank { font-size: 110px; }
    [data-theme="stadion"] .podium-card:not(.rank-1) .podium-rank { color: var(--frisbier-yellow); }
    .podium-name {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 22px;
      text-transform: uppercase;
      line-height: 1;
      margin-top: 4px;
    }
    .podium-nick {
      font-family: var(--font-heading);
      font-weight: 700; font-size: 12px;
      letter-spacing: .12em;
      text-transform: uppercase;
      opacity: .6;
    }
    .podium-stats {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      width: 100%;
      margin: 14px 0 0;
      padding: 14px 0 0;
      border-top: 1.5px solid currentColor;
    }
    .podium-stats > div { display: flex; flex-direction: column; gap: 2px; }
    .podium-stats dt {
      font-family: var(--font-heading);
      font-weight: 800; font-size: 9px;
      letter-spacing: .14em; text-transform: uppercase;
      opacity: .7;
    }
    .podium-stats dd {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 26px; margin: 0;
      line-height: 1;
      font-variant-numeric: tabular-nums;
    }
    .podium-stats dd small {
      font-style: normal; font-weight: 700;
      font-size: 11px; opacity: .55;
      margin-left: 2px;
    }
    @media (max-width: 880px){
      .podium-grid { grid-template-columns: 1fr; gap: 36px; }
      .podium-card.rank-1 { transform: none; }
      .podium-card.rank-1:hover { transform: translate(-2px,-2px); }
    }

    /* =================================================================
       LEAGUE TABLE
       ================================================================= */
    .table-sec { padding: 72px 0 56px; }
    [data-theme="stadion"] .table-sec { background: #0E0E0E; }
    .table-wrap {
      background: #fff;
      border: 2.5px solid #000;
      box-shadow: 8px 8px 0 0 #000;
      overflow-x: auto;
    }
    [data-theme="stadion"] .table-wrap {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 8px 8px 0 0 var(--frisbier-yellow);
    }
    .liga {
      width: 100%;
      border-collapse: collapse;
      font-variant-numeric: tabular-nums;
      min-width: 940px;
    }
    .liga thead th {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-500);
      background: var(--frisbier-cream);
      padding: 14px 12px;
      border-bottom: 2.5px solid #000;
      text-align: left;
      white-space: nowrap;
      user-select: none;
    }
    [data-theme="stadion"] .liga thead th {
      background: #000; color: var(--frisbier-neutral-300);
      border-bottom-color: var(--frisbier-yellow);
    }
    .liga th.align-right { text-align: right; }
    .liga th.sortable { cursor: pointer; }
    .liga th.sortable:hover { color: var(--frisbier-black); background: var(--frisbier-yellow-soft); }
    [data-theme="stadion"] .liga th.sortable:hover { color: #000; background: var(--frisbier-yellow); }
    .liga th.active { color: #000; background: var(--frisbier-yellow); }
    [data-theme="stadion"] .liga th.active { color: #000; }
    .sort-arrow { display: inline-block; margin-left: 4px; opacity: .55; }
    .liga th.active .sort-arrow { opacity: 1; }

    .liga tbody td {
      padding: 12px;
      border-bottom: 1px solid var(--frisbier-neutral-100);
      vertical-align: middle;
    }
    [data-theme="stadion"] .liga tbody td { border-bottom-color: #2a2a2a; }
    .liga tbody tr { cursor: pointer; transition: background .12s var(--ease-snap); }
    .liga tbody tr:hover { background: var(--frisbier-yellow-soft); }
    [data-theme="stadion"] .liga tbody tr:hover { background: rgba(254,220,0,.12); }
    .liga tbody tr.active { background: var(--frisbier-yellow); }
    [data-theme="stadion"] .liga tbody tr.active { background: rgba(254,220,0,.22); }
    .liga tbody tr.active td.rank-cell::before {
      content: "▸"; color: #000; margin-right: 4px; font-weight: 900;
    }
    .liga tbody tr.inactive { opacity: .42; }
    .liga tbody tr:last-child td { border-bottom: 0; }

    .liga .align-right { text-align: right; }
    .liga .align-left  { text-align: left; }

    .rank-cell {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: 20px;
      width: 56px;
      color: var(--frisbier-neutral-400);
    }
    [data-theme="stadion"] .rank-cell { color: var(--frisbier-neutral-300); }
    .liga tbody tr.active .rank-cell { color: #000; }

    .name-cell {
      display: flex; align-items: center; gap: 12px;
      min-width: 240px;
    }
    .name-stack .n {
      font-family: var(--font-display);
      font-style: italic; font-weight: 800;
      font-size: 16px;
      text-transform: uppercase;
      line-height: 1.05;
      letter-spacing: -0.005em;
    }
    .name-stack .nn {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-400);
      margin-top: 2px;
    }
    [data-theme="stadion"] .name-stack .nn { color: var(--frisbier-neutral-300); }

    .num {
      font-family: var(--font-display);
      font-weight: 800;
      font-size: 15px;
    }
    .num.win  { color: #1c8a4e; }
    .num.loss { color: #c0392b; opacity: .85; }
    [data-theme="stadion"] .num.win  { color: #4ad07a; }
    [data-theme="stadion"] .num.loss { color: #ee6e5e; }
    .num.elo {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: 18px;
    }
    .diff.pos { color: #1c8a4e; }
    .diff.neg { color: #c0392b; }
    .diff.zero { color: var(--frisbier-neutral-400); }
    [data-theme="stadion"] .diff.pos { color: #4ad07a; }
    [data-theme="stadion"] .diff.neg { color: #ee6e5e; }

    .form-pill {
      display: inline-flex; gap: 4px;
    }
    .form-dot {
      display: grid; place-items: center;
      width: 22px; height: 22px;
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 11px;
      border: 1.5px solid #000;
      line-height: 1;
    }
    .form-dot.win  { background: var(--frisbier-yellow); color: #000; }
    .form-dot.loss { background: #fff; color: #000; }
    [data-theme="stadion"] .form-dot { border-color: var(--frisbier-yellow); }
    [data-theme="stadion"] .form-dot.loss { background: #1a1a1a; color: #fff; }
    .form-empty { color: var(--frisbier-neutral-300); }

    /* =================================================================
       CHARTS
       ================================================================= */
    .charts-sec {
      padding: 80px 0;
      background: var(--frisbier-cream);
      border-top: 2px solid #000;
      border-bottom: 2px solid #000;
    }
    [data-theme="stadion"] .charts-sec {
      background: #0E0E0E; border-color: var(--frisbier-yellow);
    }
    .charts-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
    }
    @media (max-width: 880px){ .charts-grid { grid-template-columns: 1fr; } }
    .chart {
      background: #fff;
      border: 2.5px solid #000;
      box-shadow: 6px 6px 0 0 #000;
      padding: 22px 24px 26px;
    }
    [data-theme="stadion"] .chart {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 6px 6px 0 0 var(--frisbier-yellow);
    }
    .chart-head {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: 22px;
      text-transform: uppercase;
      letter-spacing: -0.005em;
      margin-bottom: 16px;
      padding-bottom: 10px;
      border-bottom: 2px solid #000;
    }
    [data-theme="stadion"] .chart-head { border-bottom-color: var(--frisbier-yellow); }
    .chart-body { display: flex; flex-direction: column; gap: 6px; }
    .chart-row {
      display: grid;
      grid-template-columns: 130px 1fr 56px;
      gap: 10px; align-items: center;
      padding: 4px 0;
    }
    .chart-row.active .chart-label { color: #000; font-weight: 900; }
    [data-theme="stadion"] .chart-row.active .chart-label { color: var(--frisbier-yellow); }
    .chart-label {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-500);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    [data-theme="stadion"] .chart-label { color: var(--frisbier-neutral-300); }
    .chart-bar-wrap {
      height: 18px;
      background: var(--frisbier-cream);
      border: 1.5px solid #000;
      position: relative;
      overflow: hidden;
    }
    [data-theme="stadion"] .chart-bar-wrap { background: #0E0E0E; }
    .chart-bar {
      height: 100%;
      background: var(--frisbier-yellow);
      transition: width .5s var(--ease-snap);
    }
    .chart-row.active .chart-bar {
      background: #000;
    }
    [data-theme="stadion"] .chart-row.active .chart-bar { background: var(--frisbier-yellow); }
    [data-theme="stadion"] .chart-bar { background: var(--frisbier-yellow); opacity: .7; }
    [data-theme="stadion"] .chart-row.active .chart-bar { opacity: 1; }

    .style-lollipops .chart-bar-wrap {
      background: transparent;
      border: none;
      height: 18px;
    }
    .lp-track {
      position: absolute; left: 0; right: 0; top: 50%;
      transform: translateY(-50%);
      height: 2px;
      background: var(--frisbier-neutral-200);
    }
    [data-theme="stadion"] .lp-track { background: #2a2a2a; }
    .lp-fill {
      position: absolute; left: 0; top: 50%;
      transform: translateY(-50%);
      height: 4px;
      background: var(--frisbier-yellow);
      transition: width .5s var(--ease-snap);
    }
    .chart-row.active .lp-fill { background: #000; }
    [data-theme="stadion"] .chart-row.active .lp-fill { background: var(--frisbier-yellow); }
    .lp-dot {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 16px; height: 16px;
      background: var(--frisbier-yellow);
      border: 2px solid #000;
      border-radius: 50%;
      transition: left .5s var(--ease-snap);
    }
    .chart-row.active .lp-dot {
      background: #000; border-color: #000;
    }
    [data-theme="stadion"] .chart-row.active .lp-dot {
      background: var(--frisbier-yellow); border-color: var(--frisbier-yellow);
    }
    .chart-value {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: 15px;
      text-align: right;
      font-variant-numeric: tabular-nums;
    }

    /* =================================================================
       SPOTLIGHT
       ================================================================= */
    .spotlight-sec { padding: 80px 0; }
    [data-theme="stadion"] .spotlight-sec { background: #0E0E0E; }
    .player-picker {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 13px;
      letter-spacing: .04em;
      text-transform: uppercase;
      padding: 10px 14px;
      border: 2px solid #000;
      background: #fff;
      box-shadow: 3px 3px 0 0 #000;
      cursor: pointer;
      min-width: 240px;
    }
    [data-theme="stadion"] .player-picker {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 3px 3px 0 0 var(--frisbier-yellow);
    }

    .spot-card {
      background: #fff;
      border: 2.5px solid #000;
      box-shadow: 8px 8px 0 0 #000;
      padding: 36px;
      display: grid;
      grid-template-columns: 1fr 1.4fr 1fr;
      gap: 36px;
      align-items: start;
    }
    [data-theme="stadion"] .spot-card {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 8px 8px 0 0 var(--frisbier-yellow);
    }
    @media (max-width: 1020px){
      .spot-card { grid-template-columns: 1fr; }
    }
    .spot-id {
      display: flex; flex-direction: column;
      align-items: flex-start;
      gap: 18px;
      padding-right: 24px;
      border-right: 2px solid #000;
    }
    [data-theme="stadion"] .spot-id { border-right-color: var(--frisbier-yellow); }
    @media (max-width: 1020px){
      .spot-id { border-right: none; border-bottom: 2px solid #000; padding-right: 0; padding-bottom: 18px; }
      [data-theme="stadion"] .spot-id { border-bottom-color: var(--frisbier-yellow); }
    }
    .spot-id .initials { box-shadow: 4px 4px 0 0 #000; }
    .spot-name {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 32px;
      line-height: .95;
      text-transform: uppercase;
      letter-spacing: -0.01em;
    }
    .spot-nick {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 13px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-500);
      margin-top: 6px;
    }
    [data-theme="stadion"] .spot-nick { color: var(--frisbier-neutral-300); }
    .spot-elo {
      margin-top: 18px;
      display: flex; align-items: baseline; gap: 8px;
      padding: 10px 14px;
      background: var(--frisbier-yellow);
      color: #000;
      border: 2px solid #000;
      box-shadow: 3px 3px 0 0 #000;
    }
    .elo-n {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 32px; line-height: 1;
      font-variant-numeric: tabular-nums;
    }
    .elo-l {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
    }

    .spot-stats {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px 16px;
    }
    .spot-stat {
      padding: 14px 12px;
      background: var(--frisbier-cream);
      border: 1.5px solid #000;
    }
    [data-theme="stadion"] .spot-stat {
      background: #0E0E0E; border-color: #2a2a2a;
    }
    .spot-stat.accent-yellow { background: var(--frisbier-yellow); }
    .spot-stat.accent-win    { background: #d8f3df; }
    .spot-stat.accent-loss   { background: #fbe1dd; }
    [data-theme="stadion"] .spot-stat.accent-yellow { background: var(--frisbier-yellow); color: #000; }
    [data-theme="stadion"] .spot-stat.accent-win    { background: rgba(74,208,122,.18); color: #fff; border-color: #4ad07a; }
    [data-theme="stadion"] .spot-stat.accent-loss   { background: rgba(238,110,94,.18); color: #fff; border-color: #ee6e5e; }
    .ss-l {
      font-family: var(--font-heading);
      font-weight: 800; font-size: 10px;
      letter-spacing: .14em; text-transform: uppercase;
      opacity: .72;
      margin-bottom: 4px;
    }
    .ss-v {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 24px;
      line-height: 1;
      font-variant-numeric: tabular-nums;
    }

    .radar {
      align-self: stretch;
    }
    .radar-head {
      font-family: var(--font-display);
      font-style: italic;
      font-weight: 900;
      font-size: 22px;
      text-transform: uppercase;
      margin-bottom: 12px;
      padding-bottom: 8px;
      border-bottom: 2px solid #000;
    }
    [data-theme="stadion"] .radar-head { border-bottom-color: var(--frisbier-yellow); }
    [data-theme="stadion"] .radar svg polygon[stroke] { stroke: var(--frisbier-yellow); }
    [data-theme="stadion"] .radar svg circle { fill: var(--frisbier-yellow); }
    [data-theme="stadion"] .radar svg text { fill: var(--frisbier-neutral-200); }
    [data-theme="stadion"] .radar svg line { stroke: var(--frisbier-neutral-300); }

    .spot-matches { margin-top: 40px; }
    .match-list {
      display: grid; gap: 14px;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
    .mini-match {
      background: #fff;
      border: 2px solid #000;
      box-shadow: 4px 4px 0 0 #000;
      padding: 14px 16px;
    }
    [data-theme="stadion"] .mini-match {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 4px 4px 0 0 var(--frisbier-yellow);
    }
    .mini-match.won { border-left: 6px solid var(--frisbier-yellow); }
    .mini-match.lost { border-left: 6px solid var(--frisbier-neutral-400); }
    [data-theme="stadion"] .mini-match.lost { border-left-color: var(--frisbier-neutral-300); }
    .mm-meta {
      display: flex; align-items: center; gap: 10px;
      margin-bottom: 8px;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-500);
    }
    [data-theme="stadion"] .mm-meta { color: var(--frisbier-neutral-300); }
    .mm-pill {
      margin-left: auto;
      padding: 3px 8px;
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 10px;
      letter-spacing: .1em;
      border: 1.5px solid #000;
    }
    .mm-pill.w { background: var(--frisbier-yellow); color: #000; }
    .mm-pill.l { background: #fff; color: #000; }
    [data-theme="stadion"] .mm-pill { border-color: var(--frisbier-yellow); }
    [data-theme="stadion"] .mm-pill.l { background: #1a1a1a; color: #fff; }
    .mm-row {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 12px;
      margin: 6px 0 10px;
    }
    .mm-side { display: flex; align-items: center; gap: 8px; }
    .mm-side.right { justify-content: flex-end; }
    .mm-name {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 14px;
      text-transform: uppercase;
      letter-spacing: -0.005em;
    }
    .mm-score {
      display: flex; align-items: baseline; gap: 4px;
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 28px;
      line-height: 1;
      font-variant-numeric: tabular-nums;
    }
    .mm-score .sep { opacity: .35; }
    .mm-score .sc.w { color: #000; }
    .mm-score .sc.l { color: var(--frisbier-neutral-300); }
    [data-theme="stadion"] .mm-score .sc.w { color: var(--frisbier-yellow); }
    [data-theme="stadion"] .mm-score .sc.l { color: var(--frisbier-neutral-300); }
    .mm-stats {
      display: flex; justify-content: space-between; gap: 10px;
      padding-top: 10px;
      border-top: 1.5px solid var(--frisbier-neutral-100);
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 12px;
      letter-spacing: .04em;
      color: var(--frisbier-neutral-700);
    }
    [data-theme="stadion"] .mm-stats { border-top-color: #2a2a2a; color: var(--frisbier-neutral-200); }
    .mm-stats small { font-weight: 600; opacity: .55; margin-left: 2px; }

    /* =================================================================
       RECENT MATCHES
       ================================================================= */
    .recent-sec {
      padding: 80px 0;
      background: var(--frisbier-paper);
      border-top: 2px solid #000;
    }
    [data-theme="stadion"] .recent-sec {
      background: #0E0E0E; border-top-color: var(--frisbier-yellow);
    }
    .recent-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
      gap: 22px;
    }
    .rm-card {
      background: #fff;
      border: 2.5px solid #000;
      box-shadow: 6px 6px 0 0 #000;
      padding: 22px 24px;
      display: flex; flex-direction: column;
      gap: 16px;
      transition: transform .2s var(--ease-snap), box-shadow .2s var(--ease-snap);
    }
    .rm-card:hover { transform: translate(-2px,-2px); box-shadow: 10px 10px 0 0 var(--frisbier-yellow); }
    [data-theme="stadion"] .rm-card {
      background: #1a1a1a; color: #fff;
      border-color: var(--frisbier-yellow);
      box-shadow: 6px 6px 0 0 var(--frisbier-yellow);
    }
    [data-theme="stadion"] .rm-card:hover { box-shadow: 10px 10px 0 0 #fff; }
    .rm-top {
      display: flex; justify-content: space-between;
      align-items: baseline;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-400);
    }
    .rm-id {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 16px;
      color: var(--frisbier-neutral-700);
    }
    [data-theme="stadion"] .rm-id { color: var(--frisbier-yellow); }
    .rm-stack {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .rm-player {
      display: grid;
      grid-template-columns: 40px 1fr auto auto;
      align-items: center;
      gap: 14px;
      padding: 12px 14px;
      border: 1.5px solid #000;
      background: var(--frisbier-cream);
      min-width: 0;
    }
    [data-theme="stadion"] .rm-player {
      background: #0E0E0E;
      border-color: #2a2a2a;
    }
    .rm-player.winner {
      background: var(--frisbier-yellow);
      border-color: #000;
      box-shadow: 3px 3px 0 0 #000;
    }
    [data-theme="stadion"] .rm-player.winner {
      background: var(--frisbier-yellow);
      color: #000;
      box-shadow: 3px 3px 0 0 var(--frisbier-yellow-dark);
    }
    .rm-player .initials { box-shadow: 2px 2px 0 0 #000; }
    [data-theme="stadion"] .rm-player:not(.winner) .initials {
      box-shadow: 2px 2px 0 0 var(--frisbier-yellow);
    }
    .rm-pname {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 18px;
      text-transform: uppercase;
      letter-spacing: -0.005em;
      line-height: 1.05;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .rm-tag {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 10px;
      letter-spacing: .16em;
      text-transform: uppercase;
      padding: 3px 8px;
      background: #000;
      color: var(--frisbier-yellow);
      border: 1.5px solid #000;
      line-height: 1;
    }
    .rm-pts {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 36px;
      line-height: 1;
      font-variant-numeric: tabular-nums;
      min-width: 48px;
      text-align: right;
    }
    .rm-pts.w { color: #000; }
    .rm-pts.l { color: var(--frisbier-neutral-400); }
    [data-theme="stadion"] .rm-player:not(.winner) .rm-pts.w { color: var(--frisbier-yellow); }
    [data-theme="stadion"] .rm-pts.l { color: var(--frisbier-neutral-300); }
    .rm-vs {
      text-align: center;
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 10px;
      letter-spacing: .24em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-400);
      position: relative;
      margin: 0 -2px;
    }
    .rm-vs::before, .rm-vs::after {
      content: "";
      display: inline-block;
      vertical-align: middle;
      width: 38%;
      height: 1.5px;
      background: var(--frisbier-neutral-200);
      margin: 0 8px;
    }
    [data-theme="stadion"] .rm-vs { color: var(--frisbier-neutral-300); }
    [data-theme="stadion"] .rm-vs::before, [data-theme="stadion"] .rm-vs::after { background: #2a2a2a; }
    .rm-vs span { display: inline-block; vertical-align: middle; }

    .rm-bottom {
      display: grid; grid-template-columns: 1fr 1fr 1fr;
      gap: 8px;
      padding-top: 14px;
      border-top: 1.5px solid var(--frisbier-neutral-100);
    }
    [data-theme="stadion"] .rm-bottom { border-top-color: #2a2a2a; }
    .stat-chip { text-align: center; }
    .sc-l {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 10px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--frisbier-neutral-400);
      margin-bottom: 2px;
    }
    .sc-v {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: 16px;
      font-variant-numeric: tabular-nums;
      display: inline-flex; gap: 6px; align-items: baseline;
    }
    .sc-v .lead { color: #000; }
    .sc-v :not(.lead):not(.dash) { color: var(--frisbier-neutral-300); }
    [data-theme="stadion"] .sc-v .lead { color: var(--frisbier-yellow); }
    .sc-v .dash { opacity: .35; }

    /* =================================================================
       CTA BAND + FOOTER
       ================================================================= */
    .cta-band {
      background: var(--frisbier-yellow);
      border-top: 2px solid #000;
      border-bottom: 2px solid #000;
      padding: 64px 0;
      text-align: center;
    }
    .cta-band h2 {
      font-family: var(--font-display);
      font-style: italic; font-weight: 900;
      font-size: clamp(40px, 6vw, 80px);
      text-transform: uppercase;
      margin: 0 0 18px;
      line-height: .95;
      letter-spacing: -0.01em;
      color: #000;
    }
    .cta-band p {
      font-size: 18px;
      color: #000;
      margin: 0 auto 28px;
      max-width: 50ch;
    }
    .btn {
      font-family: var(--font-heading);
      font-weight: 800; font-style: italic;
      text-transform: uppercase;
      letter-spacing: .06em;
      font-size: 14px;
      padding: 16px 24px;
      border: 2px solid #000;
      background: #000;
      color: var(--frisbier-yellow);
      box-shadow: 6px 6px 0 0 rgba(0,0,0,.18);
      cursor: pointer;
      display: inline-flex; align-items: center; gap: 10px;
      transition: transform .15s var(--ease-snap), box-shadow .15s var(--ease-snap), background .15s;
    }
    .btn:hover { background: #fff; color: #000; }
    .btn:active { transform: translate(3px,3px); box-shadow: 3px 3px 0 0 rgba(0,0,0,.18); }

    .site-footer {
      background: #0E0E0E; color: #D9D6CB;
      padding: 56px 0 24px;
    }
    .sf-top {
      display: grid; grid-template-columns: 2fr 1fr 1fr;
      gap: 40px;
      margin-bottom: 40px;
    }
    @media (max-width: 880px){ .sf-top { grid-template-columns: 1fr; gap: 28px; } }
    .sf-logo { height: 40px; filter: invert(1); margin-bottom: 14px; }
    .site-footer p {
      color: #B8B3A4; font-size: 14px; line-height: 1.6;
      max-width: 36ch; margin: 0;
    }
    .site-footer h5 {
      font-family: var(--font-heading);
      font-weight: 800; font-size: 12px;
      letter-spacing: .18em; text-transform: uppercase;
      color: var(--frisbier-yellow);
      margin: 0 0 14px;
    }
    .site-footer ul {
      list-style: none; padding: 0; margin: 0;
      display: flex; flex-direction: column;
      gap: 8px; font-size: 14px;
    }
    .site-footer ul a:hover { color: var(--frisbier-yellow); }
    .sf-bottom {
      border-top: 1px solid #2a2a2a;
      padding-top: 18px;
      display: flex; justify-content: space-between;
      flex-wrap: wrap; gap: 12px;
      font-size: 12px; color: #8A8678;
      font-family: var(--font-heading);
      letter-spacing: .08em;
      text-transform: uppercase;
    }