/* NexusMKTG — site stylesheet. Tokens from the Nexus design system; two themes (paper, ink). */

/* ---------- Fonts (self-hosted; only the weights the site sets) ---------- */
@font-face{font-family:"Aeonik";src:url("/assets/fonts/Aeonik-Thin.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:"Aeonik";src:url("/assets/fonts/Aeonik-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Aeonik";src:url("/assets/fonts/Aeonik-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Aeonik";src:url("/assets/fonts/Aeonik-RegularItalic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Aeonik";src:url("/assets/fonts/Aeonik-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/SourceSerif4-Italic-latin.woff2") format("woff2");font-weight:300 400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Tokens ---------- */
:root{
  --ink:#131110;--paper:#F7F5F0;--bronze:#7A5C33;--umber:#524C44;
  --paper-tint:#F1EEE7;--paper-deep:#E9E5DC;--paper-shade:#DED8CC;
  --rule-fine:#D9D3C7;--rule:#C7C0B1;--rule-strong:#A49C8D;--umber-light:#7C756B;
  --ink-raised:#1D1A18;--ink-rule:#332F2B;--ink-rule-strong:#4A443E;--on-ink-mute:#A9A29A;
  --bronze-deep:#5E4626;--bronze-light:#9C7A48;--bronze-wash:#EDE7DB;--link-on-inverse:#C9A876;
  --status-critical:#7B3A2C;

  --surface-page:var(--paper);--surface-raised:var(--paper-tint);--surface-sunken:var(--paper-deep);
  --text-primary:var(--ink);--text-secondary:var(--umber);--text-tertiary:var(--umber-light);--text-accent:var(--bronze);
  --text-on-accent:var(--paper);
  --border-hairline:var(--rule-fine);--border-default:var(--rule);--border-strong:var(--ink);--border-accent:var(--bronze);
  --link:var(--bronze);--link-hover:var(--bronze-deep);--focus-ring:var(--bronze);

  --font-sans:"Aeonik",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-serif:"Source Serif 4",Georgia,serif;
  --page-max:1320px;--page-pad:clamp(20px,4vw,64px);
  --ease-out:cubic-bezier(0.16,1,0.3,1);--ease-reveal:cubic-bezier(0.65,0,0.35,1);
  --nx-logo-ink:block;--nx-logo-paper:none;--nx-moon:inline-flex;--nx-sun:none;
  --ink-chapter-bg:#131110;--ink-chapter-alt-bg:#131110;
  /* Ink-theme surface ramp, widened 2026-09-05 so adjacent sections differ about as much as paper vs paper-deep
     (L* steps of about 6 and 9 above Ink; warm, no blue cast). Before: raised #282218, sunken #0B0A08. */
  --ink-surface-sunken:#221E1A;--ink-surface-raised:#2A241F;
}
/* In the ink site theme an explicitly ink chapter would match the page ground, so it takes the sunken step instead. */
html[data-site-theme="ink"]{--ink-chapter-bg:var(--ink-surface-sunken)}
html[data-site-theme="ink"] .chapter[data-theme="ink"]{background:var(--surface-sunken)}
html[data-site-theme="ink"] .chapter[data-theme="ink"] .chapter-num{color:var(--surface-page)}
/* An ink chapter that follows a sunken one takes the raised step instead, so neighbors never share a tone. */
html[data-site-theme="ink"]{--ink-chapter-alt-bg:var(--ink-surface-raised)}
html[data-site-theme="ink"] .chapter--ink-alt[data-theme="ink"]{background:var(--surface-raised)}
html[data-site-theme="ink"] .quote-section[data-theme="ink"]{background:var(--surface-sunken)!important}
/* Dark scope: any element with data-theme="ink" (the whole page when the ink theme is on). */
[data-theme="ink"]{
  --surface-page:#131110;--surface-raised:var(--ink-surface-raised);--surface-sunken:var(--ink-surface-sunken);
  --text-primary:var(--paper);--text-secondary:var(--on-ink-mute);--text-tertiary:var(--on-ink-mute);--text-accent:var(--link-on-inverse);
  --border-hairline:#3B342B;--border-default:var(--ink-rule-strong);--border-strong:var(--paper);
  --link:var(--link-on-inverse);--link-hover:var(--paper);--focus-ring:var(--link-on-inverse);
  --status-critical:#D9977F; /* error text on ink surfaces; the paper-theme #7B3A2C fails on dark */
  --nx-logo-ink:none;--nx-logo-paper:block;
}
[data-theme="paper"]{
  --surface-page:var(--paper);--surface-raised:var(--paper-tint);--surface-sunken:var(--paper-deep);
  --text-primary:var(--ink);--text-secondary:var(--umber);--text-tertiary:var(--umber-light);--text-accent:var(--bronze);
  --border-hairline:var(--rule-fine);--border-default:var(--rule);--border-strong:var(--ink);
  --link:var(--bronze);--link-hover:var(--bronze-deep);--focus-ring:var(--bronze);
  --nx-logo-ink:block;--nx-logo-paper:none;
}
[data-site-theme="ink"]{--nx-moon:none;--nx-sun:inline-flex}
[data-site-theme="paper"]{--nx-moon:inline-flex;--nx-sun:none}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--surface-page);color-scheme:light}
html[data-site-theme="ink"]{color-scheme:dark}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font:400 17px/1.62 var(--font-sans);text-wrap:pretty}
h1,h2,h3,h4{margin:0;font-weight:400;letter-spacing:-0.015em;text-wrap:balance}
p{margin:0}
a{color:var(--link);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--link) 40%,transparent);transition:color 180ms var(--ease-out),border-color 180ms var(--ease-out)}
a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:1px solid var(--focus-ring);outline-offset:3px}
img,svg{display:block;max-width:100%}
img{height:auto}
[hidden]{display:none!important}
button{font-family:inherit}
::selection{background:var(--bronze);color:var(--paper)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;border:0}
.skip-link:focus{top:12px}

