/* Agile Expat — direction A (tech minimal). Light only. */
@font-face{font-family:"Geist";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/geist-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geist";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--bg:#FFFFFF;--bg-2:#F6F8FA;--fg:#111318;--fg-2:#4B5160;--muted:#80868F;--line:#E8EBEF;--accent:#245F5A;--soft:#E6F0EF;--glow:rgba(191,217,215,.75);--radius:14px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(circle 24rem at calc(100% - 10rem) 6.5rem,var(--glow),rgba(230,236,243,.45) 55%,rgba(255,255,255,0) 100%) no-repeat,var(--bg);color:var(--fg-2);font-family:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:70rem;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
img{display:block;max-width:100%;height:auto}
p{margin:0}
h1,h2,h3{margin:0;color:var(--fg);font-weight:600;letter-spacing:-.04em;line-height:1.03;text-wrap:balance}
h1{font-size:clamp(2.8rem,6.6vw,5rem);letter-spacing:-.045em}
h2{font-size:clamp(2rem,4vw,3.1rem)}
h3{font-size:1.15rem;line-height:1.3;letter-spacing:-.01em}
h1 em,h2 em{font-style:normal;color:var(--muted)}
strong{color:var(--fg);font-weight:600}
a{color:inherit}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0}
.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem .8rem;border-radius:8px}
.eyebrow{font-size:.8rem;font-weight:500;color:var(--accent)}
.lead{font-size:1.15rem;color:var(--fg-2);max-width:36rem}
section{padding-block:clamp(4.5rem,9vw,7.5rem)}
.head{display:flex;flex-direction:column;gap:1rem;max-width:44rem}

.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--fg);color:#fff;text-decoration:none;font-weight:500;font-size:.95rem;padding:.75rem 1.3rem;border-radius:999px;border:1px solid var(--fg);white-space:nowrap;transition:opacity .15s}
.btn:hover{opacity:.85}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:transparent;border-bottom:1px solid transparent;transition:background .2s,border-color .2s}
.nav.scrolled{background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:#fff}
.nav .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:1rem}
.logo{white-space:nowrap;font-weight:600;color:var(--fg);text-decoration:none;display:flex;align-items:center;gap:.5rem;letter-spacing:-.01em}
.logo::before{content:"";width:.7rem;height:.7rem;border-radius:3px;background:var(--fg)}
.links{display:flex;gap:1.6rem;align-items:center;font-size:.92rem}
.links a:not(.btn){text-decoration:none;color:var(--fg-2)}
.links a:not(.btn):hover{color:var(--fg)}
.lang{display:flex;gap:.1rem;border:1px solid var(--line);border-radius:999px;padding:.15rem;font-size:.75rem;font-weight:500;letter-spacing:.02em}
.links .lang a{padding:.15rem .5rem;border-radius:999px;color:var(--muted)}
.links .lang a[aria-current]{background:var(--soft);color:var(--accent)}
.q-orig{margin:.4rem 0 0;font-size:.85rem;color:var(--muted)}
.links .btn{padding:.55rem 1.05rem;font-size:.88rem}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:0}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:clamp(2.5rem,6vw,5rem);align-items:center;padding-block:clamp(3.5rem,8vw,6.5rem) clamp(3rem,6vw,4.5rem)}
.hero-copy{display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.pill{display:inline-flex;align-items:center;gap:.55rem;font-size:.8rem;color:var(--fg-2);border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:999px;padding:.3rem .85rem .3rem .35rem;width:max-content;max-width:100%;text-decoration:none}
.pill b{background:var(--soft);color:var(--accent);border-radius:999px;padding:.08rem .55rem;font-weight:600;white-space:nowrap}
.sub{font-size:.88rem;color:var(--muted)}
.ctas{display:flex;gap:.8rem 1.6rem;flex-wrap:wrap;align-items:center;margin-top:.6rem}
.photo{position:relative;justify-self:center;width:min(100%,22rem)}
.photo img{width:100%;border-radius:50%}
.chip{position:absolute;left:-1.6rem;bottom:1.2rem;display:grid;font-size:.8rem;line-height:1.35;color:#3A3F4A;text-decoration:none;touch-action:pan-y;-webkit-user-select:none;user-select:none;perspective:900px}
.ci{grid-area:1/1;position:relative;overflow:hidden;border-radius:16px;padding:.75rem 1rem .85rem;
  background:linear-gradient(135deg,rgba(255,255,255,.66) 0%,rgba(255,255,255,.34) 55%,rgba(255,255,255,.5) 100%);
  -webkit-backdrop-filter:blur(18px) saturate(190%);backdrop-filter:blur(18px) saturate(190%);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 1px rgba(255,255,255,.4),inset 0 0 0 .5px rgba(17,19,24,.05),0 2px 6px rgba(17,19,24,.06),0 16px 36px rgba(17,19,24,.13);
  opacity:0;transform:translateX(70%) scale(.9);pointer-events:none;
  transition:transform .6s cubic-bezier(.22,.9,.3,1.05),opacity .45s ease,color .3s ease}
.ci::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 70% at 12% -10%,rgba(255,255,255,.85),rgba(255,255,255,0) 55%),linear-gradient(180deg,rgba(255,255,255,0) 60%,rgba(255,255,255,.25))}
.ci > *{position:relative}
.ci b{transition:color .3s ease}
.ci:not(.on),.ci:not(.on) b{color:transparent}
.ci.next{opacity:.55;transform:translate(10px,7px) scale(.95);z-index:0}
.ci.on{opacity:1;transform:none;z-index:2;pointer-events:auto}
.ci.off{opacity:0;transform:translateX(-85%) rotate(-4deg) scale(.92);z-index:1}
.ci::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--accent);opacity:.6;transform-origin:left;transform:scaleX(0)}
.chip.run .ci.on::after{animation:chipbar 5s linear forwards}
.chip.drag .ci{transition:none}
@keyframes chipbar{to{transform:scaleX(1)}}
.chip b{display:block;color:var(--fg);font-size:1.05rem;letter-spacing:-.02em}

