@font-face{font-family:Trendy;src:url('/media/dc5a9ece2baf05061960665f.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#090909;--paper:#f2f2ee;--white:#fff;--line:rgba(9,9,9,.18);--muted:#6d6d68;--pad:clamp(20px,3vw,54px);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Trendy,Arial,Helvetica,sans-serif;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img,video{display:block;width:100%;height:100%;object-fit:cover}button{font:inherit}.skip-link{position:fixed;left:12px;top:-60px;z-index:200;background:#fff;color:#000;padding:12px 18px}.skip-link:focus{top:12px}.site-header{height:86px;position:absolute;left:0;top:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);mix-blend-mode:difference;color:#fff}.wordmark{font-size:clamp(31px,3vw,48px);font-weight:800;letter-spacing:-.09em;line-height:1}.wordmark span{font-family:Arial;margin-left:.02em}.desktop-nav{display:flex;gap:clamp(24px,4vw,72px);margin-left:auto;margin-right:5vw}.desktop-nav a,.menu-toggle{font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.desktop-nav a{position:relative;padding:8px 0}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:1px;background:currentColor;transition:right .35s var(--ease)}.desktop-nav a:hover:after{right:0}.menu-toggle{background:none;border:0;color:inherit;display:flex;align-items:center;gap:13px;cursor:pointer}.menu-toggle i,.menu-toggle i:after{display:block;width:24px;height:1px;background:currentColor;transition:.35s var(--ease)}.menu-toggle i{position:relative}.menu-toggle i:after{content:"";position:absolute;top:6px}.menu-open .menu-toggle i{transform:rotate(45deg)}.menu-open .menu-toggle i:after{top:0;transform:rotate(90deg)}.mobile-menu{position:fixed;inset:0;z-index:70;background:#0a0a0a;color:#fff;padding:130px var(--pad) 38px;display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .65s var(--ease);pointer-events:none}.mobile-menu.open{clip-path:inset(0);pointer-events:auto}.mobile-menu nav{display:flex;flex-direction:column}.mobile-menu nav a{font-size:clamp(48px,11vw,110px);font-weight:700;letter-spacing:-.07em;line-height:.95;border-bottom:1px solid #333;padding:12px 0}.mobile-menu nav span{font-size:11px;letter-spacing:.08em;margin-right:20px}.mobile-menu p{font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:.08em}.cursor-dot{position:fixed;width:8px;height:8px;background:#fff;border-radius:50%;pointer-events:none;z-index:500;mix-blend-mode:difference;transform:translate(-50%,-50%);opacity:0}.hero{min-height:100svh;display:grid;grid-template-columns:42% 42% 16%;grid-template-rows:minmax(0,1fr) 56px;background:var(--paper);position:relative}.hero-copy{padding:clamp(130px,15vh,174px) var(--pad) 34px;display:flex;flex-direction:column;min-width:0}.eyebrow{display:flex;justify-content:space-between;gap:10px;font-size:9px;text-transform:uppercase;letter-spacing:.12em;border-top:1px solid var(--ink);padding-top:8px}.hero h1{font-size:clamp(52px,6.2vw,114px);line-height:.77;letter-spacing:-.075em;text-transform:uppercase;margin:auto 0 4vh;font-weight:850}.hero h1 em,.intro h2 em,.work-heading h2 em,.cap-intro h2 em,.contact-link em{font-family:Georgia,serif;font-weight:400;text-transform:none;letter-spacing:-.06em}.hero-actions{display:grid;grid-template-columns:1fr minmax(170px,.65fr);align-items:end;gap:28px}.hero-actions p{font-size:clamp(13px,1vw,16px);line-height:1.45;max-width:290px;margin:0}.button{display:flex;align-items:center;justify-content:space-between;padding:17px 18px;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:700}.button b{font-size:20px;font-weight:400}.button-dark{background:var(--ink);color:#fff}.button-dark:hover b{transform:rotate(45deg);transition:.3s}.hero-tags{display:flex;justify-content:space-between;gap:8px;margin-top:4vh;padding-top:10px;border-top:1px solid var(--line);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.15em}.hero-visual{position:relative;overflow:hidden}.hero-visual img{object-position:61% center;scale:1.01}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(242,242,238,.22),transparent 20%)}.arabic-mark{position:absolute;z-index:2;left:7%;top:18%;font-family:Tahoma,Arial,sans-serif;font-size:clamp(58px,7vw,126px);font-weight:800;line-height:1;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.12)}.vertical-note{position:absolute;z-index:2;right:10px;top:23%;margin:0;color:#fff;font-size:8px;letter-spacing:.19em;text-transform:uppercase;writing-mode:vertical-rl}.hero-coordinate{position:absolute;left:6%;bottom:4%;z-index:2;display:flex;gap:18px;color:#fff;font-size:8px;letter-spacing:.16em}.project-rail{display:grid;grid-template-rows:repeat(4,1fr);background:#111;min-width:0}.rail-card{position:relative;overflow:hidden;color:#fff;border-bottom:1px solid rgba(255,255,255,.3)}.rail-card:last-child{border:0}.rail-card img{filter:saturate(.9);transition:transform .8s var(--ease),filter .4s}.rail-card:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.02) 55%,rgba(0,0,0,.35))}.rail-card:hover img{transform:scale(1.06);filter:saturate(1.1)}.rail-index{position:absolute;z-index:2;left:10px;top:9px;font-size:9px;letter-spacing:.14em}.rail-label{position:absolute;z-index:2;left:10px;right:10px;bottom:10px;display:flex;align-items:end;justify-content:space-between;gap:5px;text-transform:uppercase}.rail-label b{font-size:12px}.rail-label small{font-size:7px;letter-spacing:.1em}.sector-ticker{grid-column:1/-1;background:#090909;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);overflow:hidden}.sector-ticker>div{display:flex;align-items:center;gap:clamp(12px,1.8vw,32px);white-space:nowrap;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.sector-ticker i{width:3px;height:3px;background:#fff;transform:rotate(45deg)}.sector-ticker p{font-family:Georgia,serif;font-style:italic;font-size:12px;margin:0}.section-pad{padding:clamp(80px,11vw,180px) var(--pad)}.section-label{display:grid;grid-template-columns:42px 1fr;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.15em;border-top:1px solid currentColor;padding-top:10px}.section-label span{font-variant-numeric:tabular-nums}.section-label p{margin:0}.intro{background:var(--paper)}.intro-statement{display:grid;grid-template-columns:25% 75%;margin:10vh 0}.kicker{text-transform:uppercase;font-size:10px;letter-spacing:.13em;margin:12px 0 0}.intro h2,.work-heading h2,.cap-intro h2,.process-head h2{font-size:clamp(48px,7.2vw,126px);line-height:.86;letter-spacing:-.075em;margin:0;font-weight:750}.intro-grid{display:grid;grid-template-columns:22% 22% 1fr;gap:3vw;margin-left:25%}.intro-stat{border-top:1px solid var(--line);padding-top:13px}.intro-stat strong{font-size:clamp(48px,5vw,84px);letter-spacing:-.07em;display:block}.intro-stat sup{font-size:.4em}.intro-stat span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;line-height:1.45}.intro-body{font-family:Georgia,serif;font-size:clamp(19px,1.8vw,29px);line-height:1.28;margin:0;padding-top:13px;border-top:1px solid var(--ink)}.showreel{height:min(86vw,880px);min-height:600px;max-height:90svh;position:relative;overflow:hidden;background:#111;color:#fff}.showreel video{position:absolute;inset:0}.showreel-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.05) 55%,rgba(0,0,0,.25))}.showreel-copy{position:absolute;left:var(--pad);bottom:10%;z-index:2}.showreel-copy>span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.15em;margin-bottom:28px}.showreel-copy h2{font-size:clamp(78px,11vw,190px);line-height:.75;letter-spacing:-.09em;text-transform:uppercase;margin:0}.round-button{position:absolute;left:108%;top:54%;border:1px solid rgba(255,255,255,.8);width:84px;height:84px;border-radius:50%;background:rgba(0,0,0,.12);color:#fff;cursor:pointer;backdrop-filter:blur(8px);transition:.3s}.round-button:hover{background:#fff;color:#000}.showreel-meta{position:absolute;right:var(--pad);bottom:8%;z-index:2;text-align:right;font-size:9px;line-height:1.6;letter-spacing:.12em;text-transform:uppercase}.work-heading{display:grid;grid-template-columns:1fr 28%;gap:5vw;margin:9vh 0 13vh}.work-heading p{align-self:end;font-family:Georgia,serif;font-size:clamp(17px,1.6vw,25px);line-height:1.35;margin:0}.work-card{scroll-margin-top:30px}.work-card a{display:block}.work-media{position:relative;overflow:hidden;aspect-ratio:16/8.5;background:#ddd}.work-media video{transition:transform 1s var(--ease)}.work-card:hover video{transform:scale(1.025)}.work-number{position:absolute;top:15px;left:16px;color:#fff;font-size:10px;letter-spacing:.14em;text-shadow:0 1px 4px #000}.view-chip{position:absolute;right:16px;top:14px;background:#fff;border-radius:100px;padding:10px 14px;text-transform:uppercase;font-size:8px;letter-spacing:.12em;transform:translateY(-60px);transition:.45s var(--ease)}.work-card:hover .view-chip{transform:translateY(0)}.work-caption{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;padding:17px 0 8vh;border-top:1px solid var(--ink)}.work-caption h3{margin:0;font-size:clamp(24px,3vw,48px);letter-spacing:-.05em}.work-caption p,.work-caption span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin:5px 0}.work-caption span{text-align:right}.work-pair{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.work-media.portrait{aspect-ratio:4/5}.work-media.square{aspect-ratio:1}.work-card-offset{margin-top:20vh}.work-media.landscape-short{aspect-ratio:16/7}.capabilities{background:#090909;color:#fff}.section-label-light{border-color:rgba(255,255,255,.5)}.cap-intro{display:grid;grid-template-columns:32% 68%;margin:10vh 0 13vh}.cap-intro>p{margin:10px 0 0;text-transform:uppercase;font-size:10px;line-height:1.5;letter-spacing:.1em}.cap-list{border-top:1px solid #444}.cap-row{display:grid;grid-template-columns:8% 36% 1fr 40px;align-items:center;gap:2vw;min-height:140px;border-bottom:1px solid #333;transition:color .3s,background .3s,padding .3s}.cap-row:hover{background:#fff;color:#000;padding:0 20px}.cap-row>span{font-size:9px;letter-spacing:.12em}.cap-row h3{font-size:clamp(24px,2.5vw,44px);font-weight:600;letter-spacing:-.05em;margin:0}.cap-row p{font-family:Georgia,serif;font-size:clamp(14px,1.2vw,18px);line-height:1.4;max-width:470px}.cap-row b{font-size:24px;font-weight:400}.process-head{display:grid;grid-template-columns:1fr 33%;gap:5vw;margin:10vh 0}.process-head p{align-self:end;font-family:Georgia,serif;font-size:clamp(17px,1.6vw,24px);line-height:1.4}.process-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.process-steps li{aspect-ratio:1.65;padding:18px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column}.process-steps span{font-size:9px;letter-spacing:.13em}.process-steps h3{font-size:clamp(28px,3vw,50px);letter-spacing:-.06em;margin:auto 0 0}.process-steps p{font-family:Georgia,serif;font-size:14px;margin:8px 0 0}.clients{background:#d9ff45;overflow:hidden}.client-marquee{margin:9vh calc(var(--pad) * -1);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);overflow:hidden}.client-marquee>div{display:flex;align-items:center;gap:4vw;width:max-content;padding:22px var(--pad);animation:marquee 18s linear infinite}.client-marquee span{font-size:clamp(42px,7vw,112px);font-weight:700;letter-spacing:-.07em}.client-marquee i{font-style:normal;font-size:28px}.clients blockquote{font-family:Georgia,serif;font-size:clamp(30px,5vw,78px);line-height:1.05;letter-spacing:-.04em;margin:12vh 0 0}.contact{background:#090909;color:#fff;padding:clamp(80px,10vw,150px) var(--pad) 30px}.contact-top{display:grid;grid-template-columns:1fr 1fr;gap:4vw}.contact-note{margin:0;font-family:Georgia,serif;font-size:16px;line-height:1.5;justify-self:end}.contact-link{position:relative;display:block;margin:12vh 0 15vh;font-size:clamp(54px,10.5vw,184px);font-weight:750;line-height:.78;letter-spacing:-.085em}.contact-link em{color:#aaa}.contact-link>span{position:absolute;right:1%;top:22%;font-size:.35em;font-weight:400;transition:transform .5s var(--ease)}.contact-link:hover>span{transform:translate(16px,-16px)}footer{border-top:1px solid #444;padding-top:25px;display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:start;gap:25px}.wordmark-footer{font-size:44px}footer p{font-size:9px;line-height:1.7;letter-spacing:.1em;text-transform:uppercase;margin:0}.copyright{align-self:end}.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in-view{opacity:1;transform:none}@keyframes marquee{to{transform:translateX(-45%)}}
@media(max-width:1050px){.hero{grid-template-columns:48% 52%;grid-template-rows:minmax(760px,100svh) 210px 54px}.project-rail{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}.sector-ticker{grid-row:3}.intro-grid{margin-left:0}.intro-statement{grid-template-columns:22% 78%}.cap-intro{grid-template-columns:25% 75%}}
@media(max-width:740px){:root{--pad:18px}.site-header{height:72px}.desktop-nav{display:none}.hero{display:block;min-height:auto;padding-bottom:50px}.hero-copy{min-height:96svh;padding-top:118px}.eyebrow span:last-child{display:none}.hero h1{font-size:clamp(58px,18vw,96px);margin:auto 0 7vh;line-height:.8}.hero-actions{grid-template-columns:1fr}.hero-actions p{display:none}.hero-visual{height:78svh}.hero-visual img{object-position:58% center}.arabic-mark{left:18px;top:13%;font-size:90px}.project-rail{height:195px;display:flex;overflow-x:auto}.rail-card{min-width:48vw;border-right:1px solid rgba(255,255,255,.3)}.sector-ticker{position:absolute;bottom:0;left:0;right:0;height:50px}.sector-ticker>div{animation:marquee 10s linear infinite}.sector-ticker p{display:none}.section-pad{padding-top:92px;padding-bottom:92px}.section-label{grid-template-columns:35px 1fr}.intro-statement{display:block;margin:65px 0}.kicker{margin-bottom:28px}.intro h2,.work-heading h2,.cap-intro h2,.process-head h2{font-size:clamp(48px,14vw,72px)}.intro-grid{grid-template-columns:1fr 1fr}.intro-body{grid-column:1/-1;margin-top:50px}.showreel{height:82svh;min-height:580px}.showreel-copy h2{font-size:21vw}.round-button{left:auto;right:-75px;top:57%;width:68px;height:68px}.showreel-meta{display:none}.work-heading,.process-head{display:block;margin:65px 0 75px}.work-heading p,.process-head p{margin:35px 0 0}.work-pair{display:block}.work-card-offset{margin-top:0}.work-media,.work-media.landscape-short{aspect-ratio:4/5}.work-caption{grid-template-columns:1fr auto;padding-bottom:65px}.work-caption p{display:none}.cap-intro{display:block;margin:65px 0 75px}.cap-intro>p{margin-bottom:30px}.cap-row{grid-template-columns:35px 1fr 25px;min-height:105px}.cap-row p{display:none}.cap-row h3{font-size:27px}.process-steps{grid-template-columns:1fr 1fr}.process-steps li{aspect-ratio:1.2}.clients blockquote br{display:none}.contact-top{grid-template-columns:1fr}.contact-note{justify-self:start;margin-top:45px}.contact-link{margin:90px 0 100px}.contact-link>span{position:static;display:block;margin-top:35px}footer{grid-template-columns:1fr 1fr}.wordmark-footer{grid-column:1/-1;margin-bottom:25px}.copyright{text-align:right}.cursor-dot{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.client-marquee>div{animation:none}.rail-card img,.work-media video{transition:none}}
.hero-copy,.hero-visual,.project-rail,.rail-card{min-height:0}.project-rail{grid-template-rows:repeat(4,minmax(0,1fr))}.rail-card img{position:absolute;inset:0}
@media(max-width:740px){.site-header{width:100vw;max-width:100vw}.menu-toggle{position:fixed;right:18px;top:25px;z-index:100}.hero-copy{width:100vw;max-width:100vw;overflow:hidden}.hero h1{font-size:14.7vw;max-width:100%}}

/* Approved homepage master */
.desktop-master{position:relative;width:100%;aspect-ratio:16/9;background:#f5f5f3;overflow:hidden}.desktop-master>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.master-nav a,.master-work-link,.master-projects button{position:absolute;z-index:3;display:block;background:transparent;border:0;color:transparent;cursor:pointer}.master-nav a:focus-visible,.master-work-link:focus-visible,.master-projects button:focus-visible{outline:3px solid #fff;outline-offset:-5px}.master-nav span,.master-work-link span,.master-projects span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.master-nav-studio{left:22.2%;top:2.2%;width:6.4%;height:5.7%}.master-nav-capabilities{left:29.1%;top:2.2%;width:8.8%;height:5.7%}.master-nav-contact{left:38.6%;top:2.2%;width:6.5%;height:5.7%}.master-work-link{left:2.7%;top:73.8%;width:16.9%;height:5.8%}.master-projects{position:absolute;z-index:3;right:0;top:0;bottom:8.65%;width:22.55%;display:grid;grid-template-rows:25.25% 25.75% 25.25% 23.75%}.master-projects button{position:relative;width:100%;height:100%;padding:0}.master-projects button:after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:border-color .25s,background .25s}.master-projects button:hover:after{border-color:rgba(255,255,255,.92);background:rgba(255,255,255,.04)}.mobile-hero,.site-header{display:none}.cursor-dot{display:none}

/* Interactive project detail */
.project-overlay{position:fixed;inset:0;z-index:300;visibility:hidden;pointer-events:none}.project-overlay.open{visibility:visible;pointer-events:auto}.project-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.58);opacity:0;cursor:pointer;transition:opacity .55s var(--ease)}.project-overlay.open .project-backdrop{opacity:1}.project-drawer{position:absolute;right:0;top:0;width:min(760px,62vw);height:100%;overflow-y:auto;background:var(--paper);color:var(--ink);transform:translateX(100%);transition:transform .7s var(--ease);box-shadow:-20px 0 70px rgba(0,0,0,.22)}.project-overlay.open .project-drawer{transform:translateX(0)}.drawer-header{position:absolute;left:0;right:0;top:0;height:82px;padding:0 28px;z-index:2;display:flex;align-items:center;justify-content:space-between;color:#fff;mix-blend-mode:difference}.wordmark-drawer{font-size:36px}.drawer-close{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:inherit;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.12em;cursor:pointer}.drawer-close i,.drawer-close i:after{content:"";display:block;width:24px;height:1px;background:currentColor}.drawer-close i{transform:rotate(45deg)}.drawer-close i:after{transform:rotate(90deg)}.drawer-media{height:48vh;min-height:360px;position:relative;background:#111;overflow:hidden}.drawer-media video{width:100%;height:100%;object-fit:cover}.drawer-media>span{position:absolute;left:28px;bottom:20px;color:#fff;font-size:clamp(50px,7vw,100px);font-weight:800;letter-spacing:-.08em}.drawer-content{padding:42px 38px 55px}.drawer-category{border-top:1px solid var(--ink);padding-top:10px;margin:0;text-transform:uppercase;font-size:9px;letter-spacing:.14em}.drawer-content h2{max-width:650px;margin:58px 0 26px;font-size:clamp(48px,6vw,88px);line-height:.82;letter-spacing:-.075em;text-transform:uppercase}.drawer-description{max-width:580px;margin:0;font-size:clamp(17px,1.7vw,23px);line-height:1.35}.drawer-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:65px 0 34px;border-top:1px solid var(--ink);padding-top:12px}.drawer-meta p{margin:0}.drawer-meta span,.drawer-meta b{display:block}.drawer-meta span{text-transform:uppercase;font-size:8px;letter-spacing:.14em;margin-bottom:10px}.drawer-meta b{font-size:13px;font-weight:600}.drawer-cta{background:#090909;color:#fff}.drawer-open{overflow:hidden}

/* Extend the approved visual language below the fold */
.hero h1 em,.intro h2 em,.work-heading h2 em,.cap-intro h2 em,.contact-link em{font-family:Trendy,Arial,Helvetica,sans-serif;font-style:normal;font-weight:inherit;letter-spacing:inherit}.intro h2,.work-heading h2,.cap-intro h2,.process-head h2,.contact-link{text-transform:uppercase}.clients{background:var(--paper)}.clients blockquote{font-family:Trendy,Arial,Helvetica,sans-serif;font-style:normal;font-weight:750;text-transform:uppercase}.client-marquee i{font-style:normal}
.intro-body,.work-heading p,.cap-row p,.process-head p,.process-steps p,.contact-note,.sector-ticker p{font-family:Trendy,Arial,Helvetica,sans-serif;font-style:normal}

@media(max-width:740px){.desktop-master{display:none}.mobile-hero{display:block}.site-header{display:flex}.project-drawer{width:100vw}.drawer-media{height:42vh;min-height:290px}.drawer-content{padding:32px 20px 45px}.drawer-content h2{margin-top:45px}.drawer-meta{grid-template-columns:1fr;margin-top:48px}.project-overlay.open .project-drawer{transform:none}}
.site-header[hidden]{display:none!important}@media(max-width:740px){.site-header{mix-blend-mode:normal;color:#090909}}

/* Cross-device polish and safe media presentation */
html{overflow-x:clip;-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,p{overflow-wrap:break-word}.button,.round-button,.menu-toggle,.drawer-close,.master-projects button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.button,.round-button,.cap-row,.rail-card,.work-media video,.project-drawer,.project-backdrop{transition-timing-function:cubic-bezier(.22,1,.36,1)}.reveal{opacity:1;transform:none}.intro-statement{margin:clamp(64px,8vw,120px) 0}.work-heading{margin:clamp(64px,8vw,120px) 0 clamp(80px,10vw,150px)}.work-card-offset{margin-top:clamp(60px,8vw,110px)}.cap-intro{margin:clamp(64px,8vw,120px) 0 clamp(80px,10vw,150px)}.process-head{margin:clamp(64px,8vw,120px) 0}.client-marquee{margin-top:clamp(64px,8vw,120px);margin-bottom:clamp(64px,8vw,120px)}.clients blockquote{margin-top:clamp(70px,9vw,140px)}.contact-link{margin-top:clamp(80px,9vw,140px);margin-bottom:clamp(90px,11vw,170px)}
.media-fit{isolation:isolate;background:#111}.media-fit:before{content:"";position:absolute;z-index:0;inset:-28px;background-image:var(--poster);background-size:cover;background-position:center;filter:blur(28px) saturate(.9);opacity:.58;transform:scale(1.08)}.media-fit:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.2),transparent 24%,transparent 76%,rgba(0,0,0,.2));pointer-events:none}.media-fit video{position:relative;z-index:2;object-fit:contain;filter:drop-shadow(0 16px 40px rgba(0,0,0,.24))}.media-fit .work-number,.media-fit .view-chip{z-index:3}.work-caption h3,.work-heading h2,.intro h2,.cap-intro h2,.process-head h2{text-wrap:balance}.work-caption{align-items:start}.work-caption p,.work-caption span{line-height:1.45}.project-drawer{will-change:transform;overscroll-behavior:contain}.project-backdrop{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.drawer-header{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.drawer-content h2{text-wrap:balance}.drawer-description{max-width:52ch}.button:active,.round-button:active,.menu-toggle:active,.drawer-close:active{transform:scale(.97)}
.work-caption{padding:17px 0 clamp(56px,7vw,105px)}.drawer-media{isolation:isolate}.drawer-media:before{content:"";position:absolute;z-index:0;inset:-24px;background-image:var(--poster);background-size:cover;background-position:center;filter:blur(26px) saturate(.92);opacity:.62;transform:scale(1.08)}.drawer-media:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 28%,transparent 72%,rgba(0,0,0,.18));pointer-events:none}.drawer-media video{position:relative;z-index:2;object-fit:contain;filter:drop-shadow(0 14px 34px rgba(0,0,0,.24))}.drawer-media>span{z-index:3}
.drawer-media.is-dual{height:auto;min-height:360px;aspect-ratio:16/9}.drawer-dual{position:absolute;z-index:2;inset:0;display:none;overflow:hidden;background:#110b08}.drawer-media.is-dual .drawer-dual{display:block}.drawer-media.is-dual video{display:none}.drawer-media.is-dual:before{background:#110b08;filter:none;opacity:1;inset:0;transform:none}.drawer-media.is-dual:after{z-index:2;background:linear-gradient(90deg,rgba(8,5,4,.46),transparent 24%,transparent 78%,rgba(8,5,4,.12));box-shadow:inset 0 -80px 90px -85px rgba(0,0,0,.9)}.fnb-campaign-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.96) contrast(1.02);transform:scale(1.002)}.fnb-businesses{position:absolute;z-index:4;inset:0;display:grid;grid-template-columns:67% 33%;pointer-events:none}.fnb-business{position:relative;min-width:0}.fnb-business-gota{border-left:1px solid rgba(255,255,255,.42);box-shadow:-1px 0 rgba(0,0,0,.2)}.onestop-logo{position:absolute;left:8%;top:31%;width:78px;height:auto;object-fit:contain;filter:drop-shadow(0 5px 18px rgba(0,0,0,.42))}.gota-logo{position:absolute;left:50%;top:47%;width:84px;height:auto;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px rgba(0,0,0,.55));mix-blend-mode:screen}
@media(max-width:740px){.intro-statement,.work-heading,.cap-intro,.process-head{margin-top:58px;margin-bottom:68px}.work-card-offset{margin-top:0}.media-fit:before{inset:-18px;filter:blur(20px)}.work-media,.work-media.landscape-short{aspect-ratio:4/5}.work-caption{padding-bottom:58px}.project-drawer{border-radius:22px 22px 0 0;top:10px;height:calc(100% - 10px);overflow:hidden auto}.drawer-media{border-radius:22px 22px 0 0}.drawer-header{height:70px}.drawer-content h2{font-size:clamp(44px,13vw,66px)}.cap-row:hover{padding:0;background:transparent;color:inherit}}
@media(max-width:740px){.drawer-media.is-dual{height:auto;min-height:220px;aspect-ratio:16/9}.drawer-media.is-dual>span{top:auto;left:14px;bottom:15px;font-size:40px}.fnb-campaign-art{object-position:center}.onestop-logo{left:7%;top:32%;width:48px}.gota-logo{top:47%;width:55px}}

/* Scroll-driven selected-work carousel */
body{overflow-x:clip}
.work-carousel{position:relative;height:340svh;background:var(--paper)}
.work-carousel-sticky{position:sticky;top:0;height:100svh;min-height:680px;padding:clamp(24px,2.6vw,48px) var(--pad) clamp(24px,2.6vw,48px);overflow:hidden;display:grid;grid-template-columns:minmax(260px,31%) 1fr;gap:clamp(22px,4vw,74px)}
.work-carousel-intro{position:relative;z-index:70;display:flex;flex-direction:column;min-width:0}
.work-carousel .section-label{flex:none}
.work-carousel .work-heading{display:block;margin:auto 0 6vh}
.work-carousel .work-heading h2{font-size:clamp(48px,5.6vw,100px);line-height:.82}
.work-carousel .work-heading p{max-width:30ch;margin:34px 0 0;font-family:Trendy,Arial,Helvetica,sans-serif;font-size:11px;line-height:1.55;text-transform:uppercase;letter-spacing:.09em}
.work-carousel-stage{position:relative;min-width:0;overflow:hidden;perspective:1450px;perspective-origin:50% 47%;transform-style:preserve-3d;contain:layout paint}
.work-carousel-stage{touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.work-carousel-stage.is-dragging{cursor:grabbing}.work-carousel-stage:focus-visible{outline:1px solid currentColor;outline-offset:-5px}
.work-carousel-track{position:absolute;inset:0;transform-style:preserve-3d}
.work-carousel-card{position:absolute;left:50%;top:47%;width:clamp(230px,24vw,340px);max-width:72%;margin:0;transform-style:preserve-3d;transform-origin:center center;backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;transition:none;background:var(--paper);pointer-events:none}
.work-carousel-card .work-media{aspect-ratio:9/16;background:#080808}
.work-carousel-card .media-fit:before,.work-carousel-card .media-fit:after{display:none}
.work-carousel-card .media-fit video{object-fit:cover;filter:none;pointer-events:none;-webkit-user-drag:none}
.work-carousel-card .work-caption{grid-template-columns:1fr auto;align-items:start;gap:6px 16px;padding:13px 2px 15px;border-top:1px solid var(--ink);background:var(--paper)}
.work-carousel-card .work-caption h3{font-size:clamp(22px,2.3vw,34px)}
.work-carousel-card .work-caption p{grid-column:1/-1;margin-top:0}
.work-carousel-card .work-caption p,.work-carousel-card .work-caption span{font-size:8px}
.work-carousel-card .view-chip{display:none}
.work-carousel-count{position:absolute;z-index:70;right:0;bottom:-2px;margin:0;font-size:9px;letter-spacing:.13em;font-variant-numeric:tabular-nums}

@media(max-width:1000px) and (min-width:741px){.work-carousel-sticky{grid-template-columns:28% 1fr}.work-carousel .work-heading h2{font-size:clamp(45px,6vw,72px)}.work-carousel-card{width:clamp(210px,26vw,290px)}}

@media(max-width:740px){.work-carousel{height:auto;padding:92px 0}.work-carousel-sticky{position:relative;top:auto;height:auto;min-height:0;padding:0;display:block;overflow:visible}.work-carousel-intro{padding:0 var(--pad)}.work-carousel .work-heading{margin:58px 0 50px}.work-carousel .work-heading h2{font-size:clamp(48px,14vw,72px)}.work-carousel .work-heading p{font-size:10px;margin-top:28px}.work-carousel-stage{overflow:visible;perspective:none;touch-action:pan-y;cursor:auto}.work-carousel-track{position:relative;inset:auto;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) 24px;scrollbar-width:none}.work-carousel-track::-webkit-scrollbar{display:none}.work-carousel-card{position:relative;left:auto;top:auto;flex:0 0 72vw;width:72vw;max-width:300px;transform:none;opacity:1;filter:none;pointer-events:auto;visibility:visible;scroll-snap-align:center}.work-carousel-card[aria-hidden="true"]{visibility:visible}.work-carousel-card .work-caption{grid-template-columns:1fr auto;padding:13px 2px 15px}.work-carousel-card .work-caption p{display:none}.work-carousel-count{display:none}}

/* Segmented desktop hero: live typography, image plate, project rail and ticker. */
.desktop-master{position:relative;width:100%;aspect-ratio:16/9;display:grid;grid-template-columns:38% 39.5% 22.5%;grid-template-rows:minmax(0,91.35%) 8.65%;overflow:hidden;background:var(--paper);color:var(--ink)}
.master-left{position:relative;min-width:0;background:var(--paper)}
.master-wordmark{position:absolute;z-index:4;top:3.2%;left:7%;display:block;width:clamp(135px,14vw,232px)}
.master-wordmark img{width:100%;height:auto;object-fit:contain}
.master-nav{position:absolute;z-index:8;top:3.15%;left:23.2%;right:auto;bottom:auto;width:auto;display:flex;align-items:center;gap:clamp(28px,4.5vw,76px);margin:0}
.master-nav a{position:relative;display:block;width:auto;height:auto;padding:8px 0;background:transparent;border:0;color:var(--ink);font-size:clamp(8px,.68vw,12px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.master-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:1px;background:currentColor;transition:right .35s var(--ease)}
.master-nav a:hover:after{right:0}
.master-nav span{position:static;display:inline;width:auto;height:auto;overflow:visible;clip:auto}
.master-headline{position:absolute;z-index:3;left:7%;right:2.5%;top:20.5%;bottom:3.5%;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.master-headline h1{margin:0;font-size:clamp(48px,6.1vw,112px);line-height:.78;letter-spacing:-.085em;font-weight:850;text-transform:uppercase;max-width:100%}
.master-location{display:flex;align-items:center;gap:10px;margin:5.5% 0 0;font-size:clamp(8px,.63vw,11px);font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.master-location:before{content:"";display:block;width:clamp(28px,3.2vw,54px);height:1px;margin-right:8px;background:currentColor}
.master-location b{font-weight:400}
.master-cta{display:flex;align-items:center;justify-content:space-between;gap:26px;min-width:clamp(190px,18vw,244px);min-height:62px;margin-top:4.4%;padding:0 20px;background:#19191b;color:#fff;font-size:12px;line-height:1;font-weight:700;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}
.master-cta b{display:grid;place-items:center;width:24px;height:24px;font-size:19px;font-weight:400;line-height:1;transition:transform .3s var(--ease)}
.master-cta:hover b{transform:translate(2px,-2px)}
.master-principles{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line);font-size:clamp(7px,.52vw,10px);font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.master-visual{position:relative;grid-column:2;grid-row:1;min-width:0;overflow:hidden;background:#cfc7ba}
picture{display:contents}
.master-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;transform:scale(1.01)}
.master-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(242,242,238,.16),transparent 24%,transparent 78%,rgba(0,0,0,.05));pointer-events:none}
.master-arabic{position:absolute;z-index:2;right:3%;top:18%;color:#111;font-family:Tahoma,Arial,sans-serif;font-size:clamp(48px,5.4vw,96px);font-weight:800;line-height:1}
.master-wall-note{position:absolute;z-index:2;right:4%;top:36%;margin:0;color:#111;font-size:clamp(7px,.48vw,9px);font-weight:700;line-height:1.7;letter-spacing:.18em;text-transform:uppercase}
.master-projects{position:relative;z-index:4;right:auto;top:auto;bottom:auto;width:auto;height:auto;grid-column:3;grid-row:1;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));min-width:0;background:#111}
.master-projects button{position:relative;width:100%;height:100%;min-width:0;overflow:hidden;padding:0 11px 11px;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.82);background:#111;color:#fff;cursor:pointer}
.master-projects button:last-child{border-bottom:0}
.master-projects button img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .4s var(--ease)}
.master-projects button:nth-child(2) img{object-position:63% center}
.master-projects button:nth-child(3) img{object-position:58% center}
.master-projects button:nth-child(4) img{object-position:50% center}
.master-projects button:after{content:"";position:absolute;z-index:1;inset:0;border:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.04) 65%,rgba(0,0,0,.38));transition:background .3s var(--ease)}
.master-projects button:hover img{transform:scale(1.06);filter:saturate(1.1)}
.master-projects button:hover:after{background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.08) 65%,rgba(0,0,0,.45))}
.master-rail-index,.master-rail-label,.master-rail-type,.master-rail-arrow{position:absolute;z-index:2}
.master-rail-index{left:11px;top:10px;font-size:clamp(9px,.7vw,12px);letter-spacing:.12em}
.master-rail-label{left:11px;bottom:24px;right:38px;font-size:clamp(10px,.88vw,15px);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.master-rail-type{left:11px;bottom:11px;font-size:clamp(7px,.46vw,9px);letter-spacing:.12em;text-transform:uppercase}
.master-rail-arrow{right:11px;bottom:12px;font-size:clamp(18px,1.5vw,26px);font-weight:400;line-height:.8;transition:transform .35s var(--ease)}
.master-projects button:hover .master-rail-arrow{transform:translate(3px,-3px)}
.master-ticker{z-index:5;grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0;overflow:hidden;padding:0 2.7%;background:#090909;color:#fff}
.master-ticker>div{display:flex;align-items:center;gap:clamp(11px,1.55vw,26px);min-width:0;white-space:nowrap;font-size:clamp(7px,.56vw,10px);font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.master-ticker i{width:3px;height:3px;flex:0 0 auto;background:#fff;transform:rotate(45deg)}
.master-ticker p{flex:0 0 auto;margin:0;padding-left:2vw;border-left:1px solid rgba(255,255,255,.8);font-family:Georgia,serif;font-size:clamp(9px,.68vw,12px);font-style:italic;line-height:1.2;white-space:nowrap}
.master-nav a:focus-visible,.master-cta:focus-visible,.master-projects button:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
@media(max-width:1050px) and (min-width:741px){.master-wordmark{left:6%;width:clamp(120px,14vw,180px)}.master-nav{left:23%;gap:clamp(18px,3vw,38px)}.master-headline{left:6%}.master-headline h1{font-size:clamp(42px,6.2vw,72px)}.master-ticker p{display:none}}
@media(max-width:740px){.desktop-master{display:none}}

/* Pixel-matched visual assets extracted from the approved landing reference. */
.desktop-master{grid-template-rows:minmax(0,91.82%) 8.18%}
.master-visual img{object-fit:fill;object-position:center;transform:none}
.master-arabic,.master-wall-note{display:none}
.master-nav a:last-child{position:relative;left:auto;top:auto;color:var(--ink)}
.master-projects{
  grid-template-rows:repeat(4,minmax(0,1fr));
  background:#111;
}
.master-projects button{padding:0;border:0;background:#111}
.master-projects button img{opacity:1;object-position:center}
.master-rail-index,.master-rail-label,.master-rail-arrow{opacity:1;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.master-projects .master-rail-index,.master-projects .master-rail-label{width:auto;height:auto;overflow:visible;clip:auto}
.master-rail-type{display:none}
.master-rail-index{left:11px;top:auto;bottom:39px;font-size:clamp(22px,2.15vw,38px);font-weight:750;letter-spacing:-.04em;line-height:.8}
.master-rail-label{left:11px;right:46px;bottom:14px;font-size:clamp(8px,.7vw,12px);font-weight:750;line-height:1.05;letter-spacing:.1em}
.master-rail-arrow{right:11px;bottom:15px;font-size:clamp(19px,1.5vw,27px)}
.master-projects button:after{background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 62%,rgba(0,0,0,.2));border:0}
.master-projects button:hover:after{background:linear-gradient(90deg,rgba(0,0,0,.54),transparent 62%,rgba(0,0,0,.28));border:0}
.wordmark-footer{display:block;width:clamp(150px,16vw,245px)}
.wordmark-footer img{display:block;width:100%;height:auto;object-fit:contain}

/* Preserve the approved hero photograph; extend its plate left without changing the other columns. */
.master-visual{margin-left:-1.5vw}

/* Built-in project enquiry form. */
.contact-top{grid-template-columns:1fr}
.contact-link{margin-bottom:10vh}
.contact-form{scroll-margin-top:32px;border-top:1px solid #444;padding:28px 0 10vh}
.contact-form-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:7vh;text-transform:uppercase;letter-spacing:.11em}
.contact-form-heading p{margin:0;font-size:clamp(22px,2.4vw,38px);font-weight:700;letter-spacing:-.04em}
.contact-form-heading span{font-size:8px;color:#aaa}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 5vw}
.contact-fields label{display:flex;flex-direction:column;gap:12px;min-width:0;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.contact-fields input,.contact-fields select,.contact-fields textarea{width:100%;border:0;border-bottom:1px solid #555;border-radius:0;padding:5px 0 15px;background:transparent;color:#fff;font:inherit;font-size:clamp(17px,1.5vw,24px);letter-spacing:-.02em;outline:none;transition:border-color .25s}
.contact-fields input:focus,.contact-fields select:focus,.contact-fields textarea:focus{border-color:#fff}
.contact-fields select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 8px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.contact-fields select option{color:#090909;background:#fff}
.contact-fields textarea{resize:vertical;min-height:130px;line-height:1.35}
.contact-fields textarea::placeholder{color:#777}
.contact-message{grid-column:1/-1}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-submit-row{display:flex;align-items:center;justify-content:flex-end;gap:30px;margin-top:44px}
.contact-status{margin:0 auto 0 0;max-width:54ch;font-size:10px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase}
.contact-status.is-success{color:#d9ff45}.contact-status.is-error{color:#ff9d92}
.contact-submit{display:flex;align-items:center;justify-content:space-between;gap:55px;min-width:240px;padding:17px 18px;border:1px solid #fff;background:#fff;color:#090909;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.12em;cursor:pointer;transition:background .25s,color .25s}
.contact-submit:hover{background:#090909;color:#fff}.contact-submit:disabled{cursor:wait;opacity:.55}.contact-submit b{font-size:20px;font-weight:400}
.contact footer{margin-top:2vh}

@media(max-width:740px){.master-visual{margin-left:0}.contact-form-heading{display:block;margin-bottom:52px}.contact-form-heading span{display:block;margin-top:13px}.contact-fields{grid-template-columns:1fr;gap:34px}.contact-message{grid-column:auto}.contact-submit-row{display:block}.contact-submit{width:100%;margin-top:24px}.contact footer{margin-top:70px}}

/* Contact is a focused modal rather than an inline page section. */
body.contact-open{overflow:hidden}
.contact-overlay{position:fixed;z-index:500;inset:0;visibility:hidden;pointer-events:none;color:#fff}
.contact-overlay.open{visibility:visible;pointer-events:auto}
.contact-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.72);opacity:0;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity .45s var(--ease)}
.contact-overlay.open .contact-backdrop{opacity:1}
.contact-dialog{position:absolute;right:0;top:0;width:min(900px,72vw);height:100%;overflow:auto;overscroll-behavior:contain;padding:0 clamp(28px,4vw,64px) 56px;background:#090909;box-shadow:-25px 0 90px rgba(0,0,0,.35);transform:translateX(100%);transition:transform .62s var(--ease)}
.contact-overlay.open .contact-dialog{transform:none}
.contact-dialog-header{position:sticky;z-index:3;top:0;display:flex;align-items:center;justify-content:space-between;padding:25px 0 18px;background:#090909;border-bottom:1px solid #444;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.13em}
.contact-dialog-header p{margin:0}
.contact-close{display:flex;align-items:center;gap:12px;padding:0;border:0;background:transparent;color:#fff;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.13em;cursor:pointer}
.contact-close i,.contact-close i:after{content:"";display:block;width:23px;height:1px;background:currentColor}.contact-close i{transform:rotate(45deg)}.contact-close i:after{transform:rotate(90deg)}
.contact-dialog .contact-form{scroll-margin:0;border:0;padding:clamp(46px,7vh,80px) 0 0}
.contact-dialog .contact-form-heading{align-items:flex-end;margin-bottom:clamp(48px,7vh,78px)}
.contact-dialog .contact-form-heading p{font-size:clamp(42px,5.2vw,76px);line-height:.84;letter-spacing:-.065em}
.contact-dialog .contact-fields{gap:34px 42px}
.contact-dialog .contact-fields input,.contact-dialog .contact-fields select,.contact-dialog .contact-fields textarea{font-size:18px}
.contact-dialog .contact-message{margin-top:8px}
.contact-dialog .contact-submit-row{padding-bottom:20px}

@media(max-width:740px){.contact-dialog{width:100%;padding:0 20px 38px}.contact-dialog .contact-form{padding-top:42px}.contact-dialog .contact-form-heading p{font-size:14vw}.contact-dialog .contact-fields{grid-template-columns:1fr;gap:28px}.contact-dialog .contact-message{grid-column:auto}.contact-dialog .contact-submit-row{display:block}.contact-dialog .contact-submit{width:100%;margin-top:24px}}

/* Mobile follows the same continuous composition as the desktop hero. */
@media(max-width:740px){
  .site-header{height:84px;padding:0 18px;border-bottom:1px solid rgba(9,9,9,.2)}
  .wordmark{display:block;width:116px;height:auto;font-size:0;letter-spacing:0;line-height:0}
  .wordmark img{display:block;width:100%;height:auto;object-fit:contain}
  .wordmark span{display:none}
  .wordmark-drawer{width:142px}
  .hero-copy{min-height:auto;padding:104px var(--pad) 36px}
  .hero-copy .eyebrow{border-top:0;padding-top:0}
  .hero h1{margin:50px 0 7vh}
  .hero-visual{height:78svh;border-top:0}
  .vertical-note{right:12px}
  .hero-coordinate{bottom:3%}
  footer{grid-template-columns:1fr 1fr;grid-template-areas:"logo logo" "contact social" "copyright copyright";gap:26px 22px;padding-top:24px}
  .wordmark-footer{grid-area:logo;width:154px;margin:0 0 12px}
  .contact footer>.footer-contact-links{grid-area:links}
  .copyright{grid-area:copyright;width:100%;padding-top:18px;border-top:1px solid #444;text-align:right;align-self:auto}
}

/* Mobile hero uses the desktop composition model: copy and controls sit on the image canvas. */
@media(max-width:740px){
  .menu-toggle{right:18px;padding:0;color:#090909;background:transparent;border-radius:0;mix-blend-mode:normal;backdrop-filter:none;-webkit-backdrop-filter:none;transition:color .25s var(--ease)}
  .menu-toggle.is-light{color:#fff}
  .mobile-hero{position:relative;display:block;min-height:calc(100svh + 245px);padding:0;overflow:hidden;background:#cfc7ba}
  .mobile-hero .hero-copy{position:relative;z-index:3;min-height:100svh;padding:104px var(--pad) 120px;color:#090909;pointer-events:none}
  .mobile-hero .hero-copy .hero-actions,.mobile-hero .hero-copy .hero-actions a{pointer-events:auto}
  .mobile-hero .hero-visual{position:absolute;z-index:0;inset:0 0 245px;height:auto;border:0}
  .mobile-hero .hero-visual img{object-position:58% center}
  .mobile-hero .hero-visual:after{background:linear-gradient(180deg,#f2f2ee 0%,rgba(242,242,238,.98) 38%,rgba(242,242,238,.78) 57%,rgba(242,242,238,.2) 79%,rgba(242,242,238,0) 100%)}
  .mobile-hero .hero-coordinate{z-index:5;bottom:calc(195px + 72px);color:#090909;text-shadow:none}
  .mobile-hero .project-rail{position:absolute;z-index:4;left:0;right:0;bottom:50px;height:195px}
  .mobile-hero .sector-ticker{z-index:5}
}

/* Mobile selected work is a vertical, scroll-driven orbit rather than a free horizontal strip. */
@media(max-width:740px){
  .work-carousel{height:330svh;padding:0}
  .work-carousel-sticky{position:sticky;top:0;height:100svh;min-height:680px;padding:24px var(--pad);display:block;overflow:hidden}
  .work-carousel-intro{position:absolute;z-index:70;inset:0 var(--pad) auto;padding:0;pointer-events:none}
  .work-carousel .work-heading{margin:58px 0 0}
  .work-carousel .work-heading h2{font-size:clamp(48px,14vw,72px)}
  .work-carousel .work-heading p{max-width:25ch;margin-top:28px;font-size:10px}
  .work-carousel-stage{position:absolute;z-index:1;inset:0;overflow:hidden;perspective:1200px;perspective-origin:50% 58%;touch-action:pan-y;cursor:grab}
  .work-carousel-track{position:absolute;inset:0;display:block;overflow:visible;padding:0;scroll-snap-type:none}
  .work-carousel-card{position:absolute;left:50%;top:74%;width:min(52vw,240px);max-width:none;transform-style:preserve-3d;scroll-snap-align:none;pointer-events:none}
  .work-carousel-card .work-media{aspect-ratio:9/16}
  .work-carousel-card .work-caption{grid-template-columns:1fr auto;padding:13px 2px 15px}
  .work-carousel-card .work-caption p{display:none}
  .work-carousel-card .work-caption h3{font-size:clamp(24px,7vw,38px)}
  .work-carousel-card .work-caption span{font-size:8px}
  .work-carousel-count{display:block;right:var(--pad);bottom:16px}
}

.phone-input{display:grid;grid-template-columns:minmax(112px,.42fr) 1fr;gap:14px;align-items:end}
.phone-input select{min-width:0}
.phone-input input{min-width:0}
.contact-fields select.branded-select,.phone-input select{font-weight:700;letter-spacing:.03em}
.contact-fields select.branded-select:focus,.phone-input select:focus{border-color:#d9ff45}
@media(max-width:740px){.phone-input{grid-template-columns:minmax(108px,.6fr) 1fr;gap:12px}.work-carousel-intro{background:linear-gradient(var(--paper) 0 76%,transparent);padding-bottom:16px}}

/* Premium product polish: quiet surfaces, generous rhythm, and focused actions. */
:root{--paper:#f5f5f2;--ink:#111113;--line:rgba(17,17,19,.16);--ease:cubic-bezier(.2,.8,.2,1)}
.section-pad{padding-top:clamp(96px,12vw,190px);padding-bottom:clamp(96px,12vw,190px)}
.button,.master-cta,.contact-submit{border-radius:999px;transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease),color .28s var(--ease)}
.master-cta{border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 6px 18px rgba(17,17,19,.1)}
.button:hover,.master-cta:hover,.contact-submit:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.14)}
.master-cta:hover{background:#29292c;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 12px 26px rgba(17,17,19,.16)}
.master-cta:focus-visible{outline:2px solid #19191b;outline-offset:3px}
.showreel{border-radius:28px;margin:0 var(--pad);height:min(76vw,800px);min-height:540px;isolation:isolate}
.showreel-copy h2{letter-spacing:-.075em}.showreel-meta{right:36px;bottom:36px}
.work-carousel{background:var(--paper)}
.work-carousel-card{border-radius:22px;overflow:hidden;}
.work-carousel-card .work-media{border-radius:22px 22px 0 0}.work-carousel-card .work-caption{padding:17px 18px 19px;background:rgba(255,255,255,.76)}
.capabilities{background:#111113}.cap-row{border-color:rgba(255,255,255,.18)}.cap-row:hover{border-radius:14px}
.process-steps{border-color:var(--line);gap:12px;border:0}.process-steps li{aspect-ratio:auto;min-height:220px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.48);padding:22px;transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease)}
.process-steps li:hover{transform:translateY(-5px);background:#fff;box-shadow:0 18px 36px rgba(17,17,19,.1)}
.contact{padding-top:clamp(96px,12vw,180px)}
.contact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 clamp(72px,9vw,130px)}
.contact-action{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:14px 20px;align-items:start;min-height:180px;padding:24px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:rgba(255,255,255,.04);transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.contact-action:hover{transform:translateY(-4px);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.46)}
.contact-action span,.contact-action small{font-size:9px;line-height:1.55;letter-spacing:.11em;text-transform:uppercase;color:#aaa}.contact-action strong{font-size:clamp(21px,2.1vw,34px);letter-spacing:-.045em;line-height:.95}.contact-action small{grid-column:2/3;max-width:34ch}.contact-action b{font-size:22px;font-weight:400}
.contact-dialog{border-left:1px solid rgba(255,255,255,.16);background:rgba(17,17,19,.98)}
.contact-dialog .contact-fields input,.contact-dialog .contact-fields select,.contact-dialog .contact-fields textarea{border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:14px 15px;background:rgba(255,255,255,.06);font-size:16px;letter-spacing:0}.contact-dialog .contact-fields input:focus,.contact-dialog .contact-fields select:focus,.contact-dialog .contact-fields textarea:focus{border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12)}
@media(max-width:740px){.showreel{margin:0;border-radius:0;min-height:520px}.contact-actions{grid-template-columns:1fr}.contact-action{min-height:150px}.process-steps{gap:9px}.process-steps li{min-height:180px;padding:17px;border-radius:14px}}

/* Custom select controls avoid browser-native dropdown styling. */
.native-select{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.custom-select{position:relative;width:100%;margin-top:1px}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 16px;border:1px solid rgba(255,255,255,.24);border-radius:14px;background:rgba(255,255,255,.065);color:#fff;text-align:left;font:inherit;font-size:16px;letter-spacing:0;cursor:pointer;transition:border-color .22s var(--ease),background .22s var(--ease),box-shadow .22s var(--ease)}
.custom-select-trigger:hover,.custom-select.is-open .custom-select-trigger{border-color:rgba(255,255,255,.64);background:rgba(255,255,255,.1)}.custom-select-trigger:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(255,255,255,.14)}
.custom-select-trigger i{width:8px;height:8px;margin-right:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .22s var(--ease)}.custom-select.is-open .custom-select-trigger i{transform:rotate(225deg) translate(-1px,-3px)}
.custom-select-menu{position:absolute;z-index:10;right:0;left:0;top:calc(100% + 8px);display:grid;gap:3px;overflow-y:auto;padding:7px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(29,29,31,.98);box-shadow:0 20px 48px rgba(0,0,0,.34);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.custom-select.opens-upward .custom-select-menu{top:auto;bottom:calc(100% + 8px);transform:translateY(6px);box-shadow:0 -20px 48px rgba(0,0,0,.34)}.custom-select.is-open .custom-select-menu{opacity:1;visibility:visible;transform:none}.custom-select-option{width:100%;padding:12px 13px;border:0;border-radius:10px;background:transparent;color:#fff;text-align:left;font:inherit;font-size:15px;letter-spacing:0;cursor:pointer;transition:background .16s var(--ease),color .16s var(--ease)}.custom-select-option:hover,.custom-select-option:focus-visible{outline:0;background:rgba(255,255,255,.12)}.custom-select-option.is-selected{background:#fff;color:#161617}

/* Compact conversion form: keep the key decision and submit action within a short scan. */
.contact-dialog{width:min(940px,78vw);padding-bottom:30px}.contact-dialog-header{padding:22px 0 15px}.contact-dialog .contact-form{padding-top:36px}.contact-dialog .contact-form-heading{align-items:end;margin-bottom:32px}.contact-dialog .contact-form-heading p{max-width:12ch;font-size:clamp(38px,4.1vw,58px);line-height:.88;letter-spacing:-.06em}.contact-dialog .contact-fields{gap:20px 28px}.contact-dialog .contact-fields label{gap:8px}.contact-dialog .contact-fields input,.contact-dialog .contact-fields select,.contact-dialog .contact-fields textarea{min-height:48px;padding:11px 14px;font-size:15px}.contact-dialog .contact-message{margin-top:2px}.contact-dialog .contact-fields textarea{height:112px;min-height:112px;resize:vertical}.contact-dialog .contact-submit-row{align-items:center;margin-top:24px;padding-bottom:0}.contact-dialog .contact-submit{min-width:210px;padding:15px 18px}.contact-dialog .contact-status{font-size:9px}
@media(max-width:740px){.contact-dialog{width:100%;padding-bottom:28px}.contact-dialog .contact-form{padding-top:30px}.contact-dialog .contact-form-heading{margin-bottom:28px}.contact-dialog .contact-form-heading p{font-size:13vw}.contact-dialog .contact-fields{gap:18px}.contact-dialog .contact-fields textarea{height:108px;min-height:108px}.contact-dialog .contact-submit-row{margin-top:22px}}

/* Let the form title use the panel's full editorial width on desktop. */
@media(min-width:741px){.contact-dialog .contact-form-heading{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:28px}.contact-dialog .contact-form-heading p{width:auto;max-width:none;white-space:pre-line}.contact-dialog .contact-form-heading span{text-align:right;line-height:1.7}}

/* Compact, consistently proportioned form controls. */
.contact-dialog .contact-fields input,.contact-dialog .contact-fields select{height:50px;min-height:0;padding:0 14px;font-size:16px;line-height:1.2}.contact-dialog .phone-input select,.contact-dialog .phone-input input{height:50px}.contact-dialog .contact-fields textarea{height:100px;min-height:100px;padding:13px 14px;font-size:16px;line-height:1.4}.contact-dialog .custom-select-trigger{min-height:50px;height:50px;padding:0 14px;font-size:16px}.contact-dialog .contact-fields{gap:18px 28px}.contact-dialog .contact-fields label{gap:7px}
@media(max-width:740px){.contact-dialog .contact-fields input,.contact-dialog .contact-fields select,.contact-dialog .phone-input select,.contact-dialog .phone-input input,.contact-dialog .custom-select-trigger{height:50px;min-height:50px;font-size:16px}.contact-dialog .contact-fields textarea{height:100px;min-height:100px}}

/* Primary form action matches the compact field system. */
.contact-dialog .contact-submit{width:auto;min-width:204px;height:50px;padding:0 16px;border:0;border-radius:14px;font-size:11px;letter-spacing:.13em}.contact-dialog .contact-submit b{font-size:18px;line-height:1}.contact-dialog .contact-submit:hover{box-shadow:0 10px 24px rgba(255,255,255,.12)}
@media(max-width:740px){.contact-dialog .contact-submit{width:100%;height:52px;border-radius:14px;font-size:11px}}

/* A desktop form panel should end with the form, not an empty full-height drawer. */
@media(min-width:741px){.contact-dialog{top:0;height:100%;max-height:none;min-height:0;border-radius:0;overflow-y:auto}}

/* Refined utility header for the enquiry panel. */
.contact-dialog-header{height:68px;padding:0;border-bottom-color:rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(24,24,26,.98),rgba(17,17,19,.96));box-shadow:0 8px 24px rgba(0,0,0,.12)}
.contact-dialog-header p{display:flex;align-items:center;gap:10px;color:#f5f5f5}.contact-dialog-header p:before{content:"";width:6px;height:6px;border-radius:50%;background:#d9ff45;box-shadow:0 0 0 4px rgba(217,255,69,.12)}
.contact-close{min-height:40px;padding:0 10px 0 13px;border-radius:10px;transition:background .2s var(--ease),transform .2s var(--ease)}.contact-close:hover{background:rgba(255,255,255,.08);transform:translateX(2px)}.contact-close i,.contact-close i:after{width:19px}
@media(max-width:740px){.contact-dialog-header{height:62px}.contact-close{min-height:38px}}

/* The carousel should fit the actual viewport after a resize. */
.work-carousel-sticky{min-height:0}

/* Premium project case-study drawer. */
.project-drawer{width:min(920px,76vw);background:#f5f5f2;box-shadow:-28px 0 90px rgba(0,0,0,.28)}
.drawer-header{height:76px;padding:0 24px;justify-content:flex-end;mix-blend-mode:normal;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,0));backdrop-filter:none;-webkit-backdrop-filter:none}
.drawer-close{min-height:40px;padding:0 13px 0 15px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(14,14,15,.28);color:#fff;font-size:9px;letter-spacing:.14em;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}
.drawer-close:hover{background:rgba(255,255,255,.94);border-color:#fff;color:#111;transform:translateY(-1px)}.drawer-close i,.drawer-close i:after{width:18px}
.drawer-media{height:min(60vh,640px);min-height:420px;background:#111}.drawer-media:after{background:linear-gradient(180deg,rgba(0,0,0,.15),transparent 25%,transparent 72%,rgba(0,0,0,.28))}.drawer-media video{filter:none}
.drawer-media>span{left:32px;bottom:26px;padding:7px 11px 5px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(0,0,0,.2);font-size:clamp(28px,4vw,48px);font-weight:700;line-height:1;color:#fff;letter-spacing:-.05em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-shadow:0 1px 10px rgba(0,0,0,.28)}
.drawer-content{padding:38px clamp(32px,5vw,58px) 64px}.drawer-category{padding-top:12px;border-top-color:rgba(17,17,19,.25);font-size:9px;letter-spacing:.16em}.drawer-content h2{max-width:760px;margin:44px 0 24px;font-size:clamp(46px,5.4vw,78px);line-height:.88;letter-spacing:-.065em}.drawer-description{max-width:58ch;font-size:clamp(17px,1.55vw,21px);line-height:1.45;color:#333}.drawer-meta{margin:48px 0 28px;padding-top:14px;border-top-color:rgba(17,17,19,.24)}.drawer-meta span{color:#666}.drawer-meta b{font-size:14px}.drawer-cta{min-height:50px;border-radius:14px;padding:0 18px}
.drawer-media-title{position:absolute;z-index:3;left:7%;right:6%;bottom:clamp(30px,7vw,76px);margin:0;color:#fff;font-size:clamp(52px,7.4vw,112px);font-weight:800;line-height:.82;letter-spacing:-.075em;text-transform:uppercase;text-wrap:balance;text-shadow:0 3px 24px rgba(0,0,0,.24)}
.drawer-media.is-dual .drawer-media-title{display:none}
@media(max-width:740px){.project-drawer{top:8px;width:100vw;height:calc(100% - 8px);border-radius:20px 20px 0 0}.drawer-header{height:64px;padding:0 14px}.drawer-close{min-height:38px}.drawer-media{height:52svh;min-height:320px;border-radius:20px 20px 0 0}.drawer-media>span{left:16px;bottom:16px;padding:6px 9px 4px;font-size:34px}.drawer-content{padding:26px 20px 42px}.drawer-content h2{margin:34px 0 20px;font-size:clamp(42px,11.5vw,62px);line-height:.9}.drawer-description{font-size:17px}.drawer-meta{margin-top:38px;gap:24px}.drawer-cta{min-height:50px}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:740px){.drawer-media{height:calc(100svh - 8px);min-height:520px}.drawer-media video{object-fit:cover}.drawer-media:after{background:linear-gradient(180deg,rgba(0,0,0,.08) 22%,transparent 42%,rgba(0,0,0,.68) 100%)}.drawer-media-title{left:7%;right:5%;bottom:clamp(34px,9vw,72px);font-size:clamp(48px,14vw,76px)}}
@media(max-width:740px){.drawer-media:not(.is-dual)>span{top:76px;bottom:auto}}

/* Project reels are the hero: fill the frame and carry their title over the image. */
@media(min-width:741px){.drawer-media{height:min(76vh,780px);min-height:520px}.drawer-media video{object-fit:cover}.drawer-media:after{background:linear-gradient(180deg,rgba(0,0,0,.1) 16%,transparent 42%,rgba(0,0,0,.72) 100%)}}
@media(min-width:741px){.drawer-media>span{top:92px;bottom:auto}.drawer-media-title{bottom:clamp(54px,6vw,88px)}}
/* Keep the One Stop mark clear of the project index in the split F&B hero. */
.drawer-media.is-dual .onestop-logo{top:46%;transform:translateY(-50%)}
@media(max-width:740px){.drawer-media.is-dual .onestop-logo{top:42%;transform:translateY(-50%)}}

/* Keep the mobile hero composition legible across short and wide phones. */
@media(max-width:740px){
  .mobile-hero{--hero-canvas:max(100svh,840px);min-height:calc(var(--hero-canvas) + 245px)}
  .mobile-hero .hero-copy{min-height:var(--hero-canvas);padding-bottom:105px}
  .mobile-hero .hero-visual img{object-position:50% 70%;scale:1}
  .mobile-hero .hero-visual:after{background:linear-gradient(180deg,rgba(245,248,250,.66),rgba(245,248,250,.25) 35%,transparent 64%)}
  .mobile-hero .vertical-note{color:#111}
  .mobile-hero .hero-coordinate{left:var(--pad);bottom:22px;gap:16px;padding:0;background:transparent;color:#fff;font-size:9px;line-height:1;mix-blend-mode:difference;text-shadow:none}
  .mobile-hero .hero-actions .button-dark{width:min(244px,100%);min-height:62px;padding:0 20px;border:1px solid rgba(255,255,255,.08);border-radius:16px;font-size:12px;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 6px 18px rgba(17,17,19,.1)}
  .mobile-hero .hero-actions .button-dark:hover b{transform:translate(2px,-2px)}
}

/* Capability rows are informational, so keep them visually steady. */
.cap-row{grid-template-columns:8% 36% minmax(0,1fr);transition:none}
.cap-row:hover{background:transparent;color:inherit;padding:0;border-radius:0}
@media(max-width:740px){.cap-row{grid-template-columns:35px minmax(0,1fr)}}

/* Premium mobile selected work: wider reels, compact copy and closer previews. */
@media(max-width:740px){
  .work-carousel{height:285svh}
  .work-carousel-sticky{min-height:0;padding:18px 0 20px}
  .work-carousel-intro{inset:0 18px auto;padding:18px 0 16px;background:linear-gradient(180deg,var(--paper) 0 88%,rgba(245,245,242,0))}
  .work-carousel .section-label{padding-top:8px}
  .work-carousel .work-heading{margin:26px 0 0}
  .work-carousel .work-heading h2{max-width:none;font-size:clamp(43px,12.3vw,54px);line-height:.86;letter-spacing:-.075em;white-space:nowrap}
  .work-carousel .work-heading p{max-width:42ch;margin:16px 0 0;font-size:9px;line-height:1.5;letter-spacing:.1em}
  .work-carousel-stage{perspective:1200px;perspective-origin:50% 61%;contain:layout paint}
  .work-carousel-card{top:60%;width:min(72vw,292px);border-radius:18px;background:#fff;box-shadow:0 18px 46px rgba(17,17,19,.13)}
  .work-carousel-card.is-active{z-index:100!important;box-shadow:0 24px 58px rgba(17,17,19,.18)}
  .work-carousel-card .work-media{aspect-ratio:9/16;border-radius:18px 18px 0 0;background:#0d0d0e}
  .work-carousel-card .media-fit video{object-fit:cover}
  .work-carousel-card .work-caption{min-height:66px;padding:13px 15px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;border-top:0;background:#fff}
  .work-carousel-card .work-caption h3{min-width:0;margin:0;font-size:clamp(24px,7vw,30px);line-height:1;letter-spacing:-.055em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .work-carousel-card .work-caption span{align-self:center;margin:0;font-size:8px;line-height:1;white-space:nowrap;text-align:right}
  .work-carousel-count{right:18px;bottom:18px;padding:7px 9px 6px;border:1px solid rgba(17,17,19,.16);border-radius:999px;background:rgba(245,245,242,.82);font-size:8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
}

@media(max-width:740px) and (max-height:720px){
  .work-carousel .work-heading{margin-top:20px}
  .work-carousel .work-heading h2{font-size:42px}
  .work-carousel .work-heading p{margin-top:12px}
  .work-carousel-card{width:min(62vw,238px)}
}

/* Premium mobile capabilities: compact rhythm without losing hierarchy. */
@media(max-width:740px){
  .capabilities.section-pad{padding:72px 18px 64px}
  .capabilities .section-label{padding-top:9px;color:rgba(255,255,255,.88);border-color:rgba(255,255,255,.28)}
  .capabilities .cap-intro{margin:42px 0 48px}
  .capabilities .cap-intro>p{max-width:none;margin:0 0 20px;font-size:9px;line-height:1.5;letter-spacing:.12em;color:rgba(255,255,255,.7);white-space:nowrap}
  .capabilities .cap-intro h2{max-width:100%;font-size:clamp(44px,12.2vw,52px);line-height:.88;letter-spacing:-.065em}
  .capabilities .cap-list{border-color:rgba(255,255,255,.22)}
  .capabilities .cap-row{grid-template-columns:42px minmax(0,1fr);gap:10px;min-height:86px;padding:0 2px;border-color:rgba(255,255,255,.16)}
  .capabilities .cap-row>span{font-size:8px;line-height:1;letter-spacing:.14em;color:rgba(255,255,255,.58)}
  .capabilities .cap-row h3{min-width:0;margin:0;font-size:clamp(21px,5.8vw,24px);font-weight:600;line-height:1.06;letter-spacing:-.04em;white-space:nowrap}
  .capabilities .cap-row:last-child{border-bottom-color:rgba(255,255,255,.24)}
}

/* Premium mobile process: a tighter section and a shared card baseline. */
@media(max-width:740px){
  .process.section-pad{padding:72px 18px 64px}
  .process .section-label{padding-top:9px;border-color:rgba(17,17,19,.3)}
  .process .process-head{margin:42px 0 46px}
  .process .process-head h2{max-width:100%;font-size:clamp(44px,12.4vw,52px);line-height:.88;letter-spacing:-.07em}
  .process .process-head p{max-width:35ch;margin:22px 0 0;font-size:15px;line-height:1.45;color:rgba(17,17,19,.76)}
  .process .process-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .process .process-steps li{min-height:150px;padding:15px;border-color:rgba(17,17,19,.15);border-radius:14px;display:grid;grid-template-rows:auto 1fr 36px;background:rgba(255,255,255,.52);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
  .process .process-steps li:hover{transform:none;background:rgba(255,255,255,.52);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
  .process .process-steps span{font-size:8px;line-height:1;letter-spacing:.14em;color:rgba(17,17,19,.62)}
  .process .process-steps h3{align-self:end;margin:0 0 10px;font-size:clamp(23px,6.2vw,26px);line-height:1;letter-spacing:-.055em}
  .process .process-steps p{align-self:start;margin:0;font-size:12px;line-height:1.35;color:rgba(17,17,19,.72)}
}

.contact-link-action small{display:none}.contact-link-action b{font:inherit}

/* Premium mobile contact: one obvious primary action and two clear pathways. */
@media(max-width:740px){
  .contact{padding:72px 18px 24px}
  .contact .section-label{padding-top:9px;border-color:rgba(255,255,255,.3)}
  .contact .contact-link{margin:50px 0 34px;font-size:clamp(46px,12.4vw,54px);line-height:.86;letter-spacing:-.072em}
  .contact .contact-link>span.contact-link-action{position:static;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;margin-top:27px;padding:0 16px;border:1px solid rgba(255,255,255,.96);border-radius:14px;background:#fff;color:#111;font-size:10px;font-weight:700;line-height:1;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 12px 30px rgba(0,0,0,.18);transform:none}
  .contact .contact-link-action small{display:block;font:inherit}
  .contact .contact-link-action b{display:grid;place-items:center;width:24px;height:24px;font-size:19px;font-weight:400;line-height:1}
  .contact .contact-link:hover>span.contact-link-action{transform:translateY(-2px)}
  .contact .contact-actions{gap:10px;margin:0 0 56px}
  .contact .contact-action{grid-template-columns:32px minmax(0,1fr) 38px;grid-template-rows:auto auto;gap:10px;align-content:center;min-height:132px;padding:16px;border-color:rgba(255,255,255,.18);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
  .contact .contact-action:hover{transform:none;background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));border-color:rgba(255,255,255,.18)}
  .contact .contact-action span{grid-column:1;grid-row:1;font-size:8px;color:rgba(255,255,255,.55)}
  .contact .contact-action strong{grid-column:2;grid-row:1;font-size:clamp(21px,5.8vw,24px);line-height:1;letter-spacing:-.04em}
  .contact .contact-action small{grid-column:2;grid-row:2;max-width:27ch;font-size:9px;line-height:1.45;letter-spacing:.075em;color:rgba(255,255,255,.64)}
  .contact .contact-action b{grid-column:3;grid-row:1/3;align-self:center;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:#111;font-size:18px;line-height:1}
  .contact footer{margin-top:0;gap:22px 18px;padding-top:24px;border-color:rgba(255,255,255,.24)}
  .contact .wordmark-footer{width:136px;margin:0 0 12px}
  .contact footer p{font-size:9px;line-height:1.7;letter-spacing:.085em}
  .contact .copyright{padding-top:16px}
}

/* Footer contact links: compact, explicit touch targets with crisp vector marks. */
.contact footer{grid-template-columns:minmax(170px,.75fr) minmax(0,2fr) auto;align-items:end}
.footer-contact-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.footer-contact-item{display:flex;align-items:center;gap:11px;min-width:0;min-height:60px;padding:9px 11px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.025);transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.footer-contact-item:hover{background:#fff;color:#090909;border-color:#fff;transform:translateY(-2px)}
.footer-contact-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border:1px solid currentColor;border-radius:50%;opacity:.92}
.footer-contact-icon svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.footer-contact-item>span:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}
.footer-contact-item small,.footer-contact-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.footer-contact-item small{font-size:7px;font-weight:500;line-height:1;letter-spacing:.13em;text-transform:uppercase;opacity:.58}
.footer-contact-item strong{font-size:9px;font-weight:650;line-height:1.15;letter-spacing:.055em}

@media(max-width:740px){
  .contact footer{grid-template-columns:1fr;grid-template-areas:"logo" "links" "copyright";gap:18px}
  .contact .wordmark-footer{grid-area:logo}
  .contact footer>.footer-contact-links{grid-area:links;grid-template-columns:1fr 1fr;gap:8px}
  .contact .footer-contact-item{min-height:58px;padding:8px 10px;border-radius:12px}
  .contact .footer-contact-item:last-child{grid-column:1/-1}
  .contact .footer-contact-icon{flex-basis:30px;width:30px;height:30px}
  .contact .footer-contact-item strong{font-size:8.5px;letter-spacing:.025em}
  .contact .copyright{grid-area:copyright;margin-top:2px}
}

/* Mobile hero: all four featured sectors are visible without a hidden horizontal gesture. */
.mobile-work-nav-head{display:none}
@media(max-width:740px){
  .mobile-hero{--hero-canvas:max(92svh,760px);min-height:auto;padding:0;overflow:hidden;background:#090909}
  .mobile-hero .hero-copy{min-height:var(--hero-canvas);padding:104px 18px 82px}
  .mobile-hero .hero-copy .eyebrow{font-size:9px;letter-spacing:.145em}
  .mobile-hero .hero-copy h1{margin:46px 0 42px;font-size:clamp(54px,14.4vw,64px);line-height:.82;letter-spacing:-.074em}
  .mobile-hero .hero-actions .button-dark{width:min(256px,100%);min-height:60px;border-radius:14px}
  .mobile-hero .hero-visual{inset:0 0 auto;height:var(--hero-canvas)}
  .mobile-hero .hero-visual:after{background:linear-gradient(180deg,rgba(245,248,250,.73) 0%,rgba(245,248,250,.36) 34%,rgba(245,248,250,.08) 58%,transparent 74%)}
  .mobile-hero .project-rail{position:relative;z-index:4;left:auto;right:auto;bottom:auto;height:auto;padding:23px 18px 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto repeat(2,148px);gap:8px;overflow:visible;background:#090909;scroll-margin-top:84px}
  .mobile-work-nav-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;min-height:38px;padding-bottom:8px;color:#fff;border-bottom:1px solid rgba(255,255,255,.25);font-size:9px;line-height:1;letter-spacing:.14em;text-transform:uppercase}
  .mobile-work-nav-head p{margin:0;color:rgba(255,255,255,.58);font-size:8px;letter-spacing:.11em}
  .mobile-hero .rail-card{min-width:0;height:148px;border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
  .mobile-hero .rail-card:after{background:linear-gradient(180deg,rgba(0,0,0,.18),transparent 36%,rgba(0,0,0,.78))}
  .mobile-hero .rail-card:before{content:"↗";position:absolute;z-index:3;right:11px;top:10px;width:auto;height:auto;background:transparent;color:#fff;font-size:19px;font-weight:400;line-height:1;text-shadow:0 2px 9px rgba(0,0,0,.65)}
  .mobile-hero .rail-card:active{transform:scale(.985)}
  .mobile-hero .rail-index{left:10px;top:11px;font-size:8px;color:rgba(255,255,255,.8)}
  .mobile-hero .rail-label{left:11px;right:10px;bottom:10px;display:flex;align-items:flex-start;flex-direction:column;gap:3px}
  .mobile-hero .rail-label b{font-size:18px;line-height:1;letter-spacing:-.035em;text-transform:none}
  .mobile-hero .rail-label small{font-size:7px;line-height:1.2;letter-spacing:.105em;color:rgba(255,255,255,.68)}
  .mobile-hero .sector-ticker{display:none}
}

/* Mobile studio: tighter rhythm, calmer type and properly spaced metrics. */
@media(max-width:740px){
  .intro.section-pad{padding:64px 18px 68px}
  .intro .section-label{padding-top:9px;border-color:rgba(9,9,9,.3)}
  .intro .intro-statement{margin:40px 0 38px}
  .intro .kicker{margin:0 0 22px;font-size:8.5px;line-height:1.4;letter-spacing:.135em;color:rgba(9,9,9,.68)}
  .intro .intro-statement h2{max-width:100%;font-size:clamp(42px,11.8vw,50px);line-height:.91;letter-spacing:-.06em;text-wrap:balance}
  .intro .intro-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
  .intro .intro-stat{min-height:138px;padding:16px 14px 14px;border:1px solid rgba(9,9,9,.14);border-radius:14px;background:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
  .intro .intro-stat strong{display:flex;align-items:flex-start;gap:5px;margin:0 0 25px;font-size:clamp(46px,12.6vw,54px);font-weight:700;line-height:.82;letter-spacing:-.055em}
  .intro .intro-stat sup{position:static;margin-top:2px;font-size:17px;font-weight:700;line-height:1;letter-spacing:0}
  .intro .intro-stat span{display:block;font-size:8px;line-height:1.5;letter-spacing:.09em;color:rgba(9,9,9,.68)}
  .intro .intro-body{grid-column:1/-1;margin:22px 0 0;padding:18px 0 0;border-top:1px solid rgba(9,9,9,.32);font-size:16px;line-height:1.45;letter-spacing:-.015em;color:rgba(9,9,9,.84)}
}

/* Desktop polish mirrors the mobile hierarchy at a wider editorial scale. */
@media(min-width:741px){
  .desktop-master .master-projects button:nth-child(4) img{object-position:center 54%}
  .desktop-master .master-rail-arrow{color:#fff;text-shadow:0 2px 9px rgba(0,0,0,.65)}

  .intro.section-pad{padding-top:clamp(96px,8vw,128px);padding-bottom:clamp(96px,8vw,128px)}
  .intro .intro-statement{grid-template-columns:23% minmax(0,1fr);margin:clamp(62px,5.5vw,84px) 0 clamp(58px,5vw,76px)}
  .intro .kicker{margin:9px 0 0;color:rgba(17,17,19,.66);font-size:9px;letter-spacing:.14em}
  .intro .intro-statement h2{max-width:1000px;font-size:clamp(66px,6.45vw,102px);line-height:.89;letter-spacing:-.066em}
  .intro .intro-grid{grid-template-columns:minmax(190px,.62fr) minmax(190px,.62fr) minmax(360px,1.45fr);gap:16px;margin-left:23%}
  .intro .intro-stat{min-height:190px;padding:22px;border:1px solid rgba(17,17,19,.14);border-radius:18px;background:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
  .intro .intro-stat strong{display:flex;align-items:flex-start;gap:8px;margin:0 0 42px;font-size:clamp(56px,4.9vw,78px);font-weight:700;line-height:.82;letter-spacing:-.055em}
  .intro .intro-stat sup{position:static;margin-top:3px;font-size:22px;font-weight:700;line-height:1;letter-spacing:0}
  .intro .intro-stat span{display:block;color:rgba(17,17,19,.68);font-size:9px;line-height:1.55;letter-spacing:.09em}
  .intro .intro-body{margin:0;padding:20px 0 0;border-top:1px solid rgba(17,17,19,.34);font-size:clamp(19px,1.55vw,24px);line-height:1.4;letter-spacing:-.02em;color:rgba(17,17,19,.86)}

  .showreel{height:min(68vw,760px);min-height:540px;border-radius:24px}
  .showreel-copy{bottom:8%;left:clamp(28px,3vw,48px)}
  .showreel-copy h2{font-size:clamp(82px,9vw,148px);line-height:.78}

  .capabilities.section-pad{padding-top:clamp(104px,8vw,130px);padding-bottom:clamp(104px,8vw,130px)}
  .capabilities .cap-intro{grid-template-columns:28% minmax(0,1fr);margin:clamp(62px,5.5vw,84px) 0 clamp(70px,6vw,94px)}
  .capabilities .cap-intro>p{margin-top:8px;color:rgba(255,255,255,.68);font-size:9px;letter-spacing:.12em}
  .capabilities .cap-intro h2{font-size:clamp(68px,6.6vw,104px);line-height:.88}
  .capabilities .cap-row{grid-template-columns:6% 34% minmax(0,1fr);gap:2vw;min-height:112px;border-color:rgba(255,255,255,.16)}
  .capabilities .cap-row>span{color:rgba(255,255,255,.52)}
  .capabilities .cap-row h3{font-size:clamp(25px,2.15vw,34px);line-height:1}
  .capabilities .cap-row p{max-width:560px;color:rgba(255,255,255,.74);font-size:clamp(14px,1.08vw,17px);line-height:1.45}

  .process.section-pad{padding-top:clamp(104px,8vw,130px);padding-bottom:clamp(104px,8vw,130px)}
  .process .process-head{grid-template-columns:minmax(0,1fr) 34%;margin:clamp(62px,5.5vw,84px) 0 clamp(64px,5.5vw,84px)}
  .process .process-head h2{font-size:clamp(68px,6.5vw,102px);line-height:.89}
  .process .process-head p{margin:0;max-width:460px;font-size:clamp(17px,1.4vw,21px);line-height:1.45;color:rgba(17,17,19,.72)}
  .process .process-steps{gap:12px}
  .process .process-steps li{min-height:188px;padding:20px;border-radius:16px;display:grid;grid-template-rows:auto 1fr auto}
  .process .process-steps h3{align-self:end;margin:0 0 10px;font-size:clamp(30px,2.75vw,43px);line-height:1}
  .process .process-steps p{align-self:start;margin:0;font-size:14px;line-height:1.4;color:rgba(17,17,19,.68)}

  .contact{padding-top:clamp(104px,8vw,130px)}
  .contact .contact-link{margin:clamp(68px,6vw,92px) 0 clamp(62px,5.5vw,84px);font-size:clamp(76px,8.4vw,132px);line-height:.82}
  .contact .contact-link>span.contact-link-action{right:0;top:auto;bottom:3%;display:flex;align-items:center;justify-content:space-between;width:clamp(220px,18vw,270px);min-height:62px;padding:0 18px;border:1px solid #fff;border-radius:16px;background:#fff;color:#111;font-size:10px;font-weight:700;line-height:1;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 14px 36px rgba(0,0,0,.2);transform:none}
  .contact .contact-link-action small{display:block;font:inherit}
  .contact .contact-link-action b{font-size:21px;font-weight:400;line-height:1}
  .contact .contact-link:hover>span.contact-link-action{transform:translateY(-3px)}
  .contact .contact-actions{gap:14px;margin-bottom:clamp(64px,5.5vw,86px)}
  .contact .contact-action{min-height:158px;padding:22px;border-radius:18px}

  /* Desktop carousel keeps the complete portrait film and mobile-style compact caption. */
  .work-carousel-card{width:clamp(250px,26vw,340px);border-radius:20px;background:#fff;box-shadow:0 22px 58px rgba(17,17,19,.14)}
  .work-carousel-card.is-active{box-shadow:0 28px 68px rgba(17,17,19,.18)}
  .work-carousel-card .work-media{aspect-ratio:9/16;border-radius:20px 20px 0 0;overflow:hidden;background:#0b0b0c}
  .work-carousel-card .media-fit video{object-fit:contain;transform:none!important;filter:none}
  .work-carousel-card .work-caption{min-height:76px;padding:12px 15px 13px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;align-items:center;gap:12px;border-top:0;background:#fff}
  .work-carousel-card .work-caption h3{min-width:0;margin:0;font-size:clamp(26px,2.2vw,32px);line-height:1;letter-spacing:-.055em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .work-carousel-card .work-caption p{display:none}
  .work-carousel-card .work-caption span{align-self:center;margin:0;font-size:8px;line-height:1;white-space:nowrap;text-align:right}
  .work-carousel{height:580svh}
}

@media(max-width:740px){.work-carousel{height:475svh}}

/* Wide desktop carousel: a balanced active card with both adjacent reels visible. */
@media(min-width:1101px){
  .work-carousel-sticky{grid-template-columns:minmax(230px,24%) minmax(0,1fr);gap:clamp(20px,2.4vw,40px)}
  .work-carousel-stage{perspective:1500px;perspective-origin:50% 48%}
}

/* F&B campaign mark: transparent, high-fidelity vector with deliberate optical sizing. */
.onestop-logo{left:7%;top:25%;width:clamp(82px,8.4vw,126px);filter:drop-shadow(0 6px 22px rgba(0,0,0,.48))}
@media(max-width:740px){.onestop-logo{left:6.5%;top:26%;width:58px}}

/* Final responsive interaction overrides. */
.work-carousel{height:100svh;min-height:680px}
.work-carousel-sticky{position:relative;top:auto;height:100%;min-height:680px}
@media(max-width:740px){
  .work-carousel{height:100svh;min-height:680px}
  .work-carousel-sticky{position:relative;top:auto;height:100%;min-height:680px}
  .mobile-hero .hero-copy h1{margin:38px 0 12px;font-size:clamp(50px,13.4vw,60px)}
  .mobile-hero .hero-actions .button-dark{width:min(232px,100%);min-height:56px;padding:0 18px}
}

/* Portfolio page: videos stream from the GoDaddy media path after upload. */
html{opacity:1;transition:opacity .22s var(--ease)}html.page-is-leaving{opacity:0}.portfolio-page{background:var(--paper)}.portfolio-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);border-bottom:1px solid var(--line);position:relative;z-index:40;background:var(--paper)}.portfolio-header .wordmark,.portfolio-footer .wordmark{display:block;width:132px;height:auto;font-size:0;line-height:0}.portfolio-header .wordmark img,.portfolio-footer .wordmark img{width:100%;height:auto;object-fit:contain}.portfolio-header .menu-toggle{color:var(--ink)}.portfolio-menu{position:fixed;inset:0;z-index:30;background:var(--ink);color:#fff;padding:130px var(--pad) 38px;display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .55s var(--ease);pointer-events:none}.portfolio-menu.open{clip-path:inset(0);pointer-events:auto}.portfolio-menu nav{display:flex;flex-direction:column}.portfolio-menu nav a{font-size:clamp(48px,11vw,110px);font-weight:700;letter-spacing:-.07em;line-height:.95;border-bottom:1px solid #333;padding:12px 0}.portfolio-menu nav span{font-size:11px;letter-spacing:.08em;margin-right:20px}.portfolio-menu p{font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:.08em}
.portfolio-intro{padding-top:clamp(48px,7vw,100px);padding-bottom:clamp(48px,6vw,92px)}.portfolio-intro .section-label{grid-template-columns:1fr auto}.portfolio-title-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,25%);gap:6vw;align-items:end;margin-top:clamp(54px,9vw,130px)}.portfolio-title-grid h1{margin:0;font-size:clamp(76px,11.3vw,190px);font-weight:800;line-height:.71;letter-spacing:-.095em;text-transform:uppercase}.portfolio-keywords{display:flex;align-items:center;gap:clamp(10px,1.8vw,28px);margin:24px 0 0;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.portfolio-keywords i{width:3px;height:3px;background:currentColor;transform:rotate(45deg)}.portfolio-deck{max-width:255px;margin:0 0 16px;font-size:11px;line-height:1.55;letter-spacing:.12em;text-transform:uppercase}
.portfolio-work{padding:0 0 clamp(96px,12vw,180px);overflow:hidden}.portfolio-filter-bar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 var(--pad);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.portfolio-filter-list{display:flex;align-items:center;gap:clamp(18px,2.8vw,48px);overflow-x:auto;scrollbar-width:none}.portfolio-filter-list::-webkit-scrollbar{display:none}.portfolio-filter-list button{flex:0 0 auto;border:0;background:transparent;padding:10px 0;color:var(--ink);font:inherit;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.portfolio-filter-list button[aria-selected="true"]{padding:10px 16px;border-radius:999px;background:var(--ink);color:#fff}.portfolio-filter-bar>p,.portfolio-carousel-controls p{margin:0;white-space:nowrap;font-size:10px;letter-spacing:.13em}.portfolio-carousel-head{display:grid;grid-template-columns:26% 1fr;gap:8vw;padding:clamp(56px,9vw,130px) var(--pad) 30px}.portfolio-carousel-head .section-label{height:max-content}.portfolio-carousel-head h2{margin:0;font-size:clamp(52px,7vw,118px);line-height:.78;letter-spacing:-.085em}.portfolio-carousel-head h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}.portfolio-carousel-head p{max-width:35ch;margin:32px 0 0;font-size:12px;line-height:1.55;letter-spacing:.08em;text-transform:uppercase}.portfolio-carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 var(--pad) 18px}.portfolio-carousel-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:18px;cursor:pointer;transition:.25s var(--ease)}.portfolio-carousel-controls button:hover{background:var(--ink);color:#fff}.portfolio-carousel-stage{outline:none}.portfolio-carousel-stage:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.portfolio-carousel-track{display:flex;gap:clamp(14px,2vw,30px);padding:0 max(var(--pad),calc((100vw - min(64vw,820px))/2)) 28px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:50%;scrollbar-width:none}.portfolio-carousel-track::-webkit-scrollbar{display:none}.portfolio-video-card{flex:0 0 min(64vw,820px);scroll-snap-align:center;border-radius:22px;background:#fff;box-shadow:0 18px 45px rgba(17,17,19,.12);overflow:hidden;opacity:.48;transform:scale(.94);transition:opacity .38s var(--ease),transform .38s var(--ease),box-shadow .38s var(--ease)}.portfolio-video-card.is-active{opacity:1;transform:scale(1);box-shadow:0 26px 60px rgba(17,17,19,.18)}.portfolio-video-card .work-media{aspect-ratio:16/9;background:#101014}.portfolio-video-card .work-media video{object-fit:contain}.portfolio-video-card .work-caption{min-height:74px;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;border:0;background:#fff}.portfolio-video-card .work-caption h3{font-size:clamp(24px,3vw,40px)}.portfolio-video-card .work-caption span{margin:0;font-size:9px}.portfolio-audio-toggle{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:9px 11px;background:rgba(0,0,0,.34);color:#fff;font:inherit;font-size:8px;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(8px);cursor:pointer}.portfolio-audio-toggle:disabled{opacity:.45;cursor:not-allowed}.portfolio-audio-toggle b{font-size:16px;line-height:.6;font-weight:400}
.portfolio-contact{margin:0 var(--pad) clamp(72px,8vw,130px);padding:clamp(28px,4vw,58px);border-radius:22px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}.portfolio-contact p{margin:0;font-size:10px;line-height:1.5;letter-spacing:.13em;text-transform:uppercase}.portfolio-contact a{font-size:clamp(48px,7vw,106px);font-weight:750;line-height:.78;letter-spacing:-.08em}.portfolio-contact b{display:inline-block;margin-left:.06em;font-size:.38em;font-weight:400;line-height:1;letter-spacing:0;vertical-align:.08em;transition:transform .3s var(--ease)}.portfolio-contact a:hover b{transform:translate(3px,-3px)}.portfolio-footer{margin:0 var(--pad);padding:24px 0 34px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line)}.portfolio-footer p{margin:0;font-size:9px;letter-spacing:.13em;text-transform:uppercase}
@media(max-width:740px){.portfolio-header{height:84px;padding:0 18px}.portfolio-header .wordmark,.portfolio-footer .wordmark{width:116px}.portfolio-intro{padding:42px 18px 58px}.portfolio-title-grid{display:block;margin-top:54px}.portfolio-title-grid h1{font-size:clamp(68px,20vw,100px);line-height:.73}.portfolio-keywords{gap:11px;flex-wrap:wrap;margin-top:27px;font-size:8px}.portfolio-deck{max-width:31ch;margin:32px 0 0;font-size:9px}.portfolio-filter-bar{min-height:68px;padding:0 18px}.portfolio-filter-list{gap:18px}.portfolio-filter-list button{font-size:8px}.portfolio-filter-bar>p{display:none}.portfolio-carousel-head{display:block;padding:68px 18px 26px}.portfolio-carousel-head .section-label{margin-bottom:48px}.portfolio-carousel-head h2{font-size:clamp(49px,14vw,70px)}.portfolio-carousel-head p{margin-top:24px;font-size:9px}.portfolio-carousel-controls{padding:0 18px 14px}.portfolio-carousel-track{gap:12px;padding:0 calc(50vw - min(41vw,190px)) 24px}.portfolio-video-card{flex-basis:min(82vw,380px);border-radius:18px}.portfolio-video-card .work-media{aspect-ratio:9/16}.portfolio-video-card .work-caption{min-height:64px;padding:13px 14px}.portfolio-video-card .work-caption h3{font-size:25px}.portfolio-contact{margin:0 18px 72px;padding:28px 22px;display:block;border-radius:18px}.portfolio-contact a{display:block;margin-top:48px;font-size:clamp(50px,14vw,70px)}.portfolio-footer{margin:0 18px;padding-bottom:27px}.portfolio-menu{padding:116px 18px 30px}}

/* Corrected portfolio composition and shared home-carousel geometry. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.portfolio-page{animation:portfolio-enter .48s var(--ease) both}.portfolio-feature{display:block;position:relative;width:100%;height:clamp(460px,58vw,780px);overflow:hidden;background:#0b0b0d;color:#fff}.portfolio-feature-frame{position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,#202126 0,#111216 39%,#08090b 78%)}.portfolio-feature-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.7))}.portfolio-feature-video{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover}.portfolio-feature-copy{position:absolute;z-index:2;left:var(--pad);bottom:42px;text-transform:uppercase}.portfolio-feature-copy p,.portfolio-feature-copy span{margin:0;font-size:9px;font-weight:700;letter-spacing:.14em}.portfolio-feature-copy h2{margin:10px 0 8px;font-size:clamp(48px,6vw,94px);line-height:.78;letter-spacing:-.08em}.portfolio-work{padding-bottom:clamp(80px,9vw,130px)}.portfolio-filter-list button.is-selected{padding:10px 16px;border-radius:999px;background:var(--ink);color:#fff}.portfolio-sections{border-top:1px solid var(--line)}.portfolio-category{scroll-margin-top:20px;border-bottom:1px solid var(--line)}.portfolio-category-heading{display:grid;grid-template-columns:26% 1fr;gap:8vw;padding:clamp(58px,7vw,100px) var(--pad) 0}.portfolio-category-heading h3{margin:0;font-size:clamp(44px,6vw,92px);line-height:.8;letter-spacing:-.08em}.portfolio-carousel-stage{position:relative;height:clamp(650px,70vw,850px);min-height:650px;overflow:hidden;perspective:1500px;perspective-origin:50% 47%;touch-action:pan-y;user-select:none}.portfolio-carousel-stage.is-dragging{cursor:grabbing}.portfolio-carousel-track{position:absolute;inset:0;display:block;gap:0;padding:0;overflow:visible;scroll-snap-type:none;scroll-padding:0}.portfolio-video-card{position:absolute!important;left:50%!important;top:50%!important;width:clamp(260px,27vw,390px)!important;max-width:none!important;flex:none!important;margin:0!important;scroll-snap-align:none!important;transform-style:preserve-3d;border-radius:20px;background:#fff;box-shadow:0 24px 65px rgba(17,17,19,.15);transition:opacity .18s linear,box-shadow .3s var(--ease)}.portfolio-video-card.is-active{box-shadow:0 30px 76px rgba(17,17,19,.22)}.portfolio-video-card .work-media{aspect-ratio:9/16;border-radius:20px 20px 0 0;background:#0b0b0d}.portfolio-video-card .work-media video{object-fit:cover}.portfolio-video-card .work-caption{min-height:76px;padding:15px 17px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.portfolio-video-card .work-caption h3{margin:0;font-size:clamp(25px,2.2vw,34px);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-video-card .work-caption span{font-size:8px;white-space:nowrap}.portfolio-carousel-count{position:absolute;z-index:120;right:var(--pad);bottom:24px;margin:0;font-size:9px;letter-spacing:.14em}.portfolio-audio-toggle{z-index:8;pointer-events:auto;touch-action:manipulation}
.portfolio-video-card .work-media{background:linear-gradient(180deg,#2a2b30,#121317)}
.portfolio-poster{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease}
.portfolio-video-card .work-media.has-poster .portfolio-poster{opacity:1}
.portfolio-video-card .work-media video{position:relative;z-index:2;opacity:0;transition:opacity .35s ease}
.portfolio-video-card.is-active video.is-ready{opacity:1}
.portfolio-feature-video{opacity:0;transition:opacity .45s ease}
.portfolio-feature-video.is-ready{opacity:1}@keyframes portfolio-enter{from{opacity:0}to{opacity:1}}
@media(max-width:740px){.portfolio-feature{height:64svh;min-height:520px;max-height:680px}.portfolio-feature-play{width:68px;height:68px;font-size:18px}.portfolio-feature-copy{left:18px;bottom:26px}.portfolio-feature-copy h2{font-size:52px}.portfolio-feature-action{right:18px;bottom:26px}.portfolio-filter-bar{position:relative;z-index:5}.portfolio-carousel-stage{height:670px;min-height:670px;perspective:1100px;perspective-origin:50% 49%}.portfolio-carousel-track{padding:0}.portfolio-video-card{width:min(70vw,278px)!important;border-radius:17px}.portfolio-video-card .work-media{border-radius:17px 17px 0 0}.portfolio-video-card .work-caption{min-height:66px;padding:13px 14px}.portfolio-video-card .work-caption h3{font-size:24px}.portfolio-carousel-count{right:18px;bottom:14px}.portfolio-contact{margin-top:8px}}
.portfolio-feature-video{display:block}.portfolio-feature-copy span{display:block}
@media(max-width:740px){.portfolio-category-heading{display:block;padding:52px 18px 0}.portfolio-category-heading .section-label{margin-bottom:32px}.portfolio-category-heading h3{font-size:clamp(42px,13vw,58px)}.portfolio-feature-video{min-height:100%;object-fit:cover}}
@media(prefers-reduced-motion:reduce){.portfolio-page{animation:none}}
.portfolio-video-card .portfolio-poster,.portfolio-video-card video{pointer-events:none;-webkit-user-drag:none;user-select:none}
