<!DOCTYPE html>

<html lang=”en”>

<head>

  <meta charset=”UTF-8″ />

  <title>Life Goals Bingo</title>

  <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>

  <style>

    body {

      font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

      background: #f4f7fb;

      padding: 20px;

      text-align: center;

    }

    h1 {

      margin-bottom: 5px;

    }

    p {

      color: #555;

      max-width: 600px;

      margin: 0 auto 20px;

    }

    .input-grid {

      display: grid;

      grid-template-columns: repeat(5, 1fr);

      gap: 8px;

      max-width: 600px;

      margin: 0 auto 20px;

    }

    .input-grid input {

      padding: 6px;

      font-size: 14px;

    }

    button {

      padding: 12px 20px;

      font-size: 16px;

      background: #4f46e5;

      color: #fff;

      border: none;

      border-radius: 6px;

      cursor: pointer;

      margin-bottom: 20px;

    }

    button:hover {

      background: #4338ca;

    }

    .bingo-card {

      display: grid;

      grid-template-columns: repeat(5, 1fr);

      gap: 4px;

      max-width: 500px;

      margin: 0 auto;

      background: #111;

      padding: 4px;

    }

    .bingo-cell {

      background: #fff;

      padding: 10px;

      font-size: 14px;

      min-height: 80px;

      display: flex;

      align-items: center;

      justify-content: center;

      text-align: center;

      border-radius: 4px;

    }

    .free {

      background: #fde68a;

      font-weight: bold;

    }

    footer {

      margin-top: 30px;

      font-size: 13px;

      color: #666;

    }

  </style>

</head>

<body>

  <h1>Achievement Bingo</h1>

  <p>

    Write 25 things you’d like to achieve.  

    Turn your goals into a bingo card and start checking them off.

  </p>

  <div class=”input-grid” id=”inputs”></div>

  <button onclick=”generateBingo()”>Generate My Bingo Card</button>

  <div id=”bingo” class=”bingo-card” style=”display:none;”></div>

  <footer>

    Tip: Screenshot or print your bingo card and keep it somewhere visible.

  </footer>

  <script>

    const inputContainer = document.getElementById(“inputs”);

    const bingo = document.getElementById(“bingo”);

    // Create 25 input boxes

    for (let i = 0; i < 25; i++) {

      const input = document.createElement(“input”);

      input.placeholder = `Goal ${i + 1}`;

      inputContainer.appendChild(input);

    }

    function generateBingo() {

      const values = Array.from(inputContainer.querySelectorAll(“input”))

        .map(i => i.value.trim())

        .filter(v => v !== “”);

      if (values.length < 25) {

        alert(“Please enter all 25 goals.”);

        return;

      }

      bingo.innerHTML = “”;

      bingo.style.display = “grid”;

      values.forEach((goal, index) => {

        const cell = document.createElement(“div”);

        cell.className = “bingo-cell”;

        cell.textContent = goal;

        // Center FREE space

        if (index === 12) {

          cell.textContent = “FREE”;

          cell.classList.add(“free”);

        }

        bingo.appendChild(cell);

      });

    }

  </script>

</body>

</html>