@font-face{font-family:'Archivo';src:url(../fonts/archivo-latin-wdth-normal.woff2) format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}

/* Layout: executive one-pager feel; one left edge, scope and results visible in the first screen, lists not cards. Committed light look by design. */
:root{
  --bg:#FFFFFF;
  --ink:#0F1B2D;
  --muted:#5A6677;
  --soft:#3B4757;
  --line:#E2E6EB;
  --wash:#F3F5F8;
  --accent:#2442D9;
  --tbc:#B7791F;
  --on-ink:#FFFFFF;
  --font:'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.wrap{max-width:1040px;margin:0 auto}
.tbc{text-decoration:underline dotted;text-decoration-color:var(--tbc);text-decoration-thickness:2px;text-underline-offset:4px}

.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid transparent;transition:border-color .2s ease;margin-left:calc(-1 * max(16px,env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(16px,env(safe-area-inset-right,0px)));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.site-head.scrolled{border-bottom-color:var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{text-decoration:none;display:grid;line-height:1.2}
.brand b{font-weight:600;font-size:17px;letter-spacing:-.01em}
.brand span{font-size:13px;color:var(--muted);font-stretch:90%}
.nav{display:flex;gap:28px;font-size:15px}
.nav a{color:var(--muted);text-decoration:none;padding:6px 0}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:8px}
.menu-btn{display:none;font:inherit;font-size:15px;background:none;border:0;color:var(--ink);padding:10px 0;cursor:pointer}
@media (max-width:720px){
  .menu-btn{display:inline-block}
  .nav{display:none}
  .site-head.open .nav{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:4px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px))}
  .site-head.open .nav a{font-size:22px;color:var(--ink);padding:12px 0;border-top:1px solid var(--line)}
}


.display{font-size:clamp(38px,5.6vw,72px);font-weight:500;letter-spacing:-.035em;line-height:1.03;margin:0;max-width:15em;text-wrap:balance}
.h1{font-size:clamp(38px,5vw,62px);font-weight:500;letter-spacing:-.03em;line-height:1.05;margin:0;text-wrap:balance;max-width:16em}
.h2{font-size:26px;font-weight:500;letter-spacing:-.02em;line-height:1.2;margin:0;text-wrap:balance}
.lead{font-size:20px;line-height:1.55;max-width:36em;margin:0}
.muted{color:var(--muted)}
.hero{padding-top:clamp(48px,8vw,104px)}
.page-head{padding-top:clamp(48px,8vw,104px)}
.page-head .lead{margin-top:20px}
.back{display:inline-block;font-size:15px;color:var(--muted);text-underline-offset:4px;margin-bottom:16px}
.block{margin-top:clamp(72px,9vw,112px)}
.block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:20px}
.more{font-size:15px;text-underline-offset:4px}
.more:hover,.back:hover{text-decoration-color:var(--accent)}

.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:32px}
.btn{font:inherit;font-size:16px;font-weight:500;border-radius:999px;padding:12px 22px;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--on-ink);text-decoration:none}
.btn:hover{background:var(--soft);border-color:var(--soft)}
.textbtn{font:inherit;font-size:16px;background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.textbtn:hover{text-decoration-color:var(--accent)}

.scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px 32px;margin:clamp(44px,6vw,64px) 0 0;padding-top:20px;border-top:1px solid var(--ink)}
.scope dt{font-size:14px;color:var(--muted)}
.scope dd{margin:4px 0 0;font-size:17px;line-height:1.45;font-weight:500}

