/* Reading polish. Typography remains controlled by Ghost's heading/body settings. */
:root { --reading-gutter: clamp(20px, 3vw, 36px); }
.wrap,.nav-in,.art-hero-in,.art-body,.art-figure,.off-hero-in { padding-left:var(--reading-gutter);padding-right:var(--reading-gutter) }
.hero-in {padding:64px var(--reading-gutter) 44px}
.hero .eyebrow {margin-bottom:20px;letter-spacing:.1em;font-size:11px}
.hero .sub {margin-top:24px}.hero-kicker{letter-spacing:.06em;line-height:1.7}
.scroll-cue {margin-top:28px}.act,.archive {padding:64px 0}.sec-head{margin-bottom:26px}
.sec-head h2{line-height:1.15}.sec-head .sh-left{gap:0}.act-lede{font-size:20px;line-height:1.55;max-width:66ch;margin-bottom:24px}
.feature,.op-photo{position:relative;isolation:isolate}.feature .fbody{padding:30px}.feature .fimg{min-height:280px}
.feature .fimg .fid,.feature .fimg .cap{background:rgba(7,9,8,.88);padding:5px 8px;letter-spacing:.04em;font-size:11px}
.ways-in {display:grid;grid-template-columns:1fr 1fr;gap:20px}.ways-in .deep-row{grid-template-columns:1fr;gap:20px}
.preview-note{color:var(--fg-muted);font-size:14px;line-height:1.5;max-width:55ch;margin:0}
.lineage-preview{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-sunken);padding:24px}
.lineage-route{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:0;margin:0;list-style:none;gap:12px}
.lineage-route li{min-width:0}.lineage-route button{position:relative;display:flex;flex-direction:column;gap:12px;width:100%;height:100%;min-height:132px;padding:14px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--fg-2);text-align:left;cursor:pointer}
.lineage-route time{font:700 12px/1.3 var(--font-mono);color:var(--green-signal)}
.lineage-route span{font:600 16px/1.35 var(--font-sans);overflow-wrap:anywhere}
.lineage-route button[aria-pressed=true]{border-color:var(--green-signal);background:#15271b;color:var(--fg);box-shadow:inset 0 -3px var(--green-signal)}
.lineage-context{margin-top:20px;border-top:1px solid var(--border);padding-top:20px;max-width:75ch}.lineage-context h3{font:700 24px/1.2 var(--font-display);margin:10px 0}.lineage-context p{color:var(--fg-2);font-size:16px;line-height:1.6}.lineage-context a{color:var(--green-signal);font-size:14px;text-decoration:underline;text-underline-offset:3px}
/* Useful metadata is never styled as disabled text. */
.dispatch .read,.signup .fine,.act-signup .fine,.foot-bar,.rail-block h4,.rail-toc h2,.pcard .pmeta,.term-body .muted,.idx-axis span,.ib-axis span,.jstep,.chan-card .cc-note{color:var(--fg-muted);font-size:12px;letter-spacing:.035em;text-transform:none}
.label,.dp-code,.stamp,.co-title,.art-kicker,.crumb,.art-byline,.rail-block .row,.rail-toc a,.pcard .pimg .ptag,.xref-card .c,.ix-meta,.ix-open,.ix-code,.de-sub,.de-code,.de-btn{font-size:12px;letter-spacing:.04em}
.btn,.nav-links a,.nav-signin,.nav-cta,.dp-go,.sec-head .more{font-size:12px;letter-spacing:.055em}
.nav-links{gap:18px;margin-left:0}.nav-in{gap:22px}.nav-links a.active{color:var(--green-signal)}.nav-links a.active::after{right:0}.nav-mobile-link{display:none}
/* Static essay field: the aperture is the sole interactive focus. */
body.post-template .site-backdrop .matrix-rain,body.page-template .site-backdrop .matrix-rain{display:none}
body.aperture-in-view .site-backdrop .matrix-rain{opacity:0}
.art-hero-in{padding-top:40px;padding-bottom:38px}.art-hero h1{max-width:23ch}.art-kicker{gap:10px}.crumb{flex-wrap:wrap;line-height:1.5;margin-bottom:18px}.art-byline{flex-wrap:wrap;gap:9px;margin-top:24px;line-height:1.5}
.art-body{grid-template-columns:180px minmax(0,1fr);gap:36px;padding-top:36px;padding-bottom:40px;max-width:1080px}
/* 1.3.4: on posts the feature figure lives inside .prose (post.hbs) and takes the paragraphs' exact
   measure; the 1.3.3 page-level offset is gone. The figure keeps its frame, loses the outer gutters. */
.prose>.art-figure--inline{max-width:100%;padding:0;margin:0 0 34px}
.prose>.art-figure--inline .frame{margin-top:0}
.art-rail{max-height:calc(100dvh - 120px);overflow:auto;padding:46px 3px 3px}.rail-toc h2{font-family:var(--font-sans);margin:0 0 12px;font-weight:600}.rail-toc a{padding:8px 0 8px 12px;line-height:1.4}.toc-subsection{margin-left:12px}.rail-toc a[aria-current=true],.mobile-contents a[aria-current=true]{color:var(--green-signal);border-color:var(--green-signal);font-weight:700}
.mobile-contents{display:none}.article-endmatter{max-width:1080px;margin:0 auto;padding:0 var(--reading-gutter) 48px}.file-details{margin-left:216px;padding-top:18px;border-top:1px solid var(--border);color:var(--fg-2)}
.file-details summary,.mobile-contents summary{font:600 14px/1.5 var(--font-sans);cursor:pointer;padding:12px 0;color:var(--fg)}.file-details dl{display:grid;gap:12px;font-size:14px}.file-details dl div{display:grid;grid-template-columns:100px 1fr;gap:18px}.file-details dt{color:var(--fg-muted)}.file-details dd{margin:0;overflow-wrap:anywhere}.file-details dd a{display:inline-block;text-decoration:underline;text-underline-offset:3px;margin-right:10px}
.prose{min-width:0;max-width:72ch}.prose>p,.prose>ul,.prose>ol{font:400 1.16rem/1.74 var(--font-display);color:var(--graphite-200)}.prose>ul,.prose>ol{padding-left:1.35em;margin:0 0 26px}.prose li{padding-left:.2em;margin:.4em 0}.prose li>p{margin:.4em 0}.prose h3{font:600 1.45rem/1.25 var(--font-display);color:var(--fg);margin:32px 0 12px;scroll-margin-top:100px}
.prose h2{scroll-margin-top:100px}.prose>p:first-of-type::first-letter{float:none;font:inherit;padding:0;color:inherit}
.prose :where(p,li,blockquote,figcaption,td,th,dd,h2,h3,h4) a:not(.if-chip),.prose>a:not([class]){color:var(--green-signal);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose hr{border:0;border-top:1px solid var(--border);margin:36px 0}.prose blockquote{font-size:1.25rem;line-height:1.65;padding-left:20px}.prose blockquote p{margin:0 0 12px}.prose code{font-family:var(--font-mono);font-size:.85em;overflow-wrap:anywhere}.prose pre{max-width:100%;overflow:auto;padding:18px;background:var(--surface-card)}
.prose table{display:block;width:100%;max-width:100%;overflow:auto;border-collapse:collapse;font:400 14px/1.6 var(--font-sans);margin:28px 0}.prose th,.prose td{padding:10px 12px;border:1px solid var(--border);text-align:left;vertical-align:top}.prose th{background:var(--surface-card)}
.prose .footnotes,.prose .source-notes,.prose .note{font:400 14px/1.6 var(--font-sans);color:var(--fg-2)}
.prose figure figcaption,.feature-caption{font:400 12px/1.6 var(--font-sans);letter-spacing:0;text-transform:none;color:var(--fg-muted);text-align:left;margin-top:12px}.feature-caption{padding-bottom:12px}.post-full>.art-figure{padding-top:28px}.art-figure .frame{height:auto;aspect-ratio:auto;margin:0;border:0;overflow:visible}.art-figure .frame.has-img{padding:16px 14px 14px;border:1px solid var(--border-strong)}.art-figure .frame.has-img img{position:static;width:100%;height:auto;max-height:520px;object-fit:contain;background:var(--surface-sunken);border-radius:var(--radius-md)}
/* Native media is bounded to the reading column. Do not target native signup. */
.prose>.kg-width-wide:not(.kg-signup-card),.prose>.kg-width-full:not(.kg-signup-card){width:100%;max-width:100%;margin:36px 0;transform:none}
.prose .kg-image-card img{height:auto;object-fit:contain}.page-reading{display:block;max-width:800px}.page-reading .prose{margin:auto}
.callout{font-family:var(--font-sans)}.co-title{font-size:13px;letter-spacing:.025em;text-transform:none;color:var(--fg);font-weight:700}.co-body p{font-size:16px;line-height:1.65}
.callout[data-callout=evidence]{border-left-color:var(--kraft);background:#1a1813}.callout[data-callout=evidence] .co-icon{color:var(--kraft)}
.callout[data-callout=interpretation]{border-left-color:var(--phosphor)}.callout[data-callout=qualification]{border-left-color:var(--amber)}.callout[data-callout=qualification] .co-icon{color:var(--amber)}.callout[data-callout=warning]{border-left-color:var(--red)}.callout[data-callout=warning] .co-icon{color:var(--red)}
.signup input{min-width:0;min-height:48px}.signup form .btn{min-height:48px}.archive-empty{grid-column:1/-1;max-width:65ch;padding:28px;border:1px solid var(--border);background:var(--surface-card)}.archive-empty h2{font:700 26px/1.2 var(--font-display);margin:0 0 14px}.archive-empty p,.error-state p{font-size:16px;line-height:1.6;color:var(--fg-2);margin-bottom:24px}.error-state{max-width:800px}.error-state h1{font:700 clamp(2rem,5vw,3.5rem)/1.15 var(--font-display)}.error-home{display:block;margin-top:22px;text-decoration:underline}
.off-hero-in{padding-top:40px;padding-bottom:38px}.off-sec{padding:40px 0}.op-grid{grid-template-columns:200px minmax(0,1fr);gap:32px}.op-photo{max-width:200px}.sh-block{margin-top:48px}.chan-card{padding:28px 24px}.chan-card .cc-mail{overflow-wrap:anywhere}.cp-social{flex-wrap:wrap;text-align:center;line-height:1.6}.signup .follow{flex-wrap:wrap}
@media(max-width:1080px){.nav-links{gap:12px}.nav-in{gap:16px}.nav-cta{margin-left:auto;padding:11px 12px}.nav-links a{font-size:12px}}
@media(max-width:880px){.art-body{grid-template-columns:minmax(0,1fr);gap:20px}.art-rail{display:none}.mobile-contents:not([hidden]){display:block;border-block:1px solid var(--border)}.mobile-contents nav{display:flex;flex-direction:column;padding-bottom:12px}.mobile-contents a{padding:9px 0;font:400 14px/1.45 var(--font-sans);color:var(--fg-2)}.file-details{margin-left:0}.nav-mobile-link{display:block}.nav-links a{font-size:14px;padding:12px var(--reading-gutter)}.lineage-route{grid-template-columns:repeat(3,minmax(0,1fr))}.ways-in{grid-template-columns:1fr}.op-grid{grid-template-columns:1fr}.sec-head{flex-wrap:wrap;align-items:flex-start}}
@media(max-width:599px){.signup form{display:grid;grid-template-columns:minmax(0,1fr);width:100%;margin-top:24px}.signup form input,.signup form button{width:100%;justify-content:center}.signup .wrap{padding-inline:22px}.act,.archive,section.signup{padding-block:44px}.hero-in{padding-top:40px;padding-bottom:28px}.hero .eyebrow{font-size:10px;line-height:1.5;letter-spacing:.04em}.hero h1{font-size:clamp(2.35rem,9vw,3rem)}.hero-figure{opacity:.18;animation:none}.hero-cta{margin-top:26px}.hero-kicker,.scroll-cue{display:none}.hero .sub{font-size:18px}.act-lede{font-size:18px}.feature .fbody{padding:24px}.feature .fimg{min-height:200px}.feature .fbody h3{font-size:27px}.lineage-preview{padding:18px}.lineage-route{grid-template-columns:1fr;gap:0;border-left:1px solid var(--border);padding-left:14px}.lineage-route button{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;min-height:52px;margin-bottom:8px;gap:12px;padding:12px}.lineage-route span{font-size:16px}.lineage-context h3{font-size:22px}.art-hero-in{padding-top:24px;padding-bottom:24px}.art-hero h1{font-size:2.25rem;line-height:1.12}.art-kicker .code,.crumb{display:none}.art-byline{margin-top:18px;font-size:11px;gap:7px}.art-byline .av{display:none}.art-hero .standfirst{font-size:18px;margin-top:16px}.art-figure .frame.has-img img{max-height:200px}.art-body{padding-top:20px;padding-bottom:24px;gap:18px}.prose>p,.prose>ul,.prose>ol{font-size:18px;line-height:1.65}.prose h2:first-child{margin-top:10px}.article-endmatter{padding-bottom:36px}.off-hero-in{padding-block:28px}.off-hero p{font-size:18px}.chan-card{padding:24px 18px}.foot-grid{gap:24px}.foot-bar{flex-wrap:wrap}.deep-row{padding:24px}.signup .fine{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.site-backdrop .matrix-rain{display:none}}

.classbar{color:var(--fg-muted);font-size:11px;letter-spacing:.12em}

/* Keep the article hero divider visually separate from the featured image. */
@media(max-width:640px){.post-full>.art-figure{padding-top:18px}}

/* 1.3.5 — one centred reading column (Kevin, 2026-09-23: "we need to be able to center everything").
   Title block, feature figure, prose and every card share one axis and one measure; the contents
   rail leaves the grid and sits in the left margin when there is room, otherwise the page falls
   back to the mobile contents list. The old two-track layout (centred 880px title, prose right of
   a 180px rail) is superseded, not deleted — the rules below override it. */
:root{--article-measure:680px}
.art-hero-in{max-width:calc(var(--article-measure) + 2 * var(--reading-gutter))}
.art-hero h1{max-width:none}
.art-hero .standfirst{max-width:none}
.art-body{display:block;position:relative;max-width:calc(var(--article-measure) + 2 * var(--reading-gutter))}
.art-body .prose{max-width:none;margin:0}
.prose>p,.prose>ul,.prose>ol{font-size:1.2rem;line-height:1.72}
.article-endmatter{max-width:calc(var(--article-measure) + 2 * var(--reading-gutter))}.file-details{margin-left:0}
@media(min-width:1181px){.art-rail{position:absolute;left:calc(-1 * (200px + 48px));top:0;bottom:0;width:200px;max-height:none;overflow:visible;padding:0}.art-rail .rail-toc{position:sticky;top:96px;max-height:calc(100dvh - 120px);overflow:auto;padding:46px 3px 3px}}
@media(max-width:1180px){.art-rail{display:none}.mobile-contents:not([hidden]){display:block;border-block:1px solid var(--border)}.mobile-contents nav{display:flex;flex-direction:column;padding-bottom:12px}.mobile-contents a{padding:9px 0;font:400 14px/1.45 var(--font-sans);color:var(--fg-2)}}

/* 1.3.7 — one column, truly (Kevin 2026-09-23: "I still don't like this centering"). Aperture cards used to run 112% of
   the column and overhang it on both sides; inside the reading column they now take the column's width exactly, like the
   feature figure and the prose. Height still comes from the aperture's own announce. */
.art-body .prose index-aperture{width:100%;max-width:100%;margin:46px 0;transform:none}

/* 1.3.8 — every case file on the front page, one row each */
.casefile-index{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--border)}
.casefile-index li{border-bottom:1px solid var(--border)}
.casefile-index a{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:12px 0;color:var(--fg);text-decoration:none}
.casefile-index a:hover .ci-title{color:var(--green-signal)}
.casefile-index .ci-date,.casefile-index .ci-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted)}
.casefile-index .ci-title{font-family:var(--font-serif);font-size:1.05rem;transition:color var(--dur)}
@media(max-width:640px){.casefile-index a{grid-template-columns:minmax(0,1fr);gap:4px}.casefile-index .ci-tag{display:none}}
