@keyframes rise{from{opacity:0;transform:translateY(18px)}}
@keyframes brand-in{from{opacity:0;transform:translateX(-10px)}}
@keyframes fade{from{opacity:0}}
@keyframes swap{from{opacity:0;transform:translateY(8px)}}
@keyframes ink-pulse{0%,12%,100%{transform:none}6%{transform:scale(1.5)}}
@keyframes spin{to{transform:rotate(1turn)}}
@keyframes shine{from{background-position:0 0}to{background-position:100% 0}}
@keyframes shine-hover{from{background-position:0 0}to{background-position:100% 0}}
.site-header{transition:box-shadow .3s}
.site-header.is-scrolled{box-shadow:0 6px 24px #182e2910}
.site-header .brand-mark{animation:brand-in .6s .1s cubic-bezier(.2,.7,.2,1) backwards;transition:transform .35s cubic-bezier(.3,1.6,.5,1);transform-origin:40% 100%}
.site-header .brand-word{animation:brand-in .6s .22s cubic-bezier(.2,.7,.2,1) backwards}
.brand:hover .brand-mark{transform:translateY(-2px) rotate(-5deg)}
.hero-copy>*{animation:rise .7s cubic-bezier(.2,.7,.2,1) backwards}
.hero-copy>:nth-child(2){animation-delay:.08s}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.hero-copy>:nth-child(n+5){animation-delay:.32s}
.hero-product{animation:rise .9s .3s cubic-bezier(.2,.7,.2,1) backwards}
.cmyk-dots i{animation:ink-pulse 5s ease-in-out infinite}
.cmyk-dots i:nth-child(2){animation-delay:.14s}.cmyk-dots i:nth-child(3){animation-delay:.28s}.cmyk-dots i:nth-child(4){animation-delay:.42s}
.cta-mark{animation:spin 48s linear infinite}
.button svg{transition:transform .2s}
.button:hover svg{transform:translateX(3px)}
.swap-in{animation:swap .4s cubic-bezier(.2,.7,.2,1) backwards}
.workflow-visual.swap-in,.tool-visual.swap-in{animation-delay:.06s}
#hero-screen.swap-in,#portal-image.swap-in{animation:fade .35s ease}
.price-card{transition:transform .25s,box-shadow .25s}
.price-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px #24403012}
.price-card-featured:hover{box-shadow:0 18px 40px #087fa91c}
.outline-step{transition:background .25s,color .25s,border-color .25s}
.selfservice-steps article>svg{transition:transform .3s,color .3s}
.selfservice-steps article:hover .outline-step{background:var(--blue);border-color:var(--blue);color:#fff}
.selfservice-steps article:hover>svg{transform:translateY(-3px);color:var(--blue)}
.footer-logo:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 42%,#ffffffb8 50%,transparent 58%) 0 0/250% 100% no-repeat;-webkit-mask:url(assets/arttevo-logo.webp) center/100% 100% no-repeat;mask:url(assets/arttevo-logo.webp) center/100% 100% no-repeat}
.footer-logo.shine:after{animation:shine 1.5s .35s ease-in-out}
.footer-logo.shine:hover:after{animation:shine-hover 1.2s ease-in-out}
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s)}
[data-reveal].is-visible{opacity:1;transform:none}
