/* SJH motion: restrained editorial type, film reveals and the original layered page. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.76,0,.24,1)}
.home-page #main>.intro-stage{position:sticky;top:0;z-index:1;background:#fff;isolation:isolate}
.intro-stage .red-intro{position:relative;min-height:min(72svh,650px);padding-top:110px;padding-bottom:125px;display:flex;align-items:center;justify-content:center}
.intro-stage .intro-inner{width:100%}.home-page .home-work{z-index:2}
.home-page .showcase-poster,.home-page .hero-video{transform:translate3d(0,var(--hero-drift,0px),0) scale(1.06)}
.motion-word{display:inline-block;vertical-align:top;overflow:clip;padding-block:.17em;margin-block:-.17em}
.motion-word>span{display:inline-block;transform-origin:left bottom}
.text-motion.in-view .motion-word>span{animation:word-rise .9s var(--ease-out) both;animation-delay:calc(var(--word-i,0)*35ms)}
@keyframes word-rise{from{opacity:0;transform:translate3d(0,115%,0) rotate(4deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(0)}}
.js-motion .reveal,.js-motion .reveal.visible{opacity:1;transform:none;animation:none;transition:none}
.motion-entry.entered{animation:editorial-enter .9s var(--ease-out) both;animation-delay:var(--entry-delay,0ms)}
@keyframes editorial-enter{from{opacity:.1;transform:translate3d(0,36px,0)}to{opacity:1;transform:none}}
.copy-motion.entered{animation:copy-enter .95s var(--ease-out) both;animation-delay:160ms}
@keyframes copy-enter{from{opacity:.15;transform:translate3d(0,20px,0)}to{opacity:1;transform:none}}
.pill{position:relative;isolation:isolate;overflow:hidden;transition:color .35s,border-color .35s,box-shadow .4s,transform .5s var(--ease-out);--button-fill:var(--red-dark)}
.pill:before{content:'';position:absolute;inset:-1px;border-radius:inherit;background:var(--button-fill);z-index:-1;transform:translate3d(-102%,0,0);transition:transform .5s var(--ease-in-out)}
.pill:is(:hover,:focus-visible):before{transform:translate3d(0,0,0)}.pill:is(:hover,:focus-visible){color:#fff;box-shadow:0 7px 22px #00000012}
.pill.light{--button-fill:var(--red);color:var(--red)}.pill.light:is(:hover,:focus-visible){color:#fff;border-color:#fff;background:#fff}
.pill.outline{--button-fill:var(--ink)}.magnetic{transform:translate3d(var(--mag-x,0px),var(--mag-y,0px),0)!important;transition:transform .5s var(--ease-out),background .35s,color .35s,border-color .35s,box-shadow .35s}
.play-symbol{position:relative;transition:background .35s,color .35s,border-color .35s,transform .5s var(--ease-out)}
.play-symbol:after{content:'';position:absolute;inset:-6px;border:1px solid currentColor;border-radius:50%;opacity:0;transform:scale(.8);transition:transform .45s,opacity .45s}
.watch-button:is(:hover,:focus-visible) .play-symbol:after{opacity:.7;transform:scale(1)}.watch-button:is(:hover,:focus-visible) .play-symbol{background:var(--red);border-color:var(--red);color:#fff}
.project-card,.news-card{transition:color .35s}.card-media img{transform:scale(1);transition:transform 1s var(--ease-out),filter .7s}
.project-card:is(:hover,:focus-visible) .card-media img,.news-card:is(:hover,:focus-visible) .card-media img{transform:translate3d(var(--card-x,0px),var(--card-y,0px),0) scale(1.075);filter:saturate(1.08)}
.home-work .project-card .card-media:after{background:linear-gradient(0deg,#000000bd,transparent 75%);transition:opacity .6s}
.home-work .project-card .card-info{transition:opacity .5s,transform .7s var(--ease-out)}
.home-work .project-card .card-info h3{transform:translate3d(0,12px,0);transition:transform .7s var(--ease-out);transition-delay:30ms}
.home-work .project-card .card-info .eyebrow{transform:translate3d(0,12px,0);transition:transform .7s var(--ease-out);transition-delay:100ms}
.home-work .project-card:is(:hover,:focus-visible) .card-info h3,.home-work .project-card:is(:hover,:focus-visible) .card-info .eyebrow{transform:none}
.home-work .card-play{display:grid;bottom:auto;top:22px;right:22px;background:#ffffffef;z-index:3;width:44px;height:44px;transform:translate3d(0,10px,0) scale(.85);transition:opacity .45s,transform .65s var(--ease-out)}
.project-card:is(:hover,:focus-visible) .card-play{opacity:1;transform:translate3d(0,0,0) scale(1)}
.project-card:not(.home-work .project-card) .card-info h3,.news-card h3{transition:color .35s}.archive-grid .project-card:is(:hover,:focus-visible) .card-info h3,.news-card:is(:hover,:focus-visible) h3{color:var(--red)}
.sector-tile:before{transition:transform 1.15s var(--ease-out),opacity .55s}.sector-tile:after{transition:opacity .65s}.sector-tile span{transition:transform .7s var(--ease-out),letter-spacing .7s var(--ease-out)}
.sector-tile:is(:hover,:focus-visible):before{transform:scale(1.09);opacity:1}.sector-tile:is(:hover,:focus-visible):after{opacity:.36}.sector-tile:is(:hover,:focus-visible) span{transform:translate3d(0,-5px,0);letter-spacing:-.045em}
.portrait-frame{overflow:hidden;aspect-ratio:4/5;background:#efefef}.portrait-frame img{height:100%;width:100%;object-fit:cover;transform:scale(1);transition:transform 1s var(--ease-out),filter .7s}
.team-grid article:hover .portrait-frame img{transform:scale(1.045);filter:none}.team-grid article h3{transition:transform .6s var(--ease-out)}.team-grid article:hover h3{transform:translate3d(0,-3px,0)}
.service-circle{background:#b9321c;box-shadow:0 0 0 #e7402300;transition:transform .6s var(--ease-out),box-shadow .6s}
.service-circle:after{content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,35%),#ffffff25,transparent 65%);opacity:0;transition:opacity .5s;z-index:-1}
.service-circle:is(:hover,:focus-visible,[aria-expanded=true]):after{opacity:1}.service-circle:is(:focus-visible,[aria-expanded=true]){box-shadow:0 18px 35px #e7402322}
.circle-title{transition:transform .55s var(--ease-out)}.circle-detail{transition:opacity .5s,max-height .6s var(--ease-out),margin .6s var(--ease-out)}
.client-logo img{transition:transform .65s var(--ease-out),opacity .4s}.client-logo:hover img{transform:scale(1.09);opacity:.85}
.footer a:not(:has(img)),.breadcrumbs a,.text-link{position:relative}.footer a:not(:has(img)):after,.breadcrumbs a:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out)}
.footer a:not(:has(img)):is(:hover,:focus-visible):after,.breadcrumbs a:is(:hover,:focus-visible):after{transform:scaleX(1);transform-origin:left}
.text-link{background:linear-gradient(var(--red),var(--red)) left bottom/0 2px no-repeat;transition:background-size .4s,color .35s}.text-link:is(:hover,:focus-visible){background-size:100% 2px}
.filters button{transition:background .35s,color .35s,border-color .35s,transform .45s var(--ease-out)}.filters button:hover{transform:translateY(-2px)}
input,textarea,select{transition:border-color .3s,box-shadow .3s,background .3s}input:focus,textarea:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 3px #e7402310}
.quote-controls button{transition:background .35s,border-color .35s,transform .4s var(--ease-out)}.quote-controls button:hover{transform:translateY(-3px)}
.showcase-tab{transition:width .85s var(--ease-out),flex .85s var(--ease-out),filter .5s,border-color .4s}.showcase-tab:hover{filter:brightness(1.12)}.hero-project-title{transition:opacity .4s,transform .6s var(--ease-out)}.hero-project-title:hover{opacity:.8;transform:translate3d(0,-3px,0)}
.film-frame>img,.services-film>img{transform:translate3d(0,var(--frame-drift,0px),0) scale(1.035)}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .25s ease both}::view-transition-new(root){animation:page-in .55s var(--ease-out) both}
@keyframes page-out{to{opacity:0;filter:blur(2px)}}@keyframes page-in{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
@media(hover:none),(pointer:coarse){.home-work .project-card .card-info h3,.home-work .project-card .card-info .eyebrow{transform:none}.home-work .card-play{display:none}.magnetic{transform:none!important}}
@media(max-width:800px){.intro-stage .red-intro{padding-top:105px;padding-bottom:105px;min-height:min(78svh,660px)}.motion-entry.entered{animation-duration:.65s}.text-motion.in-view .motion-word>span{animation-duration:.75s;animation-delay:calc(var(--word-i,0)*22ms)}.film-frame>img,.services-film>img{transform:none}}
@media(max-width:500px){.intro-stage .red-intro{padding-top:102px;padding-bottom:95px;min-height:min(78svh,660px)}.red-intro :is(h1,h2){font-size:42px}.red-intro p{font-size:21px;line-height:1.4}.home-work .project-card .card-info h3,.home-work .project-card .card-info .eyebrow{transform:none}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}.home-page #main>.intro-stage{position:relative}.text-motion.in-view .motion-word>span,.motion-entry.entered,.copy-motion.entered{animation:none!important}.magnetic,.card-media img,.film-frame>img,.services-film>img,.home-page .showcase-poster,.home-page .hero-video{transform:none!important}*,*:before,*:after{transition-duration:.01s!important;animation-duration:.01s!important;animation-delay:0s!important;scroll-behavior:auto!important}}
