
:root {
  --paper: #f7f2eb;
  --ink: #2a241e;
  --terracotta: #c4654a;
  --terracotta-soft: #e8a87c;
  --sage: #87a878;
  --sage-deep: #4a6741;
  --muted: #ebe3d7;
  --muted-fg: #7a6e5e;
  --border: #d9cfbe;
  --background: var(--paper);
  --foreground: var(--ink);
  --primary: var(--terracotta);
  --accent: var(--sage-deep);
  --secondary: #efe7d9;
  --font-serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;
  --font-sans: "Work Sans", -apple-system, Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
body { background: var(--background); color: var(--foreground); line-height: 1.5; font-size: 16px; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4,h5 { font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.01em; line-height: 1.05; }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }

/* Reusable */
.eyebrow { font-family: var(--font-sans); font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--muted-fg); }
.rule-link { display: inline-flex; align-items: center; gap: .5rem; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; padding-bottom: 2px; border-bottom: 1px solid currentColor; transition: color .2s; }
.rule-link:hover { color: var(--primary); }
.container { max-width: 1400px; margin: 0 auto; padding: 0 20px; }
.container-narrow { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.container-prose { max-width: 720px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 768px) { .container, .container-narrow { padding: 0 40px; } }
section { border-bottom: 1px solid var(--border); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; padding: 20px; border-bottom: 1px solid var(--border); background: rgba(247,242,235,.88); backdrop-filter: blur(10px); }
.site-header.overlay { position: absolute; inset: 0 0 auto 0; background: transparent; border-bottom: 0; color: #fff; backdrop-filter: none; }
@media (min-width: 768px) { .site-header { padding: 24px 40px; } }
.brand { font-family: var(--font-serif); font-size: 1.25rem; letter-spacing: -0.01em; }
@media (min-width:768px){ .brand { font-size: 1.5rem; } }
.menu-toggle { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; }

/* Menu overlay */
.menu-overlay { position: fixed; inset: 0; z-index: 50; background: var(--background); color: var(--foreground); opacity: 0; pointer-events: none; transition: opacity .3s; overflow-y: auto; }
.menu-overlay.is-open { opacity: 1; pointer-events: auto; }
.menu-overlay-inner { display: flex; flex-direction: column; min-height: 100%; padding: 20px 24px 40px; }
@media (min-width:768px){ .menu-overlay-inner { padding: 24px 40px 40px; } }
.menu-bar { display: flex; align-items: center; justify-content: space-between; }
.menu-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin: 64px auto 0; max-width: 1100px; width: 100%; flex: 1; }
@media (min-width:768px){ .menu-columns { margin-top: 128px; gap: 96px; } }
.menu-col { display: flex; flex-direction: column; gap: 16px; }
.menu-col.right { text-align: right; }
.menu-col .eyebrow { margin-bottom: 8px; }
.menu-col a { font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.2; transition: color .2s; }
@media (min-width:768px){ .menu-col a { font-size: 2.25rem; } }
.menu-col a:hover { color: var(--primary); }

/* Hero */
.hero { position: relative; height: 100svh; min-height: 600px; overflow: hidden; background: var(--ink); color: #fff; }
.hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-veil { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.2), transparent 40%, rgba(0,0,0,.45)); }
.hero-content { position: absolute; inset: auto 0 0 0; z-index: 10; padding: 0 24px 64px; text-align: center; }
@media (min-width:768px){ .hero-content { padding-bottom: 96px; } }
.hero h1 { margin-top: 24px; max-width: 880px; margin-left: auto; margin-right: auto; font-family: var(--font-serif); font-size: 2.25rem; line-height: 1.05; }
@media (min-width:768px){ .hero h1 { font-size: 5rem; margin-top: 32px; } }
.hero .eyebrow { color: rgba(255,255,255,.85); }
.hero p { margin: 24px auto 0; max-width: 28rem; font-size: .95rem; line-height: 1.6; color: rgba(255,255,255,.85); }

/* Manifesto / Centered editorial blocks */
.editorial-center { padding: 80px 0; text-align: center; }
@media (min-width:768px){ .editorial-center { padding: 128px 0; } }
.editorial-center h2 { font-family: var(--font-serif); font-size: 2rem; line-height: 1.1; margin: 32px auto 0; max-width: 56rem; }
@media (min-width:768px){ .editorial-center h2 { font-size: 3.25rem; margin-top: 40px; } }
.editorial-center .lede { margin: 40px auto 0; max-width: 42rem; font-size: 1rem; line-height: 1.7; color: var(--muted-fg); }
@media (min-width:768px){ .editorial-center .lede { font-size: 1.125rem; } }

