/* Alap: tokenek, tipográfia, gombok. Az értékek a DESIGN.md-ből jönnek. */
:root {
  --bg: #F4F4F1;
  --bg-raised: #FFFFFF;
  --fg: #0A0A0B;
  --muted: #5E5E63;
  --line: #D6D6D0;
  --dot: #0A0A0B;
  --dot-faint: rgba(10, 10, 11, 0.16);
  --accent: #C98A00;
  --font-display: 'Unbounded', 'Arial Black', sans-serif;
  --font-body: 'Source Sans 3', 'Segoe UI', sans-serif;
  --font-dot: 'Doto', 'Courier', monospace;
  --radius: 2px;
  --gutter: clamp(16px, 4vw, 48px);
  --maxw: 1200px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
:root[data-theme="dark"] {
  --bg: #0A0A0B; --bg-raised: #131315; --fg: #F2F2EE; --muted: #9A9AA0;
  --line: #2A2A2E; --dot: #F2F2EE; --dot-faint: rgba(242, 242, 238, 0.14); --accent: #FFB21A;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="auto"] {
    --bg: #0A0A0B; --bg-raised: #131315; --fg: #F2F2EE; --muted: #9A9AA0;
    --line: #2A2A2E; --dot: #F2F2EE; --dot-faint: rgba(242, 242, 238, 0.14); --accent: #FFB21A;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: var(--font-body); font-size: 18px; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  background-image: radial-gradient(var(--dot-faint) 1px, transparent 1.2px);
  background-size: 24px 24px;
  transition: background-color .3s, color .3s;
}
h1, h2, h3 { font-family: var(--font-display); font-weight: 500; margin: 0; letter-spacing: -0.02em; }
h1 { font-size: clamp(2rem, 3.9vw, 3.2rem); line-height: 1.04; font-weight: 700; }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.6rem); line-height: 1.1; }
h3 { font-size: 1.05rem; letter-spacing: 0; }
p { margin: 0; }
a { color: inherit; }
strong { font-weight: 600; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.wordmark {
  font-family: var(--font-dot); font-weight: 800; font-size: 1.6rem;
  letter-spacing: 0.12em; text-decoration: none;
}

.btn {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: var(--font-body); font-weight: 600; font-size: 1rem;
  padding: .9em 1.4em; border-radius: var(--radius); text-decoration: none;
  border: 1px solid var(--fg); cursor: pointer; background: none; color: var(--fg);
  transition: transform .2s var(--ease-out), background-color .2s, color .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--fg); color: var(--bg); }
.btn-primary::after { content: '→'; font-family: var(--font-display); }
.btn-ghost:hover { background: var(--fg); color: var(--bg); }
.btn[disabled] { opacity: .35; cursor: not-allowed; transform: none; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
