:root{
  --ink:#20232b;
  --ink-2:#2b2f38;
  --orange:#ff6b03;
  --orange-soft:#ff8a3d;
  --paper:#f4f2ed;
  --white:#fff;
  --muted:#666b73;
  --line:#d8d5ce;
  --max:1240px;
  --ease:cubic-bezier(.22,.78,.24,1);
  --shadow:0 24px 70px rgba(18,20,25,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}::selection{background:var(--orange);color:#fff}
.skip-link{position:fixed;left:12px;top:-80px;background:#fff;color:#000;padding:10px 14px;z-index:1000;border-radius:3px}.skip-link:focus{top:12px}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:0 50%;z-index:999;pointer-events:none}
.container{width:min(calc(100% - 42px),var(--max));margin-inline:auto}.section{padding:clamp(70px,8vw,112px) 0}.section-sm{padding:clamp(54px,6.2vw,88px) 0}
.display{font-family:"Arial Narrow","DejaVu Sans Condensed",Impact,sans-serif;font-stretch:condensed;font-weight:900;letter-spacing:-.05em;line-height:.9;text-transform:uppercase;margin:0}.kicker{display:flex;align-items:center;gap:10px;color:var(--orange);font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.kicker:before{content:"";width:22px;height:2px;background:currentColor}.lede{font-size:1.06rem;line-height:1.72;color:#656a72;margin:0}.accent{color:var(--orange)}

/* motion */
.motion-enabled .reveal-ready{opacity:0;transform:translate3d(0,30px,0);transition:opacity .72s var(--ease) var(--reveal-delay,0ms),transform .84s var(--ease) var(--reveal-delay,0ms)}
.motion-enabled .reveal-ready.is-visible{opacity:1;transform:none}
[data-parallax] img{transform:translate3d(0,var(--parallax-y,0),0) scale(1.045);will-change:transform;transition:filter .7s ease}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* header */
.site-header{position:sticky;top:0;z-index:90;background:rgba(244,242,237,.92);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:border-color .25s ease,box-shadow .25s ease}.site-header.is-scrolled{border-color:rgba(32,35,43,.1);box-shadow:0 8px 28px rgba(32,35,43,.06)}.header-inner{height:82px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}.brand-logo{display:block;width:min(330px,31vw)}.brand-logo img{width:100%;height:auto}.desktop-nav{display:flex;justify-content:center;gap:28px}.nav-link{position:relative;padding:30px 0 26px;font-size:.82rem;font-weight:800;letter-spacing:.04em}.nav-link:after{content:"";position:absolute;left:0;right:100%;bottom:20px;height:2px;background:var(--orange);transition:right .28s var(--ease)}.nav-link:hover:after{right:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border:1px solid transparent;font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;transition:transform .24s var(--ease),background .24s ease,color .24s ease,border-color .24s ease,box-shadow .24s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--orange);color:#fff;box-shadow:0 10px 26px rgba(255,107,3,.18)}.btn-primary:hover{background:#e95f00;box-shadow:0 14px 32px rgba(255,107,3,.28)}.btn-ghost{border-color:#bfc1c5;background:transparent}.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:#0f1116}.arrow{font-size:1rem}.header-cta{min-height:44px;padding:0 18px}.menu-btn{display:none;width:46px;height:46px;border:0;background:transparent;align-items:center;justify-content:center}.menu-lines,.menu-lines:before,.menu-lines:after{display:block;width:23px;height:2px;background:var(--ink);position:relative}.menu-lines:before,.menu-lines:after{content:"";position:absolute;left:0}.menu-lines:before{top:-7px}.menu-lines:after{top:7px}.mobile-nav{display:none}

/* hero */
.hero{background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to right,#000,transparent 68%);pointer-events:none}.hero-grid{min-height:690px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(410px,.88fr)}.hero-copy{padding:clamp(62px,6.4vw,88px) clamp(30px,4vw,60px) clamp(58px,6.5vw,82px) max(21px,calc((100vw - var(--max))/2));display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}.hero-kicker{animation:fadeUp .7s var(--ease) both}.hero-title{font-size:clamp(4rem,5.85vw,6.8rem);max-width:840px;animation:fadeUp .78s var(--ease) .08s both}.hero-sub{font-size:clamp(1.02rem,1.35vw,1.2rem);color:#c4c7ce;max-width:700px;margin:26px 0 30px;line-height:1.66;animation:fadeUp .78s var(--ease) .14s both}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;animation:fadeUp .78s var(--ease) .2s both}.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.28)}.hero .btn-ghost:hover{background:#fff;color:var(--ink)}.hero-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:#989ca5;font-weight:900;animation:fadeUp .78s var(--ease) .26s both}.hero-visual{position:relative;min-height:690px;overflow:hidden;background:#111;clip-path:inset(0 0 0 0);animation:imageReveal .95s var(--ease) .12s both}.hero-visual img{width:100%;height:calc(100% + 48px);object-fit:cover;object-position:59% center;filter:saturate(.82) contrast(1.05)}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(32,35,43,.42) 18%,transparent 48%),linear-gradient(0deg,rgba(32,35,43,.64),transparent 46%)}.hero-image-index{position:absolute;z-index:3;right:25px;top:24px;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.74)}.hero-panel{position:absolute;right:22px;bottom:22px;z-index:3;background:rgba(246,245,241,.95);color:var(--ink);padding:21px 22px;width:min(325px,calc(100% - 44px));box-shadow:var(--shadow);backdrop-filter:blur(10px)}.hero-panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange)}.hero-panel strong{display:block;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:1.48rem;line-height:1;text-transform:uppercase;margin-bottom:8px}.hero-panel span{font-size:.8rem;color:#62666d;line-height:1.5}@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes imageReveal{from{opacity:0;clip-path:inset(0 0 0 100%)}to{opacity:1;clip-path:inset(0 0 0 0)}}

.expertise-rail{background:#fff;border-bottom:1px solid var(--line)}.rail-inner{display:flex;overflow:auto;scrollbar-width:none}.rail-inner::-webkit-scrollbar{display:none}.rail-item{padding:17px 26px 17px 0;margin-right:28px;white-space:nowrap;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-weight:900;letter-spacing:.02em;font-size:.92rem}.rail-item:not(:last-child):after{content:"/";color:var(--orange);margin-left:28px}

/* role / split */
.split-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end;margin-bottom:52px}.split-heading h2{font-size:clamp(3.4rem,5.7vw,6rem);margin-top:18px}.split-heading .lede{max-width:500px}.role-list{border-top:1px solid var(--line)}.role-row{display:grid;grid-template-columns:70px minmax(260px,.8fr) 1.2fr 36px;align-items:center;gap:24px;min-height:108px;border-bottom:1px solid var(--line);transition:background .3s ease,padding .3s var(--ease)}.role-row:hover{background:#fff;padding-inline:18px}.role-num{font-size:.7rem;font-weight:900;letter-spacing:.12em;color:var(--orange)}.role-title{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:clamp(1.8rem,2.7vw,2.7rem);font-weight:900;line-height:1}.role-desc{font-size:.9rem;color:#6a6e75;line-height:1.55;max-width:500px}.role-arrow{font-size:1.3rem;transition:transform .3s var(--ease)}.role-row:hover .role-arrow{transform:translate(3px,-3px)}

/* image story */
.image-story{background:#ebe8e1}.image-story-head{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;margin-bottom:34px}.image-story-head h2{font-size:clamp(3.4rem,5.3vw,5.8rem);margin-top:18px}.image-mosaic{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:280px 280px;gap:14px}.mosaic-card{position:relative;margin:0;overflow:hidden;background:#1a1b20;box-shadow:0 14px 42px rgba(24,25,30,.08)}.mosaic-wide{grid-row:1/3}.mosaic-tall{grid-column:2}.mosaic-small{grid-column:2}.mosaic-card img{width:100%;height:calc(100% + 44px);object-fit:cover;filter:saturate(.8) contrast(1.04);transition:filter .65s ease,transform .9s var(--ease)}.mosaic-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,27,33,.78),transparent 52%);z-index:1}.mosaic-card:hover img{filter:saturate(1) contrast(1.04);transform:translate3d(0,var(--parallax-y,0),0) scale(1.08)}.mosaic-card figcaption{position:absolute;z-index:2;left:26px;right:26px;bottom:24px;color:#fff}.mosaic-card figcaption span{display:block;color:var(--orange);font-size:.68rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px}.mosaic-card figcaption strong{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:clamp(1.65rem,2.2vw,2.5rem);line-height:.95;max-width:420px}

/* editorial */
.editorial{background:#fff}.editorial-grid{display:grid;grid-template-columns:.96fr 1.04fr;min-height:670px}.editorial-media{position:relative;overflow:hidden;min-height:540px}.editorial-media img{width:100%;height:calc(100% + 42px);object-fit:cover;filter:saturate(.72) contrast(1.07)}.editorial-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(32,35,43,.38))}.editorial-label{position:absolute;left:24px;bottom:24px;z-index:2;background:var(--orange);color:#fff;padding:15px 17px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.editorial-copy{padding:clamp(58px,7vw,96px);display:flex;flex-direction:column;justify-content:center}.editorial-copy h2{font-size:clamp(3.2rem,5.3vw,5.8rem);margin-top:20px}.editorial-copy .lede{margin:26px 0 30px}.check-list{display:grid;border-top:1px solid var(--line)}.check-item{display:grid;grid-template-columns:42px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.check-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:.72rem;font-weight:900}.check-item strong{display:block;font-size:.88rem;text-transform:uppercase;letter-spacing:.05em}.check-item span{display:block;color:#757980;font-size:.84rem;margin-top:4px}

/* services */
.services{background:var(--orange);color:#fff}.services-top{display:flex;justify-content:space-between;gap:42px;align-items:end;margin-bottom:38px}.services-top h2{font-size:clamp(3.2rem,5vw,5.5rem);max-width:720px}.services-top p{max-width:430px;margin:0;color:rgba(255,255,255,.84);line-height:1.65}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.32)}.service{padding:30px 32px 6px 0;border-right:1px solid rgba(255,255,255,.28);margin-right:32px;min-height:245px}.service:last-child{border:0;margin-right:0}.service-num{font-size:.7rem;letter-spacing:.14em;font-weight:900}.service h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2.35rem;line-height:1;margin:54px 0 13px}.service p{color:rgba(255,255,255,.83);font-size:.9rem;line-height:1.6;max-width:330px}

/* process */
.process{background:var(--ink);color:#fff}.process-head{display:grid;grid-template-columns:1fr .72fr;gap:70px;align-items:end;margin-bottom:48px}.process-head h2{font-size:clamp(3.3rem,5.6vw,6rem);margin-top:18px}.process-head p{color:#b7bac1;margin:0 0 5px;max-width:500px;line-height:1.65}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.16)}.process-step{padding:28px 30px 0 0;min-height:270px;border-right:1px solid rgba(255,255,255,.16);margin-right:30px}.process-step:last-child{border-right:0;margin-right:0}.process-step .n{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:.88rem;color:var(--orange);font-weight:900}.process-step h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2.15rem;line-height:1;margin:56px 0 14px}.process-step p{color:#aaadb5;font-size:.9rem;max-width:320px;line-height:1.6}

/* local/founder */
.local-section{background:#f7f6f2}.local-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:72px;align-items:center}.local-copy h2{font-size:clamp(3.3rem,5.5vw,5.9rem);margin:18px 0 24px}.local-copy .lede{margin-bottom:28px;max-width:640px}.local-visual{position:relative;min-height:510px;overflow:hidden;background:#191b20;box-shadow:var(--shadow)}.local-visual img{width:100%;height:calc(100% + 44px);object-fit:cover;filter:saturate(.74) contrast(1.06)}.local-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,34,42,.65),transparent 55%)}.local-stamp{position:absolute;z-index:2;right:20px;bottom:20px;background:var(--paper);padding:18px 20px;min-width:190px;border-left:4px solid var(--orange)}.local-stamp span{display:block;color:#7a7e85;text-transform:uppercase;letter-spacing:.12em;font-size:.63rem;font-weight:900}.local-stamp strong{display:block;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:1.65rem;line-height:1;margin-top:6px}.founder{background:#fff}.founder-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:86px;align-items:start}.founder-tag{display:flex;align-items:center;gap:16px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.founder-tag img{width:52px;height:52px}.founder-copy blockquote{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:clamp(3rem,4.8vw,5.2rem);line-height:.96;text-transform:uppercase;font-weight:900;letter-spacing:-.035em;margin:0 0 24px}.founder-copy blockquote span{color:var(--orange)}.founder-copy p{max-width:690px;color:#5e626a;font-size:1rem;line-height:1.7;margin:0 0 24px}

/* final CTA */
.final-cta{background:#e9e6de}.cta-card{background:var(--ink);color:#fff;padding:clamp(40px,5.8vw,72px);display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:end;position:relative;overflow:hidden}.cta-card:after{content:"";position:absolute;right:-84px;top:-96px;width:240px;height:240px;border:42px solid rgba(255,107,3,.1);transform:rotate(17deg)}.cta-card h2{font-size:clamp(3.1rem,5.7vw,6rem);max-width:780px;position:relative;z-index:1}.cta-card p{color:#b7bac1;position:relative;z-index:1;margin:0 0 24px}.cta-card-home{padding:0;grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);gap:0;align-items:stretch;min-height:525px;border:1px solid rgba(255,255,255,.07);box-shadow:0 32px 86px rgba(23,25,31,.14)}.cta-card-home:after{display:none}.cta-card-home:before{content:"";position:absolute;inset:0 42% 0 0;background:linear-gradient(120deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px;opacity:.58;pointer-events:none}.cta-content{padding:clamp(44px,5.6vw,72px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}.cta-kicker{margin-bottom:22px}.cta-card-home h2{font-size:clamp(3.35rem,5.15vw,5.7rem);max-width:720px;line-height:.89}.cta-card-home h2 span{display:block;color:var(--orange)}.cta-card-home p{max-width:560px;font-size:.98rem;line-height:1.68;margin:24px 0 28px;color:#b9bdc5}.cta-actions{position:relative;z-index:1}.cta-card-home .cta-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.cta-call{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.28);padding:9px 0;transition:.25s var(--ease)}.cta-call:hover{color:var(--orange);border-color:var(--orange);gap:14px}.cta-media{position:relative;overflow:hidden;min-height:525px;background:#111}.cta-media img{object-fit:cover;width:100%;height:calc(100% + 44px);object-position:center;filter:saturate(.78) contrast(1.07)}.cta-media:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(32,35,43,.87) 0%,rgba(32,35,43,.08) 34%),linear-gradient(0deg,rgba(32,35,43,.62),transparent 52%)}.cta-media:after{content:"";position:absolute;z-index:2;top:-18%;left:-8px;width:7px;height:136%;background:var(--orange);transform:rotate(7deg)}.cta-media-overlay{position:absolute;left:32px;right:28px;bottom:28px;z-index:3;color:#fff}.cta-media-overlay span{display:block;color:var(--orange);font-size:.67rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px}.cta-media-overlay strong{display:block;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:clamp(1.6rem,2vw,2.35rem);line-height:.96;max-width:330px}

/* footer */
.footer{background:#15171d;color:#fff;padding:0 0 28px}.footer-connect{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.12);margin-bottom:52px}.footer-action-card{position:relative;min-height:142px;padding:26px;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:flex-end;transition:background .28s ease,color .28s ease}.footer-action-card span{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:#777c85;font-weight:900;margin-bottom:7px}.footer-action-card strong{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:clamp(1.4rem,2vw,2rem);text-transform:uppercase;line-height:1;overflow-wrap:anywhere}.footer-action-card b{position:absolute;right:22px;top:18px;color:var(--orange);font-size:1.2rem;transition:transform .28s var(--ease)}.footer-action-card:hover{background:var(--orange);color:#fff}.footer-action-card:hover span,.footer-action-card:hover b{color:#fff}.footer-action-card:hover b{transform:translate(3px,-3px)}.footer-top{display:grid;grid-template-columns:1.25fr .55fr .7fr;gap:64px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.1)}.footer-brand-logo img{width:min(100%,330px);height:auto}.footer-brand-block p{max-width:410px;margin:20px 0 0;color:#8e929a;font-size:.88rem;line-height:1.62}.footer h4{font-size:.66rem;text-transform:uppercase;letter-spacing:.15em;color:#777c85;margin:0 0 15px}.footer-links{display:grid;gap:9px;font-size:.88rem}.footer-links a:hover{color:var(--orange)}.footer-location{display:grid;gap:6px}.footer-location strong{font-size:.95rem}.footer-location span{font-size:.8rem;color:#7f838b;line-height:1.5}.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-top:24px;font-size:.7rem;color:#70747c;text-transform:uppercase;letter-spacing:.08em}

/* inner pages */
.page-hero{padding:clamp(82px,9vw,132px) 0 66px;background:var(--ink);color:#fff;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;right:-4vw;bottom:-17vw;width:34vw;height:34vw;border:5.5vw solid rgba(255,107,3,.08);transform:rotate(18deg)}.page-hero h1{font-size:clamp(4.2rem,8vw,8.3rem);max-width:990px;position:relative;z-index:2}.page-hero p{max-width:680px;color:#b8bbc2;font-size:1.04rem;line-height:1.7;position:relative;z-index:2;margin:24px 0 0}.page-hero .kicker{position:relative;z-index:2;margin-bottom:20px}.inner-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:78px}.sticky-label{position:sticky;top:118px;align-self:start}.sticky-label h2{font-size:clamp(3rem,4.7vw,5rem);margin:18px 0 22px}.discipline{padding:0 0 38px;margin-bottom:38px;border-bottom:1px solid var(--line)}.discipline:last-child{margin-bottom:0}.discipline h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2.45rem;line-height:1;margin:0 0 12px}.discipline p{color:#696d74;max-width:650px}.tag-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.tag{padding:8px 11px;border:1px solid var(--line);background:#fff;font-size:.72rem;font-weight:800}.about-story,.jobs-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about-story h2,.jobs-intro h2{font-size:clamp(3.2rem,5vw,5.4rem);margin:18px 0 0}.about-story p,.jobs-intro p{color:#646970;font-size:1rem;line-height:1.76;margin-top:0}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.value{padding:30px 28px 0 0;margin-right:28px;border-right:1px solid var(--line)}.value:last-child{border:0;margin:0}.value strong{display:block;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2rem;line-height:1;margin:50px 0 12px}.value p{color:#6b6f76;font-size:.9rem;line-height:1.6}.jobs-panel{background:var(--ink);color:#fff;padding:34px;align-self:start}.jobs-panel h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2.5rem;line-height:1;margin:0 0 15px}.jobs-panel p{color:#b3b6bd}.contact-section{background:#efede7}.contact-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:start}.contact-aside{position:sticky;top:116px}.contact-aside h2{font-size:clamp(3.1rem,4.7vw,5rem);margin:18px 0 22px}.contact-aside .lede{max-width:470px}.contact-form{background:#fff;border:1px solid var(--line);padding:clamp(28px,4.4vw,48px);box-shadow:0 22px 60px rgba(32,35,43,.07)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;font-weight:900;color:#555a61}.field input,.field textarea,.field select{width:100%;border:1px solid #d4d2cb;background:#faf9f6;color:var(--ink);min-height:48px;padding:12px 13px;outline:none;border-radius:0;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.field textarea{min-height:142px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,107,3,.08);background:#fff}.form-actions{display:flex;align-items:center;gap:20px;margin-top:24px}.form-note{font-size:.78rem;color:#7a7e84}.form-status{margin:18px 0 0;padding:12px 14px;font-size:.84rem}.form-status.success{background:#edf7ef;color:#22552c}.form-status.error{background:#fff0ed;color:#8c2e20}.honeypot{position:absolute!important;left:-9999px!important}

@media(max-width:1020px){
  .desktop-nav,.header-cta{display:none}.menu-btn{display:flex}.header-inner{grid-template-columns:auto 1fr auto;height:72px}.brand-logo{width:245px}.mobile-nav{display:block;max-height:0;overflow:hidden;background:var(--paper);transition:max-height .38s var(--ease);border-top:1px solid transparent}.mobile-nav.open{max-height:420px;border-color:var(--line)}.mobile-nav .container{display:grid;padding:12px 0 20px}.mobile-nav a:not(.btn){padding:13px 0;border-bottom:1px solid var(--line);font-weight:800}.mobile-nav .btn{margin-top:14px}
  .hero-grid{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:78px 40px 56px}.hero-visual{min-height:500px}.hero-title{font-size:clamp(4rem,10vw,6.7rem)}
  .split-heading,.image-story-head,.editorial-grid,.local-grid,.founder-grid,.inner-grid,.about-story,.jobs-intro,.contact-layout{grid-template-columns:1fr;gap:40px}.editorial-grid{min-height:auto}.editorial-media{min-height:520px}.editorial-copy{padding:64px 40px}.sticky-label,.contact-aside{position:static}.process-head{grid-template-columns:1fr;gap:22px}.cta-card,.cta-card-home{grid-template-columns:1fr;gap:0}.cta-content{padding:52px 46px}.cta-media{min-height:420px}.footer-top{grid-template-columns:1.2fr .7fr .8fr;gap:34px}.image-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:400px 300px}.mosaic-wide{grid-column:1/-1;grid-row:1}.mosaic-tall,.mosaic-small{grid-column:auto;grid-row:2}.local-visual{min-height:460px}
}
@media(max-width:760px){
  .container{width:min(calc(100% - 28px),var(--max))}.section{padding:60px 0}.section-sm{padding:48px 0}.header-inner{height:68px}.brand-logo{width:220px}.hero-copy{padding:54px 20px 34px}.hero-title{font-size:clamp(3.15rem,14.6vw,5.1rem)}.hero-sub{font-size:.96rem;margin:20px 0 22px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .btn{width:100%}.hero-meta{gap:10px 18px;margin-top:24px;padding-top:17px}.hero-visual{min-height:390px}.hero-panel{right:14px;bottom:14px;width:calc(100% - 28px);padding:18px}.hero-image-index{top:15px;right:16px}.expertise-rail{overflow:hidden}.rail-inner{width:100%;padding-left:14px}.rail-item{margin-right:18px;padding-right:18px}.rail-item:not(:last-child):after{margin-left:18px}
  .split-heading{margin-bottom:36px}.split-heading h2,.image-story-head h2,.editorial-copy h2,.process-head h2,.local-copy h2,.page-hero h1{font-size:clamp(3rem,13vw,4.8rem)}.role-row{grid-template-columns:42px 1fr 28px;gap:10px;min-height:96px;padding:14px 0}.role-desc{grid-column:2/4;padding-bottom:4px}.role-arrow{grid-column:3;grid-row:1}.role-row:hover{padding-inline:0;background:transparent}.image-story-head{margin-bottom:28px}.image-mosaic{display:grid;grid-template-columns:1fr;grid-template-rows:380px 300px 300px;gap:10px}.mosaic-wide,.mosaic-tall,.mosaic-small{grid-column:1;grid-row:auto}.mosaic-card figcaption{left:20px;bottom:20px}.editorial-media{min-height:400px}.editorial-copy{padding:52px 20px}.services-top{display:block}.services-top p{margin-top:18px}.service-grid,.process-grid,.value-grid{grid-template-columns:1fr}.service{border-right:0;border-bottom:1px solid rgba(255,255,255,.3);padding:24px 0;margin:0;min-height:0}.service:last-child{border-bottom:0}.service h3{margin:34px 0 10px}.process-step{border-right:0;border-bottom:1px solid rgba(255,255,255,.15);margin:0;padding:24px 0;min-height:0}.process-step:last-child{border-bottom:0}.process-step h3{margin:36px 0 10px}.local-visual{min-height:390px}.founder-copy blockquote{font-size:clamp(2.8rem,12vw,4.4rem)}.cta-content{padding:42px 24px 44px}.cta-card-home h2{font-size:clamp(3rem,12.5vw,4.6rem)}.cta-card-home p{margin:22px 0 26px}.cta-card-home .cta-actions{display:grid;grid-template-columns:1fr;gap:12px}.cta-card-home .btn{width:100%}.cta-call{justify-content:center;border:1px solid rgba(255,255,255,.22);padding:13px 14px}.cta-media{min-height:330px}.cta-media-overlay{left:22px;bottom:22px}.footer-connect{grid-template-columns:1fr;margin-bottom:42px}.footer-action-card{min-height:108px}.footer-top{grid-template-columns:1fr;gap:32px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.page-hero{padding:64px 0 50px}.page-hero p{font-size:.98rem}.discipline h3{font-size:2rem}.about-story h2,.jobs-intro h2,.contact-aside h2{font-size:clamp(3rem,12vw,4.6rem)}.value{border-right:0;border-bottom:1px solid var(--line);margin:0;padding:24px 0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.contact-form{padding:25px 18px}.form-actions{display:block}.form-actions .btn{width:100%}.form-note{display:block;margin-top:12px;text-align:center}
}

/* ==============================
   V3 motion + editorial overhaul
   ============================== */
:root{--ease-premium:cubic-bezier(.16,1,.3,1);--ease-snap:cubic-bezier(.2,.8,.2,1)}

/* Motion is progressive enhancement: content remains visible before JS hydrates. */
html.js:not(.motion-reduced) [data-motion="rise"]{opacity:0;transform:translate3d(0,34px,0)}
html.js:not(.motion-reduced) [data-motion="scale"]{opacity:0;transform:scale(.975) translate3d(0,18px,0)}
html.js:not(.motion-reduced) [data-motion="media"]{opacity:0;clip-path:inset(0 0 0 16%)}
html.js:not(.motion-reduced) [data-motion="process"] .process-line span{transform:scaleX(0)}
html.js:not(.motion-reduced) [data-motion="process"] .process-card{opacity:0;transform:translate3d(0,24px,0)}
html.js:not(.motion-reduced) [data-motion="rise"].motion-in,
html.js:not(.motion-reduced) [data-motion="scale"].motion-in{opacity:1;transform:none;transition:opacity .72s var(--ease-premium) var(--stagger,0ms),transform .9s var(--ease-premium) var(--stagger,0ms)}
html.js:not(.motion-reduced) [data-motion="media"].motion-in{opacity:1;clip-path:inset(0);transition:opacity .55s ease var(--stagger,0ms),clip-path 1.05s var(--ease-premium) var(--stagger,0ms)}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-line span{transform:scaleX(1);transition:transform 1.05s var(--ease-premium) .08s}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card{opacity:1;transform:none;transition:opacity .65s ease calc(.18s + var(--step)*.12s),transform .8s var(--ease-premium) calc(.18s + var(--step)*.12s)}

.media-reveal{position:relative;overflow:hidden;isolation:isolate}.media-reveal:before{content:"";position:absolute;inset:0;background:var(--orange);z-index:8;transform:translateX(0);pointer-events:none}
html.js:not(.motion-reduced) .media-reveal.motion-in:before{transform:translateX(102%);transition:transform 1s var(--ease-premium) .1s}
.media-reveal .motion-photo{transform:translate3d(0,var(--py,0),0) scale(1.035);transition:transform 1.1s var(--ease-premium),filter .6s ease;will-change:transform}
@media(max-width:899px){.media-reveal .motion-photo{transform:scale(1.02)}}

/* Hero entrance, no layout-moving transforms after load. */
html.js:not(.page-loaded):not(.motion-reduced) .hero-intro-1,
html.js:not(.page-loaded):not(.motion-reduced) .hero-intro-2,
html.js:not(.page-loaded):not(.motion-reduced) .hero-intro-3,
html.js:not(.page-loaded):not(.motion-reduced) .hero-intro-4,
html.js:not(.page-loaded):not(.motion-reduced) .hero-intro-5{opacity:0;transform:translateY(24px)}
.hero-intro-1,.hero-intro-2,.hero-intro-3,.hero-intro-4,.hero-intro-5{transition:opacity .7s ease,transform .85s var(--ease-premium)}
html.page-loaded .hero-intro-1{transition-delay:.03s}html.page-loaded .hero-intro-2{transition-delay:.09s}html.page-loaded .hero-intro-3{transition-delay:.17s}html.page-loaded .hero-intro-4{transition-delay:.24s}html.page-loaded .hero-intro-5{transition-delay:.31s}

/* Header polish */
.site-header{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s var(--ease-premium)}
.site-header.is-scrolled{background:rgba(244,242,237,.965)}
.btn{overflow:hidden;position:relative}.btn .arrow{transition:transform .32s var(--ease-premium)}.btn:hover .arrow{transform:translate(3px,-3px)}
.menu-lines,.menu-lines:before,.menu-lines:after{transition:transform .35s var(--ease-premium),top .35s var(--ease-premium),opacity .25s ease}
.menu-btn.open .menu-lines{background:transparent}.menu-btn.open .menu-lines:before{top:0;transform:rotate(45deg)}.menu-btn.open .menu-lines:after{top:0;transform:rotate(-45deg)}

/* Hero */
.hero-v3 .hero-grid{min-height:720px}.hero-v3 .hero-copy{padding-top:78px;padding-bottom:74px}.hero-v3 .hero-title{font-size:clamp(4.25rem,6vw,7rem);max-width:830px;animation:none}.hero-v3 .hero-kicker,.hero-v3 .hero-sub,.hero-v3 .hero-actions{animation:none}.hero-v3 .hero-sub{max-width:670px}.hero-v3 .hero-visual{min-height:720px;animation:none;clip-path:none}.hero-v3 .hero-visual>img{position:absolute;inset:-24px 0 auto 0;width:100%;height:calc(100% + 48px);object-fit:cover;object-position:center 40%;filter:saturate(.86) contrast(1.04)}.hero-v3 .hero-visual:after{z-index:1;background:linear-gradient(90deg,var(--ink) 0%,rgba(32,35,43,.44) 20%,transparent 52%),linear-gradient(0deg,rgba(32,35,43,.7),transparent 48%)}.hero-v3 .hero-panel{z-index:4;background:rgba(244,242,237,.96);padding:22px 24px;width:min(355px,calc(100% - 42px));box-shadow:0 26px 70px rgba(10,12,16,.2)}.hero-v3 .hero-panel .micro{display:block;color:var(--orange);font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900;margin-bottom:10px}.hero-v3 .hero-panel strong{font-size:1.75rem}.hero-v3 .hero-panel p{font-size:.82rem;color:#666b73;line-height:1.52;margin:10px 0 0}.hero-proof{display:flex;gap:0;margin-top:38px;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);max-width:660px}.hero-proof span{flex:1;padding:14px 17px 14px 0;font-size:.66rem;text-transform:uppercase;letter-spacing:.11em;color:#8f949e}.hero-proof span+span{border-left:1px solid rgba(255,255,255,.14);padding-left:17px}.hero-proof b{color:#fff;font-weight:900}

/* Continuous expertise rail */
.rail-v3{overflow:hidden;background:#fff}.rail-track{display:flex;width:max-content;animation:railMove 34s linear infinite;will-change:transform}.rail-set{display:flex;align-items:center;flex-shrink:0}.rail-v3:hover .rail-track{animation-play-state:paused}.rail-v3 .rail-item{display:flex;align-items:center;gap:28px;padding:18px 0;margin:0 28px 0 0}.rail-v3 .rail-item:after{content:"/";color:var(--orange);margin-left:28px}@keyframes railMove{to{transform:translateX(-50%)}}

/* Roles */
.roles-v3{background:#f4f2ed}.roles-v3 .role-row{position:relative;isolation:isolate;overflow:hidden}.roles-v3 .role-row:before{content:"";position:absolute;z-index:-1;inset:0;background:#fff;transform:scaleY(0);transform-origin:bottom;transition:transform .42s var(--ease-premium)}.roles-v3 .role-row:hover:before{transform:scaleY(1)}.roles-v3 .role-row:hover{padding-inline:18px;background:transparent}.roles-v3 .role-title{transition:transform .35s var(--ease-premium)}.roles-v3 .role-row:hover .role-title{transform:translateX(4px)}

/* Editorial image story */
.story-grid-v3{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);grid-template-rows:310px 310px;gap:16px}.story-card{margin:0;position:relative;overflow:hidden;background:#16191f;min-height:0}.story-main{grid-row:1/3}.story-top{grid-column:2}.story-bottom{grid-column:2}.story-card>img{position:absolute;inset:-24px 0 auto 0;width:100%;height:calc(100% + 48px);object-fit:cover;filter:saturate(.82) contrast(1.05)}.story-card:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(20,22,28,.78),transparent 57%)}.story-card figcaption{position:absolute;z-index:3;left:28px;right:28px;bottom:26px;color:#fff}.story-card figcaption span{display:block;color:var(--orange);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;font-weight:900;margin-bottom:8px}.story-card figcaption strong{display:block;max-width:510px;font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:clamp(1.8rem,2.4vw,2.7rem);line-height:.94}.story-card:hover .motion-photo{transform:translate3d(0,var(--py,0),0) scale(1.075)}

/* Why ASP: rebuild the 1/2/3 sequence to eliminate the previous numbering glitch. */
.editorial-v3 .editorial-media>img{position:absolute;inset:-24px 0 auto 0;width:100%;height:calc(100% + 48px);object-fit:cover;object-position:center;filter:saturate(.78) contrast(1.06)}.principle-list{border-top:1px solid var(--line);margin-top:6px}.principle{display:grid;grid-template-columns:58px 1fr;gap:20px;align-items:start;padding:20px 0;border-bottom:1px solid var(--line);min-height:94px}.principle-index{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #c9c8c3;color:var(--ink);font-size:.67rem;font-weight:900;letter-spacing:.08em;background:#fff;line-height:1;transform:none!important}.principle strong{display:block;font-size:.88rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.3;margin:1px 0 6px}.principle p{margin:0;color:#73777e;font-size:.84rem;line-height:1.55}.principle:hover .principle-index{background:var(--orange);border-color:var(--orange);color:#fff;transition:.25s ease}

/* Services */
.services-v3{background:#fff;color:var(--ink)}.services-v3 .services-top p{color:#696d74}.service-grid-v3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-card{padding:30px 30px 32px 0;margin-right:30px;border-right:1px solid var(--line);min-height:300px;display:flex;flex-direction:column}.service-card:last-child{border-right:0;margin-right:0}.service-card .service-num{color:var(--orange)}.service-card h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:clamp(2.2rem,3vw,3rem);line-height:.95;margin:64px 0 14px}.service-card p{color:#676b72;font-size:.9rem;line-height:1.62;max-width:340px;margin:0}.service-link{margin-top:auto;padding-top:28px;font-size:.69rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#74787f}.service-card:hover .service-link{color:var(--orange)}.service-image-band{height:330px;margin-top:34px}.service-image-band>img{position:absolute;inset:-24px 0 auto 0;width:100%;height:calc(100% + 48px);object-fit:cover;object-position:center 55%;filter:saturate(.82) contrast(1.05)}.service-image-band:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(24,27,34,.87),rgba(24,27,34,.32) 48%,transparent 76%)}.service-image-copy{position:absolute;z-index:3;left:34px;bottom:32px;color:#fff;max-width:520px}.service-image-copy span{display:block;color:var(--orange);font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;font-weight:900;margin-bottom:8px}.service-image-copy strong{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:clamp(2rem,3.5vw,3.4rem);text-transform:uppercase;line-height:.92}

/* Process: stable large numbers and a real progress line */
.process-v3{background:var(--ink);color:#fff}.process-v3 .process-head{margin-bottom:58px}.process-sequence{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0}.process-line{position:absolute;top:26px;left:0;right:0;height:1px;background:rgba(255,255,255,.13);overflow:hidden}.process-line span{position:absolute;inset:0;background:linear-gradient(90deg,var(--orange),#ff9654);transform-origin:left}.process-card{position:relative;padding:0 34px 8px 0;margin-right:34px;min-height:320px;border-right:1px solid rgba(255,255,255,.12)}.process-card:last-child{border-right:0;margin-right:0}.process-index{position:relative;z-index:2;width:52px;height:52px;border:1px solid rgba(255,255,255,.24);background:var(--ink);display:grid;place-items:center}.process-index span{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;font-size:.78rem;font-weight:900;color:var(--orange);letter-spacing:.06em;line-height:1}.process-label{display:block;margin:42px 0 10px;color:var(--orange);font-size:.67rem;text-transform:uppercase;letter-spacing:.13em;font-weight:900}.process-card h3{font-family:"Arial Narrow","DejaVu Sans Condensed",sans-serif;text-transform:uppercase;font-size:2.35rem;line-height:.95;margin:0 0 15px}.process-card p{color:#aeb2bb;max-width:330px;font-size:.9rem;line-height:1.62;margin:0}

/* Local image can now be a normal remote img. */
.local-visual>img{position:absolute;inset:-22px 0 auto 0;width:100%;height:calc(100% + 44px);object-fit:cover;object-position:center;filter:saturate(.8) contrast(1.05)}

/* CTA rebuilt with cleaner image and stronger action hierarchy. */
.final-cta-v3{background:#e8e5dd}.cta-v3{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);padding:0;min-height:530px;background:var(--ink);color:#fff;overflow:hidden;box-shadow:0 34px 90px rgba(23,25,31,.16)}.cta-v3 .cta-content{padding:clamp(46px,5.8vw,76px);display:flex;justify-content:center;flex-direction:column}.cta-v3 h2{font-size:clamp(3.45rem,5.2vw,5.9rem);line-height:.89;max-width:720px}.cta-v3 h2 span{display:block;color:var(--orange)}.cta-v3 p{max-width:560px;color:#b9bdc5;font-size:.98rem;line-height:1.68;margin:24px 0 28px}.cta-v3 .cta-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.cta-v3 .cta-call{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;border:0;padding:8px 0;min-width:205px}.cta-v3 .cta-call span{grid-column:1/-1;color:#8f949e;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}.cta-v3 .cta-call strong{font-size:.87rem}.cta-v3 .cta-call b{transition:transform .25s var(--ease-premium)}.cta-v3 .cta-call:hover b{transform:translateX(5px)}.cta-v3 .cta-media{min-height:530px}.cta-v3 .cta-media>img{position:absolute;inset:-24px 0 auto 0;width:100%;height:calc(100% + 48px);object-fit:cover;object-position:center;filter:saturate(.8) contrast(1.05)}.cta-v3 .cta-media:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(32,35,43,.88),rgba(32,35,43,.06) 36%),linear-gradient(0deg,rgba(32,35,43,.62),transparent 52%)}.cta-v3 .cta-media:after{content:"";position:absolute;z-index:2;top:-14%;left:-7px;width:7px;height:132%;background:var(--orange);transform:rotate(6deg)}

/* Footer interactions */
.footer-connect{overflow:hidden}.footer-action-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-premium)}.footer-action-card:hover:after{transform:scaleX(1)}

@media(max-width:1020px){
  .hero-v3 .hero-grid{grid-template-columns:1fr}.hero-v3 .hero-copy{padding:72px 40px 56px}.hero-v3 .hero-visual{min-height:540px}.hero-v3 .hero-title{font-size:clamp(4rem,10vw,6.8rem)}
  .story-grid-v3{grid-template-columns:1fr 1fr;grid-template-rows:430px 310px}.story-main{grid-column:1/-1;grid-row:1}.story-top,.story-bottom{grid-column:auto;grid-row:2}
  .editorial-v3 .editorial-grid{grid-template-columns:1fr}.editorial-v3 .editorial-media{min-height:540px}
  .service-grid-v3{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line);margin:0;padding:28px 0;min-height:0}.service-card:last-child{border-bottom:0}.service-card h3{margin:34px 0 12px}.service-link{padding-top:18px}
  .process-sequence{grid-template-columns:1fr}.process-line{left:25px;top:0;bottom:0;right:auto;width:1px;height:auto}.process-line span{transform-origin:top}.process-card{display:grid;grid-template-columns:52px 1fr;gap:24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.12);margin:0;padding:0 0 30px;margin-bottom:30px;min-height:0}.process-card:last-child{border-bottom:0;margin-bottom:0}.process-label{margin:2px 0 9px}.process-card h3{font-size:2.2rem}.process-card-copy{padding-top:2px}
  .cta-v3{grid-template-columns:1fr}.cta-v3 .cta-media{min-height:430px}
}

@media(max-width:760px){
  .hero-v3 .hero-copy{padding:52px 20px 36px}.hero-v3 .hero-visual{min-height:430px}.hero-v3 .hero-title{font-size:clamp(3.25rem,14.8vw,5.15rem)}.hero-proof{display:grid;grid-template-columns:1fr 1fr}.hero-proof span{padding:12px 10px 12px 0}.hero-proof span+span{padding-left:10px}.hero-proof span:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.14);padding-left:0}.hero-v3 .hero-panel{right:14px;bottom:14px;width:calc(100% - 28px);padding:18px 19px}.hero-v3 .hero-panel strong{font-size:1.5rem}
  .story-grid-v3{grid-template-columns:1fr;grid-template-rows:380px 300px 300px;gap:10px}.story-main,.story-top,.story-bottom{grid-column:1;grid-row:auto}.story-card figcaption{left:20px;right:20px;bottom:20px}.story-card figcaption strong{font-size:1.75rem}
  .principle{grid-template-columns:48px 1fr;gap:14px;padding:17px 0}.principle-index{width:38px;height:38px}
  .service-image-band{height:300px}.service-image-copy{left:22px;right:22px;bottom:22px}.service-image-copy strong{font-size:2.15rem}
  .process-v3 .process-head{margin-bottom:40px}.process-card{grid-template-columns:44px 1fr;gap:18px}.process-index{width:44px;height:44px}.process-line{left:21px}.process-card h3{font-size:2rem}
  .cta-v3 .cta-content{padding:42px 24px 44px}.cta-v3 h2{font-size:clamp(3rem,12.5vw,4.6rem)}.cta-v3 .cta-actions{display:grid;grid-template-columns:1fr;width:100%}.cta-v3 .btn{width:100%}.cta-v3 .cta-call{border:1px solid rgba(255,255,255,.18);padding:13px 14px;width:100%}.cta-v3 .cta-media{min-height:340px}
  .mobile-nav a:not(.btn){opacity:0;transform:translateY(-8px);transition:opacity .3s ease calc(var(--nav-i)*.04s),transform .36s var(--ease-premium) calc(var(--nav-i)*.04s)}.mobile-nav.open a:not(.btn){opacity:1;transform:none}
}

@media(prefers-reduced-motion:reduce){.rail-track{animation:none}.media-reveal .motion-photo{transform:none!important}.media-reveal:before{display:none}}

/* anchor safety under sticky header */
html{scroll-padding-top:96px}
section[id],main[id]{scroll-margin-top:96px}
@media(max-width:760px){html{scroll-padding-top:76px}section[id],main[id]{scroll-margin-top:76px}}

/* ==============================
   V3.1 interaction QA + motion refinement
   ============================== */
/* Never cover media when JS is unavailable. The orange wipe exists only as progressive enhancement. */
.media-reveal:before{transform:translateX(102%)}
html.js:not(.motion-reduced) .media-reveal:before{transform:translateX(0)}
html.js:not(.motion-reduced) .media-reveal[data-reveal-dir="right"]:before{transform:translateX(0)}
html.js:not(.motion-reduced) .media-reveal[data-reveal-dir="right"].motion-in:before{transform:translateX(-102%);transition:transform 1s var(--ease-premium) .08s}
html.js:not(.motion-reduced) .media-reveal[data-reveal-dir="left"].motion-in:before{transform:translateX(102%);transition:transform 1s var(--ease-premium) .08s}

/* A touch of depth after a media wipe without making the page feel animated for animation's sake. */
.media-reveal.motion-in .motion-photo{filter:saturate(.86) contrast(1.045)}
.story-card,.service-image-band,.editorial-media,.local-visual,.cta-media,.hero-visual{background:linear-gradient(135deg,#242831,#15171c)}

/* Roles behave as tactile rows rather than flat list items. */
.roles-v3 .role-row:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:2px;background:var(--orange);transition:width .5s var(--ease-premium)}
.roles-v3 .role-row:hover:after,.roles-v3 .role-row:focus-visible:after{width:100%}
.roles-v3 .role-row:focus-visible{outline:2px solid var(--orange);outline-offset:4px}

/* Service cards get a subtle interactive state, but remain calm on touch screens. */
.service-card{position:relative;transition:background .35s ease,padding .4s var(--ease-premium)}
.service-card:before{content:"";position:absolute;left:0;top:-1px;width:0;height:2px;background:var(--orange);transition:width .45s var(--ease-premium)}
@media(hover:hover){.service-card:hover{background:#faf9f6;padding-left:18px}.service-card:hover:before{width:72px}}

/* Scroll-linked 01/02/03 rail. This replaces the all-at-once line animation that could glitch at breakpoint changes. */
html.js:not(.motion-reduced) [data-motion="process"] .process-line span{transform:scaleX(var(--process-progress,0));transition:none!important}
.process-index{transition:background .42s var(--ease-premium),border-color .42s ease,box-shadow .42s ease}
.process-index span{transition:color .32s ease}
.process-card.is-active .process-index{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 5px rgba(255,107,3,.08)}
.process-card.is-active .process-index span{color:#fff}
.process-card-copy{transition:opacity .45s ease,transform .55s var(--ease-premium)}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card:not(.is-active) .process-card-copy{opacity:.72}
.process-card.is-active .process-card-copy{opacity:1;transform:translateY(-2px)}

/* CTA has its own motion beat instead of reusing the generic card reveal. */
.cta-v3{transition:box-shadow .55s var(--ease-premium),transform .55s var(--ease-premium)}
@media(hover:hover){.cta-v3:hover{box-shadow:0 44px 110px rgba(23,25,31,.22);transform:translateY(-3px)}.cta-v3:hover .cta-media .motion-photo{transform:translate3d(0,var(--py,0),0) scale(1.055)}}
.cta-v3 .cta-media:after{transition:transform .8s var(--ease-premium),width .45s var(--ease-premium)}
@media(hover:hover){.cta-v3:hover .cta-media:after{width:9px;transform:rotate(3deg)}}

/* Footer cards are keyboard-visible and animate consistently with mouse hover. */
.footer-action-card{position:relative}
.footer-action-card:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.footer-action-card b{transition:transform .32s var(--ease-premium)}
.footer-action-card:hover b,.footer-action-card:focus-visible b{transform:translate(4px,-4px)}

/* Secondary pages participate in the same motion language. */
.page-hero .container{position:relative}
.page-hero .kicker,.page-hero h1,.page-hero p{will-change:transform,opacity}

@media(max-width:1020px){
  html.js:not(.motion-reduced) [data-motion="process"] .process-line span{transform:scaleY(var(--process-progress,0));transform-origin:top}
  .process-card.is-active .process-index{box-shadow:0 0 0 4px rgba(255,107,3,.08)}
}

@media(max-width:760px){
  /* Keep the CTA comfortably away from the sticky bar when scrolled to programmatically. */
  .process-v3,.final-cta-v3,.editorial-v3{scroll-margin-top:76px}
  .service-card{padding-left:0!important}
  .cta-v3{transform:none!important}
}

@media(prefers-reduced-motion:reduce){
  .process-line span{transform:none!important}
  .process-card-copy{transform:none!important;opacity:1!important}
  .media-reveal:before{display:none!important}
}
/* Specificity lock: process motion is scroll-linked after entrance, never all-at-once. */
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-line span{transform:scaleX(var(--process-progress,0));transition:none!important}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card{opacity:1;transform:none;transition:none}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card .process-card-copy{opacity:.88;transform:none}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card.is-active .process-card-copy{opacity:1;transform:translateY(-2px)}
@media(max-width:1020px){html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-line span{transform:scaleY(var(--process-progress,0));transform-origin:top}}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card:not(.is-active) .process-card-copy{opacity:.86;transform:none}

/* ==============================
   V4 motion system — stable / premium
   ============================== */
/* Override legacy experimental process motion. The V4 sequence is entrance-driven,
   breakpoint-safe, and deliberately does not bind card states to scroll position. */
html.js:not(.motion-reduced) [data-motion="rise"]{
  opacity:0;
  transform:translate3d(0,28px,0);
}
html.js:not(.motion-reduced) [data-motion="scale"]{
  opacity:0;
  transform:translate3d(0,18px,0) scale(.985);
}
html.js:not(.motion-reduced) [data-motion="rise"].motion-in,
html.js:not(.motion-reduced) [data-motion="scale"].motion-in{
  opacity:1;
  transform:none;
  transition-property:opacity,transform;
  transition-duration:.62s,.88s;
  transition-timing-function:ease,var(--ease-premium);
  transition-delay:var(--stagger,0ms);
}

/* Media reveal: one mask pass + one image settle. Parallax itself has no transition. */
html.js:not(.motion-reduced) [data-motion="media"]{
  opacity:1;
  clip-path:none;
}
.media-reveal:before{
  transform:translateX(102%);
  transition:none;
}
html.js:not(.motion-reduced) .media-reveal:before{transform:translateX(0)}
html.js:not(.motion-reduced) .media-reveal[data-reveal-dir="left"].motion-in:before{
  transform:translateX(102%);
  transition:transform .92s var(--ease-premium) .06s;
}
html.js:not(.motion-reduced) .media-reveal[data-reveal-dir="right"].motion-in:before{
  transform:translateX(-102%);
  transition:transform .92s var(--ease-premium) .06s;
}
.media-reveal .motion-photo{
  transform:translate3d(0,var(--py,0),0) scale(1.045);
  transition:filter .55s ease;
  will-change:transform;
  backface-visibility:hidden;
}
html.js:not(.motion-reduced) .media-reveal:not(.motion-in) .motion-photo{filter:saturate(.68) contrast(1.04)}
html.js:not(.motion-reduced) .media-reveal.motion-in .motion-photo{filter:saturate(.86) contrast(1.045)}

/* Process 01 / 02 / 03 — no scroll-state race conditions, no breakpoint transform clash. */
html.js:not(.motion-reduced) [data-motion="process"] .process-line span{
  transform:scaleX(0) !important;
  transform-origin:left center !important;
  transition:none !important;
}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-line span{
  transform:scaleX(1) !important;
  transition:transform 1.05s var(--ease-premium) .12s !important;
}
html.js:not(.motion-reduced) [data-motion="process"] .process-card{
  opacity:0;
  transform:translate3d(0,22px,0);
}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-card{
  opacity:1;
  transform:none;
  transition:opacity .55s ease calc(.16s + var(--step)*.13s),
             transform .78s var(--ease-premium) calc(.16s + var(--step)*.13s) !important;
}
html.js:not(.motion-reduced) [data-motion="process"] .process-card-copy{
  opacity:1 !important;
  transform:none !important;
}
html.js:not(.motion-reduced) [data-motion="process"] .process-index{
  background:var(--ink);
  border-color:rgba(255,255,255,.24);
  box-shadow:none;
}
html.js:not(.motion-reduced) [data-motion="process"] .process-index span{color:var(--orange)}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-index{
  animation:processNodeIn .5s var(--ease-premium) calc(.38s + var(--step)*.18s) both;
}
html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-index span{
  animation:processNumberIn .4s ease calc(.38s + var(--step)*.18s) both;
}
@keyframes processNodeIn{
  from{background:var(--ink);border-color:rgba(255,255,255,.24);box-shadow:0 0 0 0 rgba(255,107,3,0)}
  to{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 5px rgba(255,107,3,.08)}
}
@keyframes processNumberIn{from{color:var(--orange)}to{color:#fff}}

@media(max-width:1020px){
  html.js:not(.motion-reduced) [data-motion="process"] .process-line span{
    transform:scaleY(0) !important;
    transform-origin:center top !important;
  }
  html.js:not(.motion-reduced) [data-motion="process"].motion-in .process-line span{
    transform:scaleY(1) !important;
  }
}

/* Hero opening beat. Kept short so the UI feels immediate, not theatrical. */
html.js:not(.motion-reduced):not(.page-loaded) .hero-intro-1,
html.js:not(.motion-reduced):not(.page-loaded) .hero-intro-2,
html.js:not(.motion-reduced):not(.page-loaded) .hero-intro-3,
html.js:not(.motion-reduced):not(.page-loaded) .hero-intro-4,
html.js:not(.motion-reduced):not(.page-loaded) .hero-intro-5{
  opacity:0;
  transform:translate3d(0,22px,0);
}
html.js:not(.motion-reduced).page-loaded .hero-intro-1,
html.js:not(.motion-reduced).page-loaded .hero-intro-2,
html.js:not(.motion-reduced).page-loaded .hero-intro-3,
html.js:not(.motion-reduced).page-loaded .hero-intro-4,
html.js:not(.motion-reduced).page-loaded .hero-intro-5{
  opacity:1;
  transform:none;
}
.hero-intro-1{transition-delay:.02s}.hero-intro-2{transition-delay:.08s}.hero-intro-3{transition-delay:.15s}.hero-intro-4{transition-delay:.21s}.hero-intro-5{transition-delay:.27s}

/* Interaction feedback */
@media(hover:hover){
  .btn:hover{transform:translateY(-2px)}
  .role-row:hover .role-arrow{transform:translate(4px,-4px)}
  .footer-action-card:hover b{transform:translate(4px,-4px)}
}

@media(max-width:899px){
  .media-reveal .motion-photo{transform:scale(1.02)}
}

@media(prefers-reduced-motion:reduce){
  [data-motion],.process-card{opacity:1!important;transform:none!important}
  .process-line span{transform:none!important}
  .process-index{animation:none!important}
  .media-reveal:before{display:none!important}
  .media-reveal .motion-photo{transform:none!important}
  .rail-track{animation:none!important}
}

/* V4.1 hover depth uses the independent scale property so scroll parallax never fights hover transforms. */
.media-reveal .motion-photo{scale:1;transition:filter .55s ease,scale .62s var(--ease-premium)}
@media(hover:hover){
  .story-card:hover .motion-photo,
  .cta-v3:hover .cta-media .motion-photo{transform:translate3d(0,var(--py,0),0) scale(1.045);scale:1.025}
}

/* Static deployment helpers */
.nav-link[aria-current="page"]{color:var(--orange)}
.nav-link[aria-current="page"]:after{right:0}
.form-status{margin:18px 0 0;padding:13px 15px;font-size:.88rem;font-weight:700;border-left:3px solid var(--orange);background:#fff}
.form-status.success{border-color:#3c8a58}.form-status.error{border-color:#b13b32;color:#7a211b}
.error-page{min-height:60vh;display:grid;place-items:center;text-align:center;padding:90px 20px}.error-page h1{font-size:clamp(5rem,16vw,12rem);color:var(--orange);margin:0}.error-page p{max-width:560px;margin:18px auto 28px;color:var(--muted)}
