/* Movimento como linguagem: palavras, planos e dois quadros que se conectam. */
@media(prefers-reduced-motion:no-preference){
  .has-expressive-motion .motion-item{opacity:1;transform:none;transition:none}
  .motion-heading .motion-word{display:inline-block;max-width:100%;overflow:clip;vertical-align:bottom;padding:.04em .06em .18em;margin:-.04em -.06em -.18em}
  .motion-heading .motion-word__ink{display:inline-block;max-width:100%;transform:translate3d(0,112%,0) rotate(3deg);transform-origin:left bottom;transition:transform .78s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--word-order,0)*27ms)}
  .motion-heading.is-in-view .motion-word__ink{transform:none}
  .has-carousel .hero-slide{transition:opacity .8s ease,visibility 0s .8s}
  .has-carousel .hero-slide.is-active{transition:opacity .65s ease,visibility 0s}
  .has-carousel .hero-slide.is-active .hero-visual img{animation:g470-photo-arrive 1.8s cubic-bezier(.16,1,.3,1) both}
  .has-carousel .hero-slide.is-active .motion-word__ink{animation:g470-word-arrive .95s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word-order,0)*65ms)}
  .has-carousel .hero-slide.is-leaving .motion-word__ink{transform:translate3d(-.25em,-25%,0) rotate(-2deg);transition:transform .6s ease}
  .hero-marker{transition:letter-spacing .5s}
  .hero-index{transition:transform .6s}
  .hero.is-rotating .hero-dot.is-active::after{content:'';position:absolute;left:5px;right:5px;top:20px;height:4px;background:var(--ink);transform-origin:left;animation:g470-slide-clock 7s linear both}
  .hero-arrow:hover,.hero-arrow:focus-visible{transform:scale(1.12);transition:transform .25s,background .25s}
  .intro-collage{isolation:isolate}
  .intro-collage::before,.intro-collage::after{content:'';position:absolute;z-index:-1;pointer-events:none;width:68%;aspect-ratio:1;top:13%;left:10%;border:2px solid var(--red);transform:translate3d(calc(var(--scene-travel,0px)*-.5),0,0) rotate(calc(-12deg + var(--scene-turn,0deg)))}
  .intro-collage::after{left:24%;top:24%;border-color:var(--ink);opacity:.22;transform:translate3d(calc(var(--scene-travel,0px)*.3),0,0) rotate(calc(9deg - var(--scene-turn,0deg)))}
  .has-expressive-motion .intro-photo{transform-origin:center;transition:none;will-change:auto}
  .has-expressive-motion .intro-photo--back{transform:translate3d(0,calc(var(--scene-travel,0px)*-.35),0) rotate(calc(var(--scene-turn,0deg)*.22))}
  .has-expressive-motion .intro-photo--front{transform:translate3d(0,calc(var(--scene-travel,0px)*.65),0) rotate(calc(var(--scene-turn,0deg)*-.32))}
  .services-preview .section-heading h2 em .motion-word__ink{color:transparent;-webkit-text-stroke:1px var(--red);background:linear-gradient(var(--red),var(--red)) left center/var(--title-fill,100%) 100% no-repeat;background-clip:text;-webkit-background-clip:text}
  .connection-card{transform:translate3d(var(--card-entry-x,-24px),52px,0) rotate(var(--card-entry-turn,-1.5deg));transition:transform .9s cubic-bezier(.16,1,.3,1),border-color .25s;transform-origin:center bottom}
  .connection-card.is-in-view{transform:none}
  .service-card::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1);pointer-events:none}
  .service-card:hover::after,.service-card:focus-visible::after{transform:scaleX(1)}
  .service-card .service-card__media img,.has-motion .service-card__media img{transition:transform .65s cubic-bezier(.16,1,.3,1),filter .4s}
  .service-card:hover .service-card__media img,.service-card:focus-visible .service-card__media img,.has-motion .service-card:hover .service-card__media.is-revealed img{transform:scale(1.065) translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0);filter:saturate(1.08)}
  .service-card .card-arrow{transition:transform .35s}
  .service-card:hover .card-arrow,.service-card:focus-visible .card-arrow{transform:rotate(-12deg) scale(1.2)}
  .g470-connect svg rect{transition:transform .35s cubic-bezier(.16,1,.3,1)}
  a:hover .g470-connect svg rect:first-child,a:focus-visible .g470-connect svg rect:first-child{transform:translate(3px,3px)}
  a:hover .g470-connect svg rect:last-child,a:focus-visible .g470-connect svg rect:last-child{transform:translate(-3px,-3px)}
  .visual-interlude{height:clamp(540px,92svh,900px);overflow:clip}
  .has-expressive-motion .visual-interlude__frame{clip-path:none;transform:none}
  .has-expressive-motion .visual-interlude__frame img{position:absolute;left:0;top:calc(-1 * var(--parallax-overscan,0px));width:100%;height:calc(100% + var(--parallax-overscan,0px) * 2);object-fit:cover;transform:translate3d(0,var(--parallax-image-y,0px),0);transition:none;will-change:auto}
  .has-expressive-motion .is-parallax-visible .visual-interlude__frame img{will-change:transform}
  .visual-interlude__overlay::before,.visual-interlude__overlay::after{content:'';position:absolute;pointer-events:none;top:16%;right:9%;width:clamp(170px,23vw,360px);aspect-ratio:1;border:2px solid #fff9;transform:translate3d(calc(var(--scene-travel,0px)*-.6),var(--parallax-graphics-y,0px),0) rotate(calc(-18deg + var(--scene-turn,0deg)))}
  .visual-interlude__overlay::after{top:23%;right:5%;border-color:var(--accent-on-dark);transform:translate3d(calc(var(--scene-travel,0px)*.45),calc(var(--parallax-graphics-y,0px)*.65),0) rotate(calc(12deg - var(--scene-turn,0deg)))}
  .visual-interlude__statement{max-width:1050px;transform:translate3d(0,var(--parallax-copy-y,0px),0)}
  .visual-interlude__label{transform:none}
  .has-expressive-motion .outcome-photo img,.has-expressive-motion .interior-art img{transform:translate3d(0,calc(var(--scene-travel,0px)*-.35),0) scale(1.09)}
  .has-expressive-motion .interior-art[data-parallax-photo]>img{position:absolute;left:0;top:calc(-1 * var(--parallax-overscan,0px));width:100%;height:calc(100% + var(--parallax-overscan,0px) * 2);object-fit:cover;transform:translate3d(0,var(--parallax-image-y,0px),0);transition:none;will-change:auto}
  .has-expressive-motion [data-parallax-photo].is-parallax-visible>img{will-change:transform}
  [data-parallax-photo]>figcaption{z-index:1;transform:none}
  .has-expressive-motion .principles-grid .principle-icon{transform:translateY(12px) rotate(-20deg) scale(.65);transition:transform .8s cubic-bezier(.16,1,.3,1)}
  .has-expressive-motion .principles-grid>.is-in-view .principle-icon{transform:none}
  .has-expressive-motion .principles-grid>div{position:relative;overflow:hidden}
  .has-expressive-motion .principles-grid>div::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .85s cubic-bezier(.16,1,.3,1)}
  .has-expressive-motion .principles-grid>.is-in-view::after{transform:scaleX(1)}
  .instagram-section__visual::before{transform:translate3d(calc(var(--scene-travel,0px)*-.25),0,0) rotate(calc(-18deg + var(--scene-turn,0deg)))}
  .instagram-section__visual::after{transform:translate3d(calc(14% + var(--scene-travel,0px)*.2),12%,0) rotate(calc(12deg - var(--scene-turn,0deg)))}
  .instagram-section__visual svg{transform:rotate(calc(var(--scene-turn,0deg)*-.3))}
  .text-link .g470-connect{transition:transform .4s cubic-bezier(.16,1,.3,1)}
  .text-link:hover .g470-connect{transform:translateX(5px) rotate(-10deg)}
  @keyframes g470-photo-arrive{from{transform:scale(1.09) translate3d(1%,0,0)}to{transform:scale(1) translate3d(0,0,0)}}
  @keyframes g470-word-arrive{from{transform:translate3d(0,112%,0) rotate(5deg)}to{transform:none}}
  @keyframes g470-slide-clock{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}
