/* Hallmark · genre: modern-minimal · macrostructure: Ecosystem Index · theme: studied-DNA (The Verge × TechCrunch × WIRED) · anchor: electric lime · enrichment: Tier-C editorial photography · nav: N13 · footer: Ft7 · contrast: pass (40–41) · slop: pass (42–49) · mobile: pass (34, 49, 50–57) */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
@import url("./tokens.css");

* { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: 16px; line-height: 1.55; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
h1, h2, h3 { min-width: 0; overflow-wrap: anywhere; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
button, input { font: inherit; }
button { color: inherit; }
button:active, a:active { transform: translateY(1px); }
button:disabled, input:disabled { opacity: .55; cursor: not-allowed; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.skip-link { position: fixed; inset-block-start: .5rem; inset-inline-start: .5rem; z-index: 1000; padding: .65rem .9rem; background: var(--color-ink); color: var(--color-paper); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; inset-block-start: 0; z-index: 20; border-bottom: var(--rule-hair) solid var(--color-rule); background: var(--color-paper); }
.nav-shell { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-md); max-width: var(--content); min-height: 68px; margin-inline: auto; padding-inline: var(--gutter); }
.brand { display: inline-flex; align-items: center; gap: .7rem; width: fit-content; color: var(--color-ink); font-family: var(--font-display); font-weight: 700; letter-spacing: -.035em; text-decoration: none; white-space: nowrap; }
.brand-mark { position: relative; display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--radius-card); background: var(--color-accent); color: var(--color-accent-ink); font-size: .72rem; letter-spacing: -.06em; }
.brand-mark::after { content: ""; position: absolute; inset: 5px; border-block: var(--rule-hair) solid var(--color-accent-ink); opacity: .35; }
.primary-nav { display: flex; justify-content: center; gap: clamp(1.2rem, 3vw, 2.8rem); }
.primary-nav a, .menu-toggle { color: var(--color-neutral); font-size: var(--text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }
.search-trigger { display: flex; align-items: center; gap: .55rem; min-height: 42px; padding: 0 .5rem 0 .85rem; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); background: var(--color-paper-2); cursor: pointer; }
.search-trigger b { font-size: var(--text-sm); font-weight: 500; }
.search-trigger kbd { padding: .15rem .42rem; border: var(--rule-hair) solid var(--color-rule-2); border-radius: 4px; background: var(--color-paper); font-size: .7rem; }
.menu-toggle { display: none; min-height: 44px; border: 0; background: transparent; cursor: pointer; }

main, .site-footer { max-width: var(--content); margin-inline: auto; padding-inline: var(--gutter); }
.label { margin: 0; color: var(--color-neutral); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.home-intro { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .45fr); gap: var(--space-xl); align-items: end; padding-block: clamp(3.5rem, 8vw, 8rem) clamp(2.5rem, 5vw, 5rem); }
.home-intro .label { grid-column: 1 / -1; color: var(--color-muted); }
.home-intro h1 { margin: 0; max-width: 16ch; font-family: var(--font-display); font-size: var(--text-display); font-weight: 600; line-height: .95; letter-spacing: -.065em; overflow-wrap: anywhere; }
.home-intro h1 span { color: var(--color-muted); }
.home-intro > p:last-child { margin: 0 0 .5rem; max-width: 36ch; color: var(--color-neutral); font-size: clamp(1.05rem, 1.4vw, 1.3rem); line-height: 1.45; }

.lead-grid { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(18rem, .9fr); gap: var(--space-md); }
.lead-story { display: grid; grid-template-rows: minmax(340px, 1.1fr) auto; min-height: 660px; overflow: hidden; border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-paper-on-dark); }
.lead-image { min-width: 0; min-height: 340px; overflow: hidden; }
.lead-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lead-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .46fr); gap: var(--space-md) var(--space-xl); align-items: end; padding: clamp(1.5rem, 3vw, 3rem); }
.story-meta { display: flex; gap: var(--space-sm); align-items: center; margin-block-end: var(--space-sm); color: var(--color-muted); font-size: var(--text-xs); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.lead-copy .story-meta { color: var(--color-muted-on-dark); }
.story-meta span { color: var(--color-neutral); }
.lead-copy .story-meta span { color: var(--color-accent); }
.lead-copy h2 { grid-column: 1; margin: 0; font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 4.25rem); font-weight: 600; line-height: .98; letter-spacing: -.05em; }
.lead-copy h2 a, .now-panel h3 a, .latest-row h3 a, .story-card h3 a { text-decoration: none; }
.lead-copy p { grid-column: 2; grid-row: 2; margin: 0; color: var(--color-muted-on-dark); }
.lead-copy > .text-link { grid-column: 2; grid-row: 3; }
.text-link { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; min-height: 44px; font-size: var(--text-sm); font-weight: 700; text-decoration: none; white-space: nowrap; }
.lead-copy .text-link { color: var(--color-accent); }
.now-panel { display: flex; flex-direction: column; padding: var(--space-lg); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); background: var(--color-paper-2); color: var(--color-ink); }
.now-panel header { display: flex; justify-content: space-between; align-items: center; padding-block-end: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule-2); }
.now-panel header span { color: var(--color-muted); font-size: var(--text-sm); }
.now-panel article { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: var(--space-sm); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); }
.now-number { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; }
.now-panel article div > span { color: var(--color-muted); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.now-panel h3 { margin: .45rem 0 0; font-family: var(--font-display); font-size: clamp(1.05rem, 1.4vw, 1.35rem); line-height: 1.15; letter-spacing: -.025em; }
.now-panel > .text-link { margin-block-start: auto; padding-block-start: var(--space-md); }

.topic-rail { display: flex; gap: .65rem; align-items: center; overflow-x: auto; margin-block: var(--space-lg) var(--space-3xl); padding-block: var(--space-sm); scrollbar-width: none; }
.topic-rail::-webkit-scrollbar { display: none; }
.topic-rail span { margin-inline-end: .5rem; color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.topic-rail a { padding: .55rem .9rem; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-pill); background: var(--color-paper); font-size: var(--text-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }

.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, .45fr); gap: var(--space-xl); align-items: end; margin-block-end: var(--space-xl); }
.section-heading h2 { margin: .35rem 0 0; font-family: var(--font-display); font-size: clamp(2.8rem, 5vw, 5.5rem); font-weight: 600; line-height: .92; letter-spacing: -.06em; }
.section-heading > p { margin: 0; max-width: 34ch; color: var(--color-muted); }
.latest-section { padding-block-end: var(--space-4xl); }
.latest-layout { display: block; }
.latest-list { border-top: var(--rule-fine) solid var(--color-ink); }
.latest-row { display: grid; grid-template-columns: minmax(10rem, .38fr) minmax(0, 1fr) auto; gap: var(--space-lg); padding-block: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.latest-image { align-self: start; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius-card); background: var(--color-paper-3); }
.latest-image img, .story-image img, .related img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform var(--dur-long) var(--ease-out); }
.latest-row h3 { margin: 0; max-width: 28ch; font-family: var(--font-display); font-size: clamp(1.35rem, 2.2vw, 2.2rem); line-height: 1.05; letter-spacing: -.04em; }
.latest-row p { margin: var(--space-sm) 0; max-width: 62ch; color: var(--color-muted); }
.read-time { color: var(--color-muted); font-size: var(--text-xs); font-weight: 600; }
.row-number { color: var(--color-rule-2); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; }
.popular { position: sticky; inset-block-start: 92px; align-self: start; padding: var(--space-lg); border-radius: var(--radius-card); background: var(--color-accent); color: var(--color-accent-ink); }
.popular-top { position: static; align-self: stretch; }
.popular .label { color: var(--color-accent-ink); }
.popular ol { margin: var(--space-sm) 0 0; padding: 0; list-style: none; counter-reset: popular; }
.popular li { counter-increment: popular; border-top: var(--rule-hair) solid var(--color-ink); }
.popular a { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: var(--space-sm); padding-block: var(--space-md); text-decoration: none; }
.popular a::before { content: counter(popular); font-family: var(--font-display); font-weight: 700; }
.popular strong { font-family: var(--font-display); line-height: 1.15; }
.popular span { grid-column: 2; font-size: var(--text-xs); }

