:root{
  --paper:#F4EFE6; --paper2:#EDE5D6; --ink:#1A1815; --navy:#1F3A5F; --navy2:#152A47;
  --forest:#243D31; --ochre:#B0832E; --ochre-ink:#856319; --muted:#6B655C; --rule:#D9D2C5;
  --serif:'Fraunces',Georgia,serif; --sans:'IBM Plex Sans',system-ui,sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper); color:var(--ink); font-family:var(--sans);
  font-size:18px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px}
.wrap-tight{max-width:980px; margin:0 auto; padding:0 32px}
.mono{font-family:var(--mono); text-transform:uppercase; letter-spacing:.18em; font-size:.7rem; color:var(--ochre-ink); font-weight:500}
.serif{font-family:var(--serif)}

/* nav */
nav{position:sticky; top:0; z-index:50; background:rgba(244,239,230,.88); backdrop-filter:blur(10px); transition:border-color .3s; border-bottom:1px solid transparent}
nav.scrolled{border-bottom:1px solid var(--rule)}
.nav-in{max-width:1180px; margin:0 auto; padding:18px 32px; display:flex; justify-content:space-between; align-items:center; gap:24px}
.nav-mark{display:flex; align-items:center; text-decoration:none; color:var(--ink)}
.nav-mark img{height:44px; width:auto; display:block}
@media(max-width:560px){.nav-mark img{height:36px}}
.nav-links{display:flex; gap:28px; align-items:center; flex-wrap:wrap}
.nav-links a{font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; color:var(--muted); text-decoration:none; transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--navy)}
.nav-cta{font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:.66rem; color:var(--paper); background:var(--navy); padding:11px 18px; text-decoration:none; transition:background .2s}
.nav-cta:hover{background:var(--navy2)}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:9px; width:42px; height:42px; flex-direction:column; justify-content:center; gap:5px}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--ink); transition:transform .25s, opacity .2s}
nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.open .nav-toggle span:nth-child(2){opacity:0}
nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:860px){
  .nav-toggle{display:flex}
  .nav-links{position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; flex-wrap:nowrap; background:var(--paper); max-height:0; overflow:hidden; transition:max-height .32s ease}
  nav.open .nav-links{max-height:80vh; border-bottom:1px solid var(--rule); box-shadow:0 14px 26px rgba(26,24,21,.07)}
  .nav-links a:not(.nav-cta){display:block; padding:16px 32px; font-size:.8rem; color:var(--ink); border-top:1px solid var(--rule)}
  .nav-links a:not(.nav-cta):first-child{border-top:0}
  .nav-links a.nav-cta{margin:14px 32px 18px; text-align:center; padding:15px}
}
:focus-visible{outline:2px solid var(--navy); outline-offset:2px}
@media(prefers-reduced-motion:reduce){.nav-links{transition:none}.nav-toggle span{transition:none}}

