/* =========================================================
   MATH HOPPER – styles.css
   Theme: Matches the app — sky blue, golden yellow, orange,
          bubbly cartoon fonts, frog/lily pad energy
   Author: Anshu Batham
   ========================================================= */

/* ── 1. GOOGLE FONTS – loaded here as @import fallback ── */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Fredoka+One&display=swap');

/* ── 2. CSS CUSTOM PROPERTIES ── */
:root {
  /* ── App Brand Colours (from screenshot) ── */
  --sky-light:    #5dd6f5;   /* hero sky top          */
  --sky-mid:      #29bce8;   /* mid sky               */
  --sky-deep:     #0fa3d4;   /* deeper sky            */
  --water-top:    #3ecfb2;   /* water surface teal    */
  --water-deep:   #1a9e88;   /* deep water            */
  --yellow-gold:  #f9c423;   /* "HOPPER" yellow       */
  --yellow-dark:  #e0a800;   /* yellow shadow/border  */
  --orange-cta:   #ff8c00;   /* PLAY NOW button       */
  --orange-dark:  #d96a00;   /* button shadow         */
  --white-bubble: #ffffff;
  --frog-green:   #4caf50;
  --frog-dark:    #2e7d32;
  --purple-icon:  #8b5cf6;
  --gold-icon:    #f59e0b;

  /* Semantic aliases */
  --color-primary:       var(--orange-cta);
  --color-primary-dark:  var(--orange-dark);
  --color-secondary:     var(--sky-mid);
  --color-accent:        var(--yellow-gold);
  --color-success:       var(--frog-green);
  --color-danger:        #ef4444;

  /* Gradients */
  --gradient-sky:    linear-gradient(180deg, var(--sky-light) 0%, var(--sky-mid) 55%, var(--water-top) 100%);
  --gradient-sky-h:  linear-gradient(135deg, var(--sky-light) 0%, var(--sky-deep) 100%);
  --gradient-orange: linear-gradient(180deg, #ffaa00 0%, var(--orange-cta) 40%, var(--orange-dark) 100%);
  --gradient-yellow: linear-gradient(180deg, #ffe066 0%, var(--yellow-gold) 50%, var(--yellow-dark) 100%);
  --gradient-water:  linear-gradient(180deg, var(--water-top) 0%, var(--water-deep) 100%);
  --gradient-brand:  linear-gradient(135deg, var(--orange-cta) 0%, var(--yellow-gold) 100%);
  --gradient-glow:   linear-gradient(135deg, rgba(255,140,0,0.25) 0%, rgba(249,196,35,0.2) 100%);

  /* Typography */
  --font-primary:  'Nunito', 'Trebuchet MS', sans-serif;
  --font-display:  'Fredoka One', 'Nunito', cursive;
  --fs-xs:   clamp(0.75rem,  1.5vw, 0.875rem);
  --fs-sm:   clamp(0.875rem, 1.8vw, 1rem);
  --fs-base: clamp(1rem,     2vw,   1.125rem);
  --fs-lg:   clamp(1.125rem, 2.5vw, 1.25rem);
  --fs-xl:   clamp(1.25rem,  3vw,   1.5rem);
  --fs-2xl:  clamp(1.5rem,   4vw,   2rem);
  --fs-3xl:  clamp(2rem,     5vw,   3rem);
  --fs-4xl:  clamp(2.5rem,   6vw,   4rem);
  --fs-5xl:  clamp(3rem,     8vw,   5.5rem);

  /* Spacing */
  --space-1: 0.25rem; --space-2: 0.5rem;  --space-3: 0.75rem;
  --space-4: 1rem;    --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem;    --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem;   --space-20: 5rem;   --space-24: 6rem;

  /* Radii */
  --radius-sm:   0.375rem; --radius-md:  0.75rem;
  --radius-lg:   1rem;     --radius-xl:  1.5rem;
  --radius-2xl:  2rem;     --radius-full: 9999px;

  /* Shadows */
  --shadow-sm:   0 2px 6px  rgba(0,0,0,.15);
  --shadow-md:   0 4px 16px rgba(0,0,0,.18);
  --shadow-lg:   0 8px 32px rgba(0,0,0,.22);
  --shadow-xl:   0 20px 60px rgba(0,0,0,.28);
  --shadow-glow: 0 0 40px rgba(255,140,0,0.45);
  --shadow-text: 3px 3px 0 rgba(0,0,0,0.25);

  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);

  /* Layout */
  --max-width: 1200px;
  --nav-height: 72px;

  /* ── Default (Sky/Day) theme ── */
  --bg-primary:    #e8f8ff;
  --bg-secondary:  #d0f0fc;
  --bg-card:       rgba(255,255,255,0.55);
  --bg-card-hover: rgba(255,255,255,0.80);
  --border-color:  rgba(41,188,232,0.25);
  --text-primary:  #0a3d52;
  --text-secondary: #1a6b8a;
  --text-muted:    #4a9ab5;
  --glass-bg:      rgba(255,255,255,0.45);
  --glass-border:  rgba(255,255,255,0.7);
  --glass-blur:    blur(16px);
}

/* ── Night mode ── */
[data-theme="dark"] {
  --bg-primary:    #0d2233;
  --bg-secondary:  #0a1c2e;
  --bg-card:       rgba(255,255,255,0.06);
  --bg-card-hover: rgba(255,255,255,0.10);
  --border-color:  rgba(93,214,245,0.15);
  --text-primary:  #e8f8ff;
  --text-secondary: #8ecfe8;
  --text-muted:    #4a7d96;
  --glass-bg:      rgba(13,34,51,0.7);
  --glass-border:  rgba(93,214,245,0.2);
  --shadow-glow:   0 0 40px rgba(255,140,0,0.35);
}

/* ── 3. RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-height);
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: var(--font-primary);
  font-size: var(--fs-base);
  color: var(--text-primary);
  background-color: var(--bg-primary);
  line-height: 1.6;
  overflow-x: hidden;
  transition: background-color var(--transition-slow), color var(--transition-slow);
}

img, video, canvas { max-width: 100%; display: block; }
a { color: var(--orange-cta); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--yellow-dark); }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible {
  outline: 3px solid var(--orange-cta);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
strong { font-weight: 800; }

/* ── 4. UTILITIES ── */
.container {
  width: 100%;
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: var(--space-6);
}
@media (min-width: 768px)  { .container { padding-inline: var(--space-8); } }
@media (min-width: 1200px) { .container { padding-inline: var(--space-12); } }

.section { padding-block: var(--space-20); }
@media (min-width: 768px) { .section { padding-block: var(--space-24); } }

/* Gradient text – orange/yellow like the app title */
.gradient-text {
  background: var(--gradient-yellow);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  -webkit-text-stroke: 0px transparent;
  filter: drop-shadow(2px 2px 0 rgba(0,0,0,0.15));
}

.glass-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 2px solid var(--glass-border);
  border-radius: var(--radius-xl);
}