.system-rail { display: grid; grid-template-columns: minmax(12rem, .32fr) minmax(0, 1fr); gap: var(--space-lg); align-items: stretch; margin-block: var(--space-lg) var(--space-md); padding: var(--space-sm); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); background: var(--color-paper-2); color: var(--color-ink); }
.system-rail header { display: flex; align-items: center; gap: var(--space-xs); padding-inline: var(--space-xs); }
.system-rail header p { margin: 0; color: var(--color-neutral); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.status-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--color-accent); box-shadow: 0 0 0 4px var(--color-paper-3); }
.system-rail > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.system-rail a { display: grid; gap: var(--space-3xs); min-width: 0; padding: var(--space-sm); border-inline-start: var(--rule-hair) solid var(--color-rule-2); text-decoration: none; }
.system-rail a span, .system-rail a small { color: var(--color-muted); font-size: var(--text-xs); }
.system-rail a span { font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.system-rail a strong { font-family: var(--font-display); font-size: var(--text-md); line-height: 1.15; }

.guides-section { margin-inline: calc(var(--gutter) * -1); padding: var(--space-3xl) var(--gutter); border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-paper-on-dark); }
.guides-section .label, .guides-section .section-heading > p, .guides-section .story-meta, .guides-section .read-time { color: var(--color-muted-on-dark); }
.guide-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-md); }
.story-card { grid-column: span 4; overflow: hidden; border: var(--rule-hair) solid var(--color-dark-soft); border-radius: var(--radius-card); background: var(--color-dark-soft); }
.story-card.guide-feature { grid-column: span 8; grid-row: span 2; }
.story-image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--color-ink-2); }
.guide-feature .story-image { aspect-ratio: 16 / 9; }
.story-copy { padding: var(--space-md); }
.story-card h3 { margin: 0; font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 2rem); line-height: 1.08; letter-spacing: -.035em; }
.guide-feature h3 { font-size: clamp(1.8rem, 3vw, 3.25rem); }
.story-card p { margin: var(--space-sm) 0; color: var(--color-muted-on-dark); font-size: var(--text-sm); }

