@font-face{font-family:'Instrument Sans';src:url('assets/fonts/instrumentsans.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--graphite:oklch(24% .01 60);--oxide:oklch(49% .125 35);--ivory:oklch(96% .012 78);--gutter:clamp(24px,4.3vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Instrument Sans',Arial,sans-serif;background:var(--graphite);color:var(--ivory);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--ivory);outline-offset:6px}p,h1,h2{margin:0}p{line-height:1.6}.skip{position:fixed;z-index:50;left:20px;top:-100px;background:var(--graphite);padding:14px}.skip:focus{top:15px}
.hero{position:relative;isolation:isolate;min-height:780px;height:100svh;max-height:1250px;display:flex;flex-direction:column;overflow:clip}.hero-image,.image-shade{position:absolute;inset:0;z-index:-2}.hero-image{background:#454c50}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:64% center;display:block}.image-shade{z-index:-1;background:linear-gradient(90deg,rgba(22,29,34,.64) 0%,rgba(22,29,34,.40) 36%,rgba(22,29,34,.08) 70%),linear-gradient(180deg,rgba(19,26,31,.25),transparent 25%,transparent 68%,rgba(19,26,31,.66));pointer-events:none}
header{margin:0 var(--gutter);padding:33px 0 28px;border-bottom:1px solid rgba(243,241,235,.28);display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.brand>span{font-size:25px;font-weight:630;letter-spacing:-.075em;white-space:nowrap}.brand i{font-family:Georgia,serif;font-style:normal;font-weight:400}.brand small{font-size:8px;font-weight:450;letter-spacing:.20em}.header-note{font-size:11px;line-height:1.55;font-weight:400;margin-left:auto;margin-right:7vw;color:oklch(91% .012 78)}nav{display:flex;align-items:center;gap:32px;font-size:12px}nav>a{padding:12px 0}nav>a:hover{text-decoration:underline;text-underline-offset:7px}.nav-contact{margin-left:8px;display:flex;gap:26px}.nav-contact>span{font-size:20px}.menu-toggle{display:none}
.hero-content{margin:auto var(--gutter);padding:58px 0 75px;max-width:900px}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:450;display:flex;align-items:center;gap:12px}.eyebrow>span{display:block;width:5px;height:5px;border-radius:50%;background:oklch(76% .115 48)}h1{font-size:clamp(78px,8.8vw,142px);line-height:.98;font-weight:380;letter-spacing:-.065em;margin:27px 0 27px}.intro{font-size:17px;line-height:1.65;font-weight:380;color:oklch(93% .012 78)}.actions{display:flex;gap:25px;align-items:center;margin-top:30px}.actions a{display:inline-flex;align-items:center;justify-content:space-between;gap:31px;min-height:49px;padding:0 23px;font-size:12px;font-weight:480;border-radius:40px;transition:background .2s,border-color .2s}.actions a>span{font-size:18px}.primary{background:var(--oxide);border:1px solid var(--oxide)}.primary:hover{background:oklch(55% .125 35)}.secondary{border:1px solid rgba(243,241,235,.45);background:rgba(27,34,38,.08)}.secondary:hover{background:rgba(243,241,235,.12);border-color:var(--ivory)}
.hero-bottom{display:flex;align-items:center;gap:40px;margin:0 var(--gutter);padding:25px 0 28px;border-top:1px solid rgba(243,241,235,.28)}.tiny-label{font-size:8px;letter-spacing:.14em;color:oklch(83% .012 78)}.hero-bottom p{font-size:12px;margin-top:6px;line-height:1.5;font-weight:380}.bottom-service b{font-weight:400;padding:0 12px;color:oklch(79% .013 75)}.image-caption{margin-left:auto}.down{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(243,241,235,.4);border-radius:50%;font-size:23px;transition:background .2s}.down:hover{background:rgba(243,241,235,.12)}
.study{background:oklch(95% .009 80);color:var(--graphite);display:flex;justify-content:space-between;align-items:center;gap:40px;padding:46px var(--gutter)}.study-id{font-size:9px;letter-spacing:.15em;color:var(--oxide)}.study h2{font-size:27px;letter-spacing:-.04em;font-weight:450;margin:13px 0 7px}.study p{font-size:12px;color:oklch(47% .014 70)}.study-links{display:flex;flex-direction:column;gap:14px}.study-links a{font-size:12px}.study-links a:hover{text-decoration:underline;text-underline-offset:5px}.study-links small{font-size:10px;color:oklch(47% .014 70)}
@media(min-aspect-ratio:2/1){.hero{height:auto;min-height:750px}.hero-content{padding:55px 0 65px}h1{font-size:110px}}
@media(max-width:1100px){.header-note{display:none}nav{gap:24px}.hero-content{max-width:720px}.hero-image img{object-position:59% center}h1{font-size:clamp(76px,9.3vw,110px)}}
@media(max-width:700px){.hero{height:100svh;min-height:760px;max-height:none}.hero-image img{object-position:62% center}.image-shade{background:linear-gradient(90deg,rgba(20,28,33,.55),rgba(20,28,33,.12)),linear-gradient(180deg,rgba(20,28,33,.25),rgba(20,28,33,.04) 25%,rgba(20,28,33,.25) 65%,rgba(20,28,33,.8))}header{padding:25px 0 23px;gap:15px}.brand>span{font-size:22px}.brand small{font-size:7px}.menu-toggle{display:flex;align-items:center;gap:17px;border:0;background:transparent;color:var(--ivory);font-size:12px;min-height:44px;padding:0}.menu-toggle>span{font-size:23px}.hero nav{display:none;position:absolute;left:var(--gutter);right:var(--gutter);top:105px;background:var(--graphite);border:1px solid rgba(243,241,235,.25);padding:18px 22px;z-index:5;flex-direction:column;align-items:stretch;gap:0}.hero nav.open{display:flex}.hero nav>a{padding:14px 0;min-height:44px}.nav-contact{margin:0;justify-content:space-between}.hero-content{padding:45px 0 30px;margin-top:auto;margin-bottom:30px;max-width:none}.eyebrow{font-size:8px;letter-spacing:.12em;gap:10px}h1{font-size:clamp(60px,14.5vw,96px);font-weight:400;line-height:1.01;letter-spacing:-.065em;margin:22px 0}.intro{font-size:15px}.actions{gap:12px;margin-top:26px;flex-wrap:wrap}.actions a{font-size:11px;gap:16px;padding:0 18px;min-height:48px}.hero-bottom{gap:15px;padding:21px 0 23px;align-items:center}.hero-bottom p{font-size:10px}.bottom-service b{padding:0 6px}.image-caption{display:none}.down{width:37px;height:37px;min-width:37px;margin-left:auto;font-size:20px}.tiny-label{font-size:7px}.study{padding-top:30px;padding-bottom:30px;flex-direction:column;align-items:start;gap:23px}.study h2{font-size:24px}.study p{max-width:330px}.study-links{gap:9px}}
@media(max-width:365px){:root{--gutter:20px}.brand>span{font-size:19px}h1{font-size:55px}.actions{gap:9px}.actions a{padding:0 14px;font-size:10px;gap:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* The first content section: shared brand colors, simple type and fine rules. */
.services-intro{background:oklch(95% .009 80);color:var(--graphite);padding:clamp(72px,8vw,120px) var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,8vw,120px);scroll-margin-top:0}
.section-label{font-size:10px;font-weight:500;letter-spacing:.15em;color:var(--oxide);margin-bottom:26px}
.services-heading h2{font-size:clamp(48px,5.3vw,80px);font-weight:380;line-height:1.04;letter-spacing:-.055em}
.services-body{max-width:550px;padding-top:39px}
.services-description{font-size:16px;line-height:1.8;font-weight:400;color:oklch(42% .01 60);max-width:51ch}
.service-rows{list-style:none;margin:35px 0 0;padding:0;border-top:1px solid oklch(81% .012 70)}
.service-rows li{font-size:20px;font-weight:420;letter-spacing:-.025em;line-height:1.4;padding:19px 0;border-bottom:1px solid oklch(81% .012 70)}
.services-link{display:inline-flex;align-items:center;gap:25px;min-height:44px;margin-top:24px;font-size:13px;font-weight:500;color:var(--oxide)}
.services-link span{font-size:20px}.services-link:hover{text-decoration:underline;text-underline-offset:5px}.services-link:focus-visible{outline-color:var(--oxide)}
.concept-footer{display:flex;justify-content:space-between;gap:20px;padding:22px var(--gutter);background:oklch(92% .009 80);color:oklch(44% .01 60);font-size:10px;line-height:1.6}
.concept-footer a{display:inline-flex;align-items:center;gap:10px;min-height:44px}.concept-footer>span{align-self:center}.concept-footer a:focus-visible{outline-color:var(--oxide)}.concept-footer a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.services-intro{grid-template-columns:1fr;gap:30px;padding-top:60px;padding-bottom:55px}.section-label{margin-bottom:21px}.services-heading h2{font-size:clamp(46px,11vw,65px)}.services-body{padding:0;max-width:none}.services-description{font-size:15px;line-height:1.8}.service-rows{margin-top:28px}.service-rows li{font-size:18px;padding:18px 0}.services-link{margin-top:22px}.concept-footer{flex-direction:column;gap:2px;padding-top:17px;padding-bottom:13px}.concept-footer>span{align-self:flex-start}.down{width:44px;height:44px;min-width:44px}}
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}

