.enter{animation:reveal .95s cubic-bezier(.2,.65,.2,1) both;animation-delay:calc(var(--i,0) * var(--stagger))}.intro .primary{animation:buttonBreath 4s ease-in-out 2s infinite}.reason-card{animation:cardArrive .7s both;animation-delay:calc(var(--card,0) * 85ms)}.reason-card.opened{animation:none}.scene.leaving{pointer-events:none}.heart-awake .heart-core{background:radial-gradient(ellipse,#ffd5e646,transparent 70%)}.secret-opening .particle-heart{transform:scale(1.04);transition:transform .9s}.secret-opening .heart-core{background:radial-gradient(ellipse,#ffe2b978,transparent 70%)}body.page-hidden *,body.page-hidden *:before,body.page-hidden *:after{animation-play-state:paused!important}
@keyframes reveal{from{opacity:0;transform:translateY(17px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes drift{from{transform:translate(-3%,0) scale(1)}to{transform:translate(10%,-7%) scale(1.1)}}
@keyframes heartFloat{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-12px) rotate(-1deg)}}
@keyframes orbitSway{from{transform:rotate(-4deg)}to{transform:rotate(5deg)}}
@keyframes twinkle{0%,100%{opacity:.5;transform:scale(.88)}50%{opacity:1;transform:scale(1.1)}}
@keyframes buttonBreath{0%,100%{box-shadow:0 8px 26px #a2608226}50%{box-shadow:0 8px 40px #a260824a}}
@keyframes drawHeart{to{stroke-dashoffset:0}}
@keyframes cardArrive{from{opacity:0;transform:translateY(20px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes cloudsPart{from{transform:translateX(0);opacity:.95}to{transform:translateX(var(--cloud-shift));opacity:.15}}
@keyframes sunrise{from{transform:translateY(25px);opacity:.2}to{transform:translateY(0);opacity:1}}
@keyframes warmth{from{opacity:0}to{opacity:1}}
@keyframes letterUnfold{from{opacity:0;transform:translateY(30px) rotateX(-8deg) scale(.96)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.constellation-path{stroke-dashoffset:0}.hero-art{transform:none!important}.scene-transition span{display:none}.card-inner{transition:none!important}.enter{opacity:1;filter:none}.cloud-left{transform:translateX(-80px);opacity:.15}.cloud-right{transform:translateX(80px);opacity:.15}}
