
:root{
  --ink:#0E0E0E; --ink-2:#161616; --paper:#FFFFFF; --stone:#F4F1EC;
  --on-dark:#FAFAFA; --on-dark-mute:#9A9A94;
  --on-light:#101010; --on-light-mute:#65635E;
  --rule-light:#E3E0D9; --rule-dark:rgba(250,250,250,.15);
  --accent:#C3FF1F; --accent-ink:#0E0E0E; --accent-dark:#6E8A12;
  --max:1140px; --gut:34px;
  --f: 'Archivo', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --m: 'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--on-light);
  font-family:var(--f); font-variation-settings:'wdth' 100,'wght' 400;
  font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:500;text-wrap:balance;line-height:1.16;letter-spacing:-.012em}
a{color:inherit}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.lbl{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500}

/* grounds */
.s-dark{background:var(--ink);color:var(--on-dark)}
.s-dark .lbl{color:var(--accent)}
.s-dark .mute{color:var(--on-dark-mute)}
.s-paper{background:var(--paper);color:var(--on-light)}
.s-paper .lbl{color:var(--on-light-mute)}
.s-paper .mute{color:var(--on-light-mute)}
.s-stone{background:var(--stone);color:var(--on-light)}
.s-stone .lbl{color:var(--on-light-mute)}
.s-stone .mute{color:var(--on-light-mute)}
section{padding:88px 0}
section.tight{padding:52px 0}

/* nav */
.nav{background:var(--ink);color:var(--on-dark)}
.nav .row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}
.nav .brand{display:block;width:132px;color:var(--on-dark)}
.nav .brand.mono{width:40px}
.nav .brand svg{width:100%;height:auto;fill:currentColor;display:block}
.nav ul{display:flex;gap:30px}
.nav a{text-decoration:none;font-size:14.5px;color:var(--on-dark-mute);padding-bottom:3px;border-bottom:2px solid transparent}
.nav a:hover{color:var(--accent)}
.nav a[aria-current="page"]{color:var(--on-dark);border-bottom-color:var(--accent)}

/* hero */
.hero{background:var(--ink);color:var(--on-dark);padding:56px 0 92px}
.hero .giant{width:100%;color:var(--on-dark);margin-bottom:22px}
.hero .tagline{color:var(--on-dark-mute);text-align:right;margin-bottom:74px;font-size:12px;letter-spacing:.2em}
.nav.home .brand{visibility:hidden}
.nav.home .row{justify-content:flex-end}
.hero .giant svg{width:100%;height:auto;fill:currentColor;display:block}
.hero .cols{max-width:100%}
.hero h1{font-size:clamp(30px,4.6vw,54px)}
.hero .lede{margin-top:30px;font-size:clamp(18px,1.8vw,23px);color:var(--on-dark-mute);max-width:46ch}
.cases{display:grid;gap:0;border-top:1px solid var(--rule-dark)}
.cases li{padding:17px 0;border-bottom:1px solid var(--rule-dark);font-size:17.5px;color:var(--on-dark)}

/* page header (non-home) */
.phead{background:var(--ink);color:var(--on-dark);padding:66px 0 74px}
.phead h1{font-size:clamp(30px,5vw,58px);max-width:18ch;margin-top:16px}
.phead .lede{margin-top:24px;font-size:19px;color:var(--on-dark-mute);max-width:58ch}

/* accent: highlight only */
.hl{border-bottom:5px solid var(--accent);padding-bottom:2px}
.rule{height:5px;width:76px;background:var(--accent)}

.btn{
  display:inline-block;margin-top:34px;padding:14px 26px;
  background:var(--accent);color:var(--accent-ink);text-decoration:none;
  font-family:var(--m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
}
.btn:hover{background:var(--on-dark)}
.s-paper .btn:hover,.s-stone .btn:hover{background:var(--ink);color:var(--on-dark)}

/* pillars */
.pillars{display:grid;gap:0;margin-top:40px;border-top:1px solid var(--rule-light)}
.pillar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:48px;padding:44px 0;border-bottom:1px solid var(--rule-light);align-items:start}
.pillar h3{font-size:clamp(28px,4.2vw,46px)}
.pillar .case{margin-bottom:12px}
.pillar p{color:var(--on-light-mute);font-size:18.5px;max-width:52ch}

