:root { --wine: #2a0e16; --ink: #14070b; --rose: #c98a98; --paper: #f2ded9; --muted: #d2b6bd; --rule: #76505b; }
html { color-scheme: dark; background: var(--ink); }
body { color: var(--paper); background: var(--wine); }
a { color: var(--paper); }
button, input, textarea, select { color: var(--paper); }
::selection { background: var(--rose); color: var(--ink); }
a:hover { color: var(--rose); }
:focus-visible { outline: 3px solid var(--rose); outline-offset: 5px; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline-offset: 2px; }
.masthead-name, .menu-panel a, .primary-link, .route-link { text-decoration: none; }
.masthead { border-bottom: 1px solid var(--rule); }
.archive-mark::before { border: 1px solid var(--rose); border-radius: 50%; }
.archive-mark::after { border: 1px solid var(--rose); background: var(--wine); }
.brand-sub { color: var(--rose); }
.path-menu summary { border-bottom: 1px solid var(--rose); color: var(--paper); list-style: none; }
.menu-symbol { color: var(--rose); font-size: 24px; }
.path-menu[open] .menu-symbol { transform: rotate(45deg); }
.menu-panel { background: var(--ink); border: 1px solid var(--rule); box-shadow: 0 20px 60px #14070b99; }
.menu-panel a { border-top: 1px solid #76505b66; }
.menu-panel a:hover, .menu-panel a[aria-current="page"] { color: var(--paper); background: var(--wine); }
.menu-panel a[aria-current="page"] { border-left: 3px solid var(--rose); }
.skip-link { background: var(--paper); color: var(--ink); }
.u-label { color: var(--rose); }
.guide-label { color: var(--rose); }
.hero-deck, .page-deck { color: var(--muted); }
.primary-link { background: var(--rose); color: var(--ink); border: 1px solid var(--rose); }
.primary-link:hover { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.hero-art { color: var(--rose); }
.archive-diagram { border: 1px solid var(--rule); background: var(--ink); }
.diagram-grid { background-image: linear-gradient(#c98a9815 1px, transparent 1px), linear-gradient(90deg, #c98a9815 1px, transparent 1px); background-size: 12.5% 12.5%; }
.diagram-ring { border: 1px solid var(--rose); border-radius: 50%; }
.ring-inner { border-color: #c98a98aa; }
.diagram-plane { border: 1px solid var(--rose); background: #c98a9821; }
.diagram-axis { background: #c98a9860; }
.diagram-dot { background: var(--rose); border-radius: 50%; }
.art-caption { border-top: 1px solid var(--rule); }
.home-reading, .route-section { border-top: 1px solid var(--rule); }
.route-list li { border-top: 1px solid var(--rule); }
.route-list li:last-child { border-bottom: 1px solid var(--rule); }
.route-title { color: var(--paper); }
.route-detail { color: var(--muted); }
.route-link:hover .route-title { text-decoration: underline; text-underline-offset: .2em; }
.route-link:hover .route-arrow { color: var(--rose); }
.page-heading { border-bottom: 1px solid var(--rule); margin-bottom: 2.5rem; }
.reading-section + .reading-section { border-top: 1px solid var(--rule); }
.claim-pair { border-top: 1px solid var(--rose); }
.source-note { border-top: 1px solid #76505b88; }
.source-note > .u-label { color: var(--muted); }
.source-link { color: var(--rose); }
.source-link:hover { color: var(--paper); }
.conversation { background: var(--ink); border-left: 2px solid var(--rose); }
.opening::first-letter { color: var(--rose); }
.note-list li::marker { color: var(--rose); }
.margin-notes { color: var(--muted); }
.small-diagram { opacity: .85; }
.page-turn { border-top: 1px solid var(--rule); }
.site-footer { background: var(--ink); border-top: 1px solid var(--rule); color: var(--muted); }
.site-footer .text-link { color: var(--muted); }
.site-footer .text-link:hover { color: var(--paper); }
.worksheet { background: var(--ink); border: 1px solid var(--rose); }
.worksheet input, .worksheet select, .worksheet textarea { border: 1px solid var(--rule); background: var(--wine); border-radius: 0; }
.worksheet input::placeholder, .worksheet textarea::placeholder { color: var(--muted); opacity: 1; }
.worksheet input[aria-invalid="true"] { border: 2px solid var(--rose); }
.worksheet fieldset { border: 0; border-top: 1px solid var(--rule); }
.worksheet .field-help, .amount-input > span { color: var(--muted); }
.check-row input { accent-color: var(--rose); }
.worksheet-actions button { border: 1px solid var(--rose); background: var(--wine); border-radius: 0; }
.worksheet-actions button:first-child { background: var(--rose); color: var(--ink); }
.worksheet-actions button:hover { background: var(--paper); color: var(--ink); }
.worksheet-result { border-top: 1px solid var(--rose); }
.amount-total { color: var(--rose); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  html { color-scheme: light; }
  body, .site-footer, .worksheet, .conversation { background: white; color: #14070b; }
  a, .u-label, .page-deck, .source-link, .opening::first-letter, .worksheet .field-help, .amount-input > span, .amount-total { color: #2a0e16; }
  .worksheet input, .worksheet select, .worksheet textarea { color: #14070b; background: white; border-color: #76505b; }
  .worksheet input::placeholder, .worksheet textarea::placeholder { color: #4f3940; }
  .conversation { border: 1px solid #76505b; }
}
