"""
zones.py — Number zones and challenges for the Numbers skill pack.
"""

ZONE_ORDER = [
    "counting_hills",
    "addition_meadow",
    "subtraction_valley",
    "shape_forest",
    "time_tower",
    "skip_counting_grove",
    "measurement_meadow",
    "money_market",
    "shapes_and_patterns",
    "telling_time",
    "fractions_forest",
]

ZONES = {
    "counting_hills": {
        "id": "counting_hills",
        "name": "The Counting Hills",
        "description": "Count to 100 and understand number order",
        "level_required": 1,
        "challenges": [
            {
                "id": "ch_01",
                "title": "Counting to 10",
                "type": "quiz",
                "question": "What number comes after [bold yellow]7[/bold yellow]?",
                "lesson": "Counting order: 1, 2, 3, 4, 5, 6, 7, [bold yellow]8[/bold yellow], 9, 10. Each number is one more than the one before.",
                "options": ["6", "9", "8", "10"],
                "answer": "c",
                "hints": ["Count on your fingers from 1 to 7, then keep going!", "7... 8!"],
                "xp": 25,
            },
            {
                "id": "ch_02",
                "title": "Counting Backwards",
                "type": "quiz",
                "question": "What number comes before [bold yellow]5[/bold yellow]?",
                "lesson": "Counting backwards: 10, 9, 8, 7, 6, [bold yellow]5[/bold yellow], 4, 3, 2, 1. One LESS each time.",
                "options": ["6", "3", "4", "7"],
                "answer": "c",
                "hints": ["Count backwards from 10 — 10, 9, 8, 7, 6, 5... what came just before 5?", "5 - 1 = ?"],
                "xp": 25,
            },
            {
                "id": "ch_03",
                "title": "Counting Objects",
                "type": "quiz",
                "question": "How many stars? ★ ★ ★ ★ ★ ★",
                "lesson": "To count objects, point to each one and say its number. Don't count the same one twice!",
                "options": ["5", "7", "6", "8"],
                "answer": "c",
                "hints": ["Point to each star and count out loud!", "1, 2, 3, 4, 5, 6 — how many was that?"],
                "xp": 25,
            },
            {
                "id": "ch_04",
                "title": "Tens and Ones",
                "type": "quiz",
                "question": "The number [bold yellow]23[/bold yellow] has how many tens?",
                "lesson": "[bold yellow]23[/bold yellow] = 2 tens and 3 ones. The first digit tells you how many groups of ten!",
                "options": ["3", "2", "5", "1"],
                "answer": "b",
                "hints": ["In 23, the 2 is in the tens place and the 3 is in the ones place!", "2 tens = 20"],
                "xp": 30,
            },
            {
                "id": "ch_05",
                "title": "Bigger or Smaller?",
                "type": "quiz",
                "question": "Which number is bigger: [bold yellow]47[/bold yellow] or [bold yellow]74[/bold yellow]?",
                "lesson": "To compare numbers, look at the tens digit first. 7 tens (74) is more than 4 tens (47), so [bold yellow]74[/bold yellow] is bigger.",
                "options": ["47", "74", "They're the same", "Can't tell"],
                "answer": "b",
                "hints": ["Look at the first digit — which is bigger, 4 or 7?", "74 has 7 tens. 47 has only 4 tens!"],
                "xp": 30,
            },
            {
                "id": "ch_06",
                "title": "Skip Counting by 2s",
                "type": "quiz",
                "question": "Count by 2s: 2, 4, 6, [bold yellow]__[/bold yellow], 10",
                "lesson": "Skip counting by 2s: 2, 4, 6, [bold yellow]8[/bold yellow], 10. You're counting every other number!",
                "options": ["7", "9", "8", "11"],
                "answer": "c",
                "hints": ["2, 4, 6... add 2 more!", "6 + 2 = ?"],
                "xp": 30,
            },
            {
                "id": "ch_07",
                "title": "Skip Counting by 5s",
                "type": "quiz",
                "question": "Count by 5s: 5, 10, 15, [bold yellow]__[/bold yellow], 25",
                "lesson": "Skip counting by 5s: 5, 10, 15, [bold yellow]20[/bold yellow], 25. Great for counting nickels!",
                "options": ["16", "21", "18", "20"],
                "answer": "d",
                "hints": ["15 + 5 = ?", "Count on your fingers by 5s!"],
                "xp": 30,
            },
            {
                "id": "ch_boss",
                "title": "Count to 100",
                "type": "quiz",
                "question": "If you count by 10s: 10, 20, 30, 40, 50, 60, 70, 80, 90, [bold yellow]__[/bold yellow]",
                "lesson": "Counting by 10s all the way to [bold yellow]100[/bold yellow]! Each step you add 10 more.",
                "options": ["95", "99", "100", "110"],
                "answer": "c",
                "hints": ["90 + 10 = ?", "One more group of ten after 90 is 100!"],
                "xp": 60,
                "is_boss": True,
            },
        ],
    },

    "addition_meadow": {
        "id": "addition_meadow",
        "name": "The Addition Meadow",
        "description": "Learn to add numbers together",
        "level_required": 2,
        "challenges": [
            {
                "id": "am_01",
                "title": "Adding Small Numbers",
                "type": "fill_blank",
                "question": "[bold white]3 + 4 = ?[/bold white]",
                "lesson": "To add 3 + 4, start at 3 and count up 4 more: 4, 5, 6, [bold yellow]7[/bold yellow].",
                "answer": "7",
                "hints": ["Hold up 3 fingers, then count up 4 more!", "3... 4, 5, 6, 7. Seven!"],
                "xp": 30,
            },
            {
                "id": "am_02",
                "title": "Adding to 10",
                "type": "fill_blank",
                "question": "[bold white]6 + 4 = ?[/bold white]",
                "lesson": "6 + 4 = [bold yellow]10[/bold yellow]. These are called 'number pairs that make 10' — they're useful to memorize!",
                "answer": "10",
                "hints": ["6 + 4... count up from 6: 7, 8, 9, 10!", "Number pairs: 6 and 4 make 10."],
                "xp": 30,
            },
            {
                "id": "am_03",
                "title": "Word Problem",
                "type": "quiz",
                "question": "Nell had [bold yellow]3[/bold yellow] apples. Puck brought [bold yellow]5[/bold yellow] more. How many apples does Nell have now?",
                "lesson": "When we [bold white]add[/bold white], we're finding the total. 3 apples + 5 apples = 8 apples.",
                "options": ["7", "8", "9", "6"],
                "answer": "b",
                "hints": ["Start with 3 and count up 5 more: 4, 5, 6, 7, 8!", "3 + 5 = ?"],
                "xp": 35,
            },
            {
                "id": "am_04",
                "title": "Adding Bigger Numbers",
                "type": "fill_blank",
                "question": "[bold white]12 + 5 = ?[/bold white]",
                "lesson": "12 + 5: start at 12 and count up 5: 13, 14, 15, 16, [bold yellow]17[/bold yellow].",
                "answer": "17",
                "hints": ["Start at 12, count up 5 more!", "12... 13, 14, 15, 16, 17"],
                "xp": 35,
            },
            {
                "id": "am_05",
                "title": "Adding Tens",
                "type": "fill_blank",
                "question": "[bold white]20 + 30 = ?[/bold white]",
                "lesson": "2 tens + 3 tens = 5 tens = [bold yellow]50[/bold yellow]. Adding tens is like adding the regular numbers, but with a zero!",
                "answer": "50",
                "hints": ["2 + 3 = 5, so 20 + 30 = 50!", "Think of it as 2 tens + 3 tens"],
                "xp": 40,
            },
            {
                "id": "am_boss",
                "title": "Two-Digit Addition",
                "type": "fill_blank",
                "question": "[bold white]24 + 13 = ?[/bold white]",
                "lesson": "Add the ones first: 4 + 3 = 7. Then add the tens: 20 + 10 = 30. Together: 30 + 7 = [bold yellow]37[/bold yellow].",
                "answer": "37",
                "hints": ["Add the ones (4+3), then add the tens (20+10), then combine!", "4+3=7, 20+10=30, 30+7=37"],
                "xp": 70,
                "is_boss": True,
            },
        ],
    },

    "subtraction_valley": {
        "id": "subtraction_valley",
        "name": "The Subtraction Valley",
        "description": "Learn to take numbers away",
        "level_required": 3,
        "challenges": [
            {
                "id": "sv_01",
                "title": "Taking Away",
                "type": "fill_blank",
                "question": "[bold white]8 - 3 = ?[/bold white]",
                "lesson": "Subtraction means taking away. Start at 8 and count back 3: 7, 6, [bold yellow]5[/bold yellow].",
                "answer": "5",
                "hints": ["Hold up 8 fingers, fold down 3 — how many are left?", "8... 7, 6, 5. Five!"],
                "xp": 30,
            },
            {
                "id": "sv_02",
                "title": "Subtraction Word Problem",
                "type": "quiz",
                "question": "Nell had [bold yellow]10[/bold yellow] cookies. She ate [bold yellow]4[/bold yellow]. How many are left?",
                "lesson": "10 - 4 = 6. Subtraction tells us what's left over.",
                "options": ["5", "7", "6", "8"],
                "answer": "c",
                "hints": ["10 take away 4... count back from 10: 9, 8, 7, 6!", "10 - 4 = ?"],
                "xp": 35,
            },
            {
                "id": "sv_03",
                "title": "Subtraction from 10",
                "type": "fill_blank",
                "question": "[bold white]10 - 7 = ?[/bold white]",
                "lesson": "10 - 7 = [bold yellow]3[/bold yellow]. These are the same pairs as addition! If 7 + 3 = 10, then 10 - 7 = 3.",
                "answer": "3",
                "hints": ["If 7 + 3 = 10, then 10 - 7 = ?", "Count back from 10: 9, 8, 7...that's 3 steps!"],
                "xp": 35,
            },
            {
                "id": "sv_04",
                "title": "Missing Numbers",
                "type": "fill_blank",
                "question": "What number goes in the blank?\n[bold white]9 - __ = 5[/bold white]",
                "lesson": "To find the missing number, ask: what do I take from 9 to get 5? Count from 5 up to 9: 6, 7, 8, 9 — that's [bold yellow]4[/bold yellow] steps.",
                "answer": "4",
                "hints": ["Count from 5 up to 9 — how many steps is that?", "5... 6, 7, 8, 9. That's 4 steps, so 9 - 4 = 5!"],
                "xp": 40,
            },
            {
                "id": "sv_boss",
                "title": "Bigger Subtraction",
                "type": "fill_blank",
                "question": "[bold white]25 - 12 = ?[/bold white]",
                "lesson": "Subtract the ones: 5 - 2 = 3. Subtract the tens: 20 - 10 = 10. Together: 10 + 3 = [bold yellow]13[/bold yellow].",
                "answer": "13",
                "hints": ["Subtract the ones (5-2=3), then the tens (20-10=10), then add!", "5-2=3, 20-10=10, 10+3=13"],
                "xp": 70,
                "is_boss": True,
            },
        ],
    },

    "shape_forest": {
        "id": "shape_forest",
        "name": "The Shape Forest",
        "description": "Identify and understand 2D shapes",
        "level_required": 4,
        "challenges": [
            {
                "id": "sf_01",
                "title": "The Circle",
                "type": "quiz",
                "question": "How many sides does a [bold yellow]circle[/bold yellow] have?",
                "lesson": "A circle has [bold yellow]0[/bold yellow] sides and [bold yellow]0[/bold yellow] corners — it's one continuous curved line. Coins, wheels, and clocks are circles!",
                "options": ["1", "0", "2", "4"],
                "answer": "b",
                "hints": ["Run your finger around a circle — can you find a corner or a straight side?", "A circle is all curve, no straight edges!"],
                "xp": 30,
            },
            {
                "id": "sf_02",
                "title": "The Triangle",
                "type": "quiz",
                "question": "How many sides does a [bold yellow]triangle[/bold yellow] have?",
                "lesson": "A triangle has [bold yellow]3[/bold yellow] sides and [bold yellow]3[/bold yellow] corners. 'Tri' means three — like tricycle (three wheels)!",
                "options": ["2", "4", "3", "5"],
                "answer": "c",
                "hints": ["'Tri' means three — in triangle, tricycle, tripod!", "Count the sides: 1, 2, 3"],
                "xp": 30,
            },
            {
                "id": "sf_03",
                "title": "The Square",
                "type": "quiz",
                "question": "What makes a [bold yellow]square[/bold yellow] special compared to a rectangle?",
                "lesson": "A square has [bold yellow]4[/bold yellow] equal sides and [bold yellow]4[/bold yellow] right angle corners. All four sides are the SAME length!",
                "options": ["It has more sides", "All 4 sides are equal", "It has no corners", "It has 3 sides"],
                "answer": "b",
                "hints": ["A square and rectangle both have 4 sides — but what's different?", "A square's sides are all the same length!"],
                "xp": 35,
            },
            {
                "id": "sf_04",
                "title": "The Rectangle",
                "type": "quiz",
                "question": "A door is shaped like a [bold yellow]rectangle[/bold yellow]. How many sides does it have?",
                "lesson": "A rectangle has [bold yellow]4[/bold yellow] sides and [bold yellow]4[/bold yellow] corners. Two sides are long, two sides are short (unless it's a square, which is a special rectangle!).",
                "options": ["3", "5", "4", "6"],
                "answer": "c",
                "hints": ["Look at a door or a book — count the edges!", "Rectangles have 4 sides"],
                "xp": 35,
            },
            {
                "id": "sf_05",
                "title": "The Pentagon and Hexagon",
                "type": "quiz",
                "question": "A [bold yellow]hexagon[/bold yellow] looks like a honeycomb cell. How many sides does it have?",
                "lesson": "'Hex' means six! A [bold yellow]hexagon[/bold yellow] has 6 sides. Honeybees build their homes in hexagons!",
                "options": ["5", "7", "8", "6"],
                "answer": "d",
                "hints": ["'Hex' means six — like hexapod (6 legs)!", "Count the sides of a honeycomb shape"],
                "xp": 40,
            },
            {
                "id": "sf_boss",
                "title": "Shape Challenge",
                "type": "quiz",
                "question": "Which shape has the MOST sides: triangle, pentagon, rectangle, or octagon?",
                "lesson": "Triangle=3, Rectangle=4, Pentagon=5, [bold yellow]Octagon=8[/bold yellow]. 'Oct' means eight — like October (was the 8th month in old calendars)!",
                "options": ["Triangle", "Pentagon", "Rectangle", "Octagon"],
                "answer": "d",
                "hints": ["Count each one: triangle=3, rectangle=4, pentagon=5, octagon=?", "'Oct' means 8 — octopus has 8 arms!"],
                "xp": 80,
                "is_boss": True,
            },
        ],
    },

    "skip_counting_grove": {
        "id": "skip_counting_grove",
        "name": "The Skip Counting Grove",
        "description": "Count by 2s, 5s, and 10s",
        "level_required": 6,
        "challenges": [
            {
                "id": "scg_01",
                "title": "Count by 2s",
                "type": "quiz",
                "question": "Count by 2s: 2, 4, 6, 8, [bold yellow]__[/bold yellow], 12",
                "lesson": "Counting by 2s means skipping every other number. 2, 4, 6, 8, [bold yellow]10[/bold yellow], 12. It's like hopping over every other stone on a path!",
                "options": ["9", "11", "10", "13"],
                "answer": "c",
                "hints": ["8 + 2 = ?", "Every step you add 2 more: 8... 10!"],
                "xp": 30,
            },
            {
                "id": "scg_02",
                "title": "Count by 2s Further",
                "type": "quiz",
                "question": "Count by 2s: 12, 14, 16, [bold yellow]__[/bold yellow], 20",
                "lesson": "Keep hopping by 2s! 12, 14, 16, [bold yellow]18[/bold yellow], 20. Each hop adds two more.",
                "options": ["17", "19", "18", "21"],
                "answer": "c",
                "hints": ["16 + 2 = ?", "16... 18! Keep counting by 2s!"],
                "xp": 30,
            },
            {
                "id": "scg_03",
                "title": "Count by 5s",
                "type": "quiz",
                "question": "Count by 5s: 5, 10, 15, 20, 25, [bold yellow]__[/bold yellow]",
                "lesson": "Counting by 5s: each step jumps up by 5. 5, 10, 15, 20, 25, [bold yellow]30[/bold yellow]. You can count by 5s on one hand — five fingers!",
                "options": ["28", "31", "29", "30"],
                "answer": "d",
                "hints": ["25 + 5 = ?", "25... 26, 27, 28, 29, 30. Or just add 5!"],
                "xp": 30,
            },
            {
                "id": "scg_04",
                "title": "Count by 10s",
                "type": "quiz",
                "question": "Count by 10s: 10, 20, 30, [bold yellow]__[/bold yellow], 50",
                "lesson": "Counting by 10s is easy — just add a new tens digit each time! 10, 20, 30, [bold yellow]40[/bold yellow], 50.",
                "options": ["35", "41", "45", "40"],
                "answer": "d",
                "hints": ["30 + 10 = ?", "The tens digit goes 1, 2, 3, 4... so after 30 comes 40!"],
                "xp": 30,
            },
            {
                "id": "scg_05",
                "title": "Odd or Even?",
                "type": "quiz",
                "question": "Is the number [bold yellow]7[/bold yellow] odd or even?",
                "lesson": "Even numbers can be split into two equal groups: 2, 4, 6, 8... Odd numbers have one left over: 1, 3, 5, 7, 9. Puck says: if it's in the count-by-2s list, it's even!",
                "options": ["Even", "Odd", "Both", "Neither"],
                "answer": "b",
                "hints": ["Count by 2s: 2, 4, 6, 8... is 7 in that list?", "7 is NOT in the count-by-2s list, so it's odd!"],
                "xp": 35,
            },
            {
                "id": "scg_boss",
                "title": "Multiples of 2",
                "type": "quiz",
                "question": "Which of these numbers is a multiple of 2 (an even number)?",
                "lesson": "Multiples of 2 are the numbers you say when you count by 2s: 2, 4, 6, 8, 10... They're the same as even numbers! Every multiple of 2 can be split into two equal groups.",
                "options": ["13", "17", "16", "19"],
                "answer": "c",
                "hints": ["Count by 2s: 2, 4, 6, 8, 10, 12, 14, 16... which answer is in that list?", "16 = 2 x 8. It's in the count-by-2s family!"],
                "xp": 70,
                "is_boss": True,
            },
        ],
    },

    "measurement_meadow": {
        "id": "measurement_meadow",
        "name": "The Measurement Meadow",
        "description": "How tall, how heavy, how far?",
        "level_required": 7,
        "challenges": [
            {
                "id": "mm_01",
                "title": "Inches and Feet",
                "type": "quiz",
                "question": "A pencil is about 7 [bold yellow]inches[/bold yellow] long. A door is about 7 [bold yellow]feet[/bold yellow] tall. Which unit is bigger?",
                "lesson": "An [bold yellow]inch[/bold yellow] is a small unit — about the width of your thumb! A [bold yellow]foot[/bold yellow] is 12 inches long — much bigger. Feet measure big things; inches measure small things.",
                "options": ["inch", "foot", "They're the same", "Can't tell"],
                "answer": "b",
                "hints": ["A foot has 12 inches in it — so a foot is bigger!", "Your foot is about 1 foot long. Your thumb is about 1 inch wide."],
                "xp": 35,
            },
            {
                "id": "mm_02",
                "title": "Which Is Longer?",
                "type": "quiz",
                "question": "A worm is 3 inches long. A snake is 3 feet long. Which is longer?",
                "lesson": "3 feet is the same as 36 inches! So the snake (3 feet = 36 inches) is MUCH longer than the worm (3 inches). Always check the unit — inches or feet makes a big difference!",
                "options": ["The worm", "The snake", "They're the same length", "Can't compare"],
                "answer": "b",
                "hints": ["3 feet vs 3 inches — the unit matters! 1 foot = 12 inches.", "3 feet = 36 inches. 3 inches is much shorter!"],
                "xp": 35,
            },
            {
                "id": "mm_03",
                "title": "Pounds and Ounces",
                "type": "quiz",
                "question": "A bag of apples weighs 3 [bold yellow]pounds[/bold yellow]. A single grape weighs about 1 [bold yellow]ounce[/bold yellow]. Which is heavier?",
                "lesson": "An [bold yellow]ounce[/bold yellow] is a tiny unit of weight. A [bold yellow]pound[/bold yellow] has 16 ounces in it! So 3 pounds is MUCH heavier than 1 ounce.",
                "options": ["The grape (1 ounce)", "The apples (3 pounds)", "They weigh the same", "Can't tell"],
                "answer": "b",
                "hints": ["1 pound = 16 ounces. So 3 pounds = 48 ounces!", "3 pounds is way more than 1 ounce."],
                "xp": 35,
            },
            {
                "id": "mm_04",
                "title": "Using a Ruler",
                "type": "quiz",
                "question": "You place a crayon next to a ruler. One end is at 0. The other end points to 4. How long is the crayon?",
                "lesson": "A ruler measures length by showing numbers from 0. You put one end of the object at 0, and read where the other end lands. This crayon reaches the 4, so it's [bold yellow]4 inches[/bold yellow] long!",
                "options": ["3 inches", "5 inches", "4 inches", "2 inches"],
                "answer": "c",
                "hints": ["Start at 0. Count to where the crayon ends.", "The crayon ends at 4 — so it's 4 inches!"],
                "xp": 40,
            },
            {
                "id": "mm_05",
                "title": "Hot and Cold",
                "type": "quiz",
                "question": "Water boils at [bold yellow]212°F[/bold yellow] (very hot) and freezes at [bold yellow]32°F[/bold yellow] (very cold). A comfortable room is about 70°F. Is that hot, cold, or in between?",
                "lesson": "Temperature is measured in degrees Fahrenheit (°F) or Celsius (°C). Higher numbers mean hotter! 70°F is between freezing (32°F) and boiling (212°F) — nice and comfortable.",
                "options": ["Very hot (like boiling)", "Very cold (like freezing)", "In between — comfortable", "Exactly freezing"],
                "answer": "c",
                "hints": ["32°F = freezing. 212°F = boiling. Where does 70°F fall?", "70 is between 32 and 212 — so it's in between!"],
                "xp": 40,
            },
            {
                "id": "mm_boss",
                "title": "Which Holds More?",
                "type": "quiz",
                "question": "Puck shows two containers: a cup and a gallon jug. Which holds more water?",
                "lesson": "A [bold yellow]cup[/bold yellow] holds 8 ounces of liquid. A [bold yellow]gallon[/bold yellow] holds 128 ounces — that's 16 cups! The gallon jug holds much more. We measure liquids in cups, pints, quarts, and gallons.",
                "options": ["The cup", "The gallon jug", "They hold the same", "Can't tell"],
                "answer": "b",
                "hints": ["A gallon is a big container — like a large milk jug!", "1 gallon = 16 cups. The gallon holds way more!"],
                "xp": 70,
                "is_boss": True,
            },
        ],
    },

    "money_market": {
        "id": "money_market",
        "name": "The Money Market",
        "description": "Pennies, nickels, dimes, and quarters",
        "level_required": 8,
        "challenges": [
            {
                "id": "mk_01",
                "title": "The Penny",
                "type": "quiz",
                "question": "A [bold yellow]penny[/bold yellow] is worth how many cents?",
                "lesson": "A [bold yellow]penny[/bold yellow] is the smallest coin and worth [bold yellow]1 cent (1¢)[/bold yellow]. It's copper-colored and has Abraham Lincoln on the front. One hundred pennies make a dollar!",
                "options": ["5 cents", "10 cents", "1 cent", "25 cents"],
                "answer": "c",
                "hints": ["A penny is the smallest coin — it's worth just 1 cent!", "1 penny = 1¢"],
                "xp": 25,
            },
            {
                "id": "mk_02",
                "title": "The Nickel",
                "type": "quiz",
                "question": "A [bold yellow]nickel[/bold yellow] is worth how many cents?",
                "lesson": "A [bold yellow]nickel[/bold yellow] is worth [bold yellow]5 cents (5¢)[/bold yellow]. It's bigger than a penny but worth more. Thomas Jefferson is on the front. Five pennies equal one nickel!",
                "options": ["1 cent", "5 cents", "10 cents", "25 cents"],
                "answer": "b",
                "hints": ["A nickel is worth the same as 5 pennies!", "Nickel = 5¢"],
                "xp": 25,
            },
            {
                "id": "mk_03",
                "title": "The Dime",
                "type": "quiz",
                "question": "A [bold yellow]dime[/bold yellow] is the smallest coin, but it's worth more than a nickel. How much is a dime worth?",
                "lesson": "A [bold yellow]dime[/bold yellow] is worth [bold yellow]10 cents (10¢)[/bold yellow]. It's the tiniest coin but not the least valuable! Franklin D. Roosevelt is on the front. Two nickels or ten pennies equal one dime.",
                "options": ["5 cents", "25 cents", "1 cent", "10 cents"],
                "answer": "d",
                "hints": ["A dime is worth twice as much as a nickel!", "Dime = 10¢. It takes 10 pennies to make a dime."],
                "xp": 25,
            },
            {
                "id": "mk_04",
                "title": "The Quarter",
                "type": "quiz",
                "question": "A [bold yellow]quarter[/bold yellow] is worth 25 cents. How many quarters make a dollar (100 cents)?",
                "lesson": "A [bold yellow]quarter[/bold yellow] is worth [bold yellow]25 cents (25¢)[/bold yellow]. George Washington is on the front. Because 4 × 25 = 100, you need [bold yellow]4 quarters[/bold yellow] to make one dollar!",
                "options": ["2", "5", "4", "10"],
                "answer": "c",
                "hints": ["How many 25s go into 100? Count by 25s: 25, 50, 75, 100!", "25 + 25 + 25 + 25 = 100. That's 4 quarters!"],
                "xp": 30,
            },
            {
                "id": "mk_05",
                "title": "Counting Coins",
                "type": "quiz",
                "question": "Nell has 1 dime and 2 nickels. How many cents does she have in total?",
                "lesson": "1 dime = 10¢. 2 nickels = 5¢ + 5¢ = 10¢. Total: 10¢ + 10¢ = [bold yellow]20 cents[/bold yellow]. When counting coins, add each coin's value one at a time!",
                "options": ["12 cents", "15 cents", "20 cents", "25 cents"],
                "answer": "c",
                "hints": ["Dime = 10¢. Each nickel = 5¢. Add them all up!", "10 + 5 + 5 = ?"],
                "xp": 35,
            },
            {
                "id": "mk_boss",
                "title": "Making Change",
                "type": "quiz",
                "question": "A sticker costs [bold yellow]15 cents[/bold yellow]. Nell pays with a [bold yellow]quarter (25¢)[/bold yellow]. How much change does she get back?",
                "lesson": "Change is the money you get back when you pay more than something costs. 25¢ - 15¢ = [bold yellow]10¢[/bold yellow]. You get back 10 cents — a dime!",
                "options": ["5 cents", "15 cents", "10 cents", "20 cents"],
                "answer": "c",
                "hints": ["25¢ - 15¢ = ? Subtract to find the change!", "25 take away 15: 25... 20, 15. That's 10 steps back — 10 cents!"],
                "xp": 70,
                "is_boss": True,
            },
        ],
    },

    "time_tower": {
        "id": "time_tower",
        "name": "The Time Tower",
        "description": "Read a clock and understand time",
        "level_required": 5,
        "challenges": [
            {
                "id": "tt_01",
                "title": "Parts of a Clock",
                "type": "quiz",
                "question": "On a clock, the [bold yellow]short hand[/bold yellow] points to the...",
                "lesson": "The short hand shows the [bold yellow]hours[/bold yellow]. The long hand shows the [bold yellow]minutes[/bold yellow]. Short = hours, long = minutes!",
                "options": ["seconds", "minutes", "hours", "days"],
                "answer": "c",
                "hints": ["Short hand = short word = HOUR", "The SHORT hand points to the HOUR"],
                "xp": 35,
            },
            {
                "id": "tt_02",
                "title": "Reading O'Clock",
                "type": "quiz",
                "question": "The short hand points to [bold yellow]3[/bold yellow], and the long hand points straight up to [bold yellow]12[/bold yellow]. What time is it?",
                "lesson": "When the long hand points to 12, it's exactly the hour — called 'o'clock'. Short hand on 3 = [bold yellow]3 o'clock[/bold yellow]!",
                "options": ["12:03", "3:00", "3:12", "12:30"],
                "answer": "b",
                "hints": ["Long hand on 12 = o'clock. Short hand on 3 = what hour?", "3 o'clock = 3:00"],
                "xp": 40,
            },
            {
                "id": "tt_03",
                "title": "Half Past",
                "type": "quiz",
                "question": "When the long hand points to [bold yellow]6[/bold yellow], it's 'half past'. If the short hand is between 7 and 8, it's...",
                "lesson": "Long hand on 6 = 30 minutes = half past the hour. Short hand between 7 and 8 = [bold yellow]7:30[/bold yellow].",
                "options": ["6:07", "7:06", "7:30", "6:30"],
                "answer": "c",
                "hints": ["Long hand on 6 = 30 minutes have passed", "Short hand shows which hour we're in — between 7 and 8 means 7:30"],
                "xp": 45,
            },
            {
                "id": "tt_04",
                "title": "Days of the Week",
                "type": "quiz",
                "question": "How many days are in a week?",
                "lesson": "A week has [bold yellow]7[/bold yellow] days: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday. Mon-Fri are school days for most kids!",
                "options": ["5", "6", "8", "7"],
                "answer": "d",
                "hints": ["Count them: Sun, Mon, Tue, Wed, Thu, Fri, Sat", "7 days in a week — lucky 7!"],
                "xp": 30,
            },
            {
                "id": "tt_05",
                "title": "Months of the Year",
                "type": "quiz",
                "question": "How many months are in a year?",
                "lesson": "A year has [bold yellow]12[/bold yellow] months. January through December. Some have 30 days, some 31, and February is special with 28 (or 29 on leap years)!",
                "options": ["10", "12", "11", "13"],
                "answer": "b",
                "hints": ["Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec — count them!", "12 months in a year"],
                "xp": 35,
            },
            {
                "id": "tt_boss",
                "title": "Time Goes By",
                "type": "quiz",
                "question": "School starts at [bold yellow]8:00[/bold yellow] and ends at [bold yellow]3:00[/bold yellow]. How many hours is the school day?",
                "lesson": "From 8:00 to 3:00 — count the hours: 9, 10, 11, 12, 1, 2, 3. That's [bold yellow]7 hours[/bold yellow]!",
                "options": ["5 hours", "6 hours", "8 hours", "7 hours"],
                "answer": "d",
                "hints": ["Count from 8 to 3: 8→9→10→11→12→1→2→3 — how many steps?", "8, 9, 10, 11, 12, 1, 2, 3 — that's 7 jumps!"],
                "xp": 90,
                "is_boss": True,
            },
        ],
    },

    "shapes_and_patterns": {
        "id": "shapes_and_patterns",
        "name": "The Shapes and Patterns Garden",
        "description": "Recognize shapes and complete patterns",
        "level_required": 9,
        "challenges": [
            {
                "id": "sp_01",
                "title": "Sides of a Triangle",
                "type": "quiz",
                "question": "How many sides does a [bold yellow]triangle[/bold yellow] have?",
                "lesson": "A [bold yellow]triangle[/bold yellow] has [bold yellow]3[/bold yellow] sides — and 3 corners too! The word 'tri' means three, just like tricycle has three wheels.",
                "options": ["2", "3", "4", "5"],
                "answer": "b",
                "hints": ["Think of the shape of a slice of pizza — count the edges!", "Tri means three — TRIangle!"],
                "xp": 25,
            },
            {
                "id": "sp_02",
                "title": "Four Equal Sides",
                "type": "quiz",
                "question": "What shape has [bold yellow]4 equal sides[/bold yellow]?",
                "lesson": "A [bold yellow]square[/bold yellow] has 4 sides that are all the same length. A rectangle also has 4 sides, but its sides can be different lengths.",
                "options": ["rectangle", "oval", "square", "triangle"],
                "answer": "c",
                "hints": ["Think about the shape of a checkerboard square — all sides the same!", "A rectangle has 4 sides too, but are they all equal?"],
                "xp": 25,
            },
            {
                "id": "sp_03",
                "title": "Shape Pattern",
                "type": "quiz",
                "question": "What comes next in the pattern?\n[bold yellow]circle, square, circle, square, ___[/bold yellow]",
                "lesson": "The pattern goes: circle, square, circle, square — it repeats! So after square comes [bold yellow]circle[/bold yellow] again.",
                "options": ["triangle", "circle", "oval", "star"],
                "answer": "b",
                "hints": ["Say the pattern out loud — what comes after every square?", "Circle, square, circle, square... circle!"],
                "xp": 30,
            },
            {
                "id": "sp_04",
                "title": "Number Pattern",
                "type": "quiz",
                "question": "What comes next?\n[bold yellow]2, 4, 6, 8, ___[/bold yellow]",
                "lesson": "This is counting by 2s! Each number is 2 more than the one before: 2, 4, 6, 8, [bold yellow]10[/bold yellow].",
                "options": ["9", "10", "11", "12"],
                "answer": "b",
                "hints": ["How much bigger is each number than the one before it?", "8 + 2 = ?"],
                "xp": 30,
            },
            {
                "id": "sp_05",
                "title": "Corners of a Rectangle",
                "type": "quiz",
                "question": "How many corners does a [bold yellow]rectangle[/bold yellow] have?",
                "lesson": "A rectangle has [bold yellow]4[/bold yellow] corners — one at each place where two sides meet. Corners are also called vertices!",
                "options": ["2", "3", "4", "6"],
                "answer": "c",
                "hints": ["Corners are where two sides meet — count each meeting point!", "A rectangle is like a door — how many corners does a door have?"],
                "xp": 30,
            },
            {
                "id": "sp_boss",
                "title": "Odd Number Pattern",
                "type": "quiz",
                "question": "What comes next?\n[bold yellow]1, 3, 5, 7, ___[/bold yellow]",
                "lesson": "This is counting by odd numbers — skip every other one! 1, 3, 5, 7, [bold yellow]9[/bold yellow]. Each time you add 2!",
                "options": ["8", "9", "10", "11"],
                "answer": "b",
                "hints": ["How much bigger is each number — add that much to 7!", "7 + 2 = ?"],
                "xp": 60,
                "is_boss": True,
            },
        ],
    },

    "telling_time": {
        "id": "telling_time",
        "name": "The Clockwork Tower",
        "description": "Learn to read a clock and tell the time",
        "level_required": 10,
        "challenges": [
            {
                "id": "ct_01",
                "title": "The Big Hand and Small Hand",
                "type": "quiz",
                "question": "The big hand points to [bold yellow]12[/bold yellow] and the small hand points to [bold yellow]3[/bold yellow]. What time is it?",
                "lesson": "When the big hand points to 12 and the small hand points to 3, it's exactly [bold yellow]3:00[/bold yellow]! The small hand names the hour.",
                "options": ["12:03", "3:00", "3:12", "12:30"],
                "answer": "b",
                "hints": ["The small hand tells the hour — where is the small hand pointing?", "Small hand on 3, big hand on 12 — that's 3 o'clock!"],
                "xp": 30,
            },
            {
                "id": "ct_02",
                "title": "Both Hands on 12",
                "type": "quiz",
                "question": "Both hands point to [bold yellow]12[/bold yellow]. What time is it?",
                "lesson": "When both hands are on 12, it's [bold yellow]12:00[/bold yellow] — noon or midnight! Exactly 12 o'clock.",
                "options": ["6:00", "12:00", "12:30", "1:00"],
                "answer": "b",
                "hints": ["Both hands are on 12 — both the hour hand and the minute hand!", "12 o'clock — like lunchtime!"],
                "xp": 30,
            },
            {
                "id": "ct_03",
                "title": "What Does the Big Hand Tell Us?",
                "type": "quiz",
                "question": "What does the [bold yellow]big hand[/bold yellow] on a clock tell us?",
                "lesson": "The big hand (long hand) tells us the [bold yellow]minutes[/bold yellow]. The small hand (short hand) tells us the hour.",
                "options": ["the hour", "the minutes", "the seconds", "the day"],
                "answer": "b",
                "hints": ["There are two hands — big and small. The big one counts something smaller than hours!", "Big hand = minutes. Small hand = hours."],
                "xp": 35,
            },
            {
                "id": "ct_04",
                "title": "Half Past",
                "type": "quiz",
                "question": "It is [bold yellow]2:30[/bold yellow]. The big hand points to which number?",
                "lesson": "At 2:30, the big hand points to [bold yellow]6[/bold yellow]. When the big hand is on 6, it means 30 minutes past the hour.",
                "options": ["2", "3", "6", "12"],
                "answer": "c",
                "hints": ["30 minutes past the hour — the big hand is halfway around the clock!", "Halfway around lands on the 6 — that means 30 minutes!"],
                "xp": 35,
            },
            {
                "id": "ct_05",
                "title": "Minutes in an Hour",
                "type": "quiz",
                "question": "How many minutes are in one hour?",
                "lesson": "There are [bold yellow]60[/bold yellow] minutes in one hour. The big hand goes all the way around the clock once — that takes 60 minutes!",
                "options": ["30", "45", "60", "100"],
                "answer": "c",
                "hints": ["The big hand goes all the way around the clock — count the minutes on each number (each is 5 minutes)!", "5 + 5 + 5... all the way around = 60!"],
                "xp": 40,
            },
            {
                "id": "ct_boss",
                "title": "How Long Until School?",
                "type": "quiz",
                "question": "School starts at [bold yellow]8:00[/bold yellow]. It is [bold yellow]7:30[/bold yellow] now. How many minutes until school starts?",
                "lesson": "From 7:30 to 8:00 is [bold yellow]30 minutes[/bold yellow]. Count from 7:30 — the big hand needs to go from 6 up to 12. That's half an hour!",
                "options": ["15", "20", "30", "60"],
                "answer": "c",
                "hints": ["From 7:30, count forward until you reach 8:00 — how many minutes go by?", "7:30... 7:45... 8:00 — that's 30 minutes!"],
                "xp": 60,
                "is_boss": True,
            },
        ],
    },

    "fractions_forest": {
        "id": "fractions_forest",
        "name": "The Fractions Forest",
        "description": "Understand fractions and equal parts",
        "level_required": 11,
        "challenges": [
            {
                "id": "ff_01",
                "title": "Half an Apple",
                "type": "quiz",
                "question": "If you cut an apple into 2 equal parts and take 1, what fraction do you have?",
                "lesson": "When something is split into [bold yellow]2 equal parts[/bold yellow], each part is called [bold yellow]one half[/bold yellow], written as [bold white]1/2[/bold white]. The bottom number (2) says how many pieces total. The top number (1) says how many you have.",
                "options": ["1/3", "1/2", "1/4", "2/2"],
                "answer": "b",
                "hints": ["The apple was cut into 2 parts. You took 1 of them.", "1 out of 2 parts is written as 1/2."],
                "xp": 30,
            },
            {
                "id": "ff_02",
                "title": "The Bottom Number",
                "type": "quiz",
                "question": "What does the bottom number of a fraction tell us?",
                "lesson": "In a fraction, the [bold yellow]bottom number[/bold yellow] is called the denominator. It tells you [bold white]how many equal pieces the whole thing is cut into[/bold white]. In 1/4, the 4 means the whole was cut into 4 equal pieces.",
                "options": ["how many pieces we have", "how many pieces the whole is cut into", "the size of each piece", "how many are left"],
                "answer": "b",
                "hints": ["Think of a pizza. If it's cut into 4 slices, what does the 4 tell you?", "The bottom number counts the total number of equal pieces."],
                "xp": 30,
            },
            {
                "id": "ff_03",
                "title": "Pizza Fractions",
                "type": "quiz",
                "question": "If a pizza is cut into 4 equal slices and you eat 1, what fraction did you eat?",
                "lesson": "The pizza has [bold yellow]4 equal slices[/bold yellow] total. You ate [bold yellow]1[/bold yellow] of them. So you ate [bold white]1/4[/bold white] — one out of four — of the pizza.",
                "options": ["1/2", "2/4", "1/4", "1/3"],
                "answer": "c",
                "hints": ["4 slices total, 1 eaten — put the eaten pieces on top, the total on the bottom.", "1 out of 4 slices = 1/4"],
                "xp": 30,
            },
            {
                "id": "ff_04",
                "title": "Bigger Fraction",
                "type": "quiz",
                "question": "Which fraction is bigger: 1/2 or 1/4?",
                "lesson": "[bold yellow]1/2 is bigger than 1/4.[/bold yellow] Imagine one pizza cut in half and another cut into 4 pieces. The half-slice is much bigger than a quarter-slice! When the top number is the same, the [italic]smaller[/italic] the bottom number, the [italic]bigger[/italic] the piece.",
                "options": ["1/4", "they are equal", "1/2", "it depends"],
                "answer": "c",
                "hints": ["Imagine cutting a sandwich in half vs. cutting it into 4 pieces. Which piece is bigger?", "Half means fewer cuts — each piece is larger!"],
                "xp": 30,
            },
            {
                "id": "ff_05",
                "title": "Equal Fractions",
                "type": "quiz",
                "question": "What is 2/4 equal to?",
                "lesson": "[bold yellow]2/4 = 1/2[/bold yellow]. If a pizza has 4 slices and you eat 2, you ate half the pizza! Two out of four is the same as one out of two — both describe exactly half.",
                "options": ["1/3", "3/4", "1/2", "2/3"],
                "answer": "c",
                "hints": ["2 out of 4 — draw it! Color 2 of 4 equal boxes. What fraction of the boxes are colored?", "2 is exactly half of 4 — so 2/4 is the same as 1/2!"],
                "xp": 30,
            },
            {
                "id": "ff_boss",
                "title": "The Ribbon",
                "type": "quiz",
                "question": "A ribbon is 8 inches long. You cut it in half. How long is each piece?",
                "lesson": "Cutting something in half means dividing into [bold yellow]2 equal pieces[/bold yellow]. Half of 8 is [bold white]4[/bold white]. Each piece is 4 inches long. 4 + 4 = 8 — the pieces add back up to the whole!",
                "options": ["2 inches", "4 inches", "3 inches", "6 inches"],
                "answer": "b",
                "hints": ["'In half' means split into 2 equal pieces.", "Half of 8 = 8 ÷ 2 = ?"],
                "xp": 60,
                "is_boss": True,
            },
        ],
    },
}
