:root {
  --field: #071910;
  --field-2: #0d2a1c;
  --turf: #1f7a4c;
  --gold: #e4b23c;
  --gold-2: #f6d98b;
  --away: #d63a2f;
  --home: #3db8ff;
  --paper: #f3ead4;
  --ink: #122018;
  --mute: #b7c4ba;
  --line: #1e3d2e;
  --display: Impact, "Arial Narrow", sans-serif;
  --text: "Segoe UI", Arial, sans-serif;
  --mono: Consolas, ui-monospace, monospace;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--field); color: var(--paper); font-family: var(--text); }
a { color: var(--gold); }
button, input, select { font: inherit; }

.topbug {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  align-items: stretch;
  background: #04120c;
  border-bottom: 3px solid var(--gold);
  position: relative;
}
.topbug .side {
  padding: 10px 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.topbug .side.away { background: var(--away); color: #fff; text-align: right; }
.topbug .side.home { background: var(--turf); color: #fff; }
.topbug .mid {
  min-width: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #000;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
}
.topbug .score {
  font-family: var(--display);
  font-size: 42px;
  line-height: 0.9;
  letter-spacing: 0.02em;
}
.topbug .city { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.9; }

.wrap { width: min(1120px, calc(100% - 28px)); margin: 0 auto; }
.language-bar { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding-top:12px; }
.language-note { color:var(--mute); font-size:11px; margin:0 auto 0 0; max-width:65ch; }
.language-controls { display:grid; gap:3px; min-width:215px; }
.language-controls span { color:var(--gold-2); font-size:11px; min-height:1.2em; }
[dir="rtl"] .language-note { margin:0 0 0 auto; }
.language-bar label { color:var(--mute); font-size:13px; font-weight:700; }
.language-bar select { background:var(--field-2); color:var(--paper); border:1px solid var(--gold); padding:8px 10px; min-height:44px; width:100%; }
[dir="rtl"] .topbug .side.away { text-align:left; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,.75fr); align-items:center; gap:28px; padding:42px 0 18px; }
.kicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}
h1 {
  font-family: var(--display);
  font-size: clamp(44px, 9vw, 92px);
  line-height: 0.9;
  margin: 6px 0 10px;
  letter-spacing: 0.02em;
}
h1 span { color: var(--gold); }
.lede { max-width: 62ch; color: var(--mute); font-size: 18px; line-height: 1.45; }

.ticker {
  overflow: hidden;
  border: 1px solid var(--line);
  background: #04140c;
  margin: 18px 0;
}
.ticker p {
  margin: 0;
  padding: 8px 0;
  white-space: nowrap;
  animation: slide 48s linear infinite;
  font-family: var(--mono);
  font-size: 13px;
}
@keyframes slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.grid-2 { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 16px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.card {
  background: var(--field-2);
  border: 1px solid var(--line);
  padding: 14px;
}
.card h2 {
  font-family: var(--display);
  letter-spacing: 0.04em;
  font-size: 22px;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.sub { color: var(--mute); margin: 0 0 12px; font-size: 14px; }

.quests { display: grid; gap: 8px; }
.quest {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  background: #071c12;
  border: 1px solid var(--line);
}
.quest b { display: block; }
.quest span { color: var(--gold); font-family: var(--mono); font-size: 12px; }
.pts {
  font-family: var(--display);
  font-size: 28px;
  color: var(--gold);
}

button.act, button.primary {
  background: var(--gold);
  color: var(--ink);
  border: 0;
  padding: 8px 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}
button.act { min-height:42px; display:inline-flex; align-items:center; justify-content:center; }
button.act:disabled, button.primary:disabled { opacity: 0.4; cursor: not-allowed; }
.act-feedback { margin:9px 0 0; padding:9px 10px; border-radius:6px; border:1px solid #d7b85f; background:#2b351c; color:#fff0bd; font-size:13px; line-height:1.35; }
.act-feedback.success { border-color:#70d8a2; background:#143e2d; color:#d9ffe8; }
.act-feedback.error { border-color:#ef9d88; background:#482923; color:#ffe0d7; }
.quest .act-feedback { grid-column:1 / -1; margin:0; }
button.ghost {
  background: transparent;
  color: var(--paper);
  border: 1px solid var(--line);
  padding: 8px 12px;
  cursor: pointer;
}

.acts { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.act {
  border: 1px solid var(--line);
  padding: 10px;
  background: #08180f;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 140px;
}
.act .league { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--home); }
.act.heavy .league { color: #ff9a8f; }
.act p { margin: 0; color: var(--mute); font-size: 13px; flex: 1; }

table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--line); }
th { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); }
tr.me { background: rgba(228, 178, 60, 0.12); }
.rank { font-family: var(--display); color: var(--gold); width: 36px; }

.join {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr auto;
  align-items: end;
}
label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); display: grid; gap: 4px; }
input, select {
  background: #04140c;
  color: var(--paper);
  border: 1px solid var(--line);
  padding: 8px;
}

.flash {
  margin: 10px 0;
  padding: 10px 12px;
  background: var(--gold);
  color: var(--ink);
  font-weight: 700;
  display: none;
}
.flash.on { display: block; }

.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; }
.tabs button {
  background: transparent;
  color: var(--mute);
  border: 1px solid var(--line);
  padding: 6px 10px;
  cursor: pointer;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.08em;
}
.tabs button.on { background: var(--gold); color: var(--ink); border-color: var(--gold); }

.err { color: #ffb4a8; font-size: 14px; min-height: 1.2em; }
.status { font-family: var(--mono); font-size: 12px; margin: 8px 0 0; min-height: 1.2em; }
.status.ok { color: #8ee0b0; }
.status.bad { color: #ffb4a8; }
.custom-form { display: grid; gap: 10px; }
.custom-form .row { display: grid; grid-template-columns: 1fr 200px auto; gap: 8px; align-items: end; }
.community { display: grid; gap: 8px; }
.community .act { min-height: 0; }
.act.custom { border-color: var(--gold); }
@media (max-width: 820px) {
  .custom-form .row { grid-template-columns: 1fr; }
}
footer { margin: 40px 0 24px; color: var(--mute); font-size: 13px; line-height: 1.5; border-top: 1px solid var(--line); padding-top: 16px; }

.hero-actions { display:flex; gap:10px; flex-wrap:wrap; margin:18px 0; }
.link-button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; padding:11px 16px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.link-button.primary { background:var(--gold); color:var(--ink); }
.link-button.ghost { border:1px solid var(--line); color:var(--paper); }
.section-gap { margin-top:22px; }
.display-heading { font-family:var(--display); font-size:30px; text-transform:uppercase; letter-spacing:.04em; margin:0 0 6px; }
.status-bar { color:var(--gold-2); font:12px var(--mono); margin:0 0 12px; }
.truth { font-size:12px; max-width:70ch; }
.trap { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.age-check { grid-column:1/-1; display:flex; flex-direction:row; align-items:center; gap:8px; letter-spacing:0; text-transform:none; font:14px var(--text); color:var(--paper); }
.age-check input { width:18px; height:18px; }
.key-box { margin-top:14px; padding:14px; border:1px solid var(--gold); background:#172b1d; }
.key-box p { color:var(--mute); margin:6px 0; }
.key-box code { display:block; overflow-wrap:anywhere; margin:10px 0; color:var(--gold-2); }
.restore { display:flex; align-items:end; gap:10px; margin-top:16px; flex-wrap:wrap; }
.restore label { flex:1 1 260px; }
#account-tools { margin-top:12px; }
#account-tools button { margin-right:8px; }
.danger { color:#ffb4a8 !important; }
.versus { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; margin:10px 0; text-align:center; }
.versus strong { font-family:var(--display); font-size:clamp(18px,2.5vw,28px); line-height:1; text-transform:uppercase; }
.versus b { font:28px var(--display); color:var(--gold); white-space:nowrap; }
.challenge-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:10px; }
.challenge { background:#071c12; border:1px solid var(--line); padding:14px; }
.challenge .league { color:var(--gold); font:11px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.challenge p { color:var(--paper); margin:12px 0 6px; }
.challenge small { color:var(--mute); }
.table-scroll { overflow-x:auto; }
.empty { padding:16px; border:1px dashed var(--line); color:var(--mute); }
.custom-form input, textarea, .restore input { width:100%; }
textarea { background:#04140c; color:var(--paper); border:1px solid var(--line); padding:8px; font:inherit; resize:vertical; }
.custom-form button { justify-self:start; }
.comment { background:#071c12; border:1px solid var(--line); padding:12px; margin:8px 0; }
.comment p { margin:0 0 8px; }
.comment small,.act small { color:var(--mute); }
.report { display:block; margin-top:10px; background:transparent; color:var(--mute); border:1px solid var(--line); padding:5px 9px; cursor:pointer; }
.report:disabled { opacity:.45; cursor:default; }
.starter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px; }
.starter { border:1px solid var(--line); background:#071c12; padding:12px; }
.starter .league { color:var(--gold); font:11px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.starter h3 { font:23px var(--display); text-transform:uppercase; margin:9px 0 0; }
.starter strong { color:var(--gold-2); font-size:12px; }
.starter p { color:var(--mute); font-size:13px; margin:10px 0 0; }
.feature-match { background:linear-gradient(135deg,#163e29,#0d2a1c); border:1px solid #477756; padding:20px; box-shadow:10px 10px 0 #04140c; }
.feature-kicker { margin:0 0 12px; color:var(--gold); font:12px var(--mono); text-transform:uppercase; letter-spacing:.14em; }
.feature-score,.fixture-score { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature-score strong,.fixture-score strong { display:block; font-family:var(--display); font-size:clamp(20px,2vw,32px); line-height:1; text-transform:uppercase; }
.feature-score small,.fixture-score small { color:var(--mute); font-size:11px; display:block; margin-top:4px; }
.feature-score b,.fixture-score b { color:var(--gold); font:clamp(27px,3vw,42px) var(--display); white-space:nowrap; }
.feature-match p:not(.feature-kicker) { line-height:1.5; font-size:14px; }
.feature-taunt { color:var(--gold-2); font-weight:700; }
.feature-match a { font-weight:700; text-transform:uppercase; font-size:12px; }
.fixture-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.fixture { background:#071c12; border:1px solid var(--line); padding:14px; }
.fixture .league { color:var(--gold); font:11px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.fixture-score { margin-top:8px; gap:6px; }
.fixture-score strong { font-size:clamp(17px,1.6vw,22px); }
.fixture-score b { font-size:28px; margin-inline:8px; }
.live-label { color:var(--gold); font:11px var(--mono); letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px; }
.call-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.live-call { background:#071c12; border:1px solid var(--line); border-left:3px solid var(--gold); padding:14px; }
.live-call .league { color:var(--gold); font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.live-call h3 { margin:9px 0 7px; font:24px var(--display); text-transform:uppercase; }
.live-call p { color:var(--mute); margin:0; line-height:1.45; }
.support-banner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px; margin-top:32px; padding:16px 18px; border:1px solid var(--gold); background:#132b1a; }
.support-banner h2 { font:26px var(--display); text-transform:uppercase; margin:0 0 4px; }
.support-banner p { margin:0 0 7px; line-height:1.45; }
.support-banner small { display:block; max-width:85ch; color:var(--mute); line-height:1.4; }
.support-banner .link-button { white-space:nowrap; }
@media (max-width:700px) { .support-banner { grid-template-columns:1fr; } .support-banner .link-button { justify-self:start; } }
.fixture-deeds { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fixture-deeds p { color:var(--mute); font-size:12px; line-height:1.4; margin:10px 0 0; }
.fixture-deeds b { color:var(--paper); }
.section-toggle { display:block; margin:14px auto 4px; min-width:220px; }
.preseason h3 { font-family:var(--display); font-size:22px; text-transform:uppercase; letter-spacing:.04em; margin:28px 0 6px; }
.legal { max-width:800px; line-height:1.6; padding:24px 0 80px; }
.legal h1 { margin:20px 0; }
.legal h2 { font:24px var(--display); text-transform:uppercase; color:var(--gold); margin:30px 0 8px; }
:focus-visible { outline:2px solid var(--gold-2); outline-offset:3px; }
[hidden] { display:none !important; }
@media (prefers-reduced-motion:reduce) { .ticker p { animation:none; white-space:normal; padding:8px; } }

@media (max-width: 820px) {
  .hero { grid-template-columns:1fr; gap:14px; padding-top:26px; }
  .fixture-grid { grid-template-columns:1fr; }
  .grid-2, .grid-3, .join { grid-template-columns: 1fr; }
  .topbug { grid-template-columns: 1fr 1fr; }
  .topbug .mid { grid-column: 1 / -1; padding: 6px; }
}
@media (max-width: 450px) {
  .topbug .side { padding:8px; }
  .topbug .city { font-size:10px; }
  .topbug .mid { min-width:0; font-size:8px; padding:3px; text-align:center; }
  .topbug .score { font-size:34px; }
  .feature-score,.fixture-score { grid-template-columns:1fr auto 1fr; }
  .feature-score strong { font-size:22px; }
  .fixture-score strong { font-size:18px; }
}

/* Live arena refresh */
:root { --field:#102c28; --field-2:#17423b; --turf:#2cc59b; --gold:#ffcd65; --gold-2:#ffe2a2; --paper:#f8f9ed; --mute:#cadbd4; --line:#35685c; --ink:#142820; }
html,body { background:radial-gradient(circle at 72% 4%,#225d55 0,#102c28 35%,#0d2723 100%); }
.score-ribbon { display:flex; align-items:center; gap:16px; justify-content:center; flex-wrap:wrap; padding:10px 20px; background:linear-gradient(100deg,#073c39,#156755); border-bottom:1px solid #65d4ae; font:700 12px var(--mono); letter-spacing:.03em; }
.score-ribbon .ribbon-label { color:#132820; background:var(--gold); padding:5px 8px; letter-spacing:.12em; }
.score-ribbon a { color:#fff; text-decoration:none; border-bottom:1px solid #9aeac8; }
.hero { grid-template-columns:minmax(0,1fr); gap:20px; padding-top:35px; }
.hero-copy { max-width:920px; }
.arena-wrap { min-width:0; }
.hero-copy { position:relative; z-index:1; }
.hero h1 { font-size:clamp(60px,8vw,108px); text-shadow:4px 5px 0 #061a19,0 16px 35px #081c1b; }
.hero h1 span { color:#f9cc64; }
.hero-arena { aspect-ratio:1672/941; min-height:0; position:relative; isolation:isolate; overflow:hidden; border-radius:20px; border:2px solid #72dec2; background:#0c3438 url('/good-v-good-arena-good-cup.png') center/cover no-repeat; box-shadow:0 20px 0 #08231e,0 30px 45px #051916; transition:transform .35s ease,box-shadow .35s ease; }
.hero-arena:hover { transform:translateY(-4px); box-shadow:0 24px 0 #08231e,0 40px 52px #051916; }
.arena-us-flag { position:absolute; z-index:2; top:1%; right:17%; width:18%; height:auto; border:1px solid #e8e8e3; box-shadow:0 5px 18px #071f3899; transform:perspective(600px) rotateY(-12deg) rotate(-4deg); transform-origin:top right; }
.arena-glow { position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#071a1ad9,transparent 47%); }
.arena-caption { margin-top:24px; padding:10px 16px; background:#0d2929; border-left:5px solid var(--gold); border-radius:4px; font:700 clamp(17px,2vw,25px) var(--display); text-transform:uppercase; letter-spacing:.07em; }
.winner-stage { display:grid; grid-template-columns:130px 100px 1fr; align-items:center; gap:13px; min-height:135px; margin-top:15px; padding:15px 25px; background:linear-gradient(125deg,#174c42,#225a44,#276f60); border:1px solid #64bfa6; border-radius:16px; box-shadow:0 11px 0 #0a241f,0 21px 38px #051c17; overflow:hidden; }
.winner-crowd { display:flex; align-items:end; font-size:35px; transform:translateY(8px); }
.winner-crowd span { display:inline-block; animation:crowd-bounce 1.6s ease-in-out infinite; filter:drop-shadow(1px 5px 3px #103427); }
.winner-crowd span:nth-child(2) { animation-delay:.25s; }
.winner-crowd span:nth-child(3) { animation-delay:.5s; }
.winner-cup { font-size:69px; transform-origin:bottom; animation:cup-rise 3s ease-in-out infinite; filter:drop-shadow(0 13px 5px #13382a); }
.winner-stage strong { display:block; font:clamp(23px,3vw,39px) var(--display); text-transform:uppercase; letter-spacing:.02em; text-shadow:2px 3px 0 #10382f; }
.winner-stage p { margin:3px 0; color:#e2f7e9; }
@keyframes crowd-bounce { 50% { transform:translateY(-17px) rotate(-7deg); } }
@keyframes cup-rise { 50% { transform:translateY(-10px) rotate(8deg) scale(1.08); } }
.news-strip { display:flex; align-items:center; gap:16px; margin-top:30px; margin-bottom:17px; padding:12px 15px; background:#f5efe0; color:#18352c; border-radius:9px; box-shadow:0 7px 0 #0c2b27; font-size:14px; line-height:1.4; }
.news-strip strong { flex:none; background:#e9544c; color:#fff; padding:6px 9px; font:700 11px var(--mono); letter-spacing:.1em; }
.card,.challenge,.fixture,.live-call,.comment { border-radius:12px; box-shadow:0 7px 0 #0a2925; }
.card { padding:22px; }
.act,.quest { border-radius:9px; }
.challenge { background:#17483f; }
.fixture { background:#194e44; }
.live-call { background:#1c5147; }
.join { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; }
.join label:first-child { grid-column:1/3; }
.join label:nth-child(2) { grid-column:3/5; }
.join label:nth-child(3),.join label:nth-child(4) { grid-column:span 2; }
.join button { justify-self:start; }
input,select,textarea { border-radius:6px; min-height:42px; }
.join input,.join select { width:100%; }
.my-deeds { padding:10px; background:#12372f; border-radius:8px; }
.my-deeds ul { padding-left:20px; margin:6px 0 0; }
@media (max-width:820px) { .hero { grid-template-columns:1fr; } .hero-arena { transform:none; } .join { grid-template-columns:1fr 1fr; } .join label:first-child,.join label:nth-child(2),.join label:nth-child(3),.join label:nth-child(4) { grid-column:span 1; } }
@media (max-width:600px) { .language-bar { display:grid; grid-template-columns:1fr; } .language-note { max-width:none; } .language-controls { width:100%; } .winner-stage { grid-template-columns:65px 1fr; gap:10px; padding:14px; } .winner-crowd { grid-column:1; grid-row:1; font-size:20px; } .winner-cup { grid-column:1; grid-row:2; font-size:48px; } .winner-stage>div:last-child { grid-column:2; grid-row:1/3; } .news-strip { align-items:flex-start; } .join { grid-template-columns:1fr; } .join label:first-child,.join label:nth-child(2),.join label:nth-child(3),.join label:nth-child(4) { grid-column:1; } }
@media (prefers-reduced-motion:reduce) { .winner-crowd span,.winner-cup { animation:none; } .hero-arena { transform:none; transition:none; } }

/* Shorter route from joining to doing good, with useful controls for a growing chart. */
.signed-in { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; padding:18px; margin:12px 0; border:1px solid #72dec2; border-radius:10px; background:#103f37; }
.signed-in strong { font:clamp(22px,2.5vw,30px) var(--display); text-transform:uppercase; }
.signed-in p { color:var(--mute); margin:0; flex:1 1 260px; }
.signed-in .link-button { white-space:nowrap; }
.act-tools { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px; margin:18px 0 6px; border:1px solid var(--line); border-radius:10px; background:#123b34; }
.act-tools label { flex:1 1 250px; max-width:450px; }
.act-tools input { width:100%; border-color:#5c9584; background:#0a2925; }
.act-tools .act-category-control { flex:0 1 220px; }
.act-category-control select { width:100%; border-color:#5c9584; background:#0a2925; color:var(--paper); }
.act-filters { display:flex; gap:6px; flex-wrap:wrap; }
.act-filters button { min-height:42px; padding:8px 13px; border:1px solid #5c9584; border-radius:6px; background:#0a2925; color:var(--paper); cursor:pointer; font-weight:700; }
.act-filters button.on { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.act-results { margin:0 0 10px; color:var(--mute); font:12px var(--mono); }
.act-groups { display:grid; gap:22px; }
.act-category { min-width:0; }
.act-category-heading { display:flex; align-items:center; gap:12px; margin:0 0 10px; padding:0 0 7px; border-bottom:1px solid var(--line); }
.act-category-heading h3 { margin:0; color:var(--paper); font:clamp(21px,2.3vw,28px) var(--display); text-transform:uppercase; }
.act-category-heading span { display:inline-grid; place-items:center; min-width:27px; height:27px; padding:0 6px; border:1px solid var(--gold); border-radius:999px; color:var(--gold); font:700 12px var(--mono); }
.act-category-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:8px; }
.act-groups .act.featured { border-color:#e6c976; background:linear-gradient(155deg,#17483f,#20483d); box-shadow:0 7px 0 #0a2925; }
.act-groups .act.featured b { color:#fff8d8; }
@media (max-width:600px) { .act-tools label,.act-tools .act-category-control { max-width:none; flex:1 1 100%; } .act-filters { width:100%; } .act-filters button { flex:1; } .signed-in .link-button { width:100%; } }
.start-panel { margin-top:14px; border:2px solid var(--gold); border-radius:14px; background:linear-gradient(110deg,#225749,#144039 68%,#0e312e); box-shadow:0 7px 0 #08231e; }
.start-panel-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:18px 22px; }
.start-eyebrow { color:var(--gold-2); font:700 11px var(--mono); letter-spacing:.15em; }
.start-panel h2 { margin:3px 0 5px; font:clamp(24px,3vw,34px) var(--display); text-transform:uppercase; letter-spacing:.02em; }
.start-panel p { margin:0; color:var(--paper); font-size:14px; line-height:1.4; }
.start-panel-actions { display:flex; flex-direction:column; align-items:stretch; gap:9px; min-width:265px; text-align:center; }
.start-panel-actions .link-button { min-height:50px; border-radius:8px; padding:10px 14px; white-space:normal; }
.start-return { color:var(--paper); font-size:13px; font-weight:700; text-underline-offset:3px; }
.start-panel a:focus-visible, .hero-actions a:focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media (max-width:700px) { .start-panel-inner { grid-template-columns:1fr; gap:15px; padding:17px; } .start-panel-actions { min-width:0; } .start-panel-actions .link-button { width:100%; } }
.app-banner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; margin-top:17px; padding:18px 22px; border:1px solid #4d8268; border-radius:14px; background:linear-gradient(110deg,#102e26,#174037); }
.app-banner h2 { margin:3px 0 5px; font:clamp(23px,2.7vw,30px) var(--display); text-transform:uppercase; }
.app-banner p { margin:0 0 5px; line-height:1.4; }
.app-banner small { display:block; color:var(--mute); line-height:1.4; }
.app-banner .link-button { min-height:52px; border-radius:8px; white-space:nowrap; }
.app-banner a:focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media (max-width:700px) { .app-banner { grid-template-columns:1fr; padding:17px; } .app-banner .link-button { width:100%; white-space:normal; text-align:center; } }

/* Email sign-in keeps the first visit short; location details open only for sign-up. */
[hidden] { display:none !important; }
.auth-form { max-width:620px; margin:18px 0; }
.auth-form.join { grid-template-columns:1fr 1fr; align-items:end; }
.auth-form h3,.auth-form p { grid-column:1/-1; margin:0; }
.auth-form label:first-child,.auth-form label:nth-child(2),.auth-form label:nth-child(3) { grid-column:auto; }
.auth-form input { width:100%; }
.auth-form button { min-height:42px; }
.text-button { border:0; background:none; color:var(--gold); text-decoration:underline; cursor:pointer; padding:10px; }
.signup-details { margin:16px 0; border:1px solid var(--line); border-radius:8px; padding:12px 16px; }
.signup-details summary { cursor:pointer; color:var(--gold); font-weight:800; font-size:17px; }
.signup-details[open] summary { margin-bottom:16px; }
.signup-details #join { grid-template-columns:repeat(2,minmax(0,1fr)); }
.signup-details #join label { grid-column:auto; }
.signup-details #join .age-check,.signup-details #join .trap { grid-column:1/-1; }
.signup-details #join small { font-family:system-ui,sans-serif; letter-spacing:0; text-transform:none; }
@media (max-width:600px) { .auth-form.join,.signup-details #join { grid-template-columns:1fr; } .signup-details #join label,.signup-details #join .age-check { grid-column:1; } }

/* The matchups share one spacious stage. Every flag is part of its scene. */
html { scroll-behavior:smooth; }
#globe,#league,#join-section { scroll-margin-top:18px; }
.score-ribbon { justify-content:space-between; gap:10px 20px; min-height:56px; padding:8px max(20px,calc((100vw - 1120px)/2)); background:linear-gradient(110deg,#071f26,#0d4139 58%,#092824); box-shadow:0 8px 24px #04191388; }
.score-ribbon .ribbon-brand { border:0; color:#fff; font:900 22px var(--display); letter-spacing:.08em; white-space:nowrap; }
.ribbon-brand span { color:var(--gold); }
.ribbon-live { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; color:#b9f7db; }
.ribbon-live i { width:7px; height:7px; border-radius:50%; background:#54e7ad; box-shadow:0 0 0 4px #54e7ad33,0 0 14px #54e7ad; }
.ribbon-links { display:flex; gap:18px; align-items:center; }
.ribbon-links a { white-space:nowrap; border:0; font:700 12px var(--text); color:#eefdf5; }
.ribbon-links a[href="#globe"] { padding:7px 11px; border:1px solid #5ba997; border-radius:6px; background:#174f4a; }
.ribbon-links a:hover,.ribbon-links a:focus-visible { color:var(--gold); text-decoration:underline; }
.start-panel { margin-top:10px; border-width:1px; border-color:#6eb69c; box-shadow:0 4px 0 #08231e; }
.start-panel-inner { padding:10px 16px; gap:14px; }
.start-panel h2 { font-size:clamp(20px,2.4vw,26px); margin:1px 0 2px; }
.start-panel p { font-size:12px; color:#d3efe1; }
.start-panel-actions { flex-direction:row; align-items:center; min-width:0; gap:14px; }
.start-panel-actions .link-button { min-height:40px; padding:7px 13px; }
.start-return { white-space:nowrap; }
.language-bar { padding-top:8px; }
.language-controls { min-width:190px; }
.language-bar select { min-height:37px; padding:5px 9px; }
.hero { display:block; padding:14px 0 8px; }
.hero-copy { max-width:none; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); column-gap:28px; align-items:center; }
.hero-copy .kicker { grid-column:1/-1; margin-bottom:5px; }
.hero h1 { grid-column:1; grid-row:2/6; margin:0; font-size:clamp(64px,8vw,104px); line-height:.86; }
.hero .lede { grid-column:2; margin:0; font-size:16px; max-width:60ch; }
.hero-actions { grid-column:2; margin:8px 0 3px; gap:7px; }
.hero-actions .link-button,.hero-actions button { min-height:39px; padding:8px 11px; font-size:12px; }
.hero-copy #share-feedback,.hero-copy .truth { grid-column:2; margin:3px 0; }
.arena-wrap { margin-top:12px; }
.hero-arena { width:100%; aspect-ratio:16/9; min-height:0; background:#092d31; border:1px solid #74c9b3; border-radius:17px; box-shadow:0 12px 0 #092a25,0 26px 42px #031716; transform:none !important; }
.hero-arena:hover { box-shadow:0 12px 0 #092a25,0 26px 42px #031716; }
.arena-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.035); transition:opacity 1.2s ease,transform 8s ease; }
.arena-slide.is-active { opacity:1; transform:scale(1); }
.arena-shade { position:absolute; inset:50% 0 0; background:linear-gradient(0deg,#05191def,#05191d77 47%,transparent); pointer-events:none; }
.arena-overlay { position:absolute; z-index:2; left:clamp(18px,3vw,38px); right:20px; bottom:clamp(17px,2.4vw,34px); display:flex; flex-direction:column; gap:4px; text-shadow:0 2px 16px #001a1c; }
.arena-kicker { color:#bafce5; font:800 clamp(10px,1.2vw,13px) var(--mono); letter-spacing:.13em; }
.arena-overlay strong { color:#fff; font:900 clamp(32px,5.2vw,68px)/.98 var(--display); letter-spacing:.035em; text-transform:uppercase; }
.arena-overlay em { color:var(--gold); font-style:normal; font-size:.65em; }
.arena-tagline { color:#f8f2d7; font:700 clamp(12px,1.5vw,17px) var(--text); }
.arena-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; color:#cde9dc; font:700 12px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.arena-controls [role="group"] { display:flex; gap:8px; }
.arena-dot { width:36px; height:9px; border-radius:20px; border:1px solid #67b79c; background:#1c5549; cursor:pointer; transition:background .2s ease,width .2s ease; }
.arena-dot.is-active { width:57px; border-color:var(--gold); background:var(--gold); }
.arena-dot:focus-visible,.globe-locations button:focus-visible,.tabs button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.winner-stage { margin-top:10px; }
.winner-stage { grid-template-columns:104px 1fr; gap:18px; min-height:130px; background:radial-gradient(circle at 9% 40%,#619a8d 0,#2a6b59 13%,#16483e 58%,#0e382f 100%); }
.winner-stage .winner-cup { display:grid; place-items:center; width:102px; height:116px; font-size:0; transform:none; animation:none; }
.winner-cup img { width:auto; height:120px; max-width:100%; object-fit:contain; filter:drop-shadow(0 13px 9px #041e1c); transform-origin:bottom center; animation:cup-sway 4s ease-in-out infinite; }
.winner-stage .live-label { display:flex; align-items:center; gap:8px; }
#winner-flag { font-size:21px; }
@keyframes cup-sway { 50% { transform:perspective(400px) rotateY(10deg) translateY(-3px); } }
.news-strip { margin-top:19px; }

/* WebGL globe, with the location list as an accessible parallel view. */
.globe-section { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:10px; min-height:430px; margin:18px auto 0; padding:24px 28px; border:1px solid #477b70; border-radius:21px; background:radial-gradient(circle at 78% 40%,#1a5c66 0,#0a2b37 45%,#061d29 100%); box-shadow:inset 0 1px 0 #96d4c166,0 15px 0 #072722,0 28px 45px #031718; overflow:hidden; }
.globe-copy { position:relative; z-index:2; }
.globe-copy h2 { margin:4px 0 12px; font:900 clamp(36px,4.8vw,58px)/.96 var(--display); text-transform:uppercase; letter-spacing:.015em; text-shadow:0 5px 20px #071521; }
.globe-copy p { max-width:43ch; color:#d1eae4; font-size:16px; line-height:1.55; }
.globe-copy small { display:block; max-width:52ch; margin-top:14px; color:#a9c7c3; font-size:11px; line-height:1.5; }
.globe-locations { display:flex; flex-wrap:wrap; gap:8px; max-height:142px; overflow:auto; padding:2px 0 6px; }
.globe-locations button { display:flex; align-items:center; gap:6px; max-width:100%; min-height:38px; padding:6px 10px; color:#fff7dc; border:1px solid #5cbca9; border-radius:999px; background:#17483f; cursor:pointer; font-size:12px; }
.globe-locations button:hover { background:#246b5d; }
.globe-locations button strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.globe-locations button span:last-child { color:var(--gold-2); white-space:nowrap; }
.globe-empty { color:#d0e6df; font-size:13px; }
.globe-viewport { position:relative; min-height:390px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:radial-gradient(circle at center,#317e8344 0,#0c354300 60%),radial-gradient(1px 1px at 13% 22%,#d6fcff 99%,transparent),radial-gradient(2px 2px at 79% 16%,#c7f5ff 99%,transparent),radial-gradient(1px 1px at 92% 64%,#a8dcf9 99%,transparent),radial-gradient(1px 1px at 24% 77%,#bfe4fc 99%,transparent); }
.globe-viewport::before,.globe-viewport::after { content:""; position:absolute; inset:16px 9%; border:1px solid #85d5df44; border-radius:50%; transform:rotate(-22deg) scaleY(.48); pointer-events:none; }
.globe-viewport::after { transform:rotate(31deg) scaleY(.72); border-color:#8adcca28; }
#globe-canvas { position:relative; z-index:1; width:100%; height:390px; cursor:grab; touch-action:pan-y; }
#globe-canvas:active { cursor:grabbing; }
#globe-canvas canvas { display:block; width:100%; height:100%; filter:drop-shadow(0 0 25px #6be6e25a); }
.globe-fallback { display:grid; place-items:center; height:100%; font-size:200px; filter:drop-shadow(0 0 20px #60d6cc); }
.globe-orbit-label { position:absolute; z-index:2; bottom:13px; right:18px; color:#aae6de; font:700 10px var(--mono); letter-spacing:.14em; pointer-events:none; }

.app-banner { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:52px; margin-top:26px; padding:10px 16px; border:1px solid #3d6d5a; border-radius:9px; background:#12372f; }
.app-banner>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.app-banner strong { color:#f6dfaa; font:700 15px var(--display); text-transform:uppercase; }
.app-banner span { color:var(--mute); font-size:12px; }
.app-banner a { flex:none; color:var(--gold); font-size:12px; font-weight:800; white-space:nowrap; }

.standings-section { background:linear-gradient(145deg,#173d39,#102c2a); border:1px solid #548e7d; }
.standings-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.standings-heading h2 { margin:4px 0; font:900 clamp(32px,4vw,46px) var(--display); text-transform:uppercase; }
.standings-heading .sub { margin:0 0 18px; }
.standings-cup { width:68px; height:88px; object-fit:contain; filter:drop-shadow(0 10px 10px #011c18); }
.standings-section .tabs { margin:6px 0 15px; padding:5px; width:max-content; max-width:100%; border:1px solid #427e6e; border-radius:10px; background:#0b2b27; }
.standings-section .tabs button { min-height:36px; border-radius:6px; border:0; font-weight:800; }
.player-standings { display:grid; gap:9px; }
.standing-card { border:1px solid #477f70; border-radius:11px; background:linear-gradient(115deg,#17463d,#12362f); overflow:hidden; box-shadow:0 5px 0 #0b2c27; }
.standing-card:first-child { border-color:#ebcb73; background:linear-gradient(115deg,#31583c,#19483a); }
.standing-card.is-me { outline:2px solid #bfe5ad; outline-offset:2px; }
.standing-main { display:grid; grid-template-columns:62px minmax(0,1fr) auto; align-items:center; gap:13px; padding:12px 16px 6px; }
.standing-rank { color:var(--gold); font:900 clamp(29px,3.2vw,39px)/1 var(--display); }
.standing-identity { display:grid; gap:2px; min-width:0; }
.standing-identity strong { color:#fff; font-size:19px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.standing-identity span { color:#b7d7c9; font-size:12px; }
.standing-score { display:grid; justify-items:end; }
.standing-score strong { color:#fff0b5; font:900 30px/1 var(--display); }
.standing-score span { color:#b7d7c9; font:700 10px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.standing-deed-preview { display:flex; gap:6px; flex-wrap:wrap; margin:0 16px 6px 91px; }
.standing-deed-preview span { padding:4px 8px; border-radius:4px; background:#2b6253; color:#edf9e9; font-size:11px; }
.standing-deed-preview b { color:#ffdb83; }
.standing-card details { margin:0 16px 9px 91px; border-top:1px solid #377461; }
.standing-card summary { width:max-content; padding:7px 2px; color:#baf2db; cursor:pointer; font-size:12px; font-weight:700; }
.standing-card details ul { margin:5px 0 10px; padding:0; list-style:none; }
.standing-card details li { display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px solid #397466; color:#e6f9ed; font-size:12px; }
.standing-card details li b { color:var(--gold); white-space:nowrap; }

@media (max-width:900px) {
  .score-ribbon { justify-content:center; }
  #ribbon-score { order:4; flex-basis:100%; text-align:center; }
  .hero-copy { grid-template-columns:1fr; }
  .hero h1 { grid-column:1; grid-row:auto; font-size:clamp(56px,10vw,82px); }
  .hero .lede,.hero-actions,.hero-copy #share-feedback,.hero-copy .truth { grid-column:1; }
  .hero .lede { margin-top:8px; }
}
@media (max-width:700px) {
  .start-panel-inner { gap:9px; padding:10px 13px; }
  .start-panel p { display:none; }
  .start-panel-actions { flex-direction:row; flex-wrap:wrap; }
  .start-panel-actions .link-button { width:auto; }
  .language-note { font-size:10px; }
  .language-note { display:none; }
  .hero-actions { display:none; }
  .hero-copy .truth { display:none; }
  .hero h1 { font-size:clamp(53px,10vw,74px); }
  .arena-overlay strong { font-size:clamp(23px,7.2vw,46px); }
  .arena-kicker { font-size:9px; }
  .arena-tagline { font-size:11px; }
  .globe-section { grid-template-columns:1fr; padding:20px 16px; }
  .globe-viewport { min-height:300px; }
  #globe-canvas { height:320px; }
  .app-banner { display:flex; flex-direction:row; padding:10px 13px; }
  .app-banner a { width:auto !important; }
  .winner-stage { grid-template-columns:64px 1fr; gap:12px; min-height:115px; padding:10px 15px; }
  .winner-stage .winner-cup { grid-column:1; grid-row:1; width:64px; height:96px; }
  .winner-cup img { height:96px; }
  .winner-stage>div:last-child { grid-column:2; grid-row:1; }
  .winner-stage strong { font-size:clamp(19px,5vw,27px); }
}
@media (max-width:480px) {
  .score-ribbon { gap:7px 10px; padding:8px 10px; }
  .score-ribbon .ribbon-brand { font-size:18px; }
  .ribbon-links { gap:10px; }
  .ribbon-links a { font-size:11px; }
  .ribbon-links a[href="#globe"] { padding:5px 7px; }
  .ribbon-live { font-size:10px; }
  .hero-actions { gap:6px; }
  .hero-actions .link-button,.hero-actions button { flex:1 1 auto; }
  .arena-controls { font-size:10px; }
  .arena-dot { width:24px; }
  .arena-dot.is-active { width:35px; }
  .standing-main { grid-template-columns:40px minmax(0,1fr) auto; gap:7px; padding:11px 10px 5px; }
  .standing-rank { font-size:25px; }
  .standing-identity strong { font-size:16px; }
  .standing-identity span { font-size:10px; }
  .standing-score strong { font-size:23px; }
  .standing-deed-preview,.standing-card details { margin-left:57px; margin-right:10px; }
  .standings-section .tabs button { padding:6px; font-size:10px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .arena-slide { transition:none; transform:none; } .winner-cup img { animation:none; } }
