/* ========================= Keyframes for animations ========================= */ @keyframes floatImage { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } } @keyframes backgroundPulse { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(1); } } @keyframes sparkleAnim { 0% { opacity:0; transform: scale(0) translateY(0); } 50% { opacity:1; transform: scale(1) translateY(-8px); } 100% { opacity:0; transform: scale(0) translateY(-16px); } } @keyframes streakAnim { 0% { left:-100%; } 100% { left:100%; } } /* ========================= Popup Overlay & Modal ========================= */ #authOverlay { display:flex; justify-content:center; align-items:center; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.5); backdrop-filter:blur(4px); opacity:0; transition:opacity 0.4s ease; padding:10px; } #authModal { display:flex; flex-direction:row; width:700px; max-width:100%; border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 20px 50px rgba(0,0,0,0.4); transform:translateY(50px) scale(0.95); opacity:0; transition:all 0.5s cubic-bezier(0.16,1,0.3,1); max-height:90vh; font-family:Inter,sans-serif; } #authModal .leftDiv { flex:1; background-size:cover; background-position:center; animation:floatImage 6s ease-in-out infinite; min-height:250px; } #authModal .rightDiv { flex:1; position:relative; padding:30px; background:linear-gradient(145deg,rgba(34,197,94,0.85),rgba(22,163,74,0.85)); color:#fff; display:flex; flex-direction:column; justify-content:center; text-align:center; overflow:hidden; animation:backgroundPulse 4s ease-in-out infinite alternate; box-sizing:border-box; min-height:250px; } /* Close Button */ #authClose { position:absolute; right:15px; top:10px; font-size:28px; cursor:pointer; z-index:10; transition: transform 0.2s; } #authClose:hover { transform: scale(1.2); } /* Headline & Streak */ #authModal h2 { font-size:24px; margin-bottom:16px; line-height:1.4; text-shadow:0 0 10px rgba(255,255,255,0.5); position:relative; overflow:hidden; } #authModal h2 .streak { position:absolute; top:0; left:-100%; width:50%; height:100%; background:linear-gradient(120deg,rgba(255,255,255,0.2),rgba(255,255,255,0.6),rgba(255,255,255,0.2)); transform:skewX(-20deg); animation:streakAnim 3s linear infinite; } /* Logo */ #authModal img { width:60px; height:auto; margin:0 auto 16px auto; opacity:0; transform:translateY(-10px); transition:all 0.6s ease; filter:drop-shadow(0 0 8px rgba(255,255,255,0.6)); } /* Trusted text */ #authModal h5 { font-size:15px; margin-top:8px; } /* Responsive */ @media (max-width:600px){ #authModal { flex-direction:column; } #authModal .leftDiv { height:200px; } #authModal .rightDiv { height:auto; padding:20px; } } /* ========================= Sparkle container ========================= */ #authModal .sparkleContainer { position:absolute; inset:0; pointer-events:none; overflow:hidden; } #authModal .sparkleContainer .sparkle { position:absolute; width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,0.8); opacity:0; transform:scale(0); animation:sparkleAnim 2s infinite; }