:root {
  color-scheme: light dark;
  --bg: #ffffff;
  --fg: #111827;
  --muted: #4b5563;
  --border: #e5e7eb;
  --link: #2563eb;
  --btn-bg: #2563eb;
  --btn-fg: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #111827;
    --fg: #ffffff;
    --muted: #9ca3af;
    --border: #374151;
    --link: #60a5fa;
  }
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
}
body {
  background: var(--bg);
  color: var(--fg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
}
a {
  color: var(--link);
}
a:focus-visible,
button:focus-visible {
  outline: 3px solid #0891b2;
  outline-offset: 2px;
}

/* centered error-style page (404) */
body.error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
}
.code {
  font-size: clamp(4rem, 15vw, 7rem);
  font-weight: 800;
  margin: 0 0 8px;
  background: linear-gradient(to right, #2563eb, #0891b2);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #2563eb;
}
a.home {
  display: inline-block;
  background: var(--btn-bg);
  color: var(--btn-fg);
  text-decoration: none;
  font-weight: 600;
  padding: 14px 32px;
  border-radius: 8px;
  transition: opacity 0.2s;
}
a.home:hover {
  opacity: 0.9;
}

/* prose-style content page (privacy, accessibility) */
body.doc-page {
  padding: 0 24px 64px;
}
.doc-header {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 0 24px;
  border-bottom: 1px solid var(--border);
}
.doc-header a.back {
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
}
.doc-header h1 {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  margin: 12px 0 4px;
}
.doc-header .updated {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0;
}
main.doc {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 24px;
}
main.doc h2 {
  font-size: 1.25rem;
  margin: 32px 0 8px;
}
main.doc p,
main.doc li {
  color: var(--muted);
}
main.doc ul {
  padding-left: 1.25rem;
}