/* Featured Section */
.featured { padding: 64px 0; }
@media (min-width:768px){ .featured { padding: 96px 0; } }
.featured-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
@media (min-width:768px){ .featured-head { margin-bottom: 56px; } }
.featured-head h2 { font-family: var(--font-serif); font-size: 2.25rem; line-height: 1; margin-top: 12px; }
@media (min-width:768px){ .featured-head h2 { font-size: 3.5rem; } }
.story-grid { display: grid; gap: 40px 24px; grid-template-columns: 1fr; }
@media (min-width:640px){ .story-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width:1024px){ .story-grid { grid-template-columns: repeat(4, 1fr); } }
.story-grid.cols-3 { }
@media (min-width:1024px){ .story-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }

/* Story card */
.story-card { display: block; }
.story-card .thumb { aspect-ratio: 4/5; background: var(--muted); overflow: hidden; }
.story-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.story-card:hover .thumb img { transform: scale(1.03); }
.story-card .meta { margin-top: 20px; font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-fg); }
.story-card h3 { margin-top: 8px; font-family: var(--font-serif); font-size: 1.25rem; line-height: 1.2; transition: color .2s; }
@media (min-width:768px){ .story-card h3 { font-size: 1.5rem; } }
.story-card:hover h3 { color: var(--primary); }
.story-card .dek { margin-top: 8px; font-size: .875rem; line-height: 1.6; color: var(--muted-fg); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.story-card .scores { margin-top: 16px; display: flex; gap: 24px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-fg); }
.story-card .scores .num { font-family: var(--font-serif); font-size: 1rem; text-transform: none; letter-spacing: normal; }
.story-card .scores .d .num { color: var(--primary); }
.story-card .scores .f .num { color: var(--accent); }

/* Dual score explainer */
.method { background: var(--secondary); padding: 80px 0; text-align: center; }
@media (min-width:768px){ .method { padding: 112px 0; } }
.method-grid { display: grid; gap: 40px; text-align: left; margin-top: 56px; }
@media (min-width:768px){ .method-grid { grid-template-columns: 1fr 1fr; gap: 64px; } }
.method-card .big-letter { font-family: var(--font-serif); font-size: 4.5rem; line-height: 1; }
@media (min-width:768px){ .method-card .big-letter { font-size: 6rem; } }
.method-card.design .big-letter { color: var(--primary); }
.method-card.family .big-letter { color: var(--accent); }
.method-card h3 { margin-top: 20px; font-family: var(--font-serif); font-size: 1.5rem; }
@media (min-width:768px){ .method-card h3 { font-size: 1.875rem; } }
.method-card ul { list-style: none; margin-top: 20px; }
.method-card li { padding: 8px 0; border-bottom: 1px solid var(--border); font-size: .9rem; color: var(--muted-fg); }
.method blockquote { margin: 64px auto 0; max-width: 42rem; font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; line-height: 1.4; }
@media (min-width:768px){ .method blockquote { font-size: 1.5rem; } }

/* About strip */
.about-strip { display: grid; gap: 40px; padding: 80px 0; }
@media (min-width:768px){ .about-strip { grid-template-columns: 1fr 1fr; gap: 64px; padding: 112px 0; } }
.about-strip img { aspect-ratio: 4/5; object-fit: cover; }
.about-strip h2 { font-family: var(--font-serif); font-size: 2rem; line-height: 1.1; margin-top: 16px; }
@media (min-width:768px){ .about-strip h2 { font-size: 3rem; } }
.about-strip p { margin-top: 24px; font-size: 1rem; line-height: 1.7; color: var(--muted-fg); }

/* Newsletter */
.newsletter { background: var(--secondary); padding: 80px 0; text-align: center; }
@media (min-width:768px){ .newsletter { padding: 112px 0; } }
.newsletter h2 { font-family: var(--font-serif); font-size: 2rem; line-height: 1.12; margin: 24px auto 0; }
@media (min-width:768px){ .newsletter h2 { font-size: 3rem; } }
.newsletter p { margin: 24px auto 0; max-width: 36rem; color: var(--muted-fg); }
.newsletter form { margin: 40px auto 0; max-width: 28rem; display: flex; align-items: center; border-bottom: 1px solid var(--foreground); }
.newsletter input { flex: 1; min-width: 0; padding: 12px 4px; background: transparent; border: 0; font-size: 1rem; }
.newsletter input:focus { outline: none; }
.newsletter button { padding: 12px 8px; font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; }

