Rockhound In Kentucky - Geode Quest

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>RockHound Geode Quest • KentuckyGeodes</title>
  <script src="https://cdn.tailwindcss.com"></script>
  <style>
    body { font-family: system-ui, sans-serif; background: linear-gradient(to bottom, #3F2A1E, #5C4033); }
    .geode-crack { animation: crack 0.8s ease; }
    @keyframes crack { 0% { transform: scale(0.7) rotate(-10deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(0); opacity: 1; } }
    .stage-header { font-size: 1.4rem; color: #D8BFD8; margin-bottom: 1rem; }
  </style>
</head>
<body class="text-amber-100 min-h-screen">
  <div class="max-w-3xl mx-auto p-6">

    <!-- START SCREEN -->
    <div id="start" class="text-center py-12">
      <h1 class="text-5xl font-bold text-purple-300 mb-6">🪨 ROCKHOUND GEODE QUEST 🪨</h1>
      <p class="text-xl mb-6">Grab your hammer, goggles, and boots — you're heading to Kentucky's creeks! Wade the Green River gravels, spot geodes in the mud, crack 'em safely, and respect the land like a true RockHound.</p>
      <p class="text-lg italic mb-8">Real adventure feel: 12 questions across 4 hunt stages • Earn your KY discount + collection</p>
      <button onclick="startGame()" class="bg-purple-700 hover:bg-purple-800 text-white text-2xl font-bold py-6 px-12 rounded-2xl shadow-2xl transition">START THE HUNT!</button>
    </div>

    <!-- GAME SCREEN -->
    <div id="game" class="hidden">
      <div class="flex justify-between items-center mb-6">
        <div>Stage <span id="stage">1</span>/4 • Q <span id="qnum">1</span>/12</div>
        <div class="w-56 h-3 bg-amber-900 rounded-full overflow-hidden">
          <div id="progress" class="h-full bg-purple-600 w-1/12 transition-all duration-500"></div>
        </div>
        <div id="score" class="font-bold">Score: 0</div>
      </div>

      <div class="bg-[#4A2F1F] p-8 rounded-3xl shadow-2xl border border-purple-700 mb-6">
        <p class="stage-header font-bold" id="stageTitle"></p>
        <p id="question" class="text-2xl font-semibold mb-8 text-center"></p>
        <div id="options" class="grid gap-4"></div>
      </div>

      <div id="feedback" class="hidden mt-6 text-center p-8 bg-[#2C1F14] rounded-3xl border border-amber-700">
        <p id="result" class="text-4xl font-bold mb-4 geode-crack"></p>
        <p id="explanation" class="text-amber-200 text-lg"></p>
        <button onclick="nextQuestion()" class="mt-8 bg-amber-700 hover:bg-amber-800 text-white px-12 py-5 rounded-xl font-bold text-xl">Continue the Hunt →</button>
      </div>
    </div>

    <!-- END SCREEN -->
    <div id="end" class="hidden text-center py-12">
      <h2 class="text-5xl font-bold text-purple-300 mb-4">🎉 HUNT COMPLETE!</h2>
      <p id="finalscore" class="text-6xl font-bold mb-4"></p>
      <p id="rank" class="text-3xl mb-10"></p>

      <div class="bg-[#5C4033] p-8 rounded-3xl mb-10">
        <h3 class="text-2xl font-bold mb-6 text-purple-200">YOUR KENTUCKY COLLECTION</h3>
        <div id="collection" class="grid grid-cols-2 md:grid-cols-4 gap-6"></div>
      </div>

      <div class="max-w-lg mx-auto bg-[#2C1F14] p-8 rounded-3xl text-sm mb-10 border border-purple-800">
        <p class="font-bold text-xl mb-4">🛡️ ROCKHOUND PLEDGE</p>
        <p class="text-amber-300">I vow to wear goggles, use the sock/hammer method safely, get permission on private land (like in Rockcastle or Lincoln counties), follow Leave No Trace in KY creeks, and cherish every find!</p>
      </div>

      <p class="text-4xl font-bold text-amber-300 mb-6">Exclusive Code: <span class="bg-purple-900 px-8 py-3 rounded-xl">KYROCKHUNT15</span></p>
      <p class="text-xl mb-10">15% off real Kentucky geodes & crystals!</p>

      <a href="/collections/geodes" class="block bg-green-700 hover:bg-green-800 text-white text-2xl font-bold py-6 px-12 rounded-2xl mb-6">SHOP YOUR REAL FINDS →</a>
      <button onclick="restartGame()" class="text-amber-400 underline text-xl">Hunt Again</button>
    </div>
  </div>

  <script>
    const questions = [
      // Stage 1: Searching the Creek (Spotting & Basics)
      {stage:1, title:"Stage 1: Wading the Creek", q:"You're in a Kentucky creek bed after rain. What should you look for in the gravel?", a:["A. Shiny flat stones", "B. Round, bumpy rocks that feel heavier than they look", "C. Bright red pebbles", "D. Large flat slabs"], c:1, expl:"Geodes often look like plain brown-gray potatoes on the outside but feel dense. Kentucky's Fort Payne & Warsaw formations weather out beauties in stream gravels!"},
      {stage:1, title:"Stage 1: Wading the Creek", q:"Best time to hunt geodes in KY creeks?", a:["A. Mid-summer heat", "B. After spring rains when water is low", "C. Winter freeze", "D. High flood season"], c:1, expl:"Low water exposes gravel bars. Green River & Rockcastle County spots shine then."},
      {stage:1, title:"Stage 1: Wading the Creek", q:"First safety rule before entering a creek?", a:["A. Bring snacks", "B. Wear sturdy boots & check for permission if private land", "C. Run fast", "D. Go alone at night"], c:1, expl:"Always get landowner permission in KY — respect private property!"},

      // Stage 2: Identifying Finds
      {stage:2, title:"Stage 2: Spotting the Prize", q:"Common crystal inside KY geodes?", a:["A. Emeralds", "B. Quartz (clear or amethyst)", "C. Diamonds", "D. Gold flakes"], c:1, expl:"Quartz lines most — sometimes purple amethyst from iron & radiation."},
      {stage:2, title:"Stage 2: Spotting the Prize", q:"Agate geodes show what pattern when cracked?", a:["A. Solid black", "B. Colorful banded layers", "C. Only sparkles", "D. Smooth inside"], c:1, expl:"Banded chalcedony — stunning in KY finds."},
      {stage:2, title:"Stage 2: Spotting the Prize", q:"Celestite in some geodes is what color?", a:["A. Red", "B. Sky blue", "C. Green", "D. Yellow"], c:1, expl:"Delicate blue — rare & prized!"},

      // Stage 3: Cracking Safely
      {stage:3, title:"Stage 3: The Crack!", q:"Must-wear item when cracking any geode?", a:["A. Gloves only", "B. Safety goggles EVERY time", "C. Sunglasses", "D. Nothing"], c:1, expl:"Chips fly — protect eyes first!"},
      {stage:3, title:"Stage 3: The Crack!", q:"Beginner-safe cracking method?", a:["A. Smash hard on concrete", "B. Place in old sock, tap gently with hammer", "C. Use power tools without mask", "D. Drop from height"], c:1, expl:"Sock contains shards & dust — do it outdoors!"},
      {stage:3, title:"Stage 3: The Crack!", q:"Best technique with chisel?", a:["A. One massive hit", "B. Score a line gently, then follow crack", "C. Hammer directly without chisel", "D. Drill holes"], c:1, expl:"Controlled taps prevent shattering — patience pays!"},

      // Stage 4: Respect & Ethics
      {stage:4, title:"Stage 4: Leave No Trace", q:"'Leave No Trace' means?", a:["A. Take everything", "B. Leave site cleaner than found, fill holes, pack trash", "C. Mark spots", "D. Dig huge pits"], c:1, expl:"Preserve KY's creeks for future hunters!"},
      {stage:4, title:"Stage 4: Leave No Trace", q:"Collecting in U.S. National Parks like Mammoth Cave area?", a:["A. Always OK", "B. Usually prohibited — check rules"], c:1, expl:"Many restrictions — stick to permitted public spots."},
      {stage:4, title:"Stage 4: Leave No Trace", q:"Why respect geodes & land?", a:["A. Only to avoid fines", "B. Sustainable collecting lets everyone enjoy nature's treasures", "C. Doesn't matter", "D. For profit only"], c:1, expl:"True RockHounds appreciate & protect!"}
    ];

    let currentQ = 0;
    let score = 0;
    let collection = [];
    const unlocks = [
      {name:"Quartz Geode", emoji:"✨", fact:"Clear KY quartz sparkling like creek water!"},
      {name:"Amethyst Geode", emoji:"💜", fact:"Purple KY beauty from iron & time."},
      {name:"Agate Geode", emoji:"🌈", fact:"Banded layers — nature's KY artwork."},
      {name:"Celestite Geode", emoji:"🔷", fact:"Sky-blue crystals from sedimentary KY rock!"}
    ];

    function startGame() {
      document.getElementById('start').classList.add('hidden');
      document.getElementById('game').classList.remove('hidden');
      currentQ = 0; score = 0; collection = [];
      loadQuestion();
    }

    function loadQuestion() {
      document.getElementById('feedback').classList.add('hidden');
      const q = questions[currentQ];
      document.getElementById('stage').textContent = q.stage;
      document.getElementById('stageTitle').textContent = q.title;
      document.getElementById('qnum').textContent = currentQ + 1;
      document.getElementById('progress').style.width = `${((currentQ + 1)/questions.length)*100}%`;
      document.getElementById('score').textContent = `Score: ${score}`;
      document.getElementById('question').textContent = q.q;

      const opts = document.getElementById('options');
      opts.innerHTML = '';
      q.a.forEach((opt, i) => {
        const btn = document.createElement('button');
        btn.className = "w-full text-left p-6 rounded-2xl bg-[#3F2A1E] hover:bg-purple-900 border border-amber-800 text-xl transition";
        btn.textContent = opt;
        btn.onclick = () => selectAnswer(i);
        opts.appendChild(btn);
      });
    }

    function selectAnswer(selected) {
      const q = questions[currentQ];
      const buttons = document.getElementById('options').children;
      for (let btn of buttons) btn.disabled = true;

      const fb = document.getElementById('feedback');
      fb.classList.remove('hidden');

      if (selected === q.c) {
        score++;
        document.getElementById('result').innerHTML = '✅ CRACK! You found one!';
        document.getElementById('result').className = 'text-green-400 text-4xl font-bold mb-4 geode-crack';
        if (score % 3 === 0 && collection.length < unlocks.length) {
          collection.push(unlocks[collection.length]);
        }
      } else {
        document.getElementById('result').innerHTML = '❌ Close... keep hunting!';
        document.getElementById('result').className = 'text-red-400 text-4xl font-bold mb-4';
      }
      document.getElementById('explanation').innerHTML = `<strong>Field Note:</strong> ${q.expl}`;
      document.getElementById('score').textContent = `Score: ${score}`;
    }

    function nextQuestion() {
      currentQ++;
      if (currentQ < questions.length) {
        loadQuestion();
      } else {
        showEnd();
      }
    }

    function showEnd() {
      document.getElementById('game').classList.add('hidden');
      const end = document.getElementById('end');
      end.classList.remove('hidden');

      const percent = Math.round((score / questions.length) * 100);
      document.getElementById('finalscore').textContent = `\( {score}/12 ( \){percent}%)`;

      let rank = "Novice Creek Walker 🪨";
      if (percent >= 90) rank = "Legendary KY RockHound 🌟";
      else if (percent >= 70) rank = "Expert Geode Hunter 💎";
      else if (percent >= 50) rank = "Solid Stream Prospector ✨";
      document.getElementById('rank').innerHTML = rank;

      const collDiv = document.getElementById('collection');
      collDiv.innerHTML = '';
      unlocks.forEach((g, i) => {
        const unlocked = i < collection.length;
        const card = document.createElement('div');
        card.className = `p-6 rounded-2xl text-center ${unlocked ? 'bg-purple-900/40 border border-purple-500' : 'bg-[#2C1F14] opacity-60'}`;
        card.innerHTML = `<div class="text-7xl mb-3">\( {g.emoji}</div><p class="font-bold text-lg"> \){g.name}</p><p class="text-sm mt-2">${unlocked ? g.fact : 'Crack more to unlock!'}</p>`;
        collDiv.appendChild(card);
      });
    }

    function restartGame() {
      document.getElementById('end').classList.add('hidden');
      document.getElementById('start').classList.remove('hidden');
    }
  </script>
</body>
</html>