/* facts band */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:26px;border-top:1px solid var(--rule-dark)}
.facts li{padding:26px 30px 4px 0;font-size:17.5px;color:var(--on-dark);line-height:1.45}
.facts li + li{border-left:1px solid var(--rule-dark);padding-left:30px}

/* two column prose */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:56px;align-items:start}
.split h2{font-size:clamp(26px,3.6vw,42px)}
.split p + p{margin-top:18px}
.split p{font-size:18px}

/* principles */
.principles{margin-top:40px;border-top:1px solid var(--rule-light)}
.principles > div{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:40px;padding:30px 0;border-bottom:1px solid var(--rule-light)}
.principles h3{font-size:21px}
.principles p{color:var(--on-light-mute);font-size:17.5px}

/* services */
.svc{margin-top:30px;border-top:1px solid var(--rule-light)}
.svc li{padding:15px 0;border-bottom:1px solid var(--rule-light);font-size:17px;color:var(--on-light)}
.meta-line{margin-top:26px;padding-top:18px;border-top:1px solid var(--rule-light);font-size:16px;color:var(--on-light-mute)}
.meta-line b{color:var(--on-light);font-weight:600}

/* people */
.person{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:52px;align-items:start;margin-top:36px}
.person img{width:100%;filter:grayscale(1)}
.person h3{font-size:26px}
.person .role{margin-top:6px;margin-bottom:20px}
.person p + p{margin-top:15px}
.person p{color:var(--on-light-mute);font-size:17.5px}
.person .lk{margin-top:22px;display:inline-block;font-size:15px;text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px}

/* name / shopfront */
.name-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:52px;align-items:center;margin-top:34px}
.name-grid h2{font-size:clamp(23px,3vw,33px)}
.name-grid p{margin-top:18px;color:var(--on-light-mute);font-size:17.5px}
figure{margin:0}
figcaption{margin-top:12px;font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-light-mute)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;margin-top:34px;align-items:start}
.contact-grid dt{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.contact-grid dd{margin:0 0 26px;font-size:19px}
.contact-grid dd a{text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px}
.bigmail{margin-top:18px;font-size:clamp(20px,2.4vw,29px);line-height:1.25}
.bigmail a{text-decoration:none;border-bottom:3px solid var(--accent);padding-bottom:4px}
form{display:grid;gap:16px}
label{display:block;font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute);margin-bottom:7px}
input,textarea{
  width:100%;background:transparent;border:1px solid var(--rule-dark);color:var(--on-dark);
  font-family:var(--f);font-size:16px;padding:13px 14px;border-radius:0;
}
input:focus,textarea:focus{border-color:var(--accent);outline:none}
button{
  justify-self:start;background:var(--accent);color:var(--accent-ink);border:0;cursor:pointer;
  font-family:var(--m);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding:14px 26px;
}
button:hover{background:var(--on-dark)}

/* prose page */
.prose{max-width:68ch}
.prose h2{font-size:22px;margin:36px 0 12px}
.prose p{margin-bottom:14px;color:var(--on-light-mute)}
.prose p:first-of-type{color:var(--on-light)}




.kicker{font-size:clamp(24px,3.4vw,38px);max-width:22ch;margin-top:18px}

/* ---- quote device: things we say about ourselves ---- */
.pull{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,2.4vw,36px);align-items:start}
.pull.spaced{margin-top:34px}
.pull .qm{
  font-variation-settings:'wdth' 125,'wght' 700;
  font-size:clamp(84px,11vw,168px);line-height:.62;color:var(--accent);
  user-select:none;margin-top:-.06em;
}
.pull .qbody{padding-top:.06em}
.say-big{font-size:clamp(36px,7vw,88px);line-height:1.02;letter-spacing:-.024em;max-width:19ch}
.say-mid{font-size:clamp(28px,4.4vw,50px);line-height:1.08;letter-spacing:-.018em;max-width:17ch}

