/* ====== Base Styles ====== */ :root { --primary: #0891B2; --primary-dark: #155E75; --primary-light: #22D3EE; --secondary: #155E75; --dark: #082F49; --light: #F0F9FF; --gray: #64748B; --danger: #DC2626; --success: #059669; --warning: #D97706; --transition: all 0.3s ease; --shadow: 0 5px 15px rgba(0, 0, 0, 0.1); --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.15); } body { font-family: 'Open Sans', sans-serif; color: #333; overflow-x: hidden; background-color: #fff; } h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; font-weight: 600; } section { position: relative; padding: 80px 0; } .section-title { font-weight: 700; position: relative; margin-bottom: 15px; color: var(--dark); } .section-divider { height: 4px; width: 70px; background: var(--primary); margin: 0 auto 40px; border-radius: 2px; } .btn { border-radius: 50px; padding: 12px 25px; font-weight: 500; transition: var(--transition); text-transform: uppercase; letter-spacing: 0.5px; font-size: 14px; } .btn-primary { background-color: var(--primary); border-color: var(--primary); box-shadow: 0 4px 15px rgba(8, 145, 178, 0.3); } .btn-primary:hover, .btn-primary:focus { background-color: var(--primary-dark); border-color: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(8, 145, 178, 0.4); } .btn-lg { padding: 14px 30px; font-size: 16px; } /* ====== Particles Background ====== */ #particles-js { position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: -1; background: linear-gradient(135deg, #0C4A6E, #082F49); } /* ====== Navbar ====== */ .navbar { padding: 20px 0; transition: var(--transition); z-index: 1000; } .navbar.scrolled { background-color: rgba(8, 47, 73, 0.9); padding: 10px 0; box-shadow: var(--shadow); } .navbar-brand { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 24px; color: var(--light) !important; } .wave-icon { animation: waveAnimation 2s infinite; display: inline-block; } @keyframes waveAnimation { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } } /* Unique Nav styling */ .custom-nav { display: flex; gap: 15px; } .custom-nav .nav-item { position: relative; } .custom-nav .nav-link { display: flex; flex-direction: column; align-items: center; padding: 8px 15px; color: var(--light) !important; background: rgba(255, 255, 255, 0.05); border-radius: 12px; overflow: hidden; transition: all 0.3s ease; } .custom-nav .nav-icon { font-size: 1.2rem; margin-bottom: 3px; transition: all 0.3s ease; } .custom-nav .nav-text { font-size: 0.85rem; font-weight: 500; opacity: 0.8; } .custom-nav .nav-link:hover, .custom-nav .nav-link.active { background: rgba(255, 255, 255, 0.15); transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .custom-nav .nav-link:hover .nav-icon, .custom-nav .nav-link.active .nav-icon { color: var(--primary-light); transform: scale(1.2); } .custom-nav .nav-link::after { content: ''; position: absolute; bottom: 5px; left: 50%; width: 0; height: 2px; background: var(--primary-light); transform: translateX(-50%); transition: width 0.3s ease; } .custom-nav .nav-link:hover::after, .custom-nav .nav-link.active::after { width: 50%; } /* ====== Hero Section ====== */ .hero { height: 100vh; min-height: 700px; display: flex; align-items: center; position: relative; overflow: hidden; background-color: transparent; padding-bottom: 100px; } .hero h1 { font-size: 56px; font-weight: 700; margin-bottom: 20px; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); } .hero .lead { font-size: 18px; margin-bottom: 30px; } .hero-image { position: relative; z-index: 1; text-align: center; } .hero-img { max-width: 90%; box-shadow: var(--shadow-lg); border: 5px solid rgba(255, 255, 255, 0.2); animation: float 6s ease-in-out infinite; } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-20px); } 100% { transform: translateY(0px); } } .wave { position: absolute; bottom: -10px; left: 0; width: 100%; z-index: 2; } /* ====== About Section ====== */ .about { background-color: #fff; } .feature-card { background: #fff; border-radius: 15px; padding: 30px; text-align: center; box-shadow: var(--shadow); height: 100%; transition: var(--transition); } .feature-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); } .icon-wrapper { width: 80px; height: 80px; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; background-color: rgba(8, 145, 178, 0.1); border-radius: 50%; } .icon-wrapper i { font-size: 36px; } .feature-card h4 { margin-bottom: 15px; color: var(--dark); } .img-wrapper { border-radius: 15px; overflow: hidden; } .floating-badge { position: absolute; top: 20px; right: -15px; background: var(--primary); color: white; padding: 10px 20px; border-radius: 30px; box-shadow: var(--shadow); font-weight: 600; } .parameters-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 20px; } .parameter { background-color: rgba(8, 145, 178, 0.1); padding: 10px; border-radius: 5px; text-align: center; font-weight: 500; transition: var(--transition); } .parameter:hover { background-color: var(--primary); color: white; transform: scale(1.05); } /* ====== Water Test Section ====== */ .water-test { background-color: #f9f9f9; position: relative; overflow: hidden; } .test-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('https://source.unsplash.com/1600x900/?water,pattern') no-repeat center center; background-size: cover; opacity: 0.05; z-index: 0; } .test-card { background: white; border-radius: 20px; box-shadow: var(--shadow-lg); padding: 40px; position: relative; z-index: 1; } .form-floating .form-control { border-radius: 10px; height: 60px; border: 2px solid #e1e1e1; } .form-floating .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 0.25rem rgba(8, 145, 178, 0.25); } .result-box { background: white; border-radius: 15px; box-shadow: var(--shadow); overflow: hidden; border: 1px solid #e9e9e9; } .result-header { padding: 15px 25px; background: var(--primary); color: white; } .result-body { padding: 25px; } .gauge-container { padding: 20px 0; } .gauge { width: 150px; height: 75px; border-radius: 75px 75px 0 0; background-color: #e0e0e0; position: relative; overflow: hidden; margin: 0 auto; } .gauge-fill { position: absolute; bottom: 0; left: 0; width: 100%; height: 0%; background: linear-gradient(to top, var(--danger), var(--warning), var(--success)); transition: height 1s cubic-bezier(0.34, 1.56, 0.64, 1); } .gauge-center { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 24px; color: #333; } .gauge-label { margin-top: 10px; font-weight: 600; color: var(--gray); } .result-info { padding: 0 20px; } #result-status { margin-bottom: 15px; font-weight: 700; } #result-status.safe { color: var(--success); } #result-status.unsafe { color: var(--danger); } #recommendations-list li { margin-bottom: 8px; } /* ====== Contact Section ====== */ .contact { background-color: white; } .contact-info { text-align: center; padding: 40px; border-radius: 20px; box-shadow: var(--shadow-lg); height: 100%; background-color: #fff; position: relative; z-index: 1; overflow: hidden; } .contact-info::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(8, 145, 178, 0.05), rgba(21, 94, 117, 0.1)); z-index: -1; } .profile-img { width: 180px; height: 180px; margin: 0 auto 20px; border-radius: 50%; overflow: hidden; border: 5px solid rgba(8, 145, 178, 0.1); position: relative; } .profile-img::after { content: ''; position: absolute; top: -10px; left: -10px; right: -10px; bottom: -10px; border-radius: 50%; border: 2px solid var(--primary-light); animation: pulseRing 2s infinite; } @keyframes pulseRing { 0% { transform: scale(0.95); opacity: 1; } 70% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.95); opacity: 1; } } .profile-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; } .social-links { display: flex; justify-content: center; gap: 15px; margin-top: 25px; } .social-icon { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border-radius: 50%; color: white; transition: var(--transition); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); } .social-icon:hover { transform: translateY(-5px) rotate(10deg); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); } .facebook { background-color: #3b5998; } .linkedin { background-color: #0077b5; } .github { background-color: #333; } .instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); } .student-id { background-color: var(--primary-light); color: var(--dark); padding: 5px 15px; border-radius: 20px; font-weight: 600; display: inline-block; margin-top: -5px; margin-bottom: 10px; } /* ====== Footer ====== */ .footer { background-color: var(--dark); color: var(--light); } /* ====== Responsive Styles ====== */ @media (max-width: 991px) { .hero h1 { font-size: 42px; } .hero-image { margin-top: 50px; } .test-card { padding: 30px 20px; } .custom-nav { gap: 5px; } .custom-nav .nav-link { padding: 8px 10px; } } @media (max-width: 767px) { section { padding: 60px 0; } .hero h1 { font-size: 36px; text-align: center; } .hero .lead { text-align: center; } .hero .btn { display: block; margin: 0 auto; } .feature-card { margin-bottom: 30px; } .test-card { padding: 25px 15px; } .custom-nav { flex-wrap: wrap; justify-content: center; } .custom-nav .nav-item { width: calc(50% - 10px); } .custom-nav .nav-link { margin-bottom: 10px; } } /* ====== Animation Classes ====== */ .fade-in { animation: fadeIn 1s ease forwards; } .slide-up { animation: slideUp 0.8s ease forwards; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(50px); } to { opacity: 1; transform: translateY(0); } } @keyframes waterRipple { 0% { box-shadow: 0 0 0 0 rgba(34, 211, 238, 0.5); } 70% { box-shadow: 0 0 0 20px rgba(34, 211, 238, 0); } 100% { box-shadow: 0 0 0 0 rgba(34, 211, 238, 0); } }