@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); /* ===== VARIABLES ===== */ :root { --primary-gradient: linear-gradient(135deg, rgba(120, 140, 180, 0.4) 0%, rgba(140, 120, 180, 0.35) 100%); --success-gradient: linear-gradient(135deg, #0fa47f 0%, #1ad178 100%); --danger-gradient: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%); --warning-gradient: linear-gradient(135deg, #f39c12 0%, #f1c40f 100%); /* iOS 26 style darker backgrounds with glass effect */ --bg-primary: rgba(28, 28, 30, 0.85); --bg-secondary: rgba(44, 44, 46, 0.8); --bg-card: rgba(58, 58, 60, 0.75); --bg-glass: rgba(72, 72, 74, 0.7); /* iOS 26 style text colors for dark theme */ --text-primary: #f2f2f7; --text-secondary: #aeaeb2; --text-light: #8e8e93; --text-white: #ffffff; /* Enhanced mirror-like borders */ --border-light: rgba(255, 255, 255, 0.15); --border-card: rgba(255, 255, 255, 0.1); --border-mirror: rgba(255, 255, 255, 0.08); /* Enhanced shadows for depth */ --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.25); --shadow-medium: 0 8px 30px rgba(0, 0, 0, 0.35); --shadow-strong: 0 15px 35px rgba(0, 0, 0, 0.45); --border-radius: 16px; --border-radius-small: 12px; --border-radius-large: 24px; --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); --transition-fast: all 0.15s ease-out; --transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } /* ===== KEYFRAMES ===== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes gradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes slideOutLeft { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(-100%); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } @keyframes successPulse { 0% { box-shadow: 0 0 0 0 rgba(26, 209, 120, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(26, 209, 120, 0); } 100% { box-shadow: 0 0 0 0 rgba(26, 209, 120, 0); } } @keyframes logoutAnimation { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.1) rotate(-5deg); } 50% { transform: scale(1.2) rotate(5deg); } 75% { transform: scale(1.1) rotate(-2deg); } 100% { transform: scale(1) rotate(0deg); } } @keyframes planBadgeGlow { 0%, 100% { box-shadow: 0 4px 15px rgba(26, 209, 120, 0.3), 0 2px 0 rgba(255, 255, 255, 0.1) inset; } 50% { box-shadow: 0 8px 25px rgba(26, 209, 120, 0.5), 0 0 30px rgba(26, 209, 120, 0.3), 0 2px 0 rgba(255, 255, 255, 0.2) inset; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* ===== ADDITIONAL KEYFRAMES ===== */ @keyframes slideInFromTop { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } } @keyframes heartbeat { 0% { transform: scale(1); } 14% { transform: scale(1.1); } 28% { transform: scale(1); } 42% { transform: scale(1.1); } 70% { transform: scale(1); } } @keyframes glow { 0%, 100% { box-shadow: 0 0 20px rgba(102, 126, 234, 0.4); } 50% { box-shadow: 0 0 30px rgba(102, 126, 234, 0.6); } } /* iOS 26 mirror reflection effect */ @keyframes mirrorReflection { 0%, 100% { background-position: -100% 0; opacity: 0.3; } 50% { background-position: 100% 0; opacity: 0.7; } } /* Enhanced glass shimmer for iOS 26 */ @keyframes enhancedGlassShimmer { 0%, 100% { background-position: -300% 0; opacity: 0.4; } 50% { background-position: 300% 0; opacity: 0.8; } } /* Cursor bubble effect animations */ @keyframes bubbleFloat { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.8; } } @keyframes bubblePop { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; } 50% { transform: translate(-50%, -50%) scale(1.5); opacity: 0.9; } 100% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.7; } } @keyframes bubbleHover { 0%, 100% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.8; } 50% { transform: translate(-50%, -50%) scale(1.6); opacity: 1; } } /* ===== GLOBAL STYLES ===== */ * { box-sizing: border-box; } body { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; margin: 0; padding: 0; width: 380px; min-height: 500px; /* iOS 26 dark glass morphism background with mirror effect */ background: linear-gradient(135deg, rgba(28, 28, 30, 0.95) 0%, rgba(44, 44, 46, 0.9) 25%, rgba(58, 58, 60, 0.85) 50%, rgba(72, 72, 74, 0.9) 75%, rgba(28, 28, 30, 0.95) 100%), linear-gradient(225deg, rgba(100, 120, 160, 0.2) 0%, rgba(120, 100, 160, 0.15) 50%, rgba(140, 120, 180, 0.1) 100%), radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%), radial-gradient(circle at 70% 80%, rgba(200, 220, 255, 0.03) 0%, transparent 50%); backdrop-filter: blur(60px) saturate(200%) brightness(1.1); -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(1.1); color: var(--text-primary); position: relative; overflow: hidden; animation: fadeInScale 0.4s ease-out; border-radius: var(--border-radius); /* iOS 26 mirror-like border */ border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 2px 0 rgba(255, 255, 255, 0.15) inset, 0 -2px 0 rgba(255, 255, 255, 0.05) inset, 0 0 60px rgba(255, 255, 255, 0.02) inset; } body::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; /* iOS 26 mirror overlay with enhanced reflections */ background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.04) 50%, transparent 70%), radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.08) 0%, transparent 50%), radial-gradient(circle at 75% 75%, rgba(255, 255, 255, 0.06) 0%, transparent 50%), radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.02) 0%, transparent 80%); pointer-events: none; z-index: -1; border-radius: var(--border-radius); animation: float 12s ease-in-out infinite; } .container { padding: 16px; position: relative; z-index: 1; } /* ===== HEADER ===== */ header { text-align: center; margin-bottom: 18px; animation: fadeInUp 0.6s ease-out; } header .logo { background: var(--bg-glass); backdrop-filter: blur(20px); border: 1px solid var(--border-light); border-radius: var(--border-radius); padding: 14px; margin-bottom: 12px; box-shadow: var(--shadow-medium); animation: float 3s ease-in-out infinite; } header .logo h1 { margin: 0; font-size: 22px; font-weight: 700; background: linear-gradient(135deg, #ffffff 0%, #f8f9ff 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; letter-spacing: 0.8px; } header .logo .subtitle { font-size: 12px; color: var(--text-light); margin-top: 4px; opacity: 0.8; } /* For the simple header without logo class */ header:not(.logo-header) { display: flex; justify-content: center; align-items: center; background: var(--bg-glass); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); border: 1px solid var(--border-light); color: var(--text-primary); padding: 20px; border-radius: var(--border-radius-large); font-size: 28px; font-weight: 700; letter-spacing: 1px; box-shadow: var(--shadow-medium), 0 2px 0 rgba(255, 255, 255, 0.1) inset, 0 -1px 0 rgba(255, 255, 255, 0.05) inset; animation: float 3s ease-in-out infinite; } /* ===== FORM ELEMENTS ===== */ .form-group { margin-bottom: 16px; animation: fadeInUp 0.6s ease-out; animation-delay: 0.1s; animation-fill-mode: both; } label { display: block; margin-bottom: 8px; font-weight: 500; color: var(--text-primary); font-size: 14px; letter-spacing: 0.5px; } select, input[type="text"] { width: 100%; padding: 14px 16px; border: 1px solid var(--border-light); border-radius: var(--border-radius); font-family: inherit; font-size: 14px; /* iOS 26 glass morphism for inputs */ background: var(--bg-secondary); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); color: var(--text-primary); transition: var(--transition); box-shadow: var(--shadow-soft), 0 2px 0 rgba(255, 255, 255, 0.08) inset, 0 -1px 0 rgba(255, 255, 255, 0.04) inset; } select:focus, input[type="text"]:focus { outline: none; border-color: rgba(120, 140, 180, 0.6); box-shadow: 0 0 0 4px rgba(120, 140, 180, 0.15), 0 0 20px rgba(120, 140, 180, 0.3), var(--shadow-medium), 0 2px 0 rgba(255, 255, 255, 0.12) inset; transform: translateY(-2px); background: var(--bg-card); } /* Enhanced select dropdown with iOS 26 styling */ select { appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aeaeb2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; padding-right: 40px; cursor: pointer; } select option { background: var(--bg-primary); color: var(--text-primary); padding: 8px 12px; border-radius: var(--border-radius-small); font-size: 13px; font-weight: 500; margin: 2px 0; } select option:hover, select option:checked { background: var(--bg-card); color: var(--text-white); } /* Custom styling for "choose" option */ select option[value=""] { color: var(--text-light); font-style: italic; font-size: 12px; } input[type="text"]::placeholder { color: var(--text-light); opacity: 0.8; } /* ===== BUTTONS ===== */ button { width: 75%; margin: 16px auto 0; padding: 12px 18px; border: none; border-radius: var(--border-radius); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: var(--transition); position: relative; overflow: hidden; letter-spacing: 0.5px; box-shadow: var(--shadow-medium); display: block; } button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s; } button:hover::before { left: 100%; } button:not(.btn-danger) { /* iOS 26 glass morphism button */ background: linear-gradient(135deg, var(--bg-glass) 0%, var(--bg-card) 100%); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); color: var(--text-primary); border: 1px solid var(--border-light); box-shadow: var(--shadow-medium), 0 2px 0 rgba(255, 255, 255, 0.08) inset, 0 -1px 0 rgba(255, 255, 255, 0.04) inset; } button:not(.btn-danger):hover { transform: translateY(-2px); box-shadow: var(--shadow-strong), 0 2px 0 rgba(255, 255, 255, 0.12) inset; background: linear-gradient(135deg, var(--bg-card) 0%, var(--bg-glass) 100%); color: var(--text-white); } button:not(.btn-danger):active { transform: translateY(0) scale(0.98); } button.success-animation { animation: successPulse 1s ease-out; } #logoutBtn, .btn-danger { background: var(--danger-gradient); color: var(--text-white); margin-top: 12px; background-size: auto; animation: none; width: 100%; } #logoutBtn:hover, .btn-danger:hover { transform: translateY(-2px); box-shadow: var(--shadow-strong); } #logoutBtn.logout-animation, .btn-danger.logout-animation { animation: logoutAnimation 0.6s ease-out; } /* ===== CARDS ===== */ .card { /* iOS 26 glass morphism for cards */ background: var(--bg-card); backdrop-filter: blur(40px) saturate(200%) brightness(1.1); -webkit-backdrop-filter: blur(40px) saturate(200%) brightness(1.1); border: 1px solid var(--border-card); border-radius: var(--border-radius); padding: 20px; margin-bottom: 16px; box-shadow: var(--shadow-medium), 0 2px 0 rgba(255, 255, 255, 0.08) inset, 0 -1px 0 rgba(255, 255, 255, 0.04) inset, 0 0 40px rgba(255, 255, 255, 0.02) inset; transition: var(--transition); position: relative; overflow: hidden; } .card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--primary-gradient); } .card.success-card::before { background: var(--success-gradient); } .card.danger-card::before { background: var(--danger-gradient); } .card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), 0 2px 0 rgba(255, 255, 255, 0.4) inset, 0 -2px 0 rgba(255, 255, 255, 0.15) inset; background: rgba(255, 255, 255, 0.18); } .card.show { animation: bounceIn 0.6s ease-out; } .card.hide { animation: slideOutLeft 0.4s ease-in; } /* ===== STATUS MESSAGES ===== */ #status, .status, .mini { text-align: center; margin-top: 12px; font-size: 12px; padding: 8px 12px; border-radius: var(--border-radius-small); transition: var(--transition); min-height: 20px; color: var(--text-light); } #status.loading, .status.loading { background: rgba(52, 152, 219, 0.2); color: #74b9ff; border: 1px solid rgba(52, 152, 219, 0.3); } #status.error, .status.error { background: rgba(231, 76, 60, 0.2); color: #ff7675; border: 1px solid rgba(231, 76, 60, 0.3); animation: pulse 1s ease-in-out; } #status.success, .status.success { background: rgba(39, 174, 96, 0.2); color: #00b894; border: 1px solid rgba(39, 174, 96, 0.3); } /* ===== INFO DISPLAY ===== */ .info-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.15); } .info-row:last-of-type { border-bottom: none; margin-bottom: 20px; } .info-label { font-weight: 600; color: var(--text-light); font-size: 14px; } .info-value { color: var(--text-primary); font-weight: 500; text-align: right; max-width: 60%; word-break: break-word; } .plan-badge { background: var(--success-gradient); color: white; padding: 6px 16px; border-radius: 20px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; transition: var(--transition); cursor: pointer; position: relative; overflow: hidden; box-shadow: 0 4px 15px rgba(26, 209, 120, 0.3), 0 2px 0 rgba(255, 255, 255, 0.1) inset; } .plan-badge::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); transition: left 0.6s; } .plan-badge:hover { transform: translateY(-3px) scale(1.05); background: linear-gradient(135deg, #00b894 0%, #26de81 100%); box-shadow: 0 8px 25px rgba(26, 209, 120, 0.5), 0 0 30px rgba(26, 209, 120, 0.3), 0 2px 0 rgba(255, 255, 255, 0.2) inset; animation: planBadgeGlow 1.5s ease-in-out infinite; } .plan-badge:hover::before { left: 100%; } .expiry-date { font-family: 'Courier New', monospace; font-size: 10px; background: var(--bg-secondary); color: var(--text-secondary); padding: 4px 8px; border-radius: 6px; border: 1px solid var(--border-mirror); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; } /* ===== FOOTER MENU ===== */ .menu { display: flex; gap: 6px; margin-top: 16px; animation: fadeInUp 0.6s ease-out; animation-delay: 0.3s; animation-fill-mode: both; } .menu a { flex: 1; padding: 8px 6px; text-align: center; font-size: 11px; font-weight: 500; border-radius: var(--border-radius-small); text-decoration: none; /* iOS 26 glass morphism for menu items */ background: var(--bg-secondary); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); border: 1px solid var(--border-light); color: var(--text-secondary); transition: var(--transition); box-shadow: var(--shadow-soft), 0 1px 0 rgba(255, 255, 255, 0.06) inset; } .menu a:hover { transform: translateY(-2px); box-shadow: var(--shadow-medium), 0 2px 0 rgba(255, 255, 255, 0.1) inset; background: var(--bg-card); color: var(--text-primary); } /* ===== VERSION TAG ===== */ .version { text-align: center; margin-top: 12px; font-size: 9px; color: var(--text-light); opacity: 0.7; animation: fadeInUp 0.6s ease-out; animation-delay: 0.4s; animation-fill-mode: both; } /* ===== LOADING SPINNER ===== */ .spinner { width: 20px; height: 20px; border: 2px solid var(--border-light); border-top: 2px solid var(--text-primary); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto; } /* ===== EXPIRY WARNING STYLES ===== */ .expiry-warning { background: linear-gradient(135deg, rgba(243, 156, 18, 0.15) 0%, rgba(241, 196, 15, 0.15) 100%); border: 2px solid rgba(243, 156, 18, 0.4); border-radius: var(--border-radius-small); padding: 12px 16px; margin: 12px 0; animation: pulse 2s ease-in-out infinite; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); position: relative; overflow: hidden; box-shadow: 0 6px 20px rgba(243, 156, 18, 0.2), 0 2px 0 rgba(255, 255, 255, 0.1) inset; } .expiry-warning::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, #f39c12 0%, #f1c40f 100%); } .expiry-warning-title { font-weight: 700; color: #f39c12; font-size: 12px; margin-bottom: 4px; display: flex; align-items: center; gap: 6px; } .expiry-warning-message { font-size: 11px; color: #e67e22; line-height: 1.4; font-weight: 500; } /* ===== SPECIAL EFFECTS ===== */ .glow-effect { animation: glow 2s ease-in-out infinite; } .heartbeat-effect { animation: heartbeat 1.5s ease-in-out infinite; } /* ===== ENHANCED BUTTON STATES ===== */ button:disabled { opacity: 0.6; cursor: not-allowed; transform: none !important; } button:disabled::before { display: none; } /* ===== NOTIFICATION ANIMATIONS ===== */ .notification { position: fixed; top: 20px; right: 20px; /* Much darker background for better readability */ background: rgba(20, 20, 22, 0.95); backdrop-filter: blur(60px) saturate(200%) brightness(0.8); -webkit-backdrop-filter: blur(60px) saturate(200%) brightness(0.8); border-radius: var(--border-radius); padding: 18px 24px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 8px 32px rgba(0, 0, 0, 0.4), 0 2px 0 rgba(255, 255, 255, 0.08) inset, 0 -1px 0 rgba(255, 255, 255, 0.03) inset; border: 1px solid rgba(255, 255, 255, 0.1); border-left: 4px solid; max-width: 320px; z-index: 1000; animation: slideInRight 0.4s ease-out; } .notification.warning { border-left-color: #f39c12; background: rgba(20, 20, 22, 0.95); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 8px 32px rgba(243, 156, 18, 0.2), 0 2px 0 rgba(255, 255, 255, 0.08) inset; } .notification.error { border-left-color: #e74c3c; background: rgba(20, 20, 22, 0.95); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 8px 32px rgba(231, 76, 60, 0.2), 0 2px 0 rgba(255, 255, 255, 0.08) inset; } .notification.success { border-left-color: #27ae60; background: rgba(20, 20, 22, 0.95); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 8px 32px rgba(39, 174, 96, 0.2), 0 2px 0 rgba(255, 255, 255, 0.08) inset; } .notification-title { font-weight: 700; margin-bottom: 6px; color: #ffffff; font-size: 15px; letter-spacing: 0.3px; } .notification-message { font-size: 13px; color: #e8e8e8; line-height: 1.5; opacity: 0.95; font-weight: 500; } /* ===== ENHANCED iOS GLASS EFFECTS ===== */ /* Add subtle glass morphism animation */ @keyframes glassShimmer { 0%, 100% { background-position: -200% 0; } 50% { background-position: 200% 0; } } /* Enhanced glass effect for interactive elements */ .glass-enhanced { position: relative; overflow: hidden; } .glass-enhanced::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70% ); background-size: 400% 400%; animation: glassShimmer 8s ease-in-out infinite; pointer-events: none; border-radius: inherit; } /* ===== CURSOR BUBBLE EFFECT ===== */ .cursor-bubble { position: fixed; width: 20px; height: 20px; background: radial-gradient(circle, rgba(120, 140, 180, 0.4) 0%, rgba(140, 120, 180, 0.3) 50%, rgba(120, 140, 180, 0.1) 100%); border-radius: 50%; pointer-events: none; z-index: 9999; mix-blend-mode: screen; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border: 1px solid rgba(120, 140, 180, 0.2); box-shadow: 0 0 20px rgba(120, 140, 180, 0.3), 0 0 40px rgba(120, 140, 180, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.2); animation: bubbleFloat 3s ease-in-out infinite; transition: all 0.15s ease-out; } .cursor-bubble.hover { width: 35px; height: 35px; background: radial-gradient(circle, rgba(120, 140, 180, 0.6) 0%, rgba(140, 120, 180, 0.4) 50%, rgba(120, 140, 180, 0.2) 100%); animation: bubbleHover 2s ease-in-out infinite; box-shadow: 0 0 30px rgba(120, 140, 180, 0.5), 0 0 60px rgba(120, 140, 180, 0.2), inset 0 2px 0 rgba(255, 255, 255, 0.3); } .cursor-bubble.click { width: 45px; height: 45px; background: radial-gradient(circle, rgba(26, 209, 120, 0.7) 0%, rgba(120, 140, 180, 0.5) 50%, rgba(140, 120, 180, 0.3) 100%); animation: bubblePop 0.3s ease-out; box-shadow: 0 0 40px rgba(26, 209, 120, 0.6), 0 0 80px rgba(120, 140, 180, 0.3), inset 0 2px 0 rgba(255, 255, 255, 0.4); } /* ===== FINAL POLISH ===== */ /* ===== RESPONSIVE ADJUSTMENTS ===== */ @media (max-height: 600px) { .container { padding: 16px; } header .logo { padding: 16px; margin-bottom: 12px; } header .logo h1, header { font-size: 24px; } .card { padding: 20px; margin-bottom: 16px; } }