/* ---- numbered pillar cards ---- */
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:46px;grid-template-rows:auto auto auto}
.pcard{position:relative;padding-top:14px;display:grid;grid-template-rows:subgrid;grid-row:span 3;align-content:start}
.pnum{
  position:absolute;left:0;top:0;z-index:2;
  width:58px;height:58px;background:var(--accent);color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-variation-settings:'wdth' 125,'wght' 700;font-size:26px;line-height:1;
}
.pbar{
  margin-left:30px;margin-top:16px;
  background:var(--ink);color:var(--on-dark);text-align:center;
  padding:17px 14px;font-variation-settings:'wdth' 125,'wght' 700;
  font-size:clamp(14px,1.4vw,18px);letter-spacing:.06em;line-height:1;
}
.pcard .say{margin:22px 0 0 30px;font-size:18.5px;line-height:1.42;color:var(--on-light);max-width:32ch}
.pcard .tags{margin-left:30px;margin-top:20px;display:grid;grid-template-columns:1fr;gap:0;align-content:start}
.pcard .tags span{font-family:var(--m);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-light-mute);border-top:1px solid var(--rule-light);padding:11px 0;white-space:nowrap}
.pcard a.hit{position:absolute;inset:0;z-index:3}
.pcard{transition:transform .25s ease}
.pcard:hover{transform:translateY(-4px)}
.pcard:hover .pbar{background:var(--accent);color:var(--ink)}
.pcard .pbar{transition:background .25s ease,color .25s ease}

/* ---- where we come in ---- */
.band{position:relative;background:var(--ink);overflow:hidden}
.band::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--bandimg);background-size:cover;background-position:center 62%;
}
.band::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(14,14,14,.88) 0%,rgba(14,14,14,.55) 46%,rgba(14,14,14,.90) 100%);
}
.band > .wrap{position:relative;z-index:2}
.claim{margin-top:18px;font-size:clamp(20px,2.2vw,27px);line-height:1.3;color:var(--on-dark);max-width:44ch}
.claim b{color:var(--accent);font-weight:inherit}
.entries{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:40px}
.entries > li{padding-top:20px;font-size:18px;line-height:1.34;color:var(--on-dark);position:relative;cursor:default}
.entries > li::before{
  content:"";position:absolute;top:0;left:0;height:4px;width:40%;background:var(--accent);
  transition:width .32s cubic-bezier(.2,.7,.3,1);
}
.entries > li:hover::before{width:100%}
.bandhead{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap}
.bandhead .aside{font-size:15.5px;color:var(--on-dark-mute)}

/* ---- stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;margin-top:44px;grid-template-rows:auto auto auto}
.stat{display:grid;grid-template-rows:subgrid;grid-row:span 3;align-content:start}
.stat .fig{
  font-variation-settings:'wdth' 125,'wght' 700;letter-spacing:0;
  font-size:clamp(34px,4.9vw,58px);line-height:1;color:var(--accent);
  height:1em;display:flex;align-items:flex-end;
}
.stat .cap{margin-top:18px;font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-family:var(--m);color:var(--on-dark)}
.stat p{margin-top:10px;font-size:15.5px;line-height:1.5;color:var(--on-dark-mute)}

/* ---- index lists: replaces the dashes ---- */
.idx{margin-top:30px;border-top:1px solid var(--rule-light)}
.idx li{
  display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid var(--rule-light);font-size:17px;
}
.idx li span{font-family:var(--m);font-size:11.5px;color:var(--accent-dark);letter-spacing:.1em}
.s-dark .idx{border-color:var(--rule-dark)}
.s-dark .idx li{border-color:var(--rule-dark)}

/* ---- reasons ---- */
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px;grid-template-rows:auto auto auto}
.reasons > div{display:grid;grid-template-rows:subgrid;grid-row:span 3;border:1px solid var(--rule-light)}
.reasons .ask{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;
  background:var(--ink);padding:26px 24px 28px;border-bottom:4px solid var(--accent);
}
.reasons .ask .q{font-variation-settings:'wdth' 125,'wght' 700;font-size:30px;line-height:.7;color:var(--accent);user-select:none}
.reasons .ask p{font-size:17px;line-height:1.36;color:var(--on-dark);font-variation-settings:'wdth' 100,'wght' 500}
.reasons h3{font-size:20px;padding:22px 24px 0;align-self:start}
.reasons > div > p{font-size:16.5px;color:var(--on-light-mute);padding:11px 24px 28px;align-self:start}
.reasons > div > p b{color:var(--on-light);font-weight:600}

