*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0c0c0f;--bg-card:#16161a;--bg-card-alt:#1c1c22;--bg-hover:#222230;
  --border:#2a2a35;--border-light:#3a3a48;
  --text:#e8e6e3;--text-dim:#8b8b96;--text-muted:#8080a0;
  --accent:#7c6aef;--accent-light:#9b8df7;--accent-dim:#5a4bb8;
  /* Semantic stat categories - each maps a category (mining/combat/survival/travel/craft) to one color. */
  --c-mining:#3ecf8e;--c-combat:#ef6a6a;--c-survival:#efaa6a;--c-travel:#6aafef;--c-craft:#6aefd9;
  /* Chart + tooltip + misc surfaces - overridden per theme so app.js can read them via getComputedStyle. */
  --chart-grid:rgba(42,42,53,0.3);--chart-grid-strong:rgba(42,42,53,0.5);
  --bar-bg:rgba(255,255,255,0.10);
  --tooltip-bg:rgba(12,12,15,.95);--tooltip-text:#fff;
  --bg-glow-1:rgba(124,106,239,.08);--bg-glow-2:rgba(62,207,142,.04);
  --font-mono:'JetBrains Mono',monospace;
  --font-sans:'Space Grotesk',system-ui,sans-serif;
  --radius:10px;--radius-sm:6px;
}
[data-theme="light"]{
  --bg:#f5f6fa;--bg-card:#ffffff;--bg-card-alt:#eef0f5;--bg-hover:#e2e5ed;
  --border:#d4d6de;--border-light:#b4b8c4;
  --text:#181820;--text-dim:#54556a;--text-muted:#6a6c82;
  --accent:#5b4cc9;--accent-light:#7c6aef;--accent-dim:#b5add4;
  --c-mining:#1a9e5d;--c-combat:#d63d3d;--c-survival:#cc7622;--c-travel:#2d72c4;--c-craft:#1f9e8e;
  --chart-grid:rgba(24,24,32,0.12);--chart-grid-strong:rgba(24,24,32,0.22);
  --bar-bg:rgba(24,24,32,0.08);
  --tooltip-bg:rgba(24,24,32,.92);--tooltip-text:#fff;
  --bg-glow-1:rgba(124,106,239,.10);--bg-glow-2:rgba(62,207,142,.08);
}
html{font-size:15px;scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);font-family:var(--font-sans);
  min-height:100vh;line-height:1.5;
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -20%,var(--bg-glow-1),transparent),
    radial-gradient(ellipse 60% 40% at 80% 100%,var(--bg-glow-2),transparent);
}
a{color:var(--accent-light);text-decoration:none}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:10000}
.skip-link:focus{position:fixed;left:1rem;top:1rem;width:auto;height:auto;padding:.75rem 1rem;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.4)}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.app{max-width:1400px;margin:0 auto;padding:1rem}
.header{text-align:center;padding:2.5rem 1rem 2rem;position:relative}
.header h1{
  font-size:2.6rem;font-weight:700;letter-spacing:-.03em;
  background:linear-gradient(135deg,var(--accent-light),var(--c-mining),var(--c-craft));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;margin-bottom:.3rem;
}
.header p{color:var(--text-dim);font-size:.95rem;font-family:var(--font-mono)}
.header .meta{display:flex;gap:1.5rem;justify-content:center;margin-top:1rem;flex-wrap:wrap}
.header .meta span{
  font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);
  background:var(--bg-card);padding:.35rem .8rem;border-radius:20px;border:1px solid var(--border);
}
.header .meta span b{color:var(--accent-light);font-weight:600}
.sync-date{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);margin-top:.8rem}
.nav{
  display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;
  padding:1rem 0;position:sticky;top:0;z-index:100;
  background:transparent;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);margin-bottom:1.5rem;
}
.nav button{
  font-family:var(--font-mono);font-size:.78rem;
  padding:.5rem 1rem;border-radius:20px;border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .2s;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.4rem;min-height:50px;box-sizing:border-box;
}
.nav button:hover{border-color:var(--accent);color:var(--text)}
.nav button.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 20px rgba(124,106,239,.25)}
.nav-player-select{
  font-family:var(--font-mono);font-size:.78rem;
  padding:.5rem 2rem .5rem 1rem;border-radius:20px;border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .2s;
  min-height:50px;box-sizing:border-box;min-width:200px;max-width:260px;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%238b8b96' d='M0 0l5 6 5-6z'/></svg>");
  background-repeat:no-repeat;background-position:right .75rem center;
}
.nav-player-select:hover{border-color:var(--accent);color:var(--text)}
.nav-player-select:focus{outline:none;border-color:var(--accent);color:var(--text)}
.nav-player-select.active{
  background-color:var(--player-accent,var(--accent));border-color:var(--player-accent,var(--accent));
  color:#fff;box-shadow:0 0 20px rgba(124,106,239,.25);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23ffffff' d='M0 0l5 6 5-6z'/></svg>");
}
.nav-player-select option{background:var(--bg-card);color:var(--text)}
@media(max-width:768px){
  .nav-player-select{min-width:0;max-width:260px;flex:0 1 auto}
}
.overview-bar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.overview-bar-header h3{margin-bottom:0}
.overview-metric-select{
  font-family:var(--font-mono);font-size:.78rem;
  padding:.4rem 2rem .4rem 1rem;border-radius:20px;border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .2s;
  min-height:36px;box-sizing:border-box;min-width:180px;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%238b8b96' d='M0 0l5 6 5-6z'/></svg>");
  background-repeat:no-repeat;background-position:right .75rem center;
}
.overview-metric-select:hover{border-color:var(--accent);color:var(--text)}
.overview-metric-select:focus{outline:none;border-color:var(--accent);color:var(--text)}
.overview-metric-select option{background:var(--bg-card);color:var(--text)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.25rem;margin-bottom:1rem;transition:border-color .2s;
}
.card:hover{border-color:var(--border-light)}
.card h3{
  font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--text-muted);margin-bottom:1rem;font-family:var(--font-mono);
  display:flex;align-items:center;gap:.5rem;
}
.card h3 .icon{font-size:1.1rem}
img.mc-icon{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor;vertical-align:middle;display:inline-block;width:32px;height:32px}
img.mc-icon-hr{image-rendering:auto;vertical-align:middle;display:inline-block;width:32px;height:32px}
.card h3 img.mc-icon,.card h3 img.mc-icon-hr{width:32px;height:32px}
.badge-icon img.mc-icon,.badge-icon img.mc-icon-hr{width:32px;height:32px}
.fun-fact img.mc-icon,.fun-fact img.mc-icon-hr{width:32px;height:32px;flex-shrink:0}
.archetype img.mc-icon,.archetype img.mc-icon-hr{width:32px;height:32px}
.nav button img.mc-icon,.nav button img.mc-icon-hr{width:32px;height:32px}
.grid{display:grid;gap:1rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.grid-2-fixed{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.stat-tile{
  background:var(--bg-card-alt);border-radius:var(--radius-sm);
  padding:1rem;text-align:center;border:1px solid var(--border);transition:transform .15s,border-color .15s;
}
.stat-tile:hover{transform:translateY(-2px);border-color:var(--accent-dim)}
.stat-tile .value{font-size:1.8rem;font-weight:700;font-family:var(--font-mono);line-height:1.1;margin-bottom:.2rem}
.stat-tile .label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}
.stat-tile .sub{font-size:.7rem;color:var(--text-dim);margin-top:.15rem;font-family:var(--font-mono)}
.stat-tile .delta-sub,.profile-stat .delta-sub{font-weight:600}
.profile-stat .delta-sub{margin-top:.15rem;font-size:.7rem}
.delta-sub--pos{color:var(--c-mining)}
.delta-sub--zero{color:var(--text-muted)}
.delta-sub--neg{color:var(--c-combat)}
.stat-tile .ctx-sub,.profile-stat .ctx-sub{
  color:var(--text-muted);font-size:.7rem;font-family:var(--font-mono);margin-top:.15rem;
}
.leaderboard{list-style:none}
.leaderboard li{
  display:flex;align-items:center;gap:.75rem;
  padding:.6rem .8rem;border-radius:var(--radius-sm);transition:background .15s;font-family:var(--font-mono);font-size:.82rem;
}
.leaderboard li:hover{background:var(--bg-hover)}
.leaderboard .rank{
  width:1.6rem;height:1.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.7rem;font-weight:700;flex-shrink:0;border:1px solid var(--border);color:var(--text-muted);
}
.leaderboard li:nth-child(1) .rank{background:linear-gradient(135deg,#ffd700,#b8860b);color:#000;border:none}
.leaderboard li:nth-child(2) .rank{background:linear-gradient(135deg,#c0c0c0,#808080);color:#000;border:none}
.leaderboard li:nth-child(3) .rank{background:linear-gradient(135deg,#cd7f32,#8b4513);color:#fff;border:none}
.leaderboard .name{flex:1;color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaderboard .val{color:var(--accent-light);font-weight:600;text-align:right;min-width:55px;font-variant-numeric:tabular-nums}
.leaderboard .bar-bg{flex:0 1 120px;height:8px;background:var(--bar-bg);border-radius:4px;overflow:hidden;min-width:60px}
.leaderboard .bar-fill{display:block;height:100%;border-radius:4px;transition:width .6s ease;min-width:2px}
.chart-wrap{position:relative;width:100%;max-height:350px}
.chart-wrap canvas{width:100%!important}
.expand-toggle{
  display:none;width:100%;margin-top:.75rem;padding:.5rem .75rem;
  font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);
  background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius-sm);
  cursor:pointer;transition:all .2s;
}
.expand-toggle:hover{color:var(--text);border-color:var(--accent-dim);border-style:solid}
.expand-arrow{display:inline-block;font-size:.85em;margin-right:.15rem;opacity:.8}
@media(max-width:600px){.expand-toggle{display:block}}
@media(max-width:600px){
  .leaderboard.lb-collapsed > li:nth-child(n+16){display:none}
}
.profile-header{
  display:flex;align-items:center;gap:1.5rem;padding:1.5rem;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;flex-wrap:wrap;
}
.profile-avatar{width:64px;height:64px;border-radius:var(--radius-sm);image-rendering:pixelated;border:2px solid var(--accent-dim);background:var(--bg)}
.profile-info h2{font-size:1.8rem;font-weight:700;letter-spacing:-.02em}
.profile-info .uuid{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}
.profile-stats{display:flex;gap:1.5rem;margin-left:auto;flex-wrap:wrap}
.profile-stat{text-align:center}
.profile-stat .pv{font-size:1.4rem;font-weight:700;font-family:var(--font-mono);color:var(--accent-light)}
.profile-stat .pl{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-mono)}
.sparkline{display:block;width:100px;height:20px;margin:.4rem auto 0;opacity:.85}
@media (max-width: 768px){.sparkline{margin:.3rem 0 0}}
.section{display:none}
.section.active{display:block}
.lb-subnav{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin:-.75rem 0 1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.lb-tab{
  font-family:var(--font-mono);font-size:.72rem;
  padding:.4rem .9rem;border-radius:16px;border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .2s;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.35rem;
}
.lb-tab:hover{border-color:var(--accent);color:var(--text)}
.lb-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
.lb-tab img.mc-icon,.lb-tab img.mc-icon-hr{width:20px;height:20px}
.lb-charts{margin-bottom:1rem}
.lb-wrap[data-active-cat="top"] .lb-charts{margin-bottom:0}
.lb-wrap .lb-card{display:none}
.lb-wrap[data-active-cat="top"] .lb-card[data-lbcats~="top"],
.lb-wrap[data-active-cat="combat"] .lb-card[data-lbcats~="combat"],
.lb-wrap[data-active-cat="exploration"] .lb-card[data-lbcats~="exploration"],
.lb-wrap[data-active-cat="economy"] .lb-card[data-lbcats~="economy"],
.lb-wrap[data-active-cat="production"] .lb-card[data-lbcats~="production"]{display:block}
.record-badge{
  display:inline-block;padding:.1rem .4rem;border-radius:10px;font-size:.6rem;font-weight:700;margin-left:.3rem;
  background:linear-gradient(135deg,#ffd700,#b8860b);color:#000;
}
.player-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
@media(max-width:768px){
  /* Extra top padding keeps the title clear of the absolutely-positioned
     theme/lang controls (top:1rem) on narrow viewports. */
  .header{padding-top:3.75rem}
  .header h1{font-size:1.6rem}
  .grid-2,.grid-2-fixed,.grid-3,.grid-4{grid-template-columns:1fr}
  .profile-header{flex-direction:column;align-items:flex-start}
  .profile-stats{margin-left:0}
  .stat-tile .value{font-size:1.3rem}
  .app{padding:.5rem}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.card{animation:fadeUp .4s ease both}
.card:nth-child(2){animation-delay:.05s}
.card:nth-child(3){animation-delay:.1s}
.card:nth-child(4){animation-delay:.15s}
.archetype{
  font-family:var(--font-mono);font-size:.72rem;padding:.25rem .7rem;border-radius:16px;
  display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem;border:1px solid;
}
.treemap{position:relative;width:100%;aspect-ratio:2/1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}
.treemap-item{
  position:absolute;display:flex;align-items:flex-end;padding:5px 6px;box-sizing:border-box;
  border:1px solid var(--bg);cursor:default;transition:opacity .15s;overflow:hidden;
}
.treemap-item:hover{opacity:.8}
.treemap-item span{font-family:var(--font-mono);font-size:.58rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8);line-height:1.15;overflow-wrap:normal;word-break:normal}
.treemap-item .tm-count{opacity:.7;font-size:.52rem}
.tm-tooltip{position:fixed;left:0;top:0;pointer-events:none;padding:.35rem .6rem;background:var(--tooltip-bg);color:var(--tooltip-text);border:1px solid var(--c-craft);border-radius:4px;font-family:var(--font-mono);font-size:.72rem;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.5);opacity:0;transition:opacity .12s;z-index:9999}
.tm-tooltip.visible{opacity:1}
@media(max-width:600px){
  .treemap{aspect-ratio:1/1}
  .treemap-item span{font-size:.65rem}
  .treemap-item .tm-count{font-size:.58rem}
}
.fun-facts{display:flex;flex-direction:column;gap:.5rem}
.fun-fact{
  display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .8rem;
  background:var(--bg-card-alt);border-radius:var(--radius-sm);
  border-left:3px solid var(--accent);font-family:var(--font-mono);font-size:.78rem;color:var(--text-dim);
}
.fun-fact .emoji{font-size:1rem;flex-shrink:0;line-height:1.4}
.rank-changes{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0}
.rank-changes li{
  font-family:var(--font-mono);font-size:.8rem;
  padding:.5rem .7rem;background:var(--bg-card-alt);
  border-left:3px solid var(--accent-dim);border-radius:var(--radius-sm);color:var(--text-dim);
}
.rank-changes a{text-decoration:none}
.rank-changes a:hover{text-decoration:underline}
.broken-grid{display:flex;flex-wrap:wrap;gap:.4rem}
.broken-tag{
  font-family:var(--font-mono);font-size:.7rem;padding:.25rem .6rem;
  border-radius:12px;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-dim);
  display:inline-flex;align-items:center;gap:.3rem;
}
.broken-tag .bt-count{color:var(--c-combat);font-weight:600}
.badges-counter-wrap{text-align:center;margin-bottom:.8rem}
.badges-counter{
  font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);
  padding:.5rem 1rem;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:20px;
  display:inline-flex;gap:.4rem;align-items:center;
}
.badges-counter b{color:var(--accent-light)}
.badges-cat-header{
  font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);text-transform:uppercase;
  letter-spacing:.08em;margin:1.2rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--border);
}
.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.5rem}
.badge-card{
  background:var(--bg-card-alt);border:1.5px solid var(--border);border-radius:var(--radius-sm);
  padding:.65rem .7rem;display:flex;flex-direction:column;gap:.25rem;transition:all .2s;
  position:relative;
}
.badge-card:hover{transform:translateY(-1px)}
.badge-card.locked>*:not(.badge-tooltip){opacity:.4;filter:grayscale(.5);transition:opacity .15s,filter .15s}
.badge-card.locked:hover>*:not(.badge-tooltip){opacity:.75;filter:grayscale(.3)}
.badge-card.tier-bronze{border-color:#cd7f32}
.badge-card.tier-silver{border-color:#c0c0c0}
.badge-card.tier-gold{border-color:#ffd700;box-shadow:0 0 6px rgba(255,215,0,.1)}
.badge-card.tier-diamond{border-color:#b9f2ff;box-shadow:0 0 10px rgba(185,242,255,.15)}
.badge-header{display:flex;align-items:center;gap:.4rem}
.badge-icon{font-size:1rem;flex-shrink:0}
.badge-name{font-family:var(--font-mono);font-size:.7rem;font-weight:600;color:var(--text);flex:1;line-height:1.2;min-width:0}
.badge-tier{
  font-size:.55rem;font-family:var(--font-mono);padding:.1rem .35rem;border-radius:8px;white-space:nowrap;font-weight:600;
}
.badge-tier-locked{background:rgba(92,92,104,.15);color:var(--text-muted)}
.badge-tier-bronze{background:rgba(205,127,50,.15);color:#cd7f32}
.badge-tier-silver{background:rgba(192,192,192,.15);color:#c0c0c0}
.badge-tier-gold{background:rgba(255,215,0,.15);color:#ffd700}
.badge-tier-diamond{background:rgba(185,242,255,.2);color:#b9f2ff}
.badge-progress{height:3px;background:var(--bg);border-radius:2px;overflow:hidden;margin-top:.15rem}
.badge-progress-fill{height:100%;border-radius:2px;transition:width .6s ease}
.badge-progress-text{
  font-family:var(--font-mono);font-size:.58rem;color:var(--text-muted);
  display:flex;justify-content:space-between;align-items:center;gap:.4rem;
  margin:.35rem 0;
}
.badge-progress-text .bpt-vals{white-space:nowrap}
.badge-tooltip{
  display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);
  padding:.5rem .65rem;font-family:var(--font-mono);font-size:.62rem;color:var(--text-dim);
  white-space:nowrap;z-index:50;box-shadow:0 4px 16px rgba(0,0,0,.5);
  pointer-events:none;line-height:1.6;text-align:center;
}
.badge-tooltip::after{
  content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:var(--border-light);
}
.badge-card:hover .badge-tooltip{display:block}
.tt-desc{color:var(--text);font-weight:600;margin-bottom:.2rem}
.tt-tier{color:var(--text-muted)}
.tt-tier.tt-done{color:var(--c-mining)}
.tt-tier.tt-next{color:var(--accent-light);font-weight:700}
@media(max-width:768px){.badges-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}
.header-actions{
  position:absolute;top:1rem;right:1rem;z-index:10;
  display:flex;gap:.4rem;align-items:center;
}
.lang-toggle,.theme-toggle{
  font-family:var(--font-mono);font-size:.78rem;
  padding:.35rem .8rem;border-radius:20px;border:1px solid var(--border);
  background:var(--bg-card);color:var(--text-dim);cursor:pointer;transition:all .2s;
}
.theme-toggle{padding:.35rem .55rem;display:inline-flex;align-items:center;justify-content:center}
.theme-toggle svg{display:block}
.lang-toggle:hover,.theme-toggle:hover{border-color:var(--accent);color:var(--text)}

/* Scroll-to-top floating button (visible after scrolling past ~300px) */
.scroll-top{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:150;
  width:48px;height:48px;padding:0;display:flex;align-items:center;justify-content:center;
  background:var(--bg-card);border:1px solid var(--border);border-radius:50%;
  cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.4);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s,transform .2s,visibility .2s,border-color .15s;
}
.scroll-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
/* iOS Safari interprets the first tap on a :hover element as "apply hover"
   and only fires click on the second tap. Scope hover to real pointers. */
@media(hover:hover){.scroll-top:hover{border-color:var(--accent)}}
.scroll-top img{width:28px;height:28px}

/* Compare view (2-player side-by-side #compare/a/b) */
.compare-headers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}
.compare-headers .profile-header{margin-bottom:0}
@media(max-width:768px){.compare-headers{grid-template-columns:1fr}}
.compare-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.82rem}
.compare-table th,.compare-table td{padding:.5rem .7rem;text-align:right;border-bottom:1px solid var(--border)}
.compare-table th{text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;color:var(--text-muted);font-weight:600}
.compare-table th:first-child,.compare-table td:first-child{text-align:left}
.compare-table .cmp-m{color:var(--text-dim)}
.compare-table .cmp-diff{font-weight:600;font-variant-numeric:tabular-nums}
.compare-table .cmp-v{font-variant-numeric:tabular-nums}
.compare-table tbody tr:last-child td{border-bottom:none}
/* Compare nav entry: button + inline 2-select form floating below */
.nav-compare-wrap{position:relative;display:inline-flex;align-items:center}
.nav-compare-btn{cursor:pointer}
.nav-compare-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 20px rgba(124,106,239,.25)}
.nav-compare-form{
  display:none;position:absolute;top:calc(100% + .5rem);left:50%;transform:translateX(-50%);
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  padding:.75rem;z-index:200;gap:.5rem;
  box-shadow:0 8px 24px rgba(0,0,0,.5);width:260px;box-sizing:border-box;
}
.nav-compare-form.open{display:flex;flex-direction:column}
.nav-compare-form select{
  font-family:var(--font-mono);font-size:.78rem;padding:.4rem .6rem;width:100%;box-sizing:border-box;
  background:var(--bg-card-alt);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);
}
.nav-compare-form select:focus{outline:none;border-color:var(--accent)}
.nav-compare-form .nav-compare-go{
  font-family:var(--font-mono);font-size:.82rem;font-weight:600;padding:.5rem .9rem;width:100%;
  background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;
  transition:background .15s;margin-top:.15rem;
}
.nav-compare-form .nav-compare-go:hover{background:var(--accent-light)}
@media(max-width:600px){
  .nav-compare-form{position:fixed;top:auto;bottom:1rem;left:1rem;right:1rem;transform:none;width:auto}
}

/* Activity heatmap (52 weeks × 7 days, GitHub style) */
.heatmap-meta{font-size:.78rem;color:var(--text-muted);font-family:var(--font-mono);margin:-.25rem 0 .5rem}
/* Outer wrapper hosts the edge fades (fixed to its box, not the scroll
   content). Inner .heatmap-scroll is the actual scrolling viewport — JS
   scrolls it and toggles .has-overflow / .at-start / .at-end on the wrap. */
.heatmap-wrap{width:100%;position:relative}
.heatmap-scroll{width:100%;overflow-x:auto}
.heatmap-wrap::before,.heatmap-wrap::after{
  content:"";position:absolute;top:0;bottom:0;width:28px;
  pointer-events:none;opacity:0;transition:opacity .15s;z-index:1;
}
.heatmap-wrap::before{left:0;background:linear-gradient(90deg,var(--bg-card) 0%,transparent 100%)}
.heatmap-wrap::after{right:0;background:linear-gradient(270deg,var(--bg-card) 0%,transparent 100%)}
.heatmap-wrap.has-overflow::before,.heatmap-wrap.has-overflow::after{opacity:1}
.heatmap-wrap.at-start::before{opacity:0}
.heatmap-wrap.at-end::after{opacity:0}
.heatmap{display:block;width:100%;height:auto;min-width:520px;max-height:140px}
.heatmap .hm-cell{stroke:var(--bg);stroke-width:.5}
.heatmap .hm-empty{fill:var(--bg-card-alt)}
.heatmap .hm-label{fill:var(--text-muted);font-size:9px;font-family:var(--font-mono)}
.heatmap-legend{display:flex;align-items:center;gap:.35rem;margin-top:.5rem;font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono);justify-content:flex-end}
.heatmap-legend .hm-swatch{display:inline-block;width:11px;height:11px;border-radius:2px}
</content>
</invoke>