/* hero */
header.hero{padding:120px 0 100px; position:relative}
.hero .eyebrow{margin-bottom:32px}
.hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(2.8rem,7vw,5.6rem); line-height:1.02; letter-spacing:-.02em; margin-bottom:36px; max-width:18ch}
.hero h1 .em{color:var(--navy); font-style:italic}
.hero-lead{font-size:1.28rem; line-height:1.55; max-width:54ch; color:#332f29}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:46px}
.btn{display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; padding:15px 26px; text-decoration:none; transition:transform .2s, background .2s, color .2s}
.btn-primary{color:var(--paper); background:var(--navy)}
.btn-primary:hover{background:var(--navy2); transform:translateY(-2px)}
.btn-ghost{color:var(--ink); border:1px solid var(--ink)}
.btn-ghost:hover{color:var(--paper); background:var(--ink)}

/* page-hero variant */
.page-hero{padding:96px 0 56px}
.page-hero .eyebrow{margin-bottom:22px}
.page-hero h1{font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,6vw,4.4rem); line-height:1.02; letter-spacing:-.02em; margin-bottom:24px; max-width:20ch}
.page-hero .lead{font-size:1.22rem; max-width:54ch; color:#332f29}
.page-hero .hr{width:84px; height:3px; background:var(--ochre); margin:38px 0 0}

section{padding:88px 0; border-top:1px solid var(--rule)}
.sec-label{display:flex; align-items:baseline; gap:16px; margin-bottom:40px}
.sec-label .num{font-family:var(--mono); font-size:.72rem; color:var(--ochre-ink); letter-spacing:.1em}
.sec-label h2{font-family:var(--serif); font-weight:500; font-size:clamp(1.7rem,3vw,2.2rem); letter-spacing:-.01em}
.sec-kicker{font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2rem); font-weight:400; max-width:30ch; margin-bottom:14px; line-height:1.3; letter-spacing:-.01em}
.sec-intro{max-width:62ch; color:#3a352f; margin-bottom:46px; font-size:1.08rem}

/* thesis */
.thesis p.big{font-family:var(--serif); font-weight:400; font-size:clamp(1.6rem,3.4vw,2.4rem); line-height:1.32; letter-spacing:-.01em; max-width:24ch}
.thesis p.big .em{font-style:italic; color:var(--navy)}
.thesis .body{font-family:var(--sans); font-size:1.1rem; max-width:54ch; margin-top:34px; color:#3a352f}
.thesis .body::first-letter{font-family:var(--serif); font-weight:600; font-size:3.4rem; line-height:.8; float:left; padding:6px 12px 0 0; color:var(--navy)}

/* commitments */
.commits{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--rule); border:1px solid var(--rule)}
@media(max-width:980px){.commits{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.commits{grid-template-columns:1fr}}
.commit{background:var(--paper); padding:36px 30px}
.commit .k{font-family:var(--mono); font-size:.64rem; color:var(--ochre-ink); letter-spacing:.12em; text-transform:uppercase; margin-bottom:14px; display:block}
.commit h3{font-family:var(--serif); font-weight:500; font-size:1.32rem; margin-bottom:14px; letter-spacing:-.01em; line-height:1.25}
.commit p{font-size:1rem; color:#3a352f}

/* services */
.services{display:grid; grid-template-columns:repeat(3,1fr); gap:24px 28px}
@media(max-width:820px){.services{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.services{grid-template-columns:1fr}}

/* what-we-do chain (replaces the old services grid on home/services) */
.chain{display:flex; flex-direction:column; gap:0; margin-top:20px}
.stage-row{display:grid; grid-template-columns:140px 1fr; gap:36px; padding:36px 0; border-top:1px solid var(--rule); position:relative}
.stage-row:last-child{border-bottom:1px solid var(--rule)}
@media(max-width:760px){.stage-row{grid-template-columns:1fr; gap:14px}}
.stage-row .roman{font-family:var(--serif); font-style:italic; font-weight:400; font-size:2.4rem; color:var(--ochre); letter-spacing:.01em; line-height:1; padding-top:4px}
.stage-row h3{font-family:var(--serif); font-weight:500; font-size:clamp(1.4rem,2.3vw,1.75rem); letter-spacing:-.01em; margin-bottom:14px; color:var(--ink); line-height:1.2}
.stage-row p{font-size:1.05rem; color:#3a352f; max-width:62ch; line-height:1.65}
.stage-row p + p{margin-top:14px}

/* arrow connector between stages */
.chain-arrow{display:flex; justify-content:center; padding:0; height:0; position:relative}
.chain-arrow::before{content:""; position:absolute; left:50%; top:-1px; width:2px; height:28px; background:var(--ochre); transform:translateX(-50%)}

/* cross-cutting disciplines */
.disciplines{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:24px}
@media(max-width:760px){.disciplines{grid-template-columns:1fr}}
.discipline{padding:28px 28px; border:1px solid var(--rule); background:#FBF8F1}
.discipline .k{font-family:var(--mono); font-size:.64rem; color:var(--ochre-ink); letter-spacing:.14em; text-transform:uppercase; margin-bottom:14px; display:block}
.discipline h3{font-family:var(--serif); font-weight:500; font-size:1.35rem; margin-bottom:12px; letter-spacing:-.01em; line-height:1.25}
.discipline p{font-size:1rem; color:#3a352f}
.service{display:block; padding:26px 22px; text-decoration:none; color:inherit; border:1px solid var(--rule); background:var(--paper); transition:border-color .25s, transform .25s}
.service:hover{border-color:var(--navy); transform:translateY(-3px)}
.service .num{font-family:var(--mono); font-size:.66rem; color:var(--ochre-ink); letter-spacing:.12em; margin-bottom:14px; display:block}
.service h3{font-family:var(--serif); font-weight:500; font-size:1.22rem; margin-bottom:10px; line-height:1.22; letter-spacing:-.005em}
.service p{font-size:.98rem; color:var(--muted); line-height:1.55}

/* daaeg framework */
.daaeg{background:var(--navy); color:var(--paper); border:none}
.daaeg .mono{color:#A9B6C4}
.daaeg .sec-kicker{color:var(--paper); max-width:24ch}
.daaeg .sec-intro{color:#C4CCD6}
.daaeg .sec-label h2{color:var(--paper)}
.daaeg-mark{max-width:340px; width:100%; height:auto; margin:0 0 36px; display:block}
@media(max-width:680px){.daaeg-mark{max-width:260px}}
.stages{display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:18px}
@media(max-width:900px){.stages{grid-template-columns:repeat(5,1fr); gap:10px}}
@media(max-width:680px){.stages{grid-template-columns:1fr 1fr}}
.stage{border:1px solid #36527a; padding:22px 18px; background:rgba(255,255,255,.02)}
.stage .l{font-family:var(--mono); font-size:.62rem; color:var(--ochre-ink); letter-spacing:.14em; display:block; margin-bottom:10px}
.stage h4{font-family:var(--serif); font-size:1.34rem; font-weight:500; margin-bottom:8px; color:var(--paper); letter-spacing:.01em}
.stage p{font-size:.92rem; color:#C4CCD6; line-height:1.5}
.daaeg .actions{margin-top:46px; display:flex; gap:14px; flex-wrap:wrap}
.daaeg .btn-primary{background:var(--paper); color:var(--navy)}
.daaeg .btn-primary:hover{background:#fff}
.daaeg .btn-ghost{color:var(--paper); border-color:var(--paper)}
.daaeg .btn-ghost:hover{background:var(--paper); color:var(--navy)}

/* AI three fronts */
.fronts{display:grid; grid-template-columns:repeat(3,1fr); gap:32px}
@media(max-width:820px){.fronts{grid-template-columns:1fr}}
.front{padding-top:22px; border-top:2px solid var(--ochre)}
.front .k{font-family:var(--mono); font-size:.66rem; color:var(--ochre-ink); letter-spacing:.14em; margin-bottom:14px; display:block}
.front h3{font-family:var(--serif); font-weight:500; font-size:1.5rem; margin-bottom:14px; letter-spacing:-.01em}
.front p{font-size:1rem; color:#3a352f}
.ai-foot{margin-top:46px; padding:24px 28px; border:1px solid var(--rule); background:#FBF8F1; max-width:64ch}
.ai-foot p{font-size:1rem; color:#3a352f}
.ai-foot p em{color:var(--navy); font-style:normal; font-weight:500}

/* people */
.people{display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px}
@media(max-width:960px){.people{grid-template-columns:1fr 1fr; gap:32px}}
@media(max-width:640px){.people{grid-template-columns:1fr}}
.person .role{font-family:var(--mono); font-size:.66rem; color:var(--ochre-ink); letter-spacing:.14em; margin-bottom:10px; text-transform:uppercase}
.person .portrait{width:100%; max-width:340px; aspect-ratio:4/5; object-fit:cover; margin-bottom:22px; filter:grayscale(20%)}
.person h3{font-family:var(--serif); font-weight:500; font-size:1.6rem; margin-bottom:6px; letter-spacing:-.01em}
.person .title{font-family:var(--sans); font-weight:500; color:var(--navy); font-size:1.05rem; margin-bottom:18px}
.person p{font-size:1rem; color:#3a352f; margin-bottom:14px}
.person a.linkedin{font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); text-decoration:none; border-bottom:1px solid var(--rule); padding-bottom:3px}
.person a.linkedin:hover{color:var(--navy); border-color:var(--ochre-ink)}

/* wider team - horizontal card format for tier-two members */
.wider{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:24px}
@media(max-width:820px){.wider{grid-template-columns:1fr}}
.team-card{display:grid; grid-template-columns:140px 1fr; gap:24px; align-items:start; padding:24px; border:1px solid var(--rule); background:#FBF8F1}
@media(max-width:520px){.team-card{grid-template-columns:1fr; gap:16px}}
.team-card img{width:140px; height:175px; object-fit:cover; display:block; filter:grayscale(20%)}
@media(max-width:520px){.team-card img{width:120px; height:150px}}
.team-card .role{font-family:var(--mono); font-size:.62rem; color:var(--ochre-ink); letter-spacing:.14em; margin-bottom:8px; text-transform:uppercase; display:block}
.team-card h3{font-family:var(--serif); font-weight:500; font-size:1.3rem; margin-bottom:4px; letter-spacing:-.01em}
.team-card .title{font-family:var(--sans); font-weight:500; color:var(--navy); font-size:.95rem; margin-bottom:12px}
.team-card p{font-size:.95rem; color:#3a352f; line-height:1.55; margin-bottom:10px}
.team-card a.linkedin{font-family:var(--mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); text-decoration:none; border-bottom:1px solid var(--rule); padding-bottom:3px}
.team-card a.linkedin:hover{color:var(--navy); border-color:var(--ochre-ink)}

/* diagnostic CTA band */
.diag{background:var(--paper2); border:none}
.diag .wrap{display:flex; justify-content:space-between; gap:36px; align-items:center; flex-wrap:wrap}
.diag .lead-block h2{font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:12px; max-width:22ch; letter-spacing:-.01em}
.diag .lead-block p{color:#3a352f; max-width:48ch}

/* outcomes */
.outcomes{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
@media(max-width:820px){.outcomes{grid-template-columns:1fr}}
.outcome{padding:28px 26px; border-left:3px solid var(--ochre); background:#FBF8F1}
.outcome .k{font-family:var(--mono); font-size:.66rem; color:var(--ochre-ink); letter-spacing:.14em; display:block; margin-bottom:10px}
.outcome h3{font-family:var(--serif); font-weight:500; font-size:1.18rem; margin-bottom:10px; line-height:1.25}
.outcome p{font-size:.98rem; color:#3a352f}

/* prose */
.prose{max-width:62ch}
.prose p{margin-bottom:20px; color:#3a352f; font-size:1.1rem}
.prose .first::first-letter{font-family:var(--serif); font-weight:600; font-size:3.4rem; line-height:.8; float:left; padding:6px 12px 0 0; color:var(--navy)}
.prose ul{margin:0 0 22px 22px; color:#3a352f}
.prose ul li{margin-bottom:8px}

/* footer */
footer{background:var(--ink); color:#C4BCB0; padding:70px 0 36px; border:none}
footer .wrap{display:grid; grid-template-columns:2fr 1fr 1fr; gap:48px}
@media(max-width:820px){footer .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:560px){footer .wrap{grid-template-columns:1fr}}
footer .brand .jma{font-family:var(--serif); color:var(--paper); font-weight:600; font-size:1.8rem; margin-bottom:10px}
footer .brand .rule{width:60px; height:3px; background:var(--ochre); margin:14px 0 18px}
footer .brand p{font-size:.95rem; max-width:42ch; color:#bdb5a9; line-height:1.6}
footer h4{font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:.66rem; color:var(--ochre); margin-bottom:18px}
footer ul{list-style:none}
footer ul li{margin-bottom:10px}
footer ul a, footer ul span{font-size:.95rem; color:#C4BCB0; text-decoration:none; transition:color .2s}
footer ul a:hover{color:var(--paper)}
.foot-base{margin-top:48px; padding-top:24px; border-top:1px solid #2a2724; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:.78rem; color:#a39c91}
.foot-base a{color:#a39c91; text-decoration:none; margin-left:18px}
.foot-base a:hover{color:var(--paper)}

/* reveal */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* legal / policy pages */
.legal{max-width:64ch}
.legal .meta{font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:var(--ochre-ink); margin-bottom:36px; display:block}
.legal .intro{font-size:1.15rem; color:#332f29; margin-bottom:34px}
.legal h2{font-family:var(--serif); font-weight:500; font-size:1.5rem; letter-spacing:-.01em; line-height:1.2; margin:42px 0 14px}
.legal h2 .n{font-family:var(--mono); font-weight:500; font-size:.78rem; color:var(--ochre-ink); margin-right:12px; letter-spacing:.04em}
.legal h3{font-family:var(--serif); font-weight:500; font-size:1.18rem; letter-spacing:-.01em; margin:30px 0 10px}
.legal p{margin-bottom:18px; color:#3a352f; font-size:1.06rem}
.legal ul{margin:0 0 20px 22px; color:#3a352f}
.legal li{margin-bottom:9px}
.legal strong{font-weight:600; color:var(--ink)}
.legal a{color:var(--navy); text-decoration:none; border-bottom:1px solid var(--rule); transition:border-color .2s}
.legal a:hover{border-color:var(--ochre-ink)}
.legal .close{margin-top:42px; padding-top:28px; border-top:1px solid var(--rule); color:#3a352f}