.proofs{border-top:1px solid var(--ink)}
.proof{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:6px 32px;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;align-items:baseline}
.proof b{font-size:clamp(40px,4.4vw,54px);font-weight:500;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.p-title{font-size:23px;font-weight:500;letter-spacing:-.015em;line-height:1.25;text-wrap:balance}
.p-sub{font-size:16px;color:var(--soft);margin-top:6px;line-height:1.5;max-width:40em}
.p-meta{font-size:15px;color:var(--muted);margin-top:8px}
a.proof:hover .p-title{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:5px}
@media (max-width:640px){.proof{grid-template-columns:1fr}}

.list{border-top:1px solid var(--ink)}
.row{display:block;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.row-title{font-size:23px;font-weight:500;letter-spacing:-.015em;line-height:1.25;text-wrap:balance}
.row-sub{font-size:16px;color:var(--soft);margin-top:6px;line-height:1.5;max-width:42em}
.row-meta{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:15px;color:var(--muted);margin-top:8px}
a.row:hover .row-title{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:5px}
.row .go{font-size:15px;color:var(--ink);text-decoration:underline;text-underline-offset:4px;margin-top:10px;display:inline-block}

.timeline{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.timeline li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 24px;padding:16px 0;border-bottom:1px solid var(--line)}
.timeline .yr{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px}
.timeline .who{font-size:18px;font-weight:500;line-height:1.35}
.timeline .what{font-size:16px;color:var(--soft);line-height:1.5;margin-top:2px}
@media (max-width:560px){.timeline li{grid-template-columns:1fr}}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px 32px;margin:36px 0 0;padding-top:20px;border-top:1px solid var(--ink)}
.facts dt{font-size:14px;color:var(--muted)}
.facts dd{margin:4px 0 0;font-size:17px;line-height:1.45}
.section{margin-top:56px;max-width:740px}
.section h2{font-size:22px;font-weight:500;letter-spacing:-.01em;margin:0 0 12px}
.section p{margin:0}
.decisions{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.decisions li{padding:16px 0;border-bottom:1px solid var(--line)}
.decisions b{display:block;font-weight:500;font-size:18px}
.decisions span{display:block;color:var(--soft);font-size:17px;margin-top:4px;line-height:1.55}
.changed{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px 32px}
.changed li{border-top:1px solid var(--line);padding-top:14px}
.changed b{display:block;font-size:28px;font-weight:500;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.changed span{display:block;margin-top:6px;font-size:16px;color:var(--soft);line-height:1.45}
.pager{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:64px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:17px}
.pager a{text-underline-offset:4px}
.pager a.next{font-weight:500;text-decoration:none}
.pager a.next:hover{text-decoration:underline;text-decoration-color:var(--accent)}

.about-intro{display:flex;flex-wrap:wrap;gap:32px 48px;margin-top:40px;align-items:flex-start}
.photo{flex:0 1 220px;width:220px;max-width:100%;aspect-ratio:4/5;background:var(--wash);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px}
.about-text{flex:1 1 360px;min-width:0}
.about-text .big{font-size:clamp(21px,2.2vw,26px);line-height:1.45;letter-spacing:-.01em;margin:0;max-width:28em}
.about-text p + p{margin-top:16px}

.dim{display:flex;margin-top:8px}
.seg{position:relative;height:56px;min-width:0}
.s-eng{flex:4.5 1 0}.s-bank{flex:12.6 1 0}
.ext{position:absolute;top:0;bottom:0;width:1px;background:var(--ink)}
.tick{position:absolute;top:20px;width:1.5px;height:16px;background:var(--ink);transform:rotate(45deg)}
.dimrow{position:absolute;left:0;right:0;top:28px;transform:translateY(-50%);display:flex;align-items:center}
.ln{flex:1 1 8px;min-width:8px;height:1px;background:var(--ink)}
.ln.l{transform-origin:left center}.ln.r{transform-origin:right center}
.dim.draw .ln{animation:drawx 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes drawx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dimlbl{padding:0 12px;font-size:15px;font-stretch:87.5%;line-height:1.2;text-align:center}

.projects{list-style:none;margin:48px 0 0;padding:0;border-top:1px solid var(--ink)}
.proj{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px 36px;padding:28px 0;border-bottom:1px solid var(--line)}
.shot{aspect-ratio:16/10;max-width:100%;overflow:hidden;background:var(--wash);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}
.shot img{display:block;width:100%;height:100%;object-fit:cover}
.proj-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}
.proj h2{font-size:23px;font-weight:500;letter-spacing:-.015em;line-height:1.25;margin:0;text-wrap:balance}
.pill{font-size:14px;color:var(--soft);border:1px solid #C9D0D8;border-radius:999px;padding:2px 12px;white-space:nowrap}
.proj dl{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 16px;margin:14px 0 0}
.proj dt{font-size:14px;color:var(--muted);padding-top:2px}
.proj dd{margin:0;font-size:16px;line-height:1.5;color:var(--soft)}
.visit{display:inline-block;margin-top:16px;font-size:15px;text-underline-offset:4px}
.visit:hover{text-decoration-color:var(--accent)}
@media (max-width:640px){.proj{grid-template-columns:1fr}.proj dl{grid-template-columns:1fr;gap:2px}.proj dd{margin-bottom:8px}}

.site-foot{margin-top:clamp(96px,12vw,150px);border-top:1px solid var(--ink);padding-block:40px 56px}
.foot-line{font-size:clamp(26px,3.4vw,42px);font-weight:500;letter-spacing:-.025em;line-height:1.12;margin:0;max-width:15em;text-wrap:balance}
.foot-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:28px;font-size:17px}
.foot-meta{margin-top:48px;font-size:14px;color:var(--muted)}


@media (prefers-reduced-motion:reduce){
  .dim.draw .ln{animation:none}
}

@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
.proj-noshot{grid-template-columns:minmax(0,1fr)}
.section-wide{max-width:none}
.flow{margin-top:8px}
.flow-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 24px}
.flow-steps li{border-top:2px solid var(--ink);padding-top:12px;counter-increment:step}
.flow-steps li.in-visit{border-top-color:var(--accent)}
.flow-steps b{display:block;font-size:18px;font-weight:500}
.flow-steps b::before{content:counter(step) ". ";color:var(--muted);font-weight:400}
.flow-steps span{display:block;margin-top:4px;font-size:15px;line-height:1.45;color:var(--soft)}
.flow-steps{counter-reset:step}
.flow-span{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:18px 0 0 calc((100% + 24px) * 2 / 5);height:28px;border-left:1px solid var(--accent);border-right:1px solid var(--accent)}
.flow-span .ln{height:1px;background:var(--accent)}
.flow-lbl{padding:0 12px;font-size:15px;color:var(--accent);font-stretch:87.5%}
.flow-note{display:none;margin:12px 0 0;font-size:15px;color:var(--accent)}
.photo-wide{margin:40px 0 0;max-width:740px}
.photo-wide img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.photo-wide figcaption{margin-top:8px;font-size:14px;color:var(--muted)}
.press{margin-top:12px;font-size:16px;color:var(--soft)}
.press a{text-underline-offset:4px}
@media (max-width:720px){.flow-steps{grid-template-columns:1fr;gap:16px}.flow-span{display:none}.flow-note{display:block}}
.app-badge{display:flex;align-items:center;gap:16px;margin-top:24px}
.app-badge img{width:88px;height:88px;border-radius:20px;border:1px solid var(--line);flex:none}
.app-badge span{font-size:16px;color:var(--soft);line-height:1.4}
.photo{overflow:hidden}
.photo img{display:block;width:100%;height:100%;object-fit:cover}
.sources{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-size:15px;color:var(--soft)}
.sources span{color:var(--muted);margin-right:4px}
.sources a,.decisions b a,.app-badge a,.facts dd a{text-underline-offset:4px;text-decoration-color:#9AA5B4}
.sources a:hover,.decisions b a:hover,.app-badge a:hover,.facts dd a:hover{text-decoration-color:var(--accent)}
