.blog { --article-width: 720px; }
.blog [hidden] { display: none !important; }
.blog-header { min-height: 100px; padding: 0 var(--page-gutter); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.blog-header nav { display: flex; gap: clamp(24px,3.5vw,56px); align-self: stretch; }
.blog-header nav a { display: flex; flex-direction: column; justify-content: center; gap: 7px; font-size: 10px; letter-spacing: 1.5px; text-decoration: none; position: relative; padding: 12px 0; }
.blog-header nav small { font-size: 10px; letter-spacing: 0; color: var(--text-secondary); }
.blog-header nav a[aria-current=page]:after { content:''; position: absolute; bottom: -1px; width: 100%; height: 2px; background: var(--accent-blue); }
.blog-header nav a:hover span { color: var(--accent-blue); }
.menu-toggle { display: none; }
.blog main.blog-main { max-width: none; padding: 0; margin: 0; }
.blog main.page-container { max-width: 1200px; padding: 0 var(--page-gutter) 96px; margin: 0 auto; }
.blog .field-hero { min-height: 660px; position: relative; isolation: isolate; overflow: hidden; padding: 76px var(--page-gutter) 92px; background: #e9eef0; }
.hero-environment { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; z-index: -2; }
.field-hero:after { content:''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(247,248,248,.98) 0%,rgba(247,248,248,.94) 28%,rgba(247,248,248,.62) 53%,rgba(247,248,248,.04) 100%); }
.hero-content { max-width: 1200px; margin: auto; }
.hero-byline { display: flex; gap: 14px; align-items: center; font-size: 11px; letter-spacing: 2px; margin-bottom: 30px; }
.hero-byline svg { color: var(--accent-blue); }
.hero-content>.eyebrow { font-size: 9px; letter-spacing: 1.6px; }
.hero-content h1 { font-family: var(--font-serif); font-size: clamp(44px,5vw,68px); line-height: 1.12; letter-spacing: -2px; margin: 22px 0 26px; }
.hero-content h1 em { font-weight: 400; color: var(--accent-blue); }
.hero-subtitle { color: var(--text-secondary); font-size: 12px; line-height: 1.8; }
.hero-subtitle span { margin: 0 10px; }
.hero-content .button { margin-top: 30px; font-size: 10px; letter-spacing: 1.2px; gap: 36px; }
.hero-bottom { position: absolute; bottom: 28px; left: var(--page-gutter); right: var(--page-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; font: 8px var(--font-mono); letter-spacing: 1px; color: var(--text-primary); }
.hero-bottom a { text-decoration: none; }
.hero-bottom a span { margin-left: 15px; }
.home-content { max-width: 1200px; padding: 0 var(--page-gutter); margin: auto; }
.blog-section { padding: 70px 0; border-bottom: 1px solid var(--border); }
.blog-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; }
.blog-section-heading h2 { font: 32px/1.25 var(--font-serif); margin-top: 12px; }
.blog-section-heading .text-link { font-size: 11px; }
.record-row { display: grid; grid-template-columns: 110px 1fr 80px; gap: 28px; border-top: 1px solid var(--border); padding: 36px 0; align-items: baseline; }
.record-number { font: 10px/1.6 var(--font-mono); color: var(--text-secondary); letter-spacing: .5px; }
.record-row h2 { font: 28px/1.3 var(--font-serif); margin-bottom: 14px; }
.record-row h2 a,.selected-writing h3 a,.expedition h2 a { text-decoration: none; }
.record-row h2 a:hover,.selected-writing h3 a:hover,.expedition h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.record-meta { display: flex; flex-wrap: wrap; gap: 9px; color: var(--text-secondary); font: 11px/1.7 var(--font-sans); }
.record-meta>span:first-child { color: var(--accent-blue); }
.record-row p { font: 16px/1.75 var(--font-serif); color: var(--text-secondary); max-width: 65ch; margin-top: 14px; }
.read-link { display: inline-flex; align-items: center; gap: 20px; font: 10px/1.7 var(--font-sans); letter-spacing: 1px; text-decoration: none; min-height: 36px; }
.read-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.record-row.compact { grid-template-columns: 100px 1fr 65px; }
/* Records visual index: editorial rows, never cards or Collapse targets. */
.record-row.has-ghost-cover { position:relative;isolation:isolate; }
.has-ghost-cover .record-copy { min-width:0;padding-right:27%; }
.record-ghost { position:absolute;right:0;top:82px;bottom:28px;width:29%;overflow:hidden;pointer-events:none;opacity:.44;filter:saturate(.58) contrast(.9);mask-image:linear-gradient(90deg,transparent 0%,#0005 42%,#000 80%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#0005 42%,#000 80%);transition:opacity 420ms cubic-bezier(.2,.65,.3,1),filter 420ms cubic-bezier(.2,.65,.3,1); }
.record-ghost img { width:100%;height:100%;display:block; }
.record-ghost { mask-size:100% 100%;mask-position:right center;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-position:right center;-webkit-mask-repeat:no-repeat;transition-property:opacity,filter,mask-size,-webkit-mask-size; }
.record-row:focus-within .record-ghost { opacity:.84;filter:saturate(.92) contrast(.9);mask-size:112% 100%;-webkit-mask-size:112% 100%; }
@media(hover:hover) { .record-row:hover .record-ghost { opacity:.84;filter:saturate(.92) contrast(.9);mask-size:112% 100%;-webkit-mask-size:112% 100%; } }
@media(max-width:760px) {
 .has-ghost-cover .record-copy { padding-right:0;display:flow-root; }
 .record-ghost { position:relative;float:right;top:auto;bottom:auto;width:96px;height:88px;margin:14px 0 0 12px;mask-image:linear-gradient(90deg,transparent,#0009 35%,#000 75%);-webkit-mask-image:linear-gradient(90deg,transparent,#0009 35%,#000 75%); }
}
@media(prefers-reduced-motion:reduce) { .record-ghost { transition:none; } }
@media print { .record-ghost { display:none; }.has-ghost-cover .record-copy { padding-right:0; } }
.current-expedition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.expedition-image { min-width: 0; }.expedition-image img { width:100%; height:280px; object-fit:cover; display:block; }.expedition-image>span { display:block; font-size:8px; margin-top:14px; }
.active-inline { color:var(--accent-blue); margin-left:20px; font-size:9px; }
.current-expedition h3 { font:34px/1.25 var(--font-serif); margin:20px 0; }.current-expedition p { font:17px/1.8 var(--font-serif); color:var(--text-secondary); }
.mini-details { margin:24px 0; }.mini-details>div { display:flex; gap:20px; margin:12px 0; }.mini-details dt { min-width:85px; font:9px/1.7 var(--font-mono); color:var(--text-secondary); }.mini-details dd { margin:0; font-size:11px; }
.selected-writing { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }.selected-writing article { border-top:1px solid var(--border); padding:24px 0 0; display:flex; flex-direction:column; }.selected-writing h3 { font:25px/1.35 var(--font-serif); margin:18px 0 14px; }.selected-writing p { font:15px/1.8 var(--font-serif); color:var(--text-secondary); margin-bottom:24px; }.selected-writing .text-link { margin-top:auto; font-size:11px; }
.short-about { display:grid; grid-template-columns:1fr 1.6fr .6fr; gap:32px; align-items:center; padding:60px 0; }.short-about>div { display:flex; align-items:center; gap:18px; }.short-about .eyebrow { font-size:8px; max-width:140px; }.short-about svg { color:var(--accent-blue); }.short-about p { font:21px/1.6 var(--font-serif); }.short-about>a { justify-self:end; font-size:11px; }.sample-disclosure { font:11px/1.7 var(--font-sans); color:var(--text-secondary); padding-bottom:30px; }
.blog-footer { padding:40px var(--page-gutter); align-items:start; line-height:1.8; }.blog-footer .wordmark { font-size:10px; gap:10px; }.blog-footer p { margin-top:14px; font-size:11px; }.blog-footer>div:nth-child(2) { display:flex; flex-wrap:wrap; gap:22px; padding-top:4px; }.blog-footer>span { font-size:10px; text-align:right; }.blog-footer a:hover { text-decoration:underline; }
.page-heading { padding:76px 0 52px; }.page-heading h1 { font:clamp(40px,5vw,58px)/1.14 var(--font-serif); letter-spacing:-1.6px; margin:20px 0 24px; }.page-heading>p { font:19px/1.8 var(--font-serif); color:var(--text-secondary); max-width:650px; }
.record-tools { display:flex; gap:24px; align-items:end; background:var(--background-secondary); padding:24px; margin-bottom:36px; }.record-tools label { display:flex; flex-direction:column; gap:10px; font-size:11px; color:var(--text-secondary); }.record-tools label:first-child { flex:1; }.record-tools input,.record-tools select { background:var(--surface); color:var(--text-primary); border:1px solid #8c9aa4; border-radius:0; padding:12px; min-height:44px; font:13px var(--font-sans); width:100%; }.record-tools select { min-width:170px; }.record-tools .button { border-color:#8c9aa4; }.list-heading { display:flex; justify-content:space-between; margin-bottom:20px; }#empty-records { padding:60px 0; text-align:center; }#empty-records h2 { font:30px var(--font-serif); }#empty-records p { margin:20px 0; color:var(--text-secondary); }
.project-legend { display:flex; flex-wrap:wrap; gap:24px; font:10px/1.7 var(--font-sans); color:var(--text-secondary); margin-bottom:36px; }.expedition { display:grid; grid-template-columns:170px 1fr; gap:44px; border-top:1px solid var(--border); padding:44px 0; }.expedition-index { font:10px/1.7 var(--font-mono); letter-spacing:1px; }.project-status { display:block; margin-top:18px; font:9px/1.6 var(--font-sans); letter-spacing:1px; color:var(--text-secondary); }.project-status:before { content:'○'; margin-right:8px; }.project-status.active:before { content:'●'; color:var(--accent-blue); }.project-status.complete:before { content:'✓'; }.project-status.lost:before { content:'—'; }.expedition h2 { font:34px/1.3 var(--font-serif); }.expedition dl { display:flex; flex-wrap:wrap; gap:24px 40px; margin:28px 0; }.expedition dt { font:9px/1.7 var(--font-mono); color:var(--text-secondary); margin-bottom:8px; }.expedition dd { margin:0; font-size:12px; }.expedition p { font:18px/1.8 var(--font-serif); max-width:65ch; margin-bottom:24px; color:var(--text-secondary); }.project-brief { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; border-top:1px solid var(--border); padding:40px 0; }.project-brief h2 { font:25px var(--font-serif); margin-bottom:20px; }.project-brief p { font:17px/1.8 var(--font-serif); color:var(--text-secondary); }
.article-breadcrumb { max-width:1200px; margin:0 auto; padding:32px var(--page-gutter); display:flex; justify-content:space-between; align-items:center; font:10px/1.6 var(--font-sans); color:var(--text-secondary); }.article-breadcrumb a { text-decoration:none; }.article-breadcrumb>span { font-family:var(--font-mono); }.page-container>.article-breadcrumb { padding:32px 0 0; }.article-heading { max-width:var(--article-width); margin:42px auto 52px; }.article-heading h1 { font:clamp(36px,4.2vw,52px)/1.16 var(--font-serif); letter-spacing:-1.4px; margin:22px 0; }.article-deck { font:21px/1.65 var(--font-serif); color:var(--text-secondary); margin-bottom:28px; }.article-author { display:flex; justify-content:space-between; border-top:1px solid var(--border); padding-top:20px; margin-top:24px; font-size:11px; color:var(--text-secondary); }.article-author span { font-size:10px; }
.article-layout { position:relative; max-width:1200px; margin:0 auto; padding:0 var(--page-gutter) 80px; }.prose { max-width:var(--article-width); margin:auto; font:18px/1.85 var(--font-serif); }.prose>p { margin:0 0 26px; }.prose h1 { font:40px/1.2 var(--font-serif); margin:48px 0 24px; }.prose h2 { font:32px/1.3 var(--font-serif); margin:52px 0 24px; scroll-margin-top:32px; }.prose h3 { font:24px/1.4 var(--font-serif); margin:36px 0 20px; }.prose a { color:var(--accent-blue); }.prose strong { font-weight:600; }.prose blockquote { margin:36px 0; padding:8px 0 8px 26px; }.prose blockquote p { font:italic 24px/1.6 var(--font-serif); }.prose ul,.prose ol { padding-left:26px; margin:24px 0; }.prose li { margin:8px 0; }.prose figure { margin:38px 0; }.prose img { width:100%; height:auto; display:block; background:var(--background-secondary); }.prose figcaption { font:13px/1.7 var(--font-sans); }.prose code { font-size:14px; background:var(--background-secondary); padding:3px 5px; overflow-wrap:anywhere; }.prose pre { margin:0 0 32px; padding:24px; font:14px/1.75 var(--font-mono); }.prose pre code { padding:0; white-space:pre; overflow-wrap:normal; }.code-copy { display:block; margin-left:auto; background:var(--background-secondary); border:0; border-bottom:1px solid var(--border); font:11px var(--font-sans); padding:10px 16px; min-height:36px; }.table-scroll { overflow-x:auto; margin:30px 0; }.prose table { width:100%; border-collapse:collapse; font:14px/1.7 var(--font-sans); }.prose th,.prose td { padding:14px 16px; text-align:left; border-bottom:1px solid var(--border); min-width:90px; }.prose th { background:var(--background-secondary); font-weight:600; }.prose .katex-display { overflow-x:auto; overflow-y:hidden; padding:16px 0; margin:24px 0; }.prose .katex { font-size:1.1em; }.prose .footnotes { font-size:15px; border-top:1px solid var(--border); padding-top:12px; margin-top:48px; }.prose .footnotes h2 { font-size:24px; }.prose sup { font-size:11px; }.article-toc { max-width:var(--article-width); margin:0 auto 40px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:18px 0; }.article-toc summary { cursor:pointer; font:10px/1.7 var(--font-sans); letter-spacing:1px; }.article-toc nav { display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:16px; }.article-toc a { font:12px/1.7 var(--font-sans); color:var(--text-secondary); }.article-end { display:flex; align-items:center; gap:16px; margin:48px 0; color:var(--accent-blue); font:10px var(--font-mono); }.article-actions { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:26px 0; border-top:1px solid var(--border); }.next-record { display:block; border-top:1px solid var(--border); padding:32px 0; text-decoration:none; }.next-record>span { display:block; }.next-record>span:last-child { font:28px/1.4 var(--font-serif); margin-top:18px; }.next-record>span:last-child>span { margin-left:16px; }
.archive-years { display:flex; gap:28px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:20px 0; }.archive-years a { font:14px var(--font-mono); }.archive-years .micro { margin-left:auto; }.archive-year { display:grid; grid-template-columns:140px 1fr; gap:40px; padding:48px 0; border-bottom:1px solid var(--border); }.archive-year>h2 { font:40px var(--font-serif); }.archive-month { margin-bottom:36px; }.archive-month:last-child { margin-bottom:0; }.archive-month h3 { font:11px var(--font-sans); text-transform:uppercase; letter-spacing:1.5px; color:var(--text-secondary); margin-bottom:18px; }.archive-entry { display:grid; grid-template-columns:26px 1fr 100px; gap:20px; align-items:baseline; padding:17px 0; border-top:1px solid var(--border); }.archive-entry time { font:11px var(--font-mono); color:var(--text-secondary); }.archive-entry a { font:21px/1.5 var(--font-serif); text-decoration:none; }.archive-entry a:hover { text-decoration:underline; }.archive-entry>span { font:10px var(--font-sans); color:var(--text-secondary); text-align:right; }
.about-copy h2 { font:28px/1.4 var(--font-serif); margin:36px 0 20px; }.about-copy h2:first-child { margin-top:0; }.about-copy p,.about-copy li { font:18px/1.85 var(--font-serif); margin-bottom:24px; }.about-copy li { margin-bottom:8px; }.about-copy a { color:var(--accent-blue); }.about-copy ul { padding-left:22px; }.about-copy .about-placeholder { font:12px/1.8 var(--font-sans); color:var(--text-secondary); border-top:1px solid var(--border); padding-top:24px; margin-top:36px; }.about-note { margin-top:40px; padding-top:24px; border-top:1px solid var(--border); }.about-note p { font:18px/1.8 var(--font-serif); margin-top:20px; }.about-pattern { max-width:400px; margin:70px auto 0; opacity:.65; }
.blog main.not-found { min-height:72vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:70px 24px; }.error-number { font:100px/1 var(--font-serif); color:var(--text-secondary); letter-spacing:-5px; margin-bottom:30px; }.not-found svg { color:var(--accent-blue); margin-bottom:28px; }.not-found h1 { font:13px/1.7 var(--font-sans); letter-spacing:2px; }.not-found p { font:19px/1.8 var(--font-serif); color:var(--text-secondary); margin:20px 0 30px; }
@media(min-width:1500px){.article-toc { position:absolute; left:0; width:155px; }.article-toc nav { flex-direction:column; }.article-layout { max-width:1280px; }}
@media(max-width:1050px){.blog-header nav { gap:24px; }.blog-header { gap:24px; }.current-expedition-grid { gap:32px; }.selected-writing { gap:24px; }.short-about { grid-template-columns:1fr 2fr; }.short-about>a { grid-column:2; justify-self:start; }.article-heading { margin-left:var(--page-gutter); margin-right:var(--page-gutter); max-width:720px; }.expedition { grid-template-columns:130px 1fr; gap:32px; }.blog-footer { flex-wrap:wrap; }.blog-footer>span { text-align:left; }.hero-bottom>span:last-child { display:none; }}
@media(max-width:760px){.blog-header { min-height:80px; flex-wrap:wrap; padding-top:20px; padding-bottom:20px; }.menu-toggle { display:flex; gap:24px; align-items:center; min-height:40px; border:0; background:transparent; font-size:12px; }.blog-header nav { display:none; flex-basis:100%; flex-direction:column; gap:0; border-top:1px solid var(--border); padding-top:10px; }.blog-header nav.is-open { display:flex; }.blog-header nav a { flex-direction:row; justify-content:space-between; padding:16px 0; }.blog-header nav a[aria-current=page]:after { width:28px; }.blog .field-hero { min-height:630px; padding-top:54px; }.hero-content h1 { font-size:52px; }.hero-environment { object-position:65% center; }.field-hero:after { background:linear-gradient(90deg,rgba(247,248,248,.96),rgba(247,248,248,.83) 45%,rgba(247,248,248,.4)); }.hero-bottom { font-size:7px; }.blog-section { padding:48px 0; }.record-row,.record-row.compact { grid-template-columns:1fr 60px; gap:16px; padding:28px 0; }.record-number { grid-column:1/-1; font-size:9px; }.record-row h2 { font-size:26px; }.record-row p { font-size:16px; }.current-expedition-grid { grid-template-columns:1fr; }.expedition-image img { height:auto; aspect-ratio:16/8; }.selected-writing { grid-template-columns:1fr; gap:32px; }.selected-writing h3 { max-width:30ch; }.selected-writing p { max-width:60ch; }.short-about { display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding:40px 0; }.short-about .eyebrow { max-width:none; }.short-about p { font-size:23px; }.blog-footer { flex-direction:column; gap:28px; }.blog-footer>div:nth-child(2) { gap:20px; }.page-heading { padding-top:50px; padding-bottom:36px; }.page-heading h1 { font-size:44px; }.page-heading>p { font-size:18px; }.record-tools { flex-wrap:wrap; gap:16px; padding:20px; }.record-tools label:first-child { flex-basis:100%; }.record-tools label:nth-child(2) { flex:1; }.expedition { grid-template-columns:1fr; gap:20px; }.expedition-index { display:flex; align-items:center; gap:28px; }.project-status { margin:0; }.expedition h2 { font-size:32px; }.expedition dl { gap:24px; }.project-brief { grid-template-columns:1fr; gap:32px; }.article-heading { margin-top:26px; }.article-heading h1 { font-size:40px; }.article-deck { font-size:19px; }.prose { font-size:18px; line-height:1.85; }.prose h2 { font-size:28px; }.prose blockquote p { font-size:22px; }.article-author { flex-wrap:wrap; gap:12px; }.archive-year { grid-template-columns:1fr; gap:28px; }.archive-entry { grid-template-columns:24px 1fr; gap:14px; }.archive-entry>span { grid-column:2; text-align:left; }.archive-entry a { font-size:22px; }.about-pattern { margin-top:48px; }}
@media(max-width:440px){.blog .field-hero { min-height:610px; padding-top:40px; }.hero-content h1 { font-size:43px; letter-spacing:-1.6px; }.hero-byline { margin-bottom:24px; }.hero-content>.eyebrow { font-size:8px; }.hero-subtitle { font-size:11px; }.hero-subtitle span { margin:0 6px; }.hero-bottom>span { display:none; }.hero-bottom a { font-size:8px; }.blog-section-heading { align-items:flex-start; flex-direction:column; gap:18px; }.blog-section-heading h2 { font-size:30px; }.record-row,.record-row.compact { grid-template-columns:1fr; }.record-row>.read-link { margin-top:0; }.record-meta { gap:6px; font-size:10px; }.page-heading h1 { font-size:38px; }.record-tools label:nth-child(2) { flex-basis:100%; }.record-tools .button { width:100%; justify-content:center; }.article-heading h1 { font-size:35px; letter-spacing:-1px; }.article-deck { font-size:19px; }.article-actions { flex-wrap:wrap; }.prose pre { padding:18px; font-size:13px; }.prose pre code { font-size:13px; }.prose th,.prose td { padding:12px; }.prose .katex { font-size:1em; }.project-legend { gap:12px 20px; }.expedition dl { flex-direction:column; gap:18px; }.expedition dl>div { display:grid; grid-template-columns:90px 1fr; gap:12px; }.expedition dt { margin:0; }.archive-years { gap:20px; }.archive-years .micro { font-size:10px; }.not-found h1 { font-size:11px; }.not-found p { font-size:17px; }}
@media print { .blog-header,.blog-footer,.article-toc,.article-actions,.next-record,.code-copy,.article-breadcrumb { display:none; }.blog { background:white; color:black; }.article-heading,.prose { max-width:none; }.article-layout { padding:0; }.prose pre,.table-scroll { overflow:visible; }.prose a { color:inherit; }.prose img { break-inside:avoid; } }
@media(max-width:760px) { html:not(.has-js) .blog-header nav { display:flex; } html:not(.has-js) .menu-toggle { display:none; } }
.article-heading { width:calc(100% - var(--page-gutter) * 2); margin-left:auto; margin-right:auto; }
.hero-bottom>span:last-child { background:rgba(247,248,248,.92); padding:7px 10px; }
html:not(.has-js) .copy-article { display:none; }
.menu-toggle { min-height:44px; }
