mathpulse-ai / index.html
github-actions[bot]
🚀 Auto-deploy frontend from GitHub (9405693)
58e954f
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/mathpulse_final_logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="MathPulse AI — AI-powered math tutoring platform for Filipino senior high school STEM students. Personalized learning paths, interactive lessons, AI chat tutor, and teacher analytics powered by DeepSeek." />
<meta name="theme-color" content="#9956DE" />
<meta name="robots" content="index, follow" />
<meta property="og:title" content="MathPulse AI" />
<meta property="og:description" content="AI-powered math tutoring for Filipino SHS STEM students with adaptive learning paths and teacher analytics." />
<meta property="og:type" content="website" />
<meta property="og:image" content="/mathpulse_final_logo.png" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet" />
<title>MathPulse AI</title>
<style>
/* Pre-JS static loader — visible from first paint before any script runs */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{min-height:100vh;font-family:'Nunito',ui-sans-serif,system-ui,sans-serif;background:#f8faff;color:#0a1628}
@keyframes pp-spin{to{transform:rotate(360deg)}}
#pp-static-loader{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#f7f9fc}
#pp-static-loader .pp-card{width:min(100%,24rem);padding:2rem;border-radius:2rem;border:1px solid #dde3eb;background:#fff;box-shadow:0 24px 40px rgba(56,189,248,.12);display:flex;flex-direction:column;align-items:center;gap:1.5rem}
#pp-static-loader .pp-avatar-shell{width:8rem;height:8rem;border-radius:1.5rem;background:linear-gradient(135deg,#e0f2fe,#e0e7ff);box-shadow:0 12px 24px rgba(15,23,42,.12);display:flex;align-items:center;justify-content:center}
#pp-static-loader .pp-avatar-shell img{width:5.5rem;height:5.5rem;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(15,23,42,.2))}
#pp-static-loader .pp-copy{text-align:center}
#pp-static-loader .pp-title{margin:0;font-size:1.25rem;font-weight:700;color:#0a1628}
#pp-static-loader .pp-row{margin-top:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}
#pp-static-loader .pp-spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid #0284c7;border-top-color:transparent;animation:pp-spin 1.5s linear infinite}
#pp-static-loader .pp-msg{margin:0;font-size:.875rem;font-weight:600;color:#64748b}
</style>
<script type="module" crossorigin src="/assets/index-BOwCDUuj.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-react-B4AQeu28.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-firebase-core-D7GXCeNu.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-firebase-firestore-CNv3xXal.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-firebase-auth-T_wvTOvf.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-firebase-storage-Bi7H_66d.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-firebase-analytics-rHarj5hR.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-radix-C5nwdvGr.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-charts-CAmziV1y.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-markdown-yqZQ_iQm.js">
<link rel="stylesheet" crossorigin href="/assets/vendor-markdown-CfVKi3_s.css">
<link rel="stylesheet" crossorigin href="/assets/index-Z9-hiUOE.css">
</head>
<body>
<div id="root">
<!-- Static pre-JS card loader: visible from first HTML paint, replaced by React on mount -->
<div id="pp-static-loader" role="status" aria-live="polite" aria-busy="true" aria-label="Loading">
<div class="pp-card">
<div class="pp-avatar-shell">
<img src="/mathpulse_final_logo.png" alt="" />
</div>
<div class="pp-copy">
<h2 class="pp-title">MathPulse AI</h2>
<div class="pp-row">
<div class="pp-spinner"></div>
<p class="pp-msg">Loading...</p>
</div>
</div>
</div>
</div>
</div>
<div id="modal-root"></div>
</body>
</html>