/* Wordmarks sit on the existing photograph, inside the hero. */
.client-strip{position:relative;flex-shrink:0;overflow:hidden;background:transparent;color:var(--ivory);padding:25px 0;margin:0 var(--gutter);min-height:96px;display:flex;align-items:center}
.client-fade{overflow:hidden;width:calc(100% - 48px);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.client-track{display:flex;width:max-content;animation:client-drift 42s linear infinite;will-change:transform}
.client-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;width:max(1000px,calc(100vw - 2 * var(--gutter) - 48px));list-style:none;margin:0;padding:0}
.client-group li{width:230px;text-align:center;opacity:.64;line-height:1.05;font-size:21px;font-weight:550;letter-spacing:-.035em;white-space:nowrap}
.client-group small{display:block;font-family:'Instrument Sans',Arial,sans-serif;font-size:7px;letter-spacing:.22em;font-weight:450;margin-top:7px}
.client-group .client-mill{font-family:Georgia,serif;font-size:28px;font-weight:400}.client-group .client-foundry{font-weight:650;font-size:21px}.client-group .client-oak{font-size:21px;font-weight:450;letter-spacing:.035em}
.client-pause{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:transparent;color:var(--ivory);opacity:.65;cursor:pointer;font-size:12px}.client-pause:focus-visible{outline-color:var(--ivory);opacity:1}
.client-strip:focus-within .client-track,.client-strip.is-paused .client-track{animation-play-state:paused}
@keyframes client-drift{to{transform:translateX(-50%)}}
@media(max-width:700px){.client-strip{padding:22px 0;min-height:88px}.client-group{width:800px}.client-group li{width:200px;font-size:18px}.client-group .client-mill{font-size:26px}.client-group .client-foundry,.client-group .client-oak{font-size:18px}.client-track{animation-duration:34s}}
@media(prefers-reduced-motion:reduce){.client-track{animation:none;transform:none;width:100%;will-change:auto}.client-group{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.client-group li{width:auto;white-space:normal}.client-group[aria-hidden]{display:none}.client-fade{mask-image:none;width:100%}.client-pause{display:none}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.client-group{grid-template-columns:repeat(2,1fr);row-gap:20px}}

/* Featured work continues the warm light ground with one large photograph. */
.featured-work{background:oklch(95% .009 80);color:var(--graphite);padding:0 var(--gutter) clamp(65px,8vw,120px);scroll-margin-top:32px}
.work-heading{border-top:1px solid oklch(81% .012 70);padding-top:45px;margin-bottom:38px}
.work-heading .section-label{margin-bottom:23px}
.work-heading h2{font-size:clamp(35px,3.8vw,56px);font-weight:380;line-height:1.1;letter-spacing:-.045em}
.featured-project{margin:0}.project-photo img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover}
.featured-project figcaption{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,8vw,120px);padding-top:30px}
.project-identity h3{font-size:24px;line-height:1.3;font-weight:450;letter-spacing:-.03em;margin:0 0 10px}
.project-identity p{font-size:12px;line-height:1.7;color:oklch(44% .01 60)}.project-identity p span{padding:0 7px}
.project-summary{max-width:550px}.project-summary>p{font-size:15px;line-height:1.8;color:oklch(42% .01 60)}.project-summary .services-link{margin-top:13px}
@media(max-width:700px){.work-heading{padding-top:31px;margin-bottom:26px}.work-heading h2{font-size:clamp(31px,7.8vw,43px)}.work-heading .section-label{margin-bottom:20px}.featured-project figcaption{grid-template-columns:1fr;gap:19px;padding-top:23px}.project-identity h3{font-size:22px;margin-bottom:7px}.project-identity p{font-size:11px}.project-summary>p{font-size:14px}.featured-work{padding-bottom:52px}}

