/* ======================================== BANYU BIRU - Ultra Modern UI Glassmorphism & Gradient Design ======================================== */ /* Glassmorphism Cards */ .glass-card { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15); border-radius: 24px; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .glass-card:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 16px 48px 0 rgba(31, 38, 135, 0.25); border-color: rgba(255, 255, 255, 0.5); } /* Gradient Backgrounds */ .gradient-ocean { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .gradient-sunset { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); } .gradient-forest { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); } .gradient-fire { background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); } /* Animated Gradient Background */ .animated-gradient { background: linear-gradient(-45deg, #667eea, #764ba2, #f093fb, #4facfe); background-size: 400% 400%; animation: gradientShift 15s ease infinite; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Floating Animation */ .float-animation { animation: float 6s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-20px); } } /* Pulse Animation */ .pulse-animation { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } /* Glow Effect */ .glow-effect { box-shadow: 0 0 20px rgba(102, 126, 234, 0.6), 0 0 40px rgba(102, 126, 234, 0.4), 0 0 60px rgba(102, 126, 234, 0.2); } /* Neon Border */ .neon-border { position: relative; border: 2px solid transparent; background: linear-gradient(white, white) padding-box, linear-gradient(135deg, #667eea, #764ba2) border-box; border-radius: 24px; } /* 3D Card Effect */ .card-3d { transform-style: preserve-3d; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .card-3d:hover { transform: rotateY(5deg) rotateX(5deg); } /* Morphing Button */ .morph-button { position: relative; overflow: hidden; border-radius: 50px; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .morph-button::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.3); transform: translate(-50%, -50%); transition: width 0.6s, height 0.6s; } .morph-button:hover::before { width: 300px; height: 300px; } /* Parallax Effect */ .parallax-layer { transition: transform 0.3s ease-out; } /* Neumorphism */ .neuro-card { background: #e0e5ec; box-shadow: 9px 9px 16px rgba(163, 177, 198, 0.6), -9px -9px 16px rgba(255, 255, 255, 0.5); border-radius: 24px; } .neuro-card:hover { box-shadow: inset 9px 9px 16px rgba(163, 177, 198, 0.6), inset -9px -9px 16px rgba(255, 255, 255, 0.5); } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 700; } /* Shimmer Effect */ .shimmer { position: relative; overflow: hidden; } .shimmer::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); animation: shimmer 2s infinite; } @keyframes shimmer { 0% { left: -100%; } 100% { left: 100%; } } /* Ripple Effect */ .ripple { position: relative; overflow: hidden; } .ripple::after { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.5); transform: translate(-50%, -50%); animation: ripple 0.6s ease-out; } @keyframes ripple { to { width: 300px; height: 300px; opacity: 0; } } /* Tilt Effect */ .tilt-card { transition: transform 0.3s ease; } .tilt-card:hover { transform: perspective(1000px) rotateX(10deg) rotateY(10deg); } /* Blob Animation */ .blob { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; animation: blob 8s ease-in-out infinite; } @keyframes blob { 0%, 100% { border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; } 25% { border-radius: 58% 42% 75% 25% / 76% 46% 54% 24%; } 50% { border-radius: 50% 50% 33% 67% / 55% 27% 73% 45%; } 75% { border-radius: 33% 67% 58% 42% / 63% 68% 32% 37%; } } /* Particle Background */ .particle-bg { position: relative; overflow: hidden; } .particle-bg::before { content: ''; position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; background-image: radial-gradient(circle, rgba(102, 126, 234, 0.1) 1px, transparent 1px); background-size: 50px 50px; animation: particleMove 20s linear infinite; } @keyframes particleMove { 0% { transform: translate(0, 0); } 100% { transform: translate(50px, 50px); } } /* Holographic Effect */ .holographic { position: relative; background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 25%, rgba(240, 147, 251, 0.1) 50%, rgba(79, 172, 254, 0.1) 75%, rgba(102, 126, 234, 0.1) 100%); background-size: 200% 200%; animation: holographic 3s ease infinite; } @keyframes holographic { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Magnetic Button */ .magnetic-btn { transition: transform 0.2s ease; } .magnetic-btn:hover { transform: scale(1.1); } /* Liquid Button */ .liquid-btn { position: relative; overflow: hidden; } .liquid-btn::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.5s; } .liquid-btn:hover::before { left: 100%; } /* Frosted Glass */ .frosted-glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px) saturate(100%); -webkit-backdrop-filter: blur(10px) saturate(100%); border: 1px solid rgba(255, 255, 255, 0.2); } /* Gradient Border */ .gradient-border { position: relative; background: white; border-radius: 24px; } .gradient-border::before { content: ''; position: absolute; inset: 0; border-radius: 24px; padding: 2px; background: linear-gradient(135deg, #667eea, #764ba2); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; } /* Spotlight Effect */ .spotlight { position: relative; overflow: hidden; } .spotlight::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%); opacity: 0; transition: opacity 0.3s; } .spotlight:hover::after { opacity: 1; } /* Skew Effect */ .skew-card { transition: transform 0.3s ease; } .skew-card:hover { transform: skewY(-2deg) scale(1.05); } /* Rainbow Border */ .rainbow-border { position: relative; border-radius: 24px; background: white; } .rainbow-border::before { content: ''; position: absolute; inset: -2px; border-radius: 24px; background: linear-gradient(45deg, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #9400d3); background-size: 400%; animation: rainbow 3s linear infinite; z-index: -1; } @keyframes rainbow { 0% { background-position: 0% 50%; } 100% { background-position: 400% 50%; } }