/* Self-hosted, openly licensed fonts. Licenses are in assets/fonts/. */
@font-face{font-family:Inter;src:url('assets/fonts/inter-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-500.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/inter-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-500.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}

:root{--font:Inter,'Segoe UI',sans-serif;--display:Manrope,Inter,sans-serif;--ink:#142f48;--muted:#50657a;--line:#dce5ec}
body{font-family:var(--font);font-size:1rem;font-weight:400;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:var(--font)}
h1,h2,h3,.method-tabs b,.project-quote,.brand b{font-family:var(--display)}
h1,h2,h3{text-wrap:balance;font-synthesis:none}
p{font-kerning:normal}
.wrap{max-width:1264px}
.section-space{padding-block:120px}
.eyebrow,.hero .eyebrow,.panel-kicker,.service-kicker,.card-index,.card-bottom{font-family:var(--font);font-size:.75rem;font-weight:500;letter-spacing:.13em;line-height:1.7}
.section-number{border:0;border-right:1px solid #b4c4d3;border-radius:0;padding-right:13px;margin-right:1px;width:auto;height:auto;line-height:1.25;color:#526c85;letter-spacing:0;font-variant-numeric:tabular-nums}
.eyebrow.light .section-number{border-color:#829aaf70;color:#bccfde}
.soft-ink{color:#5d7891}

/* Calm navigation and a consistent brand lockup. */
.header-inner{height:96px;gap:28px}
.site-header{margin-bottom:-96px;background:linear-gradient(180deg,#021b32e8,#05243d78)}
.brand{gap:13px}
.brand img{width:51px;height:51px}
.brand b{font-size:1.875rem;letter-spacing:-.06em;font-weight:700}
.brand strong{font-family:var(--font);font-size:.625rem;letter-spacing:.2em;line-height:1.4;font-weight:500;margin-top:5px}
.desktop-nav{gap:32px;font-size:.875rem}
.site-header .desktop-nav a{font-weight:400;color:#e3edf4}
.button,.header-cta,.hero .button-bright,.project .button-bright,.hero .text-link,.text-link{font-size:.875rem;font-weight:500;letter-spacing:-.015em;line-height:1.5}
.button{border-radius:3px;min-height:54px;padding:16px 24px;gap:27px;box-shadow:none}
.button:hover{box-shadow:0 8px 24px #052a5712;transform:translateY(-1px)}
.header-cta{min-height:46px;padding:12px 19px;gap:25px;border-color:#d0e1ec70;background:#ffffff04;font-size:.8125rem}
.header-cta:hover{background:#ffffff12;border-color:#e7f4ff}
.button-mark{font-size:1.25rem;font-weight:400}

/* Display typography sits comfortably beside the photographic subject. */
.hero-inner{max-width:1360px;min-height:710px;padding-top:156px;padding-bottom:40px}
.hero-copy{max-width:650px}
.hero .eyebrow{font-size:.6875rem;letter-spacing:.16em;margin-bottom:28px;color:#dae6ee;gap:14px}
.hero .small-line{width:30px;height:1px;background:#87caec}
.hero h1{font-family:var(--display);font-weight:500;font-size:clamp(3.5rem,6vw,5.3rem);letter-spacing:-.055em;line-height:1.075;margin-bottom:29px;text-shadow:none}
.hero h1 span{color:#8ed4f4;font-weight:500}
.hero-description{font-size:1.0625rem;line-height:1.8;font-weight:400;color:#d9e6ef;max-width:490px;margin-bottom:31px;letter-spacing:-.013em}
.hero-shade{background:linear-gradient(90deg,#031e36f5 0%,#05263fde 25%,#06283f83 47%,#02213b08 78%),linear-gradient(0deg,#031b2ded 0%,#05253d35 31%,transparent 65%)}
.hero .button-bright{background:#f4f9fc;color:#123753;border:1px solid #f4f9fc;box-shadow:none;padding:16px 23px;gap:30px}
.hero .button-bright:hover{background:#dceefa;border-color:#dceefa;box-shadow:0 10px 30px #02172a30}
.hero .text-link{font-size:.875rem;border-bottom-color:#b6cede60;padding-block:8px;color:#e0eaf2}
.hero-actions{gap:28px}
.journey{max-width:554px;margin-top:35px;gap:25px}
.journey-step svg{width:35px;height:35px;stroke-width:1.3;margin-bottom:15px}
.journey-step>span{font-size:.6875rem;letter-spacing:.12em;font-weight:500}
.journey-step i{width:10px;height:10px;border-width:2px;left:12px;background:#bfddec;border-color:#83c9eb}
.journey-track{bottom:4px;left:17px;right:58px;background:#adcbd950}
.journey-step.is-active{color:#a1dffc}
.journey-step.is-active i{box-shadow:0 0 0 4px #81c9ee16,0 0 13px #82cff640}
.journey-step.is-active svg{filter:drop-shadow(0 0 7px #7ccae533);transform:translateY(-2px)}
.journey-caption{font-size:.75rem;line-height:1.7;color:#b9cedd;margin-top:14px;max-width:554px}
.scene-signature{bottom:48px;gap:11px}
.scene-signature>span:first-child{font-size:.6875rem;font-weight:500;letter-spacing:.18em}
.scene-signature b{font-family:var(--display);font-size:1.0625rem;font-weight:500;letter-spacing:-.025em}
.signature-line{height:1px;width:43px;background:#a0d8f1}
.hero-bottom{max-width:1360px;padding-block:19px;color:#b7ccd9;border-top-color:#c9e0ee24}
.hero-bottom>span:first-child,.hero-bottom .scroll-link{font-size:.625rem;letter-spacing:.13em}
.motion-toggle,.motion-label{font-size:.6875rem;color:#bdd0de}
.discipline-bar .wrap{min-height:88px;font-size:.875rem;letter-spacing:-.01em;font-weight:400}
.discipline-divider{font-size:22px;color:#59778e}

/* Editorial rhythm, readable paragraphs and quieter surfaces. */
.section-heading{align-items:flex-end;margin-bottom:56px;gap:64px}
h2,.firm-copy h2,.project h2{font-family:var(--display);font-size:clamp(2rem,3.45vw,3.125rem);font-weight:500;line-height:1.2;letter-spacing:-.045em}
.section-heading .eyebrow{margin-bottom:25px}
.section-intro{font-size:1rem;line-height:1.8;letter-spacing:-.01em;max-width:340px;color:#52667b}
.specialties{background:#fbfcfd}
.service{background:transparent}
.service:hover{background:#f1f5f9}
.service[open]{background:#f1f6fa}
.service summary{padding:35px 25px;gap:30px}
.service h3{font-family:var(--display);font-size:clamp(1.6rem,2.45vw,2.125rem);font-weight:500;letter-spacing:-.035em;line-height:1.3}
.service-kicker{font-size:.6875rem;letter-spacing:.1em;margin-bottom:9px;color:#60768b}
.service[open] .service-main h3{color:#174b75}
.service-content{padding:0 82px 37px 89px;gap:60px}
.service-content>p{font-size:1rem;line-height:1.85;letter-spacing:-.01em;color:#4d6277}
.service-deliverables{font-size:.875rem;line-height:1.75;gap:11px;padding-top:4px}
.service-deliverables span:before{color:#607f9c}
.service-tag{font-size:.625rem;font-weight:500;letter-spacing:.11em;padding:6px 11px;min-width:95px;background:transparent;border-color:#c3d1df}
.specialties-note p,.specialties-note .inline-link{font-size:.8125rem}
.method .section-intro{color:#c3d4e2}
.method-tabs b{font-size:1.625rem;line-height:1.4;letter-spacing:-.025em;font-weight:500}
.method-tabs button{padding-block:25px}
.method-panels{border-color:#9ec4df33;box-shadow:none}
.method-panels h3{font-family:var(--display);font-size:1.875rem;font-weight:500;line-height:1.3;letter-spacing:-.035em}
.method-panels [role=tabpanel]>p:not(.panel-kicker),.panel-output p{font-size:1rem;line-height:1.85}
.panel-kicker{font-size:.6875rem;letter-spacing:.12em;color:#aed8f0}
.phase-ghost{font-family:var(--display);font-weight:500;font-size:165px;color:#b1d8ef09}
.panel-output>span{font-size:.625rem;letter-spacing:.12em}
.method-scene{box-shadow:0 20px 45px #0002;border-color:#b3cee133}
.method-scene figcaption b{font-family:var(--display);font-size:.9375rem;letter-spacing:-.015em;font-weight:500}
.method-scene figcaption span{font-size:.625rem;letter-spacing:.12em}
.firm{background:#f4f7fa}
.firm-copy{margin-top:61px}
.firm-copy>.large-copy{font-size:1.125rem;line-height:1.8;letter-spacing:-.02em;color:#294b68}
.firm-copy>p:not(.eyebrow):not(.large-copy){font-size:1rem;line-height:1.85}
.firm-principles{gap:42px;margin-top:45px}
.firm-principles b{font-family:var(--display);font-size:1rem;font-weight:600;letter-spacing:-.02em;margin-bottom:9px}
.firm-principles p{font-size:.875rem;line-height:1.85}
.enterprise-card{padding:33px 31px 29px;border-color:#d8e2eb;background:#f8fafc;box-shadow:none;border-radius:3px;display:flex;flex-direction:column}
.enterprise-card:hover{border-color:#96b4cd;box-shadow:0 14px 35px #143e7410}
.enterprise-card h3{font-family:var(--display);font-size:1.5625rem;line-height:1.3;letter-spacing:-.035em;font-weight:500;margin-bottom:18px}
.enterprise-card p{font-size:.9375rem;line-height:1.85;color:#50677c;margin-bottom:30px}
.card-index,.card-bottom{font-size:.625rem;letter-spacing:.13em;font-weight:500;color:#566f86}
.card-bottom{margin-top:auto;padding-top:22px}
.line-icon{height:58px;margin:22px 0 26px}
.line-icon svg{width:40px;height:40px;stroke:#3f749c;stroke-width:1.3}
.project-layout>div:first-child>p:not(.eyebrow){font-size:1rem;line-height:1.85;max-width:540px}
.project .button-bright{background:#edf6fc;color:#153a56;border-color:#edf6fc;box-shadow:none}
.project .button-bright:hover{background:#d5eaf9;border-color:#d5eaf9}
.project-quote{font-weight:400;font-size:2.125rem;line-height:1.35;letter-spacing:-.045em}
.project-quote span{font-weight:500}
.footer-top>p{font-size:.875rem;line-height:1.85}
.footer-bottom{font-size:.6875rem;letter-spacing:0}
.footer-bottom>span:nth-child(2),.footer-bottom>span:last-child{font-size:.625rem;letter-spacing:.1em}
.dialog-head h2{font-family:var(--display);font-size:2.375rem;font-weight:500;letter-spacing:-.045em;line-height:1.2}
.dialog-head>p:last-child{font-size:.9375rem;line-height:1.8}
input,select,textarea{font-size:1rem;line-height:1.5;padding:13px 14px;background:#f9fbfd}
#brief-form label{font-weight:500;letter-spacing:-.01em}

@media(min-width:1500px){.hero-inner{min-height:775px;padding-top:161px}.hero-copy{max-width:760px}.hero h1{font-size:5.6rem}.hero-description{font-size:1.125rem;max-width:540px}.journey{margin-top:42px;max-width:615px}.journey-caption{max-width:615px}}
@media(max-width:1150px){.header-inner{gap:17px}.desktop-nav{gap:23px}.header-cta{font-size:.75rem;padding-inline:16px;gap:17px}.hero-inner{padding-top:143px;min-height:710px}.hero-copy{max-width:600px}.hero h1{font-size:4.2rem}.hero-description{max-width:445px;font-size:1rem}.hero-actions{gap:20px}.hero .button-bright{padding:15px 20px;gap:23px}.journey{max-width:515px}.section-space{padding-block:94px}.section-heading{gap:40px}.section-intro{max-width:300px}.firm-principles{gap:28px}.enterprise-card{padding:30px 25px}.enterprise-card h3{font-size:1.4375rem}}
@media(max-width:900px){.hero-copy{max-width:560px}.hero h1{font-size:3.9rem}.hero-description{max-width:440px}.header-cta{font-size:.8125rem}.section-heading{display:block}.section-intro{max-width:560px;margin-top:24px}.section-space{padding-block:80px}h2,.firm-copy h2,.project h2{font-size:2.45rem}.service summary{gap:19px;padding-inline:18px}.service-content{padding-left:67px;padding-right:35px;gap:30px}.service h3{font-size:1.75rem}.method-tabs b{font-size:1.4375rem}.method-panels h3{font-size:1.625rem}.method-panels [role=tabpanel]>p:not(.panel-kicker),.panel-output p{font-size:.9375rem}.firm-copy{gap:0 36px}.firm-principles{gap:22px}.enterprise-card{padding:28px 21px}.enterprise-card h3{font-size:1.35rem}.enterprise-card p{font-size:.875rem}.hero-bottom>span:first-child{max-width:230px}}
@media(max-width:650px){.wrap{width:calc(100% - 44px)}.site-header{margin-bottom:-80px}.header-inner{height:80px;gap:12px}.brand{gap:11px}.brand b{font-size:1.625rem}.brand strong{font-size:.5625rem;letter-spacing:.17em}.site-header .brand img{width:43px;height:43px}.hero-inner{min-height:0;padding-top:350px;padding-bottom:29px}.hero-copy{max-width:100%;min-width:0}.hero .eyebrow{font-size:.625rem;line-height:1.85;letter-spacing:.11em;gap:10px;max-width:300px;margin-bottom:19px}.hero .small-line{width:20px}.hero h1{font-size:clamp(2.45rem,10.9vw,4rem);letter-spacing:-.055em;line-height:1.1;margin-bottom:23px}.hero-description{font-size:.9375rem;line-height:1.85;max-width:440px;margin-bottom:28px}.hero-actions{gap:14px 24px}.hero .button-bright{font-size:.875rem;min-height:52px;padding:15px 21px;gap:25px}.hero .text-link{font-size:.8125rem}.journey{gap:11px;margin-top:32px;width:100%}.journey-step svg{height:31px;width:31px}.journey-step>span{font-size:.625rem;letter-spacing:.065em}.journey-track{right:41px}.journey-caption{font-size:.75rem;min-height:42px;line-height:1.75;margin-top:15px}.hero-bottom{gap:14px 8px;padding-block:18px}.hero-bottom>span:first-child{max-width:none;font-size:.5625rem;letter-spacing:.115em}.hero-bottom .scroll-link{font-size:.625rem;letter-spacing:.11em}.motion-toggle,.motion-label{font-size:.625rem}.discipline-bar .wrap{font-size:.8125rem;line-height:2;min-height:0;padding-block:22px}.section-space{padding-block:68px}.section-heading{margin-bottom:34px}.eyebrow{font-size:.625rem;letter-spacing:.12em}.section-number{font-size:.625rem;padding-right:10px}.section-heading .eyebrow{margin-bottom:20px}h2,.firm-copy h2,.project h2{font-size:clamp(1.875rem,8vw,2.6rem);line-height:1.22;letter-spacing:-.045em}.section-intro{font-size:.9375rem;line-height:1.85;margin-top:22px}.service summary{gap:12px;padding:27px 12px}.service-num{font-size:.6875rem;flex-shrink:0;width:19px}.service-main{min-width:0}.service-kicker{font-size:.5625rem;letter-spacing:.09em;line-height:1.9;margin-bottom:9px}.service h3{font-size:1.4375rem;line-height:1.35;letter-spacing:-.035em;text-wrap:initial}.service-content{padding:0 21px 29px 43px}.service-content>p{font-size:.9375rem;line-height:1.85}.service-deliverables{font-size:.8125rem;line-height:1.75;gap:9px}.specialties-note p,.specialties-note .inline-link{font-size:.75rem}.method-tabs b{font-size:1.25rem}.method-tabs button{padding-block:20px;gap:10px}.method-tabs button>span:first-child{font-size:.625rem}.method-panels [role=tabpanel]{padding:29px 24px}.method-panels h3{font-size:1.6875rem;line-height:1.3}.panel-kicker{font-size:.625rem;line-height:1.8;letter-spacing:.09em}.method-panels [role=tabpanel]>p:not(.panel-kicker),.panel-output p{font-size:.9375rem;line-height:1.85}.method-footnote{font-size:.625rem;letter-spacing:.08em}.method-scene figcaption b{font-size:.8125rem;line-height:1.6}.method-scene figcaption span{font-size:.5625rem;letter-spacing:.08em}.firm-copy{margin-top:37px}.firm-copy h2{margin-bottom:24px}.firm-copy>.large-copy{font-size:1.0625rem;line-height:1.8}.firm-copy>p:not(.eyebrow):not(.large-copy){font-size:.9375rem;line-height:1.85}.firm-principles{margin-top:28px}.firm-principles b{font-size:.9375rem}.firm-principles p{font-size:.875rem;line-height:1.85}.firm-art-label{font-size:.5625rem;letter-spacing:.075em}.firm-art-footer{font-size:.75rem}.enterprise-card{display:grid;grid-template-columns:1fr 44px;padding:27px 25px}.enterprise-card h3{font-size:1.5rem;line-height:1.35}.enterprise-card p{font-size:.9375rem;line-height:1.8}.enterprise-card .card-index,.enterprise-card .card-bottom{font-size:.5625rem;letter-spacing:.115em}.enterprise-card .card-index{max-width:220px;margin-bottom:23px}.line-icon{margin:0;height:auto}.line-icon svg{width:35px;height:35px}.project-layout>div:first-child>p:not(.eyebrow){font-size:.9375rem;line-height:1.85}.project-quote{font-size:1.875rem}.footer-top>p{font-size:.8125rem}.footer-bottom{font-size:.625rem}.footer-bottom>span:nth-child(2){font-size:.5625rem;letter-spacing:.07em}.dialog-head h2{font-size:2rem}.dialog-head>p:last-child{font-size:.875rem}.brief-dialog{padding:38px 25px 28px}.dialog-head .eyebrow{font-size:.5625rem}}
/* Keep small labels legible across all screen sizes. */
.eyebrow,.hero .eyebrow,.dialog-head .eyebrow,.service-kicker,.service-tag,.panel-kicker,.panel-output>span,.card-index,.card-bottom,.enterprise-card .card-index,.enterprise-card .card-bottom,.journey-step>span,.hero-bottom>span:first-child,.hero-bottom .scroll-link,.motion-toggle,.motion-label,.scene-signature>span:first-child,.method-scene figcaption span,.firm-art-label,.method-footnote,.footer-bottom,.footer-bottom>span:nth-child(2),.footer-bottom>span:last-child{font-size:.75rem}
.header-cta,.hero .text-link,.specialties-note .inline-link{font-size:.875rem}
@media(max-width:650px){.hero .eyebrow{letter-spacing:.09em;max-width:320px}.journey-step>span{font-size:.6875rem;letter-spacing:.055em}.hero-bottom>span:first-child{letter-spacing:.065em}.hero-bottom .scroll-link{letter-spacing:.07em}.firm-art-label{letter-spacing:.03em}.enterprise-card .card-index,.enterprise-card .card-bottom{letter-spacing:.07em}.service-kicker{letter-spacing:.055em}.hero-description,.service-content>p,.section-intro,.firm-copy>p:not(.eyebrow):not(.large-copy),.enterprise-card p,.project-layout>div:first-child>p:not(.eyebrow){font-size:1rem}}
