:root {
  color-scheme: dark;
  --ink: #0b2b43;
  --paper: #ffffff;
  --rule: rgba(255, 255, 255, .27);
  --quiet: #d5e2ec;
  --display: "Avenir Next", "Trebuchet MS", system-ui, sans-serif;
  --body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --technical: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-bottom: 8rem; scroll-padding-top: 2rem; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: var(--body); font-size: 1rem; line-height: 1.6; }
body, button, input, select { font-size: 16px; }
main, header, footer, section, aside, nav { min-width: 0; }
h1, h2, h3, p, ol, ul, dl { margin: 0; }
h1, h2, h3 { font-family: var(--display); text-align: left; }
h1 { font-size: 2.25rem; font-weight: 700; letter-spacing: -.04em; line-height: .9; }
h2 { font-size: 1.5rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.2; }
h3 { font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
p, li { max-width: 72ch; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
a, button, summary { -webkit-tap-highlight-color: rgba(255, 255, 255, .18); }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--paper); outline-offset: 5px; }
button, select { font: inherit; color: var(--paper); background: var(--ink); }
button { cursor: pointer; }
button, select, summary { min-height: 44px; }
button { padding: .6rem 1rem; border: 1px solid var(--rule); border-radius: 8px; }
select { width: 100%; min-width: 0; padding: .6rem .75rem; border: 1px solid var(--rule); border-radius: 8px; }
[hidden] { display: none !important; }
.reading-shell { width: min(100%, 1280px); padding-inline: 1.5rem; margin-inline: auto; }
.skip-reading { position: fixed; top: .5rem; left: 1.5rem; z-index: 50; padding: .75rem 1rem; min-height: 44px; background: var(--paper); color: var(--ink); transform: translateY(-200%); border-radius: 8px; }
.skip-reading:focus { transform: translateY(0); }
.technical-value { font-family: var(--technical); }
@media (prefers-reduced-motion: no-preference) {
  a, button { transition: background-color 160ms, color 160ms; }
}
@media print {
  .bottom-dock, .section-jump, .skip-reading { display: none !important; }
  body { color: #0b2b43; background: #fff; }
  :root { --paper: #0b2b43; --quiet: #0b2b43; --rule: #0b2b43; }
  .reading-shell { width: 100%; }
  a { color: #0b2b43; }
}