/* Section headers */
.section-header {
  text-align: center;
  max-width: 660px;
  margin-inline: auto;
  margin-bottom: var(--space-16);
}

.section-tag {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-family: var(--font-display);
  font-size: var(--fs-sm); font-weight: 400; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--orange-cta);
  background: rgba(255,140,0,0.12);
  border: 2px solid rgba(255,140,0,0.3);
  border-radius: var(--radius-full);
  padding: var(--space-1) var(--space-5);
  margin-bottom: var(--space-4);
}

.section-title {
  font-family: var(--font-display);
  font-size: var(--fs-3xl); font-weight: 400;
  line-height: 1.15; letter-spacing: 0.01em;
  color: var(--text-primary);
  margin-bottom: var(--space-4);
  text-shadow: var(--shadow-text);
}

.section-subtitle {
  font-size: var(--fs-lg); font-weight: 600;
  color: var(--text-secondary); line-height: 1.7;
}

/* ── 5. BUTTONS – orange pill like "PLAY NOW" ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  font-family: var(--font-display);
  font-size: var(--fs-base); font-weight: 400; letter-spacing: 0.04em;
  border-radius: var(--radius-full);
  transition: all var(--transition-base);
  white-space: nowrap; position: relative; overflow: hidden;
  text-decoration: none; text-transform: uppercase;
}
.btn:active { transform: scale(0.96) translateY(2px); }

/* Primary – orange pill (PLAY NOW style) */
.btn-primary {
  background: var(--gradient-orange);
  color: #fff;
  border: 3px solid var(--orange-dark);
  box-shadow: 0 6px 0 var(--orange-dark), 0 8px 20px rgba(255,140,0,0.35);
  text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 0 var(--orange-dark), 0 12px 28px rgba(255,140,0,0.45);
  color: #fff;
}
.btn-primary:active {
  transform: translateY(4px);
  box-shadow: 0 2px 0 var(--orange-dark), 0 4px 10px rgba(255,140,0,0.25);
}

/* Ghost – sky blue outline */
.btn-ghost {
  background: rgba(255,255,255,0.25);
  color: var(--text-primary);
  border: 2px solid rgba(255,255,255,0.6);
  backdrop-filter: blur(8px);
}
.btn-ghost:hover {
  background: rgba(255,255,255,0.4);
  border-color: var(--white-bubble);
  color: var(--text-primary);
}

.btn-large { padding: var(--space-4) var(--space-10); font-size: var(--fs-lg); }
.btn-full  { width: 100%; }

/* ── 6. NAVBAR ── */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-height);
  background: linear-gradient(135deg, var(--sky-mid) 0%, var(--sky-deep) 100%);
  border-bottom: 3px solid rgba(255,255,255,0.3);
  box-shadow: 0 4px 20px rgba(0,80,120,0.2);
  transition: background var(--transition-base), box-shadow var(--transition-base);
}
[data-theme="dark"] .navbar {
  background: linear-gradient(135deg, #0d2233 0%, #0a1c2e 100%);
  border-bottom-color: rgba(93,214,245,0.2);
}
.navbar.scrolled { box-shadow: 0 6px 28px rgba(0,80,120,0.3); }

.nav-container {
  max-width: var(--max-width); margin-inline: auto;
  padding-inline: var(--space-6); height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-6);
}
@media (min-width: 1200px) { .nav-container { padding-inline: var(--space-12); } }

.nav-logo { display: flex; align-items: center; gap: var(--space-2); text-decoration: none; flex-shrink: 0; }
.logo-icon { font-size: 1.8rem; line-height: 1; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); }
.logo-text {
  font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400;
  color: #fff; letter-spacing: 0.02em;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.2);
}
.logo-text strong {
  color: var(--yellow-gold);
  text-shadow: 2px 2px 0 var(--yellow-dark);
}

.nav-links { display: none; align-items: center; gap: var(--space-1); }
@media (min-width: 900px) { .nav-links { display: flex; } }
.nav-links a {
  color: rgba(255,255,255,0.85); font-family: var(--font-primary);
  font-size: var(--fs-sm); font-weight: 700;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-full);
  transition: all var(--transition-fast);
}
.nav-links a:hover, .nav-links a.active {
  color: #fff; background: rgba(255,255,255,0.2);
}

.nav-actions { display: flex; align-items: center; gap: var(--space-3); }
.nav-cta { display: none; }
@media (min-width: 640px) { .nav-cta { display: inline-flex; } }

/* Theme toggle – cloud/moon style */
.theme-toggle {
  width: 40px; height: 40px; border-radius: var(--radius-full);
  background: rgba(255,255,255,0.2); border: 2px solid rgba(255,255,255,0.4);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; transition: all var(--transition-fast);
}
.theme-toggle:hover { background: rgba(255,255,255,0.35); transform: rotate(20deg); }

/* Hamburger */
.hamburger { display: flex; flex-direction: column; gap: 5px; padding: var(--space-2); border-radius: var(--radius-sm); }
.hamburger span {
  display: block; width: 22px; height: 3px;
  background: #fff; border-radius: 3px;
  transition: all var(--transition-base); transform-origin: center;
}
.hamburger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (min-width: 900px) { .hamburger { display: none; } }

