/* Geteilte Styles fuer alle Sonnensystem-Varianten */

:root {
  --bg: #05070d;
  --bg-soft: #0b1020;
  --panel: #0f1530;
  --panel-border: rgba(255,255,255,0.08);
  --ink: #f2ece0;
  --ink-dim: #a9a79a;
  --ink-faint: #6b6a60;
  --accent: #ffcc5c;
  --accent-cool: #7fb8ff;
  --star: #ffffff;
  --radius: 14px;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.01em; margin: 0; }
h1 { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
h3 { font-size: 1.15rem; }
p  { margin: 0 0 0.8em 0; }

button, .btn {
  font: inherit;
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--panel-border);
  padding: 0.6rem 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .1s ease;
}
button:hover, .btn:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.18); }
button:active { transform: scale(0.98); }

a { color: var(--accent-cool); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Sterniger Hintergrund */
.starfield {
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(ellipse at 20% 10%, rgba(127,184,255,0.08), transparent 50%),
    radial-gradient(ellipse at 80% 90%, rgba(255,204,92,0.05), transparent 50%),
    var(--bg);
  overflow: hidden;
}
.starfield::before, .starfield::after {
  content: "";
  position: absolute;
  inset: -20%;
  background-image:
    radial-gradient(1px 1px at 10% 20%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 30% 80%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 55% 45%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 72% 15%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 88% 60%, #fff 50%, transparent 52%),
    radial-gradient(2px 2px at 15% 55%, #fff 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 40% 30%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 65% 75%, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 90% 35%, #cfe0ff 50%, transparent 52%),
    radial-gradient(1px 1px at 5% 85%, #ffd9a8 50%, transparent 52%);
  background-size: 600px 600px;
  opacity: 0.6;
  animation: drift 120s linear infinite;
}
.starfield::after {
  background-size: 350px 350px;
  opacity: 0.35;
  animation-duration: 180s;
  animation-direction: reverse;
}
@keyframes drift {
  from { transform: translate(0,0); }
  to   { transform: translate(-600px, -600px); }
}

/* Reusable panel */
.panel {
  background: rgba(15, 21, 48, 0.7);
  border: 1px solid var(--panel-border);
  border-radius: var(--radius);
  backdrop-filter: blur(10px);
}

/* Top-nav back link */
.topnav {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 100;
  display: flex;
  gap: 10px;
  align-items: center;
}
.topnav a {
  color: var(--ink);
  font-size: 14px;
  background: rgba(15,21,48,0.8);
  border: 1px solid var(--panel-border);
  padding: 8px 14px;
  border-radius: 999px;
  backdrop-filter: blur(8px);
}
.topnav a:hover { background: rgba(255,255,255,0.08); text-decoration: none; }

/* Kleinkram */
.kbd {
  font-family: var(--font-mono);
  font-size: 0.78em;
  padding: 2px 6px;
  border: 1px solid var(--panel-border);
  border-radius: 4px;
  background: rgba(255,255,255,0.04);
  color: var(--ink-dim);
}
.label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