.wrap{max-width:var(--page-max);margin:0 auto;padding-left:var(--page-pad);padding-right:var(--page-pad)}
.page{background:var(--surface-page);color:var(--text-primary);display:flex;flex-direction:column;min-height:100vh}
.page > main{flex:1}

/* ---------- Type helpers ---------- */
.eyebrow{font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-secondary)}
.eyebrow--accent{color:var(--text-accent);letter-spacing:0.16em}
.rule-mark{width:48px;height:2px;background:var(--text-accent)}
.kicker{display:flex;flex-direction:column;gap:16px}
.display{font-weight:300;letter-spacing:-0.025em;line-height:1.04;text-wrap:balance}
.standfirst{margin:0;padding-top:24px;border-top:1px solid var(--border-hairline);font-size:clamp(18px,1.8vw,23px);font-weight:400;line-height:1.5;max-width:52ch;color:var(--text-secondary);text-wrap:pretty}
.prose{display:flex;flex-direction:column;gap:24px;font-size:17px;line-height:1.62;max-width:64ch}
.prose p{margin:0}
.lede{margin:0;font-size:clamp(21px,2.2vw,28px);font-weight:300;line-height:1.4;letter-spacing:-0.015em;max-width:52ch}
.caption{font-size:13px;color:var(--text-secondary)}
.serif-quote{margin:0;padding:0;font-family:var(--font-serif);font-weight:300;font-style:italic;letter-spacing:-0.01em;line-height:1.24}
.arrow-link{display:inline-flex;align-items:center;gap:8px;font-size:17px;white-space:nowrap;align-self:flex-start}
.arrow-link svg{width:15px;height:15px;flex:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;font:500 15px/1.1 var(--font-sans);letter-spacing:0.01em;border-radius:0;text-decoration:none;cursor:pointer;transition:color 180ms var(--ease-out),background-color 180ms var(--ease-out),border-color 180ms var(--ease-out);box-shadow:none;white-space:nowrap}
.btn:active{filter:brightness(0.88)}
.btn--sm{padding:9px 16px;font-size:13px;gap:8px}
.btn--lg{padding:18px 34px;font-size:17px;gap:12px}
.btn--full{display:flex;width:100%}
.btn--primary{background:transparent;color:var(--text-primary);border:1px solid var(--text-primary)}
.btn--primary:hover{background:var(--text-primary);color:var(--surface-page);border-color:var(--text-primary)}
/* Bronze fills retired from buttons (Visual Identity Guide: bronze is a small accent; MASTER_PAGE_PROMPT: the primary button is an outline that fills). */

