:root {
  --paper: #f3ecdc;
  --paper-pale: #faf6ed;
  --ink: #27231f;
  --ink-soft: #665d52;
  --oxblood: #6b2737;
  --oxblood-dark: #3d1721;
  --brass: #a67c3d;
  --brick: #9b4b37;
  --rule: #cbbd9f;
  --night: #1f2528;
  --max: 1180px;
  --measure: 46rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background:
    linear-gradient(90deg, rgba(107,39,55,.025) 1px, transparent 1px) 0 0 / 38px 38px,
    var(--paper);
  color: var(--ink);
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.72;
}
img { display: block; width: 100%; max-width: 100%; height: auto; }
a { color: var(--oxblood); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--brick); }
.skip-link { position: absolute; left: -9999px; top: .75rem; z-index: 100; }
.skip-link:focus { left: .75rem; background: #fff; color: #111; padding: .65rem 1rem; outline: 3px solid var(--brass); }

.independence-strip {
  background: var(--night);
  color: #f5ecda;
  border-bottom: 1px solid #4c4f4e;
}
.independence-strip p {
  max-width: var(--max);
  margin: 0 auto;
  padding: .62rem 1.5rem;
  font-size: .78rem;
  line-height: 1.45;
  letter-spacing: .025em;
}
.independence-strip strong { color: #e2bd78; }

.masthead { background: var(--paper-pale); border-bottom: 5px solid var(--oxblood); }
.masthead__inner { max-width: var(--max); margin: 0 auto; padding: 1.4rem 1.5rem 0; min-width: 0; }
.identity { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 1rem; align-items: center; margin-bottom: 1.15rem; min-width: 0; }
.identity__mark {
  width: 54px;
  height: 54px;
  border: 1px solid var(--brass);
  position: relative;
  background: var(--oxblood);
}
.identity__mark::before, .identity__mark::after { content: ""; position: absolute; background: #e4c688; }
.identity__mark::before { width: 28px; height: 1px; left: 12px; top: 19px; box-shadow: 0 14px 0 #e4c688; }
.identity__mark::after { width: 1px; height: 28px; top: 12px; left: 26px; }
.identity a { text-decoration: none; min-width: 0; }
.identity__name { display: block; color: var(--oxblood-dark); font-family: "Fraunces", Georgia, serif; font-size: clamp(1.65rem, 4vw, 2.45rem); font-weight: 650; line-height: 1; letter-spacing: -.025em; }
.identity__tag { display: block; color: var(--ink-soft); margin-top: .25rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }

.site-nav { min-width: 0; overflow: visible; }
.site-nav ul { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0; min-width: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.site-nav li { min-width: 0; flex: 0 1 auto; }
.site-nav a {
  display: block;
  padding: .58rem .78rem .62rem;
  border-right: 1px solid var(--rule);
  color: var(--ink-soft);
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
}
.site-nav a:hover, .site-nav a:focus, .site-nav a[aria-current="page"] { background: var(--oxblood); color: #fff; }

.page-shell { max-width: var(--max); margin: 0 auto; padding: 0 1.5rem 4rem; min-width: 0; }
.crumbs { margin: 0; padding: 1rem 0 .75rem; color: var(--ink-soft); font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; }
.crumbs span { color: var(--brass); padding: 0 .45rem; }
.hero { margin: 0 0 2.2rem; position: relative; border-bottom: 8px solid var(--oxblood); background: #d9ccb2; }
.hero img { max-height: 620px; object-fit: cover; }
.hero figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  max-width: 32rem;
  margin: 0;
  padding: .55rem .8rem;
  background: rgba(31,37,40,.88);
  color: #f5ecda;
  font-size: .72rem;
  line-height: 1.4;
}

.article-grid { display: grid; grid-template-columns: minmax(0, var(--measure)) minmax(13rem, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; min-width: 0; }
.article { min-width: 0; }
.article h1, .article h2, .article h3 { font-family: "Fraunces", Georgia, serif; color: var(--oxblood-dark); text-wrap: balance; }
.article h1 { margin: 0 0 1.45rem; font-size: clamp(2.25rem, 7vw, 4.7rem); font-weight: 600; line-height: .98; letter-spacing: -.045em; }
.article h1::after { content: ""; display: block; width: 5.5rem; height: 5px; background: var(--brass); margin-top: 1.15rem; }
.article h2 { margin: 3rem 0 .85rem; font-size: clamp(1.45rem, 3vw, 2.15rem); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; }
.article h3 { margin: 2rem 0 .6rem; font-size: 1.25rem; }
.article p { margin: 0 0 1.35rem; }
.article > p:first-of-type { font-size: 1.18rem; line-height: 1.6; color: #3e3832; }
.article > p:first-of-type::first-letter { float: left; font-family: "Fraunces", Georgia, serif; color: var(--oxblood); font-size: 4.9rem; line-height: .78; padding: .2rem .55rem 0 0; }
.article ul { margin: 0 0 1.5rem; padding-left: 1.25rem; }
.article li { margin-bottom: .65rem; padding-left: .25rem; }
.article li::marker { color: var(--brass); }
.article strong { color: var(--oxblood-dark); }
.article a { font-weight: 600; }
.notice { margin: 2rem 0; padding: 1.25rem 1.35rem; background: #e8ddc8; border-left: 5px solid var(--brass); }
.notice--strong { border-left-color: var(--oxblood); background: #eee0dc; }
.notice p { margin: 0; }

.folio { min-width: 0; border-top: 1px solid var(--brass); padding-top: 1rem; position: sticky; top: 1.2rem; }
.folio__kicker { margin: 0 0 .35rem; color: var(--brass); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.folio h2 { margin: 0 0 .8rem; font-family: "Fraunces", Georgia, serif; color: var(--oxblood-dark); font-size: 1.35rem; line-height: 1.15; }
.folio p { margin: 0 0 1rem; color: var(--ink-soft); font-size: .88rem; line-height: 1.55; }
.folio ol { margin: 0; padding: 0; list-style: none; counter-reset: folio; }
.folio li { counter-increment: folio; border-top: 1px solid var(--rule); }
.folio li::before { content: counter(folio, decimal-leading-zero); display: inline-block; width: 2rem; color: var(--brass); font-family: "Fraunces", Georgia, serif; font-size: .75rem; }
.folio a { display: inline-block; max-width: calc(100% - 2.3rem); padding: .65rem 0; color: var(--ink); font-size: .84rem; line-height: 1.3; text-decoration: none; vertical-align: middle; }
.folio a:hover { color: var(--oxblood); text-decoration: underline; }

.reading-progress { position: fixed; top: 0; left: 0; z-index: 120; width: 0; height: 3px; background: var(--brass); pointer-events: none; }
.site-footer { background: var(--night); color: #ded6c7; border-top: 8px solid var(--oxblood); }
.site-footer__inner { max-width: var(--max); margin: 0 auto; padding: 2.5rem 1.5rem 3rem; min-width: 0; }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr); gap: 2rem 4rem; }
.footer-brand { font-family: "Fraunces", Georgia, serif; color: #fff; font-size: 1.55rem; margin: 0; }
.footer-tag { color: #a9a395; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; margin: .25rem 0 0; }
.footer-notice { margin: 0; padding-left: 1.25rem; border-left: 2px solid var(--brass); color: #cfc6b5; font-size: .84rem; line-height: 1.65; }
.footer-nav { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: 1.8rem 0 0; padding: 1.4rem 0 0; border-top: 1px solid #474b4b; list-style: none; min-width: 0; }
.footer-nav li { min-width: 0; }
.footer-nav a { color: #e8dfcf; font-size: .78rem; text-decoration: none; }
.footer-nav a:hover { color: #fff; text-decoration: underline; }
.copyright { color: #918d84; font-size: .72rem; margin: 1rem 0 0; }

.error-page { max-width: 45rem; padding: 5rem 0; }
.error-code { color: var(--brass); font-family: "Fraunces", Georgia, serif; font-size: clamp(5rem, 22vw, 12rem); line-height: .75; margin: 0 0 2rem; }
.error-page h1 { font-size: clamp(2.2rem, 6vw, 4rem); }
.route-list { columns: 2; column-gap: 2rem; }

@media (max-width: 860px) {
  .article-grid { grid-template-columns: minmax(0, 1fr); }
  .folio { position: static; border-top-width: 3px; }
  .footer-grid { grid-template-columns: 1fr; }
  .hero figcaption { position: static; max-width: none; background: var(--night); }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .independence-strip p, .masthead__inner, .page-shell, .site-footer__inner { padding-left: 1rem; padding-right: 1rem; }
  .identity { grid-template-columns: 42px minmax(0, 1fr); gap: .75rem; }
  .identity__mark { width: 42px; height: 42px; }
  .identity__mark::before { width: 22px; left: 9px; top: 14px; box-shadow: 0 12px 0 #e4c688; }
  .identity__mark::after { height: 22px; top: 9px; left: 20px; }
  .identity__tag { font-size: .66rem; line-height: 1.4; }
  .site-nav a { padding: .55rem .58rem; font-size: .76rem; }
  .article h1 { font-size: clamp(2.15rem, 14vw, 3.2rem); }
  .route-list { columns: 1; }
}

@media print {
  .independence-strip, .site-nav, .folio, .reading-progress, .site-footer { display: none; }
  body { background: #fff; color: #000; font-size: 12pt; }
  .page-shell { max-width: none; padding: 0; }
  .article-grid { display: block; }
  .article { max-width: none; }
  a { color: #000; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