.watchlist { display: grid; grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 8vw, 8rem); padding-block: var(--space-4xl); }
.watchlist h2 { margin: .5rem 0 0; max-width: 10ch; font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 5.2rem); line-height: .95; letter-spacing: -.055em; }
.watchlist ol { margin: 0; padding: 0; list-style: none; border-top: var(--rule-fine) solid var(--color-ink); }
.watchlist li { display: grid; grid-template-columns: minmax(9rem, .38fr) minmax(0, 1fr); gap: var(--space-lg); padding-block: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule-2); }
.watchlist li span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.watchlist li strong { font-family: var(--font-display); font-size: clamp(1.15rem, 2vw, 1.65rem); line-height: 1.2; }
.method { margin-block-end: var(--space-3xl); padding: clamp(2rem, 5vw, 5rem); border-radius: var(--radius-card); background: var(--color-paper-2); color: var(--color-ink); }
.method > div { display: grid; grid-template-columns: minmax(0, .9fr) minmax(18rem, 1.1fr); gap: var(--space-xl); margin-block-start: var(--space-md); }
.method h2 { margin: 0; max-width: 10ch; font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 5.2rem); line-height: .95; letter-spacing: -.055em; }
.method div div { max-width: 54ch; color: var(--color-neutral); }

.site-footer { padding-block: var(--space-2xl) var(--space-lg); }
.footer-lead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .7fr); gap: var(--space-xl); align-items: end; padding-block: var(--space-2xl); border-top: var(--rule-fine) solid var(--color-ink); }
.footer-lead h2 { margin: .4rem 0 0; font-family: var(--font-display); font-size: clamp(2rem, 4vw, 4.5rem); line-height: .98; letter-spacing: -.05em; }
.footer-lead p { margin: var(--space-sm) 0 0; color: var(--color-muted); }
.footer-form label { display: block; margin-block-end: var(--space-2xs); font-size: var(--text-sm); font-weight: 600; }
.footer-form div { display: flex; gap: var(--space-2xs); }
.footer-form input { min-width: 0; width: 100%; min-height: 48px; padding-inline: var(--space-sm); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-input); outline: 2px solid transparent; outline-offset: 1px; background: var(--color-paper); color: var(--color-ink); }
.footer-form button { min-height: 48px; padding-inline: var(--space-md); border: var(--rule-hair) solid var(--color-ink); border-radius: var(--radius-input); background: var(--color-ink); color: var(--color-paper); font-weight: 700; cursor: pointer; white-space: nowrap; }
.footer-form small { display: block; min-height: 1lh; margin-block-start: var(--space-2xs); color: var(--color-muted); }
.footer-meta { display: grid; grid-template-columns: 1fr auto auto; gap: var(--space-xl); align-items: center; padding-block-start: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule); color: var(--color-muted); font-size: var(--text-xs); }
.footer-meta nav { display: flex; gap: var(--space-md); }
.footer-meta nav a { text-decoration: none; white-space: nowrap; }
.footer-meta p { margin: 0; white-space: nowrap; }

