/* The static pages. Same tokens as the viewer (src/styles.css), so both follow one theme. */
:root {
  --bg: #f6f8fb; --surface: #ffffff; --ink: #15213b; --muted: #4f5d75; --faint: #98a3b5; --line: #e3e8f0;
  --accent: #2563eb; --accent-soft: #2563eb14; --code: #f1f4f9;
  --mm-font: Inter, system-ui, sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0b1020; --surface: #111829; --ink: #e7ecf6; --muted: #93a1b8; --faint: #5f6c84; --line: #232d44;
    --accent: #6ea0ff; --accent-soft: #6ea0ff1f; --code: #0e1422; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0b1020; --surface: #111829; --ink: #e7ecf6; --muted: #93a1b8; --faint: #5f6c84; --line: #232d44;
  --accent: #6ea0ff; --accent-soft: #6ea0ff1f; --code: #0e1422; color-scheme: dark;
}

* { box-sizing: border-box; }
html { background: var(--bg); scroll-padding-top: 84px; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.65 Inter, system-ui, sans-serif; font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-underline-offset: 3px; }
h1, h2, h3 { margin: 0; line-height: 1.2; letter-spacing: -.015em; text-wrap: balance; }
p, ul, ol, dl { margin: 0; }
code, pre { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .875em; }
:not(pre) > code { padding: .1em .35em; border-radius: 5px; background: var(--code); }
small { color: var(--muted); }

.skip-link { position: absolute; left: 12px; top: -60px; z-index: 10; padding: 8px 12px; border-radius: 8px; background: var(--accent); color: #fff; }
.skip-link:focus { top: 12px; }

.site-header { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 8px 32px; min-height: 68px; padding: 8px clamp(16px, 4vw, 40px); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter: blur(12px); }
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-size: 19px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
.logo { width: 30px; height: 30px; color: var(--accent); }
.site-header nav { display: flex; gap: 2px; margin-left: auto; overflow-x: auto; scrollbar-width: none; }
.site-header nav a { padding: 7px 11px; border-radius: 8px; color: var(--muted); font-size: 14.5px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.site-header nav a:hover { color: var(--ink); background: var(--accent-soft); }

main { display: grid; gap: clamp(40px, 6vw, 72px); width: min(100%, 1040px); margin: 0 auto; padding: clamp(20px, 4vw, 40px) clamp(16px, 4vw, 40px) 72px; }
main > section { display: grid; gap: 18px; min-width: 0; }
main > section > p, .steps, .plain, .faq, .references { max-width: 72ch; }
h2 { font-size: clamp(22px, 2.6vw, 28px); }
h3 { font-size: 17px; }

.crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; list-style: none; color: var(--muted); font-size: 14px; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--faint); }
.crumbs a { color: inherit; }

.hero { padding-top: clamp(16px, 4vw, 48px); }
.hero--page { padding-top: 0; }
.hero h1 { font-size: clamp(34px, 6vw, 60px); letter-spacing: -.03em; }
.hero--page h1 { font-size: clamp(30px, 4.6vw, 44px); }
.hero__tagline { font-size: clamp(19px, 2.4vw, 24px); font-weight: 600; color: var(--accent); }
.lede { font-size: clamp(17px, 1.6vw, 19px); color: var(--muted); }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--accent); border-radius: 10px; background: var(--accent); color: #fff; font-weight: 600; text-decoration: none; }
:root[data-theme="dark"] .button:not(.button--quiet) { color: #0b1020; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .button:not(.button--quiet) { color: #0b1020; } }
.button--quiet { border-color: var(--line); background: var(--surface); color: var(--ink); }
.button:hover { filter: brightness(1.06); }

.figure { min-width: 0; padding: clamp(8px, 2vw, 20px); border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.figure figure { margin: 0; }
.figure figure > svg { display: block; width: 100%; height: auto; }
.figure figcaption { margin-top: 8px; color: var(--muted); font-size: 14px; text-align: center; }
.figure .mm-player { border: 0; }

.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; padding: 0; list-style: none; }
.cards li { display: grid; align-content: start; gap: 6px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.cards p { color: var(--muted); font-size: 15px; }
.cards a { color: var(--ink); }
.cards a:hover { color: var(--accent); }

.code { margin: 0; min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--code); overflow: hidden; }
.code figcaption { padding: 8px 14px; border-bottom: 1px solid var(--line); color: var(--muted); font: 500 13px "JetBrains Mono", ui-monospace, monospace; }
.code pre { margin: 0; padding: 14px; overflow-x: auto; line-height: 1.55; tab-size: 2; }

.steps { display: grid; gap: 18px; padding: 0; list-style: none; }
.steps > li { display: grid; gap: 6px; padding-left: 16px; border-left: 2px solid var(--line); }
.steps h3 span { display: inline-grid; place-items: center; min-width: 24px; height: 24px; margin-right: 6px; border-radius: 12px; background: var(--accent); color: var(--bg); font-size: 13px; }
.steps ul, .plain, .references { display: grid; gap: 6px; padding-left: 20px; color: var(--muted); }
.plain, .references { gap: 10px; color: inherit; }
.note { color: var(--muted); font-size: 15px; }

.faq { display: grid; gap: 6px; }
.faq dt { margin-top: 14px; font-weight: 600; }
.faq dd { margin: 0; color: var(--muted); }

.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding: 20px clamp(16px, 4vw, 40px) 32px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; }
.site-footer a { color: inherit; }

@media (max-width: 720px) {
  .site-header { flex-wrap: wrap; }
  .site-header nav { width: 100%; margin-left: -11px; }
}
