:root { color-scheme: light; --paper: #f7f5ee; --ink: #302d32; --accent: #493449; --line: #d8d0c5; --highlight: #e9e1ec; }
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 18px/1.75 Georgia, "Times New Roman", serif; }
a { color: var(--accent); text-underline-offset: .2em; overflow-wrap: anywhere; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.site-header, .site-footer { max-width: 1160px; margin: auto; padding: 28px 32px; }
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; font: 30px/1.2 Georgia, serif; text-decoration: none; }
nav, .caption, .editorial, .button, .site-footer p { font-family: system-ui, sans-serif; }
.site-header nav, .site-footer nav { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 14px; }
.site-header nav a, .site-footer nav a { padding: 8px 0; }
main { max-width: 800px; margin: 0 auto; padding: 40px 28px 56px; }
.breadcrumb { font-size: 13px; line-height: 1.6; }
h1, h2, h3 { font-weight: 400; line-height: 1.18; color: var(--accent); }
h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); letter-spacing: -.025em; margin: 30px 0 24px; }
h2 { font-size: 1.9rem; margin: 42px 0 16px; }
h3 { font-size: 1.4rem; margin: 28px 0 12px; }
p { margin: 16px 0 24px; }
.lede { font-size: 1.3rem; line-height: 1.65; }
.contents { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; padding: 20px 0; border-block: 1px solid var(--line); margin: 30px 0; }
.contents a { padding: 6px 0; }
.download { padding: 4px 24px 26px; border-left: 3px solid var(--accent); background: var(--highlight); margin: 32px 0; }
.download h2 { margin-top: 22px; font-size: 1.5rem; }
.download p { font-size: 1rem; }
.button { display: inline-block; background: var(--accent); color: white; padding: 12px 18px; border-radius: 5px; text-decoration: none; font-size: 14px; line-height: 1.6; }
ol, ul { padding-left: 1.5em; }
li { padding-left: .3em; margin: 14px 0; }
li::marker { color: var(--accent); }
.steps li { margin: 26px 0; }
.steps h3 { margin-bottom: 8px; }
.steps p { margin-top: 8px; }
.example { padding: 8px 24px; border: 1px solid var(--line); border-radius: 6px; margin: 24px 0; }
.caption { font-size: 13px; line-height: 1.65; }
blockquote { margin: 20px 0; padding-left: 20px; border-left: 2px solid var(--accent); }
.worksheet { border-block: 1px solid var(--line); padding: 8px 0; }
.worksheet dt { font-weight: bold; margin-top: 22px; }
.worksheet dd { margin: 4px 0 22px; }
.resource-list article { border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.next-step { border-top: 1px solid var(--line); margin-top: 40px; }
.sources p, .editorial { font-size: 14px; line-height: 1.8; }
.sources h2 { font-size: 1.4rem; }
.editorial { border-top: 1px solid var(--line); margin-top: 36px; padding-top: 12px; }
.site-footer { border-top: 1px solid var(--line); padding-bottom: 40px; }
.site-footer p { font-size: 14px; }
.skip-link { position: absolute; left: 16px; top: -100px; padding: 12px; background: white; z-index: 1; }
.skip-link:focus { top: 12px; }
@media (max-width: 620px) { .site-header { align-items: flex-start; flex-direction: column; padding: 20px 24px; gap: 16px; } .site-header nav { gap: 8px 18px; } main { padding: 28px 24px 40px; } h2 { font-size: 1.65rem; } .download, .example { padding-left: 18px; padding-right: 18px; } }
@media print { @page { margin: 18mm; } body { background: white; color: black; font-size: 11pt; } .site-header, .site-footer, .skip-link, .contents, .download, .next-step { display: none; } main { max-width: none; padding: 0; } h1 { font-size: 26pt; } h2 { font-size: 18pt; } h3 { font-size: 14pt; } h1, h2, h3 { break-after: avoid; } blockquote, .example { break-inside: avoid; } a { color: black; } }