.search-dialog { position: fixed; inset: 0; width: min(680px, calc(100% - 2rem)); height: fit-content; max-height: min(80dvh, 44rem); margin: auto; padding: 0; overflow: auto; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-card); background: var(--color-paper); color: var(--color-ink); box-shadow: var(--shadow-card); }
.search-dialog::backdrop { background: var(--color-backdrop); backdrop-filter: blur(6px); }
.search-bar { position: sticky; inset-block-start: 0; z-index: 2; padding: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); background: var(--color-paper); color: var(--color-ink); }
.search-bar label { display: block; margin-block-end: var(--space-2xs); font-size: var(--text-sm); font-weight: 700; }
.search-bar div { display: flex; gap: var(--space-2xs); }
.search-bar input { min-width: 0; width: 100%; min-height: 48px; padding-inline: var(--space-sm); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-input); outline: 2px solid transparent; background: var(--color-paper-2); color: var(--color-ink); }
.search-bar button { min-height: 48px; padding-inline: var(--space-md); border: var(--rule-hair) solid var(--color-ink); border-radius: var(--radius-input); background: var(--color-ink); color: var(--color-paper); cursor: pointer; }
.search-results { padding: 0 var(--space-md) var(--space-md); }
.search-results a { display: grid; gap: var(--space-3xs); padding-block: var(--space-md); border-bottom: var(--rule-hair) solid var(--color-rule); text-decoration: none; }
.search-results span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.search-results strong { font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.15; }
.search-results a[hidden] { display: none; }

