:root {
  --ink: #e9f2e7;
  --muted: #8ba093;
  --dark: #07140e;
  --panel: #0b1c13;
  --line: #24402e;
  --green: #69f094;
  --yellow: #f2c84b;
  --red: #f0493e;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    linear-gradient(rgba(105, 240, 148, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(105, 240, 148, .025) 1px, transparent 1px),
    var(--dark);
  background-size: 32px 32px;
  color: var(--ink);
  font-family: "Courier New", Courier, monospace;
}
a { color: inherit; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20; padding: .75rem 1rem; background: var(--ink); color: var(--dark); }
.skip-link:focus { top: 1rem; }
.topbar, main, footer { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.topbar { min-height: 76px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .7rem; font-weight: 900; letter-spacing: .18em; text-decoration: none; }
.brand-mark { padding: .38rem .45rem .3rem; background: var(--yellow); color: var(--dark); letter-spacing: -.06em; clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%); }
nav { display: flex; align-items: center; gap: 1.7rem; font-size: .75rem; text-transform: uppercase; }
nav a { color: var(--muted); text-decoration: none; }
nav a:hover, nav a:focus-visible { color: var(--green); }

.hero { min-height: 690px; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: 70px 0; }
.eyebrow { color: var(--green); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.status-dot { display: inline-block; width: .55rem; height: .55rem; margin-right: .45rem; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 12px var(--yellow); }
h1, h2 { margin: 0; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 400; line-height: .87; text-transform: uppercase; }
h1 { font-size: clamp(5.2rem, 11vw, 9.5rem); letter-spacing: -.025em; }
h1::first-line { color: var(--ink); }
.lead { max-width: 41rem; margin: 1.7rem 0 2.2rem; color: var(--muted); line-height: 1.65; }
.join label { display: block; margin-bottom: .55rem; color: var(--ink); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.join-row { display: flex; }
input, button { min-height: 52px; border: 1px solid var(--line); border-radius: 0; font: 700 .85rem "Courier New", monospace; }
input { min-width: 0; flex: 1; padding: 0 1rem; background: #050c08; color: var(--ink); text-transform: uppercase; }
button { padding: 0 1.25rem; background: var(--green); color: var(--dark); cursor: pointer; text-transform: uppercase; }
button:hover { background: var(--yellow); }
input:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
.field-note { color: var(--muted); font-size: .66rem; line-height: 1.5; }
.field-note.error { color: var(--red); }
.join .secondary-label { margin-top: 1rem; }
.secondary-label span { color: var(--muted); font-weight: 400; text-transform: none; }
#player-password { width: 100%; text-transform: none; }
.session { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0 0; padding: .7rem .9rem; border: 1px solid var(--green); background: rgba(105, 240, 148, .08); color: var(--green); font-size: .78rem; }
.session strong { color: var(--ink); }
.session button { min-height: 32px; padding: 0 .8rem; background: transparent; color: var(--muted); font-size: .68rem; }
.session button:hover { background: #12291b; color: var(--ink); }
.session[hidden], [data-password-fields][hidden] { display: none; }
.check { display: flex !important; align-items: center; gap: .5rem; margin-top: .7rem; color: var(--muted) !important; font-weight: 400 !important; text-transform: none !important; cursor: pointer; }
.check input { min-height: 0; flex: none; width: 1rem; height: 1rem; accent-color: var(--green); }

.hero-side { display: grid; gap: 2rem; }
.live .terminal-head h2 { display: flex; align-items: center; gap: .5rem; font: inherit; letter-spacing: inherit; }
.live-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--red); box-shadow: 0 0 10px var(--red); animation: blink 1.4s steps(2) infinite; }
.live-list { max-height: 260px; overflow-y: auto; margin: 0; padding: .3rem 1.2rem; list-style: none; }
.live-list li { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid #12291b; font-size: .82rem; }
.live-list .nick { overflow-wrap: anywhere; font-weight: 700; }
.live-list .frags { color: var(--ink); font-variant-numeric: tabular-nums; }
.live-list .ping { color: var(--muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.live-list .live-empty { display: block; padding: 1rem 0; border: 0; color: var(--muted); }
.live-screen { position: relative; aspect-ratio: 16 / 9; border-top: 1px solid var(--line); background: radial-gradient(circle at center, #10291a, #020704 70%); }
.live-screen iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.live-play { position: absolute; inset: 0; margin: auto; width: max-content; height: 52px; }
.live-watch { display: block; padding: .7rem 1rem; border-top: 1px solid var(--line); background: #12291b; color: var(--green); font-size: .72rem; font-weight: 700; text-align: center; text-decoration: none; text-transform: uppercase; }
.live-watch:hover { background: var(--green); color: var(--dark); }
.ranking .terminal-head h2 { font: inherit; letter-spacing: inherit; }
.tabs { display: flex; border-bottom: 1px solid var(--line); }
.tabs button { flex: 1; min-height: 40px; border: 0; border-right: 1px solid var(--line); background: transparent; color: var(--muted); font-size: .72rem; }
.tabs button:last-child { border-right: 0; }
.tabs button[aria-pressed="true"] { background: var(--green); color: var(--dark); }
.ranking-list { min-height: 260px; margin: 0; padding: .4rem 1.2rem; list-style: none; counter-reset: pos; }
.ranking-list li { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #12291b; counter-increment: pos; font-size: .85rem; }
.ranking-list li::before { content: counter(pos, decimal-leading-zero); color: var(--yellow); font-weight: 700; }
.ranking-list li:nth-child(-n+3) .nick { color: var(--green); }
.ranking-list .nick { overflow-wrap: anywhere; font-weight: 700; }
.ranking-list .verified { margin-left: .4rem; color: var(--green); font-size: .75rem; }
.ranking-list .frags { color: var(--ink); font-variant-numeric: tabular-nums; }
.ranking-list .ranking-empty { display: block; padding-top: 1.5rem; border: 0; color: var(--muted); }
.ranking-list .ranking-empty::before { content: none; }

.terminal { border: 1px solid #355540; background: #030a06; box-shadow: 18px 18px 0 #12291b, 18px 18px 0 1px #31563c; transform: perspective(1000px) rotateY(-2deg); }
.terminal-head, .terminal-foot { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; background: #12291b; color: var(--muted); font-size: .65rem; font-weight: 700; letter-spacing: .08em; }
.terminal-screen { position: relative; min-height: 410px; overflow: hidden; padding: 1.4rem; color: var(--ink); font-size: .78rem; line-height: 1.6; }
.terminal-screen::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,.2) 3px 4px); }
.prompt, .ok { color: var(--green); }
.muted { color: var(--muted); }
.map-grid { position: absolute; right: -2rem; bottom: -2rem; width: 82%; aspect-ratio: 1; transform: rotate(24deg) skew(-10deg); opacity: .32; }
.map-grid span { position: absolute; display: block; border: 2px solid var(--green); }
.map-grid span:nth-child(1) { inset: 12% 8% 48% 30%; }
.map-grid span:nth-child(2) { inset: 35% 44% 15% 5%; }
.map-grid span:nth-child(3) { inset: 48% 12% 8% 43%; }
.map-grid span:nth-child(4) { inset: 3% 52% 70% 14%; }
.map-grid span:nth-child(5) { inset: 20% 3% 54% 68%; }
.map-grid span:nth-child(6) { inset: 70% 65% 2% 12%; }
.cursor-line { position: absolute; bottom: 1rem; left: 1.4rem; }
.cursor { display: inline-block; width: .65rem; height: 1.05rem; vertical-align: middle; background: var(--green); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: 0; } }

.lang-switch { display: flex; border: 1px solid var(--line); }
.lang-switch button { min-height: 30px; padding: 0 .55rem; border: 0; background: transparent; color: var(--muted); font-size: .7rem; }
.lang-switch button[aria-pressed="true"] { background: var(--green); color: var(--dark); }
.nav-discord { padding: .45rem .8rem; background: #5865f2; color: #fff !important; font-weight: 700; }
.nav-discord:hover { background: var(--yellow); color: var(--dark) !important; }
.watch-link { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 46px; margin-top: .7rem; border: 1px solid var(--green); color: var(--green); font-size: .8rem; font-weight: 700; text-decoration: none; text-transform: uppercase; }
.watch-link span { color: var(--muted); font-weight: 400; text-transform: none; }
.watch-link:hover { background: #12291b; }
.discord-banner { display: grid; gap: .3rem; margin-top: 1.2rem; padding: .9rem 1rem; border: 1px solid #5865f2; border-left: 6px solid #5865f2; background: rgba(88, 101, 242, .14); text-decoration: none; }
.discord-banner strong { color: #fff; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.discord-banner span { color: #c9cdfb; font-size: .78rem; line-height: 1.5; }
.discord-banner:hover { background: rgba(88, 101, 242, .3); }
.community { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; align-items: end; border-top: 1px solid var(--line); padding: 90px 0; }
.community p:not(.eyebrow) { max-width: 38rem; margin: 0 0 1.6rem; color: var(--muted); line-height: 1.7; }
.discord-button { display: inline-flex; align-items: center; gap: .6rem; min-height: 52px; padding: 0 1.4rem; background: #5865f2; color: #fff; font-weight: 700; text-decoration: none; text-transform: uppercase; }
.discord-button:hover { background: var(--yellow); color: var(--dark); }
.report { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; border-top: 1px solid var(--line); padding: 90px 0; }
.report-lead { max-width: 28rem; margin-top: 1.4rem; color: var(--muted); line-height: 1.7; }
.report-form { display: grid; gap: .5rem; }
.report-form label { margin-top: .6rem; color: var(--ink); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.report-form label span { color: var(--muted); font-weight: 400; text-transform: none; }
.report-form input, .report-form select, .report-form textarea { width: 100%; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 0; background: #050c08; color: var(--ink); font: 400 .85rem "Courier New", monospace; text-transform: none; }
.report-form select { min-height: 52px; }
.report-form textarea { resize: vertical; line-height: 1.5; }
.report-form select:focus-visible, .report-form textarea:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
.report-form button { margin-top: .8rem; justify-self: start; }
.field-note.ok { color: var(--green); }
.steps, .project { border-top: 1px solid var(--line); padding: 90px 0; }
.steps { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; }
h2 { font-size: clamp(3rem, 7vw, 6rem); }
.steps ol { margin: 0; padding: 0; list-style: none; counter-reset: step; }
.steps li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 0 1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); counter-increment: step; }
.steps li::before { content: "0" counter(step); grid-row: 1 / 3; color: var(--yellow); font-weight: 700; }
.steps li span { margin-top: .4rem; color: var(--muted); font-size: .8rem; }
.project { max-width: 850px; }
.project > p:not(.eyebrow) { max-width: 650px; color: var(--muted); line-height: 1.7; }
.project a:hover { color: var(--green); }
.text-link { display: inline-block; margin-top: 1.2rem; color: var(--green); font-weight: 700; text-decoration: none; }
footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1.5rem 0 2.5rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .65rem; }

@media (max-width: 800px) {
  .topbar nav a:not(:last-child):not(.nav-discord) { display: none; }
  .hero, .steps, .community, .report { grid-template-columns: 1fr; }
  .hero { padding-top: 50px; }
  .terminal { transform: none; box-shadow: 10px 10px 0 #12291b; }
  .terminal-screen { min-height: 320px; }
  .steps, .community, .report { gap: 2rem; }
}
@media (max-width: 520px) {
  .topbar, main, footer { width: min(100% - 24px, 1180px); }
  .brand { letter-spacing: .08em; }
  h1 { font-size: 4.8rem; }
  .join-row { display: grid; gap: .6rem; }
  .terminal-foot { flex-wrap: wrap; }
  footer { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cursor, .live-dot { animation: none; }
}
