/* Motion is decorative. Navigation, text and forms remain usable without it. */
.reading-progress{position:fixed;z-index:30;top:0;left:0;width:100%;height:3px;background:#d3b7ff;transform:scaleX(0);transform-origin:left;pointer-events:none;box-shadow:0 0 14px #b58cff88}
.hero{background-image:radial-gradient(circle at 77% 34%,#50357255,transparent 37%)}
.hero:after{content:'';position:absolute;z-index:0;width:660px;height:660px;right:-90px;top:0;border:1px solid #ba9cda30;border-radius:50%;box-shadow:0 0 0 95px #ba9cda0c,0 0 0 195px #ba9cda09;pointer-events:none}
.hero .eyebrow{display:inline-flex;align-items:center;gap:14px}.hero .eyebrow:before{content:'';width:31px;height:1px;background:#bda2e7}
.hero h1 em{display:inline-block;position:relative}.hero h1 em:after{content:'';position:absolute;left:0;bottom:-.08em;width:100%;height:3px;background:#a58bdb;transform-origin:left;transform:scaleX(0)}
.strip{overflow:hidden}.strip .wrap{position:relative}
.board{will-change:transform}.board .sample{transition:transform .3s ease}.board .browser{position:relative}.board .browser:after{content:'';position:absolute;right:10px;bottom:0;height:1px;width:28%;background:#8e68c7}
.button svg,.textlink{transition:transform .22s ease}.button:hover svg{transform:translate(3px,-3px)}.textlink:hover{transform:translateY(-2px)}
.cards article{position:relative;overflow:hidden}.cards article:after{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:#6e44a8;transform:scaleX(0);transform-origin:left}
.tradecards a{position:relative;overflow:hidden}.tradecards a:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#d8c6ee30 47%,transparent 62%);transform:translateX(-120%);pointer-events:none}
.price{position:relative;overflow:hidden}.price:before{content:'';position:absolute;width:240px;height:240px;right:-130px;top:-120px;border:1px solid #bda1e751;border-radius:50%;box-shadow:0 0 0 42px #bda1e70b,0 0 0 84px #bda1e70a;pointer-events:none}
.price .amount{display:inline-block}.steps li{position:relative}.steps li:after{content:'';position:absolute;top:-2px;left:0;height:2px;width:100%;background:#8050bd;transform:scaleX(0);transform-origin:left}
.contact form{position:relative}.contact form:before{content:'';position:absolute;top:-1px;left:-1px;width:70px;height:3px;background:#bfa4e4}
.contact input,.contact textarea{transition:border-color .2s ease,box-shadow .2s ease}.contact input:focus,.contact textarea:focus{border-color:#c4a4eb;box-shadow:0 0 0 3px #a875df30}
@media(prefers-reduced-motion:no-preference){
  .reading-progress{transition:transform .12s linear}
  .hero:after{animation:orbit-breathe 18s ease-in-out infinite alternate}
  .hero h1 em:after{animation:line-draw .7s .7s ease-out both}
  .strip .wrap{animation:strip-drift 12s ease-in-out infinite alternate}
  .board .browser:after{animation:browser-scan 3.8s ease-in-out infinite alternate}
  .board .sample{transform:translate(var(--sample-x,0px),var(--sample-y,0px))}
  .cards article:after,.steps li:after{transition:transform .3s ease}
  .cards article:hover:after,.steps li:hover:after{transform:scaleX(1)}
  .tradecards a:before{transition:transform .55s ease}
  .tradecards a:hover:before{transform:translateX(120%)}
  .price .amount{animation:price-pulse 7s ease-in-out infinite}
  .contact .button{position:relative;overflow:hidden}.contact .button:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff7 50%,transparent 65%);transform:translateX(-120%);transition:transform .6s ease}.contact .button:hover:after{transform:translateX(120%)}
  .motion-ready .sectionhead h2,.motion-ready .split h2{clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.2,.8,.25,1)}
  .motion-ready .sectionhead.motion-in h2,.motion-ready .split.motion-in h2,.motion-ready .split>div.motion-in h2{clip-path:inset(0)}
}
@keyframes orbit-breathe{to{transform:translate(-45px,25px) scale(1.08)}}
@keyframes line-draw{to{transform:scaleX(1)}}
@keyframes strip-drift{to{transform:translateX(18px)}}
@keyframes browser-scan{to{width:75%}}
@keyframes price-pulse{50%{text-shadow:0 0 22px #c2a3f655}}
@media(max-width:760px){.hero:after{width:370px;height:370px;right:-160px;top:60px}.strip .wrap{animation:none!important}.board .sample{transform:none!important}}
@media(prefers-reduced-motion:reduce){.reading-progress{display:none}.hero:after,.hero h1 em:after,.strip .wrap,.board .browser:after,.price .amount{animation:none!important}.hero h1 em:after{transform:scaleX(1)}.board .sample,.cards article:after,.steps li:after,.tradecards a:before{transition:none;transform:none}.motion-ready .sectionhead h2,.motion-ready .split h2{clip-path:none}}