.article-shell { max-width: 1280px; }
.article-header { max-width: 1050px; padding-block: clamp(3rem, 8vw, 7.5rem) var(--space-xl); }
.back-link { display: inline-flex; align-items: center; min-height: 44px; margin-block-end: var(--space-xl); color: var(--color-muted); font-size: var(--text-sm); font-weight: 700; text-decoration: none; white-space: nowrap; }
.article-kicker { margin: 0 0 var(--space-sm); color: var(--color-neutral); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-header h1 { margin: 0; max-width: 18ch; font-family: var(--font-display); font-size: clamp(2.8rem, 6.5vw, 6.5rem); font-weight: 600; line-height: .96; letter-spacing: -.06em; overflow-wrap: anywhere; }
.article-dek { margin: var(--space-lg) 0 0; max-width: 62ch; color: var(--color-neutral); font-size: clamp(1.1rem, 1.7vw, 1.4rem); line-height: 1.45; }
.byline { display: flex; flex-wrap: wrap; gap: .5rem var(--space-md); margin-block-start: var(--space-lg); color: var(--color-muted); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; }
.article-figure { margin: 0 0 var(--space-3xl); }
.article-figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; border-radius: var(--radius-card); background: var(--color-paper-3); }
.article-figure figcaption { margin-block-start: var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); }
.article-grid { display: grid; grid-template-columns: minmax(14rem, .35fr) minmax(0, 740px); gap: clamp(2rem, 8vw, 8rem); justify-content: start; }
.source-note { position: sticky; inset-block-start: 92px; align-self: start; padding: var(--space-md); border-radius: var(--radius-card); background: var(--color-paper-2); color: var(--color-ink); }
.source-note p { margin: 0 0 var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.source-note a { font-weight: 700; }
.source-note dl { display: grid; gap: var(--space-xs); margin: var(--space-md) 0 0; }
.source-note dl div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-xs); padding-block-start: var(--space-xs); border-block-start: var(--rule-hair) solid var(--color-rule); }
.source-note dt { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; }
.source-note dd { margin: 0; font-size: var(--text-xs); font-weight: 600; }
.source-note > span { display: block; margin-block-start: var(--space-md); color: var(--color-muted); font-size: var(--text-sm); }
.article-body .lede { margin: 0 0 var(--space-xl); font-family: var(--font-display); font-size: clamp(1.45rem, 2.4vw, 2.05rem); line-height: 1.35; letter-spacing: -.025em; }
.article-highlight { position: relative; margin-block: var(--space-xl) var(--space-2xl); padding: var(--space-lg); overflow: hidden; border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-paper-on-dark); }
.article-highlight::after { content: "IT"; position: absolute; inset: auto var(--space-md) calc(var(--space-md) * -1) auto; color: var(--color-dark-soft); font-family: var(--font-display); font-size: 6rem; font-weight: 700; line-height: 1; }
.article-highlight span { position: relative; z-index: 1; display: block; margin-block-end: var(--space-sm); color: var(--color-accent); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-highlight strong { position: relative; z-index: 1; display: block; max-width: 34ch; font-family: var(--font-display); font-size: clamp(1.35rem, 2.2vw, 2rem); line-height: 1.2; }
.article-body > section { margin-block-end: var(--space-2xl); }
.article-body h2 { margin: 0 0 var(--space-sm); font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.02; letter-spacing: -.045em; }
.article-body p { max-width: 68ch; font-size: 1.0625rem; line-height: 1.72; }
.fact-box { padding: var(--space-lg); border-radius: var(--radius-card); background: var(--color-accent); color: var(--color-accent-ink); }
.fact-box > header { display: flex; justify-content: space-between; align-items: end; gap: var(--space-sm); margin-block-end: var(--space-md); }
.fact-box > header p { margin: 0; font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-body .fact-box h2 { margin: 0; font-size: var(--text-xl); }
.fact-box > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block-start: var(--rule-hair) solid var(--color-ink); }
.fact-box article { display: grid; align-content: start; gap: var(--space-sm); padding: var(--space-md); border-inline-start: var(--rule-hair) solid var(--color-ink); }
.fact-box article:first-child { border-inline-start: 0; padding-inline-start: 0; }
.fact-box article:last-child { padding-inline-end: 0; }
.fact-box article span { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 700; }
.article-body .fact-box article p { margin: 0; font-size: var(--text-sm); line-height: 1.5; }
.article-table-section > header { display: grid; grid-template-columns: minmax(8rem, .3fr) minmax(0, 1fr); gap: var(--space-md); align-items: end; margin-block-end: var(--space-md); }
.article-table-section > header p { margin: 0 0 .3rem; color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-body .article-table-section > header h2 { margin: 0; font-size: var(--text-2xl); }
.table-wrap { max-width: 100%; overflow-x: auto; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-card); }
.table-wrap table { width: 100%; min-width: 680px; border-collapse: collapse; background: var(--color-paper-2); color: var(--color-ink); }
.table-wrap th, .table-wrap td { padding: var(--space-sm); border-block-end: var(--rule-hair) solid var(--color-rule); text-align: start; vertical-align: top; }
.table-wrap thead th { background: var(--color-ink); color: var(--color-paper-on-dark); font-size: var(--text-xs); letter-spacing: .06em; text-transform: uppercase; }
.table-wrap tbody th { width: 7rem; color: var(--color-neutral); font-size: var(--text-xs); text-transform: uppercase; }
.table-wrap td:nth-child(2) { width: 14rem; font-family: var(--font-display); font-weight: 600; }
.table-wrap tr:last-child th, .table-wrap tr:last-child td { border-block-end: 0; }
.reading-links { margin-block: var(--space-2xl); padding-block: var(--space-sm); border-block: var(--rule-fine) solid var(--color-ink); }
.reading-links > p { margin: 0; color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.reading-links a { display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; gap: var(--space-sm); align-items: center; min-height: 64px; border-block-end: var(--rule-hair) solid var(--color-rule); text-decoration: none; }
.reading-links a span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; }
.reading-links a strong { font-family: var(--font-display); line-height: 1.2; }
.reading-links a i { font-style: normal; }
.article-end { display: flex; justify-content: space-between; gap: var(--space-sm); margin-block: var(--space-3xl); padding-block: var(--space-sm); border-block: var(--rule-hair) solid var(--color-rule-2); font-size: var(--text-sm); font-weight: 700; }
.article-end a { white-space: nowrap; }
.related { margin-block: var(--space-4xl); }
.related > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
.related a { display: grid; gap: var(--space-sm); text-decoration: none; }
.related img { width: 100%; aspect-ratio: 16 / 10; border-radius: var(--radius-card); }
.related a span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; }
.related a strong { font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.1; }

