*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--background); }
body { margin: 0; color: var(--text); background: var(--background); font: 400 16px/1.6 var(--font-body); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
button, summary { cursor: pointer; }
button:disabled { cursor: default; }
button, a { touch-action: manipulation; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 6px; }
::selection { color: var(--accent-ink); background: var(--accent); }
p, h1, h2, h3, dl, dd { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
h2 { font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: 1.08; font-weight: 700; letter-spacing: -.055em; }
h2 em, h1 em { color: var(--highlight); font-style: normal; }
h3 { font-weight: 600; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }
.wrap { width: calc(100% - var(--gutter) * 2); max-width: var(--max-width); margin-inline: auto; }
.section-space { padding-block: var(--space-section); }
.muted { color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; z-index: 20; inset: .75rem auto auto 1rem; padding: .8rem 1rem; background: var(--accent); color: var(--accent-ink); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
main:focus { outline: none; }
section[id] { scroll-margin-top: 1.5rem; }
.eyebrow, .hero-index, .section-label, .label-tag, .micro-note, .area-caption, .section-nav, .palette-control, .area-nav, .footer-meta { font-family: var(--font-label); font-size: .66rem; font-weight: 400; letter-spacing: .065em; line-height: 1.5; }
.eyebrow { color: var(--muted); text-transform: uppercase; }
.text-link { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; font-size: .875rem; border-bottom: 1px solid var(--border); transition: border-color var(--motion-fast); }
.text-link:hover { border-color: var(--accent); color: var(--accent); }
.arrow { display: inline-block; font-family: var(--font-body); line-height: 1; font-size: 1.3rem; font-weight: 400; }
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: var(--motion-page); animation-timing-function: var(--ease); }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    @view-transition { navigation: none; }
    ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
@media (forced-colors: active) {
    .display-title { color: CanvasText; }
    .button, .area-nav a, .palette-options button, .entry-ticket, .bench-note { border: 1px solid ButtonText; }
    .palette-options button[aria-pressed='true'] { outline: 2px solid Highlight; outline-offset: -4px; }
    .area-nav a[aria-current] { outline: 2px solid Highlight; }
}
@media print {
    body { color: #000; background: #fff; }
    .palette-control, .skip-link, .signal-band, .hero-actions, .passage-arrow { display: none !important; }
    .entry-ticket { transform: none; }
    .wrap { width: 100%; }
    h2 em, p, a, .eyebrow { color: #000; }
    details { break-inside: avoid; }
}