/* ---------- Header / nav ---------- */
.site-header{position:sticky;top:0;z-index:40;background:var(--surface-page);border-bottom:1px solid var(--border-hairline);color:var(--text-primary)}
.site-header .wrap{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-header a:not(.btn){border-bottom:none;color:inherit}
.brand{display:block}
.brand img{width:150px;height:auto}
.nx-logo-ink{display:var(--nx-logo-ink)}
.nx-logo-paper{display:var(--nx-logo-paper)}
.nav-desktop{display:none;align-items:center;gap:clamp(20px,3vw,40px);white-space:nowrap}
.nav-link{position:relative;display:inline-block;font:400 15px/1 var(--font-sans);letter-spacing:0.01em;color:var(--text-secondary);padding-bottom:4px;transition:color 180ms var(--ease-out)}
.nav-link::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--border-strong);transition:width 280ms var(--ease-out)}
.nav-link:hover,.nav-link[aria-current="page"]{color:var(--text-primary)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{width:100%}
.icon-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0;color:var(--text-secondary);cursor:pointer;transition:color 180ms var(--ease-out)}
.icon-btn:hover{color:var(--text-accent)}
.icon-btn svg{width:18px;height:18px}
.icon-btn--menu{color:var(--text-primary)}
.icon-btn--menu svg{width:24px;height:24px}
.nx-moon{display:var(--nx-moon);align-items:center}
.nx-sun{display:var(--nx-sun);align-items:center}
.theme-toggle{margin:0 -8px}
.menu-btn{display:flex}
@media (min-width:880px){.nav-desktop{display:flex}.menu-btn{display:none}}
.site-menu{position:fixed;inset:0;z-index:60;background:#131110;color:#F7F5F0;display:none;flex-direction:column}
.site-menu[data-open]{display:flex;animation:nxMenuIn 280ms var(--ease-out)}
.site-menu .menu-bar{display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 20px;border-bottom:1px solid #332F2B;flex:none}
.site-menu .menu-bar img{width:140px}
.site-menu nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:36px;padding:40px 24px}
.site-menu nav a{color:#F7F5F0;font-weight:300;font-size:34px;line-height:1.1;letter-spacing:-0.015em;border-bottom:none;align-self:flex-start}
.site-menu .menu-foot{padding:0 24px 40px;flex:none}
.site-menu .icon-btn{color:#A9A29A}
.site-menu .icon-btn--close{color:#F7F5F0}
@keyframes nxMenuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
body[data-menu-open]{overflow:hidden}

/* ---------- Chapter rail ---------- */
.rail{display:none;position:fixed;left:28px;top:50%;transform:translateY(-50%);z-index:30;flex-direction:column;gap:22px;align-items:flex-start}
.rail-track{position:relative;width:1px;height:72px;background:var(--border-hairline);margin-left:3px}
.rail-fill{position:absolute;top:0;left:0;width:1px;height:0;background:var(--text-accent)}
.rail-item{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:500;letter-spacing:0.14em;color:var(--text-secondary);transition:color 280ms;background:none;border:0;padding:0;cursor:pointer;font-family:inherit}
.rail-item b{width:14px;height:1px;background:transparent;transition:background 280ms}
.rail-item[aria-current="true"]{color:var(--text-primary)}
.rail-item[aria-current="true"] b{background:var(--text-accent)}
@media (min-width:1181px){.rail[data-ready]{display:flex}}

/* ---------- Heroes ---------- */
.hero{background:var(--surface-page);color:var(--text-primary)}
.hero--ruled{border-bottom:1px solid var(--border-hairline)}
.hero-grid{display:flex;flex-wrap:wrap;align-items:stretch;gap:0 clamp(32px,4vw,64px)}
.hero-copy{flex:1.4 1 440px;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:clamp(48px,6vw,88px) 0}
.hero-figure{flex:1 1 320px;margin:0;min-width:min(100%,320px);position:relative;overflow:hidden;min-height:280px;max-height:560px}
.hero-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-figure--tall{min-height:clamp(280px,50vw,460px)}
.hero-figure--tall img{inset:-48px 0;height:calc(100% + 96px)}
.hero-figure--plain{min-height:clamp(280px,50vw,460px)}
.hero-display{font-size:clamp(40px,5.5vw,84px);line-height:1;font-weight:300;letter-spacing:-0.025em;text-wrap:balance}
.hero-display--xl{font-size:clamp(44px,6.5vw,100px)}
.hero-h1{margin:0;font-size:clamp(18px,1.8vw,23px);font-weight:400;line-height:1.5;max-width:52ch;color:var(--text-secondary);text-wrap:pretty}
.hero-h1--ruled{padding-top:24px;border-top:1px solid var(--border-hairline)}
.hero-h1--display{font-size:clamp(44px,6.5vw,100px);line-height:1;font-weight:300;letter-spacing:-0.025em;color:var(--text-primary);max-width:none}
.hero-tag{margin-top:8px;padding-top:24px;border-top:1px solid var(--border-hairline);font-size:clamp(21px,2.1vw,27px);font-weight:300;letter-spacing:-0.015em;color:var(--text-primary)}
.scroll-cue{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-secondary)}
.scroll-cue::before{content:"";width:1px;height:36px;background:var(--border-hairline)}

/* Home hero */
.home-hero .hero-grid{padding:clamp(40px,6vw,88px) 0;gap:40px 48px}
.home-hero .hero-copy{flex:1.15 1 440px;padding:0}
.home-hero .hero-display{font-size:clamp(36px,4.8vw,68px);line-height:1.04}
.home-hero .hero-h1{font-size:clamp(17px,1.7vw,21px);line-height:1.55}
.hero-canvas-host{flex:1 1 320px;min-height:300px;position:relative}
.hero-canvas-host canvas{position:absolute;inset:0;pointer-events:none;color:var(--text-tertiary)}
.home-intro{border-top:1px solid var(--border-hairline)}
.home-intro .wrap{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px);display:flex;flex-direction:column;gap:clamp(40px,5vw,56px)}
.photo-trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.photo-trio img{width:100%;height:clamp(200px,22vw,280px);object-fit:cover}

/* About hero */
.about-hero .hero-grid{min-height:clamp(540px,86vh,860px)}
.about-hero .hero-copy{flex:1.2 1 460px;gap:32px;padding:clamp(56px,7vw,96px) 0}
.about-name{display:flex;flex-direction:column;font-size:clamp(56px,9vw,138px);line-height:0.98;font-weight:200;letter-spacing:-0.025em}
.about-hero .hero-h1{padding-top:28px;border-top:1px solid var(--border-hairline);max-width:46ch}
.about-hero .hero-figure{flex:1 1 360px;min-width:min(100%,360px);min-height:clamp(320px,60vw,520px);max-height:none}

/* ---------- Chapters (numbered editorial sections) ---------- */
.chapter{position:relative;overflow:hidden;background:var(--surface-page);color:var(--text-primary)}
[data-theme]{color:var(--text-primary)}
.chapter--sunken{background:var(--surface-sunken)}
.chapter--raised{background:var(--surface-raised)}
.chapter-num{position:absolute;top:clamp(16px,3vw,40px);right:clamp(8px,2vw,32px);font-size:clamp(160px,26vw,380px);line-height:0.8;font-weight:200;color:var(--surface-sunken);user-select:none;pointer-events:none}
.chapter--sunken .chapter-num{color:var(--surface-page)}
.chapter--raised .chapter-num{color:var(--surface-page)}
[data-theme="ink"].chapter .chapter-num,[data-theme="ink"] .chapter .chapter-num{color:var(--surface-raised)}
[data-theme="ink"].chapter--raised .chapter-num{color:var(--surface-page)}
[data-theme="ink"].chapter--sunken .chapter-num{color:var(--surface-raised)}
.chapter .wrap{position:relative}
.chapter-grid{display:flex;flex-wrap:wrap;gap:40px 32px;padding:clamp(64px,8vw,112px) 0}
.chapter-grid--loose{padding:clamp(72px,9vw,136px) 0}
.chapter-grid--airy{padding:clamp(80px,10vw,144px) 0}
.chapter-head{flex:1 1 240px;max-width:380px}
.chapter-head-inner{display:flex;flex-direction:column;gap:16px}
.chapter-head--sticky .chapter-head-inner{position:sticky;top:108px}
.chapter-head h2{font-size:clamp(26px,2.7vw,36px);font-weight:400;letter-spacing:-0.015em;line-height:1.12}
.chapter-head h2.display{font-size:clamp(28px,3vw,42px);font-weight:300;letter-spacing:-0.02em;line-height:1.08}
.chapter-body{flex:2 1 440px;min-width:min(100%,440px);max-width:64ch}
.chapter-body--wide{max-width:70ch}
.chapter-body--narrow{flex:1.6 1 400px;min-width:min(100%,400px);max-width:60ch}
.chapter-body .prose{max-width:none}
.chapter-side{flex:1 1 280px;min-width:min(100%,260px)}
.inline-figure{margin:8px 0;display:flex;flex-direction:column;gap:10px}
.inline-figure img{width:100%;aspect-ratio:5/2;object-fit:cover}
.aside-figure{margin:0;display:flex;flex-direction:column;gap:10px}
.note-line{border-top:1px solid var(--border-hairline);padding-top:20px;color:var(--text-secondary)}
.note-line strong{color:var(--text-primary);font-weight:500}
.site-shot{width:100%;height:auto;border:1px solid var(--border-hairline)}

/* Photo bands. The neighbors' backgrounds meet at the image's vertical midpoint (top half from the section above,
   bottom half from the section below), so the parallax never reveals the page ground. Set per band with
   --band-top and --band-bottom; --ink-chapter-bg is what a data-theme="ink" chapter paints. */
.band{position:relative;overflow:hidden;--band-top:var(--surface-page);--band-bottom:var(--surface-page)}
.band::before,.band::after{content:"";position:absolute;left:0;right:0;height:50%;z-index:0}
.band::before{top:0;background:var(--band-top)}
.band::after{bottom:0;background:var(--band-bottom)}
.band img{position:relative;z-index:1;display:block;width:100%;height:clamp(240px,36vw,480px);object-fit:cover}
.band--tall img{height:clamp(240px,38vw,500px)}
.band--taller img{height:clamp(280px,42vw,560px)}
.band--short img{height:clamp(220px,30vw,400px)}
.band--index img{height:clamp(240px,32vw,420px)}

/* Rows (stages, engagements, contact, privacy, journal) */
.rows{display:flex;flex-direction:column}
.rows > *{border-top:1px solid var(--border-hairline)}
.rows-end{border-top:1px solid var(--border-hairline)}
.stage{padding:22px 0;display:flex;gap:24px}
.stage-n{flex:none;width:32px;font-size:15px;font-variant-numeric:tabular-nums;color:var(--text-accent);padding-top:2px}
.stage-t{font-size:19px;font-weight:500;letter-spacing:-0.015em}
.stage-d{font-size:16px;line-height:1.55;color:var(--text-secondary);max-width:58ch}
.stage-body{display:flex;flex-direction:column;gap:6px}
.stage-body h3{font-size:19px;font-weight:500;letter-spacing:-0.015em}
.engagement{padding:26px 0;display:flex;flex-wrap:wrap;gap:8px 32px}
.engagement-name{flex:1 1 220px;display:flex;flex-direction:column;gap:4px}
.engagement-name h3{font-size:20px;font-weight:500;letter-spacing:-0.015em}
.engagement-price{font-size:15px;color:var(--text-accent)}
.engagement-desc{flex:1.4 1 280px;font-size:16px;line-height:1.55;color:var(--text-secondary)}
.pair-row{padding:28px 0;display:flex;flex-wrap:wrap;gap:16px 32px}
.pair-row--tight{padding:24px 0;gap:8px 32px}
.pair-label{flex:0 0 180px;font-size:13px;font-weight:500;letter-spacing:0.02em;color:var(--text-accent)}
.pair-body{flex:1 1 300px;display:flex;flex-direction:column;gap:20px}
.pair-body p{font-size:17px;line-height:1.62}
.big-mail{font-size:clamp(21px,2.4vw,30px);font-weight:300;letter-spacing:-0.015em;align-self:flex-start}

/* FAQ */
.faq details summary::-webkit-details-marker{display:none}
.faq details summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:18px;font-weight:500;letter-spacing:-0.01em}
.faq details summary svg{flex:none;width:16px;height:16px;color:var(--text-secondary);transition:transform 280ms var(--ease-reveal)}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq details p{margin:0;padding:0 40px 24px 0;font-size:16px;line-height:1.6;color:var(--text-secondary);max-width:60ch}

/* Case grid (home) */
.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,4vw,56px)}
.case{display:flex;flex-direction:column;gap:18px;border-top:1px solid var(--border-hairline);padding-top:24px}
.case h2,.case h3{font-size:20px;font-weight:500;letter-spacing:-0.015em;line-height:1.3}
.case p{font-size:16px;line-height:1.55;color:var(--text-secondary);max-width:52ch}