.archive-shell { max-width: var(--content); }
.archive-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr); gap: var(--space-xl); align-items: end; padding-block: clamp(3.5rem, 8vw, 8rem) var(--space-3xl); }
.archive-hero .label { grid-column: 1 / -1; }
.archive-hero h1 { margin: 0; font-family: var(--font-display); font-size: var(--text-display); font-weight: 600; line-height: .95; letter-spacing: -.065em; }
.archive-hero h1 span { color: var(--color-muted); }
.archive-hero > p:last-child { margin: 0; max-width: 38ch; color: var(--color-neutral); font-size: var(--text-lg); }
.archive-index { padding-block-end: var(--space-4xl); }
.archive-index-head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-md); padding-block: var(--space-md); border-block-start: var(--rule-fine) solid var(--color-ink); }
.archive-index-head h2 { margin: 0; font-family: var(--font-display); font-size: var(--text-2xl); }
.archive-index-head span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2xl) var(--space-md); }
.archive-grid article { display: flex; flex-direction: column; min-width: 0; }
.archive-image { display: block; aspect-ratio: 16 / 9; margin-block-end: var(--space-md); overflow: hidden; border-radius: var(--radius-card); background: var(--color-paper-3); }
.archive-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-long) var(--ease-out); }
.archive-grid h3 { margin: 0; max-width: 26ch; font-family: var(--font-display); font-size: clamp(1.65rem, 3vw, 3rem); line-height: 1; letter-spacing: -.045em; }
.archive-grid h3 a { text-decoration: none; }
.archive-grid article > p { max-width: 62ch; color: var(--color-muted); }
.archive-grid .text-link { margin-block-start: auto; }
.watch-page { padding-block-end: var(--space-4xl); }
.watch-page ol { margin: 0; padding: 0; list-style: none; border-block-start: var(--rule-hair) solid var(--color-rule); }
.watch-page li { display: grid; grid-template-columns: minmax(10rem, .28fr) minmax(0, .72fr) minmax(18rem, .4fr); gap: var(--space-xl); padding-block: var(--space-xl); border-block-end: var(--rule-hair) solid var(--color-rule-2); }
.watch-page li > span { color: var(--color-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.watch-page h3 { margin: 0; font-family: var(--font-display); font-size: clamp(1.5rem, 2.6vw, 2.7rem); line-height: 1.08; letter-spacing: -.04em; }
.watch-page li p { margin: 0; color: var(--color-muted); }
.about-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); padding-block-end: var(--space-3xl); }
.about-grid article { padding: var(--space-lg); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-card); }
.about-grid article > span { display: block; color: var(--color-muted); font-family: var(--font-display); font-weight: 700; }
.about-grid h2 { margin: var(--space-lg) 0 var(--space-sm); font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.05; letter-spacing: -.035em; }
.about-grid p { margin: 0; color: var(--color-neutral); }
.standards { display: grid; grid-template-columns: minmax(12rem, .3fr) minmax(0, .7fr); gap: var(--space-lg) var(--space-xl); margin-block-end: var(--space-3xl); padding: clamp(2rem, 5vw, 5rem); border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-paper-on-dark); }
.standards .label { color: var(--color-accent); }
.standards h2 { margin: 0; max-width: 12ch; font-family: var(--font-display); font-size: clamp(2.3rem, 4vw, 4.5rem); line-height: .98; letter-spacing: -.05em; }
.standards > div { grid-column: 2; color: var(--color-muted-on-dark); }