/* Neutral source photograph, with a restrained, independently editable grade. */
.project-photo{position:relative;isolation:isolate;overflow:hidden;--photo-saturation:.88;--photo-contrast:1.025;--photo-brightness:.99}
.project-photo img{filter:saturate(var(--photo-saturation)) contrast(var(--photo-contrast)) brightness(var(--photo-brightness))}
.project-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(159,92,62,.055),transparent 48%,rgba(51,72,89,.065));mix-blend-mode:soft-light}

/* An extended oxide field with an interactive delivery sequence. */
.approach{background:var(--oxide);color:var(--ivory);padding:clamp(90px,9vw,145px) var(--gutter) clamp(110px,11vw,170px);min-height:1060px}
.approach-heading{display:grid;grid-template-columns:1.65fr 1fr;align-items:end;gap:7vw}
.approach-heading h2{font-size:clamp(54px,6vw,92px);font-weight:380;line-height:1.05;letter-spacing:-.055em}
.approach-intro{max-width:36ch;padding-bottom:6px}.approach-intro p{font-size:16px;line-height:1.8}
.approach-link{display:inline-flex;align-items:center;gap:32px;min-height:44px;margin-top:24px;font-size:14px;border-bottom:1px solid color-mix(in oklch,var(--ivory) 50%,transparent)}
.approach-link>span{font-size:23px;transition:transform .2s ease-out}.approach-link:hover>span{transform:translate(2px,-2px)}
.approach-explorer{display:grid;grid-template-columns:1fr 1fr;gap:clamp(65px,10vw,160px);margin-top:clamp(85px,9vw,140px)}
.approach-tabs{align-self:start;border-bottom:1px solid color-mix(in oklch,var(--ivory) 30%,transparent)}
.approach-tab{width:100%;display:grid;grid-template-columns:32px 1fr 28px;align-items:center;gap:20px;text-align:left;border:0;border-top:1px solid color-mix(in oklch,var(--ivory) 30%,transparent);padding:32px 0;background:transparent;color:inherit;cursor:pointer;position:relative;font-size:clamp(25px,2.5vw,38px);font-weight:400;letter-spacing:-.04em;transition:opacity .25s ease-out}
.approach-tabs[role=tablist] .approach-tab{opacity:.65}.approach-tabs[role=tablist] .approach-tab:is(:hover,:focus-visible,[aria-selected=true]){opacity:1}
.approach-tab::after{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--ivory);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,.7,.24,1)}
.approach-tab[aria-selected=true]::after{transform:scaleX(1)}
.approach-number{font-size:12px;letter-spacing:.03em}.approach-tab-arrow{font-size:27px;transition:transform .3s ease-out}.approach-tab[aria-selected=true] .approach-tab-arrow{transform:rotate(45deg)}
.approach-details{min-height:430px}.approach-panel[hidden]{display:none}.approach-panel:not([hidden]){animation:approach-reveal .4s cubic-bezier(.22,.7,.24,1) both}
.approach-count{display:block;font-size:68px;line-height:1;font-weight:350;letter-spacing:-.055em;margin-bottom:34px}.approach-count small{font-size:14px;letter-spacing:0;margin-left:12px}
.approach-panel h3{font-size:clamp(32px,3vw,46px);line-height:1.12;letter-spacing:-.04em;font-weight:400;margin:0 0 23px}.approach-panel>p{font-size:16px;line-height:1.8;max-width:43ch}
.approach-panel ul{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;gap:12px 22px}.approach-panel li{font-size:12px;padding-top:10px;border-top:1px solid color-mix(in oklch,var(--ivory) 35%,transparent)}
@keyframes approach-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.approach-heading{grid-template-columns:1fr;gap:32px}.approach-intro{max-width:48ch}.approach-explorer{gap:50px}.approach-tab{gap:12px}}
@media(max-width:760px){.approach{padding:80px var(--gutter) 95px;min-height:0}.approach-heading h2{font-size:clamp(43px,8vw,62px)}.approach-intro p{font-size:15px}.approach-explorer{grid-template-columns:1fr;gap:48px;margin-top:64px}.approach-tab{padding:24px 0;font-size:28px}.approach-details{min-height:410px}.approach-count{font-size:55px;margin-bottom:28px}.approach-panel h3{font-size:34px}.approach-panel>p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.approach-panel:not([hidden]){animation:none}}

