:root{
  --bone:#F5F2EA;
  --ink:#111111;
  --blue:#2457FF;
  --stone:#B8BDC7;
  --sage:#6E7C74;
  --muted:#66645F;
  --line:rgba(17,17,17,.16);
  --max:1500px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:76px;
  padding:18px 5vw;
  border-bottom:1px solid var(--line);
  background:rgba(245,242,234,.94);
  backdrop-filter:blur(14px);
}
.nameplate{
  white-space:nowrap;
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:-.03em;
}
.nameplate span{
  font-weight:400;
  letter-spacing:.28em;
  margin-left:.4rem;
}
.desktop-nav{display:flex;gap:2rem;font-size:.92rem}
.desktop-nav a{transition:color .18s ease}
.desktop-nav a:hover{color:var(--blue)}
.menu-toggle,.mobile-nav{display:none}

main{max-width:var(--max);margin:auto}

.hero{
  min-height:76vh;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(380px,.82fr);
  border-bottom:1px solid var(--line);
}
.hero-copy{
  padding:clamp(4.5rem,8vh,8rem) 6vw clamp(4rem,6vh,6rem) 5vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.eyebrow,.section-kicker,.type,.signal,.section-label,.now-label{
  font-size:.69rem;
  letter-spacing:.27em;
  font-weight:750;
}
h1{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(3.55rem,5.7vw,6.35rem);
  line-height:.94;
  letter-spacing:-.045em;
  margin:.7rem 0 1.3rem;
  max-width:1100px;
}
.dek{
  font-family:Georgia,serif;
  font-size:clamp(1.22rem,1.9vw,1.9rem);
  line-height:1.42;
  color:#555;
  max-width:760px;
  margin:0;
}
.actions{
  display:flex;
  gap:.85rem;
  margin-top:2rem;
  flex-wrap:wrap;
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  border:1px solid var(--ink);
  padding:.95rem 1.25rem;
  font-weight:650;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--blue);color:white;border-color:var(--blue)}
.signal{margin:2.7rem 0 0;color:#444}

.hero-portrait{
  position:relative;
  overflow:hidden;
  min-height:600px;
  background:#103554;
}
.hero-portrait::after{
  content:"";
  position:absolute;
  inset:0;
  box-shadow:inset 1px 0 rgba(255,255,255,.08);
  pointer-events:none;
}
.hero-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 24%;
}

.now-strip{
  display:grid;
  grid-template-columns:.42fr repeat(3,1fr);
  border-bottom:1px solid var(--line);
  background:#EEEAE1;
}
.now-strip>*{padding:1.2rem 1.5rem;border-right:1px solid var(--line)}
.now-strip>*:last-child{border-right:0}
.now-label{margin:0;display:flex;align-items:center;color:var(--blue)}
.now-item{display:flex;align-items:baseline;gap:.7rem;transition:background .18s ease}
.now-item:hover{background:rgba(36,87,255,.045)}
.now-item span{font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.now-item strong{font-family:Georgia,serif;font-size:1.05rem}

.section{
  padding:5.5rem 5vw;
  border-bottom:1px solid var(--line);
}
.section-kicker{
  display:flex;
  gap:.8rem;
  margin-bottom:2.4rem;
  border-bottom:1px solid rgba(17,17,17,.25);
  padding-bottom:1rem;
}
.section-kicker span{color:var(--blue)}
.section-label{color:var(--blue);margin:0 0 1rem}
.about-grid,.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw;
  align-items:start;
}
.about-grid h2,.contact-grid h2,.section-heading-row h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2.6rem,4vw,4.7rem);
  line-height:1.02;
  letter-spacing:-.025em;
  margin:0;
}
.about-copy{font-size:1.08rem;max-width:700px}
.accent-line{margin-top:1.8rem;padding-left:1rem;border-left:3px solid var(--blue);font-family:Georgia,serif;font-size:1.18rem}
p{line-height:1.65}

