  :root {
    --bg: #0d0f14;
    --surface: #13161e;
    --surface2: #1a1e2a;
    --border: #252a38;
    --accent: #c8a96e;
    --text: #e8e4dc;
    --muted: #7a7d8a;
    --c-treasure: #c8a96e;
    --c-candy: #e87d9e;
    --c-mage: #9e6ec8;
    --c-pirates: #6e9ec8;
    --c-animals: #6ec89e;
    --c-fringe: #5a5d6a;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { background:var(--bg); color:var(--text); font-family:'IBM Plex Sans',sans-serif; font-weight:300; min-height:100vh; line-height:1.6; }

  /* HEADER */
  header { padding:48px 40px 36px; border-bottom:1px solid var(--border); position:relative; overflow:hidden; }
  header::before { content:''; position:absolute; top:-60px; right:-60px; width:360px; height:360px; background:radial-gradient(circle, rgba(200,169,110,0.07) 0%, transparent 70%); pointer-events:none; }
  .event-label { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--accent); margin-bottom:10px; text-decoration:none; display:inline-block; transition:opacity 0.2s; }
  .event-label:hover { opacity:0.75; text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; }
  h1 { font-family:'Playfair Display',serif; font-size:clamp(28px,5vw,52px); font-weight:900; line-height:1.1; letter-spacing:-1px; }
  .subtitle { margin-top:12px; color:var(--muted); font-size:13px; font-family:'IBM Plex Mono',monospace; }
  .stats-row { display:flex; gap:32px; margin-top:28px; flex-wrap:wrap; }
  .stat-value { font-family:'Playfair Display',serif; font-size:32px; font-weight:700; color:var(--accent); line-height:1; }
  .stat-label { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); letter-spacing:2px; text-transform:uppercase; margin-top:3px; }

  /* NAV */
  nav { display:flex; border-bottom:1px solid var(--border); padding:0 40px; overflow-x:auto; scrollbar-width:none; }
  nav::-webkit-scrollbar { display:none; }
  nav button { background:none; border:none; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; padding:16px 20px; cursor:pointer; border-bottom:2px solid transparent; transition:all 0.2s; white-space:nowrap; }
  nav button:hover { color:var(--text); }
  nav button.active { color:var(--accent); border-bottom-color:var(--accent); }

  /* MAIN */
  main { padding:40px; max-width:1400px; }
  .section { display:none; }
  .section.active { display:block; animation:fadeUp 0.35s ease both; }
  @keyframes fadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
  .section-title { font-family:'Playfair Display',serif; font-size:26px; font-weight:700; margin-bottom:6px; }
  .section-desc { color:var(--muted); font-size:13px; margin-bottom:32px; max-width:680px; line-height:1.75; }
  .note { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); margin-top:24px; padding:12px 16px; border-left:2px solid var(--border); line-height:1.8; }

  /* BAR CHART */
  .bar-chart { display:flex; flex-direction:column; gap:5px; }
  .bar-row { display:grid; grid-template-columns:180px 1fr 48px; align-items:center; gap:10px; }
  .bar-name { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text); text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .bar-track { background:var(--surface2); height:22px; border-radius:2px; overflow:hidden; }
  .bar-fill { height:100%; border-radius:2px; background:linear-gradient(90deg,var(--accent),rgba(200,169,110,0.55)); transition:width 0.9s cubic-bezier(0.16,1,0.3,1); position:relative; }
  .bar-fill::after { content:''; position:absolute; top:0;left:0;right:0; height:1px; background:rgba(255,255,255,0.12); }
  .bar-pct { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); }
  @media(max-width:600px){
    .bar-row{grid-template-columns:110px 1fr 40px;}
    .bar-name{font-size:10px;}
  }

  /* CLUSTERS */
  .clusters-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }
  .cluster-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:22px; position:relative; overflow:hidden; }
  .cluster-top-bar { position:absolute; top:0;left:0;right:0; height:3px; }
  .cluster-header { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
  .cluster-label { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; font-weight:500; }
  .cluster-count { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); margin-left:auto; }

  /* sub-sections within clusters */
  .subsection-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin:14px 0 8px; padding-bottom:4px; border-bottom:1px solid var(--border); }
  .subsection-label:first-of-type { margin-top:0; }

  .pills { display:flex; flex-wrap:wrap; gap:5px; }
  .pill { font-family:'IBM Plex Mono',monospace; font-size:11px; padding:3px 9px; border-radius:2px; background:var(--surface2); border:1px solid; display:flex; align-items:center; gap:5px; }
  .pill-freq { opacity:0.45; font-size:10px; }

  /* CAPTAINS */
  .captains-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:18px; }
  .captain-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; overflow:hidden; }
  .captain-header { display:flex; align-items:center; gap:8px; padding:18px 20px 14px; border-bottom:1px solid var(--border); }
  .captain-name { font-family:'Playfair Display',serif; font-size:17px; font-weight:700; flex:1; }
  .captain-n { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); background:var(--surface2); padding:3px 7px; border-radius:2px; }
  .captain-n.warn { color:#c87a6e; background:rgba(200,122,110,0.1); }

  /* Toggle */
  .toggle-bar { display:flex; border-bottom:1px solid var(--border); }
  .toggle-btn { flex:1; background:none; border:none; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); padding:10px 8px; cursor:pointer; border-bottom:2px solid transparent; transition:all 0.15s; }
  .toggle-btn.active { color:var(--accent); border-bottom-color:var(--accent); }
  .toggle-btn:hover:not(.active) { color:var(--text); }

  .view { display:none; padding:16px 20px; max-height:310px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--border) var(--surface); }
  .view.active { display:block; }
  .view::-webkit-scrollbar { width:6px; }
  .view::-webkit-scrollbar-track { background:var(--surface); }
  .view::-webkit-scrollbar-thumb { background:var(--border); border-radius:3px; }
  .view::-webkit-scrollbar-thumb:hover { background:var(--muted); }

  /* Signature (lift) rows */
  .lift-rows { display:flex; flex-direction:column; gap:7px; }
  .lift-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:8px; }
  .lift-name { font-family:'IBM Plex Mono',monospace; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lift-freq { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); flex-shrink:0; }
  .lift-badge { font-family:'IBM Plex Mono',monospace; font-size:10px; padding:2px 6px; border-radius:2px; min-width:48px; text-align:center; flex-shrink:0; }
  .lift-hi { background:rgba(200,169,110,0.15); color:var(--c-treasure); }
  .lift-mid { background:rgba(110,158,200,0.12); color:var(--c-pirates); }
  .lift-lo { background:rgba(122,125,138,0.08); color:var(--muted); }

  /* Best 12 rows */
  .best-rows { display:flex; flex-direction:column; gap:6px; }
  .best-row { display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; }
  .best-name { font-family:'IBM Plex Mono',monospace; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .best-track { display:flex; align-items:center; gap:6px; }
  .best-bar-wrap { width:60px; height:6px; background:var(--surface2); border-radius:3px; overflow:hidden; flex-shrink:0; }
  .best-bar-fill { height:100%; border-radius:3px; background:var(--accent); opacity:0.7; }
  .best-pct { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted); width:34px; text-align:right; flex-shrink:0; }

  /* Archetype badge styles */
  .tag { display:inline-flex; align-items:center; font-family:'IBM Plex Mono',monospace;
          font-size:9px; letter-spacing:1px; text-transform:uppercase;
          padding:2px 7px; border-radius:2px; font-weight:500; }
  .tag-treasure { background:rgba(200,169,110,0.12); color:var(--c-treasure); border:1px solid rgba(200,169,110,0.25); }
  .tag-candy { background:rgba(232,125,158,0.12); color:var(--c-candy); border:1px solid rgba(232,125,158,0.25); }
  .tag-mage { background:rgba(158,110,200,0.12); color:var(--c-mage); border:1px solid rgba(158,110,200,0.25); }
  .tag-pirates { background:rgba(110,158,200,0.12); color:var(--c-pirates); border:1px solid rgba(110,158,200,0.25); }
  .tag-animals { background:rgba(110,200,158,0.12); color:var(--c-animals); border:1px solid rgba(110,200,158,0.25); }
  .tag-fringe { background:rgba(122,125,138,0.12); color:var(--c-fringe); border:1px solid rgba(122,125,138,0.25); }

  /* Decklists view */
  .decklist-option-a { display:flex; flex-direction:column; gap:4px; }
  .player-row { border:1px solid var(--border); border-radius:3px; overflow:hidden; }
  .player-row-header { display:flex; align-items:center; gap:8px; padding:7px 10px;
                      cursor:pointer; background:var(--surface2); transition:background 0.15s; user-select:none; }
  .player-row-header:hover { background:#1e2230; }
  .player-username { font-family:'IBM Plex Mono',monospace; font-size:11px; flex:1; }
  .expand-icon { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--muted);
                transition:transform 0.2s; flex-shrink:0; }
  .player-row.open .expand-icon { transform:rotate(90deg); }
  .player-deck { display:none; padding:8px 10px; border-top:1px solid var(--border); background:var(--bg); }
  .player-row.open .player-deck { display:block; }
  .deck-pills { display:flex; flex-wrap:wrap; gap:4px; }
  .deck-pill { font-family:'IBM Plex Mono',monospace; font-size:10px; padding:2px 8px;
               border-radius:2px; background:var(--surface2); border:1px solid var(--border); color:var(--text); }

  /* Legend and filter */
  .legend { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; padding:12px 14px;
           background:var(--surface); border:1px solid var(--border); border-radius:4px; align-items:center; }
  .legend-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px;
                 text-transform:uppercase; color:var(--muted); margin-right:4px; flex-shrink:0; }
  .legend-item { display:flex; align-items:center; gap:5px; font-family:'IBM Plex Mono',monospace; font-size:10px; }
  .legend-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

  .captain-filter { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px; align-items:center; }
  .filter-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px;
                 text-transform:uppercase; color:var(--muted); margin-right:2px; }
  .filter-input { font-family:'IBM Plex Mono',monospace; font-size:10px; padding:5px 10px;
                  background:var(--surface2); border:1px solid var(--border); border-radius:2px;
                  color:var(--text); min-width:150px; transition:border-color 0.15s; }
  .filter-input:focus { outline:none; border-color:rgba(200,169,110,0.4); }
  .filter-input::placeholder { color:var(--muted); opacity:0.5; }
  .filter-btn { background:var(--surface2); border:1px solid var(--border); border-radius:2px;
                font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1px;
                text-transform:uppercase; color:var(--muted); padding:5px 10px; cursor:pointer;
                transition:all 0.15s; }
  .filter-btn:hover { color:var(--text); }
  .filter-btn.active { color:var(--accent); border-color:rgba(200,169,110,0.4);
                      background:rgba(200,169,110,0.08); }
  .captain-card.hidden, .captain-card.search-hidden { display:none; }

  @media(max-width:700px){
    header,nav,main{padding-left:16px;padding-right:16px;}
    header{padding-top:32px;}
    .captains-grid{grid-template-columns:1fr;}
    .clusters-grid{grid-template-columns:1fr;}
  }

  /* Card links */
  .card-link { color:inherit; text-decoration:none; border-bottom:1px dotted transparent; transition:border-color 0.15s; }
  .card-link:hover { border-bottom-color:currentColor; }