/* ---- practice blocks (What we do) ---- */
.prac{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:60px;align-items:start}
.pmark{display:inline-block;background:var(--accent);color:var(--accent-ink);font-family:var(--m);font-size:13px;font-weight:500;letter-spacing:.16em;padding:8px 13px}
.prac h2{margin-top:24px;font-size:clamp(38px,6vw,66px)}
.prac .plede{margin-top:20px;font-size:20px;max-width:26ch}
.svcg{display:grid;grid-template-columns:1fr 1fr;gap:46px}
.sg{display:inline-block;font-family:var(--m);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;background:var(--ink);color:var(--on-dark);padding:7px 11px;margin-bottom:4px}
.s-dark .sg{background:var(--on-dark);color:var(--ink)}
.svch{display:block;margin-bottom:20px}
.svcg li{padding:13px 0;border-bottom:1px solid var(--rule-light);font-size:16.5px;line-height:1.35}
.s-dark .svcg li{border-color:var(--rule-dark)}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:54px}
.tile{border-top:4px solid var(--accent);padding-top:16px}
.tile .tl{font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.tile p{margin-top:12px;font-size:16px;line-height:1.5;color:var(--on-light-mute)}
.s-dark .tile p{color:var(--on-dark-mute)}

/* ---- question and answer (How we work) ---- */
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px;align-items:center}
.feature h2{margin-top:24px;font-size:clamp(30px,4.4vw,50px)}
.feature p{font-size:19px}
.feature p + p{margin-top:16px}
.feature b{font-weight:600}
.s-dark .feature p{color:var(--on-dark-mute)}
.s-dark .feature b{color:var(--on-dark)}
.s-paper .feature p,.s-stone .feature p{color:var(--on-light-mute)}
.s-paper .feature b,.s-stone .feature b{color:var(--on-light)}

/* ---- entry points ---- */
.entry{margin-top:18px;border-top:1px solid var(--rule-dark)}
.entry li{padding:16px 0;border-bottom:1px solid var(--rule-dark);font-size:18px;color:var(--on-dark);line-height:1.35}
.entry-foot{margin-top:20px;font-size:16px;color:var(--on-dark-mute);max-width:42ch}

/* footer */
footer{background:var(--ink);color:var(--on-dark-mute);padding:44px 0 54px;border-top:1px solid var(--rule-dark)}
footer .row{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;align-items:flex-start}
footer .brand{width:112px;color:var(--on-dark);margin-bottom:14px}
footer .brand svg{width:100%;height:auto;fill:currentColor;display:block}
footer ul{display:flex;gap:22px;flex-wrap:wrap}
footer a{text-decoration:none;font-size:14px}
footer a:hover{color:var(--on-dark)}
footer .fine{margin-top:26px;font-size:13.5px;max-width:60ch}

@media (max-width:880px){
  :root{--gut:22px}
  section{padding:60px 0}
  .pillar,.split,.principles > div,.person,.name-grid,.contact-grid,.pcards,.stats,.reasons,.entries{grid-template-columns:1fr;gap:26px}
  .pull{grid-template-columns:1fr;gap:0}
  .pull .qm{font-size:72px}
  .reasons > div + div{border-left:0;border-top:1px solid var(--rule-light);padding-left:0}
  .reasons{grid-template-rows:none}
  .reasons > div{padding-right:0;display:block;grid-row:auto}
  .reasons{grid-template-rows:none}
  .prac,.svcg,.feature,.tiles{grid-template-columns:1fr;gap:30px}
  .tiles{gap:26px;margin-top:38px}
  .prac h2{font-size:clamp(34px,9vw,46px)}
  .stat{display:grid;grid-template-rows:subgrid;grid-row:span 3;align-content:start}
.stat .fig{height:auto}
  .facts{grid-template-columns:1fr}
  .facts li + li{border-left:0;padding-left:0;border-top:1px solid var(--rule-dark)}
  .facts li{padding:14px 0}
  .nav .row{flex-direction:column;align-items:flex-start;gap:16px}
  .nav ul{gap:20px;flex-wrap:wrap}
  .person img{max-width:280px}
  .hero{padding-bottom:64px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
