:root { --body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --note-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
html { font-size: 16px; }
body { font-family: var(--body-font); font-size: 18px; line-height: 1.65; font-weight: 400; }
input, select, textarea, button { font: inherit; font-size: 16px; line-height: 1.5; }
h1, h2, h3, p { overflow-wrap: break-word; }
h1 { font-size: clamp(2.8rem, 5.2vw, 4.7rem); line-height: 1.07; letter-spacing: -.055em; font-weight: 450; margin: 1.1rem 0 1.5rem; }
h2 { font-size: clamp(1.65rem, 2.5vw, 2.15rem); line-height: 1.18; letter-spacing: -.025em; font-weight: 500; }
h3 { font-size: 1.35rem; line-height: 1.35; font-weight: 550; }
p { margin-block: 0 1.1rem; }
a { font-size: 16px; line-height: 1.45; text-underline-offset: .24em; text-decoration-thickness: 1px; }
.u-label, .brand-sub, .path-menu summary, .route-arrow, .menu-symbol { font-family: var(--note-font); font-size: 16px; line-height: 1.4; }
.u-label { letter-spacing: .025em; }
.masthead-name { font-size: 23px; font-weight: 500; line-height: 1.2; letter-spacing: -.025em; }
.brand-sub { font-weight: 400; letter-spacing: 0; }
.home-hero h1 { font-size: clamp(3.8rem, 6.45vw, 5.8rem); line-height: 1.01; letter-spacing: -.055em; }
.hero-deck { font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.25; letter-spacing: -.025em; max-width: 25ch; }
.page-deck { font-size: clamp(1.3rem, 2vw, 1.65rem); line-height: 1.5; }
.opening::first-letter { float: left; font-size: 4.2rem; font-weight: 400; line-height: .82; margin: .15rem .65rem .15rem 0; }
.primary-link { font-family: var(--note-font); font-weight: 500; font-size: 16px; }
.art-caption > p:last-child { font-size: 1.6rem; line-height: 1.25; letter-spacing: -.02em; }
.route-title { font-size: 1.5rem; letter-spacing: -.015em; line-height: 1.3; }
.route-detail { font-size: 17px; line-height: 1.5; }
.route-arrow { font-size: 26px; }
.source-link { font-family: var(--note-font); font-size: 16px; line-height: 1.5; }
.source-note > .u-label { font-size: 16px; }
.conversation > p:last-child { font-size: 18px; line-height: 1.6; }
.margin-notes { font-size: 17px; line-height: 1.6; }
.site-footer { font-size: 16px; line-height: 1.65; }
.field-help { font-size: 16px; line-height: 1.6; margin-top: .75rem; }
.worksheet label, .worksheet legend { font-size: 16px; line-height: 1.5; }
.worksheet legend { font-family: var(--note-font); }
.worksheet-result .amount-total { font-family: var(--note-font); font-size: 1.35rem; }
@media (max-width: 47rem) {
  body { font-size: 17px; }
  h1 { font-size: 2.8rem; letter-spacing: -.045em; }
  .home-hero h1 { font-size: clamp(2.6rem, 10.8vw, 4.5rem); }
  .hero-deck { font-size: 1.55rem; }
  .art-caption > p:last-child { font-size: 1.2rem; }
  .conversation > p:last-child { font-size: 17px; }
  .opening::first-letter { font-size: 3.7rem; }
}
@media print {
  body { font-size: 16px; line-height: 1.5; }
  h1 { font-size: 2.3rem; }
  h2 { font-size: 1.6rem; }
  .source-link { font-size: 16px; }
}
