/* Satoshi from Fontshare.
   Source: https://www.fontshare.com/fonts/satoshi
   License: https://www.fontshare.com/licenses/itf-ffl */
@font-face{font-family:'Satoshi';src:url('assets/fonts/satoshi-variable.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap}
:root{--cream:#FFFBF0;--ink:#1A3664;--sky:#B9CFFE;--line:rgba(26,54,100,.2);--muted:#536682;--sans:'Satoshi',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:6px}::selection{background:var(--sky);color:var(--ink)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:10px;left:10px;padding:10px 20px;background:var(--ink);color:var(--cream);z-index:50;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.header{display:flex;align-items:center;justify-content:space-between;min-height:116px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:-.4px}.brand-mark{width:37px;height:37px;stroke-width:1.5}.brand-sub{display:block;font-weight:400;font-size:10px;letter-spacing:1.9px;margin-top:5px}.header nav{display:flex;gap:35px;align-items:center;font-size:14px}.header nav>a{transition:opacity .2s}.header nav>a:hover{opacity:.65}.nav-contact{display:flex;gap:17px;align-items:center;border:1px solid var(--line);border-radius:40px;padding:10px 18px}.nav-contact .icon{width:17px;height:17px}.hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:65px;padding-top:77px;padding-bottom:72px}.eyebrow{font-size:12px;letter-spacing:1.65px;font-weight:500;line-height:1.5;margin:0 0 29px}h1,h2,h3,p,figure{margin-top:0}h1{font-family:var(--sans);font-size:clamp(66px,6.2vw,88px);font-weight:400;line-height:1.02;letter-spacing:-4px;margin-bottom:27px}.hero-description{max-width:440px;font-size:17px;line-height:1.7;margin-bottom:29px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border-radius:40px;padding:9px 9px 9px 24px;background:var(--ink);color:var(--cream);font-size:14px;min-height:54px;transition:transform .2s,background .2s}.button:hover{background:#254779;transform:translateY(-2px)}.button-icon{display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(255,251,240,.35);border-radius:50%}.button-icon .icon{width:18px;height:18px}.hero-note{font-size:12px;color:var(--muted);margin:19px 0 0}.hero-note span{padding:0 8px}.hero-visual{margin:6px 0 0;min-width:0}.hero-visual>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.credentials{display:grid;grid-template-columns:1fr 1fr 1fr;border-block:1px solid var(--line);padding-block:29px}.credentials>div{display:flex;align-items:center;gap:20px;padding-inline:34px;border-right:1px solid var(--line)}.credentials>div:first-child{padding-left:0}.credentials>div:last-child{border:0;padding-right:0;justify-content:center}.credentials strong{font-family:var(--sans);font-size:42px;font-weight:400;line-height:1.1;white-space:nowrap;letter-spacing:-2px}.credentials span{font-size:14px;line-height:1.5}.credentials .icon{width:40px;height:40px}.section{padding-block:100px}.intro{display:grid;grid-template-columns:1fr 2fr;gap:50px}.section-label{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:1.3px;align-self:start;padding-top:10px}.section-label .icon{width:28px;height:28px}h2{font-family:var(--sans);font-size:52px;font-weight:400;letter-spacing:-2px;line-height:1.12;margin-bottom:28px}.intro-text{font-size:22px;line-height:1.55;max-width:770px;margin-bottom:0}@media(min-width:1600px){.hero{padding-block:95px}.wrap{width:min(1340px,calc(100% - 160px))}}@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{gap:30px}h1{font-size:65px;letter-spacing:-3px}.eyebrow{font-size:10px}.hero-description{font-size:16px}.credentials>div{padding-inline:20px}.credentials strong{font-size:36px}.credentials span{font-size:12px}.intro{grid-template-columns:1fr 2fr;gap:28px}h2{font-size:44px}}@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{min-height:91px}.brand{font-size:15px}.brand-mark{width:30px;height:30px}.brand-sub{font-size:8px;letter-spacing:1.1px}.header nav>a:not(.nav-contact){display:none}.nav-contact{padding:8px 12px;font-size:12px;gap:7px}.hero{grid-template-columns:1fr;gap:38px;padding-top:47px;padding-bottom:40px}.eyebrow{font-size:10px;letter-spacing:1.15px;margin-bottom:22px}h1{font-size:clamp(54px,12vw,76px);line-height:1.04;letter-spacing:-2.7px;margin-bottom:23px}.hero-description{font-size:16px;max-width:480px}.hero-note{font-size:11px}.hero-visual{width:min(440px,100%);justify-self:center;margin-top:4px}.credentials{grid-template-columns:1fr;padding-block:0}.credentials>div,.credentials>div:first-child,.credentials>div:last-child{border:0;border-bottom:1px solid var(--line);justify-content:flex-start;gap:22px;padding:18px 0}.credentials>div:last-child{border:0}.credentials strong,.credentials .icon{width:85px;font-size:36px}.credentials .icon{padding-inline:25px;height:34px}.credentials span{font-size:14px}.section{padding-block:64px}.intro{grid-template-columns:1fr;gap:28px}.section-label{font-size:11px;padding-top:0}h2{font-size:43px;letter-spacing:-1.5px}.intro-text{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Mission formats */
.services{display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:100px}.service{border-top:1px solid var(--line);padding:33px 35px 0 0;display:flex;flex-direction:column}.service+.service{padding-left:35px;border-left:1px solid var(--line)}.service:last-child{padding-right:0}.service-icon{width:32px;height:32px;margin-bottom:29px}.service-kicker{font-size:12px;letter-spacing:1.3px;margin-bottom:13px}.service h4{font-family:var(--sans);font-weight:400;font-size:29px;letter-spacing:-.7px;line-height:1.15;margin-bottom:19px}.service>p:not(.service-kicker){font-size:16px;line-height:1.65;margin-bottom:26px}.service-detail{display:block;font-size:12px;color:var(--muted);margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}
/* Selected work */
.projects{border-top:1px solid var(--line);padding-top:78px}.projects-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;padding-bottom:45px}.projects-heading .section-label{margin-bottom:29px}.projects-heading h2{margin-bottom:0}.projects-heading>p{font-size:16px;line-height:1.6;max-width:230px;margin-bottom:5px;color:var(--muted)}.project-row{display:grid;grid-template-columns:1fr 1.4fr .8fr;gap:45px;padding:39px 0;border-top:1px solid var(--line);align-items:center}.project-date{font-size:12px;letter-spacing:1.1px;margin-bottom:9px;color:var(--muted)}.project-name h3{font-size:24px;letter-spacing:-.7px;font-weight:500;line-height:1.3;margin-bottom:7px}.project-name>span{font-size:12px;display:block;color:var(--muted);max-width:230px}.project-description h4{font-size:16px;line-height:1.5;font-weight:500;margin:0 0 8px}.project-description p{font-size:16px;line-height:1.7;color:var(--muted);margin-bottom:0}.project-result{padding-left:25px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.project-result strong{font-family:var(--sans);font-weight:400;font-size:42px;letter-spacing:-1.5px;line-height:1.1;white-space:nowrap}.project-result small{font-family:var(--sans);font-size:14px;letter-spacing:0}.project-result span{font-size:12px;line-height:1.5;max-width:160px}.project-row-compact .project-result strong{font-size:32px}
/* AI approach */
.ai-section{background:var(--sky)}.ai-inner{padding-block:78px;display:grid;grid-template-columns:1fr 2fr;gap:50px}.ai-aside{display:flex;flex-direction:column;justify-content:space-between}.ai-copy h2{font-size:48px}.ai-copy>p{max-width:660px;font-size:17px;line-height:1.7}.ai-copy>p:last-of-type{margin-bottom:27px}.ai-principles{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:21px;border-top:1px solid rgba(26,54,100,.25);font-size:12px}.ai-principles li{display:flex;align-items:center;gap:8px}.ai-principles li::before{content:'+';font-size:19px}
/* Contact and footer */
.contact{text-align:center;padding-block:95px 78px}.contact-star{width:38px;height:38px;margin-bottom:25px;stroke-width:1.3}.contact .eyebrow{margin-bottom:23px}.contact h2{font-size:64px;margin-bottom:24px}.contact>p:not(.eyebrow){font-size:17px;line-height:1.7;margin-bottom:28px}.contact p.contact-note{font-size:12px;color:var(--muted);margin-bottom:0}.footer{display:flex;align-items:center;gap:28px;padding-block:28px;border-top:1px solid var(--line);font-size:14px}.footer-name{font-weight:500}.footer-name span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}.footer-copyright{margin-left:auto;color:var(--muted);font-size:12px}.linkedin{display:flex;align-items:center;gap:8px}.linkedin .icon{width:17px;height:17px}.linkedin:hover{text-decoration:underline;text-underline-offset:4px}
/* Readable secondary labels */
.brand-sub{font-size:12px;letter-spacing:1.1px}.eyebrow,.section-label{font-size:12px}.hero-note{font-size:12px}
@media(max-width:1100px){.project-row{gap:24px;grid-template-columns:1fr 1.35fr .8fr}.project-result{padding-left:20px}.project-result strong{font-size:34px}.service{padding-right:23px}.service+.service{padding-left:23px}.service h4{font-size:26px}.brand-sub{font-size:12px;letter-spacing:.5px}}
@media(max-width:900px){.hero{grid-template-columns:1.12fr 1fr;gap:25px}h1{font-size:61px}.project-row{grid-template-columns:.95fr 1.5fr}.project-result{grid-column:2;flex-direction:row;align-items:center;gap:15px;padding:0;border:0}.project-result span{max-width:180px}.project-row-compact .project-result strong{font-size:28px}.ai-inner{gap:30px}.ai-copy h2{font-size:42px}.service-detail{font-size:12px;min-height:53px}}
@media(max-width:760px){.brand-sub{font-size:12px;letter-spacing:0}.hero{grid-template-columns:1fr}h1{font-size:clamp(54px,12vw,76px)}.services{grid-template-columns:1fr;padding-bottom:65px;gap:32px}.service,.service+.service,.service:last-child{border-left:0;padding:27px 0 0}.service-icon{margin-bottom:23px}.service h4{font-size:31px}.service>p:not(.service-kicker){max-width:550px;margin-bottom:20px}.service-detail{padding-top:0;border:0;min-height:0;font-size:12px}.projects{padding-top:58px}.projects-heading{display:block;padding-bottom:30px}.projects-heading>p{margin-top:22px;margin-bottom:0;max-width:none}.projects-heading>p br{display:none}.project-row{grid-template-columns:1fr;gap:22px;padding-block:32px}.project-name>span{max-width:none;font-size:12px}.project-description h4{font-size:16px}.project-description p{font-size:16px}.project-result{grid-column:auto;gap:20px}.project-result strong{font-size:37px}.project-result span{font-size:12px}.project-row-compact .project-result strong{font-size:30px}.ai-inner{grid-template-columns:1fr;gap:30px;padding-block:60px}.ai-aside{display:block}.ai-copy h2{font-size:42px}.ai-copy>p{font-size:16px}.ai-principles{gap:8px 19px}.contact{padding-block:66px}.contact h2{font-size:48px;letter-spacing:-2px}.contact>p:not(.eyebrow){font-size:16px}.contact>p br{display:none}.contact p.contact-note{font-size:12px}.footer{flex-wrap:wrap;gap:15px;justify-content:space-between}.footer-name{font-size:14px}.footer-name span{font-size:12px}.footer-copyright{display:none}.linkedin{font-size:14px}.header nav .nav-contact{font-size:12px}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.brand{gap:8px;font-size:14px}.brand-mark{width:25px;height:25px}.brand-sub{font-size:12px}.nav-contact{padding-inline:10px}.nav-contact .icon{display:none}h1{font-size:50px}.contact h2{font-size:41px}}

/* Layout for the updated editorial copy. */
.brand-sub{letter-spacing:0;font-size:12px;line-height:1.5}
h1{font-size:clamp(48px,5.1vw,72px);line-height:1.06;letter-spacing:-2.8px;text-wrap:balance}
.hero-description{max-width:500px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 26px}
.secondary-link{display:inline-flex;align-items:center;gap:9px;font-size:14px;text-underline-offset:5px}
.secondary-link:hover{text-decoration:underline}.secondary-link .icon{width:19px;height:19px}
.credentials>div,.credentials>div:last-child{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}
.credentials strong{font-size:27px;letter-spacing:-.7px;line-height:1.2;white-space:normal;width:auto}
.credentials span{font-size:14px}
.service h3.service-kicker{font-family:var(--sans);font-size:14px;line-height:1.5;font-weight:400;letter-spacing:.6px;margin:0 0 13px}
.service h4{margin-top:0}
.project-name>span{font-size:14px;max-width:260px}
.project-result strong{font-family:var(--sans);font-size:26px;line-height:1.25;letter-spacing:-.5px;white-space:normal}
.ai-principles{list-style:none;padding-left:0;margin-bottom:0;font-size:14px}
.contact>p:not(.eyebrow):not(.contact-note){max-width:670px;margin-inline:auto}
.footer-links{display:flex;gap:18px;align-items:center;margin-left:auto}
.footer-links>a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:1050px){.header nav{gap:20px}.hero{gap:28px}.credentials strong{font-size:24px}.project-result strong{font-size:24px}}
@media(max-width:760px){.header{flex-wrap:wrap;gap:18px;padding-block:23px}.header nav{display:flex;justify-content:space-between;width:100%;gap:20px}.header nav>a:not(.nav-contact){display:block}.header nav .nav-contact{font-size:14px}.brand{font-size:17px}.brand-sub{font-size:12px}.hero{padding-top:40px}h1{font-size:clamp(43px,9vw,64px);letter-spacing:-1.8px}.hero-note{max-width:370px;line-height:1.6}.credentials>div,.credentials>div:first-child,.credentials>div:last-child{align-items:flex-start;gap:7px;padding-block:22px}.credentials strong{width:auto;font-size:26px}.project-result strong{font-size:25px}.footer{align-items:flex-start}.footer-links{margin-left:0}.contact>p:not(.eyebrow):not(.contact-note){margin-bottom:22px}}
@media(max-width:370px){h1{font-size:41px}.hero-actions{gap:16px}.header nav{gap:12px}.brand-sub{font-size:12px}.footer-links{gap:14px}}

/* Satoshi hierarchy */
body{font-family:'Satoshi',sans-serif;font-weight:400;font-synthesis:none}
h1,h2,h3,h4,.service h3.service-kicker,.service h4{font-weight:500}
h1,h2,h3,.project-name h3,.service h3.service-kicker{letter-spacing:-.035em}
h1{line-height:.98}
h2{line-height:1.15}
h3,.service h4{line-height:1.25}
.service h4{letter-spacing:-.015em}
.brand,.header nav,.button,.secondary-link,.footer-links{font-weight:500}
.brand-sub,.footer-name span{font-weight:400}
.credentials strong,.project-result strong{font-weight:600;letter-spacing:-.015em;line-height:1.3}

/* Fixed navigation keeps the content and anchor targets clear of the header. */
:root{--header-height:116px}
html{scroll-padding-top:calc(var(--header-height) + 24px)}
body{padding-top:var(--header-height)}
.site-header{position:fixed;inset:0 0 auto;z-index:40;background:var(--cream);border-bottom:1px solid var(--line)}
.site-header .header{border-bottom:0}
.hero-visual>img{object-fit:contain;object-position:center}
.portrait-baseline{width:calc(100% + 48px);margin:0 -24px;border:0;border-top:1px solid rgba(26,54,100,.3)}
@media(max-width:760px){:root{--header-height:151px}.portrait-baseline{width:calc(100% + 24px);margin-inline:-12px}}

/* Experience context, contribution and milestones. */
.projects-intro{max-width:760px;margin:22px 0 0;font-size:18px;line-height:1.6;color:var(--muted)}
.project-row{grid-template-columns:1fr 2.4fr;gap:56px;align-items:start;padding-block:42px}
.project-name>span{font-weight:500;line-height:1.6}
.project-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 36px;margin:0}
.project-details dt{font-size:14px;font-weight:500;margin-bottom:9px}
.project-details dd{margin:0;font-size:16px;line-height:1.7;color:var(--muted)}
.project-milestones{grid-column:1 / -1;padding-top:21px;border-top:1px solid var(--line)}
.project-milestones dd{color:var(--ink);font-weight:500}
@media(max-width:1050px){.project-row{gap:32px;grid-template-columns:1fr 2fr}.project-details{column-gap:26px}}
@media(max-width:900px){.project-details{grid-template-columns:1fr;gap:22px}}
@media(max-width:760px){.projects-intro{font-size:16px}.project-row{grid-template-columns:1fr;gap:26px;padding-block:32px}.project-name>span{max-width:none}.project-details{gap:22px}.project-milestones{padding-top:20px}}