/* Footer */
.site-footer { padding: 56px 0; }
.footer-grid { display: grid; gap: 40px; }
@media (min-width:768px){ .footer-grid { grid-template-columns: 5fr 7fr; gap: 56px; } .site-footer { padding: 64px 0; } }
.footer-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (min-width:768px){ .footer-cols { grid-template-columns: repeat(3, 1fr); } }
.footer-col-title { font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-fg); }
.footer-col ul { list-style: none; margin-top: 16px; }
.footer-col li { margin-bottom: 8px; font-size: .875rem; }
.footer-col a:hover { color: var(--primary); }
.footer-brand { font-family: var(--font-serif); font-size: 1.875rem; }
.footer-blurb { margin-top: 16px; font-size: .875rem; line-height: 1.6; color: var(--muted-fg); max-width: 24rem; }
.footer-foot { margin-top: 64px; border-top: 1px solid var(--border); padding-top: 24px; display: flex; flex-direction: column; gap: 12px; font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted-fg); }
@media (min-width:768px){ .footer-foot { flex-direction: row; justify-content: space-between; align-items: center; padding-top: 32px; } }

/* Category / archive */
.archive-head { padding: 48px 0 40px; }
@media (min-width:768px){ .archive-head { padding: 96px 0 80px; } }
.archive-head h1 { font-family: var(--font-serif); font-size: 2.75rem; line-height: 1; margin-top: 20px; }
@media (min-width:768px){ .archive-head h1 { font-size: 6rem; margin-top: 24px; } }
.archive-meta { margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-fg); }
.filter-nav { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 20px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; }
.filter-nav a { color: var(--muted-fg); }
.filter-nav a.active { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.filter-nav a:hover { color: var(--foreground); }

.archive-grid { padding: 56px 0; display: grid; gap: 48px 32px; grid-template-columns: 1fr; }
@media (min-width:768px){ .archive-grid { padding: 96px 0; grid-template-columns: repeat(3, 1fr); gap: 64px 32px; } }
.archive-card { display: block; }
.archive-card .thumb { position: relative; aspect-ratio: 4/5; overflow: hidden; background: var(--muted); }
.archive-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.archive-card:hover .thumb img { transform: scale(1.03); }
.archive-card .num { position: absolute; left: 16px; top: 16px; background: rgba(247,242,235,.92); padding: 4px 8px; font-family: var(--font-serif); font-size: .875rem; }
.archive-card .topline { margin-top: 24px; display: flex; justify-content: space-between; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-fg); }
.archive-card h2 { margin-top: 16px; font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.2; transition: color .2s; }
@media (min-width:768px){ .archive-card h2 { font-size: 1.75rem; } }
.archive-card:hover h2 { color: var(--primary); }
.archive-card .dek { margin-top: 12px; font-size: .875rem; line-height: 1.6; color: var(--muted-fg); }
.archive-card .scorebar { margin-top: 24px; display: flex; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.archive-card .scorebar > div { flex: 1; padding: 12px 16px; }
.archive-card .scorebar > div + div { border-left: 1px solid var(--border); }
.archive-card .scorebar .lbl { font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-fg); }
.archive-card .scorebar .num { margin-top: 4px; font-family: var(--font-serif); font-size: 1.5rem; }
.archive-card .scorebar .beauty .num { color: var(--primary); }
.archive-card .scorebar .work .num { color: var(--accent); }

/* Single story */
.story-hero { padding: 48px 0 40px; text-align: center; }
@media (min-width:768px){ .story-hero { padding: 96px 0 64px; } }
.story-hero .topline { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 12px; font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-fg); }
.story-hero .topline a { color: var(--primary); }
.story-hero h1 { margin: 24px auto 0; max-width: 56rem; font-family: var(--font-serif); font-size: 2.125rem; line-height: 1.05; }
@media (min-width:768px){ .story-hero h1 { font-size: 4.5rem; margin-top: 32px; } }
.story-hero .dek { margin: 24px auto 0; max-width: 42rem; font-size: 1rem; line-height: 1.7; color: var(--muted-fg); }
@media (min-width:768px){ .story-hero .dek { font-size: 1.125rem; } }
.story-hero .byline { margin-top: 32px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-fg); }
.story-cover img { aspect-ratio: 16/10; width: 100%; object-fit: cover; }
.story-cover figcaption { max-width: 1100px; margin: 0 auto; padding: 12px 20px 32px; font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted-fg); }

.story-body { padding: 56px 0; }
@media (min-width:768px){ .story-body { padding: 96px 0; } }
.story-body .prose { font-family: var(--font-serif); font-size: 1.1875rem; line-height: 1.55; }
@media (min-width:768px){ .story-body .prose { font-size: 1.4375rem; line-height: 1.6; } }
.story-body .prose p { margin-bottom: 24px; }
.story-body .prose h2 { margin: 48px 0 20px; font-size: 1.75rem; }
@media (min-width:768px){ .story-body .prose h2 { margin: 64px 0 24px; font-size: 2.25rem; } }
.story-body .prose blockquote { margin: 40px 0; padding-left: 20px; border-left: 2px solid var(--primary); font-style: italic; color: var(--primary); font-size: 1.375rem; line-height: 1.4; }
@media (min-width:768px){ .story-body .prose blockquote { padding-left: 32px; font-size: 1.875rem; margin: 48px 0; } }
.story-body .prose p:first-of-type::first-letter { font-family: var(--font-serif); float: left; font-size: 5rem; line-height: .85; margin: 4px 12px 0 0; color: var(--primary); }

