
:root {
  --ink: #111111;
  --paper: #ffffff;
  --muted: #696969;
  --line: #d9d9d7;
  --soft: #f4f2ed;
  --accent: #e44d39;
  --plum: #321c45;
  --teal: #087f86;
  --max: 1280px;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: "Trebuchet MS", "Gill Sans", "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.55; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
img { max-width:100%; height:auto; display:block; }
button,input { font:inherit; }
.page-shell { width:min(var(--max), calc(100% - 48px)); margin-inline:auto; }
.site-header { background:#fff; border-bottom:1px solid var(--line); }
.utility-bar { min-height:48px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; }
.utility-label { justify-self:center; color:#555; }
.utility-link { justify-self:end; font-weight:700; }
.menu-button { width:42px; height:42px; display:grid; align-content:center; gap:5px; border:0; background:transparent; cursor:pointer; padding:10px; }
.menu-button span { width:20px; height:1.5px; background:#111; display:block; }
.masthead { padding:22px 0 14px; text-align:center; }
.brand { display:inline-block; font-family:var(--serif); font-size:clamp(2.3rem,6vw,4.8rem); font-weight:700; line-height:.9; letter-spacing:-.055em; }
.brand-note { margin:10px 0 0; font-size:.8rem; letter-spacing:.13em; text-transform:uppercase; color:#676767; }
.nav-wrap { border-top:1px solid var(--line); }
.main-nav { display:flex; justify-content:center; gap:0; overflow:auto; scrollbar-width:none; }
.main-nav a { padding:13px 17px; white-space:nowrap; font-size:.93rem; position:relative; }
.main-nav a + a:before { content:""; width:1px; height:14px; background:var(--line); position:absolute; left:0; top:50%; transform:translateY(-50%); }
.main-nav .nav-home { font-weight:800; }
.hero { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.7fr) minmax(220px,.65fr); gap:18px; padding:26px 0 24px; border-bottom:1px solid var(--line); }
.hero-copy { padding:4px 22px 0 0; }
.kicker { display:flex; align-items:center; gap:7px; font-size:.73rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; }
.kicker:before { content:"T"; width:22px; height:22px; border:1px solid #111; display:grid; place-items:center; font-family:var(--serif); font-size:.9rem; }
.hero h1 { font-family:var(--serif); font-size:clamp(2rem,3.1vw,3.35rem); line-height:.98; letter-spacing:-.035em; margin:0 0 17px; }
.hero .dek { font-family:var(--serif); font-size:1.15rem; line-height:1.42; color:#393939; margin:0 0 18px; }
.byline { font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.hero-media { min-height:460px; overflow:hidden; background:#181818; }
.hero-media img { width:100%; height:100%; object-fit:cover; min-height:460px; }
.hero-side { border-left:1px solid var(--line); padding-left:16px; display:flex; flex-direction:column; gap:18px; }
.side-card { border-bottom:1px solid var(--line); padding-bottom:18px; }
.side-card:last-child { border-bottom:0; }
.side-card .label { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--teal); }
.side-card h2 { font-family:var(--serif); font-size:1.18rem; line-height:1.07; margin:5px 0 8px; }
.side-card p { margin:0; font-size:.86rem; color:#555; }
.section { padding:25px 0 32px; border-bottom:2px solid #111; }
.section-head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:18px; }
.section-head h2 { font-family:var(--serif); font-size:1.6rem; margin:0; }
.section-head a { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.news-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.news-card { display:grid; grid-template-columns:108px 1fr; gap:15px; padding:0 20px; border-right:1px solid var(--line); min-width:0; }
.news-card:first-child { padding-left:0; }
.news-card:last-child { border-right:0; padding-right:0; }
.news-card img { width:108px; height:86px; object-fit:cover; }
.news-card .meta { font-size:.68rem; color:var(--accent); font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.news-card h3 { font-family:var(--serif); font-size:1.08rem; line-height:1.13; margin:4px 0 0; }
.feature-grid { display:grid; grid-template-columns:1.35fr .82fr .82fr; gap:22px; }
.feature-card { min-width:0; }
.feature-card img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.feature-card.large img { aspect-ratio:16/9; }
.feature-card .meta { margin-top:10px; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--teal); }
.feature-card h3 { font-family:var(--serif); font-size:1.35rem; line-height:1.08; margin:5px 0 8px; }
.feature-card.large h3 { font-size:2rem; }
.feature-card p { color:#555; margin:0; font-size:.92rem; }
.book-row { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
.book-card { border-top:1px solid #111; padding-top:13px; }
.book-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.book-card h3 { font-family:var(--serif); font-size:1.15rem; line-height:1.08; margin:10px 0 5px; }
.book-card p { margin:0; font-size:.78rem; color:#666; }
.newsletter { margin:30px auto; background:var(--soft); display:grid; grid-template-columns:1.6fr 1fr; gap:30px; padding:28px; align-items:center; }
.newsletter h2 { font-family:var(--serif); margin:0 0 6px; font-size:1.8rem; }
.newsletter p { margin:0; color:#555; }
.newsletter form { display:flex; }
.newsletter input { flex:1; min-width:0; border:1px solid #bfbdb8; background:#fff; padding:12px 13px; }
.newsletter button { border:0; background:var(--ink); color:#fff; padding:12px 18px; font-weight:700; cursor:pointer; }
.article-shell { width:min(1120px, calc(100% - 48px)); margin:34px auto 60px; display:grid; grid-template-columns:minmax(0,760px) minmax(220px,1fr); gap:56px; }
.article-main { min-width:0; }
.article-label { color:var(--accent); font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.article-main h1 { font-family:var(--serif); font-size:clamp(2.4rem,5.5vw,4.7rem); line-height:.97; letter-spacing:-.045em; margin:8px 0 15px; }
.article-standfirst { font-family:var(--serif); font-size:1.25rem; color:#484848; line-height:1.45; margin:0 0 22px; }
.article-hero { margin:25px 0 28px; width:100%; max-height:560px; object-fit:cover; }
.prose { font-family:var(--serif); font-size:1.08rem; }
.prose h2 { font-size:1.72rem; line-height:1.1; margin:35px 0 10px; }
.prose h3 { font-size:1.3rem; margin:28px 0 8px; }
.prose p { margin:0 0 1.1em; }
.prose ul { padding-left:1.25em; }
.article-aside { border-left:1px solid var(--line); padding-left:22px; align-self:start; position:sticky; top:20px; }
.article-aside h2 { font-family:var(--serif); font-size:1.2rem; margin:0 0 12px; }
.aside-link { display:block; padding:13px 0; border-top:1px solid var(--line); font-family:var(--serif); line-height:1.15; }
.listing-shell { width:min(var(--max), calc(100% - 48px)); margin:34px auto 60px; }
.page-title { display:grid; grid-template-columns:1.2fr .8fr; gap:30px; align-items:end; border-bottom:2px solid #111; padding-bottom:22px; margin-bottom:24px; }
.page-title h1 { font-family:var(--serif); font-size:clamp(2.7rem,7vw,5.4rem); line-height:.88; letter-spacing:-.05em; margin:0; }
.page-title p { margin:0; font-family:var(--serif); font-size:1.15rem; color:#555; }
.story-list { display:grid; grid-template-columns:repeat(3,1fr); gap:28px 22px; }
.story-item { border-top:1px solid #111; padding-top:12px; }
.story-item img { width:100%; aspect-ratio:16/10; object-fit:cover; margin-bottom:12px; }
.story-item .meta { font-size:.7rem; color:var(--teal); font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.story-item h2 { font-family:var(--serif); font-size:1.4rem; line-height:1.08; margin:5px 0 7px; }
.story-item p { margin:0; color:#555; font-size:.9rem; }
.author-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0 38px; }
.author-entry { padding:20px 0; border-top:1px solid var(--line); }
.author-entry h2 { font-family:var(--serif); font-size:1.5rem; margin:0 0 5px; }
.author-entry p { margin:0; color:#4d4d4d; }
.timeline { display:grid; gap:0; }
.timeline article { display:grid; grid-template-columns:110px 1fr; gap:22px; padding:19px 0; border-top:1px solid var(--line); }
.timeline time { font-size:.75rem; font-weight:800; color:var(--accent); letter-spacing:.05em; }
.timeline h2 { font-family:var(--serif); font-size:1.55rem; margin:0 0 4px; line-height:1.05; }
.timeline p { margin:0; color:#555; }
.generic-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 38px; }
.generic-block { border-top:1px solid var(--line); padding-top:16px; }
.generic-block h2,.generic-block h3 { font-family:var(--serif); margin:0 0 8px; line-height:1.08; }
.generic-block p { margin:0; color:#444; }
.legacy-prose { max-width:820px; font-family:var(--serif); font-size:1.05rem; }
.legacy-prose h2,.legacy-prose h3 { margin-top:28px; }
.legacy-prose p { margin-bottom:1em; }
.site-footer { background:#111; color:#f7f6f1; margin-top:54px; padding-top:38px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; }
.footer-brand { font-family:var(--serif); font-size:2rem; font-weight:700; }
.footer-grid p { color:#bbb; max-width:420px; }
.footer-grid h2 { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:#aaa; }
.footer-grid a { display:block; margin:7px 0; }
.footer-base { border-top:1px solid #383838; margin-top:28px; padding:16px 0 20px; display:flex; justify-content:space-between; gap:20px; color:#999; font-size:.75rem; }
.mobile-open .main-nav { display:flex; }
@media (max-width:1000px){
  .hero { grid-template-columns:1fr 1.4fr; }
  .hero-side { grid-column:1/-1; border-left:0; border-top:1px solid var(--line); padding:18px 0 0; flex-direction:row; }
  .side-card { flex:1; border-bottom:0; border-right:1px solid var(--line); padding:0 18px; }
  .side-card:first-child { padding-left:0; }
  .side-card:last-child { border-right:0; }
  .feature-grid { grid-template-columns:1.3fr 1fr; }
  .feature-card:last-child { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:center; }
  .book-row { grid-template-columns:repeat(3,1fr); }
  .article-shell { grid-template-columns:1fr; }
  .article-aside { position:static; border-left:0; border-top:1px solid var(--line); padding:20px 0 0; }
}
@media (max-width:760px){
  .page-shell,.listing-shell,.article-shell { width:min(100% - 28px, var(--max)); }
  .utility-bar { grid-template-columns:auto 1fr auto; }
  .utility-label { text-align:center; font-size:.64rem; }
  .brand { font-size:clamp(2.5rem,13vw,4rem); }
  .brand-note { font-size:.68rem; }
  .nav-wrap { position:relative; }
  .main-nav { display:none; flex-direction:column; align-items:stretch; position:absolute; z-index:30; left:0; right:0; top:0; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 16px 32px rgba(0,0,0,.12); }
  .mobile-open .main-nav { display:flex; }
  .main-nav a { border-top:1px solid var(--line); padding:13px 14px; }
  .main-nav a + a:before { display:none; }
  .hero { grid-template-columns:1fr; gap:18px; }
  .hero-copy { padding-right:0; }
  .hero-media,.hero-media img { min-height:340px; }
  .hero-side { grid-column:auto; flex-direction:column; }
  .side-card { border-right:0; border-bottom:1px solid var(--line); padding:0 0 15px; }
  .news-strip { grid-template-columns:1fr; }
  .news-card { padding:14px 0; border-right:0; border-top:1px solid var(--line); }
  .news-card:first-child { border-top:0; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-card:last-child { grid-column:auto; display:block; }
  .book-row { grid-template-columns:repeat(2,1fr); }
  .newsletter { grid-template-columns:1fr; padding:20px; }
  .newsletter form { flex-direction:column; gap:8px; }
  .page-title { grid-template-columns:1fr; }
  .story-list,.author-list,.generic-grid { grid-template-columns:1fr; }
  .timeline article { grid-template-columns:1fr; gap:4px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > div:first-child { grid-column:1/-1; }
}
@media (max-width:440px){
  .utility-label { display:none; }
  .utility-bar { grid-template-columns:1fr auto; }
  .hero h1 { font-size:2.15rem; }
  .book-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > div:first-child { grid-column:auto; }
  .footer-base { flex-direction:column; }
}