/* Pull-quote section */
.quote-section .wrap{padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(56px,7vw,96px);display:flex;justify-content:center}
.quote-section blockquote{font-size:clamp(30px,3.6vw,52px);line-height:1.22;max-width:26ch;text-align:center}

/* ---------- Forms ---------- */
.field{display:grid;gap:8px}
.field label{font-size:13px;line-height:1.34;letter-spacing:0.01em;color:var(--text-secondary)}
.field label .req{color:var(--text-accent)}
.input{width:100%;font:400 17px/1.62 var(--font-sans);color:var(--text-primary);background:transparent;border:0;border-bottom:1px solid var(--border-default);border-radius:0;padding:12px 0;outline:none;transition:border-color 180ms var(--ease-out);box-shadow:none}
.input:focus{border-bottom-color:var(--border-accent)}
.input[aria-invalid="true"]{border-bottom-color:var(--status-critical)}
textarea.input{resize:vertical;line-height:1.62}
.field-error{font-size:13px;color:var(--status-critical)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px 32px}
.form-stack{display:flex;flex-direction:column;gap:36px}
.form-status{border-top:1px solid var(--border-hairline);padding-top:32px;display:flex;flex-direction:column;gap:12px}
.form-status-title{font-size:clamp(21px,2vw,26px);font-weight:400;letter-spacing:-0.015em}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- Newsletter ---------- */
.newsletter{background:var(--surface-page);color:var(--text-primary)}
.newsletter-inner{border-top:1px solid var(--border-hairline);padding:clamp(56px,7vw,88px) 0 clamp(64px,8vw,96px);display:flex;flex-direction:column;gap:24px}
.newsletter h2{font-weight:300;font-size:32px;line-height:1.08;letter-spacing:-0.02em}
.newsletter p{font-size:17px;line-height:1.62;color:var(--text-secondary);max-width:56ch}
.newsletter form{display:flex;flex-direction:column;gap:24px;margin-top:8px}
.newsletter .caption{margin:0}
@media (min-width:720px){
  .newsletter-inner{display:grid;grid-template-columns:4fr 1fr 7fr;gap:32px;align-items:start}
  .newsletter-head{display:flex;flex-direction:column;gap:20px}
  .newsletter h2{font-size:clamp(34px,3vw,42px);line-height:1.04;letter-spacing:-0.025em}
  .newsletter-body{display:flex;flex-direction:column;gap:28px;padding-top:6px}
  .newsletter form{flex-direction:row;align-items:flex-end;margin-top:0}
  .newsletter form .field{flex:1;min-width:0}
  .newsletter .btn--full{display:inline-flex;width:auto}
}

