Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>π§οΈ Quest Completed!</title> | |
| <style> | |
| /* Import Google Fonts */ | |
| @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Roboto:wght@300;400;500;700&display=swap'); | |
| @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); | |
| /* Main styling */ | |
| body { | |
| background: linear-gradient(135deg, #e0f2f7 0%, #b3e0f2 100%); /* Light blue gradient */ | |
| font-family: 'Roboto', sans-serif; | |
| margin: 0; | |
| padding: 0; | |
| color: #333; /* Default text color */ | |
| } | |
| .container { | |
| max-width: 1200px; | |
| margin: 20px auto; | |
| padding: 20px; | |
| } | |
| /* Header styling */ | |
| .game-header { | |
| background: linear-gradient(90deg, #FF6B6B, #4ECDC4, #45B7D1); | |
| background-size: 300% 300%; | |
| animation: gradientShift 3s ease infinite; | |
| color: white; | |
| text-align: center; | |
| padding: 20px; | |
| border-radius: 15px; | |
| margin-bottom: 20px; | |
| box-shadow: 0 8px 32px rgba(0,0,0,0.3); | |
| font-family: 'Orbitron', monospace; | |
| font-weight: 900; | |
| text-shadow: 2px 2px 4px rgba(0,0,0,0.5); | |
| } | |
| @keyframes gradientShift { | |
| 0% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| /* Game card styling */ | |
| .game-card { | |
| background: rgba(255, 255, 255, 0.95); | |
| border-radius: 20px; | |
| padding: 25px; | |
| margin: 15px 0; | |
| box-shadow: 0 15px 35px rgba(0,0,0,0.1); | |
| backdrop-filter: blur(10px); | |
| border: 2px solid rgba(255,255,255,0.18); | |
| transition: all 0.3s ease; | |
| } | |
| .game-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 40px rgba(0,0,0,0.15); | |
| } | |
| /* Progress bar styling */ | |
| .progress-container { | |
| background: rgba(255,255,255,0.2); | |
| border-radius: 25px; | |
| padding: 5px; | |
| margin: 20px 0; | |
| } | |
| .progress-bar { | |
| background: linear-gradient(90deg, #00C9FF, #92FE9D); | |
| height: 30px; | |
| border-radius: 20px; | |
| transition: width 0.5s ease; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: white; | |
| font-weight: bold; | |
| text-shadow: 1px 1px 2px rgba(0,0,0,0.5); | |
| min-width: 0; /* Allow it to be 0% width */ | |
| } | |
| /* XP and Level styling */ | |
| .stats-container { | |
| display: flex; | |
| justify-content: space-around; | |
| margin: 20px 0; | |
| flex-wrap: wrap; /* Allow wrapping on smaller screens */ | |
| gap: 10px; /* Space between items */ | |
| } | |
| .stat-item { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| padding: 15px 20px; | |
| border-radius: 15px; | |
| text-align: center; | |
| min-width: 120px; | |
| box-shadow: 0 5px 15px rgba(0,0,0,0.2); | |
| font-family: 'Orbitron', monospace; | |
| flex-grow: 1; /* Allow items to grow */ | |
| } | |
| .stat-value { | |
| font-size: 24px; | |
| font-weight: 900; | |
| margin-bottom: 5px; | |
| } | |
| .stat-label { | |
| font-size: 12px; | |
| opacity: 0.8; | |
| } | |
| /* General button styling */ | |
| .button-group { | |
| display: flex; | |
| gap: 10px; /* Space between buttons */ | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| margin-top: 20px; | |
| } | |
| .button-group button, .button-full-width { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| border: none; | |
| border-radius: 15px; | |
| padding: 15px 25px; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| font-size: 16px; | |
| font-weight: 500; | |
| text-align: center; | |
| box-shadow: 0 5px 15px rgba(0,0,0,0.2); | |
| flex: 1; /* Make buttons grow to fill space */ | |
| min-width: 150px; /* Minimum width for buttons */ | |
| text-decoration: none; /* For anchor tags acting as buttons */ | |
| display: inline-block; | |
| } | |
| .button-full-width { | |
| width: 100%; | |
| } | |
| .button-group button:hover, .button-full-width:hover { | |
| transform: translateY(-3px); | |
| box-shadow: 0 8px 25px rgba(0,0,0,0.3); | |
| background: linear-gradient(135deg, #7b8cec, #8a5bb8); | |
| } | |
| /* Achievement badge */ | |
| .achievement { | |
| background: linear-gradient(45deg, #FFD700, #FFA500); | |
| color: #333; | |
| padding: 10px 20px; | |
| border-radius: 25px; | |
| display: inline-block; | |
| margin: 10px 5px; | |
| font-weight: bold; | |
| box-shadow: 0 5px 15px rgba(255, 215, 0, 0.3); | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| 100% { transform: scale(1); } | |
| } | |
| /* Welcome screen styling */ | |
| .welcome-container { | |
| text-align: center; | |
| padding: 50px; | |
| background: rgba(255,255,255,0.1); | |
| border-radius: 30px; | |
| backdrop-filter: blur(10px); | |
| margin: 20px auto; /* Centered */ | |
| max-width: 900px; | |
| box-shadow: 0 20px 40px rgba(0,0,0,0.1); | |
| } | |
| .welcome-title { | |
| font-size: 3.5em; | |
| font-family: 'Orbitron', monospace; | |
| font-weight: 900; | |
| background: linear-gradient(45deg, #FF6B6B, #4ECDC4, #45B7D1); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| margin-bottom: 20px; | |
| text-shadow: 2px 2px 4px rgba(0,0,0,0.3); | |
| } | |
| .welcome-text { | |
| font-size: 1.3em; | |
| color: #34495e; /* Darker text for readability */ | |
| margin: 30px 0; | |
| line-height: 1.6; | |
| } | |
| .welcome-text strong { | |
| color: #2c3e50; | |
| } | |
| .welcome-image { | |
| max-width: 100%; | |
| border-radius: 15px; | |
| margin-top: 30px; | |
| box-shadow: 0 10px 20px rgba(0,0,0,0.2); | |
| } | |
| /* Certificate styling */ | |
| .certificate { | |
| background: linear-gradient(135deg, #667eea, #764ba2); | |
| color: white; | |
| padding: 40px; | |
| border-radius: 20px; | |
| text-align: center; | |
| margin: 20px auto; | |
| max-width: 600px; | |
| box-shadow: 0 20px 40px rgba(0,0,0,0.3); | |
| border: 3px solid #FFD700; | |
| } | |
| /* Video container styling */ | |
| .video-container { | |
| border-radius: 20px; | |
| overflow: hidden; | |
| box-shadow: 0 15px 35px rgba(0,0,0,0.2); | |
| margin: 20px 0; | |
| width: 100%; /* Ensure video container takes full width */ | |
| } | |
| .video-container video { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| } | |
| /* Question container styling */ | |
| .question-container { | |
| background: linear-gradient(135deg, #FF6B6B, #4ECDC4); | |
| color: white; | |
| padding: 25px; | |
| border-radius: 20px; | |
| margin: 20px 0; | |
| box-shadow: 0 10px 30px rgba(0,0,0,0.2); | |
| text-align: center; | |
| } | |
| /* Video watched indicator */ | |
| .video-watched { | |
| background: rgba(76, 175, 80, 0.1); | |
| border: 2px solid #4CAF50; | |
| border-radius: 10px; | |
| padding: 15px; | |
| margin: 10px 0; | |
| color: #2E7D32; | |
| font-weight: bold; | |
| text-align: center; | |
| } | |
| /* Feedback messages */ | |
| .feedback.success { | |
| background-color: #d4edda; | |
| color: #155724; | |
| border: 1px solid #badbcc; | |
| padding: 15px; | |
| margin: 15px 0; | |
| border-radius: 8px; | |
| text-align: center; | |
| } | |
| .feedback.error { | |
| background-color: #f8d7da; | |
| color: #721c24; | |
| border: 1px solid #f5c6cb; | |
| padding: 15px; | |
| margin: 15px 0; | |
| border-radius: 8px; | |
| text-align: center; | |
| } | |
| .feedback.info { | |
| background-color: #d1ecf1; | |
| color: #0c5460; | |
| border: 1px solid #bee5eb; | |
| padding: 15px; | |
| margin: 15px 0; | |
| border-radius: 8px; | |
| text-align: center; | |
| } | |
| /* Utility classes for layout */ | |
| .columns-3 { | |
| display: flex; | |
| justify-content: center; | |
| gap: 20px; | |
| margin-top: 20px; | |
| flex-wrap: wrap; /* Allow wrapping */ | |
| } | |
| .columns-3 > div { | |
| flex: 1; | |
| min-width: 250px; /* Ensure columns don't get too small */ | |
| } | |
| .columns-5 { | |
| display: flex; | |
| justify-content: space-around; | |
| gap: 10px; | |
| margin-top: 20px; | |
| flex-wrap: wrap; | |
| } | |
| .columns-5 > div { | |
| flex: 1; | |
| min-width: 150px; | |
| } | |
| h1, h2, h3, h4, h5, h6 { | |
| font-family: 'Orbitron', monospace; | |
| color: #34495e; | |
| } | |
| p { | |
| line-height: 1.6; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <div class="game-header"><h1>π QUEST COMPLETED! π</h1></div> | |
| <!-- Temporary Message Display --> | |
| {% if message %} | |
| <div class="feedback info">{{ message }}</div> | |
| {% endif %} | |
| <!-- Final Stats / Certificate --> | |
| <div class="certificate"> | |
| <h2>π WATER CONSERVATION HERO π</h2> | |
| <h3>Certificate of Excellence</h3> | |
| <p><strong>Final Level:</strong> {{ player_level }}</p> | |
| <p><strong>Total XP Earned:</strong> {{ xp_points }}</p> | |
| <p><strong>Quiz Score:</strong> {{ quiz_score }}/{{ total_quizzes }} ({{ "%.0f" | format(accuracy) }}%)</p> | |
| <p><strong>Best Streak:</strong> {{ streak }}</p> | |
| <p><strong>Achievements Unlocked:</strong> {{ achievements | length }}</p> | |
| <br> | |
| <p><em>"You have mastered the ancient art of rainwater harvesting and become a true guardian of our planet's most precious resource!"</em></p> | |
| <p><strong>Date:</strong> {{ current_date }}</p> | |
| <p><strong>Certified by:</strong> The Global Water Conservation Academy</p> | |
| </div> | |
| <!-- All Achievements Display --> | |
| {% if achievements %} | |
| <h3>π All Your Achievements</h3> | |
| <div class="columns-3"> | |
| {% for achievement in achievements %} | |
| <div class="achievement">{{ achievement.name }} - {{ achievement.desc }}</div> | |
| {% endfor %} | |
| </div> | |
| {% endif %} | |
| <!-- Action Buttons for Summary Page --> | |
| <div class="button-group" style="margin-top: 30px;"> | |
| <form action="{{ url_for('restart_quest') }}" method="post"> | |
| <button type="submit">π Play Again</button> | |
| </form> | |
| <form action="{{ url_for('view_stats') }}" method="post"> | |
| <button type="submit">π View Detailed Stats</button> | |
| </form> | |
| <form action="{{ url_for('share_impact') }}" method="post"> | |
| <button type="submit">π Share Your Impact</button> | |
| </form> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |