/* Enhanced Glassmorphism Effects for MYP Application */ /* Base Glass Effects */ .glass-base { backdrop-filter: blur(24px) saturate(200%) brightness(115%); -webkit-backdrop-filter: blur(24px) saturate(200%) brightness(115%); border: 1px solid rgba(255, 255, 255, 0.25); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.3); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .glass-strong { backdrop-filter: blur(28px) saturate(220%) brightness(125%); -webkit-backdrop-filter: blur(28px) saturate(220%) brightness(125%); box-shadow: 0 35px 70px rgba(0, 0, 0, 0.15), 0 12px 24px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4); } .glass-subtle { backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.2); } /* Light Mode Glass */ .glass-light { background: rgba(255, 255, 255, 0.85); border: 1px solid rgba(255, 255, 255, 0.4); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 115, 206, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6); } .glass-light-strong { background: rgba(255, 255, 255, 0.75); border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12), 0 10px 20px rgba(0, 115, 206, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.7); } /* Light Mode Glass Premium */ .glass-light-premium { background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 250, 252, 0.8) 50%, rgba(255, 255, 255, 0.85) 100%); border: 1px solid rgba(226, 232, 240, 0.6); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.08), 0 10px 20px rgba(0, 115, 206, 0.06), inset 0 2px 0 rgba(255, 255, 255, 0.8), inset 0 0 20px rgba(255, 255, 255, 0.3); } .glass-light-card { background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(250, 251, 252, 0.9) 100%); border: 1px solid rgba(226, 232, 240, 0.4); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06), 0 8px 16px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9); } /* Dark Mode Glass */ .glass-dark { background: rgba(15, 23, 42, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 8px 16px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.05); } .glass-dark-strong { background: rgba(30, 41, 59, 0.85); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 35px 70px rgba(0, 0, 0, 0.5), 0 12px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.08); } /* Interactive Glass Elements */ .glass-interactive { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; overflow: hidden; } .glass-interactive::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.6s ease; z-index: 1; } .glass-interactive:hover { transform: translateY(-3px) scale(1.01); backdrop-filter: blur(32px) saturate(240%) brightness(130%); -webkit-backdrop-filter: blur(32px) saturate(240%) brightness(130%); box-shadow: 0 40px 80px rgba(0, 0, 0, 0.15), 0 16px 32px rgba(0, 115, 206, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.4); } .glass-interactive:hover::before { left: 100%; } .glass-interactive:active { transform: translateY(-1px) scale(0.99); transition: transform 0.1s ease; } /* Glass Navigation */ .glass-nav { background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 250, 252, 0.85) 50%, rgba(255, 255, 255, 0.9) 100%); backdrop-filter: blur(24px) saturate(200%) brightness(115%); -webkit-backdrop-filter: blur(24px) saturate(200%) brightness(115%); border: 1px solid rgba(226, 232, 240, 0.5); border-bottom: 1px solid rgba(203, 213, 225, 0.6); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 115, 206, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8); } .dark .glass-nav { background: rgba(15, 23, 42, 0.85); border-color: rgba(51, 65, 85, 0.6); border-bottom-color: rgba(71, 85, 105, 0.7); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* Glass Cards */ .glass-card { background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(250, 251, 252, 0.9) 100%); backdrop-filter: blur(20px) saturate(180%) brightness(110%); -webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%); border: 1px solid rgba(229, 231, 235, 0.6); border-radius: 16px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08), 0 8px 16px rgba(0, 115, 206, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9); padding: 1.5rem; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; } .glass-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(226, 232, 240, 0.8) 50%, transparent 100%); } .glass-card:hover { transform: translateY(-2px); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12), 0 12px 24px rgba(0, 115, 206, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.95); } .dark .glass-card { background: rgba(30, 41, 59, 0.85); border-color: rgba(100, 116, 139, 0.4); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); } .dark .glass-card:hover { box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15); } /* Glass Buttons */ .glass-btn { background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 250, 252, 0.8) 100%); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(226, 232, 240, 0.6); border-radius: 12px; padding: 0.75rem 1.5rem; color: #0f172a; font-weight: 600; text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 115, 206, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8); transition: all 0.2s ease; } .glass-btn:hover { transform: translateY(-1px); background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.85) 100%); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 115, 206, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .glass-btn:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.7); } .glass-btn-primary { background: linear-gradient(135deg, rgba(0, 115, 206, 0.9) 0%, rgba(0, 90, 159, 0.85) 100%); color: white; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); box-shadow: 0 4px 12px rgba(0, 115, 206, 0.3), 0 2px 4px rgba(0, 115, 206, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2); } .glass-btn-primary:hover { background: linear-gradient(135deg, rgba(0, 115, 206, 0.95) 0%, rgba(0, 90, 159, 0.9) 100%); box-shadow: 0 8px 20px rgba(0, 115, 206, 0.4), 0 4px 8px rgba(0, 115, 206, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3); } .dark .glass-btn { background: rgba(30, 41, 59, 0.8); color: #e2e8f0; border-color: rgba(100, 116, 139, 0.6); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* Glass Modals */ .glass-modal { background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 50%, rgba(255, 255, 255, 0.98) 100%); backdrop-filter: blur(32px) saturate(220%) brightness(120%); -webkit-backdrop-filter: blur(32px) saturate(220%) brightness(120%); border: 1px solid rgba(226, 232, 240, 0.7); border-radius: 20px; box-shadow: 0 50px 100px rgba(0, 0, 0, 0.15), 0 20px 40px rgba(0, 115, 206, 0.08), inset 0 2px 0 rgba(255, 255, 255, 0.9), inset 0 0 40px rgba(255, 255, 255, 0.2); } .dark .glass-modal { background: rgba(15, 23, 42, 0.95); border-color: rgba(51, 65, 85, 0.7); box-shadow: 0 50px 100px rgba(0, 0, 0, 0.5), inset 0 2px 0 rgba(255, 255, 255, 0.1); } /* Glass Form Elements */ .glass-input { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(226, 232, 240, 0.6); border-radius: 8px; padding: 0.75rem 1rem; color: #0f172a; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.8); transition: all 0.2s ease; } .glass-input:focus { outline: none; border-color: rgba(0, 115, 206, 0.6); box-shadow: 0 4px 12px rgba(0, 115, 206, 0.15), 0 0 0 3px rgba(0, 115, 206, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.9); } .dark .glass-input { background: rgba(30, 41, 59, 0.8); border-color: rgba(100, 116, 139, 0.6); color: #e2e8f0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* Glass Dropdown */ .glass-dropdown { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(24px) saturate(200%) brightness(120%); -webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 12px; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.1); } .dark .glass-dropdown { background: rgba(0, 0, 0, 0.8); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08); } /* Animation for glass elements */ @keyframes glassFloat { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-2px); } } .glass-float { animation: glassFloat 3s ease-in-out infinite; } /* Glass overlay for backgrounds */ .glass-overlay { background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); } .dark .glass-overlay { background: linear-gradient(135deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.1) 100%); } /* Responsive glass effects */ @media (max-width: 768px) { .glass-card { padding: 1rem; border-radius: 12px; } .glass-modal { border-radius: 16px; } } /* High contrast mode adjustments */ @media (prefers-contrast: high) { .glass-base, .glass-strong, .glass-card { border-width: 2px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } } /* Reduced motion support */ @media (prefers-reduced-motion: reduce) { .glass-interactive, .glass-btn, .glass-card { transition: none !important; } .glass-interactive::before { display: none; } } /* Glass Loading States */ .glass-loading { position: relative; overflow: hidden; } .glass-loading::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); animation: glass-shimmer 2s infinite; } .dark .glass-loading::after { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); } @keyframes glass-shimmer { 0% { left: -100%; } 100% { left: 100%; } } /* Premium Glow Effects for Light Mode */ .glass-glow { position: relative; } .glass-glow::after { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(45deg, rgba(0, 115, 206, 0.1), rgba(0, 90, 159, 0.05), rgba(0, 115, 206, 0.1)); border-radius: inherit; z-index: -1; opacity: 0; transition: opacity 0.3s ease; } .glass-glow:hover::after { opacity: 1; } .dark .glass-glow::after { background: linear-gradient(45deg, rgba(59, 130, 246, 0.2), rgba(29, 78, 216, 0.1), rgba(59, 130, 246, 0.2)); }