/* Mobile Menu */
.mobile-menu {
  position: absolute; top: var(--nav-height); left: 0; right: 0;
  background: linear-gradient(180deg, var(--sky-deep) 0%, #0a6fa0 100%);
  border-bottom: 3px solid rgba(255,255,255,0.3);
  padding: var(--space-4) var(--space-6);
  transform: translateY(-10px); opacity: 0; visibility: hidden;
  transition: all var(--transition-base);
}
[data-theme="dark"] .mobile-menu { background: linear-gradient(180deg, #0a1c2e 0%, #071525 100%); }
.mobile-menu.open { transform: translateY(0); opacity: 1; visibility: visible; }
.mobile-menu ul { display: flex; flex-direction: column; gap: var(--space-1); }
.mobile-link {
  display: block; padding: var(--space-3) var(--space-4);
  color: rgba(255,255,255,0.9); font-weight: 700; border-radius: var(--radius-md);
  transition: all var(--transition-fast);
}
.mobile-link:hover { background: rgba(255,255,255,0.15); color: #fff; }
.mobile-cta { display: block; margin-top: var(--space-4); text-align: center; }

/* ── 7. HERO – sky gradient + water bottom + clouds ── */
.hero {
  position: relative; min-height: 100svh;
  display: flex; align-items: center;
  padding-top: var(--nav-height); overflow: hidden;
  background: var(--gradient-sky);
}
[data-theme="dark"] .hero {
  background: linear-gradient(180deg, #0d2233 0%, #0a3d52 55%, #0a2e3d 100%);
}

/* Canvas sits behind everything */
#heroCanvas { position: absolute; inset: 0; z-index: 0; opacity: 0.5; }

/* Animated clouds */
.math-symbols { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.math-symbols .symbol {
  position: absolute;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 3.5rem);
  font-weight: 400;
  color: rgba(255,255,255,0.18);
  text-shadow: none;
  animation: floatSymbol 12s ease-in-out infinite;
  user-select: none;
}
.math-symbols .symbol:nth-child(1){ top:8%;  left:4%;  animation-delay:0s;   animation-duration:14s; font-size:3rem; }
.math-symbols .symbol:nth-child(2){ top:18%; right:6%; animation-delay:2s;   font-size:2.5rem; }
.math-symbols .symbol:nth-child(3){ top:50%; left:2%;  animation-delay:4s;   animation-duration:16s; }
.math-symbols .symbol:nth-child(4){ top:65%; right:4%; animation-delay:1s;   font-size:3.5rem; }
.math-symbols .symbol:nth-child(5){ top:28%; left:42%; animation-delay:3s;   font-size:4.5rem; opacity:0.1; }
.math-symbols .symbol:nth-child(6){ top:78%; left:22%; animation-delay:5s;   font-size:2.8rem; }
.math-symbols .symbol:nth-child(7){ top:12%; left:33%; animation-delay:1.5s; font-size:2.2rem; }
.math-symbols .symbol:nth-child(8){ top:42%; right:18%;animation-delay:6s;   font-size:4rem; opacity:0.08; }
@keyframes floatSymbol {
  0%,100% { transform: translateY(0) rotate(0deg); }
  33%      { transform: translateY(-20px) rotate(6deg); }
  66%      { transform: translateY(12px) rotate(-4deg); }
}

/* Wavy water divider at bottom of hero */
.hero::after {
  content: '';
  position: absolute; bottom: -2px; left: 0; right: 0; height: 80px; z-index: 2;
  background: var(--bg-primary);
  clip-path: ellipse(55% 100% at 50% 100%);
}
[data-theme="dark"] .hero::after { background: var(--bg-primary); }

.hero-container {
  position: relative; z-index: 3;
  max-width: var(--max-width); margin-inline: auto;
  padding: var(--space-16) var(--space-6) var(--space-20);
  display: grid; grid-template-columns: 1fr; gap: var(--space-16); align-items: center;
}
@media (min-width: 900px) {
  .hero-container { grid-template-columns: 1fr 1fr; padding: var(--space-20) var(--space-8); }
}
@media (min-width: 1200px) { .hero-container { padding: var(--space-24) var(--space-12); } }

/* Hero Content */
.hero-badge {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-family: var(--font-display); font-size: var(--fs-sm); font-weight: 400;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--frog-green);
  background: rgba(76,175,80,0.15);
  border: 2px solid rgba(76,175,80,0.4);
  border-radius: var(--radius-full); padding: var(--space-1) var(--space-5);
  margin-bottom: var(--space-6);
  animation: fadeInUp 0.6s ease both;
}
.badge-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--frog-green);
  animation: pulseDot 2s ease infinite;
}
@keyframes pulseDot { 0%,100%{transform:scale(1);opacity:1;} 50%{transform:scale(1.4);opacity:0.6;} }

/* MATH – white bubbly, HOPPER – golden yellow (exact app style) */
.hero-title {
  font-family: var(--font-display); font-weight: 400;
  line-height: 1.0; letter-spacing: 0.02em;
  margin-bottom: var(--space-5);
  animation: fadeInUp 0.6s 0.1s ease both;
}
.hero-title .word-math {
  display: block;
  font-size: clamp(3.5rem, 10vw, 6.5rem);
  color: #fff;
  text-shadow: 3px 3px 0 rgba(0,80,120,0.35), 0 0 30px rgba(255,255,255,0.4);
  letter-spacing: 0.12em;
}
.hero-title .word-hopper {
  display: block;
  font-size: clamp(4rem, 12vw, 8rem);
  color: var(--yellow-gold);
  text-shadow: 4px 4px 0 var(--yellow-dark), 2px 2px 0 rgba(0,0,0,0.15);
  letter-spacing: 0.06em;
}

.hero-subtitle {
  font-size: var(--fs-lg); font-weight: 700;
  color: rgba(255,255,255,0.9);
  max-width: 480px; line-height: 1.6; margin-bottom: var(--space-8);
  text-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: fadeInUp 0.6s 0.2s ease both;
}

.hero-ctas {
  display: flex; flex-wrap: wrap; gap: var(--space-4);
  margin-bottom: var(--space-10);
  animation: fadeInUp 0.6s 0.3s ease both;
}

.hero-stats {
  display: flex; align-items: center; gap: var(--space-6);
  animation: fadeInUp 0.6s 0.4s ease both;
}
.stat { text-align: center; }
.stat-value {
  display: block; font-family: var(--font-display);
  font-size: var(--fs-xl); font-weight: 400;
  color: #fff; text-shadow: 2px 2px 0 rgba(0,0,0,0.2);
}
.stat-label { font-size: var(--fs-xs); font-weight: 700; color: rgba(255,255,255,0.75); text-transform: uppercase; letter-spacing: 0.08em; }
.stat-divider { width: 1px; height: 36px; background: rgba(255,255,255,0.3); flex-shrink: 0; }

@keyframes fadeInUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── 8. PHONE MOCKUP – app screenshot style ── */
.hero-visual {
  display: flex; justify-content: center; align-items: center;
  animation: fadeInUp 0.6s 0.5s ease both;
}

.phone-mockup {
  position: relative; width: min(290px, 78vw);
}

.phone-frame {
  width: 100%; aspect-ratio: 9/19;
  background: linear-gradient(180deg, var(--sky-light) 0%, var(--sky-mid) 60%, var(--water-top) 100%);
  border-radius: 36px;
  border: 3px solid rgba(255,255,255,0.5);
  overflow: hidden;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.2), var(--shadow-xl), 0 0 60px rgba(255,140,0,0.2);
}
.phone-frame::before {
  content: '';
  position: absolute; top: 14px; left: 50%; transform: translateX(-50%);
  width: 70px; height: 8px;
  background: rgba(255,255,255,0.4); border-radius: var(--radius-full); z-index: 10;
}

.phone-screen { width:100%; height:100%; padding: var(--space-8) var(--space-3) var(--space-3); }

.app-ui {
  height: 100%; display: flex; flex-direction: column; gap: var(--space-3);
  background: var(--gradient-sky);
  border-radius: 26px; padding: var(--space-3) var(--space-3) var(--space-2); color: #fff;
  position: relative; overflow: hidden;
}
/* Bottom water wave in mockup */
.app-ui::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: var(--gradient-water);
  clip-path: ellipse(60% 100% at 50% 100%);
  z-index: 0;
}

