:root{
  --bg-dark:#0a0a0a; --text-dark:#eaeaea; --muted-dark:#8a8a8a;
  --bg-light:#ffffff; --text-light:#1a1a1a; --muted-light:#555;
  --brand:#00ff55; --brand-2:#2f4f2f; --border:#1c1c1c;
  --maxw: 960px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.6; -webkit-font-smoothing:antialiased;
  background:var(--bg-dark); color:var(--text-dark);
}
body.theme-light{ background:var(--bg-light); color:var(--text-light); }
.wrapper{max-width:var(--maxw); margin:0 auto; padding:24px;}
header h1{margin:0 0 6px 0; letter-spacing:.5px}
nav{display:flex; gap:12px; flex-wrap:wrap; margin:8px 0 20px}
nav a{color:inherit; text-decoration:none; padding:2px 0}
nav a:hover{text-decoration:underline}
nav a.active{text-decoration:underline; text-underline-offset:3px}

h1,h2,h3{line-height:1.25; margin:16px 0 8px}
p{margin:8px 0}
ul{padding-left:18px}

footer{border-top:1px solid var(--border); margin-top:28px; padding-top:16px; font-size:.95rem; color:var(--muted-dark)}
body.theme-light footer{color:var(--muted-light)}

/* Buttons (IRC) */
.irc-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 18px; border-radius:10px; border:1px solid var(--border);
  text-decoration:none; font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  transition:.25s ease; will-change:transform, box-shadow, color, background;
}
.theme-dark .irc-btn{ background:#0c0c0c; color:#9cff9c; box-shadow:0 0 5px rgba(0,255,0,.12); }
.theme-dark .irc-btn:hover{ background:#111; color:#bdfdbd; border-color:var(--brand); box-shadow:0 0 14px rgba(0,255,0,.45); transform:scale(1.03); }

.theme-light .irc-btn{ background:#f5f5f5; color:#2f4f2f; border-color:#bbb; box-shadow:0 0 4px rgba(0,128,0,.12); }
.theme-light .irc-btn:hover{ background:#e8f5e8; color:#003300; border-color:#2f8f2f; box-shadow:0 0 12px rgba(0,128,0,.35); transform:scale(1.03); }

.radio-icon{ width:22px; height:22px; fill:currentColor }
.irc-btn:hover .radio-icon{ animation:spin 1.2s linear infinite }
@keyframes spin{ to{ transform:rotate(360deg)} }

.radio-wrap{ position:relative; display:inline-flex; align-items:center; justify-content:center }
.led{
  position:absolute; top:-3px; right:-5px; width:6px; height:6px; border-radius:50%;
  background:var(--brand); box-shadow:0 0 6px var(--brand); animation:blink 1.2s infinite ease-in-out;
}
@keyframes blink{ 0%,60%,100%{opacity:.15; box-shadow:0 0 2px var(--brand)} 30%{opacity:1; box-shadow:0 0 8px var(--brand)} }

/* Map card */
.map-card{ border:1px solid var(--border); border-radius:12px; overflow:hidden; box-shadow:0 0 10px rgba(0,255,85,.18) }
.theme-light .map-card{ box-shadow:0 0 10px rgba(0,128,0,.15) }
.map-note{ font-size:.85rem; color:var(--muted-dark); margin-top:8px }
.theme-light .map-note{ color:var(--muted-light) }
.map-link{ color:var(--brand); text-decoration:none }
.map-link:hover{ text-decoration:underline }
.sponsor-footer-btn {
  background:#0a0a0a; 
  color:#00ff88; 
  padding:8px 14px;
  border:1px solid #00ff88; 
  border-radius:6px;
  text-decoration:none; 
  margin-left:8px; 
  transition:.3s;
  font-weight:500;
}
.sponsor-footer-btn:hover {
  background:#00ff88; 
  color:#0a0a0a; 
  font-weight:bold; 
  box-shadow:0 0 8px rgba(0,255,136,0.4);
}