/* United Retrothon
   Paletten: rummet klockan tva pa natten. Djup blasvart bakgrund, kall
   grabla text som CRT-fosfor, barnstensgul accent. Varje spelsida byter
   accent och tonar bakgrunden mot spelets egen varld. */

:root{
  --bg:#0B0E14; --bg-2:#080A0F;
  --panel:#131A24; --panel-2:#1A2330;
  --line:#26313F; --line-soft:#1C2531;
  --text:#C6D2E0; --text-hi:#EAF1F8; --dim:#69798D;
  --accent:#E8B84B; --accent-ink:#1A1508;
  --hot:#D6453C; --ok:#5FBF7A;

  --display:'Chakra Petch',system-ui,sans-serif;
  --body:'IBM Plex Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1120px;
}
html[lang="he"]{ --display:'Heebo',system-ui,sans-serif; --body:'Heebo',system-ui,sans-serif; }

[data-theme="coduo"]{ --bg:#0C0D0A; --bg-2:#080906; --panel:#16180F;
  --panel-2:#1D2015; --line:#2E3120; --line-soft:#23261A;
  --text:#CBCBB6; --text-hi:#EFEFE0; --dim:#7C7E63;
  --accent:#C8752A; --accent-ink:#150C04; --hot:#8FA33E; }
[data-theme="quake3"]{ --bg:#100D0C; --bg-2:#0A0808; --panel:#1B1614;
  --panel-2:#231C19; --line:#332723; --line-soft:#271F1C;
  --text:#D3C4BC; --text-hi:#F5EAE4; --dim:#8A7168;
  --accent:#E0651C; --accent-ink:#170800; --hot:#B5322A; }
[data-theme="jka"]{ --bg:#070912; --bg-2:#04060C; --panel:#101528;
  --panel-2:#161D35; --line:#232C4B; --line-soft:#1A2138;
  --text:#BFC9E6; --text-hi:#E8EDFB; --dim:#6B76A0;
  --accent:#3FC7E8; --accent-ink:#01121A; --hot:#8B5CF6; }
[data-theme="ut99"]{ --bg:#08100E; --bg-2:#050B0A; --panel:#0F1B19;
  --panel-2:#152522; --line:#1F3330; --line-soft:#182826;
  --text:#B9CFCA; --text-hi:#E4F2EF; --dim:#63837D;
  --accent:#D9B23C; --accent-ink:#0A1211; --hot:#2FA88F; }
[data-theme="ut2004"]{ --bg:#0A0912; --bg-2:#06050C; --panel:#15131F;
  --panel-2:#1D1A2B; --line:#2B2740; --line-soft:#211E31;
  --text:#C4BFD8; --text-hi:#EDE9F8; --dim:#726C92;
  --accent:#8B7BF0; --accent-ink:#0A0718; --hot:#E0A33C; }

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:var(--body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
[dir="ltr"]{direction:ltr;unicode-bidi:isolate}
.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}

/* Fargkoder ur Quake 3 och Call of Duty. Sajtens signatur: namn visas
   precis som de gor i spelet. */
.c0{color:#1a1a1a}.c1{color:#E5484D}.c2{color:#5FBF7A}.c3{color:#E8B84B}
.c4{color:#5B8DEF}.c5{color:#4FD1E0}.c6{color:#C778DD}.c7{color:var(--text-hi)}

header{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.bar{display:flex;align-items:center;gap:22px;min-height:64px}
.mark{font-family:var(--display);font-weight:700;letter-spacing:.02em;
  font-size:18px;color:var(--text-hi);white-space:nowrap}
.mark span{color:var(--accent)}
nav{display:flex;gap:2px;margin-inline-start:auto;flex-wrap:wrap}
nav a{font-family:var(--display);font-weight:600;font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
  padding:8px 12px;border-bottom:2px solid transparent}
nav a:hover{color:var(--text-hi)}
nav a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
nav a:focus-visible,select:focus-visible,button:focus-visible,.gcard:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px}

.lang{position:relative;display:flex;gap:6px}
.lang select{appearance:none;font-family:var(--mono);font-size:12px;
  letter-spacing:.08em;background:var(--panel);color:var(--text);
  border:1px solid var(--line);border-radius:2px;padding:7px 30px 7px 11px;
  cursor:pointer}
html[dir="rtl"] .lang select{padding:7px 11px 7px 30px}
.lang::after{content:"";position:absolute;inset-inline-end:11px;top:50%;
  width:6px;height:6px;border-inline-end:1.5px solid var(--dim);
  border-bottom:1.5px solid var(--dim);transform:translateY(-70%) rotate(45deg);
  pointer-events:none}

.hero{padding:56px 0 40px;border-bottom:1px solid var(--line-soft)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--dim);margin:0 0 14px}
.hero h1{font-family:var(--display);font-weight:700;
  font-size:clamp(30px,5.2vw,52px);line-height:1.04;letter-spacing:-.01em;
  color:var(--text-hi);margin:0 0 10px;max-width:18ch}
.hero h1 em{font-style:normal;color:var(--accent)}
.lede{max-width:58ch;color:var(--dim);margin:0 0 32px}

.browser{border:1px solid var(--line);background:var(--panel);
  border-radius:3px;overflow:hidden}
.browser-top{display:flex;align-items:center;gap:10px;padding:10px 14px;
  background:var(--panel-2);border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.browser-top .right{margin-inline-start:auto;letter-spacing:.1em}

table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:13.5px}
thead th{text-align:start;padding:9px 14px;font-weight:500;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  border-bottom:1px solid var(--line);background:var(--bg-2)}
th.rank{width:56px}
tbody td{padding:12px 14px;border-bottom:1px solid var(--line-soft)}
tbody tr:last-child td{border-bottom:0}
tbody tr[onclick]{cursor:pointer;transition:background .15s}
tbody tr[onclick]:hover{background:var(--panel-2)}
.num,th.num{text-align:end;font-variant-numeric:tabular-nums}
.game-tag{display:inline-block;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;padding:2px 7px;border:1px solid var(--line);
  border-radius:2px;color:var(--dim)}
.pop{color:var(--text-hi)}.pop.zero{color:var(--dim)}.ping{color:var(--dim)}
.empty-row{padding:28px 14px !important;color:var(--dim);
  font-family:var(--body);font-size:14px}

/* Raderna faller in en och en vid sidladdning. Enda animationen pa sidan. */
.hero tbody tr{opacity:0;transform:translateY(6px);
  animation:rise .5s ease forwards;animation-delay:var(--d,0ms)}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .hero tbody tr{animation:none;opacity:1;transform:none}}

section{padding:64px 0;border-bottom:1px solid var(--line-soft)}
section.last{border-bottom:0}
.sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:28px}
.sec-head h2{font-family:var(--display);font-weight:600;font-size:22px;
  color:var(--text-hi);margin:0;white-space:nowrap}
.rule{flex:1;height:1px;background:var(--line)}
.sec-head .meta{font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);text-align:end}

.cols{display:grid;grid-template-columns:1.15fr .85fr;gap:56px}
.prose p{margin:0 0 18px;max-width:64ch}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--text-hi);font-weight:600}

.facts{border-inline-start:2px solid var(--accent);padding-inline-start:20px;margin:0}
.fact{margin-bottom:22px}
.fact:last-child{margin-bottom:0}
.fact dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);margin-bottom:4px}
.fact dd{margin:0;font-family:var(--display);font-weight:600;font-size:19px;
  color:var(--text-hi)}