.app-header {
  position: relative; z-index: 1;
  display: flex; align-items: center; gap: var(--space-2);
  font-size: 0.6rem; font-weight: 800;
}
.app-logo-sm { font-size: 0.9rem; }
.app-name-sm { flex:1; color: rgba(255,255,255,0.95); font-family: var(--font-display); letter-spacing: 0.04em; }
.score-badge {
  background: rgba(249,196,35,0.25); color: var(--yellow-gold);
  border: 1.5px solid var(--yellow-dark);
  border-radius: var(--radius-full); padding: 2px 8px;
  font-size: 0.58rem; font-weight: 800;
  text-shadow: 1px 1px 0 rgba(0,0,0,0.2);
}

.math-problem {
  position: relative; z-index: 1; flex:1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3);
}
.problem-label {
  font-family: var(--font-display); font-size: 0.55rem; font-weight: 400;
  color: rgba(255,255,255,0.9); letter-spacing: 0.15em; text-transform: uppercase;
}
.problem-equation {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 4.5vw, 1.7rem); font-weight: 400;
  color: #fff; text-shadow: 2px 2px 0 rgba(0,80,120,0.4);
  letter-spacing: 0.02em;
}

.answer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); width: 100%; }
.answer-btn {
  background: rgba(255,255,255,0.2); border: 1.5px solid rgba(255,255,255,0.4);
  border-radius: var(--radius-md); color: #fff;
  font-family: var(--font-display); font-size: 0.72rem; font-weight: 400;
  padding: var(--space-2); text-align: center; cursor: default;
}
.answer-btn.correct {
  background: linear-gradient(135deg, #4caf50, #2e7d32);
  border-color: #1b5e20; color: #fff;
  text-shadow: 1px 1px 0 rgba(0,0,0,0.3);
  box-shadow: 0 3px 0 #1b5e20;
}
.answer-btn.wrong { background: rgba(239,68,68,0.3); border-color: #ef4444; color: #fca5a5; text-decoration: line-through; }
.pulse-btn { animation: btnGlow 1.5s ease infinite; }
@keyframes btnGlow { 0%,100%{box-shadow:0 3px 0 #1b5e20;} 50%{box-shadow:0 3px 0 #1b5e20, 0 0 12px rgba(76,175,80,0.6);} }

.app-progress { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--space-1); }
.progress-bar { height: 7px; background: rgba(255,255,255,0.25); border-radius: var(--radius-full); overflow: hidden; }
.progress-fill {
  height: 100%; border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--yellow-gold), var(--orange-cta));
  box-shadow: 0 0 8px rgba(255,140,0,0.5);
}
.progress-text { font-size: 0.55rem; color: rgba(255,255,255,0.7); text-align: right; font-weight: 700; }

/* Frog on lily pad – CSS art matching the app */
.phone-frog {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; gap: 0;
}
.lily-pad {
  width: 52px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #6abf69 0%, #388e3c 60%, #1b5e20 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  border-bottom: 3px solid #1b5e20;
  box-shadow: 0 4px 8px rgba(0,0,0,0.25), inset 0 -2px 4px rgba(0,0,0,0.2);
  position: relative;
}
.frog-emoji { font-size: 1.6rem; margin-bottom: -8px; filter: drop-shadow(0 3px 3px rgba(0,0,0,0.3)); animation: frogBob 1.5s ease-in-out infinite; }
@keyframes frogBob { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-4px);} }

.phone-glow {
  position: absolute; inset: -20px; z-index: -1;
  background: radial-gradient(ellipse, rgba(255,140,0,0.2) 0%, transparent 70%);
  border-radius: 50%; animation: glowPulse 3s ease-in-out infinite;
}
@keyframes glowPulse { 0%,100%{opacity:0.5;transform:scale(1);} 50%{opacity:1;transform:scale(1.06);} }

/* Floating badges – game UI style */
.floating-badge {
  position: absolute;
  background: rgba(255,255,255,0.9); backdrop-filter: blur(8px);
  border: 2px solid rgba(255,255,255,0.95);
  border-radius: var(--radius-full); padding: var(--space-2) var(--space-3);
  font-family: var(--font-display); font-size: 0.7rem; font-weight: 400;
  color: var(--text-primary); white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 2px 0 rgba(0,0,0,0.1);
  animation: floatBadge 3s ease-in-out infinite;
}
.badge-1 { top:12%; right:-18%; color: var(--gold-icon); animation-delay:0s; }
.badge-2 { bottom:32%; left:-22%; color: var(--color-danger); animation-delay:1s; }
.badge-3 { top:42%; right:-28%; color: var(--sky-deep); animation-delay:2s; }
@media (max-width: 900px) { .badge-1{right:-4%;} .badge-2{left:-4%;} .badge-3{right:-6%;} }
@keyframes floatBadge { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }

/* Scroll indicator */
.scroll-indicator {
  position: absolute; bottom: var(--space-10); left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  border: 2.5px solid rgba(255,255,255,0.5); border-radius: var(--radius-full);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 7px; z-index: 4;
}
.scroll-dot {
  width: 5px; height: 10px; background: rgba(255,255,255,0.8);
  border-radius: var(--radius-full); animation: scrollBounce 2s ease infinite;
}
@keyframes scrollBounce { 0%,100%{transform:translateY(0);opacity:1;} 50%{transform:translateY(14px);opacity:0.3;} }

/* ── 9. FEATURES ── */
.features { background: var(--bg-secondary); }

.features-grid {
  display: grid; grid-template-columns: 1fr; gap: var(--space-6);
}
@media (min-width: 640px)  { .features-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .features-grid { grid-template-columns: repeat(3,1fr); } }

.feature-card {
  background: var(--bg-card);
  border: 2.5px solid var(--border-color);
  border-radius: var(--radius-2xl);
  padding: var(--space-8);
  transition: all var(--transition-base);
  position: relative; overflow: hidden; cursor: default;
}
.feature-card::before {
  content: ''; position: absolute; inset: 0;
  background: var(--gradient-glow); opacity: 0;
  transition: opacity var(--transition-base);
}
.feature-card:hover {
  transform: translateY(-6px) rotate(-0.5deg);
  border-color: var(--orange-cta);
  box-shadow: 0 12px 40px rgba(255,140,0,0.2), 0 4px 0 var(--orange-cta);
}
.feature-card:hover::before { opacity: 1; }
.feature-card:focus { outline: 3px solid var(--orange-cta); outline-offset: 3px; }

