/* ============================================================
   Growth Galaxy — animations.css
   All keyframes and motion timing live here, separate from layout.
   ============================================================ */

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* ---------- Ambient background ---------- */
@keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(60px,40px)}}
@keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-30px)}}
@keyframes leak{0%,100%{transform:translateX(-8%) rotate(0deg);opacity:.6;}50%{transform:translateX(8%) rotate(1deg);opacity:1;}}
.orb1{animation:drift1 24s ease-in-out infinite;}
.orb2{animation:drift2 27s ease-in-out infinite;}
.light-leak{animation:leak 9s ease-in-out infinite;}

/* ---------- Letterbox REC dot ---------- */
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.25;}}
.rec-dot{animation:blink 1.4s ease-in-out infinite;}

/* ---------- Camera HUD reveal (page-load focus-lock) ---------- */
@keyframes hudIn{from{opacity:0;transform:scale(1.3);}to{opacity:1;transform:scale(1);}}
.hud-corner{opacity:0;animation:hudIn .6s ease forwards;}
.hud-corner.tl{animation-delay:.2s;}
.hud-corner.tr{animation-delay:.3s;}
.hud-corner.bl{animation-delay:.4s;}
.hud-corner.br{animation-delay:.5s;}

/* ---------- Floating growth chips ---------- */
@keyframes chipIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes bob{0%,100%{margin-top:0;}50%{margin-top:-10px;}}
.growth-chip{opacity:0;animation:bob 5s ease-in-out infinite, chipIn .6s ease forwards;}
.chip1{animation-delay:.6s, .6s;}
.chip2{animation-delay:.8s, .8s;}
.chip3{animation-delay:1s, 1s;}

/* ---------- Iris breathing ---------- */
@keyframes breathe{0%,100%{transform:scale(1);}50%{transform:scale(.92);}}
.iris{animation:breathe 6s ease-in-out infinite;}

/* ---------- Hero brand sheen ---------- */
@keyframes sheen{0%{background-position:0% center;}100%{background-position:220% center;}}
.hero-brand{animation:sheen 6s linear infinite;}

/* ---------- Reveal-on-scroll transition ---------- */
.reveal{transition:opacity .7s ease, transform .7s ease;}

/* ---------- Tilt cards ---------- */
.tilt-card{transition:transform .15s ease-out, box-shadow .3s;}
.tilt-card::after{transition:opacity .3s;}

/* ---------- Cursor ---------- */
.cursor-ring{transition:width .25s,height .25s,border-color .25s,background .25s;}
.cursor-ring span{transition:opacity .2s;}

/* ---------- Nav / buttons ---------- */
.nav-links a{transition:color .2s;}
.cta-btn{transition:box-shadow .3s,transform .2s;}
.cta-btn:hover{box-shadow:0 0 26px rgba(139,92,246,.5);transform:translateY(-1px);}
.btn-primary{transition:box-shadow .3s;}
.btn-primary:hover{box-shadow:0 0 40px rgba(139,92,246,.5);}
.btn-ghost{transition:background .2s,border-color .2s;}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);}
.btn-outline-gold{transition:background .2s,border-color .2s;}
.btn-outline-gold:hover{background:rgba(240,185,78,.14);border-color:var(--accent-gold);}
.btn-store{transition:box-shadow .3s;}
.btn-store:hover{box-shadow:0 0 46px rgba(240,185,78,.5);}
.btn-store:hover .arrow{transform:translateX(3px);}
.arrow{transition:transform .2s;}
.buy-btn{transition:background .2s,border-color .2s;}
.tab{transition:.2s;}
.canister, .p-card{transition:transform .25s, border-color .25s, box-shadow .25s;}
.canister:hover, .p-card:hover{transform:translateY(-4px);border-color:rgba(240,185,78,.35);box-shadow:0 0 40px rgba(240,185,78,.10);}

/* ---------- Accordion ---------- */
.accordion-a{transition:max-height .3s ease, padding .3s ease;}
.accordion-q .plus{transition:transform .25s;}
.accordion-item.open .accordion-q .plus{transform:rotate(45deg);}

/* ---------- Form inputs ---------- */
.form-card input,.form-card textarea{transition:border-color .2s;}

/* ---------- Billing toggle knob ---------- */
.switch .knob{transition:transform .25s;}
