:root {
  --sand-0: #fffaf1; --sand-1: #f5e8d4; --sand-2: #e8d5b9;
  --coral: #e46f5b; --coral-dark: #a53e32; --ink: #202a27;
  --pine: #315e55; --muted: #6f6b61; --line: #c8b89e; --paper: #fffdf8;
  --shadow: 0 18px 48px rgba(85, 59, 42, .12); --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--sand-0); }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 84% 6%, rgba(228,111,91,.15), transparent 28rem), var(--sand-0); font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.7; overflow-wrap: anywhere; }
a { color: var(--coral-dark); text-underline-offset: .2em; }
a:hover { color: var(--pine); }
button, textarea, input { font: inherit; }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 100; padding: .75rem 1rem; background: var(--ink); color: white; }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 1.5rem; min-height: 72px; padding: .65rem max(1rem, calc((100vw - 1160px)/2)); background: rgba(255,250,241,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: .65rem; color: var(--ink); font-weight: 850; text-decoration: none; letter-spacing: -.03em; white-space: nowrap; }
.brand span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--coral); color: white; font-size: .76rem; letter-spacing: .06em; }
.nav-tabs { display: flex; align-items: center; gap: .25rem; margin-left: auto; overflow-x: auto; scrollbar-width: none; }
.nav-tabs a { flex: none; padding: .45rem .65rem; border: 1px solid transparent; border-radius: 999px; color: var(--ink); font-size: .87rem; text-decoration: none; }
.nav-tabs a:hover, .nav-tabs a:focus-visible { border-color: var(--coral); background: white; }
.nav-toggle { display: none; margin-left: auto; border: 1px solid var(--ink); border-radius: 999px; padding: .45rem .8rem; background: transparent; color: var(--ink); }
.page-shell { width: min(1160px, calc(100% - 2rem)); margin-inline: auto; }
.hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: center; gap: clamp(2rem, 7vw, 7rem); min-height: 650px; padding-block: clamp(4rem, 9vw, 8rem); }
.eyebrow, .file-no, .footer-mark { margin: 0 0 .75rem; color: var(--coral-dark); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3 { line-height: 1.16; letter-spacing: -.04em; }
h1 { max-width: 13ch; margin: 0; font-family: ui-serif, Georgia, "Times New Roman", serif; font-size: clamp(2.65rem, 7vw, 6rem); font-weight: 750; }
h2 { margin: 0 0 1.2rem; font-size: clamp(1.8rem, 4vw, 3.1rem); }
h3 { margin: 0 0 .65rem; font-size: 1.22rem; }
.hero-lead, .lede { max-width: 64ch; margin: 1.4rem 0 0; color: #3e4843; font-size: clamp(1.02rem, 2vw, 1.23rem); }
.hero-actions, .copy-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.8rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .72rem 1rem; border: 1px solid var(--ink); border-radius: 999px; font-weight: 750; text-decoration: none; cursor: pointer; }
.button.primary { border-color: var(--coral); background: var(--coral); color: white; }
.button.secondary { background: transparent; color: var(--ink); }
.status-line { margin-top: 1.5rem; color: var(--muted); font-size: .86rem; }
.status-line span { margin-right: .5rem; padding: .22rem .5rem; border: 1px solid var(--pine); border-radius: 999px; color: var(--pine); font-weight: 800; }
.topic-compass { position: relative; width: min(78vw, 340px); aspect-ratio: 1; margin-inline: auto; border: 1px solid var(--coral); border-radius: 50%; background: linear-gradient(45deg, transparent 49.7%, var(--line) 50%, transparent 50.3%), linear-gradient(-45deg, transparent 49.7%, var(--line) 50%, transparent 50.3%), var(--sand-1); box-shadow: var(--shadow); }
.topic-compass::before { content: ""; position: absolute; inset: 21%; transform: rotate(45deg); border: 2px solid var(--pine); background: rgba(255,255,255,.5); }
.topic-compass strong { position: absolute; inset: 38%; display: grid; place-items: center; z-index: 2; text-align: center; line-height: 1.25; }
.topic-compass span { position: absolute; padding: .2rem .45rem; background: var(--sand-0); color: var(--coral-dark); font-size: .82rem; font-weight: 850; letter-spacing: .1em; }
.compass-n { top: 4%; left: 50%; transform: translateX(-50%); } .compass-e { right: 2%; top: 50%; transform: translateY(-50%); }
.compass-s { bottom: 4%; left: 50%; transform: translateX(-50%); } .compass-w { left: 2%; top: 50%; transform: translateY(-50%); }
.section-block { padding-block: clamp(3rem, 8vw, 6.5rem); border-top: 1px solid var(--line); }
.section-intro { max-width: 62ch; color: var(--muted); }
.timeline { position: relative; max-width: 820px; margin-top: 2.5rem; }
.timeline::before { content: ""; position: absolute; left: 2rem; top: 1rem; bottom: 1rem; width: 1px; background: var(--coral); }
.timeline article { position: relative; display: grid; grid-template-columns: 4rem 1fr; gap: 1.2rem; padding: 0 0 2.2rem; }
.timeline time { display: grid; place-items: center; z-index: 1; width: 4rem; height: 4rem; border: 1px solid var(--coral); border-radius: 50%; background: var(--sand-0); color: var(--coral-dark); font-weight: 850; }
.timeline p { margin: 0; color: var(--muted); }
.file-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.file-card { display: flex; flex-direction: column; min-width: 0; min-height: 250px; padding: 1.3rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,253,248,.82); box-shadow: 0 1px 0 rgba(255,255,255,.7) inset; }
.file-card h3 a { color: var(--ink); text-decoration: none; }
.file-card p:not(.file-no) { color: var(--muted); }
.file-card .text-link { margin-top: auto; font-weight: 800; text-decoration: none; }
.tag-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.tag-index a { display: flex; gap: .7rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.tag-index span { color: var(--coral-dark); font-variant-numeric: tabular-nums; }
.faq details { max-width: 820px; border-top: 1px solid var(--line); padding: 1rem 0; }
.faq summary { cursor: pointer; font-weight: 800; }
.site-footer { margin-top: 4rem; padding: 3rem max(1rem, calc((100vw - 1160px)/2)); background: var(--ink); color: #f5ead8; }
.footer-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2rem; }
.footer-grid nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
.site-footer a { color: #ffd1c7; }
.fine-print { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #56605c; color: #bfc8c2; font-size: .84rem; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .55rem; padding-top: 1.5rem; color: var(--muted); font-size: .86rem; }
.article-page { max-width: 900px; }
.page-heading { padding: clamp(3rem, 8vw, 6rem) 0; border-bottom: 1px solid var(--line); }
.article-page h1 { max-width: 18ch; font-size: clamp(2.3rem, 6vw, 4.8rem); }
.article-page > section { padding: 2.4rem 0; border-bottom: 1px solid var(--line); }
.article-page > section p { max-width: 72ch; }
.byline { margin-top: 1rem; color: var(--muted); font-size: .9rem; }
.source-note { padding: 1.1rem 1.2rem; border-left: 4px solid var(--coral); background: var(--sand-1); }
.step-list { display: grid; gap: .8rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.step-list li { display: flex; align-items: center; gap: 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.step-list span { color: var(--coral-dark); font-weight: 850; }
.check-points { padding-left: 1.4rem; }
.interactive-panel { display: grid; gap: .7rem; padding: 1.2rem; border: 1px solid var(--pine); border-radius: var(--radius); background: var(--paper); }
.interactive-panel.warning { border-color: var(--coral); }
.interactive-panel label { display: flex; align-items: flex-start; gap: .7rem; padding: .7rem; border-bottom: 1px solid var(--sand-2); cursor: pointer; }
.interactive-panel input { width: 1.15rem; height: 1.15rem; margin-top: .25rem; accent-color: var(--coral); }
.progress { margin: 0 0 .5rem; color: var(--pine); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
table { width: 100%; min-width: 660px; border-collapse: collapse; background: var(--paper); }
th, td { padding: .85rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--sand-1); }
textarea { width: 100%; min-height: 20rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--ink); resize: vertical; }
.not-found { min-height: 720px; }
:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
@media (max-width: 900px) { .file-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero { grid-template-columns: 1fr; } .topic-compass { grid-row: 1; } }
@media (max-width: 720px) {
  .site-header { flex-wrap: wrap; min-height: 64px; }
  .brand { white-space: normal; font-size: .9rem; }
  .nav-toggle { display: inline-flex; }
  .nav-tabs { display: none; order: 3; width: 100%; margin: 0; padding: .5rem 0; }
  body.nav-open .nav-tabs { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nav-tabs a { border-color: var(--line); text-align: center; }
  .hero { min-height: auto; padding-block: 3.5rem; }
  .file-grid, .tag-index, .footer-grid { grid-template-columns: 1fr; }
  .file-card { min-height: 220px; }
  .footer-grid nav { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) { .page-shell { width: min(100% - 1.25rem, 1160px); } h1 { font-size: clamp(2.2rem, 12vw, 3.4rem); } .hero-actions .button { width: 100%; } .timeline article { grid-template-columns: 3.2rem 1fr; } .timeline::before { left: 1.6rem; } .timeline time { width: 3.2rem; height: 3.2rem; } .footer-grid nav { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