/* ---------- Closing section ---------- */
.closing{background:var(--surface-raised);color:var(--text-primary)}
.closing-grid{display:flex;flex-wrap:wrap;align-items:stretch;gap:clamp(32px,4vw,72px);padding:clamp(56px,7vw,96px) 0}
.closing-copy{flex:1.2 1 420px;display:flex;flex-direction:column;justify-content:center;gap:28px}
.closing h2{font-weight:300;font-size:clamp(38px,4.2vw,54px);line-height:1.04;letter-spacing:-0.025em}
.closing p{font-size:17px;line-height:1.62;color:var(--text-secondary);max-width:52ch}
.closing figure{flex:1 1 340px;margin:0;position:relative;overflow:hidden;min-height:320px;max-height:460px;min-width:min(100%,300px)}
.closing figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-page);color:var(--text-primary);border-top:1px solid var(--border-hairline)}
.site-footer .wrap{padding-top:clamp(64px,8vw,96px)}
.site-footer a{color:var(--text-primary);border-bottom:none;transition:color 180ms var(--ease-out);font-size:15px}
.site-footer a:hover{color:var(--link)}
.footer-grid{display:flex;flex-direction:column;gap:48px}
.footer-brand{display:flex;flex-direction:column;gap:18px}
.footer-brand img{width:156px}
.footer-brand p{font-size:15px;line-height:1.6;color:var(--text-secondary);max-width:34ch}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px 24px}
.footer-col{display:flex;flex-direction:column;gap:14px}
.footer-col .eyebrow{letter-spacing:0.16em;margin-bottom:4px}
.footer-col a.eyebrow{font-size:11px}
.footer-col--contact{grid-column:1 / -1}
.footer-col .muted{font-size:15px;color:var(--text-secondary)}
.footer-bar{margin-top:clamp(56px,7vw,80px);border-top:1px solid var(--border-hairline);padding:16px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-bar .copy{font-size:13px;color:var(--text-secondary)}
.footer-bar-right{display:flex;align-items:center;gap:16px}
.footer-bar a{font-size:13px;color:var(--text-secondary)}
.footer-bar .theme-toggle{margin:0 -13px 0 0}
@media (min-width:720px){
  .footer-grid{display:grid;grid-template-columns:5fr 2fr 2fr 3fr;gap:32px;align-items:start}
  .footer-brand{gap:20px}
  .footer-brand img{width:168px}
  .footer-cols{display:contents}
  .footer-col--contact{grid-column:auto}
  .footer-col .eyebrow{margin-bottom:6px}
}

/* ---------- Journal index ---------- */
.journal-filters{background:var(--surface-sunken)}
.journal-filters .wrap{padding-top:clamp(40px,5vw,64px)}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{cursor:pointer;border:1px solid var(--border-default);background:transparent;color:var(--text-primary);padding:9px 16px;font:500 13px/1.2 var(--font-sans);letter-spacing:0.02em;transition:border-color 180ms var(--ease-out),background-color 180ms var(--ease-out),color 180ms var(--ease-out)}
.chip[aria-pressed="true"]{background:var(--text-primary);color:var(--surface-page);border-color:var(--text-primary)}
.chip-desc{margin-top:20px;font-size:14px;line-height:1.6;color:var(--text-secondary);max-width:64ch;min-height:22px}
.journal-list{background:var(--surface-sunken)}
.journal-list .wrap{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(64px,8vw,112px)}
.post-row{display:block;color:inherit;border-bottom:none;border-top:1px solid var(--border-hairline);padding:26px 0;transition:background-color 180ms var(--ease-out)}
.post-row:hover{background:var(--surface-raised);color:inherit}
.post-row[hidden]{display:none}
.post-row-grid{display:flex;flex-wrap:wrap;gap:8px 32px;align-items:baseline}
.post-row .pillar{flex:0 0 200px;font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-secondary)}
.post-row .post-main{flex:1.4 1 300px;display:flex;flex-direction:column;gap:6px}
.post-row h2,.post-row h3{font-size:20px;font-weight:500;letter-spacing:-0.015em;line-height:1.3}
.post-row .summary{font-size:15px;line-height:1.55;color:var(--text-secondary);max-width:56ch}
.post-row .meta{flex:0 0 110px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}
.journal-hero .hero-figure{min-height:clamp(280px,50vw,480px)}

