@font-face{font-family:Manrope;src:url('assets/manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{--paper:#FBFCFD;--ink:#2B3644;--body:#3D4855;--navy:#1C3A5E;--teal:#0A7C8B;--mint:#EAF4F3;--line:#D7E1E6;--header-height:72px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:80px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font:400 1.125rem/1.7 Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip;overflow-wrap:break-word}
h1,h2,h3,p,blockquote,ol{margin:0}
h1,h2,h3{font-weight:600}
p{color:var(--body)}
a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}
a:hover{color:var(--teal)}
a:focus-visible{outline:3px solid var(--teal);outline-offset:5px}
img{display:block;max-width:100%}
.wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}
section[id],main[id]{scroll-margin-top:calc(var(--header-height) + 24px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:100;left:16px;top:-100px;background:#fff;padding:12px 16px}
.skip-link:focus{top:16px}
.site-header{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid transparent;transition:border-color 250ms}
.site-header.past-hero{border-color:var(--line)}
.header-inner{min-height:72px;padding-block:12px;display:flex;align-items:center;gap:24px}
.identity{display:flex;align-items:center;gap:12px;flex:none;text-decoration:none;font-weight:600;font-size:1.0625rem;line-height:1.35}
.identity img{width:39px;height:35.1px;flex:none}
.header-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 20px;margin-left:auto;font-size:1rem;min-width:0}
.header-nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}
.header-nav a:hover{text-decoration:underline}
.header-contact{display:flex;align-items:center;min-width:0}
.js-header-cta .header-contact{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity 200ms ease-out,transform 200ms ease-out,visibility 0s linear 200ms}
.js-header-cta .header-contact.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.identity span{min-width:0}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{display:flex;align-items:center;justify-content:center;width:44px;min-height:48px;list-style:none;border:1px solid var(--line);border-radius:8px;color:var(--navy);background:var(--paper);cursor:pointer}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary::marker{content:''}
.mobile-menu summary:hover,.mobile-menu[open] summary{background:var(--mint);border-color:var(--teal)}
.mobile-menu summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.menu-glyph{display:grid;gap:5px;width:20px}
.menu-glyph span{display:block;height:2px;background:currentColor;transition:transform 200ms,opacity 200ms}
.mobile-menu[open] .menu-glyph span:first-child{transform:translateY(7px) rotate(45deg)}
.mobile-menu[open] .menu-glyph span:nth-child(2){opacity:0}
.mobile-menu[open] .menu-glyph span:last-child{transform:translateY(-7px) rotate(-45deg)}
.mobile-menu nav{position:absolute;right:0;top:100%;margin-top:8px;width:min(24rem,calc(100vw - 40px));max-height:calc(100dvh - var(--header-height) - 16px);overflow:auto;display:grid;gap:4px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(28,58,94,.12)}
.mobile-menu nav a{display:flex;align-items:center;min-height:48px;padding:12px 16px;border-radius:6px;font-size:1.0625rem;font-weight:500;text-decoration:none}
.mobile-menu nav a:hover{background:var(--mint);color:var(--navy)}
.mobile-menu nav a:focus-visible{outline-offset:-3px;background:var(--mint)}