.section-heading-row{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:7vw;
  align-items:end;
  margin-bottom:2.6rem;
}
.section-heading-row>p{margin:0;max-width:600px;color:#54524D;font-size:1.02rem}

.work-grid{
  display:grid;
  grid-template-columns:1.12fr .94fr .94fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.work-card{
  background:var(--bone);
  padding:2rem;
  min-height:315px;
  display:flex;
  flex-direction:column;
  transition:.2s ease;
}
.work-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(17,17,17,.08);position:relative;z-index:1}
.feature-card{background:#ECE8DE}
.card-topline{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.type,.essay-list span,.four-grid span{color:var(--blue);margin:0}
.status{
  font-size:.58rem;
  letter-spacing:.17em;
  border:1px solid rgba(17,17,17,.25);
  padding:.35rem .48rem;
  white-space:nowrap;
}
.work-card h3,.essay-list h3{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2rem,2.6vw,3rem);
  line-height:1.02;
  letter-spacing:-.025em;
}
.work-card h3{margin:1.1rem 0 .6rem}
.work-card>p:not(.type){color:#494843}
.card-note{margin-top:auto!important;padding-top:1.2rem;font-size:.9rem;border-top:1px solid var(--line)}
.text-link{display:inline-block;margin-top:auto;padding-top:1.3rem;font-weight:750;color:var(--blue)}

.four-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.four-grid article{background:var(--bone);padding:1.7rem;min-height:225px}
.four-grid article p{margin:1.2rem 0 0;color:#555}

.essay-list{display:grid}
.essay-list article{
  display:grid;
  grid-template-columns:110px minmax(260px,.9fr) minmax(300px,1.1fr);
  gap:2rem;
  align-items:start;
  padding:1.8rem 0;
  border-top:1px solid var(--line);
}
.essay-list h3,.essay-list p{margin:0}
.essay-list h3{font-size:clamp(1.65rem,2.3vw,2.55rem)}
.essay-list p{color:#555}

.manifesto{
  background:var(--ink);
  color:white;
  text-align:center;
  padding:8rem 5vw;
}
.manifesto .eyebrow{color:#9BAFFF}
blockquote{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(3rem,6vw,6.6rem);
  line-height:.98;
  letter-spacing:-.035em;
  margin:2rem auto 0;
  max-width:1100px;
}
.contact{padding-top:6rem;padding-bottom:6rem}
.contact-copy{font-size:1.05rem}
.contact-button{gap:.6rem}
.button-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.contact-actions{max-width:720px}

footer{
  display:flex;
  justify-content:space-between;
  align-items:end;
  padding:3rem 5vw;
}
footer strong{letter-spacing:.12em}
footer p{margin:.5rem 0 0;color:var(--muted)}
.footer-note{font-size:.75rem;letter-spacing:.25em}

@media(max-width:1000px){
  .desktop-nav{gap:1.2rem}
  .hero{grid-template-columns:1fr .72fr}
  .work-grid{grid-template-columns:1fr 1fr}
  .feature-card{grid-column:1 / -1}
  .four-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:820px){
  html{scroll-padding-top:70px}
  .site-header{min-height:68px;padding:15px 5.5vw}
  .desktop-nav{display:none}
  .nameplate{font-size:1rem}
  .nameplate span{letter-spacing:.2em;margin-left:.28rem}

  .menu-toggle{
    display:flex;
    width:42px;
    height:42px;
    border:1px solid var(--line);
    background:transparent;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
  }
  .menu-toggle span{width:18px;height:1.5px;background:var(--ink);transition:.18s ease}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}

  .mobile-nav{
    position:fixed;
    top:68px;
    left:0;
    right:0;
    z-index:45;
    display:grid;
    background:var(--bone);
    border-bottom:1px solid var(--line);
    transform:translateY(-120%);
    opacity:0;
    visibility:hidden;
    transition:transform .2s ease,opacity .2s ease,visibility .2s;
    box-shadow:0 18px 40px rgba(17,17,17,.08);
  }
  .mobile-nav.open{transform:translateY(0);opacity:1;visibility:visible}
  .mobile-nav a{
    padding:1rem 5.5vw;
    border-top:1px solid var(--line);
    font-family:Georgia,serif;
    font-size:1.2rem;
  }

  .hero{min-height:0;grid-template-columns:1fr}
  .hero-copy{padding:3.6rem 6vw 2.7rem}
  .hero-copy .eyebrow{font-size:.63rem;line-height:1.7;margin:0 0 .8rem}
  h1{
    font-size:clamp(3rem,10.2vw,4.8rem);
    line-height:.92;
    margin:.2rem 0 1.05rem;
    max-width:760px;
  }
  .dek{font-size:clamp(1.1rem,4.7vw,1.4rem);max-width:640px}
  .hero-actions{margin-top:1.6rem}
  .signal{margin-top:1.8rem;font-size:.61rem;letter-spacing:.21em}
  .hero-portrait{min-height:0;height:clamp(440px,98vw,650px)}
  .hero-portrait img{object-position:center 23%}

  .now-strip{
    grid-template-columns:1fr;
  }
  .now-strip>*{border-right:0;border-bottom:1px solid var(--line);padding:1rem 6vw}
  .now-strip>*:last-child{border-bottom:0}
  .now-label{padding-top:1.2rem;padding-bottom:.65rem}
  .now-item{justify-content:space-between}
  .now-item strong{font-size:1.12rem}

  .section{padding:4.5rem 6vw}
  .section-kicker{margin-bottom:2rem}
  .about-grid,.contact-grid,.section-heading-row{grid-template-columns:1fr;gap:1.9rem}
  .about-grid h2,.contact-grid h2,.section-heading-row h2{font-size:clamp(2.55rem,8.7vw,3.8rem)}
  .section-heading-row{margin-bottom:2.2rem}
  .section-heading-row>p{max-width:700px}

  .work-grid,.four-grid{grid-template-columns:1fr}
  .feature-card{grid-column:auto}
  .work-card{min-height:0;padding:1.55rem}
  .four-grid article{min-height:0;padding:1.5rem}

  .essay-list article{grid-template-columns:1fr;gap:.65rem;padding:1.55rem 0}
  .essay-list h3{font-size:clamp(1.8rem,7vw,2.5rem)}

  .manifesto{padding:6.3rem 6vw}
  blockquote{font-size:clamp(2.8rem,11vw,4.8rem)}

  footer{align-items:flex-start;gap:1.5rem;flex-direction:column;padding:2.5rem 6vw}
}

@media(max-width:520px){
  .site-header{padding:13px 5vw}
  .nameplate{font-size:.92rem}
  .nameplate span{letter-spacing:.16em}
  .menu-toggle{width:40px;height:40px}

  .hero-copy{padding:2.8rem 6vw 2.2rem}
  h1{
    font-size:clamp(2.7rem,12vw,3.55rem);
    line-height:.9;
    letter-spacing:-.05em;
  }
  .dek{font-size:1.08rem}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%;gap:.65rem}
  .button{width:100%;min-height:49px;padding:.8rem .8rem;font-size:.92rem;text-align:center}
  .signal{font-size:.57rem;letter-spacing:.18em}

  .hero-portrait{height:min(112vw,500px)}
  .hero-portrait img{object-position:center 23%}

  .now-item{align-items:center}
  .now-item span{font-size:.65rem}
  .now-item strong{font-size:1.05rem}

  .section{padding:3.8rem 6vw}
  .section-kicker{font-size:.62rem;letter-spacing:.22em;margin-bottom:1.6rem}
  .section-label{font-size:.6rem;letter-spacing:.22em}
  .about-grid h2,.contact-grid h2,.section-heading-row h2{font-size:clamp(2.35rem,10.5vw,3rem)}
  .about-copy,.contact-copy{font-size:1rem}
  .accent-line{font-size:1.08rem}
  .work-card h3{font-size:2.2rem}
  .card-topline{align-items:center}
  .status{font-size:.52rem}
  .manifesto{padding:5.5rem 6vw}
}

@media(max-width:370px){
  .nameplate span{letter-spacing:.1em}
  h1{font-size:2.5rem}
  .now-item{display:grid;gap:.25rem}
  .card-topline{display:grid}
}


/* Interior pages */
.interior-page main{max-width:var(--max);margin:auto}
.page-hero{
  padding:clamp(5rem,10vh,8.5rem) 5vw clamp(4.5rem,8vh,7rem);
  border-bottom:1px solid var(--line);
  max-width:var(--max);
  margin:auto;
}
.page-hero h1{
  max-width:1150px;
  margin:.65rem 0 1.2rem;
}
.page-dek{
  font-family:Georgia,serif;
  font-size:clamp(1.28rem,2.1vw,2rem);
  line-height:1.48;
  max-width:880px;
  color:#52504B;
  margin:0;
}
.page-subtitle{
  font-family:Georgia,serif;
  font-size:clamp(1.5rem,2.6vw,2.7rem);
  line-height:1.2;
  margin:-.35rem 0 1.2rem;
}
.page-body{
  padding:5.5rem 5vw;
  border-bottom:1px solid var(--line);
}
.two-col-story{
  display:grid;
  grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);
  gap:8vw;
  align-items:start;
}
.two-col-story aside{position:sticky;top:110px}
.pull-quote{
  font-family:Georgia,serif;
  font-size:clamp(1.65rem,2.55vw,2.7rem);
  line-height:1.15;
  letter-spacing:-.02em;
  margin:1rem 0 0;
}
.prose{max-width:760px;font-size:1.1rem}
.prose p{margin:0 0 1.35rem}
.prose strong{font-weight:750}
.wide-prose{max-width:900px}
.topic-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.topic-grid article{
  background:var(--bone);
  padding:2rem;
  min-height:230px;
}
.topic-grid article span{
  color:var(--blue);
  font-size:.66rem;
  letter-spacing:.22em;
  font-weight:800;
}
.topic-grid h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2rem,3vw,3rem);
  line-height:1.02;
  margin:1rem 0 .7rem;
}
.topic-grid p{margin:0;color:#555}
.page-cta{
  padding:6rem 5vw;
  border-bottom:1px solid var(--line);
}
.page-cta h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2.6rem,5vw,5.4rem);
  line-height:1;
  letter-spacing:-.03em;
  max-width:1050px;
  margin:.8rem 0 1rem;
}
.page-cta>p:not(.section-label){max-width:760px;font-size:1.08rem}
.dark-cta{background:var(--ink);color:white}
.dark-cta .section-label{color:#9BAFFF}
.light-button{border-color:white;color:white}
.card-links{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:auto}
.card-links .text-link{margin-top:0}
.section-more{
  display:inline-block;
  margin-top:2rem;
  font-weight:750;
  color:var(--blue);
}
.writing-stream{display:grid}
.writing-stream article{
  padding:2.5rem 0;
  border-top:1px solid var(--line);
  max-width:980px;
}
.writing-stream h2,.featured-writing h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2.35rem,4vw,4.4rem);
  line-height:1;
  letter-spacing:-.03em;
  margin:.7rem 0 1.2rem;
}
.writing-stream article>p:not(.type){max-width:780px;font-size:1.05rem;color:#4F4D49}
.featured-writing{
  background:#ECE8DE;
  border:1px solid var(--line);
  padding:2.2rem;
}
.featured-writing>p:not(.type){font-family:Georgia,serif;font-size:1.25rem}

@media(max-width:820px){
  .page-hero{padding:4.3rem 6vw 3.8rem}
  .page-body,.page-cta{padding:4.2rem 6vw}
  .two-col-story{grid-template-columns:1fr;gap:2rem}
  .two-col-story aside{position:static}
  .prose{font-size:1.03rem}
  .topic-grid{grid-template-columns:1fr}
  .topic-grid article{min-height:0;padding:1.55rem}
  .page-cta h2{font-size:clamp(2.6rem,10vw,4rem)}
}
@media(max-width:520px){
  .page-hero{padding:3.25rem 6vw 3rem}
  .page-hero h1{font-size:clamp(2.8rem,13vw,4rem)}
  .page-dek{font-size:1.12rem}
  .page-subtitle{font-size:1.45rem}
  .page-body,.page-cta{padding:3.6rem 6vw}
  .pull-quote{font-size:1.8rem}
  .writing-stream article{padding:2rem 0}
  .writing-stream h2,.featured-writing h2{font-size:2.4rem}
}


/* Article pages */
.article-shell{max-width:var(--max);margin:auto}
.article-header{
  padding:clamp(5rem,10vh,8rem) 5vw 4rem;
  border-bottom:1px solid var(--line);
}
.article-header h1{
  max-width:1050px;
  margin:.7rem 0 1.25rem;
}
.article-lede{
  max-width:800px;
  font-family:Georgia,serif;
  font-size:clamp(1.25rem,2vw,1.9rem);
  line-height:1.5;
  color:#53514C;
  margin:0;
}
.article-meta{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:2rem;
  font-size:.72rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
}
.article-meta span+span::before{content:"•";margin-right:1rem;color:var(--stone)}
.article-layout{
  display:grid;
  grid-template-columns:minmax(210px,.5fr) minmax(0,1.5fr);
  gap:7vw;
  padding:5rem 5vw 6rem;
  border-bottom:1px solid var(--line);
}
.article-aside{
  position:sticky;
  top:108px;
  align-self:start;
  font-size:.94rem;
  color:#585650;
}
.article-aside>a{display:inline-block;margin-bottom:3rem;font-weight:700;color:var(--blue)}
.article-aside .section-label{margin-bottom:.75rem}
.article-aside p:last-child{font-family:Georgia,serif;font-size:1.12rem;line-height:1.5}
.article-prose{
  max-width:760px;
  font-family:Georgia,serif;
  font-size:1.15rem;
  line-height:1.8;
}
.article-prose>p:first-child{font-size:1.32rem;line-height:1.65}
.article-prose h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2rem,3.2vw,3.25rem);
  line-height:1.04;
  letter-spacing:-.025em;
  margin:3.4rem 0 1.1rem;
}
.article-prose p{margin:0 0 1.4rem}
.article-prose em{font-style:italic}
.article-end{
  padding:5rem 5vw 6rem;
  border-bottom:1px solid var(--line);
}
.article-end h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2.5rem,4.5vw,4.8rem);
  line-height:1.02;
  max-width:900px;
  margin:.7rem 0 1.8rem;
}
.error-page{min-height:65vh;display:flex;flex-direction:column;justify-content:center}