/* ---------- Journal post ---------- */
.post-header .wrap{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(40px,5vw,64px)}
.post-head{max-width:820px;display:flex;flex-direction:column;gap:20px}
.post-head .kicker{gap:14px}
.post-head h1{font-size:clamp(32px,4.4vw,58px);font-weight:300;letter-spacing:-0.025em;line-height:1.06}
.byline{font-size:14px;color:var(--text-secondary)}
.post-body .wrap{padding-bottom:clamp(56px,7vw,96px)}
.article{max-width:64ch;font-size:17px;line-height:1.7;border-top:1px solid var(--border-hairline);padding-top:clamp(32px,4vw,48px)}
.article > *{margin:0 0 26px}
.article > *:last-child{margin-bottom:0}
.article h2{font-size:clamp(23px,2.4vw,30px);font-weight:400;letter-spacing:-0.015em;line-height:1.2;margin-top:44px}
.article h3{font-size:20px;font-weight:500;letter-spacing:-0.01em;line-height:1.3;margin-top:32px}
.article blockquote{margin:32px 0;padding:0;font-family:var(--font-serif);font-weight:300;font-style:italic;font-size:clamp(24px,2.5vw,32px);line-height:1.3;letter-spacing:-0.01em}
.article blockquote p{margin:0}
.article ul,.article ol{padding-left:1.3em;display:flex;flex-direction:column;gap:10px}
.article li{padding-left:4px}
.article strong{font-weight:500}
.article hr{border:0;border-top:1px solid var(--border-hairline);margin:40px 0}
.article table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5}
.article th,.article td{text-align:left;padding:10px 12px 10px 0;border-top:1px solid var(--border-hairline);vertical-align:top}
.article th{font-weight:500}
.article .table-wrap{overflow-x:auto}
.article img{width:100%;height:auto}
.article code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:0.92em}
.post-figure{margin:clamp(40px,5vw,56px) 0 0;max-width:820px;position:relative;overflow:hidden;height:clamp(260px,36vw,460px)}
.post-figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post-footer .wrap{padding-bottom:clamp(48px,6vw,72px)}
.author-block{max-width:820px;border-top:1px solid var(--border-accent);padding-top:clamp(28px,3.5vw,40px);display:flex;flex-wrap:wrap;gap:20px 28px;align-items:center}
.author-block img{width:72px;height:72px;object-fit:cover;object-position:50% 30%;flex:none}
.author-block > div{flex:1 1 300px;display:flex;flex-direction:column;gap:6px}
.author-block p{font-size:17px;line-height:1.62;color:var(--text-secondary);max-width:56ch}
.related .wrap{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}
.related-inner{display:flex;flex-direction:column;gap:24px}
.related .post-row{padding:22px 0}
.related .post-row h3{font-size:19px}

/* ---------- 404 ---------- */
.notfound main{display:flex;align-items:stretch}
.notfound .hero-grid{width:100%}
.notfound .hero-copy{padding:clamp(64px,9vw,140px) 0}
.notfound h1{font-size:clamp(40px,6.4vw,92px);font-weight:300;letter-spacing:-0.025em;line-height:1.02}
.notfound .lede-sm{font-size:clamp(17px,1.8vw,21px);line-height:1.55;color:var(--text-secondary);max-width:44ch}
.link-row{display:flex;flex-wrap:wrap;gap:16px 32px;padding-top:24px;border-top:1px solid var(--border-hairline);margin-top:8px}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0ms!important;transition-duration:0ms!important;scroll-behavior:auto!important}
}
@media print{
  .site-header,.site-menu,.rail,.newsletter,.closing,.theme-toggle{display:none!important}
  [data-reveal],[data-mask],[data-zoom]{opacity:1!important;transform:none!important;clip-path:none!important}
}
