.scroll-progress{position:fixed;z-index:120;top:0;left:0;width:100%;height:3px;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#ff7300,#ffb15e);transform:scaleX(0);transform-origin:left;box-shadow:0 0 12px rgba(255,115,0,.5);will-change:transform}.event-ribbon-logo{width:48px;height:48px;object-fit:contain;border-radius:9px;background:#fff;padding:4px}.sponsor-brand img{width:120px;max-height:64px;object-fit:contain;background:#fff;border-radius:8px;padding:6px}
.reveal{opacity:0;transform:translate3d(0,34px,0);transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}.reveal.reveal-left{transform:translate3d(-42px,0,0)}.reveal.reveal-right{transform:translate3d(42px,0,0)}.reveal.reveal-scale{transform:scale(.93) translate3d(0,18px,0)}.reveal.is-visible{opacity:1;transform:none;will-change:auto}
.hero-copy{animation:heroCopyIn .85s cubic-bezier(.2,.75,.2,1) both}.hero-visual{animation:heroVisualIn 1s .12s cubic-bezier(.2,.75,.2,1) both}.login-card{animation:heroCardIn .82s .22s cubic-bezier(.2,.75,.2,1) both}.hero-visual>img{animation:petBreath 5s 1.2s ease-in-out infinite}.hero-visual .blob{animation:blobMorph 9s ease-in-out infinite}.float-paw{animation:floatPaw 3.8s ease-in-out infinite}.float-heart{animation:floatHeart 3.2s ease-in-out infinite}.hero-badge{animation:badgeFloat 3.6s 1s ease-in-out infinite}.brand-paw{display:inline-block;animation:pawHello 1.1s .45s cubic-bezier(.2,.8,.25,1) both}.phone:hover{transform:translateY(-8px) rotate(.4deg);box-shadow:0 24px 45px rgba(69,38,16,.17)}.phone{transition:transform .35s,box-shadow .35s}.template-card{transition:transform .32s,box-shadow .32s}.template-card:hover{transform:translateY(-7px) rotate(-.6deg);box-shadow:0 18px 30px rgba(51,28,12,.15)}.step>span{transition:transform .3s}.step:hover>span{transform:translateY(-5px) scale(1.08)}.sponsor-banner>img{animation:petBreath 5.5s ease-in-out infinite}.btn{position:relative;overflow:hidden}.btn::after{content:"";position:absolute;top:-70%;left:-55%;width:36%;height:240%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);transform:rotate(24deg);transition:left .65s}.btn:hover::after{left:125%}
@keyframes heroCopyIn{from{opacity:0;transform:translate3d(-45px,18px,0)}to{opacity:1;transform:none}}@keyframes heroVisualIn{from{opacity:0;transform:scale(.88) translateY(24px)}to{opacity:1;transform:none}}@keyframes heroCardIn{from{opacity:0;transform:translate3d(42px,18px,0)}to{opacity:1;transform:none}}@keyframes petBreath{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes blobMorph{0%,100%{border-radius:45% 55% 42% 58%/47% 42% 58% 53%;transform:rotate(-3deg) scale(1)}50%{border-radius:52% 48% 57% 43%/42% 55% 45% 58%;transform:rotate(1deg) scale(1.025)}}@keyframes floatPaw{0%,100%{transform:translateY(0) rotate(-16deg)}50%{transform:translateY(-12px) rotate(8deg)}}@keyframes floatHeart{0%,100%{transform:translateY(0) rotate(15deg) scale(1)}50%{transform:translateY(-9px) rotate(7deg) scale(1.08)}}@keyframes badgeFloat{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-7px)}}@keyframes pawHello{0%{opacity:0;transform:scale(.4) rotate(-25deg)}65%{transform:scale(1.15) rotate(8deg)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal.reveal-left,.reveal.reveal-right,.reveal.reveal-scale{opacity:1!important;transform:none!important;transition:none!important}.hero-copy,.hero-visual,.login-card,.hero-visual>img,.hero-visual .blob,.float-paw,.float-heart,.hero-badge,.brand-paw,.sponsor-banner>img{animation:none!important}.phone,.template-card,.btn{transition:none!important}}
