Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Vedic Face Reader - Samudrik Shastra Analysis</title> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
:root { | |
--primary: #8e44ad; | |
--secondary: #f39c12; | |
--dark: #2c3e50; | |
--light: #ecf0f1; | |
--success: #27ae60; | |
--warning: #e74c3c; | |
} | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
} | |
body { | |
background-color: #f5f5f5; | |
color: #333; | |
line-height: 1.6; | |
overflow-x: hidden; | |
} | |
.container { | |
max-width: 100%; | |
padding: 0 15px; | |
margin: 0 auto; | |
} | |
header { | |
background: linear-gradient(135deg, var(--primary), #6c5ce7); | |
color: white; | |
padding: 1rem 0; | |
text-align: center; | |
position: relative; | |
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); | |
} | |
.header-content { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
} | |
.logo { | |
width: 80px; | |
height: 80px; | |
background-color: white; | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
margin-bottom: 10px; | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); | |
} | |
.logo i { | |
color: var(--primary); | |
font-size: 2.5rem; | |
} | |
h1 { | |
font-size: 1.8rem; | |
margin-bottom: 0.5rem; | |
font-weight: 600; | |
} | |
.tagline { | |
font-size: 0.9rem; | |
opacity: 0.9; | |
font-style: italic; | |
} | |
.language-selector { | |
position: absolute; | |
top: 15px; | |
right: 15px; | |
} | |
.language-selector select { | |
background-color: rgba(255, 255, 255, 0.2); | |
color: white; | |
border: 1px solid rgba(255, 255, 255, 0.3); | |
border-radius: 20px; | |
padding: 3px 10px; | |
font-size: 0.8rem; | |
} | |
.language-selector select option { | |
color: var(--dark); | |
} | |
main { | |
padding: 20px 0; | |
} | |
.intro-section { | |
text-align: center; | |
margin-bottom: 30px; | |
padding: 0 15px; | |
} | |
.intro-text { | |
margin-bottom: 20px; | |
font-size: 1rem; | |
} | |
.features-grid { | |
display: grid; | |
grid-template-columns: repeat(2, 1fr); | |
gap: 15px; | |
margin-bottom: 25px; | |
} | |
.feature-card { | |
background-color: white; | |
border-radius: 12px; | |
padding: 15px; | |
text-align: center; | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); | |
transition: transform 0.3s ease; | |
} | |
.feature-card:hover { | |
transform: translateY(-5px); | |
} | |
.feature-icon { | |
width: 50px; | |
height: 50px; | |
background: linear-gradient(135deg, var(--secondary), #e67e22); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
margin: 0 auto 10px; | |
color: white; | |
font-size: 1.5rem; | |
} | |
.feature-title { | |
font-size: 0.9rem; | |
font-weight: 600; | |
margin-bottom: 5px; | |
color: var(--dark); | |
} | |
.feature-desc { | |
font-size: 0.8rem; | |
color: #666; | |
} | |
.upload-section { | |
background-color: white; | |
border-radius: 15px; | |
padding: 20px; | |
margin: 0 15px 30px; | |
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); | |
text-align: center; | |
position: relative; | |
overflow: hidden; | |
} | |
.upload-section::before { | |
content: ""; | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 5px; | |
background: linear-gradient(90deg, var(--primary), var(--secondary)); | |
} | |
.upload-title { | |
font-size: 1.2rem; | |
margin-bottom: 15px; | |
color: var(--dark); | |
font-weight: 600; | |
} | |
.upload-instructions { | |
font-size: 0.85rem; | |
color: #666; | |
margin-bottom: 20px; | |
} | |
.upload-area { | |
border: 2px dashed #ccc; | |
border-radius: 10px; | |
padding: 30px; | |
margin-bottom: 15px; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
position: relative; | |
} | |
.upload-area:hover { | |
border-color: var(--primary); | |
background-color: rgba(142, 68, 173, 0.05); | |
} | |
.upload-area i { | |
font-size: 2.5rem; | |
color: var(--primary); | |
margin-bottom: 10px; | |
} | |
.upload-area-text { | |
font-size: 0.9rem; | |
color: #666; | |
} | |
.btn { | |
display: inline-block; | |
padding: 12px 25px; | |
background: linear-gradient(135deg, var(--primary), #6c5ce7); | |
color: white; | |
border: none; | |
border-radius: 30px; | |
font-size: 1rem; | |
font-weight: 500; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
box-shadow: 0 4px 10px rgba(142, 68, 173, 0.3); | |
margin: 5px; | |
} | |
.btn:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 6px 15px rgba(142, 68, 173, 0.4); | |
} | |
.btn-outline { | |
background: transparent; | |
border: 2px solid var(--primary); | |
color: var(--primary); | |
box-shadow: none; | |
} | |
.btn-outline:hover { | |
background: rgba(142, 68, 173, 0.1); | |
} | |
.result-section { | |
display: none; | |
background-color: white; | |
border-radius: 15px; | |
padding: 20px; | |
margin: 0 15px 30px; | |
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); | |
} | |
.result-header { | |
display: flex; | |
align-items: center; | |
margin-bottom: 20px; | |
padding-bottom: 15px; | |
border-bottom: 1px solid #eee; | |
} | |
.result-avatar { | |
width: 80px; | |
height: 80px; | |
border-radius: 50%; | |
object-fit: cover; | |
border: 3px solid var(--secondary); | |
margin-right: 15px; | |
} | |
.result-title { | |
flex: 1; | |
} | |
.result-name { | |
font-size: 1.2rem; | |
font-weight: 600; | |
margin-bottom: 5px; | |
color: var(--dark); | |
} | |
.result-confidence { | |
display: inline-block; | |
background-color: rgba(39, 174, 96, 0.2); | |
color: var(--success); | |
padding: 3px 10px; | |
border-radius: 20px; | |
font-size: 0.8rem; | |
font-weight: 500; | |
} | |
.result-tabs { | |
display: flex; | |
margin-bottom: 20px; | |
border-bottom: 1px solid #eee; | |
} | |
.result-tab { | |
padding: 10px 15px; | |
font-size: 0.9rem; | |
font-weight: 500; | |
color: #666; | |
cursor: pointer; | |
border-bottom: 2px solid transparent; | |
transition: all 0.3s ease; | |
} | |
.result-tab.active { | |
color: var(--primary); | |
border-bottom-color: var(--primary); | |
} | |
.result-content { | |
display: none; | |
} | |
.result-content.active { | |
display: block; | |
} | |
.feature-analysis { | |
margin-bottom: 20px; | |
} | |
.feature-title { | |
font-size: 1rem; | |
font-weight: 600; | |
color: var(--dark); | |
margin-bottom: 10px; | |
display: flex; | |
align-items: center; | |
} | |
.feature-title i { | |
margin-right: 8px; | |
color: var(--secondary); | |
} | |
.feature-desc { | |
font-size: 0.9rem; | |
color: #555; | |
margin-bottom: 5px; | |
} | |
.feature-match { | |
display: flex; | |
align-items: center; | |
margin-top: 10px; | |
} | |
.match-bar { | |
flex: 1; | |
height: 8px; | |
background-color: #eee; | |
border-radius: 4px; | |
margin-right: 10px; | |
overflow: hidden; | |
} | |
.match-fill { | |
height: 100%; | |
background: linear-gradient(90deg, var(--secondary), var(--primary)); | |
border-radius: 4px; | |
} | |
.match-percent { | |
font-size: 0.85rem; | |
color: var(--success); | |
font-weight: 500; | |
} | |
.face-image-container { | |
position: relative; | |
margin: 20px 0; | |
border-radius: 10px; | |
overflow: hidden; | |
background-color: #f9f9f9; | |
} | |
.face-image { | |
width: 100%; | |
display: block; | |
} | |
.face-overlay { | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
} | |
.face-point { | |
position: absolute; | |
width: 18px; | |
height: 18px; | |
background-color: var(--warning); | |
border-radius: 50%; | |
transform: translate(-50%, -50%); | |
} | |
.face-point:hover .face-tooltip { | |
display: block; | |
} | |
.face-tooltip { | |
display: none; | |
position: absolute; | |
bottom: 100%; | |
left: 50%; | |
transform: translateX(-50%); | |
background-color: white; | |
padding: 8px 12px; | |
border-radius: 8px; | |
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); | |
font-size: 0.8rem; | |
white-space: nowrap; | |
z-index: 10; | |
margin-bottom: 5px; | |
} | |
.face-tooltip::after { | |
content: ""; | |
position: absolute; | |
top: 100%; | |
left: 50%; | |
transform: translateX(-50%); | |
border-width: 5px; | |
border-style: solid; | |
border-color: white transparent transparent transparent; | |
} | |
.modal { | |
display: none; | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
background-color: rgba(0, 0, 0, 0.7); | |
z-index: 100; | |
align-items: center; | |
justify-content: center; | |
} | |
.modal-content { | |
background-color: white; | |
border-radius: 15px; | |
width: 90%; | |
max-width: 500px; | |
max-height: 90vh; | |
overflow-y: auto; | |
padding: 25px; | |
position: relative; | |
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); | |
} | |
.close-modal { | |
position: absolute; | |
top: 15px; | |
right: 15px; | |
font-size: 1.5rem; | |
color: #666; | |
cursor: pointer; | |
} | |
.disclaimer { | |
background-color: rgba(231, 76, 60, 0.1); | |
color: var(--warning); | |
padding: 15px; | |
border-radius: 10px; | |
margin: 20px 0; | |
font-size: 0.85rem; | |
} | |
footer { | |
background-color: var(--dark); | |
color: white; | |
padding: 25px 15px; | |
text-align: center; | |
font-size: 0.85rem; | |
} | |
.footer-links { | |
display: flex; | |
justify-content: center; | |
margin-bottom: 15px; | |
} | |
.footer-link { | |
color: white; | |
margin: 0 10px; | |
text-decoration: none; | |
opacity: 0.8; | |
transition: opacity 0.3s ease; | |
} | |
.footer-link:hover { | |
opacity: 1; | |
} | |
.social-icons { | |
margin: 20px 0; | |
} | |
.social-icon { | |
display: inline-block; | |
width: 40px; | |
height: 40px; | |
background-color: rgba(255, 255, 255, 0.1); | |
border-radius: 50%; | |
margin: 0 5px; | |
display: inline-flex; | |
align-items: center; | |
justify-content: center; | |
color: white; | |
font-size: 1.2rem; | |
transition: all 0.3s ease; | |
} | |
.social-icon:hover { | |
background-color: var(--primary); | |
transform: translateY(-3px); | |
} | |
@media (min-width: 768px) { | |
.container { | |
max-width: 750px; | |
} | |
.features-grid { | |
grid-template-columns: repeat(4, 1fr); | |
} | |
.upload-section { | |
margin-left: 0; | |
margin-right: 0; | |
} | |
.result-section { | |
margin-left: 0; | |
margin-right: 0; | |
} | |
} | |
/* Animation classes */ | |
@keyframes float { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-10px); } | |
100% { transform: translateY(0px); } | |
} | |
.floating { | |
animation: float 3s ease-in-out infinite; | |
} | |
@keyframes pulse { | |
0% { transform: scale(1); } | |
50% { transform: scale(1.05); } | |
100% { transform: scale(1); } | |
} | |
.pulse { | |
animation: pulse 2s ease-in-out infinite; | |
} | |
/* Sample results for demonstration */ | |
.sample-results { | |
display: flex; | |
flex-wrap: wrap; | |
justify-content: center; | |
margin: 30px 0; | |
gap: 15px; | |
} | |
.sample-card { | |
width: 150px; | |
background-color: white; | |
border-radius: 10px; | |
overflow: hidden; | |
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); | |
transition: all 0.3s ease; | |
text-decoration: none; | |
color: inherit; | |
} | |
.sample-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); | |
} | |
.sample-image { | |
width: 100%; | |
height: 120px; | |
object-fit: cover; | |
} | |
.sample-info { | |
padding: 10px; | |
} | |
.sample-name { | |
font-size: 0.9rem; | |
font-weight: 600; | |
margin-bottom: 3px; | |
color: var(--dark); | |
} | |
.sample-feature { | |
font-size: 0.8rem; | |
color: #666; | |
} | |
.loading { | |
display: none; | |
text-align: center; | |
padding: 30px; | |
} | |
.loading-spinner { | |
width: 50px; | |
height: 50px; | |
border: 5px solid rgba(142, 68, 173, 0.2); | |
border-top-color: var(--primary); | |
border-radius: 50%; | |
animation: spin 1s linear infinite; | |
margin: 0 auto 20px; | |
} | |
@keyframes spin { | |
to { transform: rotate(360deg); } | |
} | |
.loading-text { | |
font-size: 1rem; | |
color: var(--dark); | |
} | |
</style> | |
</head> | |
<body> | |
<header> | |
<div class="container"> | |
<div class="header-content"> | |
<div class="language-selector"> | |
<select id="language-select"> | |
<option value="en">English</option> | |
<option value="hi">हिंदी</option> | |
<option value="ta">தமிழ்</option> | |
<option value="te">తెలుగు</option> | |
<option value="bn">বাংলা</option> | |
</select> | |
</div> | |
<div class="logo floating"> | |
<i class="fas fa-eye"></i> | |
</div> | |
<h1>Vedic Face Reader</h1> | |
<p class="tagline">Discover Yourself Through Ancient Eyes</p> | |
</div> | |
</div> | |
</header> | |
<main> | |
<div class="container"> | |
<section class="intro-section"> | |
<p class="intro-text"> | |
Unlock the secrets of your face with ancient Samudrik Shastra wisdom. Our AI-powered analysis reveals | |
your personality traits, future possibilities, and hidden potentials based on 5,000-year-old Vedic knowledge. | |
</p> | |
<div class="features-grid"> | |
<div class="feature-card"> | |
<div class="feature-icon"> | |
<i class="fas fa-user-tie"></i> | |
</div> | |
<h3 class="feature-title">Career Guidance</h3> | |
<p class="feature-desc">Discover your ideal professions based on facial features</p> | |
</div> | |
<div class="feature-card"> | |
<div class="feature-icon"> | |
<i class="fas fa-heart"></i> | |
</div> | |
<h3 class="feature-title">Relationship Insights</h3> | |
<p class="feature-desc">Understand compatibility with partners based on facial analysis</p> | |
</div> | |
<div class="feature-card"> | |
<div class="feature-icon"> | |
<i class="fas fa-star"></i> | |
</div> | |
<h3 class="feature-title">Personality Traits</h3> | |
<p class="feature-desc">Learn about your character strengths and weaknesses</p> | |
</div> | |
<div class="feature-card"> | |
<div class="feature-icon"> | |
<i class="fas fa-gem"></i> | |
</div> | |
<h3 class="feature-title">Fortune Lines</h3> | |
<p class="feature-desc">Identify Bhagya Rekha and other destiny lines on your forehead</p> | |
</div> | |
</div> | |
<p><strong>25,000+</strong> faces analyzed with <strong>92%</strong> user satisfaction</p> | |
</section> | |
<section class="upload-section pulse"> | |
<h2 class="upload-title">Upload Your Face Photo</h2> | |
<p class="upload-instructions">For best results, use a clear front-facing photo (minimum 720p resolution) with neutral expression and good lighting.</p> | |
<div class="upload-area" id="upload-area"> | |
<i class="fas fa-cloud-upload-alt"></i> | |
<p class="upload-area-text">Tap to upload photo or drag & drop here</p> | |
</div> | |
<input type="file" id="file-input" accept="image/*" style="display: none;"> | |
<div class="loading" id="loading-indicator"> | |
<div class="loading-spinner"></div> | |
<p class="loading-text">Analyzing your facial features with ancient wisdom...</p> | |
</div> | |
<button class="btn" id="analyze-btn" disabled>Analyze My Face</button> | |
<button class="btn btn-outline" id="use-sample">Try Sample Instead</button> | |
<div class="sample-results" id="sample-results"> | |
<a href="#" class="sample-card sample-selector" data-sample="1"> | |
<img src="https://randomuser.me/api/portraits/women/43.jpg" alt="Sample 1" class="sample-image"> | |
<div class="sample-info"> | |
<h4 class="sample-name">Sample 1</h4> | |
<p class="sample-feature">Round face</p> | |
</div> | |
</a> | |
<a href="#" class="sample-card sample-selector" data-sample="2"> | |
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Sample 2" class="sample-image"> | |
<div class="sample-info"> | |
<h4 class="sample-name">Sample 2</h4> | |
<p class="sample-feature">Square face</p> | |
</div> | |
</a> | |
<a href="#" class="sample-card sample-selector" data-sample="3"> | |
<img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Sample 3" class="sample-image"> | |
<div class="sample-info"> | |
<h4 class="sample-name">Sample 3</h4> | |
<p class="sample-feature">Oval face</p> | |
</div> | |
</a> | |
<a href="#" class="sample-card sample-selector" data-sample="4"> | |
<img src="https://randomuser.me/api/portraits/men/75.jpg" alt="Sample 4" class="sample-image"> | |
<div class="sample-info"> | |
<h4 class="sample-name">Sample 4</h4> | |
<p class="sample-feature">Rectangular face</p> | |
</div> | |
</a> | |
</div> | |
</section> | |
<section class="result-section" id="result-section"> | |
<div class="result-header"> | |
<img id="result-avatar" src="" alt="User photo" class="result-avatar"> | |
<div class="result-title"> | |
<h2 id="result-name" class="result-name">Your Vedic Analysis</h2> | |
<span class="result-confidence">87% Confidence Match</span> | |
</div> | |
</div> | |
<div class="result-tabs"> | |
<div class="result-tab active" data-tab="personality">Personality</div> | |
<div class="result-tab" data-tab="career">Career</div> | |
<div class="result-tab" data-tab="relationships">Relationships</div> | |
<div class="result-tab" data-tab="face-map">Face Map</div> | |
</div> | |
<div class="result-content active" id="personality-tab"> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-shapes"></i> Face Shape</h3> | |
<p class="feature-desc">Your <strong>oval face shape</strong> indicates a sensitive, intuitive and artistic personality.</p> | |
<div class="feature-match"> | |
<div class="match-bar"><div class="match-fill" style="width: 92%;"></div></div> | |
<div class="match-percent">92% match</div> | |
</div> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-brain"></i> Forehead</h3> | |
<p class="feature-desc">Your <strong>well-developed forehead</strong> with faint Bhagya Rekha shows intelligence and potential for good fortune.</p> | |
<div class="feature-match"> | |
<div class="match-bar"><div class="match-fill" style="width: 87%;"></div></div> | |
<div class="match-percent">87% match</div> | |
</div> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-eye"></i> Eyes</h3> | |
<p class="feature-desc">Your <strong>large, round eyes</strong> indicate warmth, emotional depth and caring personality.</p> | |
<div class="feature-match"> | |
<div class="match-bar"><div class="match-fill" style="width: 95%;"></div></div> | |
<div class="match-percent">95% match</div> | |
</div> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-bullseye"></i> Nose</h3> | |
<p class="feature-desc">Your <strong>medium-sized nose</strong> suggests balanced ambition and practical approach to life.</p> | |
<div class="feature-match"> | |
<div class="match-bar"><div class="match-fill" style="width: 78%;"></div></div> | |
<div class="match-percent">78% match</div> | |
</div> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-grin"></i> Cheeks</h3> | |
<p class="feature-desc">Your <strong>moderate cheekbones</strong> show leadership potential without being autocratic.</p> | |
<div class="feature-match"> | |
<div class="match-bar"><div class="match-fill" style="width: 83%;"></div></div> | |
<div class="match-percent">83% match</div> | |
</div> | |
</div> | |
<div class="disclaimer"> | |
<i class="fas fa-info-circle"></i> These insights are based on ancient Samudrik Shastra principles for entertainment and self-reflection purposes only. | |
</div> | |
<button class="btn" id="see-career">See Career Predictions</button> | |
</div> | |
<div class="result-content" id="career-tab"> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-chart-line"></i> Career Strengths</h3> | |
<p class="feature-desc">Your facial features suggest you would excel in creative and people-oriented professions.</p> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-briefcase"></i> Recommended Fields</h3> | |
<p class="feature-desc"> | |
- Arts and creative industries<br> | |
- Counseling and psychology<br> | |
- Teaching and education<br> | |
- Healthcare professions<br> | |
- Human resources management | |
</p> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-calendar-alt"></i> Future Prospects</h3> | |
<p class="feature-desc">Your Bhagya Rekha indicates upcoming opportunities between ages 32-36. Stay open to unexpected career changes during this period.</p> | |
</div> | |
<button class="btn" id="see-relationships">See Relationship Insights</button> | |
</div> | |
<div class="result-content" id="relationships-tab"> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-heart"></i> Romantic Compatibility</h3> | |
<p class="feature-desc">You are most compatible with partners who have strong, angular facial features to balance your softness.</p> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-users"></i> Friendship Style</h3> | |
<p class="feature-desc">Your warm eyes indicate deep loyalty in friendships. You tend to maintain long-term connections.</p> | |
</div> | |
<div class="feature-analysis"> | |
<h3 class="feature-title"><i class="fas fa-hands-helping"></i> Family Relations</h3> | |
<p class="feature-desc">Your facial symmetry suggests good family karma. You play the role of peacemaker in family conflicts.</p> | |
</div> | |
<button class="btn" id="see-face-map">View Detailed Face Map</button> | |
</div> | |
<div class="result-content" id="face-map-tab"> | |
<div class="face-image-container"> | |
<img id="analyzed-face" src="" alt="Analyzed face" class="face-image"> | |
<div class="face-overlay"> | |
<div class="face-point" style="top: 20%; left: 50%;" data-feature="forehead-line"> | |
<div class="face-tooltip">Bhagya Rekha (Fortune Line)</div> | |
</div> | |
<div class="face-point" style="top: 45%; left: 30%;" data-feature="left-eye"> | |
<div class="face-tooltip">Large, Round Eye</div> | |
</div> | |
<div class="face-point" style="top: 45%; left: 70%;" data-feature="right-eye"> | |
<div class="face-tooltip">Large, Round Eye</div> | |
</div> | |
<div class="face-point" style="top: 60%; left: 50%;" data-feature="nose"> | |
<div class="face-tooltip">Medium Nose</div> | |
</div> | |
<div class="face-point" style="top: 70%; left: 30%;" data-feature="left-cheek"> | |
<div class="face-tooltip">Moderate Cheekbone</div> | |
</div> | |
<div class="face-point" style="top: 70%; left: 70%;" data-feature="right-cheek"> | |
<div class="face-tooltip">Moderate Cheekbone</div> | |
</div> | |
</div> | |
</div> | |
<p class="feature-desc" style="text-align: center;">Click on the marked features to learn more about their significance in Samudrik Shastra.</p> | |
<button class="btn" id="explore-premium">Explore Premium Features</button> | |
</div> | |
</section> | |
</div> | |
</main> | |
<footer> | |
<div class="container"> | |
<div class="footer-links"> | |
<a href="#" class="footer-link" id="about-link">About</a> | |
<a href="#" class="footer-link" id="privacy-link">Privacy</a> | |
<a href="#" class="footer-link" id="terms-link">Terms</a> | |
<a href="#" class="footer-link" id="contact-link">Contact</a> | |
<a href="#" class="footer-link" id="faq-link">FAQ</a> | |
</div> | |
<div class="social-icons"> | |
<a href="#" class="social-icon"><i class="fab fa-facebook-f"></i></a> | |
<a href="#" class="social-icon"><i class="fab fa-twitter"></i></a> | |
<a href="#" class="social-icon"><i class="fab fa-instagram"></i></a> | |
<a href="#" class="social-icon"><i class="fab fa-youtube"></i></a> | |
</div> | |
<p>© 2023 Vedic Face Reader. All rights reserved.</p> | |
<p>This application is for entertainment purposes only.</p> | |
</div> | |
</footer> | |
<!-- About Modal --> | |
<div class="modal" id="about-modal"> | |
<div class="modal-content"> | |
<span class="close-modal">×</span> | |
<h2>About Vedic Face Reader</h2> | |
<p>Vedic Face Reader combines ancient Samudrik Shastra wisdom with modern technology to provide personality insights and future predictions based on facial features.</p> | |
<p>Samudrik Shastra is a 5,000-year-old Vedic science of body reading mentioned in texts like Brihat Samhita and Garuda Purana. It was traditionally used for:</p> | |
<ul style="margin: 15px 0 15px 20px;"> | |
<li>Matchmaking and marriage compatibility</li> | |
<li>Predicting destiny and fortune lines</li> | |
<li>Understanding personality traits and potentials</li> | |
<li>Identifying leadership qualities and career aptitudes</li> | |
</ul> | |
<p>Our advanced AI analyzes 128 facial landmarks to provide accurate readings based on these ancient principles.</p> | |
<div class="disclaimer"> | |
<i class="fas fa-exclamation-triangle"></i> These insights are cultural interpretations, not scientifically validated. Use for entertainment and self-reflection only. | |
</div> | |
</div> | |
</div> | |
<!-- Privacy Modal --> | |
<div class="modal" id="privacy-modal"> | |
<div class="modal-content"> | |
<span class="close-modal">×</span> | |
<h2>Privacy Policy</h2> | |
<p>Your privacy is important to us. Here's how we handle your data:</p> | |
<ul style="margin: 15px 0 15px 20px;"> | |
<li>All face processing happens locally on your device - we don't store your photos on our servers</li> | |
<li>If you choose to create an account, we store only necessary profile information with strong encryption</li> | |
<li>We never sell or share your personal data with third parties</li> | |
<li>Analytics are collected anonymously to improve our service</li> | |
<li>You can delete your account and all associated data at any time</li> | |
</ul> | |
<p>Our full privacy policy is available upon request.</p> | |
</div> | |
</div> | |
<script> | |
document.addEventListener('DOMContentLoaded', function() { | |
// DOM Elements | |
const uploadArea = document.getElementById('upload-area'); | |
const fileInput = document.getElementById('file-input'); | |
const analyzeBtn = document.getElementById('analyze-btn'); | |
const useSampleBtn = document.getElementById('use-sample'); | |
const sampleResults = document.getElementById('sample-results'); | |
const resultSection = document.getElementById('result-section'); | |
const loadingIndicator = document.getElementById('loading-indicator'); | |
const sampleSelectors = document.querySelectorAll('.sample-selector'); | |
const languageSelect = document.getElementById('language-select'); | |
// Tab elements | |
const resultTabs = document.querySelectorAll('.result-tab'); | |
const tabContents = document.querySelectorAll('.result-content'); | |
// Modal elements | |
const aboutLink = document.getElementById('about-link'); | |
const privacyLink = document.getElementById('privacy-link'); | |
const aboutModal = document.getElementById('about-modal'); | |
const privacyModal = document.getElementById('privacy-modal'); | |
const closeModals = document.querySelectorAll('.close-modal'); | |
// Button navigators | |
const seeCareerBtn = document.getElementById('see-career'); | |
const seeRelationshipsBtn = document.getElementById('see-relationships'); | |
const seeFaceMapBtn = document.getElementById('see-face-map'); | |
const explorePremiumBtn = document.getElementById('explore-premium'); | |
// Upload area click handler | |
uploadArea.addEventListener('click', function() { | |
fileInput.click(); | |
}); | |
// File input change handler | |
fileInput.addEventListener('change', function(e) { | |
if (e.target.files.length > 0) { | |
const file = e.target.files[0]; | |
const reader = new FileReader(); | |
reader.onload = function(event) { | |
uploadArea.innerHTML = `<i class="fas fa-check-circle"></i> | |
<p class="upload-area-text">${file.name} (${formatFileSize(file.size)})</p>`; | |
analyzeBtn.disabled = false; | |
}; | |
reader.readAsDataURL(file); | |
} | |
}); | |
// Format file size | |
function formatFileSize(bytes) { | |
if (bytes < 1024) return bytes + ' bytes'; | |
else if (bytes < 1048576) return (bytes / 1024).toFixed(1) + ' KB'; | |
else return (bytes / 1048576).toFixed(1) + ' MB'; | |
} | |
// Analyze button click handler - simulate analysis | |
analyzeBtn.addEventListener('click', function() { | |
loadingIndicator.style.display = 'block'; | |
uploadArea.style.display = 'none'; | |
analyzeBtn.style.display = 'none'; | |
useSampleBtn.style.display = 'none'; | |
setTimeout(function() { | |
loadingIndicator.style.display = 'none'; | |
resultSection.style.display = 'block'; | |
// Set the uploaded image as result | |
if (fileInput.files.length > 0) { | |
const reader = new FileReader(); | |
reader.onload = function(e) { | |
document.getElementById('result-avatar').src = e.target.result; | |
document.getElementById('analyzed-face').src = e.target.result; | |
}; | |
reader.readAsDataURL(fileInput.files[0]); | |
} | |
// Scroll to results | |
resultSection.scrollIntoView({ behavior: 'smooth' }); | |
}, 3000); | |
}); | |
// Use sample button - demo with sample 1 | |
useSampleBtn.addEventListener('click', function() { | |
// Use sample 1 image | |
document.getElementById('result-avatar').src = 'https://randomuser.me/api/portraits/women/43.jpg'; | |
document.getElementById('analyzed-face').src = 'https://randomuser.me/api/portraits/women/43.jpg'; | |
loadingIndicator.style.display = 'block'; | |
uploadArea.style.display = 'none'; | |
analyzeBtn.style.display = 'none'; | |
useSampleBtn.style.display = 'none'; | |
setTimeout(function() { | |
loadingIndicator.style.display = 'none'; | |
resultSection.style.display = 'block'; | |
resultSection.scrollIntoView({ behavior: 'smooth' }); | |
}, 2000); | |
}); | |
// Sample selector click handlers | |
sampleSelectors.forEach(selector => { | |
selector.addEventListener('click', function(e) { | |
e.preventDefault(); | |
const sample = this.getAttribute('data-sample'); | |
let imgSrc = ''; | |
let name = ''; | |
let feature = ''; | |
switch(sample) { | |
case '1': | |
imgSrc = 'https://randomuser.me/api/portraits/women/43.jpg'; | |
name = 'Sample Analysis'; | |
feature = 'Round Face'; | |
break; | |
case '2': | |
imgSrc = 'https://randomuser.me/api/portraits/men/32.jpg'; | |
name = 'Sample Analysis'; | |
feature = 'Square Face'; | |
break; | |
case '3': | |
imgSrc = 'https://randomuser.me/api/portraits/women/68.jpg'; | |
name = 'Sample Analysis'; | |
feature = 'Oval Face'; | |
break; | |
case '4': | |
imgSrc = 'https://randomuser.me/api/portraits/men/75.jpg'; | |
name = 'Sample Analysis'; | |
feature = 'Rectangular Face'; | |
break; | |
} | |
document.getElementById('result-avatar').src = imgSrc; | |
document.getElementById('analyzed-face').src = imgSrc; | |
document.getElementById('result-name').textContent = name + ' (' + feature + ')'; | |
loadingIndicator.style.display = 'block'; | |
uploadArea.style.display = 'none'; | |
analyzeBtn.style.display = 'none'; | |
useSampleBtn.style.display = 'none'; | |
setTimeout(function() { | |
loadingIndicator.style.display = 'none'; | |
resultSection.style.display = 'block'; | |
resultSection.scrollIntoView({ behavior: 'smooth' }); | |
}, 2000); | |
}); | |
}); | |
// Tab switching | |
resultTabs.forEach(tab => { | |
tab.addEventListener('click', function() { | |
const tabId = this.getAttribute('data-tab'); | |
// Update active tab | |
resultTabs.forEach(t => t.classList.remove('active')); | |
this.classList.add('active'); | |
// Show corresponding content | |
tabContents.forEach(content => { | |
content.classList.remove('active'); | |
if (content.id === tabId + '-tab') { | |
content.classList.add('active'); | |
} | |
}); | |
}); | |
}); | |
// Button navigators | |
seeCareerBtn.addEventListener('click', function() { | |
document.querySelector('.result-tab[data-tab="career"]').click(); | |
}); | |
seeRelationshipsBtn.addEventListener('click', function() { | |
document.querySelector('.result-tab[data-tab="relationships"]').click(); | |
}); | |
seeFaceMapBtn.addEventListener('click', function() { | |
document.querySelector('.result-tab[data-tab="face-map"]').click(); | |
}); | |
explorePremiumBtn.addEventListener('click', function() { | |
alert('Premium features include detailed birth chart integration, advanced mole analysis, and personalized vedic remedies. Coming soon!'); | |
}); | |
// Modal handling | |
aboutLink.addEventListener('click', function(e) { | |
e.preventDefault(); | |
aboutModal.style.display = 'flex'; | |
}); | |
privacyLink.addEventListener('click', function(e) { | |
e.preventDefault(); | |
privacyModal.style.display = 'flex'; | |
}); | |
closeModals.forEach(close => { | |
close.addEventListener('click', function() { | |
aboutModal.style.display = 'none'; | |
privacyModal.style.display = 'none'; | |
}); | |
}); | |
// Close modal when clicking outside content | |
window.addEventListener('click', function(e) { | |
if (e.target === aboutModal) { | |
aboutModal.style.display = 'none'; | |
} | |
if (e.target === privacyModal) { | |
privacyModal.style.display = 'none'; | |
} | |
}); | |
// Language selector | |
languageSelect.addEventListener('change', function() { | |
alert('Language change functionality would be implemented in a production app.'); | |
}); | |
// Drag and drop functionality | |
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { | |
uploadArea.addEventListener(eventName, preventDefaults, false); | |
}); | |
function preventDefaults(e) { | |
e.preventDefault(); | |
e.stopPropagation(); | |
} | |
['dragenter', 'dragover'].forEach(eventName => { | |
uploadArea.addEventListener(eventName, highlight, false); | |
}); | |
['dragleave', 'drop'].forEach(eventName => { | |
uploadArea.addEventListener(eventName, unhighlight, false); | |
}); | |
function highlight() { | |
uploadArea.classList.add('highlight'); | |
} | |
function unhighlight() { | |
uploadArea.classList.remove('highlight'); | |
} | |
uploadArea.addEventListener('drop', handleDrop, false); | |
function handleDrop(e) { | |
const dt = e.dataTransfer; | |
const files = dt.files; | |
if (files.length > 0) { | |
fileInput.files = files; | |
const file = files[0]; | |
const reader = new FileReader(); | |
reader.onload = function(event) { | |
uploadArea.innerHTML = `<i class="fas fa-check-circle"></i> | |
<p class="upload-area-text">${file.name} (${formatFileSize(file.size)})</p>`; | |
analyzeBtn.disabled = false; | |
}; | |
reader.readAsDataURL(file); | |
} | |
} | |
// Tooltip hover functionality | |
const facePoints = document.querySelectorAll('.face-point'); | |
facePoints.forEach(point => { | |
point.addEventListener('mouseenter', function() { | |
const tooltip = this.querySelector('.face-tooltip'); | |
tooltip.style.display = 'block'; | |
}); | |
point.addEventListener('mouseleave', function() { | |
const tooltip = this.querySelector('.face-tooltip'); | |
tooltip.style.display = 'none'; | |
}); | |
}); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <a href="https://enzostvs-deepsite.hf.space" style="color: #fff;" target="_blank" >DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p></body> | |
</html> |