:root{color-scheme:dark;--ink:#10140f;--paper:#f2f3ed;--lime:#d8ff65;--muted:#a9b0a3;--rule:#41483b;--gutter:clamp(24px,4.6vw,88px);--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--ink);color:var(--paper);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
::selection{background:var(--lime);color:var(--ink)}
a{color:inherit;text-decoration:none}
button{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid currentColor;outline-offset:7px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:500}
em{font-family:Georgia,"Times New Roman",serif;font-weight:400}
.page-width{margin-inline:var(--gutter)}
.skip-link{position:fixed;top:12px;left:var(--gutter);z-index:30;padding:12px 20px;background:var(--lime);color:var(--ink);transform:translateY(-180%)}
.skip-link:focus{transform:none}
.header-wrap{position:sticky;top:0;z-index:20;background:rgb(16 20 15 / 90%);backdrop-filter:blur(18px)}
.site-header{min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--rule)}
.wordmark{font-size:34px;line-height:.9;font-weight:700;letter-spacing:-.065em;white-space:nowrap}
nav{display:flex;align-items:center;gap:clamp(28px,3.2vw,50px);font-size:16px}
nav a{padding-block:18px;color:#bfc5ba;transition:color 200ms}
nav a:last-child{color:var(--paper)}
nav a:hover{color:var(--lime)}
nav a span{margin-left:4px;display:inline-block;transition:transform 250ms var(--ease)}
nav a:hover span{transform:translate(3px,-3px)}
.hero{position:relative;overflow:clip}
.hero-main{position:relative;display:flex;align-items:center;min-height:max(670px,calc(100svh - 190px));padding-block:52px 60px}
.hero-copy{position:relative;z-index:2;pointer-events:none}
.hero-copy a{pointer-events:auto}
h1{font-size:clamp(70px,9.25vw,156px);font-weight:600;line-height:.98;letter-spacing:-.075em}
.hero-line{display:block;overflow:clip;padding:.08em .08em .13em 0;margin-block:-.08em -.13em}
.hero-line>span{display:block;animation:headline-in 1000ms var(--ease) both}
.hero-line+.hero-line>span{animation-delay:130ms}
h1 em{color:var(--lime);letter-spacing:-.067em;font-size:.98em}
.hero-copy>p{max-width:590px;margin-top:48px;font-size:clamp(21px,2.1vw,32px);line-height:1.35;letter-spacing:-.035em;animation:rise-in 900ms 280ms var(--ease) both}
.primary-link{display:inline-flex;align-items:center;gap:18px;border-radius:100px;padding:20px 30px;margin-top:40px;background:var(--lime);color:var(--ink);font-size:clamp(17px,1.4vw,22px);font-weight:500;letter-spacing:-.025em;transition:transform 300ms var(--ease),background 300ms;animation:rise-in 900ms 380ms var(--ease) both}
.primary-link:hover{transform:translateY(-4px);background:#e8ffab}
.primary-link span{display:inline-block;transition:transform 300ms var(--ease)}
.primary-link:hover span{transform:translate(4px,-4px)}
.hero-art{position:absolute;right:-7%;top:0;bottom:18px;width:53%;z-index:1}
.scene-shell{position:relative;overflow:hidden;isolation:isolate}
.hero-art>.scene-shell{position:absolute;inset:-15px -20px 20px}
.scene-shell canvas{display:block;width:100%;height:100%;position:absolute;inset:0;opacity:0;transition:opacity 1s}
.scene-shell[data-ready="true"] canvas{opacity:1}
.scene-fallback{position:absolute;inset:8% 6%;width:88%;height:84%;object-fit:cover;opacity:.18;filter:grayscale(1);transition:opacity 700ms}
.scene-shell[data-ready="true"] .scene-fallback{opacity:0;pointer-events:none}
.motion-toggle{position:absolute;right:0;bottom:18px;z-index:3;padding:10px 0 10px 15px;border:0;background:none;color:var(--muted);cursor:pointer;font-size:12px;transition:color 200ms}
.motion-toggle:hover{color:var(--lime)}
.motion-toggle span{margin-left:8px}
.audience-links{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);min-height:96px;align-items:center;gap:20px}
.audience-links a{font-size:12px;letter-spacing:.23em;text-transform:uppercase;color:#bbc3b4;transition:color 200ms}
.audience-links a:nth-child(2){text-align:center}
.audience-links a:last-child{text-align:right}
.audience-links span{display:inline-block;margin-left:10px;font-size:18px;letter-spacing:0;transition:transform 300ms var(--ease)}
.audience-links a:hover{color:var(--lime)}
.audience-links a:hover span{transform:translate(4px,-4px)}
.client-experience{padding-block:44px 42px;border-top:1px solid var(--rule)}
.client-experience h2{font-size:12px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;font-weight:400;color:var(--muted)}
.client-logos{list-style:none;margin:24px 0 20px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.client-logos li{min-width:0}
.client-logo{position:relative;width:100%;height:138px;display:flex;align-items:center;justify-content:center;padding:0 0 26px;border:0;background:none;color:var(--lime);cursor:pointer}
.client-logo img{display:block;max-width:100%;object-fit:contain;opacity:.72;transition:opacity 250ms,transform 350ms var(--ease)}
.client-logo-phoenix{filter:invert(1)}
.client-logo-raster{filter:grayscale(1) invert(1) brightness(2);mix-blend-mode:screen}
.client-name{position:absolute;bottom:0;left:50%;max-width:100%;transform:translate(-50%,6px);opacity:0;font-size:12px;line-height:1.5;letter-spacing:.015em;white-space:nowrap;pointer-events:none;transition:opacity 250ms,transform 350ms var(--ease)}
.client-logo:hover img,.client-logo:focus img{opacity:1;transform:translateY(-4px)}
.client-logo:hover .client-name,.client-logo:focus .client-name,.client-logo:active .client-name{opacity:1;transform:translate(-50%,0)}
.client-context{max-width:800px;font-size:12px;line-height:1.65;color:var(--muted)}
.expertise{background:var(--paper);color:var(--ink);padding-block:100px 80px;color-scheme:light}
.section-label{display:flex;align-items:center;gap:22px;font-size:16px;font-weight:400;letter-spacing:-.02em}
.section-label::before{content:"";width:44px;height:2px;background:currentColor}
.section-intro h2{margin-top:48px}
h2{font-size:clamp(48px,7.4vw,118px);line-height:1.01;letter-spacing:-.065em;font-weight:600}
h2 em{letter-spacing:-.06em}
.expertise h2 em{color:#1e2c1a}
.section-description{margin-top:28px;font-size:clamp(19px,1.95vw,30px);line-height:1.4;letter-spacing:-.025em}
.audience-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:66px;border-bottom:1px solid #bfc4b7}
.audience-tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:18px 0;margin-bottom:-1px;color:#70796a;cursor:pointer;text-align:left;font-size:clamp(18px,1.6vw,25px);letter-spacing:-.03em;transition:color 200ms,border-color 300ms}
.audience-tabs button[aria-selected="true"]{border-color:#a3c943;color:var(--ink);font-weight:500}
.audience-tabs button:hover{color:var(--ink)}
.service-row{display:grid;grid-template-columns:12% 43% 1fr;align-items:start;border-bottom:1px solid #bfc4b7;padding-block:42px}
.service-row:last-child{border-bottom:0}
.service-number{padding-top:8px;font-size:14px;letter-spacing:.15em}
.service-row h3{max-width:430px;padding-right:50px;font-size:clamp(29px,3.1vw,46px);line-height:1.08;letter-spacing:-.055em;font-weight:400}
.service-row p{max-width:470px;padding-right:18px;font-size:clamp(18px,1.5vw,23px);line-height:1.4;letter-spacing:-.02em}
.approach{padding-block:100px 40px}
.approach-grid{display:grid;grid-template-columns:53% 36%;justify-content:space-between;gap:5%}
.approach-visual .section-label::before{display:none}
.approach h2{font-size:clamp(62px,7.1vw,112px);margin-top:28px}
.approach h2 em{color:var(--lime)}
.structure-art{height:clamp(280px,31vw,470px);margin-top:-20px;margin-left:-8%;width:116%;z-index:-1}
.approach-visual{position:relative;z-index:1;overflow:clip}
.structure-art .scene-fallback{object-position:bottom}
.approach-steps{list-style:none;margin:25px 0 0;padding:0 0 0 38px;position:relative;align-self:start}
.approach-steps::before,.approach-steps::after{content:"";position:absolute;left:0;top:7px;width:1px;bottom:0;background:#51594a}
.approach-steps::after{bottom:auto;height:calc(var(--process-progress,.08) * 100%);background:var(--lime)}
.approach-steps li{position:relative;padding-block:0 38px}
.approach-steps li+li{border-top:1px solid var(--rule);padding-top:38px}
.approach-steps li::before{content:"";position:absolute;left:-42px;top:10px;width:9px;height:9px;border-radius:50%;background:#75806a;z-index:1;transition:background 400ms,box-shadow 400ms}
.approach-steps li+li::before{top:48px}
.approach-steps li.is-active::before{background:var(--lime);box-shadow:0 0 20px #d8ff6530}
.approach-steps h3{font-size:clamp(28px,2.65vw,40px);letter-spacing:-.05em;line-height:1.2;font-weight:400}
.approach-steps h3 span{color:#8c9682;margin-right:7px}
.approach-steps p{margin-top:20px;color:#b8c0b0;font-size:clamp(19px,1.6vw,24px);line-height:1.45;letter-spacing:-.025em}
.approach-principle{margin-top:14px;padding-block:28px 0;border-top:1px solid var(--rule);color:#bec6b6;font-size:15px;line-height:1.5;letter-spacing:-.015em}
.contact{position:relative;background:var(--lime);color:var(--ink);color-scheme:light;margin-top:40px;padding-top:72px;overflow:clip}
.contact-main{display:grid;grid-template-columns:57% 36%;justify-content:space-between;gap:6%;align-items:center;padding-bottom:70px}
.contact h2{font-size:clamp(52px,7.1vw,114px);font-weight:500}
.contact-copy p{max-width:470px;font-size:clamp(19px,1.6vw,24px);line-height:1.4;letter-spacing:-.035em}
.contact-copy br{display:none}
.contact-email{display:inline-flex;align-items:center;gap:12px;font-size:clamp(17px,1.5vw,23px);margin-top:30px;padding-bottom:4px;border-bottom:1px solid currentColor;letter-spacing:-.03em}
.contact-email span{display:inline-block;transition:transform 300ms var(--ease)}
.contact-email:hover span{transform:translate(5px,-5px)}
.site-footer{display:flex;justify-content:space-between;align-items:baseline;gap:25px;border-top:1px solid #718a30;padding-top:21px}
.site-footer a{font-size:27px;font-weight:700;letter-spacing:-.065em}
.site-footer p{font-size:12px}
.site-footer p span{padding-inline:6px}
.company-details{font-size:11px;line-height:1.5;padding-block:20px 25px;color:#35411b}
.company-details br{display:none}
@keyframes headline-in{from{transform:translateY(115%) rotate(2deg)}to{transform:translateY(0) rotate(0)}}
@keyframes rise-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes drift-in{from{transform:translateY(32px)}to{transform:translateY(0)}}
@supports(animation-timeline:view()){
.section-intro,.approach-steps li,.contact-main{animation:drift-in linear both;animation-timeline:view();animation-range:entry 0% entry 85%}
}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation:none!important}
.motion-paused{scroll-behavior:auto}
@media(min-width:1800px){
.hero-art{width:48%;right:0}
.hero-copy>p{max-width:700px}
}
@media(max-width:1100px){
.hero-main{min-height:650px}
h1{font-size:9vw}
.hero-copy>p{max-width:480px;font-size:24px}
.hero-art{right:-4%;width:54%}
.client-logos{gap:18px}
.client-name{font-size:11px}
.section-intro h2{font-size:8vw}
.service-row{grid-template-columns:10% 44% 1fr}
.service-row h3{padding-right:24px;font-size:33px}
.approach-grid{grid-template-columns:49% 44%;gap:7%}
.approach h2{font-size:7.5vw}
.approach-steps{padding-left:25px}
.approach-steps li::before{left:-29px}
.approach-steps p{font-size:19px}
.contact h2{font-size:7.3vw}
.contact-email{font-size:17px}
}
@media(max-width:700px){
html{scroll-padding-top:100px}
.site-header{min-height:84px;gap:20px}
.wordmark{font-size:24px;white-space:normal;line-height:.85}
.wordmark span{display:block}
nav{font-size:12px;gap:20px}
nav a{padding-block:15px}
.hero-main{min-height:0;padding-block:34px 8px;display:block}
h1{font-size:clamp(40px,12vw,76px);line-height:1.03;letter-spacing:-.065em}
h1 em{letter-spacing:-.065em}
.hero-copy>p{font-size:19px;margin-top:25px;max-width:430px;line-height:1.4}
.primary-link{padding:15px 22px;margin-top:26px;font-size:16px}
.hero-art{position:relative;right:auto;top:auto;bottom:auto;width:100%;height:300px;margin-top:-2px}
.hero-art>.scene-shell{inset:-5px -20px 0}
.motion-toggle{bottom:2px;right:0;font-size:10px}
.audience-links{min-height:75px;gap:18px}
.audience-links a{font-size:9px;letter-spacing:.12em;line-height:1.5}
.audience-links a:nth-child(2),.audience-links a:last-child{text-align:left}
.audience-links span{font-size:14px;margin-left:4px}
.client-experience{padding-block:32px}
.client-experience h2{font-size:10px;letter-spacing:.13em}
.client-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 12px;margin-block:20px}
.client-logo{height:108px;padding-bottom:22px}
.client-logo img{width:auto;max-width:64px;max-height:64px}
.client-logo .client-logo-wide{max-width:min(90px,100%)}
.client-name{font-size:10px;white-space:normal;text-align:center;line-height:1.25}
.client-context{font-size:11px;line-height:1.7}
.expertise{padding-block:62px 35px}
.section-label{font-size:14px;gap:15px}
.section-label::before{width:30px}
.section-intro h2{margin-top:32px;font-size:clamp(35px,8.9vw,62px);line-height:1.08}
.section-description{font-size:19px;margin-top:24px}
.audience-tabs{margin-top:30px}
.audience-tabs button{padding-block:14px;font-size:14px;line-height:1.35;padding-right:14px}
.audience-tabs button:last-child{padding-right:0}
.service-row{grid-template-columns:32px 1fr;row-gap:18px;padding-block:28px}
.service-number{padding-top:4px;font-size:12px;letter-spacing:.05em}
.service-row h3{max-width:none;font-size:28px;padding-right:0}
.service-row p{grid-column:2;font-size:18px;padding-right:0}
.approach{padding-block:58px 30px}
.approach-grid{display:block}
.approach h2{font-size:clamp(54px,12vw,80px);margin-top:24px}
.structure-art{height:290px;margin-top:-20px;width:112%;margin-left:-6%}
.approach-steps{margin-top:12px;padding-left:27px}
.approach-steps h3{font-size:29px}
.approach-steps p{margin-top:15px;font-size:19px}
.approach-steps li{padding-bottom:30px}
.approach-steps li+li{padding-top:30px}
.approach-steps li::before{left:-31px}
.approach-steps li+li::before{top:40px}
.approach-principle{font-size:15px;margin-top:0;padding-top:24px}
.contact{padding-top:46px;margin-top:20px}
.contact-main{display:block;padding-bottom:40px}
.contact h2{font-size:clamp(43px,11vw,75px)}
.contact-copy{margin-top:28px}
.contact-copy p{font-size:19px}
.contact-email{font-size:17px;margin-top:24px}
.site-footer{flex-direction:column;gap:15px;padding-top:20px}
.site-footer a{font-size:25px}
.company-details{max-width:400px;font-size:10px;padding-block:18px 25px}
}
@media(max-width:370px){
:root{--gutter:20px}
nav{gap:14px;font-size:11px}
.wordmark{font-size:22px}
.hero-copy>p{font-size:18px}
.hero-art{height:270px}
.audience-links{gap:12px}
.audience-links a{font-size:8px;letter-spacing:.1em}
.audience-tabs button{font-size:12px;padding-right:8px}
.contact-email{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
html:not(.motion-enabled){scroll-behavior:auto}
html:not(.motion-enabled) *,html:not(.motion-enabled) *::before,html:not(.motion-enabled) *::after{animation:none!important;transition:none!important}
}
