:root {
  color-scheme: light dark;
  --background: #faf8f5;
  --panel: #ffffff;
  --foreground: #33202a;
  --muted: #71645a;
  --primary: #973259;
  --border: #e3dcd2;
  --notice: #f6ede0;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.7;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--background); color: var(--foreground); }
a { color: var(--primary); text-underline-offset: .2em; overflow-wrap: anywhere; }
a:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; border-radius: 2px; }
.skip-link { position: absolute; left: 1rem; top: -5rem; padding: .5rem 1rem; background: var(--panel); }
.skip-link:focus { top: 1rem; }
.site-header, .site-footer, main { width: min(1120px, calc(100% - 3rem)); margin-inline: auto; }
.site-header { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; padding-block: 1.5rem; }
.brand { display: grid; text-decoration: none; line-height: 1.25; }
.brand strong { font: 600 1.6rem Georgia, serif; }
.brand span, .eyebrow { color: var(--muted); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.site-header nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.site-header nav a { font-size: .9rem; }
.hero { padding: 2rem 0; max-width: 780px; }
h1 { font: 600 clamp(2rem, 5vw, 3rem)/1.2 Georgia, serif; margin: .5rem 0 1rem; }
h2 { font-size: 1.2rem; line-height: 1.4; margin: 0 0 1rem; }
p { margin: 0 0 1rem; }
.muted { color: var(--muted); }
.notice { padding: 1rem 1.25rem; background: var(--notice); border: 1px solid var(--border); border-radius: .5rem; margin-bottom: 1.5rem; }
.layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.contents { position: sticky; top: 1.5rem; padding: 1.25rem; background: var(--panel); border: 1px solid var(--border); border-radius: .5rem; }
.contents h2 { font-size: .9rem; }
.contents ol { margin: 0; padding-left: 1.25rem; }
.contents li { margin-bottom: .65rem; font-size: .9rem; }
.document { min-width: 0; background: var(--panel); border: 1px solid var(--border); border-radius: .5rem; padding: clamp(1.25rem, 3vw, 2.5rem); }
.document section + section { border-top: 1px solid var(--border); padding-top: 1.75rem; margin-top: 1.75rem; }
.document ul, .document ol { padding-left: 1.4rem; }
.document li { margin-block: .5rem; }
.contact { padding: 1.25rem; border-left: 3px solid var(--primary); background: var(--background); border-radius: .25rem; }
.contact p:last-child, section p:last-child { margin-bottom: 0; }
.site-footer { padding-block: 2rem; font-size: .85rem; color: var(--muted); }
@media (max-width: 800px) {
  .site-header, .site-footer, main { width: calc(100% - 2rem); }
  .layout { grid-template-columns: minmax(0, 1fr); }
  .contents { position: static; }
  .contents ol { columns: 2; column-gap: 2rem; }
  .contents li { break-inside: avoid; }
  .hero { padding-top: 1rem; }
}
@media (max-width: 480px) { .contents ol { columns: 1; } }
@media (prefers-color-scheme: dark) {
  :root { --background: #201b18; --panel: #2e2623; --foreground: #f2ebe1; --muted: #c1b4a6; --primary: #f0a7c1; --border: #55473e; --notice: #3b3022; }
}
@media print {
  :root { color-scheme: light; --background: white; --panel: white; --foreground: black; --muted: #444; --primary: black; --border: #ccc; --notice: white; }
  .contents, .site-header nav, .skip-link { display: none; }
  .layout { display: block; }
  .document { border: 0; padding: 0; }
  a { text-decoration: underline; }
}
