body, html { margin: 0; padding: 0; font-family: 'Inter', 'Segoe UI', Arial, sans-serif; font-size: 16px; /* Background is managed globally via body.homepage-bg in styles.css */ } .homepage-container { display: flex; flex-direction: row; height: 100vh; color: #e3f6ff; position: relative; align-items: center; /* Center content vertically */ justify-content: center; /* Center content horizontally */ /* background: url(/assets/py-detect-illustration.png) no-repeat center center fixed;*/ background-size: cover; } .left-section { flex: 1; display: flex; flex-direction: column; justify-content: center; /* Center vertically */ align-items: center; /* Center horizontally */ padding-left: 120px; /* Reduced from 240px to 120px */ padding-top: 0; position: relative; } .topbar { display: flex; align-items: flex-start; height: 80px; padding-left: 0; width: 100%; position: absolute; top: 0; left: 0; z-index: 30; } /* Modern UI header styles from infopage */ .site-header { background: #011329; box-shadow: 0 2px 12px #38bdf844; margin-bottom: 0; position: fixed; top: 0; left: 0; width: 100%; z-index: 100; padding-bottom: 0; } body { padding-top: 80px; /* Adjust to match header height so content is not hidden */ } .header-inner { display: flex; align-items: center; justify-content: space-between; /* space logo cluster and nav */ padding: 18px 32px 0 32px; position: relative; } .logo-cluster { display: flex; align-items: center; gap: 18px; } .logo-img-header { width: 54px; height: 54px; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.18); padding: 4px; margin-top: -6px; margin-bottom: 1vh; } .py-detect-title-header { font-size: 2.1rem; font-family: 'Segoe UI', 'Arial', 'Roboto', sans-serif; font-weight: 900; letter-spacing: 6px; color: #38bdf8; display: flex; align-items: center; gap: 2px; margin-bottom: 1.5vh; } .py-detect-title-header .py-letter.p { color: #e3f6ff; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.y { color: #38bdf8; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-shape { color: #e3f6ff; background: #e3f6ff; text-shadow: 0 0 6px #38bdf8; box-shadow: 0 0 6px #38bdf8, 0 0 2px #fff; border: 2px solid #23272b; width: 18px; height: 4px; display: inline-block; margin: 0 8px; border-radius: 2px; } .py-detect-title-header .py-letter.d { color: #e3f6ff; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.e { color: #38bdf8; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.t { color: #e3f6ff; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.e2 { color: #38bdf8; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.c { color: #e3f6ff; text-shadow: 0 0 6px #38bdf8; } .py-detect-title-header .py-letter.t2 { color: #38bdf8; text-shadow: 0 0 6px #38bdf8; } .center-instructions { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 200; width: 100%; display: flex; justify-content: left; align-items: center; } .detection-info { margin: 0 auto; max-width: 500px; background: rgba(30,41,59,0.85); border-radius: 12px; padding: 20px 28px; box-shadow: 0 2px 16px #1e293b44, 0 0 12px #38bdf844; font-size: 24px; color: #e3f6ff; font-weight: 500; line-height: 1.4; letter-spacing: 1px; border-left: 6px solid #38bdf8; border-top: 2px solid #1e293b; backdrop-filter: blur(1px); text-align: left; } .detection-info ul { margin-top: 12px; margin-bottom: 0; font-size: 20px; color: #bae6fd; padding-left: 18px; text-align: left; /* Align list to left */ } .detection-info li { margin-bottom: 6px; padding-left: 2px; font-weight: 400; text-shadow: 0 0 4px #38bdf888; text-align: left; /* Align each point to left */ } .right-section { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-end; padding-right: 0; height: 100vh; } .auth-topright { position: fixed; top: 22px; right: 48px; z-index: 200; display: flex; gap: 18px; } .auth-topright { gap:12px; } .lang-select { height: 32px; margin: 0 14px 8px 12px; /* space before auth button */ background: rgba(13,26,43,0.9); color: #e3f6ff; border: 1px solid #3aa6d9; border-radius: 8px; padding: 08px; font-size: 0.9rem; box-shadow: 0 2px 10px rgba(2,6,23,0.35); cursor: pointer; margin-top: 18px; margin-right: 350px; } .lang-select:hover { border-color: #5fc0ee; } .lang-select:focus { outline: none; box-shadow:0002px rgba(56,189,248,0.35); } .auth-btn { font-family: 'Montserrat', 'Poppins', 'Arial Black', Arial, sans-serif; font-size: 1.1rem; font-weight: 700; letter-spacing: 2px; background: linear-gradient(90deg, #38bdf8 0%, #23272b 100%); color: #e3f6ff; box-shadow: 0 2px 16px #38bdf888; border: none; border-radius: 12px; padding: 0.7rem 2rem; cursor: pointer; transition: background 0.3s, color 0.3s, box-shadow 0.3s; } .auth-btn:hover { background: linear-gradient(90deg, #23272b 0%, #38bdf8 100%); color: #bae6fd; box-shadow: 0 2px 24px #bae6fd88; } .py-detect-image { width: 420px; max-width: 100%; height: auto; border-radius: 24px; box-shadow: 0 8px 32px #38bdf844, 0 0 24px #1e293b88; border: 3px solid #38bdf8; background: #23272b; margin-top: 48px; margin-bottom: 48px; display: block; } .sign-in-form { background: rgba(30,41,59,0.92); padding: 32px 48px 32px 64px; /* Reduced vertical and horizontal padding */ border-radius: 24px; box-shadow: 0 8px 32px rgba(30,41,59,0.48), 0 0 24px #38bdf844; display: flex; flex-direction: column; align-items: flex-start; gap: 28px; /* Reduced gap between children */ min-width: 340px; max-width: 480px; border: 3px solid #38bdf8; backdrop-filter: blur(2px); transition: box-shadow 0.3s, border-color 0.3s; height: 320px; /* Further reduced height */ min-height: 320px; max-height: 340px; } .sign-in-form:hover { box-shadow: 0 4px 32px #38bdf844, 0 0 16px #1e293b88; border-color: #bae6fd; } .form-group { display: flex; flex-direction: column; align-items: flex-start; /* Align label and input to left */ gap: 12px; min-width: 180px; width: 100%; margin-left: -24px; /* Shift fields a bit to the left */ } label { color: #bae6fd; font-size: 14px; font-weight: 500; margin-bottom: 4px; letter-spacing: 1px; text-shadow: 0 0 6px #38bdf888; } .input-field { padding: 20px; border-radius: 12px; border: 3px solid #38bdf8; background: rgba(30,41,59,0.98); color: #e3f6ff; font-size: 15px; width: 100%; box-shadow: 0 2px 12px #38bdf844; transition: border-color 0.3s; text-align: left; /* Align text to left */ } .input-field:focus { border-color: #bae6fd; outline: none; } .input-field::placeholder { color: #bae6fd; font-size: 24px; opacity: 0.8; } .sign-in-button { background: linear-gradient(90deg, #38bdf8 0%, #23272b 100%); color: #e3f6ff; padding: 22px 0; font-size: 15px; border: none; border-radius: 14px; cursor: pointer; transition: background 0.3s ease, box-shadow 0.3s ease; width: 100%; margin-top: 0; font-weight: 600; letter-spacing: 1px; box-shadow: 0 2px 16px #38bdf888; text-shadow: 0 0 6px #23272b; align-self: stretch; min-width: 180px; } .sign-in-button:hover { background: linear-gradient(90deg, #23272b 0%, #38bdf8 100%); color: #bae6fd; box-shadow: 0 2px 24px #bae6fd88; } /* Buttons that open the popup */ .auth-links { display: flex; gap: 16px; margin-top: -12px; flex-wrap: wrap; } .link-btn { background: transparent; border: 1px dashed #38bdf8; color: #bae6fd; padding: 10px 16px; border-radius: 10px; cursor: pointer; } .link-btn:hover { border-style: solid; color: #e3f6ff; } .social-bar { position: absolute; top: 32px; right: 60px; display: flex; gap: 24px; z-index: 30; } .social-icon img { width: 38px; height: 38px; filter: drop-shadow(0 0 6px #38bdf8); transition: transform 0.2s; } .social-icon:hover img { transform: scale(1.15); filter: drop-shadow(0 0 12px #bae6fd); } .footer-link { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); font-size: 18px; color: #bae6fd; background: rgba(30,41,59,0.85); border-radius: 8px; padding: 10px 22px 10px 22px; box-shadow: 0 2px 8px #1e293b44; z-index: 40; text-align: center; min-width: 320px; } .footer-info { font-size: 16px; color: #bae6fd; margin-bottom: 2px; font-weight: 400; } .footer-link-highlight { color: #38bdf8; font-weight: 600; } .footer-link a { color: #38bdf8; text-decoration: none; font-size: 18px; font-weight: 500; letter-spacing: 1px; display: block; margin-bottom: 2px; } .footer-link a:hover { color: #e3f6ff; } .footer-tech { font-size: 15px; color: #e3f6ff; margin-top: 2px; font-weight: 600; letter-spacing: 1px; } .login-title { display: block; font-size: 40px; font-weight: 800; color: #38bdf8; text-align: left; margin-bottom: 0; letter-spacing: 2px; } .back-btn { margin-top: 32px; padding: 14px 38px; font-size: 1.3rem; font-weight: 700; border-radius: 12px; background: linear-gradient(90deg, #38bdf8 0%, #23272b 100%); color: #e3f6ff; border: none; box-shadow: 0 2px 16px #38bdf888; cursor: pointer; transition: background 0.3s, color 0.3s, box-shadow 0.3s; } .back-btn:hover { background: linear-gradient(90deg, #23272b 0%, #38bdf8 100%); color: #bae6fd; box-shadow: 0 2px 24px #bae6fd88; } /* ===== Modal (popup) styles ===== */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1000; } .modal { position: fixed; inset: 0; display: grid; place-items: center; padding: 24px; z-index: 1001; background: #ffffff45; } .modal > app-sign-in, .modal > app-sign-up { max-width: 900px; width: min(92vw, 900px); } .modal__close { position: absolute; top: 18px; right: 18px; width: 48px; height: 48px; border: none; background: linear-gradient(135deg, #23272b 60%, #18181b 100%); color: #fff; border-radius: 50%; cursor: pointer; font-size: 2.2rem; font-weight: bold; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 16px rgba(30,41,59,0.28); z-index: 20; transition: background 0.2s, color 0.2s, box-shadow 0.2s; outline: none; } .modal__close:hover { background: linear-gradient(135deg, #333 60%, #23272b 100%); color: #38bdf8; box-shadow: 0 8px 24px #38bdf888; } .signin-close { position: absolute; top: 189px; right: 363px; width: 48px; height: 48px; border: none; background: linear-gradient(135deg, #23272b 60%, #18181b 100%); color: #fff; border-radius: 50%; cursor: pointer; font-size: 2.2rem; font-weight: bold; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 16px rgba(30,41,59,0.28); z-index: 20; transition: background 0.2s, color 0.2s, box-shadow 0.2s; outline: none; } .signin-close:hover { background: linear-gradient(135deg, #333 60%, #23272b 100%); color: #38bdf8; box-shadow: 0 8px 24px #38bdf888; } .signup-close { position: absolute; top: 110px; right: 453px; width: 48px; height: 48px; border: none; background: linear-gradient(135deg, #23272b 60%, #18181b 100%); color: #fff; border-radius: 50%; cursor: pointer; font-size: 2.2rem; font-weight: bold; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 16px rgba(30,41,59,0.28); z-index: 20; transition: background 0.2s, color 0.2s, box-shadow 0.2s; outline: none; } .signup-close:hover { background: linear-gradient(135deg, #333 60%, #23272b 100%); color: #38bdf8; box-shadow: 0 8px 24px #38bdf888; } /* Preserve existing header logo/title and auth buttons styles from before (no change) */ /* New Landing styles (scoped to homepage to avoid affecting auth pages) */ .landing { min-height: 100vh; /* Use global body.homepage-bg background; remove local hero override */ background: transparent; color: #fff; } /* Simple navbar that does not override existing top-right auth */ .navbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 30px; } .navbar h1 { font-size: 22px; letter-spacing: 2px; margin: 0; } .nav-right { display: flex; align-items: center; gap: 15px; } /* Dropdown */ .dropdown { position: relative; display: inline-block; } .dropbtn { background-color: #222; color: #fff; padding: 10px 16px; border: none; display: flex; gap: 6px; align-items: center; } .dropdown-content { display: none; position: absolute; right: 0; background: #333; min-width: 180px; box-shadow: 0 8px 16px rgba(0,0,0,.3); border-radius: 4px; z-index: 1; } .dropdown-content a { color: #fff; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover { background: #444; } .dropdown:hover .dropdown-content { display: block; } /* Hero */ .hero { text-align: center; min-height: 31vh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 2vw; position: fixed; top: 35vh; left: calc(100% - 96vw); width: 32vw; text-wrap: auto; font-weight: 800; /*background: #011329d6;*/ border-radius: 4vw; } /* Subtle gradient overlay behind hero text for readability */ /*.hero { position: fixed; }*/ .hero::before { content: ''; position: absolute; inset:0; margin: auto; width:100%; height:100%; border-radius:4vw; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,0)0%, rgba(1,19,41,0.35)50%, rgba(0,0,0,0)100%); } /* Slightly elevate hero content above overlay */ .hero > * { position: relative; z-index:1; } .blue-section, .how-to-use, .features { position: relative; z-index: 1; } /* Specialisations */ .specialisations { padding: 25px 10%; text-align: center; background: linear-gradient(to right, #011329 0%, #010207 23%, #71a4c2 23%, #0171a3 77%, #010207 77%, #011329 100%); } .specialisation-cards { display: flex; justify-content: space-between; gap: 30px; flex-wrap: wrap; } .card { background: #fff; padding: 40px 30px; flex: 1 1 350px; max-width: 400px; box-shadow: 0 4px 12px rgba(0,0,0,.1); transition: transform .3s; } .card:hover { transform: translateY(-8px); } .card .icon { font-size: 48px; margin-bottom: 20px; color: #c62828; } .card h3 { font-size: 20px; margin-bottom: 15px; color: #c62828; } .card p { font-size: 16px; line-height: 1.6; color: #000; } /* Mission */ .mission { background: transparent; color: #fff; /* Reduce side padding and constrain width so it stays within the central blue band */ padding:48px 2.5vw; max-width: min(50vw,980px); margin:0 auto; text-align: center; box-sizing: border-box; } /* Keep mission content centered and within mission width */ .mission-row { display: flex; justify-content: space-between; gap: 30px; margin-top: 20px; margin-left: auto; margin-right: auto; max-width: 100%; flex-wrap: nowrap; box-sizing: border-box; } .mission-left, .mission-right { flex:11300px; text-align: left; font-size:16px; line-height:1.6; color: #f0f4f8; /* Add inner padding so text doesn't touch edges of blue card */ padding: 20px; box-sizing: border-box; } /* Features */ .features { padding: 60px 10%; background: #011329; color: #010207; } .feature-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 60px; background: #f9f9f9; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,.1); padding: 30px; gap: 20px; flex-wrap: wrap; } .feature-text { flex: 1 1 320px; padding: 20px; } .feature-text h2 { color: #c62828; margin-bottom: 15px; } .feature-text p { font-size: 16px; line-height: 1.6; } .feature-image { flex: 1 1 320px; padding: 20px; } .feature-image img { width: 100%; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,.2); } h2.section-title { font-size: 28px; color: #fff; margin-bottom: 10px; } /* Footer */ footer { background: linear-gradient(to right, #011022, #01030a); color: #fff; text-align: center; padding: 15px 10px; } footer a { color: #fff; text-decoration: none; margin: 0 10px; } footer .social-icons { margin-top:12px; display:flex; justify-content:center; gap:28px; flex-wrap:wrap; } footer .social-icons .si-wrap { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:600; letter-spacing:.5px; font-family:'Segoe UI', Arial, sans-serif; color:#cfe9f7; } footer .social-icons .si-wrap .si-text { transition:color .25s; } footer .social-icons .si { width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#122434; color:#38bdf8; font-size:18px; box-shadow:0 0 0 1px #214055, 0 4px 14px #0006; transition:background .25s, color .25s, transform .25s, box-shadow .25s; text-decoration:none; } footer .social-icons .si:hover { background:#38bdf8; color:#0c2533; transform:translateY(-4px); box-shadow:0 6px 20px #38bdf8aa,0 0 0 2px #38bdf8 inset; } footer .social-icons .si-wrap:hover .si-text { color:#ffffff; } footer .social-icons .si.fb { background:#1877f2; color:#fff; } footer .social-icons .si.fb:hover { background:#fff; color:#1877f2; } footer .social-icons .si.yt { background:#ff0000; color:#fff; } footer .social-icons .si.yt:hover { background:#fff; color:#ff0000; } footer .social-icons .si.li { background:#0a66c2; color:#fff; } footer .social-icons .si.li:hover { background:#fff; color:#0a66c2; } footer .social-icons .si.ig { background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%); color:#fff; } footer .social-icons .si.ig:hover { filter:brightness(1.15); color:#fff; box-shadow:0 6px 22px rgba(253,89,73,.6); } /* Keep existing modal styling (unchanged) */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1000; } .modal { position: fixed; inset: 0; display: grid; place-items: center; padding: 24px; z-index: 1001; background: #ffffff45; } /* Ensure info dialog is a real centered popup overlay */ .dialog-modal { position: fixed; inset: 0; display: grid; place-items: center; z-index: 2001; /* above backdrop and page */ pointer-events: auto; } .modal-backdrop--fade { animation: fadeInBackdrop .25s ease-out both; } .dialog-modal--zoom { animation: zoomInModal .28s cubic-bezier(0.23, 1, 0.32, 1) both; } /* Dialog card sizing */ .dialog-content { max-width: 720px; width: min(92vw, 720px); } .read-more-btn { background: linear-gradient(90deg, #38bdf8 0%, #23272b 100%); color: #fff; font-size: 1em; font-weight: 600; border: none; border-radius: 22px; padding: 10px 32px; box-shadow: 0 2px 12px #38bdf888; cursor: pointer; transition: background 0.3s, color 0.3s, box-shadow 0.3s; margin-top: 8px; letter-spacing: 1px; } .read-more-btn:hover { background: linear-gradient(90deg, #23272b 0%, #38bdf8 100%); color: #bae6fd; box-shadow: 0 2px 24px #bae6fd88; } /* ===================== */ /* Info Dialog Animations */ /* ===================== */ @keyframes fadeInBackdrop { from { opacity: 0; } to { opacity: 1; } } @keyframes zoomInModal { 0% { opacity: 0; transform: translateY(8px) scale(0.96); } 100% { opacity: 1; transform: translateY(0) scale(1); } } .modal-backdrop--fade { animation: fadeInBackdrop .25s ease-out both; } .dialog-modal--zoom { animation: zoomInModal .28s cubic-bezier(0.23, 1, 0.32, 1) both; } /* Dialog content card */ .dialog-content { background: #23272b; color: #fff; border-radius: 16px; padding: 36px; max-width: 720px; width: 92vw; text-align: left; position: relative; box-shadow: 0 8px 32px #38bdf844, 0 0 24px #1e293b88; } /* Titles inside dialog */ .dialog-title { color: #38bdf8; margin: 0 0 16px 0; font-size: 1.6rem; font-weight: 800; letter-spacing: 1px; } .dialog-content h3 { margin-top: 18px; margin-bottom: 8px; color: #38bdf8; font-size: 1.15rem; } .dialog-content p, .dialog-content ul { font-size: 1rem; color: #bae6fd; margin-bottom: 12px; } .dialog-content ul { padding-left: 18px; } /* Close button at top-right */ .dialog-close { position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border: none; border-radius: 50%; background: #18181b; color: #fff; font-size: 1.6rem; font-weight: bold; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.25); transition: background 0.2s, color 0.2s; } .dialog-close:hover { background: #333; color: #38bdf8; } .back-colo { background: #011329; width: 100%; height: 7vw; position: fixed; z-index: 3; } /* how to use */ .how-to-use { padding: 80px 10%; text-align: center; background: linear-gradient(to right, #011329 0%, #010207 23%, #01040b 23%, #01030a 77%, #010207 77%, #011329 100%); color: #fff; } .how-to-use .section-title { font-size: 28px; color: #0d9de3; /* blue highlight */ margin-bottom: 10px; } .how-to-use .section-subtitle { font-size: 16px; color: #f0f4f8; margin-bottom: 40px; } .use-cards { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 25px; line-height: 1.6; } .use-card { background: #fff; color: #000; flex: 1 1 calc(20% - 20px); /* 5 cards in a row */ min-width: 220px; border-radius: 12px; padding: 25px 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); transition: transform 0.3s; } .use-card:hover { transform: translateY(-6px); } .use-card .icon { font-size: 40px; margin-bottom: 15px; color: #3328c6; /* red accent */ } .use-card h3 { font-size: 18px; margin-bottom: 10px; color: #3328c6; } .use-card p { font-size: 16px; line-height: 1.5; color: #000; } .social-icons { display: flex; justify-content: center; gap: 15px; margin-top: 10px; } .social-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); color: white; text-decoration: none; font-size: 18px; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.2); } footer .social-icons { margin-top: 10px; } footer .social-icons img { width: 25px; margin: 0 8px; vertical-align: middle; } .social-icon:hover { transform: translateY(-3px); background: rgba(255, 255, 255, 0.2); } /* Specific colors for each platform */ .social-icon.facebook:hover { background: #3b5998; box-shadow: 0 4px 8px rgba(59, 89, 152, 0.3); } .social-icon.youtube:hover { background: #ff0000; box-shadow: 0 4px 8px rgba(255, 0, 0, 0.3); } .social-icon.linkedin:hover { background: #0077b5; box-shadow: 0 4px 8px rgba(0, 119, 181, 0.3); } .social-icon.instagram:hover { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); box-shadow: 0 4px 8px rgba(188, 24, 136, 0.3); } /* Sleek header auth buttons */ .auth-topright .auth-btn { font-size: 0.95rem; font-weight: 600; padding: 0.35rem 1.1rem; background: rgba(30,41,59,0.85); color: #e3f6ff; border: 1px solid #38bdf8; border-radius: 8px; box-shadow: 0 2px 8px #01132944; transition: background 0.2s, color 0.2s, box-shadow 0.2s, border-color 0.2s; opacity: 0.96; } .auth-topright .auth-btn { animation: authPulse 2.2s ease-in-out infinite; } @keyframes authPulse { 0% { box-shadow: 0 0 0px #38bdf844, 0 2px 8px #01132944; } 50% { box-shadow: 0 0 12px #38bdf8cc, 0 2px 16px #01132944; } 100% { box-shadow: 0 0 0px #38bdf844, 0 2px 8px #01132944; } } .auth-topright .auth-btn:hover { animation: none; background: rgba(56,189,248,0.18); color: #bae6fd; border-color: #bae6fd; box-shadow: 0 4px 24px #38bdf8cc; opacity: 1; } /* Replace the existing .auth-topright .auth-btn rules only for image variant */ .auth-topright .auth-btn { width: 56px; height: 56px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(90deg, #38bdf8 0%, #23272b 100%); border: none; box-shadow: 0 2px 12px #38bdf888; } .auth-topright .auth-btn:hover { transform: scale(1.03); } .auth-btn-img { width: 42px; height: 42px; object-fit: contain; display: block; } /* Fallback: if image not available, show text inside small circle */ .auth-topright .auth-btn:empty::before { content: 'Sign In'; color: #fff; font-weight: 700; font-size: 0.8rem; } /* Replace the existing .auth-topright .auth-btn rules only for svg variant */ .auth-topright .auth-btn { width: 56px; height: 56px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.6)); border: 2px solid rgba(14,165,201,0.12); box-shadow: 0 4px 18px rgba(2,6,23,0.6); cursor: pointer; } .auth-topright .auth-btn:hover { transform: scale(1.04); } .auth-btn-svg { width: 42px; height: 42px; display: block; } .auth-ring { stroke: rgba(168,213,241,0.85); } .auth-head { fill: rgba(168,213,241,0.95); } .auth-body { stroke: rgba(168,213,241,0.95); } /* Fallback text hidden when svg present */ .auth-topright .auth-btn:empty::before { content: 'Login'; color: #fff; } .header-nav { display: flex; align-items: center; gap: 41px; /* color: #692727 !important;*/ font-weight: 700; margin-right: 100px; } .header-nav .nav-link { color: #ffffff; text-decoration: none; font-size: 14px; font-weight: 600; } .header-nav .nav-link:hover { color: #38bdf8; } .header-nav .nav-sep { color: #5fa8d4; opacity:0.9; } .header-nav .nav-icon { font-size: 1vw; margin-right: 6px; /* vertical-align: -1px; */ opacity: 0.9; } .header-nav .dropdown-item .nav-icon { margin-right:8px; } /* Premium soft hover underline and color fade for header nav */ .header-nav .nav-link, .header-nav .dropdown-toggle, .header-nav .dropdown-item { position: relative; transition: color .25s ease; display: flex; align-items: baseline; } .header-nav .nav-link::after, .header-nav .dropdown-toggle::after, .header-nav .dropdown-item::after { content: ''; position: absolute; left:50%; bottom: -6px; height:2px; width:0; border-radius:2px; background: linear-gradient(90deg, rgba(56,189,248,0.0), rgba(56,189,248,0.65), rgba(56,189,248,0.0)); transition: width .28s cubic-bezier(.4,0,.2,1), left .28s cubic-bezier(.4,0,.2,1); } .header-nav .nav-link:hover, .header-nav .dropdown-toggle:hover, .header-nav .dropdown-item:hover { color: #5fc0ee; } .header-nav .nav-link:hover::after, .header-nav .dropdown-toggle:hover::after, .header-nav .dropdown-item:hover::after { width:64%; left:18%; } @media (max-width:760px) { .header-nav { display: none; } } /* Dropdown styles for About in header nav */ .header-nav .dropdown { position: relative; display: inline-block; } /* Hover bridge to avoid flicker when moving cursor from toggle to menu */ .header-nav .dropdown::after { content: ''; position: absolute; left:0; right:0; top:100%; height:10px; /* small buffer */ } .header-nav .dropdown-toggle { cursor: pointer; } .header-nav .dropdown-menu { position: absolute; top:120%; left:0; background: #0b1f36; border:1px solid rgba(56,189,248,0.25); border-radius:8px; box-shadow:0 8px 24px rgba(2,6,23,0.45); padding:8px; min-width:220px; z-index:3000; /* transition-based visibility so there's time to hover into menu */ opacity:0; visibility: hidden; transform: translateY(6px); pointer-events: none; transition: opacity .22s ease, transform .22s ease, visibility 0s linear .3s; /*300ms hide delay */ } /* Show menu on hover/focus and keep it open when hovering the menu itself */ .header-nav .dropdown:hover .dropdown-menu, .header-nav .dropdown:focus-within .dropdown-menu, .header-nav .dropdown .dropdown-menu:hover { opacity:1; visibility: visible; transform: translateY(0); pointer-events: auto; transition-delay:0s,0s,0s; /* no delay when showing */ } .header-nav .dropdown-item { display: block; color: #e3f6ff; text-decoration: none; padding:8px 12px; border-radius:6px; font-size:0.92rem; white-space: nowrap; } .header-nav .dropdown-item:hover { background: rgba(56,189,248,0.18); color: #bae6fd; } /* Active/selected nav highlight without border */ .header-nav .nav-link.active, .header-nav .dropdown-item.active { box-shadow:0006px rgba(56,189,248,0.12), 0 2px 12px rgba(56,189,248,0.35); background: rgba(56,189,248,0.1); border: none; border-radius:8px; } /* Remove rounded border appearance only for active Home link */ .header-nav .nav-link:first-of-type.active { border-radius:0; background: transparent; } /* Reduce default outline to subtle glow for accessibility */ .header-nav .nav-link:focus-visible, .header-nav .dropdown-item:focus-visible { outline: none; box-shadow:0003px rgba(56,189,248,0.35); border-radius:8px; } /* Remove click outline/border when using mouse/touch (but keep keyboard :focus-visible) */ .header-nav .nav-link:focus:not(:focus-visible), .header-nav .dropdown-toggle:focus:not(:focus-visible), .header-nav .dropdown-item:focus:not(:focus-visible), .header-nav .nav-link:active, .header-nav .dropdown-toggle:active, .header-nav .dropdown-item:active { outline: none !important; box-shadow: none !important; border: none !important; } /* Title stack for logo + tagline */ .title-stack { display:flex; flex-direction: column; align-items:flex-start; gap:2px; } .logo-tagline { font-size: 0.92rem; font-weight: 400; color: #ffffff; letter-spacing: 0.3px; margin-top: -6px; /* tuck closer under title */ opacity: 0.9; } /* Remove separate fixed language selector */ .lang-topright { display:none; } /* Header inline language selector after nav */ .header-lang { height:32px; margin: 0 0px 0px 0px; /* space before auth button */ background: rgba(13,26,43,0.9); color: #e3f6ff; border:1px solid #3aa6d9; border-radius:8px; padding:0 8px; font-size:0.9rem; box-shadow:0 2px 10px rgba(2,6,23,0.35); cursor: pointer; } .header-lang:hover { border-color: #5fc0ee; } .header-lang:focus { outline: none; box-shadow:0002px rgba(56,189,248,0.35); } /* Keep auth button at far top-right */ .auth-topright { position: fixed; top:22px; right:48px; z-index:200; } /* Tooltip for profile icon */ .auth-topright .auth-btn[data-tooltip] { position: relative; } .auth-topright .auth-btn[data-tooltip]::after { content: attr(data-tooltip); position: absolute; right:50%; transform: translateX(50%); top: calc(100% +8px); background: rgba(15,23,42,0.96); color: #e3f6ff; border:1px solid rgba(56,189,248,0.35); border-radius:6px; padding:6px 10px; font-size:12px; line-height:1; white-space: nowrap; box-shadow:0 6px 18px rgba(2,6,23,0.45); opacity:0; pointer-events: none; transition: opacity .18s ease, transform .18s ease; z-index:2100; } .auth-topright .auth-btn[data-tooltip]:hover::after, .auth-topright .auth-btn[data-tooltip]:focus-visible::after { opacity:1; transform: translateX(50%) translateY(0); } .hero .hero-cta { margin-top: 12px; background: linear-gradient( 90deg, #38BDF8 0%, #0EA5E9 100% ); color: #18181b; border: none; border-radius: 999px; padding: 10px 22px; font-size: 0.98rem; font-weight: 700; letter-spacing: 0.6px; cursor: pointer; box-shadow: 0 2px 12px #38bdf888; transition: background 0.2s, color 0.2s, box-shadow 0.2s; } .hero .hero-cta:hover { background: linear-gradient(90deg, #23272b0%, #38bdf8100%); color: #bae6fd; box-shadow:0 2px 24px #bae6fd88; } .features .section-title { text-align: center; margin-left: auto; margin-right: auto; display: block; } /* How It Works section styling */ .how-it-works { padding:80px 10%; text-align: center; background: #011329; /* solid dark theme background */ color: #e3f6ff; position: relative; /* for pseudo-element if present */ } .how-it-works::before { content: ''; position: absolute; top:50%; left:50%; transform: translate(-50%, -50%); width: min(1000px,92vw); height:380px; border-radius:24px; z-index:0; /* behind card content */ } .how-it-works .section-title, .how-it-works p, .how-it-works h3 { position: relative; z-index:1; } /* Scrollable card with solid theme background and light text */ .how-card { background: #ffffff; /* solid themed background on top of any card */ color: #e3f6ff; border-radius:12px; box-shadow:0 4px 16px rgba(2,6,23,0.55); border:1px solid rgba(56,189,248,0.25); padding:24px; max-width:900px; margin:0 auto; max-height:420px; /* make scrollable if content exceeds */ overflow: auto; position: relative; z-index:2; /* above background layers */ } .how-card h3 { color: #c92c26; margin-top:12px; } .how-card p { font-size:16px; line-height:1.7; color: #333; } /* Ensure section title uses theme accent */ .how-it-works .section-title { text-align: center; margin:0 auto 12px auto; display: block; color: #0d9de3; } /* How It Works: blue background card and2x3 grid */ .how-wrapper { position: relative; max-width:7000px; margin:0 auto; padding:12px 12px 24px; } .how-bg { position:absolute; inset:0; margin:auto; border-radius:12px; background: linear-gradient(135deg, #0b3a6b0%, #0d5aa8100%); opacity:0.22; z-index:0; box-shadow:0 12px 40px rgba(0,0,0,.25); } .how-tiles { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; font-size: 16px; line-height: 1.6; } .how-tile { background:#fff; color:#222; border-radius:8px; box-shadow:0 8px 22px rgba(0,0,0,.06); border:1px solid rgba(0,0,0,.06); overflow:hidden; padding-bottom:6px; } .how-tile:hover { transform: translateY(-3px); box-shadow:0 12px 26px rgba(0,0,0,.12); transition:transform .2s, box-shadow .2s; } .how-illustration { background: linear-gradient(180deg,#fcf7ea,#3aa6d9); height: 100px; display: flex; align-items: center; justify-content: center; } .how-illustration i { font-size:62px; } .how-tile-title { text-align: left !important; margin: 14px 6px 0; color: #3328c6; font-weight: 800; } .how-divider { height: 3px; width: 81%; margin: 8px auto 8px; border-bottom: 2px dotted #3328c6; margin-right: 84px; } .how-tile p, .how-tile ul { text-align: left !important; padding:0 18px 12px; margin:0; color:#333; } .how-tile ul { padding-left:24px; } /* Ensure illustration remains centered but not affecting text */ .how-illustration { display:flex; align-items:center; justify-content:center; } @media (max-width:1024px) { .how-tiles { grid-template-columns: repeat(2,1fr); } } @media (max-width:640px) { .how-tiles { grid-template-columns:1fr; } .how-illustration { height:130px; } } /* Blur homepage content when auth modal is open */ :host-context(.modal-open) .homepage-root { filter: blur(4px); transition: filter 160ms ease; } /* Ensure modal backdrop stays transparent to show blurred homepage */ .modal-backdrop { background: rgba(0,0,0,0.2); } /* Language box with globe icon and label */ .lang-box { display: inline-flex; align-items: center; gap:8px; padding:6px 10px; border:1px solid #3aa6d9; border-radius:10px; background: rgba(13,26,43,0.65); margin:0 12px 8px 12px; box-shadow:0 2px 10px rgba(2,6,23,0.35); } .lang-icon { color: #38bdf8; text-shadow:0 0 6px #38bdf866; font-size:0.95rem; } .lang-label { color: #e3f6ff; font-size:0.9rem; opacity:0.95; } /* Reuse existing select but remove large right margin so it fits the box */ .lang-select.header-lang { margin-right:0; margin-top:0; height:28px; padding:4px 8px; } /* Language dropdown alignment to avoid overlapping auth button */ .header-nav .lang-dropdown { position: relative; } .header-nav .lang-dropdown .dropdown-menu { right:0; /* align the menu to the toggle's right edge */ left: auto; transform-origin: top right; } /* When the language dropdown is near the right edge, open to the left */ @media (min-width:761px) { .header-nav .lang-dropdown .dropdown-menu { transform: translateY(0) translateX(-20px); } }