/* Motion language: short feedback, calm entrances, artwork-only depth. */
:root{--dm-ease:cubic-bezier(.22,1,.36,1);--dm-fast:180ms;--dm-enter:680ms}
@view-transition{navigation:auto}
::view-transition-old(root){animation:dm-page-out 160ms ease-out both}
::view-transition-new(root){animation:dm-page-in 260ms var(--dm-ease) both}
@keyframes dm-page-out{to{opacity:0}}
@keyframes dm-page-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
/* Reveal uses a single composited translation and opacity; no blur or layout animation. */
.dm-motion .dm-reveal{transition:opacity var(--dm-enter) var(--dm-ease),translate 780ms var(--dm-ease);transition-delay:var(--dm-reveal-delay,0ms);translate:0 20px}
.dm-motion .dm-reveal.dm-is-visible,.dm-motion .dm-reveal:focus-within{translate:0 0}
.dm-motion .dm-header{transition:background-color 280ms ease,box-shadow 280ms ease,border-color 280ms ease}
.dm-motion .dm-nav a:not(.hp-mobile-cta){transition:color var(--dm-fast) ease}
.dm-motion .dm-nav a:before{content:"";position:absolute;bottom:3px;inset-inline:12%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 280ms var(--dm-ease);pointer-events:none}
.dm-motion .dm-nav a{position:relative}
.dm-motion .dm-nav a:hover:before,.dm-motion .dm-nav a:focus-visible:before{transform:scaleX(1)}
.dm-motion :is(.dm-button,.hp-button){position:relative;isolation:isolate;overflow:hidden;transition:transform 250ms var(--dm-ease),box-shadow 250ms ease,border-color 250ms ease,background-color 250ms ease}
.dm-motion :is(.dm-button,.hp-button):before{content:"";position:absolute;inset:-50% -30%;background:linear-gradient(110deg,transparent 35%,#ffffff30 50%,transparent 65%);transform:translateX(115%);pointer-events:none;z-index:-1}
.dm-motion :is(.dm-button,.hp-button)>span:not(.screen-reader-text){display:inline-block;transition:transform 280ms var(--dm-ease)}
.dm-motion :is(.dm-button,.hp-button):active{transform:translateY(0) scale(.98)}
.dm-motion :is(.hp-link,.dm-text-link)>span[aria-hidden]{display:inline-block;transition:transform 280ms var(--dm-ease)}
.dm-motion :is(.hp-link,.dm-text-link):hover>span[aria-hidden]{transform:translateX(-4px)}
.dm-motion :is(.hp-service,.hp-audience button){transition:background-color 260ms ease,border-color 260ms ease,color 200ms ease,box-shadow 260ms ease}
.dm-motion .hp-service-icon{transition:transform 350ms var(--dm-ease),background-color 250ms ease,border-color 250ms ease}
.dm-motion .hp-service.is-active .hp-service-icon{background:#fff7;border-color:#dcc5ff;transform:scale(1.06)}
.dm-motion .hp-service-number{transition:color 200ms ease,transform 300ms var(--dm-ease)}
.dm-motion .hp-service.is-active .hp-service-number{transform:translateX(-2px)}
.dm-motion :is(.hp-faq summary span,.hp-form-options summary:after){transition:transform 300ms var(--dm-ease),background-color 200ms ease}
.dm-motion .hp-faq details[open] summary span{background:#e9dbff}
.dm-motion :is(.hp-project-form input,.hp-project-form textarea,.hp-project-form select,.dm-client-search input){transition:border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease}
.dm-motion :is(.hp-project-form input,.hp-project-form textarea,.hp-project-form select):focus{background:#fff;box-shadow:0 0 0 3px #8425ff0b}
.dm-motion .hp-form-feedback{animation:dm-feedback 300ms var(--dm-ease) both}
@keyframes dm-feedback{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.dm-motion .hp-hero-art>img,.dm-motion .hp-publishing-art>img,.dm-motion .hp-hosting-art>img{transform:translateY(var(--dm-parallax,0px))}
/* Gentle ambient motion runs only while the artwork is on screen. */
@media(min-width:768px) and (hover:hover) and (pointer:fine){
 .dm-motion .hp-orbit{animation:dm-orbit-breathe 16s ease-in-out infinite alternate;animation-play-state:paused}
 .dm-motion .dm-in-viewport .hp-orbit{animation-play-state:running}
 .dm-motion .hp-status{animation:dm-status-float 5s ease-in-out infinite;animation-play-state:paused}
 .dm-motion .dm-in-viewport .hp-status{animation-play-state:running}
 .dm-motion :is(.dm-button,.hp-button):hover:before,.dm-motion :is(.dm-button,.hp-button):focus-visible:before{transform:translateX(-115%);transition:transform 650ms ease}
 .dm-motion :is(.dm-button,.hp-button):hover>span[aria-hidden]{transform:translate(-2px,-2px)}
 .dm-motion :is(.hp-project-stage,.dm-project-media){transform:perspective(1100px) rotateX(var(--dm-tilt-x,0deg)) rotateY(var(--dm-tilt-y,0deg));transition:transform 450ms var(--dm-ease),box-shadow 350ms ease}
 .dm-motion :is(.hp-project-stage,.dm-project-media):hover{box-shadow:0 15px 32px #2b16451c}
 .dm-motion .hp-work-caption>a{transition:background-color 200ms ease,transform 280ms var(--dm-ease)}
 .dm-motion .dm-client-card:not(.hp-client-row .dm-client-card){transition:box-shadow 250ms ease,border-color 250ms ease,transform 350ms var(--dm-ease)}
 .dm-motion .dm-client-card:not(.hp-client-row .dm-client-card):hover{transform:translateY(-4px)}
 .dm-motion .hp-client-row .dm-client-logo img{transition:transform 350ms var(--dm-ease)}
 .dm-motion .hp-client-row a:hover .dm-client-logo img{transform:translateY(-3px) scale(1.025)}
 .dm-motion .hp-step-visual>div{transition:transform 400ms var(--dm-ease)}
 .dm-motion .hp-steps li:hover .hp-step-visual>div{transform:translateY(-5px) rotate(-3deg)}
}
@keyframes dm-orbit-breathe{from{transform:rotate(-26deg) scale(.97)}to{transform:rotate(-18deg) scale(1.025)}}
@keyframes dm-status-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1050px){
 .dm-motion .dm-nav{opacity:0;transform:translateY(-7px);pointer-events:none;transition:opacity 220ms ease,transform 280ms var(--dm-ease),display 280ms allow-discrete}
 .dm-motion .dm-nav.dm-open{opacity:1;transform:translateY(0);pointer-events:auto}
 @starting-style{.dm-motion .dm-nav.dm-open{opacity:0;transform:translateY(-7px)}}
 .dm-motion .dm-nav.dm-open a{animation:dm-menu-item 350ms var(--dm-ease) backwards}
 .dm-motion .dm-nav.dm-open a:nth-child(2){animation-delay:25ms}.dm-motion .dm-nav.dm-open a:nth-child(3){animation-delay:50ms}.dm-motion .dm-nav.dm-open a:nth-child(4){animation-delay:75ms}.dm-motion .dm-nav.dm-open a:nth-child(5){animation-delay:100ms}
 .dm-motion .dm-nav a:before{display:none}
}
@keyframes dm-menu-item{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:767px){.dm-motion .dm-reveal{translate:0 12px;transition-duration:500ms}.dm-motion .dm-reveal.dm-is-visible,.dm-motion .dm-reveal:focus-within{translate:0 0}.dm-motion .hp-hero-art>img,.dm-motion .hp-publishing-art>img,.dm-motion .hp-hosting-art>img{transform:none}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
 .dm-motion .dm-reveal{opacity:1;translate:none;transition:none}
 .dm-nav,.dm-nav a,.dm-button,.hp-home *,[data-dm-tilt]{animation:none!important;transition:none!important}
 .dm-nav.dm-open{opacity:1!important;transform:none!important}
}
html:has(body.dm-reduce-effects)::view-transition-old(root),html:has(body.dm-reduce-effects)::view-transition-new(root){animation:none!important}
body.dm-reduce-effects .hp-home *,body.dm-reduce-effects .dm-nav,body.dm-reduce-effects [data-dm-tilt]{animation:none!important;transition:none!important}
@media print{.dm-motion .dm-reveal{opacity:1!important;translate:none!important}.dm-motion .hp-home *{animation:none!important;transform:none!important}}