/* Closing invitation and footer share one continuous graphite ground. */
.contact-close{background:var(--graphite);color:var(--ivory);padding:clamp(85px,8vw,125px) var(--gutter) clamp(70px,7vw,105px)}
.contact-close-top{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:58px}.contact-close-top p{font-size:11px;letter-spacing:.12em}.contact-close-top>span{font-size:13px}
.contact-close h2{font-size:clamp(62px,8.2vw,126px);line-height:1.02;letter-spacing:-.06em;font-weight:370;max-width:15ch}
.contact-close-bottom{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:7vw;margin-top:66px}.contact-close-bottom>p{font-size:16px;line-height:1.8;max-width:43ch}
.contact-invitation{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:82px;padding:12px 0;border-bottom:1px solid color-mix(in oklch,var(--ivory) 35%,transparent);font-size:clamp(22px,2.3vw,34px);letter-spacing:-.035em}
.contact-invitation::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ivory);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,.7,.24,1)}
.contact-invitation:is(:hover,:focus-visible)::after{transform:scaleX(1)}.contact-arrow{font-size:46px;line-height:1;transition:transform .35s cubic-bezier(.22,.7,.24,1)}.contact-invitation:is(:hover,:focus-visible) .contact-arrow{transform:translate(4px,-4px)}
.site-footer{background:var(--graphite);color:var(--ivory);padding:0 var(--gutter)}
.footer-main{display:grid;grid-template-columns:1.3fr 1fr .55fr;gap:8vw;padding:65px 0 60px;border-top:1px solid color-mix(in oklch,var(--ivory) 25%,transparent)}
.footer-identity>p{font-size:14px;line-height:1.7;margin-top:25px}.footer-area h2{font-size:13px;font-weight:450;margin:0 0 19px}.footer-area p{font-size:14px;line-height:1.8;max-width:31ch}
.footer-nav{display:grid;grid-template-columns:1fr;gap:0;align-content:start;justify-items:start}.footer-nav a{display:flex;align-items:center;min-height:44px;font-size:14px}.footer-nav a:first-child{margin-top:-13px}.footer-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid color-mix(in oklch,var(--ivory) 20%,transparent);padding:18px 0;font-size:11px;color:color-mix(in oklch,var(--ivory) 75%,var(--graphite))}.footer-bottom>a{min-height:44px;display:flex;align-items:center;gap:30px}.footer-bottom>a:hover{text-decoration:underline;text-underline-offset:5px}.footer-bottom>a>span{font-size:21px}
@media(max-width:760px){.contact-close{padding-top:72px;padding-bottom:65px}.contact-close-top{margin-bottom:42px}.contact-close-top p{font-size:9px}.contact-close-top>span{display:none}.contact-close h2{font-size:clamp(49px,9vw,68px)}.contact-close-bottom{grid-template-columns:1fr;gap:30px;margin-top:35px}.contact-close-bottom>p{font-size:15px}.contact-invitation{font-size:25px;min-height:76px}.contact-arrow{font-size:37px}.footer-main{grid-template-columns:1fr 1fr;gap:40px 30px;padding:46px 0 35px}.footer-identity{grid-column:1/-1}.footer-area p{font-size:13px}.footer-nav{justify-self:end;min-width:75px}.footer-bottom{align-items:start;gap:12px;flex-direction:column}.footer-bottom>a{gap:20px}.footer-bottom>span{font-size:10px}}