/* Verdict (score panel) */
.verdict { padding: 64px 0; text-align: center; }
@media (min-width:768px){ .verdict { padding: 112px 0; } }
.verdict h2 { font-family: var(--font-serif); font-size: 2rem; line-height: 1.05; margin: 12px auto 0; max-width: 42rem; }
@media (min-width:768px){ .verdict h2 { font-size: 3rem; } }
.verdict-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 56px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.verdict-grid > div + div { border-left: 1px solid var(--border); }
.verdict-grid > div { padding: 40px 16px; }
@media (min-width:768px){ .verdict-grid > div { padding: 64px 24px; } }
.verdict .lbl { font-size: .6875rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted-fg); }
.verdict .num { font-family: var(--font-serif); font-size: 4.5rem; line-height: 1; margin-top: 12px; }
@media (min-width:768px){ .verdict .num { font-size: 7rem; margin-top: 16px; } }
.verdict .beauty .num { color: var(--primary); }
.verdict .work .num { color: var(--accent); }
.verdict .blurb { margin: 20px auto 0; max-width: 22rem; font-size: .875rem; line-height: 1.6; color: var(--muted-fg); }

/* Practical notes (dark) */
.practical { background: var(--ink); color: var(--paper); padding: 64px 0; }
@media (min-width:768px){ .practical { padding: 96px 0; } }
.practical-grid { display: grid; gap: 32px; }
@media (min-width:768px){ .practical-grid { grid-template-columns: 4fr 8fr; gap: 40px; } }
.practical h2 { font-family: var(--font-serif); font-size: 1.875rem; line-height: 1.1; margin-top: 12px; }
@media (min-width:768px){ .practical h2 { font-size: 2.25rem; } }
.practical dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: 12px; align-items: baseline; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.15); }
.practical dl > div:first-child { border-top: 0; }
@media (min-width:768px){ .practical dl > div { grid-template-columns: 14rem 1fr; gap: 24px; padding: 20px 0; } }
.practical dt { font-size: .6875rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.practical dd { font-size: .9375rem; color: rgba(255,255,255,.92); line-height: 1.6; }

/* About page */
.about-hero { padding: 56px 0 40px; text-align: center; }
@media (min-width:768px){ .about-hero { padding: 112px 0 40px; } }
.about-hero h1 { margin: 20px auto 0; max-width: 56rem; font-family: var(--font-serif); font-size: 2.25rem; line-height: 1.05; }
@media (min-width:768px){ .about-hero h1 { font-size: 5.5rem; } }
.about-hero h1 em { font-style: italic; color: var(--primary); }
.about-hero h1 em.f { color: var(--accent); }
.about-hero figure img { aspect-ratio: 16/10; object-fit: cover; }
.split { display: grid; gap: 32px; padding: 56px 0; max-width: 1100px; margin: 0 auto; }
@media (min-width:768px){ .split { grid-template-columns: 4fr 8fr; gap: 64px; padding: 112px 20px; } }
.split-prose { font-family: var(--font-serif); font-size: 1.1875rem; line-height: 1.55; }
@media (min-width:768px){ .split-prose { font-size: 1.4375rem; line-height: 1.6; } }
.split-prose p { margin-bottom: 24px; }

.principles { background: var(--secondary); padding: 56px 0; }
@media (min-width:768px){ .principles { padding: 112px 0; } }
.principles-head { text-align: center; margin-bottom: 56px; }
.principles-head h2 { font-family: var(--font-serif); font-size: 2rem; line-height: 1.05; margin: 12px auto 0; max-width: 36rem; }
@media (min-width:768px){ .principles-head h2 { font-size: 3rem; } }
.principles ol { list-style: none; display: grid; gap: 40px; max-width: 1100px; margin: 0 auto; padding: 0 20px; }
@media (min-width:768px){ .principles ol { grid-template-columns: 1fr 1fr; gap: 56px 64px; padding: 0 40px; } }
.principles li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 16px; }
@media (min-width:768px){ .principles li { grid-template-columns: 3.5rem 1fr; gap: 24px; } }
.principles .n { font-family: var(--font-serif); font-size: 1.625rem; color: var(--primary); }
@media (min-width:768px){ .principles .n { font-size: 1.875rem; } }
.principles h3 { font-family: var(--font-serif); font-size: 1.375rem; }
@media (min-width:768px){ .principles h3 { font-size: 1.5rem; } }
.principles p { margin-top: 8px; font-size: .9375rem; line-height: 1.6; color: var(--muted-fg); }
