/* Prefer the locally installed Helvetica Neue; use platform fallbacks if absent. */
:root{--sans:'Helvetica Neue',Helvetica,Arial,sans-serif}
#site-header{top:28px;transition:top .35s ease,background .45s ease,color .45s ease,border-color .45s ease}
#site-header.solid{top:0}
.stage-caption{top:170px}
.project-list{gap:0;bottom:35px}
.project-choice{padding:0;color:#ffffff8c}
.project-choice>span{font-family:var(--sans);font-weight:400;font-size:clamp(38px,4.4vw,78px);line-height:1.01;letter-spacing:-.05em}
.project-choice.is-active{color:#fff}
.project-info{gap:10px}
@media(max-width:768px){#site-header{top:12px}.stage-caption{top:132px}.project-list{gap:4px;bottom:42px}.project-choice{min-height:38px}.project-choice>span{font-size:clamp(27px,7.3vw,46px);line-height:1.03;letter-spacing:-.04em}.project-info{top:211px}}
@media(min-width:769px) and (max-height:760px){.project-choice>span{font-size:clamp(30px,5.4vh,44px)}.project-list{gap:0;bottom:28px}.stage-caption{top:150px}.project-info{top:195px}}
@media(prefers-reduced-motion:reduce){#site-header{transition:none}}


.nova-copy{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--body-text);max-width:56ch;margin:0 0 22px}
.nova-heading{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.6vw,56px);line-height:1.06;letter-spacing:-.01em;margin:26px 0 28px}
.nova-label{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
#vision .nova-label{display:block;color:#2a0f04;margin-bottom:40px}
#vision .nova-copy{color:rgba(247,241,232,.9);max-width:none;line-height:1.75}
.nova-statement{font-family:var(--news);font-weight:500;font-size:clamp(30px,4.6vw,72px);line-height:1.08;letter-spacing:-.01em;margin:0;max-width:19ch}
.nova-statement em{color:#15140f}
.nova-step{font-family:var(--mono);font-size:13px;color:var(--accent);padding-top:10px}
.nova-step-title{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,40px);line-height:1.04;margin:0}
.nova-step-copy{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--body-text);margin:0;max-width:52ch;padding-top:8px}
@media(max-width:768px){#collaboration{padding:40px 24px 72px!important}.stage-caption p{max-width:38ch}}
.stage-caption{text-transform:none}


.personal-note{position:relative;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(36px,4.2vw,64px);line-height:1.08;letter-spacing:-.02em;margin:76px 0 0;padding-top:28px;max-width:20ch;color:var(--text)}
.personal-note::before{content:"";position:absolute;top:0;left:0;width:48px;height:3px;background:var(--accent)}
.personal-note span{color:var(--accent)}
@media(max-width:768px){.personal-note{font-size:clamp(34px,8vw,52px);margin-top:44px;padding-top:24px}}
.nova-statement{font-family:var(--sans);font-weight:400}
.nova-statement{font-family:var(--serif);font-weight:400}

.client-section{padding:40px 0 110px;overflow:hidden}
.client-heading-row{max-width:1320px;margin:0 auto 50px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.client-heading-row h2{font:400 clamp(24px,2.4vw,36px)/1.2 var(--sans);letter-spacing:-.025em;margin:0;max-width:34ch}
.client-toggle{background:none;border:0;color:var(--body-text);font:12px var(--sans);cursor:pointer;padding:12px;white-space:nowrap}
.client-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.client-window{overflow:hidden;padding:28px 0;mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent)}
.client-track{display:flex;width:max-content;will-change:transform}
.client-group{list-style:none;display:flex;align-items:center;gap:80px;padding:0 80px 0 0;margin:0;flex-shrink:0}
.client-logo{width:190px;height:100px;display:flex;justify-content:center;align-items:center;flex-shrink:0}
.client-logo img{width:auto;height:auto;max-width:180px;max-height:80px;object-fit:contain}
@media(max-width:768px){.client-section{padding:20px 0 72px}.client-heading-row{padding:0 24px;margin-bottom:24px;gap:12px}.client-heading-row h2{font-size:24px}.client-group{gap:42px;padding-right:42px}.client-logo{width:150px;height:85px}.client-logo img{max-width:140px;max-height:65px}}
@media(prefers-reduced-motion:reduce){.client-toggle{display:none}.client-window{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.client-group{padding-left:24px}}
.client-logo img{filter:brightness(0)}

.client-heading-row h2{font-family:var(--serif)}

.project-choice{color:#fff}
.project-choice.is-active{color:#FF5A1F}

.trail-nav{position:fixed;right:12px;top:50%;translate:0 -50%;width:90px;height:min(64vh,540px);z-index:35;color:var(--text);transition:opacity .3s}
.trail-nav[hidden]{display:none}
.trail-map{height:100%;width:100%;overflow:visible}
.trail-base,.trail-progress{stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.trail-base{stroke:#a5a39b;opacity:.55}
.trail-progress{stroke:#FF5A1F}
.trail-stop{position:absolute;left:var(--stop-x);top:var(--stop-y);translate:-50% -50%;display:block;width:28px;height:28px;border-radius:50%;color:inherit}
.trail-stop::before{content:"";position:absolute;inset:10px;border-radius:50%;background:#a5a39b;box-shadow:0 0 0 3px var(--bg)}
.trail-stop.is-passed::before{background:#FF5A1F}
.trail-stop.is-current::before{inset:8px;box-shadow:0 0 0 3px var(--bg),0 0 0 4px #FF5A1F}
.trail-stop span{position:absolute;right:30px;top:6px;white-space:nowrap;font:12px var(--sans);background:var(--bg);padding:4px 8px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s}
.trail-stop:hover span,.trail-stop:focus-visible span{opacity:1}
.trail-stop:focus-visible{outline:2px solid #FF5A1F;outline-offset:2px}
.trail-caption{position:absolute;bottom:-26px;right:8px;font:11px var(--sans);white-space:nowrap;color:inherit}
.trail-finish circle{stroke:#a5a39b;stroke-width:1;fill:var(--bg)}
.trail-finish path{stroke:#a5a39b;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.trail-nav.at-finish .trail-finish path,.trail-nav.at-finish .trail-finish circle{stroke:#FF5A1F}
.trail-nav.at-finish .trail-finish{transform-box:fill-box;transform-origin:center;animation:trail-arrival .8s ease-out both}
.trail-nav.on-dark{color:#f4f3ee;--bg:#08090d}
@keyframes trail-arrival{0%{transform:scale(.7)}45%{transform:scale(1.2)}70%{transform:scale(.95)}100%{transform:scale(1)}}
@media(min-width:769px){#about,#services,#collaboration,.client-heading-row{padding-right:110px!important}#vision,#contact{padding-right:110px!important}}
@media(max-width:768px){.trail-nav{right:0;width:38px;height:min(52vh,400px)}.trail-caption{display:none}.trail-stop{width:22px;height:22px}.trail-stop::before{inset:8px;box-shadow:0 0 0 2px var(--bg)}.trail-stop.is-current::before{inset:6px;box-shadow:0 0 0 2px var(--bg),0 0 0 3px #FF5A1F}.trail-stop span{right:22px}#about,#vision,#services,#collaboration,#contact{padding-right:44px!important}.client-heading-row{padding-right:44px!important}}
@media(prefers-reduced-motion:reduce){.trail-nav,.trail-stop span{transition:none}.trail-nav.at-finish .trail-finish{animation:none}}

.trail-nav{--trail-accent:#FF5A1F}
.trail-progress{stroke:var(--trail-accent)}
.trail-stop.is-passed::before{background:var(--trail-accent)}
.trail-stop.is-current::before{box-shadow:0 0 0 3px var(--bg),0 0 0 4px var(--trail-accent)}
.trail-nav.on-orange{--trail-accent:#fff;--bg:#e85221;color:#fff}
.trail-nav.on-orange .trail-base{stroke:#fff;opacity:.3}
.trail-nav.on-orange .trail-stop:not(.is-passed)::before{background:#ffffff70}
.trail-finish .finish-checks{stroke:none;fill:#a5a39b}
.trail-nav.at-finish .trail-finish .finish-checks{stroke:none;fill:var(--trail-accent)}
.trail-nav.at-finish .trail-finish circle,.trail-nav.at-finish .trail-finish .finish-pole,.trail-nav.at-finish .trail-finish .finish-flag{stroke:var(--trail-accent)}
.trail-stop:last-child::before{display:none}
@media(max-width:768px){.trail-stop.is-current::before{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--trail-accent)}}

.trail-finish circle{stroke-width:1.8}
.trail-finish .finish-pole{stroke-width:1.8}

.trail-finish .finish-dot{fill:#a5a39b;stroke:none}
.trail-nav.at-finish .trail-finish .finish-dot{fill:var(--trail-accent);stroke:none}
.trail-nav.on-orange .trail-finish .finish-dot{fill:#ffffff70}
.trail-nav.on-orange.at-finish .trail-finish .finish-dot{fill:var(--trail-accent)}

.trail-nav{right:8px;width:110px;height:min(36vh,270px)}
.trail-map{overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}
.trail-position{fill:var(--trail-accent);stroke:var(--bg);stroke-width:2}
.trail-stop[hidden]{display:none}
.trail-caption{right:12px;bottom:-28px;font-size:12px}
@media(max-width:768px){.trail-nav{width:58px;right:0;height:170px}.trail-caption{display:none}#about,#vision,#services,#collaboration,#contact{padding-right:64px!important}.client-heading-row{padding-right:64px!important}}

.trail-caption,.trail-stop span{display:none}

.trail-nav{width:150px;height:min(52vh,410px);right:4px}
@media(min-width:769px){#about,#services,#collaboration,.client-heading-row{padding-right:154px!important}#vision,#contact{padding-right:154px!important}}
@media(max-width:768px){.trail-nav{width:72px;height:230px;right:0}#about,#vision,#services,#collaboration,#contact{padding-right:78px!important}.client-heading-row{padding-right:78px!important}}
/* Matte glass surfaces */
#site-header.solid{background:rgba(244,243,238,.76);backdrop-filter:blur(22px) saturate(.75);-webkit-backdrop-filter:blur(22px) saturate(.75);border-bottom:1px solid rgba(255,255,255,.45);box-shadow:0 4px 24px rgba(21,20,15,.035)}
.mobile-nav{background:rgba(21,20,15,.86);backdrop-filter:blur(26px) saturate(.65);-webkit-backdrop-filter:blur(26px) saturate(.65)}
body:has(.mobile-nav.open) #site-header{background:rgba(21,20,15,.72);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.header-contact{padding:10px 17px;border:1px solid rgba(255,255,255,.23);border-radius:999px;background:rgba(244,243,238,.09);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s,border-color .2s}
.solid .header-contact{background:rgba(255,255,255,.25);border-color:rgba(21,20,15,.12)}
.header-contact:hover{background:rgba(255,255,255,.2);border-color:var(--accent)}
#film-dialog{background:rgba(9,11,14,.87);backdrop-filter:blur(24px) saturate(.7);-webkit-backdrop-filter:blur(24px) saturate(.7)}
#film-dialog::backdrop{background:rgba(9,11,14,.45)}
#close-film{background:rgba(244,243,238,.07);border-color:rgba(244,243,238,.23);border-radius:999px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.film-details{padding:24px;border:1px solid rgba(244,243,238,.12);border-top:0;background:rgba(244,243,238,.045);border-radius:0 0 14px 14px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){#site-header.solid{background:rgba(244,243,238,.96)}.mobile-nav{background:rgba(21,20,15,.98)}#film-dialog{background:#090b0e}}
@media(max-width:768px){.header-contact{padding:8px 12px}.film-details{padding:20px 16px}}