.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;
}

/* Newsletter component, ready for Substack embed connection */
.newsletter-band{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw;
  align-items:center;
  padding:5rem 5vw;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#ECE8DE;
}
.newsletter-band h2{
  font-family:"Noto Serif Display",Georgia,serif;
  font-size:clamp(2.5rem,4vw,4.5rem);
  line-height:1.02;
  margin:.6rem 0 1rem;
}
.newsletter-copy>p:last-child{max-width:620px;color:#53514C}
.newsletter-fields{display:flex;min-height:58px}
.newsletter-fields input{
  flex:1;
  min-width:0;
  border:1px solid var(--ink);
  border-right:0;
  background:var(--bone);
  color:var(--ink);
  padding:0 1rem;
  font:inherit;
  border-radius:0;
}
.newsletter-fields input:focus{outline:3px solid var(--blue);outline-offset:-3px}
.newsletter-fields button{
  border:1px solid var(--blue);
  background:var(--blue);
  color:white;
  padding:0 1.25rem;
  font-weight:750;
  cursor:pointer;
}
.newsletter-note{font-size:.82rem;color:var(--muted);margin:.7rem 0 0}

@media(max-width:820px){
  .article-header{padding:4.2rem 6vw 3.4rem}
  .article-layout{grid-template-columns:1fr;padding:3.8rem 6vw 4.5rem}
  .article-aside{position:static;border-bottom:1px solid var(--line);padding-bottom:1.6rem}
  .article-aside>a{margin-bottom:1.5rem}
  .article-prose{font-size:1.08rem}
  .article-prose>p:first-child{font-size:1.2rem}
  .article-end{padding:4rem 6vw 4.5rem}
  .newsletter-band{grid-template-columns:1fr;padding:4rem 6vw;gap:2rem}
}
@media(max-width:520px){
  .article-header{padding:3.3rem 6vw 2.8rem}
  .article-header h1{font-size:clamp(2.7rem,12vw,3.7rem)}
  .article-layout{padding:3.2rem 6vw 3.8rem}
  .article-prose{font-size:1.03rem;line-height:1.75}
  .article-prose h2{font-size:2.15rem;margin-top:2.8rem}
  .article-meta{display:grid;gap:.4rem}
  .article-meta span+span::before{content:"";margin:0}
  .newsletter-fields{display:grid;min-height:0}
  .newsletter-fields input{min-height:52px;border-right:1px solid var(--ink);border-bottom:0}
  .newsletter-fields button{min-height:52px}
}