/* Selected brand typography: open regular headlines, medium controls. */
h1,h2,h3{font-weight:400}h1,.services-heading h2,.approach-heading h2,.contact-close h2{letter-spacing:-.045em;font-weight:400}nav a,.actions a,.approach-link,.contact-invitation{font-weight:500}

/* Legacy inline inquiry styling. */
button.contact-invitation{width:100%;background:none;color:inherit;border:0;border-bottom:1px solid color-mix(in oklch,var(--ivory) 35%,transparent);padding:0;text-align:left;cursor:pointer}
#inquiry{max-width:720px;margin:48px 0 0 auto}#inquiry[hidden]{display:none}
#inquiry .demo-notice{font-size:.875rem;opacity:.75;line-height:1.6}
#inquiry label{display:block;margin:24px 0;font-size:1rem}
#inquiry input,#inquiry textarea{display:block;width:100%;margin-top:10px;padding:16px;background:var(--ivory);color:var(--graphite);border:0;border-radius:0;font:inherit}
#inquiry button{padding:16px 24px;border:0;border-radius:32px;background:var(--oxide);color:var(--ivory);cursor:pointer}
#inquiry input:focus-visible,#inquiry textarea:focus-visible{outline:2px solid var(--oxide);outline-offset:4px}
#inquiry output{display:block;white-space:pre-line;margin-top:24px;line-height:1.6}