/* Footer legal information. */
.footer{flex-wrap:wrap}
.footer .footer-copyright{margin:0 0 0 auto;max-width:310px;color:var(--muted);font-size:12px;line-height:1.5}
.footer .footer-links{margin-left:0;flex-wrap:wrap}
.footer-contact-text{font-weight:400;white-space:nowrap}

/* Legal notice page. */
.legal-page{padding-block:82px 105px}
.legal-hero{max-width:880px;padding-bottom:56px;border-bottom:1px solid var(--line)}
.legal-back{display:inline-flex;margin-bottom:40px;font-size:14px;font-weight:500;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.legal-back:hover{text-decoration-color:var(--ink)}
.legal-hero .eyebrow{margin-bottom:21px}
.legal-hero h1{margin-bottom:25px}
.legal-intro{max-width:710px;margin-bottom:0;font-size:18px;color:var(--muted)}
.legal-content{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,2fr);gap:0 70px;max-width:1050px}
.legal-section{display:grid;grid-column:1 / -1;grid-template-columns:minmax(180px,.75fr) minmax(0,2fr);gap:0 70px;padding-block:48px;border-bottom:1px solid var(--line)}
.legal-section h2{font-size:24px;letter-spacing:-.5px;margin:0}
.legal-copy{max-width:720px}
.legal-copy p{margin-bottom:18px}
.legal-copy p:last-child{margin-bottom:0}
.legal-copy a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.legal-copy a:hover{text-decoration-color:var(--ink)}
.legal-facts{display:grid;gap:10px;margin:24px 0}
.legal-facts p{margin:0}
.legal-label{font-weight:600}
.legal-updated{margin-top:30px;font-size:12px;color:var(--muted)}
@media(max-width:760px){.footer .footer-copyright{display:block;order:3;width:100%;max-width:none;margin:6px 0 0}.footer .footer-links{max-width:100%}.legal-page{padding-block:55px 72px}.legal-hero{padding-bottom:39px}.legal-back{margin-bottom:32px}.legal-intro{font-size:16px}.legal-content{display:block}.legal-section{display:block;padding-block:36px}.legal-section h2{font-size:23px;margin-bottom:20px}.legal-copy{max-width:none}}
