:root {
  --ink: #000000;
  --muted: #000000;
  --paper: #ffffff;
  --wash: #ffffff;
  --accent: #000000;
  --line: #000000;
  --serif: "DM Serif Display", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", monospace;
}

:root[data-theme="dark"] {
  --ink: #ffffff;
  --muted: #ffffff;
  --paper: #000000;
  --wash: #000000;
  --accent: #ffffff;
  --line: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.page-shell { width: min(100% - 64px, 1320px); margin: auto; }

.site-header { min-height: 84px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.brand { color: var(--accent); font-size: .73rem; font-weight: 600; letter-spacing: .13em; }
.header-actions { display: flex; align-items: center; gap: 25px; }
.portfolio-link, .site-footer { font-family: var(--mono); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.theme-toggle { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-family: var(--mono); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.theme-glyph { color: var(--accent); font-size: .9rem; line-height: 1; }
.theme-toggle:hover { color: var(--accent); }
.portfolio-link { display: inline-flex; gap: 7px; align-items: center; transition: color .2s ease; }
.portfolio-link span { font-size: .9rem; line-height: 0; transition: transform .2s ease; }
.portfolio-link:hover { color: var(--accent); }
.portfolio-link:hover span { transform: translate(2px, -2px); }

.journal { padding: 0 0 8rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.journal-meta { display: flex; align-items: center; justify-content: flex-end; min-height: 58px; border-bottom: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: .75rem; letter-spacing: .055em; text-transform: uppercase; }
.journal-meta p { width: 100%; margin: 0; text-align: right; }
.journal-intro { max-width: 1110px; padding-bottom: clamp(4.5rem, 9vw, 8rem); }
.eyebrow { margin: 0; color: var(--accent); font-family: var(--mono); font-size: .75rem; letter-spacing: .075em; line-height: 1.4; text-transform: uppercase; }
.eyebrow span { padding: 0 4px; }
.journal-intro .eyebrow { margin-bottom: 27px; }
.journal-intro h1 { max-width: 1000px; margin: 0; font-family: var(--serif); font-size: clamp(3.75rem, 9.4vw, 9.25rem); font-weight: 400; letter-spacing: -.065em; line-height: .86; }
.journal-intro h1 em { color: var(--accent); font-style: italic; }
.journal-intro > p:last-child { max-width: 440px; margin: 36px 0 0 auto; color: var(--ink); font-size: clamp(.93rem, 1.4vw, 1.08rem); line-height: 1.8; }

.post-list { border-top: 0; }
.post-card { position: relative; display: grid; grid-template-columns: minmax(220px, .78fr) minmax(0, 1.22fr); gap: clamp(2rem, 6vw, 6.5rem); align-items: center; padding: clamp(1.5rem, 2vw, 2.25rem) 0; border-bottom: 1px solid var(--line); }
.post-card:nth-child(even) { grid-template-columns: minmax(0, 1.12fr) minmax(250px, .88fr); }
.post-card:nth-child(even) .post-card-media { order: 2; }
.post-card-media { position: relative; display: block; height: clamp(250px, 20vw, 320px); min-height: 0; overflow: hidden; background: var(--wash); }
.post-card-media::after { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 52%, rgba(23, 25, 20, .07)); content: ""; pointer-events: none; }
.post-card-media img { width: 100%; height: 100%; min-height: 0; object-fit: cover; filter: saturate(.88) contrast(.97); transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.post-card:hover .post-card-media img { transform: scale(1.045); filter: saturate(1.05) contrast(1); }
.post-index { position: absolute; top: 18px; left: 18px; z-index: 1; display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.74); border-radius: 50%; color: white; font-family: var(--mono); font-size: .75rem; backdrop-filter: blur(8px); }
.post-card-copy { padding: 1rem 0; }
.post-card-copy .eyebrow { margin-bottom: 24px; }
.post-card h2 { max-width: 590px; margin: 0; font-family: var(--serif); font-size: clamp(2rem, 3.35vw, 3.5rem); font-weight: 400; letter-spacing: -.05em; line-height: .98; }
.post-card h2 a { background-image: linear-gradient(var(--accent), var(--accent)); background-position: 0 100%; background-repeat: no-repeat; background-size: 0 1px; transition: color .2s ease, background-size .35s ease; }
.post-card h2 a:hover { color: var(--accent); background-size: 100% 1px; }
.post-card-copy > p:not(.eyebrow) { max-width: 500px; margin: 25px 0 30px; color: var(--ink); font-size: .95rem; line-height: 1.75; }
.text-link, .back-link, .post-kicker { color: var(--accent); font-family: var(--mono); font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.text-link { display: inline-flex; gap: 8px; align-items: center; border-bottom: 1px solid var(--accent); padding-bottom: 5px; }
.text-link span { font-size: .93rem; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }
.empty-state { padding: 56px 0; color: var(--muted); }

.post { padding: clamp(3.5rem, 9vw, 8rem) 0 clamp(5rem, 11vw, 10rem); }
.post-header { max-width: 1120px; margin-bottom: clamp(3.5rem, 7vw, 6.5rem); }
.post-kicker { display: inline-flex; gap: 8px; margin-bottom: clamp(4rem, 8vw, 7rem); color: var(--ink); }
.post-kicker span { color: var(--accent); font-size: .9rem; }
.post-header .eyebrow { margin-bottom: 24px; }
.post-header h1 { max-width: 1050px; margin: 0; font-family: var(--serif); font-size: clamp(3.35rem, 8vw, 8rem); font-weight: 400; letter-spacing: -.065em; line-height: .9; }
.post-summary { max-width: 590px; margin: 33px 0 0 auto; color: var(--ink); font-size: clamp(1rem, 1.8vw, 1.24rem); line-height: 1.75; }
.post-cover { width: min(100%, 1160px); height: min(63vw, 670px); margin: 0 0 clamp(3.5rem, 8vw, 8rem) auto; overflow: hidden; background: var(--wash); }
.post-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.post-reading-grid { display: grid; grid-template-columns: 150px minmax(0, 690px); gap: clamp(2rem, 7vw, 9rem); width: min(100%, 1030px); margin: auto; }
.post-margin-note { display: flex; flex-direction: column; gap: 8px; padding-top: 8px; color: var(--muted); font-family: var(--mono); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.post-content { font-size: clamp(1rem, 1.55vw, 1.13rem); line-height: 1.9; }
.post-content p { margin: 0 0 1.65em; }
.post-content h2, .post-content h3 { margin: 2.4em 0 .6em; font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; line-height: 1.02; }
.post-content h2 { font-size: clamp(2rem, 3.4vw, 3.1rem); }
.post-content h3 { font-size: 1.65rem; }
.post-content ul, .post-content ol { margin: 0 0 1.8em; padding-left: 1.2em; }
.post-content li { padding-left: .4em; margin-bottom: .45em; }
.post-content a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(76,109,80,.55); text-underline-offset: 3px; }
.post-content figure { margin: 3.5em 0; }
.post-content figure img { display: block; width: 100%; max-width: 100%; height: auto; max-height: 85vh; margin: 0 auto; border: 1px solid var(--line); object-fit: contain; }
.post-content figcaption { margin-top: 11px; color: var(--muted); font-family: var(--mono); font-size: .75rem; letter-spacing: .02em; line-height: 1.55; }
.post-content .image-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 3.5em 0; }
.post-content .image-pair figure { margin: 0; }
.post-content .mobile-figure { max-width: 390px; margin-right: auto; margin-left: auto; }
.project-callout { margin: 3.3em 0; padding: 28px 30px 30px; border: 1px solid var(--line); border-left: 4px solid var(--accent); background: var(--wash); }
.project-callout .eyebrow { margin-bottom: 14px; }
.project-callout p:not(.eyebrow) { margin: 0; color: var(--ink); font-size: 1rem; line-height: 1.75; }
.project-callout a { display: inline-flex; gap: 7px; margin-top: 19px; color: var(--accent); font-family: var(--mono); font-size: .75rem; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.project-callout a span { font-size: .9rem; }
.back-link { display: inline-block; margin: clamp(4rem, 8vw, 7rem) 0 0 calc(50% - 345px); color: var(--ink); border-bottom: 1px solid var(--accent); padding-bottom: 5px; }

.site-footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 1.5rem; padding: 24px 0 34px; border-top: 1px solid var(--line); color: var(--muted); }
.site-footer p { margin: 0; }
.site-footer a { color: var(--ink); transition: color .2s ease; }
.site-footer a:hover { color: var(--accent); }

:root[data-theme="dark"] .post-card-media img { filter: saturate(.78) brightness(.88) contrast(1.02); }
:root[data-theme="dark"] .post-card:hover .post-card-media img { filter: saturate(.93) brightness(.98) contrast(1.02); }

@media (max-width: 760px) {
  .page-shell { width: min(100% - 36px, 1320px); }
  .site-header { min-height: 96px; }
  .header-actions { flex-direction: column; align-items: flex-end; gap: 7px; }
  .journal { padding: 0 0 5.5rem; }
  .journal-meta { min-height: 66px; }
  .journal-intro { padding-bottom: 4.5rem; }
  .journal-intro h1 { font-size: clamp(3.2rem, 15vw, 5.4rem); line-height: .88; }
  .journal-intro > p:last-child { margin: 30px 0 0; }
  .post-card, .post-card:nth-child(even) { grid-template-columns: 1fr; gap: 1.8rem; padding: 2rem 0 3rem; }
  .post-card:nth-child(even) .post-card-media { order: 0; }
  .post-card-media { height: 220px; min-height: 220px; }
  .post-card-media img { min-height: 220px; }
  .post-card h2 { font-size: clamp(2.1rem, 10vw, 3.2rem); }
  .post-card-copy { padding: 0; }
  .post { padding: 3rem 0 5.5rem; }
  .post-kicker { margin-bottom: 4.25rem; }
  .post-header h1 { font-size: clamp(3rem, 14vw, 5.7rem); }
  .post-summary { margin: 26px 0 0; }
  .post-cover { height: 60vw; min-height: 230px; margin-bottom: 3.5rem; }
  .post-reading-grid { display: block; }
  .post-margin-note { flex-direction: row; margin-bottom: 2rem; }
  .post-content { font-size: 1rem; line-height: 1.82; }
  .post-content .image-pair { grid-template-columns: 1fr; }
  .back-link { margin-left: 0; }
  .site-footer { grid-template-columns: 1fr; gap: 9px; }
}