/* Each card a different sky/game colour accent */
.card-accent-1 { --card-accent: #ff8c00; border-top: 4px solid #ff8c00; }
.card-accent-2 { --card-accent: #f9c423; border-top: 4px solid #f9c423; }
.card-accent-3 { --card-accent: #29bce8; border-top: 4px solid #29bce8; }
.card-accent-4 { --card-accent: #4caf50; border-top: 4px solid #4caf50; }
.card-accent-5 { --card-accent: #8b5cf6; border-top: 4px solid #8b5cf6; }
.card-accent-6 { --card-accent: #ef4444; border-top: 4px solid #ef4444; }

.feature-icon {
  font-size: 2.8rem; line-height: 1; margin-bottom: var(--space-5);
  display: inline-block;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.15));
  animation: iconBob 3s ease-in-out infinite;
}
@keyframes iconBob { 0%,100%{transform:translateY(0) scale(1);} 50%{transform:translateY(-6px) scale(1.05);} }

.feature-card h3 {
  font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400;
  color: var(--text-primary); margin-bottom: var(--space-3);
  letter-spacing: 0.01em;
}
.feature-card p { color: var(--text-secondary); font-weight: 600; line-height: 1.7; margin-bottom: var(--space-4); }

.feature-tag {
  display: inline-block; font-family: var(--font-display);
  font-size: var(--fs-xs); font-weight: 400; letter-spacing: 0.06em;
  color: var(--card-accent, var(--orange-cta));
  background: rgba(255,140,0,0.1); border: 1.5px solid var(--card-accent, var(--orange-cta));
  border-radius: var(--radius-full); padding: var(--space-1) var(--space-3);
  text-transform: uppercase;
}

/* ── 10. GAMEPLAY SHOWCASE ── */
.gameplay { background: var(--bg-primary); }

.screenshot-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5);
}
@media (min-width: 768px) {
  .screenshot-grid { grid-template-columns: 2fr 1fr 1fr; }
}

.screenshot-card {
  border-radius: var(--radius-xl); overflow: hidden;
  background: var(--bg-secondary);
  border: 2px solid var(--border-color);
  transition: all var(--transition-base); cursor: default;
}
.screenshot-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow: var(--shadow-lg), 0 4px 0 var(--orange-cta);
  border-color: var(--orange-cta);
}
.screenshot-card:focus { outline: 3px solid var(--orange-cta); outline-offset: 3px; }

.sc-main { grid-column: 1 / -1; }
@media (min-width: 768px) { .sc-main { grid-column: 1; grid-row: 1 / 3; } }
.sc-wide { grid-column: 1 / -1; }
@media (min-width: 768px) { .sc-wide { grid-column: 2 / 4; } }

.sc-content {
  padding: var(--space-5); min-height: 220px;
  display: flex; flex-direction: column; gap: var(--space-4);
  background: var(--gradient-sky); color: #fff;
}
[data-theme="dark"] .sc-content {
  background: linear-gradient(135deg, #0d2233 0%, #0a3d52 100%);
}
.sc-main .sc-content { min-height: 320px; }

.sc-header-bar {
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--font-display); font-size: 0.85rem; font-weight: 400;
  padding-bottom: var(--space-3); border-bottom: 1.5px solid rgba(255,255,255,0.2);
}
.sc-timer { color: var(--color-danger); font-variant-numeric: tabular-nums; font-weight: 800; }

.sc-problem { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3); }
.sc-label { font-family: var(--font-display); font-size: 0.7rem; font-weight: 400; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.85); }
.sc-eq { font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 400; color: #fff; text-shadow: 2px 2px 0 rgba(0,80,120,0.4); }
.sc-choices { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-2); width: 100%; }
@media (max-width: 480px) { .sc-choices { grid-template-columns: repeat(2,1fr); } }
.sc-choice {
  background: rgba(255,255,255,0.2); border: 1.5px solid rgba(255,255,255,0.35);
  border-radius: var(--radius-md); padding: var(--space-2);
  font-family: var(--font-display); font-size: 0.95rem; font-weight: 400;
  text-align: center; color: #fff; transition: all var(--transition-fast);
}
.sc-choice.sc-right {
  background: linear-gradient(135deg,#4caf50,#2e7d32);
  border-color: #1b5e20; box-shadow: 0 3px 0 #1b5e20;
}

/* Leaderboard */
.sc-leaderlist { display:flex; flex-direction:column; gap:var(--space-2); }
.sc-leaderlist li { display:flex; align-items:center; gap:var(--space-3); font-size:0.8rem; font-weight:700; padding:var(--space-2); border-radius:var(--radius-md); background:rgba(255,255,255,0.1); }
.rank { width:24px; text-align:center; font-size:0.9rem; }
.rank.gold{color:#ffd700;} .rank.silver{color:#c0c0c0;} .rank.bronze{color:#cd7f32;}
.pname { flex:1; color:#fff; } .pts { font-weight:800; color:var(--yellow-gold); font-variant-numeric:tabular-nums; }
.current-player { color: var(--orange-cta); }

/* Achievements */
.sc-badges { display:flex; flex-wrap:wrap; gap:var(--space-3); justify-content:center; margin:var(--space-4) 0; }
.sc-badge {
  width: 44px; height: 44px; border-radius: var(--radius-full);
  background: rgba(255,255,255,0.15); border: 2px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; transition: all var(--transition-fast);
}
.sc-badge.unlocked {
  background: rgba(249,196,35,0.25); border-color: var(--yellow-gold);
  box-shadow: 0 0 14px rgba(249,196,35,0.5);
}
.sc-badge.locked { opacity: 0.3; filter: grayscale(80%); }
.sc-progress-text { font-size:0.7rem; color:rgba(255,255,255,0.6); text-align:center; font-weight:700; }

/* Profile */
.sc-profile-body { display:flex; align-items:center; gap:var(--space-5); flex:1; }
.sc-avatar {
  width:60px; height:60px; border-radius:var(--radius-full);
  background: var(--gradient-orange); border:3px solid var(--yellow-gold);
  display:flex; align-items:center; justify-content:center; font-size:2rem; flex-shrink:0;
  box-shadow: 0 4px 12px rgba(255,140,0,0.4);
}
.sc-pname-big { font-family:var(--font-display); font-size:1.1rem; font-weight:400; margin-bottom:2px; color:#fff; }
.sc-country { font-size:0.75rem; color:rgba(255,255,255,0.6); margin-bottom:var(--space-3); font-weight:700; }
.sc-stat-row { display:flex; gap:var(--space-4); }
.sc-stat-row span { display:flex; flex-direction:column; font-size:0.6rem; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.08em; font-weight:700; }
.sc-stat-row strong { font-family:var(--font-display); font-size:0.9rem; color:#fff; margin-top:2px; font-weight:400; }

.sc-caption {
  padding: var(--space-3) var(--space-5);
  font-family: var(--font-display); font-size: var(--fs-xs); font-weight: 400; letter-spacing: 0.04em;
  color: var(--text-secondary); background: var(--bg-secondary);
  border-top: 1.5px solid var(--border-color);
}

/* ── 11. WHY MATH HOPPER ── */
.why { background: var(--bg-secondary); }

.why-layout { display:grid; grid-template-columns:1fr; gap:var(--space-16); align-items:center; }
@media (min-width:900px) { .why-layout { grid-template-columns:1fr 1fr; } }

.why-points { display:flex; flex-direction:column; gap:var(--space-8); margin-top:var(--space-10); }

.why-point { display:flex; align-items:flex-start; gap:var(--space-5); }
.why-icon {
  width:56px; height:56px; flex-shrink:0;
  background: var(--gradient-sky);
  border: 2.5px solid rgba(255,255,255,0.5);
  border-radius: var(--radius-xl);
  display:flex; align-items:center; justify-content:center; font-size:1.6rem;
  box-shadow: 0 4px 0 rgba(0,80,120,0.2);
  transition: all var(--transition-base);
}
[data-theme="dark"] .why-icon { background: linear-gradient(135deg, #0d2233, #0a3d52); }
.why-point:hover .why-icon { transform:scale(1.08) rotate(-3deg); box-shadow: 0 6px 0 rgba(255,140,0,0.3), 0 0 20px rgba(255,140,0,0.15); }
.why-point h3 { font-family:var(--font-display); font-size:var(--fs-lg); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-2); }
.why-point p  { color:var(--text-secondary); line-height:1.7; font-weight:600; }

/* Stat cards – game dashboard style */
.why-card-stack { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.why-stat-card {
  background: var(--bg-card); border: 2.5px solid var(--border-color);
  border-radius: var(--radius-2xl); padding: var(--space-8) var(--space-6);
  text-align: center; transition: all var(--transition-base);
  position: relative; overflow: hidden;
}
.why-stat-card::after {
  content: ''; position:absolute; bottom:0; left:0; right:0; height:4px;
  background: var(--gradient-orange);
}
.why-stat-card:hover { transform:translateY(-4px); box-shadow: var(--shadow-lg), 0 4px 0 var(--orange-cta); border-color:var(--orange-cta); }
.wsc-1 { --wc: rgba(255,140,0,0.08); } .wsc-2 { --wc: rgba(239,68,68,0.08); }
.wsc-3 { --wc: rgba(76,175,80,0.08); } .wsc-4 { --wc: rgba(41,188,232,0.08); }
.why-stat-card { background: var(--wc, var(--bg-card)); }

.wsc-number { display:block; font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-2); letter-spacing:0.02em; }
.wsc-label  { font-size:var(--fs-xs); font-weight:800; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; }

/* ── 12. ABOUT ── */
.about { background: var(--bg-primary); }

.about-card {
  display:flex; flex-direction:column; gap:var(--space-10);
  padding:var(--space-12); align-items:flex-start;
}
@media (min-width:768px) { .about-card { flex-direction:row; align-items:center; } }

.about-avatar-wrap { display:flex; flex-direction:column; align-items:center; gap:var(--space-5); flex-shrink:0; }
.about-avatar {
  position:relative; width:140px; height:140px; border-radius:50%;
  background: var(--gradient-sky);
  border: 4px solid var(--yellow-gold);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  box-shadow: 0 8px 0 var(--yellow-dark), 0 16px 40px rgba(255,140,0,0.25);
}
.avatar-initials { font-family:var(--font-display); font-size:var(--fs-3xl); font-weight:400; color:#fff; letter-spacing:0.02em; text-shadow:2px 2px 0 rgba(0,80,120,0.4); }
.avatar-ring {
  position:absolute; inset:-4px; border-radius:50%;
  border:3px dashed var(--yellow-gold); opacity:0.6;
  animation:ringRotate 8s linear infinite;
}
@keyframes ringRotate { to{transform:rotate(360deg);} }

.about-social { display:flex; gap:var(--space-3); }
.social-btn {
  width:44px; height:44px; border-radius:var(--radius-full);
  background:var(--bg-card); border:2px solid var(--border-color);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
  transition:all var(--transition-fast); text-decoration:none;
}
.social-btn:hover { background:rgba(255,140,0,0.15); border-color:var(--orange-cta); transform:translateY(-2px) scale(1.1); }

.about-info { flex:1; }
.about-info h2 { font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-1); letter-spacing:0.01em; text-shadow:var(--shadow-text); }
.about-title { font-size:var(--fs-lg); color:var(--orange-cta); font-weight:700; margin-bottom:var(--space-5); }
.about-bio { color:var(--text-secondary); line-height:1.8; font-weight:600; margin-bottom:var(--space-6); max-width:560px; }
.about-tags { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.tag {
  font-family:var(--font-display); font-size:var(--fs-xs); font-weight:400;
  color:var(--text-secondary); background:var(--bg-card);
  border:2px solid var(--border-color); border-radius:var(--radius-full);
  padding:var(--space-1) var(--space-4); transition:all var(--transition-fast);
}
.tag:hover { border-color:var(--orange-cta); color:var(--orange-cta); background:rgba(255,140,0,0.08); transform:translateY(-1px); }

/* ── 13. CONTACT ── */
.contact { background: var(--bg-secondary); }

.contact-layout { display:grid; grid-template-columns:1fr; gap:var(--space-8); align-items:start; }
@media (min-width:900px) { .contact-layout { grid-template-columns:3fr 2fr; } }

.contact-form { padding: var(--space-10); }

.form-group { display:flex; flex-direction:column; gap:var(--space-2); margin-bottom:var(--space-5); }
.form-group label { font-family:var(--font-primary); font-size:var(--fs-sm); font-weight:800; color:var(--text-primary); }
.form-group label span { color:var(--color-danger); }

.form-group input, .form-group textarea, .form-group select {
  width:100%; padding:var(--space-3) var(--space-4);
  background:var(--bg-card); border:2px solid var(--border-color);
  border-radius:var(--radius-md); color:var(--text-primary);
  font-family:var(--font-primary); font-size:var(--fs-base); font-weight:600;
  transition:all var(--transition-fast); -webkit-appearance:none; appearance:none;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:var(--text-muted); font-weight:600; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
  border-color:var(--orange-cta); background:var(--bg-card-hover);
  outline:none; box-shadow:0 0 0 3px rgba(255,140,0,0.15);
}
.form-group textarea { resize:vertical; min-height:140px; }
.form-group select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a9ab5' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right var(--space-4) center; padding-right:var(--space-10);
}

.form-error { font-size:var(--fs-xs); color:var(--color-danger); min-height:1em; font-weight:700; }
.form-group.error input,
.form-group.error textarea,
.form-group.error select { border-color:var(--color-danger); box-shadow:0 0 0 3px rgba(239,68,68,0.1); }

.form-success {
  margin-top:var(--space-4); padding:var(--space-4);
  background:rgba(76,175,80,0.12); border:2px solid rgba(76,175,80,0.35);
  border-radius:var(--radius-md); color:var(--frog-green);
  font-weight:800; font-size:var(--fs-sm);
}

.contact-info { display:flex; flex-direction:column; gap:var(--space-4); }
.contact-item {
  display:flex; align-items:center; gap:var(--space-5); padding:var(--space-6);
  transition:all var(--transition-base);
}
.contact-item:hover { transform:translateX(4px); border-color:var(--orange-cta); box-shadow:0 4px 0 var(--orange-cta); }
.contact-icon { font-size:1.6rem; flex-shrink:0; filter:drop-shadow(0 2px 4px rgba(0,0,0,0.15)); }
.contact-item h3 { font-family:var(--font-display); font-size:var(--fs-sm); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-1); }
.contact-item a { font-size:var(--fs-sm); font-weight:600; color:var(--text-secondary); transition:color var(--transition-fast); }
.contact-item a:hover { color:var(--orange-cta); }

/* ── 14. FAQ ── */
.faq { background: var(--bg-primary); }

.faq-list { max-width:760px; margin-inline:auto; display:flex; flex-direction:column; gap:var(--space-3); }

.faq-item {
  background: var(--bg-card); border: 2px solid var(--border-color);
  border-radius: var(--radius-xl); overflow:hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.faq-item:has(.faq-question[aria-expanded="true"]) {
  border-color: var(--orange-cta);
  box-shadow: 0 4px 0 var(--orange-cta);
}

.faq-question {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
  padding:var(--space-5) var(--space-6);
  font-family:var(--font-primary); font-size:var(--fs-base); font-weight:800;
  color:var(--text-primary); text-align:left; background:transparent;
  transition:all var(--transition-fast);
}
.faq-question:hover { color:var(--orange-cta); background:rgba(255,140,0,0.05); }

.faq-icon {
  width:30px; height:30px; flex-shrink:0; border-radius:50%;
  background:var(--bg-secondary); border:2px solid var(--border-color);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; color:var(--text-secondary); transition:all var(--transition-base);
  font-weight:400;
}
.faq-question[aria-expanded="true"] .faq-icon {
  background: var(--gradient-orange); color:#fff; border-color:transparent;
  transform:rotate(45deg); box-shadow:0 3px 0 var(--orange-dark);
}

.faq-answer { padding:0 var(--space-6) var(--space-5); color:var(--text-secondary); line-height:1.75; font-size:var(--fs-sm); font-weight:600; }
.faq-answer p { margin-bottom:var(--space-3); }
.faq-answer p:last-child { margin-bottom:0; }
.faq-answer a { color:var(--orange-cta); text-decoration:underline; text-underline-offset:3px; }
.faq-answer a:hover { color:var(--yellow-dark); }

/* ── 15. CTA BANNER ── */
.cta-banner { background: var(--gradient-sky); position:relative; overflow:hidden; }
[data-theme="dark"] .cta-banner { background: linear-gradient(135deg, #0d2233 0%, #0a3d52 100%); }
.cta-banner::before {
  content:'🐸'; position:absolute; bottom:-10px; right:5%;
  font-size:6rem; opacity:0.1; transform:scaleX(-1);
  filter:drop-shadow(0 4px 8px rgba(0,0,0,0.2));
}

.cta-card {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:var(--space-8); text-align:center; padding:var(--space-16) var(--space-10);
  background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.3);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
@media (min-width:640px) { .cta-card { flex-direction:row; text-align:left; } }
.cta-content h2 {
  font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:400;
  color:#fff; letter-spacing:0.01em; margin-bottom:var(--space-3);
  text-shadow:2px 2px 0 rgba(0,80,120,0.3);
}
.cta-content p { color:rgba(255,255,255,0.85); font-size:var(--fs-lg); font-weight:700; }

/* ── 16. FOOTER ── */
.footer {
  background: var(--bg-secondary);
  border-top: 3px solid var(--border-color);
  padding-block: var(--space-16) var(--space-8);
}

.footer-grid {
  display:grid; grid-template-columns:1fr; gap:var(--space-10);
  margin-bottom:var(--space-12);
}
@media (min-width:640px)  { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (min-width:900px)  { .footer-grid { grid-template-columns:2fr 1fr 1fr 1fr; } }

.footer-brand { display:flex; flex-direction:column; gap:var(--space-4); }
.footer-brand p { color:var(--text-muted); font-size:var(--fs-sm); font-weight:600; line-height:1.7; max-width:260px; }

.gplay-badge {
  display:inline-flex; align-items:center; gap:var(--space-2);
  padding:var(--space-3) var(--space-5);
  background: var(--gradient-orange);
  border: none; border-radius:var(--radius-full);
  color:#fff; font-family:var(--font-display); font-size:var(--fs-sm); font-weight:400;
  transition:all var(--transition-fast); width:fit-content;
  box-shadow:0 4px 0 var(--orange-dark);
  text-shadow:1px 1px 0 rgba(0,0,0,0.2);
}
.gplay-badge:hover { transform:translateY(-2px); box-shadow:0 6px 0 var(--orange-dark); color:#fff; }

.footer-col h3 { font-family:var(--font-display); font-size:var(--fs-base); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-5); letter-spacing:0.02em; }
.footer-col ul { display:flex; flex-direction:column; gap:var(--space-3); }
.footer-col a { font-size:var(--fs-sm); font-weight:700; color:var(--text-muted); transition:color var(--transition-fast); }
.footer-col a:hover { color:var(--orange-cta); }

.footer-bottom {
  padding-top:var(--space-6); border-top:2px solid var(--border-color);
  display:flex; flex-direction:column; gap:var(--space-3);
  align-items:center; text-align:center;
}
@media (min-width:640px) { .footer-bottom { flex-direction:row; justify-content:space-between; text-align:left; } }
.footer-bottom p { font-size:var(--fs-xs); color:var(--text-muted); font-weight:700; }
.footer-links { display:flex; align-items:center; gap:var(--space-3); }
.footer-links a { color:var(--text-muted); font-size:var(--fs-xs); font-weight:700; }
.footer-links a:hover { color:var(--orange-cta); }

/* ── 17. PRIVACY POLICY PAGE ── */
.policy-hero {
  padding-top:calc(var(--nav-height) + var(--space-16));
  padding-bottom:var(--space-16);
  background: var(--gradient-sky);
  border-bottom:3px solid rgba(255,255,255,0.3);
  text-align:center;
}
[data-theme="dark"] .policy-hero { background:linear-gradient(180deg,#0d2233 0%,#0a3d52 100%); }
.policy-hero h1 { font-family:var(--font-display); font-size:var(--fs-4xl); font-weight:400; color:#fff; letter-spacing:0.01em; margin-bottom:var(--space-4); text-shadow:3px 3px 0 rgba(0,80,120,0.35); }
.policy-meta { font-size:var(--fs-sm); color:rgba(255,255,255,0.8); font-weight:700; margin-bottom:var(--space-5); }
.policy-intro { max-width:620px; margin-inline:auto; color:rgba(255,255,255,0.9); font-weight:700; line-height:1.75; }

.policy-content { background:var(--bg-primary); }
.policy-container { display:grid; grid-template-columns:1fr; gap:var(--space-10); }
@media (min-width:1024px) { .policy-container { grid-template-columns:280px 1fr; align-items:start; } }

.policy-toc { padding:var(--space-6); position:sticky; top:calc(var(--nav-height) + var(--space-6)); align-self:start; }
.policy-toc h2 { font-family:var(--font-display); font-size:var(--fs-base); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-5); }
.policy-toc ol { display:flex; flex-direction:column; gap:var(--space-2); list-style:decimal; padding-left:var(--space-5); }
.policy-toc a { color:var(--text-secondary); font-size:var(--fs-sm); font-weight:700; transition:color var(--transition-fast); }
.policy-toc a:hover { color:var(--orange-cta); }

.policy-sections { display:flex; flex-direction:column; gap:var(--space-12); }
.policy-section { scroll-margin-top:calc(var(--nav-height) + var(--space-8)); }
.policy-section h2 { font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-5); padding-bottom:var(--space-4); border-bottom:2px solid var(--border-color); }
.policy-section h3 { font-family:var(--font-display); font-size:var(--fs-lg); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-4); margin-top:var(--space-6); }
.policy-section p { color:var(--text-secondary); line-height:1.8; margin-bottom:var(--space-4); font-weight:600; }
.policy-section ul,.policy-section ol { padding-left:var(--space-5); display:flex; flex-direction:column; gap:var(--space-3); margin-bottom:var(--space-4); }
.policy-section ul { list-style:disc; } .policy-section ol { list-style:decimal; }
.policy-section li { color:var(--text-secondary); line-height:1.75; font-size:var(--fs-sm); font-weight:600; }
.policy-section a { color:var(--orange-cta); text-decoration:underline; text-underline-offset:3px; }
.policy-section a:hover { color:var(--yellow-dark); }
.policy-section strong { color:var(--text-primary); font-weight:800; }

.highlight-box {
  background:rgba(255,140,0,0.08); border:2px solid rgba(255,140,0,0.25);
  border-left:5px solid var(--orange-cta); border-radius:var(--radius-md);
  padding:var(--space-5) var(--space-6); margin-bottom:var(--space-6);
}
.highlight-box p { color:var(--text-secondary); margin-bottom:0; }
.policy-note { font-size:var(--fs-sm); color:var(--text-muted); font-style:italic; margin-top:var(--space-4); font-weight:600; }

.purpose-grid { display:grid; grid-template-columns:1fr; gap:var(--space-5); margin-top:var(--space-5); }
@media (min-width:640px) { .purpose-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px) { .purpose-grid { grid-template-columns:repeat(3,1fr); } }
.purpose-card {
  background:var(--bg-card); border:2px solid var(--border-color);
  border-radius:var(--radius-lg); padding:var(--space-6); transition:all var(--transition-base);
}
.purpose-card:hover { border-color:var(--orange-cta); transform:translateY(-3px); box-shadow:0 4px 0 var(--orange-cta); }
.purpose-icon { font-size:1.8rem; display:block; margin-bottom:var(--space-3); }
.purpose-card h3 { font-family:var(--font-display); font-size:var(--fs-base); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-2); }
.purpose-card p { font-size:var(--fs-sm); color:var(--text-secondary); line-height:1.7; margin-bottom:0; font-weight:600; }

.third-party-card {
  display:flex; gap:var(--space-5); align-items:flex-start;
  background:var(--bg-card); border:2px solid var(--border-color);
  border-radius:var(--radius-lg); padding:var(--space-6); margin-bottom:var(--space-5);
  transition:all var(--transition-base);
}
.third-party-card:hover { border-color:var(--orange-cta); }
.tp-icon { font-size:2rem; flex-shrink:0; }
.third-party-card h3 { font-family:var(--font-display); font-size:var(--fs-base); font-weight:400; color:var(--text-primary); margin-bottom:var(--space-2); }
.third-party-card p { font-size:var(--fs-sm); color:var(--text-secondary); line-height:1.7; margin-bottom:var(--space-2); font-weight:600; }

.contact-block {
  background:var(--bg-card); border:2px solid var(--border-color);
  border-radius:var(--radius-lg); padding:var(--space-8);
  display:flex; flex-direction:column; gap:var(--space-3);
}
.contact-block p { margin-bottom:0; }

/* ── 18. REVEAL ANIMATIONS ── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.55s ease,transform 0.55s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── 19. SKIP LINK ── */
.skip-link {
  position:absolute; top:-100%; left:var(--space-4);
  background:var(--orange-cta); color:#fff;
  padding:var(--space-3) var(--space-5); border-radius:var(--radius-md);
  font-weight:800; z-index:9999; transition:top var(--transition-fast);
  font-family:var(--font-display);
}
.skip-link:focus { top:var(--space-4); }

/* ── 20. SCROLLBAR ── */
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:var(--bg-primary); }
::-webkit-scrollbar-thumb { background:var(--sky-mid); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--orange-cta); }

/* ── 21. RESPONSIVE TWEAKS ── */
@media (max-width:480px) {
  .hero-ctas { flex-direction:column; }
  .btn-large { width:100%; justify-content:center; }
  .about-card { padding:var(--space-6); }
  .contact-form { padding:var(--space-6); }
  .cta-card { padding:var(--space-10) var(--space-6); }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
  html { scroll-behavior:auto; }
}
