/* ===== PAGE ENTRANCE ===== */
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}

.anim-1{animation:slideUp .5s cubic-bezier(.22,1,.36,1) .05s both}
.anim-2{animation:slideUp .5s cubic-bezier(.22,1,.36,1) .12s both}
.anim-3{animation:slideUp .5s cubic-bezier(.22,1,.36,1) .19s both}
.anim-4{animation:slideUp .5s cubic-bezier(.22,1,.36,1) .26s both}
.anim-5{animation:slideUp .5s cubic-bezier(.22,1,.36,1) .33s both}

/* ===== GENERATION PULSE ===== */
@keyframes genPulse{
  0%{transform:scale(1);filter:blur(0)}
  30%{transform:scale(.985);filter:blur(1.5px);opacity:.7}
  100%{transform:scale(1);filter:blur(0);opacity:1}
}
.generating .pv-in{animation:genPulse .4s cubic-bezier(.22,1,.36,1)}

/* ===== SWATCH STAGGER ===== */
@keyframes swatchPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.sw-anim .sw:nth-child(1){animation:swatchPop .3s cubic-bezier(.22,1,.36,1) 0s both}
.sw-anim .sw:nth-child(2){animation:swatchPop .3s cubic-bezier(.22,1,.36,1) .05s both}
.sw-anim .sw:nth-child(3){animation:swatchPop .3s cubic-bezier(.22,1,.36,1) .1s both}
.sw-anim .sw:nth-child(4){animation:swatchPop .3s cubic-bezier(.22,1,.36,1) .15s both}
.sw-anim .sw:nth-child(5){animation:swatchPop .3s cubic-bezier(.22,1,.36,1) .2s both}

/* ===== BUTTON EFFECTS ===== */
.btn-gen{background:var(--ac) !important;color:#fff !important;border-color:var(--ac) !important;padding:9px 22px;font-size:13px}
.btn-gen:hover{filter:brightness(1.08);box-shadow:0 4px 20px rgba(255,61,0,.3)}
.btn-gen:active{transform:scale(.95)}

/* ===== NAV LINK UNDERLINE ===== */
.nv a::after{content:'';position:absolute;bottom:2px;left:50%;width:0;height:2px;background:var(--ac);border-radius:1px;transition:all .25s cubic-bezier(.22,1,.36,1);transform:translateX(-50%)}
.nv a:hover::after,.nv a.on::after{width:60%}
.nv .pro::after{display:none}

/* ===== CARD HOVER ===== */
.pc{transition:all .3s cubic-bezier(.22,1,.36,1)}
.pc:hover{transform:translateY(-4px);box-shadow:var(--shl)}

/* ===== TOAST IMPROVED ===== */
@keyframes toastIn{from{transform:translateX(120%) scale(.9)}to{transform:translateX(0) scale(1)}}
.toast.show{animation:toastIn .35s cubic-bezier(.22,1,.36,1) forwards}

/* ===== HINT BAR BOUNCE ===== */
@keyframes hintBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}

/* ===== SMOOTH COLOR TRANSITIONS ON PREVIEW ===== */
.pv-in{transition:background .4s ease,color .4s ease}
.pv-cta{transition:background .3s ease,color .3s ease}
.pv-cta2{transition:border-color .3s ease,color .3s ease}
.pv-tag{transition:background .3s ease,color .3s ease}
.pv-minicard{transition:background .3s ease,color .3s ease}

/* ===== PAGE EXIT ===== */
@keyframes pageExit{to{opacity:0;transform:translateY(-10px)}}
.page-exit main{animation:pageExit .2s ease forwards}

/* ===== FLOATING GLOW ===== */
@keyframes subtleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
