/* ================================================================
   LAXMI E-MITRA — SHARED STYLESHEET
   Common reset, keyframes, and utility classes for all pages.
   Page-specific CSS stays in each HTML file's <style> block.
   ================================================================ */

/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

/* ── KEYFRAMES (superset of all pages) ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes floatA{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.04)}}
@keyframes floatB{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes orb1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-15px) scale(1.1)}66%{transform:translate(-10px,12px) scale(.95)}}
@keyframes orb2{0%,100%{transform:translate(0,0)}33%{transform:translate(-15px,10px)}66%{transform:translate(12px,-18px)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes rippleOut{0%{transform:scale(0);opacity:.45}100%{transform:scale(5);opacity:0}}
@keyframes toastIn{from{transform:translate(-50%,-20px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
@keyframes toastOut{from{transform:translate(-50%,0);opacity:1}to{transform:translate(-50%,-20px);opacity:0}}
@keyframes toastSlide{from{transform:translateX(120%)}to{transform:translateX(0)}}
@keyframes successPop{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.2) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes dotBounce{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}
@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
@keyframes badgePop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes countUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(29,78,216,.35)}50%{box-shadow:0 0 0 10px rgba(29,78,216,0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes resultIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes warnIn{from{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes cropIn{from{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes refPop{0%{opacity:0;transform:scale(.85)}100%{opacity:1;transform:scale(1)}}
@keyframes sectionIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes stepIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes vipGlow{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.2)}50%{box-shadow:0 0 12px 4px rgba(245,158,11,.18)}}
@keyframes fcmPop{from{opacity:0;transform:scale(.88) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes bellShake{0%,100%{transform:rotate(0)}15%{transform:rotate(18deg)}30%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(4deg)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
@keyframes lockIn{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}
@keyframes scanLine{0%{top:0}100%{top:100%}}
@keyframes pillPulse{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes brandSlideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes limeGlow{0%,100%{text-shadow:0 0 8px rgba(222,255,154,.3),0 0 18px rgba(222,255,154,.12)}50%{text-shadow:0 0 20px rgba(222,255,154,.85),0 0 40px rgba(222,255,154,.4),0 0 80px rgba(222,255,154,.12)}}
@keyframes spinStar{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes countdownPulse{0%,100%{color:var(--danger)}50%{color:#ff8080}}
@keyframes waveFlow{0%{d:path("M0,20 C80,40 200,0 320,20 C440,40 520,10 600,20 L600,60 L0,60 Z")}50%{d:path("M0,30 C100,10 220,40 340,25 C460,10 540,35 600,30 L600,60 L0,60 Z")}100%{d:path("M0,20 C80,40 200,0 320,20 C440,40 520,10 600,20 L600,60 L0,60 Z")}}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ── RIPPLE EFFECT ── */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);animation:rippleOut .65s ease-out forwards;pointer-events:none;z-index:10;}

/* ── CROP PRESET BAR (Phase 1) ── */
.crop-preset-bar{padding:7px 14px 8px;background:#0f172a;border-top:1px solid rgba(255,255,255,.06);}
.crop-preset-label{color:#64748b;font-size:10.5px;font-family:'Noto Sans Devanagari',sans-serif;margin-bottom:5px;display:block;}
.crop-preset-btns{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:5px;}
.crop-preset{background:#1e293b;border:1.5px solid #334155;color:#94a3b8;padding:5px 10px;border-radius:8px;font-size:11px;font-family:'Noto Sans Devanagari',sans-serif;cursor:pointer;transition:all .18s;white-space:nowrap;}
.crop-preset:hover,.crop-preset.active{background:rgba(79,70,229,.15);border-color:#4f46e5;color:#a5b4fc;}
.crop-guide{color:#475569;font-size:10px;font-family:'Noto Sans Devanagari',sans-serif;line-height:1.45;padding:0 2px;}