.tourn{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;
  border:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  padding:34px;border-radius:3px}
.count{display:flex;gap:10px}
.unit{text-align:center;min-width:66px}
.unit b{display:block;font-family:var(--display);font-weight:700;font-size:38px;
  line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.unit span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim)}
.unit.wide{min-width:auto;padding:0 6px}
.unit.wide b{font-size:34px}
.unit.wide span{display:block;margin-top:6px;white-space:nowrap}
.tourn h3{font-family:var(--display);font-size:20px;margin:0 0 8px;color:var(--text-hi)}
.tourn p{margin:0;color:var(--dim);max-width:54ch}
.regnote{margin-top:14px !important;font-size:13.5px;
  color:color-mix(in srgb,var(--dim) 75%,transparent)}

.games{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line)}
.gcard{display:block;background:var(--panel);padding:22px;
  transition:background .2s}
.gcard:hover{background:var(--panel-2)}
.gcard .yr{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.1em}
.gcard h3{font-family:var(--display);font-size:17px;margin:6px 0 10px;color:var(--text-hi)}
.gcard .st{font-family:var(--mono);font-size:12px;color:var(--dim)}
.gcard .st b{color:var(--accent);font-weight:600}

.gh{padding:52px 0 40px;border-bottom:1px solid var(--line-soft)}
.gh .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.gh h1{font-family:var(--display);font-weight:700;font-size:clamp(28px,4.6vw,44px);
  margin:0 0 12px;color:var(--text-hi)}
.connect{display:inline-flex;align-items:center;gap:12px;margin-top:22px;
  font-family:var(--mono);font-size:13px;background:var(--panel);
  border:1px solid var(--line);padding:10px 14px;border-radius:3px;color:var(--text-hi)}
.connect .lbl{color:var(--dim);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.copy{background:var(--accent);color:var(--accent-ink);border:0;
  font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;padding:6px 11px;border-radius:2px;cursor:pointer}

.curios{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.curio{border:1px solid var(--line);background:var(--panel);padding:18px 20px;border-radius:3px}
.curio h4{font-family:var(--display);font-size:14px;margin:0 0 12px;color:var(--accent);
  letter-spacing:.02em}
.curio ol{margin:0;padding:0;list-style:none;counter-reset:c}
.curio li{counter-increment:c;display:flex;align-items:baseline;gap:10px;
  font-family:var(--mono);font-size:13px;padding:5px 0;
  border-bottom:1px solid var(--line-soft)}
.curio li:last-child{border-bottom:0}
.curio li::before{content:counter(c);color:var(--dim);font-size:11px;min-width:14px}
.curio li b{margin-inline-start:auto;color:var(--text-hi);font-weight:600;
  font-variant-numeric:tabular-nums}

.mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.mod{border:1px solid var(--line);background:var(--panel);padding:18px;border-radius:3px}
.mod h4{font-family:var(--display);font-size:15px;margin:0 0 6px;color:var(--text-hi)}
.mod p{margin:0;font-size:14px;color:var(--dim)}

footer{padding:40px 0 60px;color:var(--dim);font-size:13px}
footer .wrap{display:flex;gap:20px;flex-wrap:wrap;align-items:center}
footer .mono{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
  margin-inline-start:auto;color:var(--line)}

@media (max-width:900px){
  .bar{flex-wrap:wrap;padding:12px 0;gap:12px}
  nav{margin-inline-start:0;order:3;width:100%}
  .lang{margin-inline-start:auto}
}
@media (max-width:820px){
  .cols{grid-template-columns:1fr;gap:36px}
  .tourn{grid-template-columns:1fr;gap:24px}
  .sec-head{flex-wrap:wrap;gap:10px}
  .sec-head h2{white-space:normal}
  .hide-sm{display:none}
  section{padding:48px 0}
}
