/* Movement is decorative. Content stays readable with motion paused or disabled. */
.page-progress{position:fixed;inset:0 0 auto;height:2px;background:linear-gradient(90deg,#a776cc,#e2b9ff);transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:40;box-shadow:0 0 12px #d4a6f755}
.header{transition:box-shadow .3s,background .3s}.header.scrolled{background:#101019f5;box-shadow:0 8px 35px #0002}
.header nav a,.secondary-link,.email-link{position:relative}.header nav a:after,.secondary-link:after{content:'';height:1px;position:absolute;bottom:-6px;left:0;right:0;background:#c7a0e5;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.header nav a:hover:after,.header nav a:focus-visible:after,.secondary-link:hover:after,.secondary-link:focus-visible:after{transform:scaleX(1)}
.button.primary{position:relative;overflow:hidden;isolation:isolate}.button.primary:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 20%,#ffffff60 50%,transparent 80%);transform:translateX(-140%);pointer-events:none}.button>span{transition:transform .3s ease,background .3s ease}.button:hover>span,.button:focus-visible>span{transform:rotate(45deg);background:#67417d1a}.nav-cta span,.secondary-link span{display:inline-block;transition:transform .3s ease}.nav-cta:hover span{transform:translate(2px,-2px)}.secondary-link:hover span{transform:translateY(3px)}
@keyframes hero-welcome{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes studio-breathe{0%,100%{opacity:.4;transform:scale(.96)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes star-turn{to{transform:rotate(360deg)}}
@keyframes browser-float{0%,100%{transform:translateY(19px) rotate(-5deg)}50%{transform:translateY(12px) rotate(-3deg)}}
@keyframes block-highlight{0%,15%,65%,100%{background:#d4a5fa12;border-color:#d7b4f00c}30%,50%{background:#d4a5fa30;border-color:#d7b4f03b}}
@keyframes workflow-step{0%,15%,75%,100%{border-color:#c59de02e;box-shadow:0 0 0 transparent;background:#21182d}30%,55%{border-color:#d6b4ee88;box-shadow:0 0 17px #bd88e122;background:#b48bda20}}
@keyframes connector-step{0%,15%,75%,100%{opacity:.45;transform:translateX(0)}30%,55%{opacity:1;transform:translateX(2px)}}
@keyframes idea-float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-5px) rotate(-4deg)}}
@keyframes launch-float{0%,100%{transform:translateY(0) rotate(5deg)}50%{transform:translateY(4px) rotate(3deg)}}
@keyframes core-breathe{0%,100%{box-shadow:0 0 20px #b480d51a;transform:rotate(20deg) scale(1)}50%{box-shadow:0 0 35px #b480d53d;transform:rotate(25deg) scale(1.04)}}
@keyframes faq-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@keyframes button-sheen{to{transform:translateX(140%)}}
@media(prefers-reduced-motion:no-preference){
.hero-content>.eyebrow{animation:hero-welcome .65s ease both}.hero h1{animation:hero-welcome .75s .08s ease both}.hero-copy{animation:hero-welcome .75s .16s ease both}.hero-actions,.hero-note{animation:hero-welcome .75s .24s ease both}
.art-glow{animation:studio-breathe 7s ease-in-out infinite}.art-star{animation:star-turn 40s linear infinite}.mini-browser{animation:browser-float 7s ease-in-out infinite}.mock-blocks i{animation:block-highlight 6s ease-in-out infinite}.mock-blocks i:nth-child(2){animation-delay:.65s}.mock-blocks i:nth-child(3){animation-delay:1.3s}
.flow-track>span{animation:workflow-step 6s ease-in-out infinite}.flow-track>span:nth-of-type(2){animation-delay:1s}.flow-track>span:nth-of-type(3){animation-delay:2s}.flow-track>i{animation:connector-step 6s ease-in-out infinite}.flow-track>i:nth-of-type(2){animation-delay:1s}
.product-orbit:before{animation:star-turn 35s linear infinite}.product-core{animation:core-breathe 7s ease-in-out infinite}.tag-idea{animation:idea-float 6.5s ease-in-out infinite}.tag-launch{animation:launch-float 7.5s ease-in-out infinite}
.hero-art img,.art-glow,.art-star,.service-visual *,.service-visual *:before{animation-play-state:paused}.hero-art.in-view img,.hero-art.in-view .art-glow,.hero-art.in-view .art-star,.service-visual.in-view *,.service-visual.in-view *:before{animation-play-state:running}
.faq-list details[open]>p{animation:faq-reveal .3s ease-out}.button.primary:hover:after,.button.primary:focus-visible:after{animation:button-sheen .8s ease-out}.service-card:hover .mini-browser{animation-play-state:paused}.service-card.is-visible:hover{transform:translateY(-3px)}
}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .hero-content>*{opacity:1!important;transform:none!important}.motion-paused .faq-list details[open]>p{animation:none!important}.motion-paused .service-card.is-visible:hover{transform:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.hero-content>*{opacity:1!important;transform:none!important}}

@keyframes faq-light-drift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes faq-dot-breathe{0%,100%{box-shadow:0 0 0 5px #c295ed0c,0 0 16px #bc7de840}50%{box-shadow:0 0 0 8px #c295ed04,0 0 23px #bc7de870}}
@media(prefers-reduced-motion:no-preference){
#questions .section-heading h2 span,#questions .section-heading h2:after{animation:faq-light-drift 7s ease-in-out infinite;animation-play-state:paused}
#questions .section-heading .eyebrow:before{animation:faq-dot-breathe 4s ease-in-out infinite;animation-play-state:paused}
#questions.in-view .section-heading h2 span,#questions.in-view .section-heading h2:after,#questions.in-view .section-heading .eyebrow:before{animation-play-state:running}
}
.motion-paused #questions *,.motion-paused #questions *:before,.motion-paused #questions *:after{transition:none!important}

/* The main emblem floats gently, with a soft pulse of violet light. */
@keyframes emblem-float{0%,100%{transform:translateY(0) rotate(-1deg) scale(1)}50%{transform:translateY(-10px) rotate(1deg) scale(1.025)}}
@keyframes emblem-glow{0%,100%{filter:drop-shadow(0 0 5px #b06de31a) brightness(1)}50%{filter:drop-shadow(0 0 17px #bd76ed40) brightness(1.08)}}
@media(prefers-reduced-motion:no-preference){.hero-art img{transform-origin:50% 52%;animation:emblem-float 7s ease-in-out infinite,emblem-glow 7s ease-in-out infinite;animation-play-state:paused}.hero-art.in-view img{animation-play-state:running}}

/* A livelier emblem float, keeping the surrounding copy steady. */
@keyframes emblem-float{0%,100%{transform:translate(0,0) rotate(-2deg) scale(1)}25%{transform:translate(4px,-9px) rotate(0deg) scale(1.025)}50%{transform:translate(0,-18px) rotate(2deg) scale(1.045)}75%{transform:translate(-4px,-7px) rotate(0deg) scale(1.015)}}
@keyframes emblem-glow{0%,100%{filter:drop-shadow(0 0 7px #b06de32b) brightness(1)}50%{filter:drop-shadow(0 0 24px #bd76ed6b) brightness(1.15)}}
@media(prefers-reduced-motion:no-preference){.hero-art img{animation-duration:5.5s,5.5s}}