/* logos */
.logos{padding-block:2.2rem 0}
.logos .wrap{display:flex;flex-direction:column;gap:1.4rem}
.logos ul{list-style:none;margin:0 auto;padding:.6rem 0 0;max-width:66rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2rem 3.2rem}
.logos img{opacity:.62;transition:opacity .2s}
.logos a{display:block;border-radius:6px}
.logos li:hover img,.logos a:focus-visible img{opacity:1}

/* thesis */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.split .body{display:flex;flex-direction:column;gap:1.1rem;padding-top:.4rem}

/* case */

.c-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.5rem}
.case{overflow-x:clip}
.c-track{--edge:max(20px,calc((100vw - 70rem)/2 + 20px));display:flex;gap:3rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 calc(50% - 50vw);padding:.4rem var(--edge) 1.6rem;scroll-padding-inline:var(--edge)}
.c-track::-webkit-scrollbar{display:none}
.c-track:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.slide{flex:0 0 calc(100vw - 2*var(--edge));scroll-snap-align:start;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;min-width:0}
.case-h{font-size:clamp(1.9rem,3.6vw,2.8rem);letter-spacing:-.04em;line-height:1.05}
.case-h em{font-style:normal;color:var(--muted)}
.chart .line{fill:none;stroke:var(--fg);stroke-width:2;stroke-linejoin:round}
.chart .area{fill:var(--soft);opacity:.85}
.chart .pt{fill:#fff;stroke:var(--fg);stroke-width:2}
.chart .axis0{stroke:var(--fg-2);stroke-width:1.2}
.chart .neg{fill:#D5DBE2}
.chart .pos{fill:var(--fg)}
.case-copy{display:flex;flex-direction:column;gap:1.15rem;min-width:0}
.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.tags li{font-size:.82rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem}
.note{font-size:.88rem;color:var(--muted)}
.panel{margin:0;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:1.4rem;min-width:0;box-shadow:0 1px 2px rgba(17,19,24,.04),0 20px 50px rgba(17,19,24,.07)}
.panel .cap{font-size:.8rem;color:var(--muted)}
.chart svg{width:100%;height:auto;display:block}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .ax{font-family:inherit;font-size:11px;fill:var(--muted)}
.chart .row{font-family:inherit;font-weight:600;font-size:12.5px;fill:var(--fg)}
.chart .bar{stroke:var(--muted);stroke-width:2}
.chart .from{fill:#fff;stroke:var(--muted);stroke-width:2}
.chart .to{fill:var(--fg)}
.chart .val{font-family:inherit;font-weight:600;font-size:12px;fill:var(--fg)}
.chart .val.m{font-weight:400;fill:var(--muted)}
.chart .zone{fill:var(--soft)}
.chart .target{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}
.chart .target-t{font-family:inherit;font-weight:600;font-size:11px;fill:var(--accent)}
.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;border-top:1px solid var(--line);padding-top:1.3rem;margin:0}
.figs div{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.figs dt{font-size:1.45rem;font-weight:600;color:var(--fg);letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.figs dd{margin:0;font-size:.84rem;line-height:1.4}

/* services */
.svc{list-style:none;margin:3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.svc > li{border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;min-width:0;transition:border-color .15s,box-shadow .15s}
.svc > li:hover{border-color:#CDD3DA;box-shadow:0 12px 30px rgba(17,19,24,.06)}
.ico{width:2.4rem;height:2.4rem;border-radius:10px;background:var(--soft);color:var(--accent);display:grid;place-items:center;margin-bottom:.3rem}
.ico svg{width:1.25rem;height:1.25rem}
.svc p{font-size:.96rem}
.svc p a{color:var(--fg);font-weight:500}
.svc > li.wide{grid-column:1/-1;order:9}
.topics{list-style:none;margin:.1rem 0 .2rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.45rem 1.5rem}
.topics li{font-size:.9rem;line-height:1.4;padding-left:.9rem;position:relative}
.topics li::before{content:"";position:absolute;left:0;top:.55em;width:.35rem;height:.35rem;border-radius:50%;background:var(--accent)}
.svc .for{margin-top:auto;padding-top:.4rem;font-size:.8rem;color:var(--muted)}
.founder{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;font-size:.98rem}
.founder a{color:var(--fg);font-weight:500}

/* testimonials */

.feature{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2rem;align-items:start;margin:3rem 0 0;padding-bottom:3rem;border-bottom:1px solid var(--line)}
.feature img{width:4.5rem;height:4.5rem;border-radius:50%}
.feature blockquote{margin:0;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.2;letter-spacing:-.025em;color:var(--fg);font-weight:500;text-wrap:balance}
.feature figcaption{margin-top:1rem;font-size:.9rem;color:var(--fg-2)}
.q-bar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:2.5rem}
.q-nav{display:flex;gap:.5rem}
.q-btn{width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;font-size:1rem;cursor:pointer;transition:border-color .15s,opacity .15s}
.q-btn:hover{border-color:#B9C0C8}
.q-btn:disabled{opacity:.35;cursor:default}
.q-btn:focus-visible,.quotes:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.voices{overflow-x:clip}
.quotes{--edge:max(20px,calc((100vw - 70rem)/2 + 20px));display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;margin:1rem calc(50% - 50vw) 0;padding:.3rem var(--edge) 1rem;scroll-padding-inline:var(--edge)}
.quotes::-webkit-scrollbar{display:none}
.quote{flex:0 0 min(22rem,85%);scroll-snap-align:start;margin:0;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;display:flex;flex-direction:column;gap:1rem}
.quote .who{margin-top:auto}
.quote blockquote{margin:0;font-size:.93rem;line-height:1.6}
.who{display:flex;align-items:center;gap:.75rem}
.who img{width:2.6rem;height:2.6rem;border-radius:50%;flex:none}
.who b{display:block;font-size:.9rem;color:var(--fg);font-weight:600;line-height:1.25}
.who span{display:block;font-size:.8rem;color:var(--muted);line-height:1.3}

/* talks */
.talks{list-style:none;margin:3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem}
.talks li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:baseline;border-top:1px solid var(--line);padding-block:1.2rem}
.talks h3{font-size:1.05rem}
.talks h3 a{text-decoration:none}
.talks h3 a:hover{text-decoration:underline}
.talks span{font-size:.82rem;color:var(--muted);white-space:nowrap}
.talks .new span{color:var(--accent);font-weight:600}
.venues{margin-top:1.8rem;font-size:.92rem;color:var(--muted)}
.venues a{color:var(--fg)}

/* steps */
.process{padding-top:0}
.steps{list-style:none;margin:3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.steps li{display:flex;flex-direction:column;gap:.55rem;min-width:0;border-top:1px solid var(--line);padding-top:1.1rem}
.steps li:first-child{border-top-color:var(--fg)}
.steps .n{font-size:.8rem;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}
.steps p{font-size:.95rem}

/* about */

.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 2rem;margin:.4rem 0 0}
.stats div{display:flex;flex-direction:column;gap:.15rem;border-top:1px solid var(--line);padding-top:.8rem;min-width:0}
.stats dt{font-size:1.8rem;font-weight:600;letter-spacing:-.03em;color:var(--fg);line-height:1.1;font-variant-numeric:tabular-nums}
.stats dd{margin:0;font-size:.88rem;line-height:1.4}
.creds-h{margin-top:1.4rem}
.about .head .creds{grid-template-columns:minmax(0,1fr);max-width:26rem}
.creds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.creds li{display:flex;align-items:center;gap:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;min-width:0}
.creds img,.creds .mono{width:2.9rem;height:2.9rem;object-fit:contain;flex:none}
.creds .mono{display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--accent);font-size:.68rem;font-weight:700;letter-spacing:.02em}
.creds b{display:block;font-size:.86rem;color:var(--fg);font-weight:600;line-height:1.3}
.creds span{display:block;font-size:.78rem;color:var(--muted);line-height:1.3}

/* close */
.case,.voices,.about{background:linear-gradient(var(--bg),var(--bg-2) clamp(3rem,6vw,5rem),var(--bg-2) calc(100% - clamp(3rem,6vw,5rem)),var(--bg))}
.close{background:radial-gradient(ellipse min(46rem,90vw) 15rem at 50% 52%,var(--glow),rgba(230,236,243,.45) 55%,rgba(255,255,255,0) 100%) no-repeat}
.close .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.3rem}
.close h2{max-width:40rem}
.close .lead{margin-inline:auto}
.alt-contact{margin:.2rem 0 0;font-size:.92rem;color:var(--fg-2)}
.alt-contact a{color:var(--fg);font-weight:500}
.close .ctas{justify-content:center;margin-top:0;gap:.8rem}
.btn.glass{color:var(--fg);border:1px solid rgba(255,255,255,.75);background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.42));-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(17,19,24,.04),0 1px 2px rgba(17,19,24,.06),0 10px 28px rgba(36,95,90,.14);transition:box-shadow .2s,transform .2s}
.btn.glass:hover{opacity:1;transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(17,19,24,.04),0 2px 4px rgba(17,19,24,.06),0 14px 34px rgba(36,95,90,.2)}
.btn svg{flex:none}
.contacts{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;justify-content:center;font-size:.92rem;color:var(--fg-2)}
.contacts a{color:var(--fg)}
footer{border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;padding-block:1.6rem 2rem}
footer nav{display:flex;flex-wrap:wrap;gap:1.2rem}
footer a{color:var(--fg-2)}

/* simple pages */
.doc{padding-block:clamp(3rem,7vw,5rem)}
.doc .wrap{max-width:44rem;display:flex;flex-direction:column;gap:1.1rem}
.doc h1{font-size:clamp(2.2rem,5vw,3.2rem)}
.doc h2{font-size:1.3rem;letter-spacing:-.02em;margin-top:1.2rem}
.doc ul{margin:0;padding-left:1.2rem}

@media (max-width:60rem){
  .hero .wrap,.split,.slide{grid-template-columns:minmax(0,1fr)}
  .photo{width:min(70%,17rem)}
  .svc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .links a.m-hide{display:none}
  .links{gap:.8rem}
}
@media (max-width:40rem){
  .logos ul{gap:1.8rem 2.4rem}
  .svc,.talks,.steps,.creds,.stats{grid-template-columns:minmax(0,1fr)}
  .figs{grid-template-columns:minmax(0,1fr)}
  .feature{grid-template-columns:minmax(0,1fr);gap:1rem}
  .chip{left:0}
  .talks li{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.svc > li,.logos img{transition:none}}