.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 24px;border:1px solid var(--teal);border-radius:8px;background:var(--teal);color:#fff;font-size:1.0625rem;font-weight:600;line-height:1.5;text-decoration:none;text-align:center;transition:background-color 200ms,border-color 200ms}
.button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.button:active{background:var(--ink);color:#fff;border-color:var(--ink)}
.header-contact .button{min-height:48px;padding:10px 16px;white-space:nowrap}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:64px;align-items:center;padding-block:80px}
.hero-copy{min-width:0}
.hero-eyebrow{margin:0 0 16px;font-size:13px;font-weight:700;letter-spacing:.14em;color:#0B6B76}
.hero h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.025em;line-height:1.1;font-weight:700;text-wrap:balance;max-width:none}
.hero-intro{max-width:none;margin-top:24px;font-size:21px;line-height:1.5}
.hero-intro p{font-size:inherit;font-weight:500;color:var(--ink)}
.contact-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px}
.email-address{font-size:1.0625rem;overflow-wrap:anywhere}
.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:1.0625rem;font-weight:500}
.hero-actions{display:flex;align-items:center;gap:24px;margin-top:32px}
.hero-actions .button{background:#0B6B76;border-color:#0B6B76;color:#fff;font-size:16px;font-weight:700;padding:15px 28px;border-radius:10px}
.hero-actions .text-link{margin-left:0;color:#0B6B76;font-weight:700}
.portrait-shell{position:relative;width:100%;min-width:0;margin:0;isolation:isolate}
.portrait-shell::before{content:'';position:absolute;z-index:-1;inset:-12%;background:radial-gradient(circle,rgba(13,125,138,.12) 0,rgba(13,125,138,0) 70%);pointer-events:none}
.portrait{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top;border-radius:24px;box-shadow:0 12px 32px rgba(29,59,92,.12)}
.section{padding-block:80px}
.situations{padding-block:24px 40px}
h2{font-size:clamp(2.25rem,3vw,2.625rem);line-height:1.22;letter-spacing:-.032em;text-wrap:balance}
.section-intro{max-width:950px}
.eyebrow{font-size:1rem;letter-spacing:.1em;font-weight:600;line-height:1.5;color:var(--navy);margin-bottom:16px}
.section-lead{font-size:1.125rem;line-height:1.7;margin-top:24px;max-width:70ch}
.situations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}
.situation-card{min-width:0;padding-top:16px;border-top:1px solid #BCCFD3;transition:background-color 200ms,border-color 200ms,box-shadow 200ms}
.situation-card p{font-size:1.1875rem;line-height:1.6;color:var(--ink);font-weight:500;max-width:none}
.proof-band,.closing,.recent{background:var(--navy);color:#fff}
.proof-band h2,.proof-band h3,.recent h2{color:#fff}
.proof-band p{color:var(--mint)}
.former-role{font-size:1.0625rem;line-height:1.6;margin-top:16px}
.proof-lead{margin-top:32px;padding-bottom:32px;max-width:780px}
.proof-item .proof-years{gap:12px;align-items:center;line-height:1.15;letter-spacing:-.02em}
.proof-number{font-size:3.25rem;font-weight:600;white-space:nowrap;letter-spacing:-.04em}
.proof-unit{font-size:1.5rem;font-weight:600;line-height:1.35}
.proof-lead p{font-size:1.125rem;line-height:1.7;margin-top:16px;max-width:65ch}
.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}
.proof-item{border-top:1px solid rgba(234,244,243,.3);padding-top:24px;min-width:0}
.proof-item h3{font-size:1.5rem;font-weight:600;line-height:1.35;letter-spacing:-.02em;min-height:4.25rem;display:flex;align-items:center;margin-bottom:12px}
.proof-item p{font-size:1.125rem;line-height:1.7;max-width:54ch}
.how-section{background:var(--mint)}
.how-section,.hiw,.exp,.recent,.closing{position:relative;isolation:isolate;overflow:clip}
.recent{border-radius:0 0 64px 64px}
.how-section>.wrap,.hiw-in,.exp-in,.recent>.wrap,.closing>.wrap{position:relative;z-index:1}
.how-section:before{content:'';position:absolute;width:900px;height:560px;right:-400px;top:-360px;border:80px solid rgba(10,124,139,.045);border-radius:40% 60% 48% 52%;transform:rotate(-18deg);pointer-events:none;z-index:0}
.hiw:before{content:'';position:absolute;width:900px;height:560px;right:-400px;top:-340px;border:80px solid rgba(10,124,139,.055);border-radius:40% 60% 48% 52%;transform:rotate(-18deg);pointer-events:none;z-index:0}
.exp:before{content:'';position:absolute;width:860px;height:560px;left:-430px;top:-350px;border:76px solid rgba(77,182,189,.09);border-radius:58% 42% 38% 62%;transform:rotate(20deg);pointer-events:none;z-index:0}
.recent:before{content:'';position:absolute;width:1000px;height:640px;right:-420px;bottom:-400px;border:88px solid rgba(234,244,243,.09);border-radius:42% 58% 62% 38%;transform:rotate(24deg);pointer-events:none;z-index:0}
.closing:before{content:'';position:absolute;width:1050px;height:640px;right:-500px;top:-380px;border:96px solid rgba(234,244,243,.075);border-radius:40% 60% 48% 52%;transform:rotate(24deg);pointer-events:none;z-index:0}
.steps{padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;margin-top:48px}
.steps li{position:relative;min-width:0;padding:24px 0 0 72px}
.steps li:before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--teal);transform-origin:left center}
.step-number{position:absolute;left:0;top:24px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;font-size:1.0625rem;font-weight:600}
.steps h3{font-size:1.5rem;line-height:1.35;letter-spacing:-.02em;margin-bottom:8px;color:var(--navy)}
.steps p{font-size:1.125rem;line-height:1.7;max-width:48ch}
.independence{background:#F2F8F7;padding-block:48px}
.independence-copy{border-left:3px solid var(--teal);padding-left:24px}
.independence h2{font-size:clamp(1.75rem,2.4vw,2.125rem);margin-bottom:16px}
.independence p{font-size:1.125rem;line-height:1.7;max-width:70ch}
.card{min-width:0;padding:32px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(28,58,94,.055);transition:transform 200ms,box-shadow 200ms,border-color 200ms,background-color 200ms}
@media(hover:hover){.card:hover{transform:translateY(-2px);border-color:var(--teal);background:#fff;box-shadow:0 16px 36px rgba(28,58,94,.14)}.situation-card:hover{border-color:var(--teal);background:#F4F9F8;box-shadow:0 0 0 8px #F4F9F8}}
.card h3{font-size:1.5rem;line-height:1.35;letter-spacing:-.02em;color:var(--navy);margin-bottom:16px}
.card p{font-size:1.125rem;line-height:1.7}
.card p+p{margin-top:24px}
.ways-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin-top:32px;align-items:start}
.ways-grid .offer-main{grid-row:span 2;align-self:stretch}
.recent-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,470px);gap:48px;align-items:center}
.recent-note{border-left:3px solid #4DB6BD;padding-left:18px;color:#DCE8F0;font-size:1.0625rem;line-height:1.55}
.recent-note strong{color:#fff;font-weight:600}
.recent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:40px}
.recent-grid .work-card{display:flex;flex-direction:column;min-height:390px;padding:0;overflow:hidden;border-radius:20px}
.work-body{flex:1;padding:28px 30px 24px}
.work-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.work-capability{display:flex;align-items:center;gap:10px;color:var(--teal);font-size:.6875rem;font-weight:700;letter-spacing:.055em;line-height:1.3;text-transform:uppercase;white-space:nowrap}
.work-capability img{flex:0 0 42px;width:42px;height:42px;border-radius:11px}
.client-badge{display:flex;align-items:stretch;min-width:0;min-height:30px;white-space:nowrap}
.client-index,.client-type{display:flex;align-items:center}
.client-index{flex:none;padding:0 11px;border-radius:999px 0 0 999px;background:var(--teal);color:#fff;font-size:.5625rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.client-type{min-width:0;padding:5px 12px;border:1px solid #B7D0CF;border-left:0;border-radius:0 999px 999px 0;background:#F8FBFB;color:var(--navy);font-size:.6875rem;font-weight:600;letter-spacing:0;line-height:1.25;text-transform:none}
.work-card .work-problem{min-height:3.9rem;margin:0 0 22px;font-size:1.5rem;line-height:1.3;color:var(--navy)}
.work-card .work-change p,.work-card .result p{margin:0;font-size:1.0625rem;line-height:1.55}
.work-kicker{display:block;margin-bottom:5px;color:var(--teal);font-size:.75rem;font-weight:700;letter-spacing:.09em;line-height:1.25;text-transform:uppercase}
.work-card .result{display:flex;min-height:108px;flex-direction:column;justify-content:center;margin-top:auto;padding:18px 30px 20px;border-top:1px solid #C8DFDC;background:#E9F3F1;color:var(--teal);font-weight:600}
.work-card .result p{color:var(--teal);font-weight:600}
.reading-width,.closing-inner{max-width:none}
.about h2{margin-bottom:32px}
.about blockquote{max-width:52ch;padding-left:24px;border-left:3px solid var(--teal);font-size:clamp(1.5rem,2vw,1.75rem);line-height:1.5;font-weight:500;color:var(--navy);letter-spacing:-.015em;margin-bottom:32px}
.about p{max-width:none;font-size:1.125rem;line-height:1.75}
.about p+p{margin-top:24px}
.closing h2{font-size:clamp(2.25rem,3.8vw,3.125rem);color:#fff}
.closing p{color:var(--mint);font-size:1.125rem;line-height:1.7;max-width:70ch;margin-block:24px 32px}
.closing .email-address{color:var(--mint)}
.closing .button{background:var(--mint);border-color:var(--mint);color:var(--navy)}
.closing .button:hover{background:#fff;border-color:#fff;color:var(--navy)}
.closing a:focus-visible{outline-color:var(--mint)}
.footer{padding-block:32px;background:var(--paper);font-size:1.0625rem;color:var(--body)}
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.practice{display:flex;align-items:center;gap:12px;font-weight:500}
.practice img{width:31.2px;height:27.3px;flex:none}
.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-left:auto}
.footer-links a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
.js-motion .hero-reveal{animation:hero-enter 500ms ease-out both;animation-delay:var(--hero-delay,100ms)}
@keyframes hero-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.js-motion .reveal:not(.is-visible){opacity:0;translate:0 20px}
.js-motion .reveal.is-visible{animation:scroll-enter 500ms ease-out backwards;animation-delay:var(--reveal-delay,0ms)}
@keyframes scroll-enter{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.js-motion .steps li:before{scale:0 1;transition:scale 800ms ease-out;transition-delay:var(--flow-delay,0ms)}
.js-motion .flow-visible .steps li:before{scale:1 1}
.js-motion .step-number{scale:.9;transition:scale 500ms ease-out;transition-delay:var(--circle-delay,0ms)}
.js-motion .flow-visible .step-number{scale:1}
@media(max-width:1100px){
.wrap{width:calc(100% - 64px)}
.hero{grid-template-columns:minmax(0,1fr) 360px;gap:40px}
.header-inner{gap:16px}
.header-nav{gap:16px}
.card{padding:24px}
}
@media(max-width:960px){
.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
.identity{min-width:0}
.identity span{overflow-wrap:anywhere}
.header-nav{display:none}
.header-contact{margin-left:0}
.js-header-cta .header-contact{max-width:0;overflow:hidden}
.js-header-cta .header-contact.is-visible{max-width:8rem}
.mobile-menu{display:block}
.situations-grid,.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-actions .text-link{margin-left:0;flex-basis:100%}
.steps{gap:32px}
}
@media(max-width:840px){
.hero{grid-template-columns:minmax(0,1fr) 300px;gap:32px}
.ways-grid{grid-template-columns:1fr}
.ways-grid .offer-main{grid-row:auto}
.recent-head{grid-template-columns:1fr;gap:20px}
}
@media(max-width:760px){
.wrap{width:calc(100% - 40px)}
.header-inner{min-height:70px;padding-block:8px;gap:8px}
.identity{font-size:1.0625rem;flex:1;min-width:0;max-width:185px}
.identity img{display:block;width:39px;height:35.1px}
.identity{gap:8px;font-size:1rem;max-width:none}
.header-contact{flex:none}
.header-contact .button{width:auto;min-height:48px;padding:10px 8px;font-size:1rem}
.site-header.show-contact .identity span{display:none}
.hero{display:block;padding-block:48px}
.hero h1{font-size:clamp(34px,10vw,42px);line-height:1.1;letter-spacing:-.025em}
.hero-intro{max-width:none;font-size:18px;margin-top:24px}
.hero-actions{flex-direction:column;align-items:stretch;gap:14px;margin-top:28px}
.hero-actions .text-link{align-self:flex-start}
.contact-row{flex-direction:column;align-items:stretch;gap:16px}
.button{width:100%;min-height:50px;padding:12px 20px}
.email-address{font-size:1.0625rem}
.hero-actions .text-link{margin-left:0;flex-basis:auto;align-self:flex-start}
.portrait-shell{width:100%;margin:32px 0 0}
.portrait{height:330px;aspect-ratio:auto}
.section{padding-block:48px}
.recent{border-radius:0 0 32px 32px}
.exp:before{width:460px;height:360px;left:-300px;top:-220px;border-width:48px}
.hiw:before{width:480px;height:360px;right:-300px;top:-180px;border-width:48px}
.recent:before{width:520px;height:420px;right:-330px;bottom:-220px;border-width:52px}
.closing:before{width:520px;height:420px;right:-340px;top:-240px;border-width:54px}
.situations{padding-top:24px}
h2{font-size:clamp(1.75rem,7.5vw,2rem);line-height:1.25}
.eyebrow{font-size:1rem;margin-bottom:16px}
.section-lead{font-size:1.125rem;margin-top:24px}
.situations-grid,.proof-grid,.ways-grid,.recent-grid{grid-template-columns:1fr;gap:24px;margin-top:32px}
.recent-grid .work-card{min-height:0;padding:0}
.work-body{padding:22px 22px 18px}
.work-meta{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:18px}
.client-badge{max-width:100%;white-space:normal}
.client-type{overflow-wrap:anywhere}
.work-card .work-problem{min-height:0;margin-bottom:18px}
.work-card .result{min-height:0;padding:15px 22px 16px}
.recent-note{font-size:1rem}
.situation-card{padding-top:16px}
.situation-card p{font-size:1.1875rem;max-width:none}
.proof-lead{margin-top:32px;padding-bottom:0}
.proof-unit{font-size:1.5rem}
.proof-item h3{font-size:1.375rem;min-height:0}
.steps{display:block;margin-top:32px}
.steps li{padding:0 0 0 64px;margin-bottom:32px;min-height:44px}
.steps li:last-child{margin-bottom:0}
.steps li:before{display:none}
.steps li:not(:last-child):after{content:'';position:absolute;left:22px;top:22px;width:2px;height:calc(100% + 32px);background:var(--teal);transform-origin:center top}
.step-number{width:44px;height:44px;font-size:1rem;top:0;z-index:1}
.steps h3{font-size:1.375rem;margin-bottom:8px}
.steps p{max-width:none}
.js-motion .steps li:not(:last-child):after{scale:1 0;transition:scale 800ms ease-out;transition-delay:var(--flow-delay,0ms)}
.js-motion .flow-visible .steps li:not(:last-child):after{scale:1 1}
.independence{padding-block:32px}
.independence-copy{padding-left:16px}
.independence h2{font-size:1.75rem;line-height:1.3}
.card{padding:24px}
.card h3{font-size:1.375rem}
.about blockquote{font-size:1.375rem;line-height:1.55;padding-left:16px;margin-bottom:32px}
.closing h2{font-size:2.25rem}
.footer-inner{display:block}
.footer-links{margin-top:16px;margin-left:0}
}
@media(max-width:359px){
.identity{font-size:.9375rem}
.identity img{width:28px;height:25.2px}
.header-contact .button{font-size:.9375rem;padding-inline:6px}
}
@media(prefers-reduced-motion:reduce){
.menu-glyph span{transition:none!important}
html{scroll-behavior:auto}
.button,.card,.situation-card,.site-header,.reveal,.step-number,.steps li:before,.steps li:after{transition:none!important;animation:none!important}
.hero-reveal{animation:none!important;opacity:1!important;transform:none!important}
.js-motion .steps li:before,.js-motion .steps li:after,.js-motion .step-number{scale:1 1!important}
.card:hover{transform:none}
.js-motion .reveal{opacity:1!important;translate:0 0!important;animation:none!important}
.js-header-cta .header-contact{transition:none!important}
}
