@font-face{font-family:"Instrument Serif";src:url(../assets/fonts/instrument-serif-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(../assets/fonts/instrument-serif-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(../assets/fonts/inter-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Inter";src:url(../assets/fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(../assets/fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(../assets/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--paper:#F3EFE4;--ink:#11110F;--gold:#C99A2E;--gold-d:#7E5C0C;--mute:#5E5B52;--rule:rgba(17,17,15,.2);--serif:"Instrument Serif",Georgia,serif;--sans:Inter,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--pad:clamp(20px,4vw,56px)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em}
em{font-style:italic}
.wrap{max-width:1400px;margin:0 auto;padding:0 var(--pad)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:#000;padding:8px 14px;z-index:300}.skip:focus{left:8px}
.prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;background:var(--gold);transform:scaleX(0);transform-origin:left}
/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(243,239,228,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.nav.dark{background:rgba(17,17,15,.85);border-color:rgba(243,239,228,.14);color:#EDEAE0}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo img{height:20px;width:auto}
.menu{display:flex;gap:38px;list-style:none}
.menu a{font-size:14px;text-decoration:none;position:relative;padding:6px 0;font-weight:400}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.menu a:hover::after,.menu a[aria-current=page]::after{transform:scaleX(1)}
.burger{display:none;background:none;border:0;width:36px;height:36px;cursor:pointer;color:inherit;position:relative}
.burger span{position:absolute;left:6px;right:6px;height:1.5px;background:currentColor;transition:transform .3s,top .3s}
.burger span:first-child{top:13px}.burger span:last-child{top:21px}
.nav.open-m .burger span:first-child{top:17px;transform:rotate(45deg)}.nav.open-m .burger span:last-child{top:17px;transform:rotate(-45deg)}
/* type helpers */
.kick,.m::before,.k,.tag,.meta,.role,.n,.gauge b span,.lab,.mrow small,.step .r,.when span,.num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.lead{margin-top:30px;font-size:clamp(18px,1.6vw,22px);line-height:1.55;max-width:44ch;color:var(--mute)}
h2.big{font-size:clamp(40px,6.2vw,104px);line-height:.98;max-width:14ch}
/* hero */
.hero{min-height:100svh;display:flex;align-items:center;padding:110px 0 70px}
.hero .wrap{width:100%}
.kick{display:block;color:var(--gold-d);margin-bottom:clamp(24px,4vw,56px)}
.kick::before{content:"";display:inline-block;width:34px;height:1px;background:var(--gold);vertical-align:middle;margin-right:14px}
.hero h1{font-size:clamp(54px,9.1vw,140px);line-height:.94;letter-spacing:-.025em}
.hero h1 span.l1,.hero h1 span.l2{display:block}
.hero h1 .l2{color:var(--ink);padding-top:.06em}
.hero h1 .l2 em{color:var(--gold)}
@media(min-width:900px){.hero h1 .l1{white-space:nowrap}}
.strike{position:relative;display:inline-block}
.strike::after{content:"";position:absolute;left:-1.5%;right:-1.5%;top:57%;height:.05em;background:var(--gold);transform:rotate(-1.2deg)}
.hfoot{margin-top:clamp(40px,6vw,90px);display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:26px}
.hfoot p{max-width:46ch;font-size:clamp(17px,1.5vw,21px);color:var(--mute)}
.links{display:flex;gap:34px;flex-wrap:wrap}
.links a{text-decoration:none;font-weight:600;font-size:15px;border-bottom:1px solid var(--ink);padding-bottom:4px;transition:color .25s,border-color .25s}
.links a i{font-style:normal;display:inline-block;transition:transform .3s}
.links a:hover{color:var(--gold-d);border-color:var(--gold)}.links a:hover i{transform:translateX(5px)}
/* sections */
body{counter-reset:s}
.sec{padding:clamp(80px,11vw,170px) 0;border-top:1px solid var(--rule);counter-increment:s}
.grid{display:grid;grid-template-columns:200px 1fr;gap:40px}
.m::before{content:"0" counter(s);color:var(--gold-d)}
.intro{border-top:0;padding-top:clamp(140px,16vw,230px)}
.shead{margin-bottom:clamp(40px,6vw,90px)}
.shead h2{font-size:clamp(40px,5.4vw,88px)}
.shead h2 em,h2 em{color:var(--gold)}
/* plate */
.plate{background:var(--ink);color:#EDEAE0;position:relative;overflow:hidden}
.stmt-sec{padding:clamp(100px,14vw,220px) 0}
.stmt{font-family:var(--serif);font-size:clamp(46px,8.6vw,150px);line-height:.98;letter-spacing:-.02em;max-width:15ch}
.stmt em{color:var(--gold)}
/* depths */
.scene{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;gap:clamp(30px,5vw,80px);align-items:start}
.sticky{position:sticky;top:120px}
.sticky h2{font-size:clamp(38px,4.4vw,72px);max-width:8ch}
.gauge{position:relative;margin:56px 0 0 6px;height:260px;width:2px;background:var(--rule)}
.gauge .fill{position:absolute;left:0;top:0;width:2px;height:calc(var(--p,0)*100%);background:var(--gold)}
.gauge b{position:absolute;left:-5px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:1px solid var(--ink);transition:background .3s,transform .3s}
.gauge b:nth-of-type(1){top:-6px}.gauge b:nth-of-type(2){top:calc(50% - 6px)}.gauge b:nth-of-type(3){top:calc(100% - 6px)}
.gauge b span{position:absolute;left:30px;top:-1px;color:var(--mute);transition:color .3s}
.gauge b.act{background:var(--gold);border-color:var(--gold);transform:scale(1.35)}.gauge b.act span{color:var(--ink)}
.dp{min-height:62vh;display:flex;flex-direction:column;justify-content:center;padding:30px 0;border-top:1px solid var(--rule);transition:opacity .5s}
.dp .n{color:var(--gold-d)}
.dp h3{font-size:clamp(64px,10vw,168px);line-height:.92;margin:14px 0 20px}
.dp p{font-size:clamp(18px,1.7vw,24px);max-width:30ch;color:var(--mute)}
.ip{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:26px 0;display:flex;gap:28px;align-items:baseline;flex-wrap:wrap}
.ip b{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:400;color:var(--gold-d)}
.ip span{font-size:clamp(17px,1.5vw,20px)}
/* edge */
.edge>div{display:grid;grid-template-columns:110px minmax(180px,.7fr) 1.4fr;gap:30px;padding:40px 0;border-top:1px solid var(--rule);align-items:start}
.edge>div:last-child{border-bottom:1px solid var(--rule)}
.edge .num{font-family:var(--serif);font-size:clamp(54px,6vw,92px);line-height:.9;letter-spacing:-.01em;text-transform:none;color:var(--gold)}
.edge h3{font-size:clamp(30px,3vw,46px)}
.edge p{font-size:17px;color:var(--mute);max-width:52ch}
.edge p strong{color:var(--ink);font-weight:600}
/* services */
.who>div{display:grid;grid-template-columns:minmax(200px,.6fr) 1.4fr;gap:30px;padding:34px 0;border-top:1px solid var(--rule)}
.who>div:last-child{border-bottom:1px solid var(--rule)}
.who h3{font-size:clamp(34px,4vw,60px);color:var(--ink)}
.who ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:22px 34px}
.who li{font-size:15px;color:var(--mute);line-height:1.5}
.who li b{display:block;color:var(--ink);font-weight:600;font-size:16px;margin-bottom:4px}
.cards4>.card{display:grid;grid-template-columns:60px minmax(160px,.7fr) 1.5fr minmax(120px,.5fr);gap:26px;padding:34px 0;border-top:1px solid var(--rule);align-items:start;position:relative;transition:padding .35s}
.cards4>.card:last-child{border-bottom:1px solid var(--rule)}
.card .n{color:var(--gold-d);padding-top:8px}
.card h3{font-size:clamp(30px,3.2vw,48px)}
.card p{font-size:15.5px;color:var(--mute);max-width:56ch}
.card .when{padding-top:6px}.card .when span{display:block;color:var(--gold-d);margin-bottom:4px}
.card .when i{font-family:var(--serif);font-size:20px}
.cards4>.card:hover{padding-left:18px}
.cards4>.card::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--gold);transition:width .6s}
.cards4>.card:hover::before{width:100%}
.card.dk{background:var(--ink);color:#EDEAE0;box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax);margin-top:-1px}
.card.dk p{color:#B7B3A7}.card.dk .n,.card.dk .when span{color:var(--gold)}
.mrow{display:grid;grid-template-columns:130px repeat(3,1fr);gap:0 26px;padding:20px 0;border-top:1px solid var(--rule);font-size:14.5px;line-height:1.5}
.mrow:last-child{border-bottom:1px solid var(--rule)}
.mrow.head{border-top:0;padding-top:0}
.mrow.head h4{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,38px)}
.mrow small{display:block;color:var(--mute);margin-top:2px;font-size:10px}
.lab{color:var(--gold-d);padding-top:4px}
.c{color:var(--ink)}.c.no{color:#9A968A;font-style:italic}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;position:relative;padding-top:50px}
.steps::before{content:"";position:absolute;left:0;right:0;top:17px;height:1px;background:var(--ink);transform-origin:left}
.step{position:relative}
.step::before{content:"";position:absolute;top:-39px;left:0;width:13px;height:13px;border-radius:50%;background:var(--gold)}
.step .r{color:var(--gold-d)}
.step h3{margin:8px 0 14px;font-size:clamp(26px,2.4vw,36px)}
.step .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--mute);text-transform:uppercase;margin-bottom:10px}
.step p{font-size:14.5px;color:var(--mute)}.step p strong{color:var(--ink);font-weight:600}
/* clients */
.work{border-bottom:1px solid var(--rule)}
.case{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:clamp(24px,3vw,50px);padding:44px 0;border-top:1px solid var(--rule);position:relative;transition:color .4s}
.case::before{content:"";position:absolute;inset:0 -100vmax;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .5s cubic-bezier(.2,.7,.2,1);z-index:-1;clip-path:none}
.work{position:relative;isolation:isolate}
.case:hover{color:#EDEAE0}.case:hover::before{transform:scaleY(1)}
.case:hover .tag,.case:hover .meta,.case:hover .k{color:var(--gold)}
.case:hover p{color:#B7B3A7}.case:hover .res{color:#fff}
.case .tag{display:block;color:var(--gold-d)}
.case h3{font-size:clamp(34px,3.6vw,56px);margin:12px 0 12px}
.case .meta{color:var(--mute);font-size:10.5px}
.case .k{display:block;color:var(--mute);margin-bottom:10px}
.case p{font-size:16px;color:var(--mute);max-width:40ch}
.case p.res{font-family:var(--serif);font-size:clamp(26px,2.6vw,40px);line-height:1.12;color:var(--ink);max-width:22ch;letter-spacing:-.01em}
/* team */
.roster{display:grid;grid-template-columns:1fr minmax(260px,.62fr);gap:clamp(30px,5vw,80px);align-items:start}
.pr{padding:34px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr;gap:6px;outline:none;opacity:.5;transition:opacity .35s}
.pr:last-child{border-bottom:1px solid var(--rule)}
.pr.on,.pr:hover,.pr:focus{opacity:1}
.pr .mi{display:none}
.pr h3{font-size:clamp(40px,4.8vw,76px)}
.pr .role{color:var(--gold-d)}
.pr p{font-size:15px;color:var(--mute);max-width:52ch;margin-top:8px}
.frame{position:sticky;top:110px;aspect-ratio:4/5;background:#D9D4C4;overflow:hidden;border:1px solid var(--rule)}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);opacity:0;transform:scale(1.05);transition:opacity .5s,transform .8s}
.frame img.on{opacity:1;transform:none}
/* contact */
.contact{min-height:100svh;display:flex;align-items:center;padding:150px 0 90px}
.contact .wrap{width:100%}
.contact .stmt{max-width:none;font-size:clamp(54px,10vw,184px)}
.cl{margin-top:clamp(40px,6vw,90px);display:flex;gap:40px;align-items:baseline;flex-wrap:wrap;border-top:1px solid rgba(243,239,228,.18);padding-top:30px}
.mail{font-family:var(--serif);font-size:clamp(28px,4vw,64px);text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 100%/100% 1px no-repeat;transition:background-size .4s,color .3s;padding-bottom:4px}
.mail:hover{background-size:100% 100%;color:var(--ink)}
.ln{font-size:15px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}.ln:hover{color:var(--gold)}
/* footer */
.foot{background:var(--paper);border-top:1px solid var(--rule);padding:30px 0;font-size:13px;color:var(--mute)}
.foot.dk{background:var(--ink);color:#8C897E;border-color:rgba(243,239,228,.14)}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.foot ul{display:flex;gap:26px;list-style:none;flex-wrap:wrap}
.foot a{text-decoration:none}.foot a:hover,.foot .linkbtn:hover{color:var(--gold-d)}.foot.dk a:hover,.foot.dk .linkbtn:hover{color:var(--gold)}
/* legal */
.legalsec{border-top:0}
.legal{max-width:820px}
.legal h1{font-size:clamp(40px,6vw,72px);margin-bottom:40px}
.legal h2{font-size:30px;margin:44px 0 14px}
.legal h3{font-size:22px;margin:26px 0 8px;font-family:var(--sans);font-weight:600}
.legal p,.legal li{font-size:16px;color:#3b3a36;margin-bottom:12px}
.legal ul{padding-left:22px;margin-bottom:12px}
.legal a{color:var(--gold-d)}
.more{font-size:14px;font-weight:600;text-decoration:none;color:var(--gold-d)}
/* consent */
.cc{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;display:flex;justify-content:center}
.cc[hidden]{display:none}
.cc-in{max-width:760px;width:100%;background:#fff;color:var(--ink);border:1px solid var(--ink);padding:18px 20px;display:flex;gap:20px;align-items:center;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.cc-in p{font-size:14px;line-height:1.5;margin:0;flex:1}
.cc-in a{color:var(--gold-d)}
.cc-btns{display:flex;gap:10px;flex-shrink:0}
.cc-b{font:600 14px var(--sans);padding:12px 22px;min-width:96px;background:var(--ink);color:#fff;border:1px solid var(--ink);cursor:pointer}
.cc-b:hover{background:var(--gold);border-color:var(--gold);color:#000}
.linkbtn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}
.draft{border:1px solid #B3261E;background:#FCEDEC;color:#7A1914;padding:14px 18px;font-size:14px;margin-bottom:34px}
.upd{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--mute);margin-bottom:8px}
.ct{width:100%;border-collapse:collapse;margin:10px 0 18px;font-size:14px}
.ct th,.ct td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.ct th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:400}
/* motion */
@media (prefers-reduced-motion:no-preference){
 .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
 .rv.in{opacity:1;transform:none}
 .hero h1 .l1,.hero h1 .l2,.kick,.hfoot{animation:up 1s cubic-bezier(.2,.7,.2,1) both}
 .kick{animation-delay:.05s}.hero h1 .l1{animation-delay:.15s}.hero h1 .l2{animation-delay:1.7s}.hfoot{animation-delay:2.1s}
 .strike::after{transform:scaleX(0) rotate(-1.2deg);transform-origin:left;animation:strike .9s 1s cubic-bezier(.6,0,.2,1) forwards}
 .steps::before{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}.steps.vis::before{transform:scaleX(1)}
 .step::before{transform:scale(0);transition:transform .5s cubic-bezier(.3,1.6,.5,1)}.steps.vis .step::before{transform:scale(1)}
 .steps.vis .step:nth-child(2)::before{transition-delay:.45s}.steps.vis .step:nth-child(3)::before{transition-delay:.9s}.steps.vis .step:nth-child(4)::before{transition-delay:1.35s}
 .dp{opacity:.3}.dp.act{opacity:1}
 @keyframes up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
 @keyframes strike{to{transform:scaleX(1) rotate(-1.2deg)}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* responsive */
@media (max-width:1020px){
 .grid{grid-template-columns:1fr;gap:18px}
 .scene{grid-template-columns:1fr}.sticky{position:static}.gauge{display:none}
 .dp{min-height:0;padding:34px 0}
 .dp h3{font-size:clamp(56px,16vw,100px)}
 .edge>div{grid-template-columns:70px 1fr;gap:14px 20px}.edge p{grid-column:1/-1}
 .who>div{grid-template-columns:1fr}.cards4>.card{grid-template-columns:44px 1fr;gap:12px 18px}.cards4>.card p,.cards4>.card .when{grid-column:2}
 .mrow{grid-template-columns:1fr;gap:6px}.mrow.head{display:none}.c::before{content:attr(data-l);display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:6px}
 .steps{grid-template-columns:1fr 1fr;row-gap:44px}
 .case{grid-template-columns:1fr;gap:18px}
 .roster{grid-template-columns:1fr}.frame{display:none}.pr{opacity:1}.pr .mi{display:block;width:100%;max-width:300px;aspect-ratio:1;object-fit:cover;filter:grayscale(1);margin-bottom:14px}
 .menu{position:fixed;inset:68px 0 auto 0;background:var(--paper);flex-direction:column;gap:0;padding:10px var(--pad) 26px;border-bottom:1px solid var(--rule);transform:translateY(-130%);transition:transform .35s;z-index:-1}
 .nav.dark .menu{background:var(--ink)}
 .menu.open{transform:none}.menu a{display:block;padding:14px 0;font-size:20px;font-family:var(--serif)}
 .burger{display:block}
}
@media (max-width:600px){.who ul{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.cc-in{flex-direction:column;align-items:stretch;gap:14px}.cc-btns .cc-b{flex:1}.hfoot{align-items:flex-start}}
@media(max-width:899px){.hero h1{font-size:16.5vw}.contact .stmt{font-size:15vw}}
/* v14 */
.logo{display:flex;align-items:center;gap:12px}
.logo .boar{height:22px;width:auto}
/* approach intro + plate: readable breaks */
h2.big{font-size:clamp(36px,4.8vw,78px);line-height:1.04;max-width:20ch}
.intro .lead{margin-top:34px}
.stmt-sec{padding:clamp(80px,10vw,150px) 0}
.stmt{font-size:clamp(40px,6.4vw,104px);line-height:1.04;max-width:20ch}
/* depths: short scroll */
.dp{min-height:0;padding:34px 0}
.dp h3{font-size:clamp(52px,6.5vw,104px);margin:8px 0 12px;line-height:.95}
.dp p{max-width:36ch}
.gauge{height:200px;margin-top:40px}
@media (prefers-reduced-motion:no-preference){.dp{opacity:.4}.dp.act{opacity:1}}
/* services: needs */
.who>div{grid-template-columns:minmax(240px,.7fr) 1.3fr;padding:44px 0}
.wl{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.wn{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold-d)}
.who h3{font-size:clamp(44px,5vw,78px)}
.who li{font-size:16.5px;color:#34332e;line-height:1.5}
.who li b{font-size:19px;font-family:var(--serif);font-weight:400;letter-spacing:0;margin-bottom:6px}
.wgo{font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;margin-top:6px;transition:color .25s}
.wgo i{font-style:normal;display:inline-block;transition:transform .3s}
.wgo:hover{color:var(--gold-d)}.wgo:hover i{transform:translateY(4px)}
.who-sec{background:#EAE5D6}
.aud .m[data-t]::before{content:attr(data-t)}
.back{display:inline-flex;gap:12px;align-items:baseline;margin-bottom:22px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--mute);border-bottom:1px solid var(--rule);padding-bottom:4px}
.back b{color:var(--gold-d);font-weight:400}.back:hover{color:var(--ink);border-color:var(--gold)}
.aud .shead{margin-bottom:clamp(32px,4vw,60px)}
.aud .shead h2{font-size:clamp(40px,5vw,80px)}
.aud{scroll-margin-top:68px}#who,.aud{scroll-margin-top:68px}
@media(max-width:1020px){.who>div{grid-template-columns:1fr}.dp h3{font-size:clamp(48px,14vw,84px)}}
.who-sec>.wrap>.grid>.m::before{content:""}
/* v15 */
.grid{grid-template-columns:120px 1fr;gap:32px}
h2.big{font-size:clamp(34px,4.4vw,72px);max-width:none;text-wrap:balance}
.sticky h2{max-width:none;font-size:clamp(36px,4vw,64px)}
@media(min-width:1021px){.sticky h2{white-space:nowrap}}
.who li b{font-family:var(--sans);font-weight:600;font-size:18px;color:var(--ink);letter-spacing:0;margin-bottom:6px}
.who li{font-size:16.5px;color:#2c2b27}
.card.dk{background:none;color:inherit;box-shadow:none;clip-path:none;margin-top:0}
.card.dk p{color:var(--mute)}.card.dk .n,.card.dk .when span{color:var(--gold-d)}
.cards4>.card.dk{border-left:0}
.mrow{font-size:17px;line-height:1.5;padding:24px 0}
.mrow.head h4{font-size:clamp(30px,3vw,44px)}
.mrow small{font-size:11px}
.lab{font-size:12px}
.mrow{grid-template-columns:150px repeat(3,1fr)}
@media(max-width:1020px){.grid{grid-template-columns:1fr;gap:18px}.mrow{font-size:16px}}
@media(min-width:1021px){.sticky h2{white-space:normal}}
/* v16 */
.ip{border:0;border-left:1px solid var(--gold);padding:2px 0 2px 18px;display:block;margin-top:44px;max-width:300px}
.ip b{display:block;margin-bottom:8px}
.ip span{font-size:15.5px;line-height:1.5;color:var(--ink)}
.gauge{margin-bottom:0}
/* no outer rules on tables */
.dp:first-child,.edge>div:first-child,.who>div:first-child,.cards4>.card:first-child,.pr:first-child,.case:first-child{border-top:0}
.edge>div:last-child,.who>div:last-child,.cards4>.card:last-child,.pr:last-child,.mrow:last-child,.work{border-bottom:0}
.cards4>.card:first-child::before{display:none}
.dps .dp:first-child{border-top:0}
/* who: need boxes invert on hover */
.who ul{gap:10px 14px}
.who li{padding:18px 20px;border:1px solid transparent;transition:background .25s,color .25s}
.who li b{transition:color .25s}
.who li:hover{background:var(--ink);color:#C9C5B8}
.who li:hover b{color:#F3EFE4}
/* matrix */
.mrow .lab{font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);padding-top:3px}
.mrow .c{position:relative;padding-left:22px}
.mrow .c::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--gold);display:block;margin:0;font-size:0}
.mrow .c.no{color:#8f8b7f}
.mrow .c.no::before{background:none;border:1px solid #B2AE9F}
@media(max-width:1020px){
 .mrow .c{display:flex;flex-direction:column}
 .mrow .c::after{content:attr(data-l);order:-1;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:2px}
 .ip{max-width:none;margin-top:28px}
}
.mrow .c::before{top:.72em}
@media(max-width:1020px){.mrow{grid-template-columns:1fr;gap:10px;padding:20px 0}.mrow.head{display:none}.mrow .lab{padding-top:0}}
/* v17 */
/* IP band: full width under the three depths */
.ip{border:1px solid var(--gold);border-left:1px solid var(--gold);padding:clamp(22px,3vw,38px) clamp(22px,3vw,40px);display:flex;flex-direction:column;gap:12px;margin-top:clamp(28px,4vw,56px);max-width:none;background:transparent;position:relative}
.ip::before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:linear-gradient(90deg,var(--gold) 0 33.3%,transparent 33.3% 33.9%,var(--gold) 33.9% 66.6%,transparent 66.6% 67.2%,var(--gold) 67.2% 100%)}
.ip b{display:block;margin:0;font-size:12px;color:var(--gold-d)}
.ip span{font-family:var(--serif);font-size:clamp(24px,2.8vw,40px);line-height:1.15;color:var(--ink);letter-spacing:-.01em;max-width:30ch}
/* matrix dots aligned with first line */
.mrow .c::before{top:8.5px;font-size:0}
@media(max-width:1020px){.mrow .c::before{top:4px}}
/* who: gold title on hover */
.who li:hover b{color:var(--gold)}
/* footer boar */
.fl{display:flex;align-items:center;gap:12px}.fl img{height:20px;width:auto}
/* hover only on hover devices */
@media (hover:none){
 .who li:hover{background:transparent;color:#2c2b27}.who li:hover b{color:var(--ink)}
 .who li:active{background:var(--ink);color:#C9C5B8}.who li:active b{color:var(--gold)}
 .case:hover{color:inherit}.case:hover::before{transform:scaleY(0)}
 .case:hover .tag{color:var(--gold-d)}.case:hover .meta,.case:hover .k{color:var(--mute)}.case:hover p{color:var(--mute)}.case:hover .res{color:var(--ink)}
 .cards4>.card:hover{padding-left:0}
 .pr{opacity:1}
}
/* mobile */
@media(max-width:1020px){
 .dp{opacity:1!important}
 .burger{width:44px;height:44px;margin-right:-8px}.burger span{left:10px;right:10px}.burger span:first-child{top:16px}.burger span:last-child{top:26px}
 .nav.open-m .burger span:first-child,.nav.open-m .burger span:last-child{top:21px}
 .logo{padding:14px 0}
 .menu a{padding:15px 0}
 .links a{padding:14px 0;display:inline-block}
 .wgo,.back{padding:13px 0;display:inline-flex}
 .foot ul{gap:0 22px}.foot a,.foot .linkbtn{display:inline-block;padding:13px 0}
 .contact .ln{padding:13px 0;display:inline-block}
 .kick,.m::before,.k,.tag,.meta,.role,.n,.gauge b span,.lab,.mrow small,.step .r,.when span,.num,.ip b,.back,.wn,.step .k,.upd{font-size:12px}
 .card .when i{font-size:20px}
}
/* v18: IP as plain text band */
.ip{border:0;padding:0;margin-top:clamp(36px,5vw,72px);background:transparent;gap:10px}
.ip::before{display:none}
.ip span{max-width:none;font-size:clamp(20px,2.4vw,34px);white-space:nowrap}
@media(max-width:1020px){.ip span{white-space:normal;font-size:clamp(21px,5.8vw,26px);max-width:none;text-wrap:balance}}
/* v19: matrix hover */
.mrow:not(.head){margin-inline:-18px;padding-inline:18px;transition:background .25s,color .25s}
.mrow:not(.head) .c,.mrow:not(.head) .lab{transition:transform .3s cubic-bezier(.2,.7,.2,1),color .25s}
@media (hover:hover) and (min-width:1021px){
 .mrow .c:not(.no){transition:transform .35s cubic-bezier(.2,.7,.2,1)}
 .mrow .c:not(.no):hover{transform:translateX(10px)}
}
/* v20 */
.tsub{font-family:var(--serif);font-size:clamp(24px,2.6vw,38px);line-height:1.15;color:var(--ink);margin-top:18px;max-width:28ch;letter-spacing:-.005em}
/* v20 mobile design pass */
.hero{min-height:100vh;min-height:100svh}
@media(max-width:700px){
 :root{--pad:22px}
 body{font-size:16.5px}
 .sec{padding:54px 0}
 .grid{gap:10px}
 .shead{margin-bottom:26px}
 .shead h2,.aud .shead h2{font-size:clamp(38px,11.5vw,50px)}
 .m{margin-bottom:0}
 .hero{align-items:flex-start;padding:112px 0 36px}
 .hero h1{font-size:15.5vw}
 .hfoot{margin-top:28px;padding-top:22px;gap:18px}
 .lead,.hero .lead{font-size:17px}
 /* approach */
 .dp{padding:26px 0}
 .dp h3{font-size:clamp(46px,13.5vw,64px)}
 .ip{margin-top:30px}
 .edge>div{grid-template-columns:1fr;gap:6px;padding:26px 0}
 .edge .num{font-size:40px}
 /* services */
 .aud>.wrap>.grid>.m,.who-sec>.wrap>.grid>.m{display:none}
 .who li{padding:14px 0;border-color:transparent}
 .who ul{gap:0}
 .who li:not(:last-child){border-bottom:1px solid var(--rule)}
 .who>div{padding:34px 0}
 .who h3,.who .wl h3{font-size:clamp(34px,10vw,44px)}
 .cards4>.card{grid-template-columns:1fr;gap:6px;padding:26px 0}
 .cards4>.card p,.cards4>.card .when{grid-column:auto}
 .cards4>.card h3{font-size:34px}
 .card .n{padding-top:0}
 .aud .shead{margin-bottom:22px}
 .back{margin-bottom:10px}
 .steps{row-gap:30px}
 .mrow{padding:18px 0;gap:4px}
 .mrow .c{padding-left:18px}
 .step h3{font-size:30px}
 /* team */
 .tsub{font-size:25px;margin-top:12px}
 .pr{grid-template-columns:84px 1fr;column-gap:16px;row-gap:2px;padding:24px 0;align-items:center}
 .pr .mi{grid-row:1/3;width:84px;height:84px;max-width:none;margin:0;border-radius:2px}
 .pr h3{font-size:34px;align-self:end}
 .pr .role{align-self:start}
 .pr p{grid-column:1/-1;margin-top:12px}
 .pr .ln{grid-column:1/-1}
 /* clients */
 .case{gap:12px}
 /* footer */
 .foot .wrap{flex-direction:column;align-items:flex-start;gap:6px}
}
@media(max-width:700px){main>.sec:first-child{padding-top:96px}}
@media(max-width:700px){.steps::before,.step::before{display:none}}
@media(max-width:700px){.case .meta,.step .k{font-size:12px}}
/* v21 */
.svc-m{display:none}
@media(max-width:1020px){
 .svc-d{display:none}
 .svc-m{display:block;padding-top:96px}
 .svc-m h2{font-size:clamp(38px,11.5vw,50px);margin-bottom:22px}
 .sv-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule);position:sticky;top:60px;background:var(--paper);z-index:5;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}
 .sv-tabs button{font:500 14px/1.2 var(--sans,inherit);color:var(--mute);padding:14px 6px 13px 0;text-align:left;border-bottom:2px solid transparent;margin-bottom:-1px;min-height:52px;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer}
 .sv-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--gold)}
 .sv-panel{padding-top:26px}
 .sv-k{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-d);margin:0 0 12px}
 .sv-needs{list-style:none;padding:0;margin:0 0 34px}
 .sv-needs li{padding:12px 0;border-top:1px solid var(--rule);color:var(--mute);font-size:16px;line-height:1.4}
 .sv-needs li:last-child{border-bottom:1px solid var(--rule)}
 .sv-needs b{display:block;color:var(--ink);font-weight:600;font-size:17px;margin-bottom:2px}
 .sv-leg{font-size:15px;color:var(--mute);margin:0 0 12px;line-height:1.45}.sv-leg b{color:var(--ink);font-weight:600}
 .sv-d{border-top:1px solid var(--rule)}.sv-d:last-child{border-bottom:1px solid var(--rule)}
 .sv-d summary{list-style:none;display:flex;align-items:baseline;gap:14px;padding:16px 28px 16px 0;cursor:pointer;position:relative;min-height:52px}
 .sv-d summary::-webkit-details-marker{display:none}
 .sv-d summary::after{content:"+";position:absolute;right:2px;top:12px;font-size:24px;line-height:1;color:var(--gold-d);font-weight:300}
 .sv-d[open] summary::after{content:"\2212"}
 .sv-d .sn{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--gold-d);min-width:26px}
 .sv-d .st{font-family:var(--serif);font-size:28px;line-height:1.05;color:var(--ink);display:block}
 .sv-d .st small{display:block;font-family:var(--sans,inherit);font-size:13px;color:var(--mute);margin-top:5px;letter-spacing:0}
 .sv-b{padding:0 0 20px 0}.sv-b p{font-size:16px;line-height:1.5;color:var(--mute);margin:0}.sv-b p b{color:var(--ink);font-weight:600}
 .sv-d .sn+.st+*{}
 .sv-b>div{padding:9px 0;border-top:1px solid var(--rule);position:relative;padding-left:20px}
 .sv-b>div:first-child{border-top:0;padding-top:0}
 .sv-b>div::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--gold)}
 .sv-b>div:first-child::before{top:.45em}
 .sv-b>div.no::before{background:none;border:1px solid #B2AE9F}.sv-b>div.no p{color:#8f8b7f}
 .sv-b>div span{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:2px}
 .sv-b>div p{color:var(--ink)}
 /* approach: levels of involvement */
 .dps{display:flex;flex-direction:column;gap:12px}
 .dp{border:0;min-height:0;padding:20px 20px 22px;background:rgba(26,25,22,.03);justify-content:flex-start;position:relative}
 .dp::before{content:"";position:absolute;left:0;top:0;height:3px;background:var(--ink)}
 .dp[data-i="0"]{width:68%}.dp[data-i="0"]::before{width:100%}
 .dp[data-i="1"]{width:84%;background:rgba(26,25,22,.055);padding:26px 20px 30px}.dp[data-i="1"]::before{width:100%}
 .dp[data-i="2"]{width:100%;background:rgba(26,25,22,.09);padding:34px 20px 40px}.dp[data-i="2"]::before{width:100%}
 .dp[data-i="0"] h3{font-size:40px}.dp[data-i="1"] h3{font-size:54px}.dp[data-i="2"] h3{font-size:72px}
 .dp[data-i="0"] p{font-size:15px}.dp[data-i="2"] p{font-size:18px}
 .dp h3{margin:6px 0 10px}
}
@media(max-width:700px){
 .dp{padding:20px 20px 22px}
 .foot .wrap{gap:4px}
 .foot ul{display:grid;grid-template-columns:repeat(4,1fr);gap:0;width:100%;margin-top:6px;padding:0;list-style:none}
 .foot li{grid-column:span 2}
 .foot li:nth-child(1){grid-column:span 3}.foot li:nth-child(2){grid-column:span 1;text-align:right}
 .foot li:nth-child(3){border-top:1px solid var(--rule);margin-top:10px;padding-top:4px}.foot li:nth-child(4){border-top:1px solid var(--rule);margin-top:10px;padding-top:4px}
 .foot a,.foot .linkbtn{padding:11px 0;font-size:13.5px;text-align:left}
 .foot li:nth-child(2) a{text-align:right}
 .fl{padding-bottom:6px}
}
@media(max-width:1020px){.sv-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.sv-tabs button{white-space:nowrap;padding-right:0;padding-left:0;text-align:center;font-family:var(--sans)}.sv-tabs button:first-child{text-align:left}.sv-tabs button:last-child{text-align:right}}
/* v22 */
.ct tr:last-child td,.ct tr:last-child th{border-bottom:0}
.sv-tabs button:focus:not(:focus-visible){outline:none}
@media(max-width:1020px){
 .sv-needs li:first-child{border-top:0}.sv-needs li:last-child{border-bottom:0}
 .sv-d:first-of-type{border-top:0}.sv-d:last-child{border-bottom:0}
 .sv-k+.sv-d,.sv-leg+.sv-d{border-top:0}
 .dp,.dp[data-i]{width:100%!important;background:rgba(26,25,22,.05)!important;padding:26px 20px 30px!important}
 .dp h3,.dp[data-i] h3{font-size:54px!important}
 .dp p,.dp[data-i] p{font-size:17px!important}
}
@media(max-width:700px){
 .foot .wrap{align-items:center;text-align:center;gap:0}
 .fl{flex-direction:column;gap:10px;padding-bottom:8px}
 .foot ul{display:flex;flex-direction:column;align-items:center;width:100%;margin-top:0}
 .foot li,.foot li:nth-child(n){grid-column:auto;border:0!important;margin:0!important;padding:0!important;text-align:center}
 .foot li a,.foot li:nth-child(2) a,.foot .linkbtn{text-align:center;padding:11px 0}
}
@media(max-width:700px){.stmt{font-size:clamp(34px,10.4vw,48px)}}
@media(max-width:700px){.contact .stmt{font-size:11.6vw!important;max-width:none!important}}
/* v25: desktop - OUR OWN IP inline before the sentence */
@media(min-width:1021px){
 .ip{flex-direction:row;align-items:baseline;gap:.5em;flex-wrap:nowrap}
 .ip b{display:inline;font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.4vw,34px);line-height:1.15;letter-spacing:-.01em;text-transform:uppercase;color:var(--gold);white-space:nowrap;margin:0}
}

/* v29: team LinkedIn links */
.pr .ln{display:inline-block;justify-self:start;margin-top:14px;font-size:13px;font-weight:600;letter-spacing:.02em;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px;color:var(--ink)}
.pr .ln:hover{color:var(--gold-d)}
@media(max-width:1020px){.pr .ln{padding:11px 0 4px;margin-top:4px;border-bottom:0;position:relative}.pr .ln::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1px;background:var(--gold)}}
/* v30: Our own IP, more presence */
.ip{border-left:1px solid var(--gold);padding-left:16px}
.ip span{color:#000;-webkit-text-stroke:.45px #000;paint-order:stroke fill}
@media(max-width:1020px){.ip{padding-left:14px}}

/* v32: responsive cap, approach fit, darker service copy, team rules from first paint */
:root{--mute:#4A473F}
.wrap{max-width:1240px}
.hero h1,.stmt,.contact .stmt{max-width:100%}
.sv-b p,.sv-needs li,.sv-leg,.sv-d .st small,.sv-b>div span,.card p,.cards4 .when,.edge p,.who li{color:#2c2b27}
.sv-b p b,.sv-needs b,.sv-leg b{color:#11110F}
.mrow .c.no{color:#6f6b60}
.pr{opacity:1}
.pr .ln::after{opacity:1}
@media(min-width:1021px){.pr:not(.on){opacity:.55}.pr.on,.pr:hover,.pr:focus{opacity:1}}
@media(min-width:1021px){.dp{padding:26px 0}}
@media(min-width:1500px){body{font-size:18px}}
.card.dk p,.cards4>.card p{color:#2c2b27}
.card .when i{color:#11110F}

/* v37: no section-number column; content aligns with logo */
.grid{display:block}
.grid>.m{display:none}

/* v39: remove Our edge dividers on mobile only */
@media(max-width:1020px){.edge>div{border-top:0;border-bottom:0}}
/* v39: give the desktop Our own IP line more room */
@media(min-width:1021px){.ip{margin-top:clamp(40px,5vw,80px)}.ip span{font-size:clamp(24px,3.2vw,40px);max-width:none}}

.alt{display:none}
@media(min-width:1021px){
.scene{display:none}.alt{display:block}
.ah{font-size:clamp(38px,4.4vw,72px);margin-bottom:28px}
.lab2{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:34px}.lab2 i{font-style:normal;color:var(--gold-d)}
.ab .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--gold-d)}
.ab h3{font-size:clamp(40px,3.6vw,60px);margin:10px 0 12px}
.ab p{color:var(--mute);font-size:clamp(16px,1.3vw,19px);max-width:26ch}
.alt+.ip,.col>.ip{margin-top:48px}
/* A: equal blocks, hover expands to depth */
.altA .blocks{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;align-items:end;height:clamp(380px,40vw,500px)}
.altA .ab{padding:26px 28px;box-sizing:border-box;height:38%;overflow:hidden;transition:height .45s cubic-bezier(.2,.7,.2,1);cursor:default;outline-offset:3px}
.altA .ab p{opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .45s ease;margin:0}
.altA .b1{background:#fff}.altA .b2{background:#E2DDD2}.altA .b3{background:var(--ink);color:#EDEAE0}
.altA .b3 p{color:#C9C5B8}.altA .b3 .n{color:var(--gold)}
.altA .b1:hover,.altA .b1:focus-visible{height:50%}
.altA .b2:hover,.altA .b2:focus-visible{height:72%}
.altA .b3:hover,.altA .b3:focus-visible{height:100%}
.altA .ab:hover p,.altA .ab:focus-visible p{opacity:1;transform:none;transition-delay:.12s}
.altA .ab:focus-visible{outline:2px solid var(--gold-d)}
.altA .b3:focus-visible{outline-color:var(--gold)}
.alt~.ip,.alt+.ip{box-sizing:border-box;max-width:100%}
.alt+.ip span{min-width:0;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.altA .ab,.altA .ab p{transition:none}}
}
@media(min-width:1021px){
.alt+.ip{overflow:hidden}
.alt+.ip span,.alt+.ip b{font-size:clamp(20px,2.55vw,36px)}
.alt+.ip span{min-width:0;flex:0 1 auto;white-space:nowrap;overflow-wrap:normal}
}
