*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  overflow: hidden;           /* die Karte ist die Seite – kein Scrollen des Dokuments */
  overscroll-behavior: none;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

[lang='ja'] { font-family: 'Noto Sans JP', 'Noto Sans CJK JP', 'Hiragino Sans', var(--font-sans); }

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  touch-action: manipulation;
}

:focus-visible {
  outline: 2.5px solid var(--accent);
  outline-offset: 2px;
  border-radius: 8px;
}

[hidden] { display: none !important; }

h1, h2, h3, p { margin: 0; }

.muted { color: var(--ink-2); }
.small { font-size: .82rem; }
.center { text-align: center; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
