:root {
  --ink: #1a1a1a;
  --muted: #686868;
  --paper: #fff;
  --canvas: #f1f1f1;
  --line: #d1d1d1;
  --accent: #007acc;
}

* { box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
a { color: var(--accent); text-decoration: none; }
a:hover, a:focus { color: #005b99; text-decoration: underline; }
img { display: block; max-width: 100%; height: auto; }
.site { margin: 24px; }
.site-inner { max-width: 1320px; margin: 0 auto; background: var(--paper); }
.site-header, .site-content, .site-footer { padding-right: 5.5%; padding-left: 5.5%; }
.site-header { padding-top: 48px; padding-bottom: 32px; border-top: 4px solid var(--ink); }
.site-header-main { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-title { margin: 0; font-family: Arial, sans-serif; font-size: clamp(1.5rem, 4vw, 2.1rem); font-weight: 700; letter-spacing: -.02em; }
.site-title a { color: var(--ink); }
.site-title a:hover { text-decoration: none; }
.menu-toggle { display: none; padding: 8px 12px; border: 1px solid var(--line); background: #fff; font: 700 .8rem Arial, sans-serif; text-transform: uppercase; }
.primary-menu, .footer-menu { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
.primary-menu a, .footer-menu a { color: var(--ink); font: 700 .82rem Arial, sans-serif; text-transform: uppercase; }
.site-content { display: grid; grid-template-columns: minmax(0, 2fr) minmax(230px, 1fr); gap: 7%; padding-top: 36px; padding-bottom: 60px; border-top: 1px solid var(--line); }
.page-header { margin-bottom: 32px; border-top: 4px solid var(--ink); }
.page-title, .entry-title, .widget-title { font-family: Arial, sans-serif; line-height: 1.25; }
.page-title { margin: 0; padding-top: 18px; font-size: 1.25rem; }
.entry-title { margin: 0 0 8px; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.entry-title a { color: var(--ink); }
.entry-header, .entry-content, .entry-footer { max-width: 760px; margin-right: auto; margin-left: auto; }
.post { padding-bottom: 55px; margin-bottom: 55px; border-bottom: 1px solid var(--line); }
.entry-content p { margin: 0 0 1.5em; }
.entry-content img { margin: 24px auto; }
.entry-meta, .entry-footer { color: var(--muted); font: .78rem/1.6 Arial, sans-serif; }
.entry-footer > span { margin-right: 14px; }
.sidebar { border-top: 4px solid var(--ink); }
.widget { padding: 22px 0; border-bottom: 1px solid var(--line); }
.widget-title { margin: 0 0 14px; font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; }
.widget ul { margin: 0; padding-left: 18px; }
.widget li { margin-bottom: 7px; }
.widget img { margin: 0 auto; }
.site-footer { padding-top: 30px; padding-bottom: 30px; border-top: 1px solid var(--line); }
.site-info { display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--muted); font: .78rem Arial, sans-serif; }
.site-description { margin: 5px 0 0; color: var(--muted); font-size: .9rem; }
.home-content { padding: 0 5.5% 64px; }
.home-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); align-items: center; gap: clamp(36px, 7vw, 90px); padding: clamp(55px, 9vw, 110px) 0; border-top: 1px solid var(--line); }
.home-hero h1 { max-width: 720px; margin: 0 0 24px; font: 700 clamp(2.4rem, 6vw, 5.2rem)/.98 Arial, sans-serif; letter-spacing: -.05em; }
.home-hero__copy > p:not(.home-kicker) { max-width: 650px; font-size: 1.08rem; }
.home-hero__media { position: relative; margin: 0; }
.home-hero__media::before { content: ""; position: absolute; inset: -14px 14px 14px -14px; border: 2px solid var(--ink); z-index: 0; }
.home-hero__media img { position: relative; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #ddd; z-index: 1; }
.home-kicker { margin: 0 0 15px; color: var(--muted); font: 700 .75rem Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.home-button { display: inline-block; margin-top: 14px; padding: 14px 20px; color: #fff; background: var(--ink); font: 700 .8rem Arial, sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.home-button:hover, .home-button:focus { color: #fff; background: var(--accent); text-decoration: none; }
.home-section { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 8vw, 120px); padding: clamp(52px, 8vw, 90px) 0; border-top: 4px solid var(--ink); }
.home-section h2, .home-feature h2 { margin: 0; font: 700 clamp(1.8rem, 4vw, 3rem)/1.08 Arial, sans-serif; letter-spacing: -.035em; }
.home-section__copy p:first-child { margin-top: 0; }
.home-feature { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 7vw, 90px); padding: clamp(45px, 7vw, 80px); background: #f4f4f4; }
.home-feature img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.home-text-link { font: 700 .85rem Arial, sans-serif; text-transform: uppercase; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; padding: 12px; clip: auto; background: #fff; }

@media (max-width: 900px) {
  .site { margin: 0; }
  .site-header-main { align-items: flex-start; }
  .menu-toggle { display: block; cursor: pointer; }
  .site-header-menu { display: none; width: 100%; padding-top: 18px; }
  .site-header-menu.is-open { display: block; }
  .site-header-main { flex-wrap: wrap; }
  .primary-menu { display: block; }
  .primary-menu li { padding: 9px 0; border-top: 1px solid var(--line); }
  .site-content { grid-template-columns: 1fr; }
  .sidebar { margin-top: 10px; }
  .home-hero, .home-section, .home-feature { grid-template-columns: 1fr; }
  .home-hero__media { max-width: 680px; }
}

@media (max-width: 520px) {
  .site-header, .site-content, .site-footer { padding-right: 22px; padding-left: 22px; }
  .site-header { padding-top: 28px; }
}

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

/* Editorial homepage and internal-page system */
body.home { background: #171b1d; }
.home .site { margin: 0; }
.home .site-inner { max-width: 1500px; background: #ece8de; }
.home .site-header { color: #f6f1e7; background: #121719; border-top-color: #c94b31; }
.home .site-title a, .home .primary-menu a { color: #f6f1e7; }
.home .site-description { color: #aeb5b4; }
.home-content { padding: 0; }
.home-hero { min-height: 720px; padding: clamp(60px, 9vw, 130px) 6.5%; color: #f6f1e7; background: radial-gradient(circle at 75% 35%, #303b3d 0, #192123 34%, #111719 70%); border: 0; }
.home-hero h1 { color: #fffaf0; font-size: clamp(3.2rem, 7vw, 7rem); text-transform: uppercase; }
.home-hero__copy > p:not(.home-kicker) { color: #c9cfcc; font: 1.08rem/1.8 Arial, sans-serif; }
.home .home-kicker { color: #d5674e; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 30px; }
.home-button { padding: 16px 24px; color: #fff; background: #c94b31; }
.home-button:hover, .home-button:focus { background: #e06449; }
.hero-secondary { color: #f6f1e7; font: 700 .8rem Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid #687172; }
.hero-specs { display: flex; flex-wrap: wrap; gap: 30px; margin: 55px 0 0; }
.hero-specs div { min-width: 105px; padding-left: 12px; border-left: 2px solid #c94b31; }
.hero-specs dt { color: #818b8b; font: .67rem Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.hero-specs dd { margin: 3px 0 0; color: #f6f1e7; font: 700 .92rem Arial, sans-serif; }
.home-hero__media::before { inset: 18px -18px -18px 18px; border-color: #566162; }
.home-hero__media img { min-height: 370px; filter: saturate(.75) contrast(1.08); }
.home-hero__media figcaption, .image-number { position: relative; z-index: 2; color: #929c9b; font: .68rem Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.image-number { display: block; margin-bottom: 12px; color: #d5674e; }
.home-hero__media figcaption { margin-top: 12px; }
.home-marquee { display: flex; justify-content: space-around; gap: 25px; padding: 18px 5%; overflow: hidden; color: #f7f2e8; background: #c94b31; font: 700 .7rem Arial, sans-serif; letter-spacing: .14em; white-space: nowrap; }
.home-section { margin: 0 6.5%; border-top-color: #202628; }
.home-section h2, .home-feature h2, .story-grid h2 { color: #192022; }
.home-feature { margin: 0 6.5%; color: #d8ddda; background: #1a2224; }
.home-feature h2 { color: #fffaf0; }
.home-feature .home-kicker { color: #d5674e; }
.home-feature img { filter: saturate(.65) contrast(1.1); }
.story-grid { padding: clamp(70px, 9vw, 120px) 6.5%; }
.story-grid > header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 35px; border-bottom: 3px solid #1c2325; }
.story-grid h2 { margin: 0 0 22px; font: 700 clamp(2.2rem, 5vw, 4.5rem)/1 Arial, sans-serif; letter-spacing: -.045em; }
.story-cards { display: grid; grid-template-columns: 1.35fr 1fr .8fr; gap: 22px; }
.story-card { display: flex; flex-direction: column; min-height: 410px; padding: 18px; color: #1b2224; background: #f8f5ed; border-bottom: 4px solid #c94b31; transition: transform .25s ease, box-shadow .25s ease; }
.story-card:hover { color: #1b2224; text-decoration: none; transform: translateY(-5px); box-shadow: 0 18px 34px rgba(20,25,26,.16); }
.story-card img { width: 100%; height: 230px; margin-bottom: 20px; object-fit: cover; filter: saturate(.7); }
.story-card span, .story-card small { color: #a13d28; font: 700 .68rem Arial, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.story-card strong { margin: 10px 0 22px; font: 700 clamp(1.25rem, 2vw, 1.8rem)/1.18 Arial, sans-serif; }
.story-card small { margin-top: auto; color: #4f5859; }
.story-card--text { justify-content: flex-end; color: #f7f2e8; background: #263033; }
.story-card--text:hover { color: #fff; }
.story-card--text p { color: #bfc6c4; }
.home .site-footer { color: #aeb5b4; background: #121719; border: 0; }
.home .site-footer a { color: #f6f1e7; }

.inner-page { padding: 0 5.5% 70px; }
.inner-hero { max-width: 1050px; padding: clamp(60px, 9vw, 110px) 0 55px; border-top: 1px solid var(--line); }
.inner-hero h1 { max-width: 950px; margin: 0 0 22px; font: 700 clamp(2.5rem, 6vw, 5.2rem)/1 Arial, sans-serif; letter-spacing: -.05em; }
.inner-hero > p:last-child { max-width: 760px; color: var(--muted); font-size: 1.12rem; }
.page-visual { max-width: 950px; margin: 0 0 55px; }
.page-visual img { width: 100%; max-height: 560px; object-fit: cover; }
.page-prose { max-width: 760px; font-size: 1.05rem; }
.page-prose h2 { margin: 2em 0 .6em; font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.15 Arial, sans-serif; }
.article-list { display: grid; gap: 1px; margin-top: 30px; background: var(--line); }
.article-list a { display: flex; flex-direction: column; padding: 22px; color: var(--ink); background: #fff; }
.article-list a:hover { background: #f4f1e9; text-decoration: none; }
.article-list strong { font: 700 1.05rem Arial, sans-serif; }
.article-list span { color: var(--muted); font-size: .9rem; }
.page-return { display: flex; justify-content: space-between; gap: 20px; max-width: 950px; margin-top: 65px; padding-top: 22px; border-top: 1px solid var(--line); font: 700 .8rem Arial, sans-serif; text-transform: uppercase; }

@media (max-width: 900px) {
  .home-hero { min-height: 0; }
  .story-cards { grid-template-columns: 1fr 1fr; }
  .story-card--text { grid-column: 1 / -1; min-height: 300px; }
}
@media (max-width: 580px) {
  .home-hero { padding-top: 50px; }
  .home-hero h1 { font-size: clamp(2.8rem, 15vw, 4.5rem); }
  .home-marquee { justify-content: flex-start; }
  .story-cards { grid-template-columns: 1fr; }
  .story-card--text { grid-column: auto; }
  .home-feature, .home-section { margin-right: 22px; margin-left: 22px; }
  .page-return { flex-direction: column; }
}