@media (hover: hover) and (pointer: fine) {
  .primary-nav a:hover, .footer-meta a:hover, .now-panel a:hover, .latest-row h3 a:hover, .story-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--color-accent); text-decoration-thickness: 3px; }
  .search-trigger:hover, .topic-rail a:hover { background: var(--color-paper-3); }
  .lead-story:hover .lead-image img, .latest-row:hover .latest-image img, .story-card:hover .story-image img, .related a:hover img { transform: scale(1.025); }
  .text-link:hover { transform: translateX(3px); }
  .archive-grid article:hover .archive-image img { transform: scale(1.025); }
}

@media (min-width: 60rem) {
  [data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity var(--dur-long) var(--ease-out), transform var(--dur-long) var(--ease-out); }
  [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
}

@media (max-width: 72rem) {
  .lead-copy { grid-template-columns: 1fr; }
  .lead-copy h2, .lead-copy p, .lead-copy > .text-link { grid-column: 1; grid-row: auto; }
  .story-card { grid-column: span 6; }
  .story-card.guide-feature { grid-column: span 12; }
}

@media (max-width: 60rem) {
  .nav-shell { grid-template-columns: 1fr auto auto; }
  .menu-toggle { display: block; }
  .primary-nav { position: absolute; inset: 68px 0 auto; display: none; flex-direction: column; gap: 0; padding: var(--space-sm) var(--gutter); border-bottom: var(--rule-hair) solid var(--color-rule); background: var(--color-paper); }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { display: flex; align-items: center; min-height: 48px; border-bottom: var(--rule-hair) solid var(--color-rule); }
  .home-intro, .section-heading, .footer-lead, .method > div { grid-template-columns: 1fr; }
  .lead-grid { grid-template-columns: 1fr; }
  .system-rail { grid-template-columns: 1fr; }
  .system-rail header { min-height: 44px; }
  .lead-story { grid-template-rows: minmax(360px, 1fr) auto; }
  .now-panel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
  .now-panel header, .now-panel > .text-link { grid-column: 1 / -1; }
  .now-panel article { grid-template-columns: 2rem minmax(0, 1fr); }
  .latest-layout { grid-template-columns: 1fr; }
  .popular, .source-note { position: static; }
  .watchlist, .article-grid { grid-template-columns: 1fr; }
  .archive-hero, .watch-page li, .standards { grid-template-columns: 1fr; }
  .archive-hero .label { grid-column: auto; }
  .watch-page li { gap: var(--space-sm); }
  .standards > div { grid-column: auto; }
  .article-grid { gap: var(--space-xl); }
  .source-note { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
}

@media (max-width: 40rem) {
  .nav-shell { min-height: 62px; gap: var(--space-xs); }
  .primary-nav { inset-block-start: 62px; }
  .brand > span:last-child { display: none; }
  .search-trigger { width: 44px; justify-content: center; padding: 0; border-radius: var(--radius-card); }
  .search-trigger b, .search-trigger kbd { display: none; }
  .home-intro { gap: var(--space-lg); padding-block: var(--space-xl); }
  .home-intro h1 { font-size: clamp(2.75rem, 13vw, 4.5rem); }
  .lead-story { grid-template-rows: auto auto; min-height: 0; }
  .lead-image { min-height: 260px; }
  .lead-copy { min-height: 0; }
  .now-panel { grid-template-columns: 1fr; }
  .now-panel header, .now-panel > .text-link { grid-column: auto; }
  .topic-rail { margin-block-end: var(--space-2xl); }
  .system-rail > div { grid-template-columns: 1fr; }
  .system-rail a { border-inline-start: 0; border-block-start: var(--rule-hair) solid var(--color-rule-2); }
  .section-heading { gap: var(--space-sm); }
  .section-heading h2 { font-size: clamp(2.6rem, 13vw, 4.2rem); }
  .latest-section { padding-block-end: var(--space-3xl); }
  .latest-row { grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--space-sm); }
  .latest-image { grid-row: 1; }
  .latest-copy { grid-column: 2; }
  .latest-row p { display: none; }
  .row-number { display: none; }
  .story-meta { flex-wrap: wrap; gap: .3rem .7rem; margin-block-end: .55rem; }
  .guides-section { padding-block: var(--space-2xl); }
  .guide-grid { grid-template-columns: 1fr; }
  .story-card, .story-card.guide-feature { grid-column: auto; grid-row: auto; }
  .story-image, .guide-feature .story-image { aspect-ratio: 16 / 10; }
  .watchlist { padding-block: var(--space-3xl); }
  .watchlist li { grid-template-columns: 1fr; gap: var(--space-xs); }
  .method { padding: var(--space-lg); }
  .footer-form div { flex-direction: column; }
  .footer-meta { grid-template-columns: 1fr; gap: var(--space-md); }
  .footer-meta nav { flex-wrap: wrap; }
  .article-header { padding-block: var(--space-xl); }
  .article-header h1 { font-size: clamp(2.7rem, 13vw, 4.8rem); }
  .article-figure { margin-inline: calc(var(--gutter) * -1); }
  .article-figure img { aspect-ratio: 4 / 3; border-radius: 0; }
  .article-figure figcaption { padding-inline: var(--gutter); }
  .source-note { grid-template-columns: 1fr; }
  .fact-box { margin-inline: calc(var(--gutter) * -.25); }
  .fact-box > header { align-items: start; flex-direction: column; }
  .fact-box > div { grid-template-columns: 1fr; }
  .fact-box article, .fact-box article:first-child, .fact-box article:last-child { padding: var(--space-sm) 0; border-inline-start: 0; border-block-start: var(--rule-hair) solid var(--color-ink); }
  .article-table-section > header { grid-template-columns: 1fr; gap: var(--space-2xs); }
  .reading-links a { grid-template-columns: 1fr auto; padding-block: var(--space-sm); }
  .reading-links a span { grid-column: 1 / -1; }
  .article-end { flex-direction: column; }
  .related > div:last-child { grid-template-columns: 1fr; }
  .archive-hero { gap: var(--space-lg); padding-block: var(--space-xl) var(--space-2xl); }
  .archive-hero h1 { font-size: clamp(2.75rem, 13vw, 4.5rem); }
  .archive-grid, .about-grid { grid-template-columns: 1fr; }
  .archive-grid { gap: var(--space-xl); }
  .archive-index-head { align-items: start; flex-direction: column; }
  .search-dialog { inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; border-radius: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