@media(max-width:720px) and (prefers-reduced-motion:no-preference){
  .motion-heading .motion-word__ink{transition-duration:.65s;transition-delay:calc(var(--word-order,0)*18ms)}
  .has-carousel .hero-slide.is-active .motion-word__ink{animation-duration:.75s;animation-delay:calc(var(--word-order,0)*40ms)}
  .connection-card{transform:translate3d(0,32px,0);transition-duration:.7s}
  .connection-card.is-in-view{transform:none}
  .visual-interlude{height:clamp(490px,78svh,720px)}
  .visual-interlude__overlay::before,.visual-interlude__overlay::after{width:48%;top:16%;right:-3%;opacity:.65}
  .visual-interlude__overlay::after{top:24%;right:6%}
  .visual-interlude__statement{left:1.25rem;right:1.25rem;transform:none}
  .has-expressive-motion .visual-interlude__frame img{object-position:42% center}
  .intro-collage::before,.intro-collage::after{border-width:1px}
}
@media(max-width:420px){.inner-hero h1{font-size:clamp(2.1rem,9.5vw,2.6rem)}}
@media(hover:none){
  .service-card:hover .service-card__media img,.has-motion .service-card:hover .service-card__media.is-revealed img{transform:none;filter:none}
}
@media(prefers-reduced-motion:reduce){
  .motion-word,.motion-word__ink{transform:none!important;animation:none!important;transition:none!important}
  .connection-card{transform:none!important}
  .hero.is-rotating .hero-dot.is-active::after{display:none}
}
