@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes slideIn{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
@keyframes foil{0%{background-position:150% 0}100%{background-position:-150% 0}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes grow2{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes spinIn{from{transform:rotate(-200deg) scale(.3);opacity:0}to{transform:none;opacity:1}}
@keyframes ring{0%,90%,100%{transform:rotate(0)}92%{transform:rotate(14deg)}94%{transform:rotate(-12deg)}96%{transform:rotate(8deg)}98%{transform:rotate(-4deg)}}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(0) rotate(0)}50%{opacity:1;transform:scale(1) rotate(180deg)}}
@keyframes fall{0%{transform:translateY(-10vh) translateX(0) rotate(0);opacity:0}10%{opacity:.9}100%{transform:translateY(110vh) translateX(80px) rotate(540deg);opacity:.6}}
@keyframes gemSpin{0%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}
@keyframes glow{0%,100%{filter:drop-shadow(0 0 6px rgba(241,217,138,.5))}50%{filter:drop-shadow(0 0 22px rgba(241,217,138,1))}}
@keyframes sealPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes flapOpen{from{transform:rotateX(0)}to{transform:rotateX(180deg)}}
@keyframes letterRise{from{transform:translateY(60px);opacity:0}to{transform:translateY(-30px);opacity:1}}
.gold-text{animation:foil 5s linear infinite}
.reveal{animation:fadeUp .7s both;animation-delay:calc(var(--i,0)*90ms)}
.gem{filter:drop-shadow(0 0 8px rgba(241,217,138,.7));animation:glow 3s infinite}
.fx-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.spark{position:absolute;width:var(--s,14px);height:var(--s,14px);color:var(--gold);animation:twinkle var(--d,3s) infinite;animation-delay:var(--dl,0s);font-size:var(--s,14px)}
.petal{position:absolute;top:-10vh;width:var(--s,18px);height:var(--s,18px);color:var(--gold-l);animation:fall var(--d,10s) linear infinite;animation-delay:var(--dl,0s);font-size:var(--s,18px)}
