/* global React */

const MOVE_L3 = {
  stretching: {
    n: "01",
    title: "Stretching",
    label: "The Hold Map",
    accent: "useful range",
    image: "https://images.unsplash.com/photo-1506126613408-eca07ce68773?w=2400&q=80",
    lede: "Static holds, desk resets, tight hips, hamstrings, shoulders, calves, and the small stretches that help the body feel available again.",
    meta: ["20 guides", "Hips", "Hamstrings", "Desk body"],
    quote: "A stretch earns its place when it changes the next hour, not when it looks impressive.",
    top: [
      ["01", "How to stretch after a desk day.", "Hips, chest, neck, and the short reset that makes the afternoon feel less folded.", "Desk"],
      ["02", "How to stretch tight hips.", "Front-of-hip, glutes, adductors, and the holds that help without forcing range.", "Hips"],
      ["03", "How to stretch tight hamstrings.", "Back-line work, bent knees, straps, and why pulling harder is not the fix.", "Hamstrings"],
      ["04", "How long to hold a stretch.", "The simple timing range for relief, practice, and longer-term change.", "Timing"],
      ["05", "How to stretch before bed.", "Quiet holds, breathing, and the kind of routine that does not wake the room back up.", "Evening"],
    ],
    sections: [
      ["Hold what matters", "A useful stretch has a target, a position you can breathe in, and a reason to repeat it."],
      ["Do less pulling", "Most tight areas do not need a fight. They need a clear position, patient breath, and enough time to notice the change."],
      ["Match the moment", "Morning stiffness, desk tension, post-training cooldowns, and bedtime all ask for slightly different work."],
    ],
    map: {
      name: "Hold map",
      word: "UNLOCK",
      title: "The hold map",
      meta: "Seven regions\nsmall useful holds",
      rules: ["Hips", "Hamstrings", "Calves", "Chest", "Shoulders", "Neck", "Back"],
      checks: [
        ["Pick the region", "Start with the area that changes how you walk, sit, reach, or train today."],
        ["Find breath", "If the position steals your breathing, back out until the body stops arguing."],
        ["Repeat the hold", "One perfect stretch matters less than a version you can repeat tomorrow."],
      ],
      cards: [
        { h: "Desk reset", p: "Short holds for hips, chest, neck, and wrists after a long screen block.", d: ["3-8 min", "chair nearby", "no floor required"] },
        { h: "Lower-body line", p: "Hips, hamstrings, calves, and adductors when walking or squatting feels sticky.", d: ["hips", "back line", "ankles"] },
        { h: "Evening downshift", p: "Quiet positions that help the day end without turning stretching into a workout.", d: ["slow holds", "breath", "low effort"] },
      ],
    },
    tabs: [
      { id: "daily", nm: "Daily", ct: 5 },
      { id: "lower", nm: "Lower Body", ct: 5 },
      { id: "upper", nm: "Upper Body", ct: 5 },
    ],
    library: {
      daily: [
        ["01", "How to build a 10-minute stretching routine.", "A short repeatable sequence for days that do not need drama.", "Routine", "6 min"],
        ["02", "How to stretch in the morning.", "Easy positions that wake up range without turning into training.", "Morning", "4 min"],
        ["03", "How to stretch after sitting all day.", "The hips, chest, neck, and calves that usually ask first.", "Desk", "5 min"],
        ["04", "How to stretch without pain.", "Useful intensity, warning signs, and why relief should not feel like a dare.", "Safety", "5 min"],
        ["05", "How to know if stretching is helping.", "Range, comfort, repeatability, and the signs you are just chasing sensation.", "Check", "4 min"],
      ],
      lower: [
        ["06", "How to stretch hip flexors.", "A clean front-of-hip setup without dumping into the low back.", "Hips", "5 min"],
        ["07", "How to stretch glutes.", "Figure-four, pigeon-style options, and what to do when the knee complains.", "Glutes", "5 min"],
        ["08", "How to stretch calves.", "Straight-knee, bent-knee, stairs, walls, and ankle-friendly choices.", "Calves", "4 min"],
        ["09", "How to stretch adductors.", "Inner-thigh range without forcing the split you did not ask for.", "Adductors", "5 min"],
        ["10", "How to stretch quads.", "Front-thigh options for standing, side-lying, and couch positions.", "Quads", "4 min"],
      ],
      upper: [
        ["11", "How to stretch tight shoulders.", "Overhead range, chest tension, and positions that do not bully the joint.", "Shoulders", "5 min"],
        ["12", "How to stretch your chest.", "Doorways, floor options, and the difference between opening and cranking.", "Chest", "4 min"],
        ["13", "How to stretch your neck safely.", "Small positions for a sensitive area that should never be forced.", "Neck", "4 min"],
        ["14", "How to stretch your upper back.", "Reaching, rounding, rotating, and breathing into the right place.", "Upper back", "5 min"],
        ["15", "How to stretch wrists and forearms.", "Simple options for typing, lifting, yoga, and long phone days.", "Wrists", "4 min"],
      ],
    },
  },
  mobility: {
    n: "02",
    title: "Mobility",
    label: "The Joint Map",
    accent: "usable range",
    image: "https://images.unsplash.com/photo-1599901860904-17e6ed7083a0?w=2400&q=80",
    lede: "Active range for ankles, hips, shoulders, wrists, and t-spine. Mobility that shows up when you squat, reach, walk, and train.",
    meta: ["20 guides", "Joints", "Control", "Warm-up flow"],
    quote: "Mobility is range you can enter, own, and leave without the rest of the body panicking.",
    top: [
      ["01", "How to build a simple mobility routine.", "A repeatable joint sequence for days when the whole body feels locked.", "Routine"],
      ["02", "How to improve hip mobility.", "Capsules, rotation, flexion, and the work that makes lower-body training smoother.", "Hips"],
      ["03", "How to improve shoulder mobility.", "Overhead range, rotation, and the difference between moving more and cheating more.", "Shoulders"],
      ["04", "How to improve ankle mobility.", "Knee-over-toe range, calves, control, and what to test before squats.", "Ankles"],
      ["05", "How to use mobility before a workout.", "Short active prep that rehearses the session instead of stealing from it.", "Prep"],
    ],
    sections: [
      ["Make range active", "Mobility is not just getting into a position. It is controlling the path in and out."],
      ["Use the joint you mean", "The body will borrow range from somewhere. Good mobility work makes the intended joint do the intended job."],
      ["Keep it close to life", "The best drills make a real movement easier: walking, reaching, squatting, hinging, breathing."],
    ],
    map: {
      name: "Joint map",
      word: "RANGE",
      title: "The joint map",
      meta: "Five joints\none moving body",
      rules: ["Ankles", "Hips", "T-spine", "Shoulders", "Wrists"],
      checks: [
        ["Test first", "Use a simple position to see what is actually limited before adding drills."],
        ["Move slowly", "Control matters more than speed when the goal is owning range."],
        ["Retest the pattern", "A good drill should make the target movement feel clearer right away."],
      ],
      cards: [
        { h: "Morning map", p: "A joint-by-joint scan for stiff mornings and long travel days.", d: ["ankles", "hips", "spine"] },
        { h: "Lift prep", p: "Mobility that points directly at squats, hinges, presses, and rows.", d: ["pattern", "ramp", "train"] },
        { h: "Screen-day reset", p: "Wrists, shoulders, neck, and t-spine after the body has been parked.", d: ["wrists", "shoulders", "breath"] },
      ],
    },
    tabs: [
      { id: "joints", nm: "Joints", ct: 5 },
      { id: "flows", nm: "Flows", ct: 5 },
      { id: "training", nm: "Training", ct: 5 },
    ],
    library: {
      joints: [
        ["01", "How to test ankle mobility.", "A wall test, a few cues, and what the result actually means.", "Ankles", "4 min"],
        ["02", "How to test hip mobility.", "Simple checks for flexion, rotation, and the positions that matter.", "Hips", "5 min"],
        ["03", "How to test shoulder mobility.", "Overhead reach, wall checks, and where compensation usually hides.", "Shoulders", "5 min"],
        ["04", "How to move your t-spine.", "Rotation and extension drills that do not ask the low back to cover.", "Spine", "5 min"],
        ["05", "How to improve wrist mobility.", "Options for lifting, yoga, typing, and floor work.", "Wrists", "4 min"],
      ],
      flows: [
        ["06", "How to do a 5-minute mobility flow.", "A small whole-body pass for busy days.", "Short", "4 min"],
        ["07", "How to do hip circles that help.", "Slow circles, honest range, and the positions to avoid rushing.", "Hips", "4 min"],
        ["08", "How to use 90-90 hip switches.", "Rotation practice without turning the drill into a fight.", "Rotation", "5 min"],
        ["09", "How to do shoulder CARs.", "Controlled circles for shoulders that need patience, not speed.", "Shoulders", "5 min"],
        ["10", "How to mobilize before a walk.", "Ankles, hips, calves, and the minute before you leave.", "Walking", "3 min"],
      ],
      training: [
        ["11", "How to use mobility before squats.", "Ankles, hips, and bracing without a twenty-minute detour.", "Squat", "5 min"],
        ["12", "How to use mobility before overhead pressing.", "Shoulders, ribs, t-spine, and the line overhead.", "Press", "5 min"],
        ["13", "How to use mobility before running.", "Ankles, hips, and light rhythm before the first mile.", "Run", "4 min"],
        ["14", "How to use mobility on recovery days.", "Low-cost range work when training would be too much.", "Recovery", "4 min"],
        ["15", "How to stop overdoing mobility work.", "When more drills are just procrastination in better clothes.", "Restraint", "4 min"],
      ],
    },
  },
  flexibility: {
    n: "03",
    title: "Flexibility",
    label: "The Range Ladder",
    accent: "longer range",
    image: "https://images.unsplash.com/photo-1591228127791-8e2eaef098d3a?w=2400&q=80",
    lede: "Longer-term range goals, patient progressions, safe expectations, and the difference between stretching for relief and training flexibility.",
    meta: ["17 guides", "Progressions", "Range goals", "Patience"],
    quote: "Flexibility is not a pose you borrow for a photo. It is range you earn slowly enough to keep.",
    top: [
      ["01", "How to start flexibility training.", "Choose one goal, one frequency, and one version you can repeat.", "Start"],
      ["02", "How to work toward the splits.", "Progressions, props, patience, and why forcing the end range backfires.", "Splits"],
      ["03", "How to improve pancake flexibility.", "Hips, hamstrings, back position, and the slow path forward.", "Pancake"],
      ["04", "How often to train flexibility.", "Frequency, recovery, soreness, and when the body needs a quieter day.", "Frequency"],
      ["05", "How to measure flexibility progress.", "Range, comfort, control, and better ways to check than wishful thinking.", "Progress"],
    ],
    sections: [
      ["Separate relief from training", "A stretch can make today feel better. Flexibility work is the longer project."],
      ["Use props without ego", "Blocks, straps, walls, and cushions let the body practice the right position sooner."],
      ["Protect the end range", "The deepest position is not useful if you can only reach it by losing control."],
    ],
    map: {
      name: "Range ladder",
      word: "SLOW",
      title: "The range ladder",
      meta: "Goals need\npatient steps",
      rules: ["Goal", "Prop", "Hold", "Control", "Repeat"],
      checks: [
        ["Name the goal", "Splits, pancake, overhead reach, or something else. Pick the range before picking the drill."],
        ["Choose the step", "The right step feels clear, not heroic."],
        ["Stay patient", "Flexibility adapts slowly because the body is trying to keep you safe."],
      ],
      cards: [
        { h: "Splits path", p: "Front-line, back-line, and hip positions without pretending there is a shortcut.", d: ["front split", "side split", "props"] },
        { h: "Pancake path", p: "Adductors, hamstrings, pelvis, and the quiet work of sitting taller.", d: ["wide sit", "hinge", "breathe"] },
        { h: "Overhead path", p: "Shoulder and spine range for reaching without borrowing from the low back.", d: ["ribs", "lats", "shoulders"] },
      ],
    },
    tabs: [
      { id: "goals", nm: "Goals", ct: 4 },
      { id: "practice", nm: "Practice", ct: 4 },
      { id: "progress", nm: "Progress", ct: 4 },
    ],
    library: {
      goals: [
        ["01", "How to choose a flexibility goal.", "A useful target beats a vague wish to be more flexible.", "Goal", "4 min"],
        ["02", "How to use props for flexibility.", "Blocks, straps, walls, and cushions without making it complicated.", "Props", "4 min"],
        ["03", "How to train front splits safely.", "Hip flexors, hamstrings, and the slow positions that build trust.", "Splits", "5 min"],
        ["04", "How to train side splits safely.", "Adductors, stance width, and why rushing the floor is not the plan.", "Side split", "5 min"],
      ],
      practice: [
        ["05", "How to warm up for flexibility work.", "Temperature, gentle range, and why cold forcing is a bad bet.", "Warm-up", "4 min"],
        ["06", "How to breathe during deep stretches.", "Breath as a way to stay present, not as a magic trick.", "Breath", "4 min"],
        ["07", "How to use active flexibility drills.", "Lifting into range so the body learns to own it.", "Active", "5 min"],
        ["08", "How to end a flexibility session.", "Come out slowly, retest gently, and leave enough for tomorrow.", "Finish", "3 min"],
      ],
      progress: [
        ["09", "How to track flexibility without obsessing.", "Simple checks that do not turn the practice into a scoreboard.", "Track", "4 min"],
        ["10", "How to handle flexibility plateaus.", "Frequency, position quality, and when less work helps more.", "Plateau", "5 min"],
        ["11", "How to tell soreness from warning signs.", "Normal tissue work versus pain that changes the assignment.", "Safety", "4 min"],
        ["12", "How to keep flexibility after you gain it.", "A maintenance rhythm for range you do not want to lose.", "Maintain", "4 min"],
      ],
    },
  },
  yoga: {
    n: "04",
    title: "Yoga",
    label: "The Flow Shelf",
    accent: "repeatable flow",
    image: "https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?w=2400&q=80",
    lede: "Beginner flows, simple poses, breath, balance, and quiet practices that make movement and attention share the same room.",
    meta: ["20 guides", "Beginner flows", "Breath", "Balance"],
    quote: "A yoga practice can be small and still be real.",
    top: [
      ["01", "How to start yoga at home.", "A mat-sized first practice, a few words to know, and no costume change required.", "Start"],
      ["02", "How to do a beginner yoga flow.", "A plain sequence that links breath, reach, fold, and rest.", "Flow"],
      ["03", "How to use yoga for tight hips.", "Low lunges, folds, twists, and positions that stay friendly.", "Hips"],
      ["04", "How to use yoga on recovery days.", "Easy movement when a workout would be too much.", "Recovery"],
      ["05", "How to breathe during yoga.", "Simple breath cues that support the flow without making it mystical homework.", "Breath"],
    ],
    sections: [
      ["Keep the practice small", "A short flow done often beats the elaborate class you keep postponing."],
      ["Let poses connect", "Yoga feels different from stretching because positions talk to each other."],
      ["Respect the body in front of you", "Props, shorter ranges, and simpler versions are not lesser practice."],
    ],
    map: {
      name: "Flow shelf",
      word: "FLOW",
      title: "The flow shelf",
      meta: "Breath, shape\nand return",
      rules: ["Reach", "Fold", "Lunge", "Twist", "Rest"],
      checks: [
        ["Choose the tone", "Morning, recovery, strength, balance, or bedtime changes the sequence."],
        ["Link the shapes", "A flow works when one position gives the next one a reason."],
        ["End calmly", "The last minute should make the practice feel finished, not abandoned."],
      ],
      cards: [
        { h: "Morning flow", p: "Reach, fold, lunge, twist, and stand up feeling less compressed.", d: ["8 min", "low heat", "simple"] },
        { h: "Recovery flow", p: "Floor-based movement for a day when effort needs a smaller container.", d: ["hips", "spine", "breath"] },
        { h: "Balance flow", p: "Slow single-leg shapes that train attention as much as position.", d: ["feet", "eyes", "control"] },
      ],
    },
    tabs: [
      { id: "start", nm: "Start", ct: 5 },
      { id: "flows", nm: "Flows", ct: 5 },
      { id: "poses", nm: "Poses", ct: 5 },
    ],
    library: {
      start: [
        ["01", "How to choose your first yoga mat.", "Grip, thickness, space, and what not to overbuy.", "Gear", "4 min"],
        ["02", "How to learn basic yoga names.", "Enough vocabulary to follow a class without studying for one.", "Basics", "4 min"],
        ["03", "How to modify yoga poses.", "Props, knees down, shorter ranges, and better options.", "Modify", "5 min"],
        ["04", "How to practice yoga when you are stiff.", "Start where the body is instead of where the video is.", "Stiff", "5 min"],
        ["05", "How to make yoga a weekly habit.", "Tiny practices, familiar sequences, and a low-friction setup.", "Habit", "4 min"],
      ],
      flows: [
        ["06", "How to do a 10-minute morning yoga flow.", "A short sequence for waking up range and attention.", "Morning", "5 min"],
        ["07", "How to do yoga before bed.", "Quiet shapes, slower breath, and no performance energy.", "Evening", "5 min"],
        ["08", "How to use yoga after lifting.", "A gentle cooldown that does not compete with recovery.", "After training", "4 min"],
        ["09", "How to use yoga for balance.", "Feet, gaze, breath, and single-leg positions.", "Balance", "5 min"],
        ["10", "How to use yoga for a desk reset.", "Neck, shoulders, hips, and spine after a long sitting block.", "Desk", "5 min"],
      ],
      poses: [
        ["11", "How to do downward dog.", "Hands, feet, knees, and making the pose fit the body.", "Pose", "4 min"],
        ["12", "How to do child's pose.", "A rest shape that can use props and still count.", "Pose", "3 min"],
        ["13", "How to do low lunge.", "Hip flexors, front knee, back leg, and staying supported.", "Pose", "4 min"],
        ["14", "How to do cat-cow.", "Spine motion, breath, and not rushing the simple thing.", "Pose", "3 min"],
        ["15", "How to use blocks in yoga.", "Blocks as support, not evidence that you are doing it wrong.", "Props", "4 min"],
      ],
    },
  },
  walking: {
    n: "05",
    title: "Walking",
    label: "The Route Builder",
    accent: "daily miles",
    image: "https://images.unsplash.com/photo-1476480862126-209bfaa8edc8?w=2400&q=80",
    lede: "Steps, pace, incline, treadmill walks, weather, errands, and the most ordinary movement habit that still changes a week.",
    meta: ["20 guides", "Steps", "Incline", "Daily habit"],
    quote: "Walking works because it is plain enough to survive real life.",
    top: [
      ["01", "How to start a walking routine.", "A low-friction week for people who do not need a dramatic plan.", "Start"],
      ["02", "How many steps to aim for.", "A practical way to raise your floor without turning the day into math.", "Steps"],
      ["03", "How to make walking count as exercise.", "Pace, hills, time, and the knobs that make a walk do more.", "Exercise"],
      ["04", "How to use incline walking.", "Treadmill or hill, effort without pounding, and where to start.", "Incline"],
      ["05", "How to walk when the weather is bad.", "Indoor loops, treadmills, malls, layers, and backup plans.", "Weather"],
    ],
    sections: [
      ["Build the route", "The best walk is the one the day can actually hold: time, terrain, shoes, weather, and return path."],
      ["Use pace gently", "Walking can be easy, brisk, hilly, social, or quiet. The point is choosing the dose on purpose."],
      ["Let ordinary count", "Errands, commutes, phone calls, and post-dinner loops all count when they keep happening."],
    ],
    map: {
      name: "Route builder",
      word: "WALK",
      title: "The route builder",
      meta: "Time, terrain\npace and repeat",
      rules: ["Time", "Terrain", "Pace", "Weather", "Return"],
      checks: [
        ["Pick the floor", "Start with the walk you can finish on a normal day."],
        ["Add one knob", "Longer, faster, hillier, or more frequent. Not all at once."],
        ["Make it easy to begin", "Shoes by the door beats a perfect route you never take."],
      ],
      cards: [
        { h: "Ten-minute loop", p: "The smallest useful walk for mornings, breaks, or after dinner.", d: ["flat", "nearby", "repeatable"] },
        { h: "Brisk route", p: "A simple pace target when you want the walk to feel like exercise.", d: ["arms", "breath", "stride"] },
        { h: "Incline day", p: "Hills or treadmill grade for more work without turning it into running.", d: ["grade", "pace", "recovery"] },
      ],
    },
    tabs: [
      { id: "start", nm: "Start", ct: 5 },
      { id: "build", nm: "Build", ct: 5 },
      { id: "conditions", nm: "Conditions", ct: 5 },
    ],
    library: {
      start: [
        ["01", "How to choose walking shoes.", "Comfort, fit, surface, and when old shoes are the real problem.", "Shoes", "4 min"],
        ["02", "How to walk for beginners.", "A first-week plan that starts below your ambition.", "Beginner", "5 min"],
        ["03", "How to walk after meals.", "Timing, comfort, and the small loop that fits normal life.", "Meals", "4 min"],
        ["04", "How to use walking breaks at work.", "Two exits from the chair that do not require a full reset.", "Work", "4 min"],
        ["05", "How to make walking less boring.", "Routes, audio, errands, sunlight, and social walks.", "Habit", "4 min"],
      ],
      build: [
        ["06", "How to increase walking distance.", "Add minutes before ambition makes your feet vote no.", "Distance", "5 min"],
        ["07", "How to walk faster.", "Cadence, arm swing, posture, and effort without racing.", "Pace", "4 min"],
        ["08", "How to use hills for walking fitness.", "Small climbs, controlled descents, and calf-friendly progress.", "Hills", "5 min"],
        ["09", "How to use treadmill walking.", "Incline, speed, handrails, and making indoor miles honest.", "Treadmill", "5 min"],
        ["10", "How to combine walking with strength training.", "Where walks fit around hard training days.", "Weekly", "4 min"],
      ],
      conditions: [
        ["11", "How to walk in hot weather.", "Timing, shade, water, and when heat changes the plan.", "Heat", "4 min"],
        ["12", "How to walk in cold weather.", "Layers, footing, daylight, and staying comfortable enough to repeat.", "Cold", "4 min"],
        ["13", "How to walk when your feet get sore.", "Shoes, surfaces, volume, and signs to stop guessing.", "Feet", "5 min"],
        ["14", "How to walk with a stroller.", "Routes, pace, hands, weather, and the realistic version.", "Stroller", "4 min"],
        ["15", "How to build a weekend long walk.", "Time, snacks, shoes, route, and coming back with something left.", "Long walk", "5 min"],
      ],
    },
  },
  "low-impact": {
    n: "06",
    title: "Low-Impact",
    label: "The Joint-Friendly Menu",
    accent: "work without pounding",
    image: "https://images.unsplash.com/photo-1518611012118-696072aa579a?w=2400&q=80",
    lede: "Cycling, elliptical, pool work, walking, easy circuits, and conditioning choices that reduce pounding without pretending effort disappeared.",
    meta: ["20 guides", "Cycling", "Elliptical", "Pool"],
    quote: "Low-impact does not mean low-value. It means choosing the cost on purpose.",
    top: [
      ["01", "How to choose a low-impact workout.", "Match the tool to your joints, energy, goal, and the week around it.", "Choose"],
      ["02", "How to use the elliptical.", "Resistance, stride, handles, posture, and making the machine less vague.", "Elliptical"],
      ["03", "How to start indoor cycling.", "Seat setup, resistance, cadence, and a first ride that does not punish you.", "Bike"],
      ["04", "How to do low-impact intervals.", "Hard work without jumping, pounding, or turning form into confetti.", "Intervals"],
      ["05", "How to recover with low-impact cardio.", "Easy sessions that help the week without becoming another hard day.", "Recovery"],
    ],
    sections: [
      ["Choose the cost", "Every workout costs something. Low-impact asks for effort while lowering the pounding bill."],
      ["Keep the body quiet", "If a joint-friendly session becomes sloppy and frantic, it has lost the point."],
      ["Use machines well", "Ellipticals, bikes, rowers, and pools work better when setup and effort are not random."],
    ],
    map: {
      name: "Movement menu",
      word: "EASY",
      title: "The joint-friendly menu",
      meta: "Tools that work\nwithout pounding",
      rules: ["Walk", "Bike", "Elliptical", "Pool", "Circuit"],
      checks: [
        ["Pick the tool", "Choose the mode that lets you work without arguing with the same sore spot."],
        ["Set the effort", "Easy, moderate, or interval work gets chosen before the timer starts."],
        ["Leave recovery intact", "Low-impact still needs restraint if tomorrow matters."],
      ],
      cards: [
        { h: "Easy cardio", p: "A quiet session for blood flow, mood, and recovery days.", d: ["20-40 min", "easy", "steady"] },
        { h: "Machine intervals", p: "Short work blocks on bike, elliptical, rower, or incline walk.", d: ["low pound", "hard breath", "clean form"] },
        { h: "Low-impact circuit", p: "Strength-adjacent movement without jumps, sprints, or floor chaos.", d: ["step-ups", "carries", "tempo"] },
      ],
    },
    tabs: [
      { id: "machines", nm: "Machines", ct: 5 },
      { id: "circuits", nm: "Circuits", ct: 5 },
      { id: "recovery", nm: "Recovery", ct: 5 },
    ],
    library: {
      machines: [
        ["01", "How to set up an exercise bike.", "Seat height, reach, resistance, and a ride that feels less random.", "Bike", "4 min"],
        ["02", "How to use a rowing machine gently.", "Stroke order, pace, and keeping the low back out of the argument.", "Rower", "5 min"],
        ["03", "How to use an elliptical for intervals.", "Resistance, stride, and a clear hard-easy rhythm.", "Elliptical", "5 min"],
        ["04", "How to use swimming for fitness.", "Laps, water walking, rest, and entry points for non-swimmers.", "Pool", "5 min"],
        ["05", "How to choose between bike and elliptical.", "Joints, comfort, goals, and what each tool asks from you.", "Choice", "4 min"],
      ],
      circuits: [
        ["06", "How to build a low-impact circuit.", "A simple template without jumps or rushed transitions.", "Template", "5 min"],
        ["07", "How to make HIIT low-impact.", "Hard intervals without pounding, burpees, or messy landings.", "Intervals", "5 min"],
        ["08", "How to use step-ups safely.", "Height, pace, balance, and lower-body work without jumping.", "Step-ups", "4 min"],
        ["09", "How to use carries in low-impact workouts.", "Grip, trunk, breathing, and work that travels well.", "Carries", "4 min"],
        ["10", "How to train at home without jumping.", "Quiet options for apartments, knees, and late evenings.", "Home", "5 min"],
      ],
      recovery: [
        ["11", "How to use low-impact cardio after leg day.", "Easy movement when soreness is loud but still manageable.", "Leg day", "4 min"],
        ["12", "How to use low-impact workouts when tired.", "A smaller session that keeps the rhythm without pretending you are fresh.", "Tired", "4 min"],
        ["13", "How to tell if low-impact is still too much.", "Breath, pain, fatigue, and the signs to stop pushing.", "Check", "4 min"],
        ["14", "How to return to impact slowly.", "A cautious bridge from low-impact work back to running or jumping.", "Return", "5 min"],
        ["15", "How to make recovery cardio useful.", "Duration, intensity, and why easy should actually feel easy.", "Easy", "4 min"],
      ],
    },
  },
  balance: {
    n: "07",
    title: "Balance",
    label: "The Stability Stack",
    accent: "steady control",
    image: "https://images.unsplash.com/photo-1518611012118-696072aa579a?w=2400&q=80",
    lede: "Feet, ankles, hips, eyes, core, and single-leg control for steadier movement without turning fitness into a medical promise.",
    meta: ["17 guides", "Feet", "Ankles", "Single-leg"],
    quote: "Balance is the body making quiet agreements fast enough to keep you upright.",
    top: [
      ["01", "How to start balance training.", "A simple progression from supported stance to controlled single-leg work.", "Start"],
      ["02", "How to improve single-leg balance.", "Feet, hips, eyes, and the first honest twenty seconds.", "Single-leg"],
      ["03", "How to use balance work before training.", "Small drills that wake up control without tiring the session.", "Prep"],
      ["04", "How to train balance at home.", "Floor space, walls, chairs, and safe ways to make practice repeatable.", "Home"],
      ["05", "How to know when balance work is too hard.", "Wobble, control, safety, and when to make the drill simpler.", "Check"],
    ],
    sections: [
      ["Start supported", "A wall, chair, or fingertip can make the drill useful sooner."],
      ["Stack the body", "Feet, ankles, hips, trunk, and eyes all help. The drill should tell you which link is loudest."],
      ["Progress quietly", "Balance improves when the challenge rises one notch at a time."],
    ],
    map: {
      name: "Stability stack",
      word: "STILL",
      title: "The stability stack",
      meta: "Feet, hips\neyes and trunk",
      rules: ["Feet", "Ankles", "Hips", "Eyes", "Core"],
      checks: [
        ["Choose support", "Use enough support that you can practice the position instead of surviving it."],
        ["Control the wobble", "Some wobble is information. Constant panic is the wrong drill."],
        ["Add one layer", "Narrow stance, single-leg, head turn, reach, or soft surface. One change at a time."],
      ],
      cards: [
        { h: "Supported start", p: "The first balance drills with a wall or chair close enough to matter.", d: ["safe", "slow", "repeat"] },
        { h: "Single-leg line", p: "Foot, knee, hip, and trunk control when one leg owns the floor.", d: ["stance", "reach", "reset"] },
        { h: "Moving balance", p: "Step, reach, turn, and carry without losing the shape.", d: ["walk", "turn", "carry"] },
      ],
    },
    tabs: [
      { id: "start", nm: "Start", ct: 4 },
      { id: "drills", nm: "Drills", ct: 4 },
      { id: "daily", nm: "Daily", ct: 4 },
    ],
    library: {
      start: [
        ["01", "How to test your balance safely.", "A simple supported check that does not turn into a stunt.", "Test", "4 min"],
        ["02", "How to use a chair for balance practice.", "Support that helps practice without taking over.", "Support", "3 min"],
        ["03", "How to stand on one leg.", "Foot pressure, gaze, hips, and what to do with the free leg.", "Single-leg", "4 min"],
        ["04", "How to make balance drills easier.", "Wider stance, more support, shorter holds, and better practice.", "Modify", "3 min"],
      ],
      drills: [
        ["05", "How to use tandem stance.", "Heel-to-toe practice for narrow-base control.", "Stance", "4 min"],
        ["06", "How to use reaches for balance.", "Reach directions that challenge control without chaos.", "Reach", "4 min"],
        ["07", "How to use step-downs for balance.", "Slow lower-body control with a useful strength overlap.", "Step-down", "4 min"],
        ["08", "How to use carries for balance.", "Loaded walking that asks the trunk and feet to cooperate.", "Carry", "4 min"],
      ],
      daily: [
        ["09", "How to add balance work to warm-ups.", "One or two drills before training without stealing energy.", "Warm-up", "3 min"],
        ["10", "How to practice balance while brushing teeth.", "Tiny habit stacking without pretending it is the whole answer.", "Habit", "3 min"],
        ["11", "How to train balance for hiking.", "Uneven ground, steps, descents, and controlled feet.", "Hiking", "5 min"],
        ["12", "How to keep balance practice safe.", "Space, support, fatigue, and the conditions that change the plan.", "Safety", "4 min"],
      ],
    },
  },
  posture: {
    n: "08",
    title: "Posture",
    label: "The Desk Reset",
    accent: "better positions",
    image: "https://images.unsplash.com/photo-1515378791036-0648a3ef77b2?w=2400&q=80",
    lede: "Desk positions, neck and shoulder resets, upper-back work, breathing, breaks, and practical posture habits without miracle claims.",
    meta: ["17 guides", "Desk body", "Neck", "Upper back"],
    quote: "Posture is not a statue. It is a set of positions you can leave and return to.",
    top: [
      ["01", "How to reset your posture after sitting.", "Hips, chest, neck, breath, and a short break that changes the next hour.", "Desk"],
      ["02", "How to set up your desk for better posture.", "Screen height, chair, keyboard, feet, and the parts worth adjusting.", "Desk setup"],
      ["03", "How to relax tight shoulders at work.", "Small movements and positions that do not require leaving the room.", "Shoulders"],
      ["04", "How to use breathing for posture.", "Ribs, shoulders, and why a breath can change how you sit.", "Breath"],
      ["05", "How often to take posture breaks.", "A realistic rhythm for long days that keeps breaks small enough to happen.", "Breaks"],
    ],
    sections: [
      ["Move out of position", "The problem is rarely one perfect posture. It is staying in one shape too long."],
      ["Adjust what is adjustable", "Screen, chair, keyboard, feet, light, and break rhythm all matter more than scolding yourself upright."],
      ["Do not promise miracles", "This page is about comfort, awareness, and repeatable positions. Pain and symptoms change the assignment."],
    ],
    map: {
      name: "Desk reset",
      word: "RESET",
      title: "The desk reset",
      meta: "Screen days\nneed exits",
      rules: ["Eyes", "Ribs", "Hips", "Feet", "Break"],
      checks: [
        ["Change the shape", "Stand, reach, walk, breathe, or sit differently before the body starts shouting."],
        ["Set the station", "Small ergonomic changes help because they reduce the number of fights."],
        ["Keep breaks tiny", "A one-minute reset that happens is better than the ideal routine that does not."],
      ],
      cards: [
        { h: "One-minute reset", p: "A tiny desk-side sequence for neck, shoulders, ribs, and hips.", d: ["stand", "reach", "breathe"] },
        { h: "Screen setup", p: "The few desk adjustments most likely to change the day.", d: ["screen", "keyboard", "feet"] },
        { h: "Upper-back work", p: "Rows, reaches, and gentle extension for long sitting blocks.", d: ["pull", "open", "rotate"] },
      ],
    },
    tabs: [
      { id: "desk", nm: "Desk", ct: 4 },
      { id: "resets", nm: "Resets", ct: 4 },
      { id: "strength", nm: "Strength", ct: 4 },
    ],
    library: {
      desk: [
        ["01", "How to adjust screen height.", "A simple setup that keeps the neck from doing extra work.", "Screen", "3 min"],
        ["02", "How to set chair height.", "Feet, hips, knees, and making the seat fit the task.", "Chair", "4 min"],
        ["03", "How to place your keyboard and mouse.", "Shoulders, wrists, elbows, and fewer awkward reaches.", "Keyboard", "4 min"],
        ["04", "How to sit without freezing in place.", "Posture as movement, not a command to stay rigid.", "Sitting", "4 min"],
      ],
      resets: [
        ["05", "How to do a neck reset at work.", "Gentle positions and what not to force.", "Neck", "4 min"],
        ["06", "How to do a shoulder reset at your desk.", "Reaches, rolls, and small movements that stay office-friendly.", "Shoulders", "4 min"],
        ["07", "How to reset your hips after sitting.", "Stand, extend, rotate, and walk for a minute.", "Hips", "4 min"],
        ["08", "How to use breathing breaks.", "Ribs, shoulders, and a reset that starts from the breath.", "Breath", "3 min"],
      ],
      strength: [
        ["09", "How to strengthen your upper back.", "Rows, band pulls, and simple work that supports better positions.", "Upper back", "5 min"],
        ["10", "How to strengthen your glutes for sitting days.", "Low-friction lower-body work for desk-heavy weeks.", "Glutes", "5 min"],
        ["11", "How to use core work for posture.", "Trunk control without chasing perfect posture.", "Core", "5 min"],
        ["12", "How to know when posture pain needs help.", "Symptoms and persistence that should move beyond general advice.", "Safety", "4 min"],
      ],
    },
  },
  pilates: {
    n: "09",
    title: "Pilates",
    label: "The Control Mat",
    accent: "quiet strength",
    image: "https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?w=2400&q=80",
    lede: "Mat Pilates, breath, core control, glutes, spine, beginner sequences, and low-impact strength that asks for precision before volume.",
    meta: ["17 guides", "Mat work", "Core", "Control"],
    quote: "Pilates feels quiet until control becomes the hard part.",
    top: [
      ["01", "How to start mat Pilates.", "A first sequence, a few positions, and the breathing cues that matter.", "Start"],
      ["02", "How to use Pilates for core strength.", "Control, breath, trunk position, and why harder is not always better.", "Core"],
      ["03", "How to do beginner Pilates at home.", "A small mat routine that does not need equipment or a studio.", "Home"],
      ["04", "How to use Pilates for glutes.", "Bridges, side-lying work, control, and avoiding random burn for its own sake.", "Glutes"],
      ["05", "How often to do Pilates.", "Frequency, soreness, training overlap, and a rhythm that stays repeatable.", "Weekly"],
    ],
    sections: [
      ["Control before reps", "The point is not how many. The point is whether the position stays owned."],
      ["Use breath as structure", "Breath helps organize the ribs, pelvis, and trunk so the movement has somewhere to live."],
      ["Keep the mat honest", "Small exercises can be very hard when range, pace, and position are clean."],
    ],
    map: {
      name: "Control mat",
      word: "CORE",
      title: "The control mat",
      meta: "Breath, spine\nand clean reps",
      rules: ["Breath", "Ribs", "Pelvis", "Glutes", "Spine"],
      checks: [
        ["Set the body", "Ribs, pelvis, and breath decide whether the exercise is doing what it says."],
        ["Move smaller", "Smaller range often teaches more control than chasing the biggest motion."],
        ["Stop before slop", "Pilates loses the point when fatigue turns precision into guessing."],
      ],
      cards: [
        { h: "Beginner mat", p: "A short first sequence for breath, trunk, hips, and spine.", d: ["8-12 min", "mat", "slow"] },
        { h: "Core control", p: "Dead bugs, hundreds-adjacent work, and bracing without panic.", d: ["ribs", "pelvis", "breath"] },
        { h: "Glute line", p: "Bridges and side-lying work that stays precise enough to matter.", d: ["bridge", "clamshell", "kick"] },
      ],
    },
    tabs: [
      { id: "start", nm: "Start", ct: 4 },
      { id: "mat", nm: "Mat", ct: 4 },
      { id: "focus", nm: "Focus", ct: 4 },
    ],
    library: {
      start: [
        ["01", "How to choose a Pilates mat.", "Thickness, grip, space, and what equipment can wait.", "Gear", "3 min"],
        ["02", "How to breathe in Pilates.", "Breath cues that support control without making it mysterious.", "Breath", "4 min"],
        ["03", "How to set up for mat Pilates.", "Space, props, pace, and the first few positions.", "Setup", "4 min"],
        ["04", "How to modify Pilates exercises.", "Smaller ranges, bent knees, props, and better options.", "Modify", "5 min"],
      ],
      mat: [
        ["05", "How to do Pilates hundred as a beginner.", "A scaled version that keeps the neck and breath honest.", "Hundred", "5 min"],
        ["06", "How to do Pilates bridges.", "Feet, ribs, glutes, and a clean lift from the floor.", "Bridge", "4 min"],
        ["07", "How to do side-lying Pilates work.", "Hips, glutes, range, and avoiding a rushed leg swing.", "Side-lying", "5 min"],
        ["08", "How to do dead bug variations.", "Core control without turning the low back into the hinge.", "Core", "5 min"],
      ],
      focus: [
        ["09", "How to use Pilates for posture work.", "Upper back, ribs, trunk, and positions that support long sitting days.", "Posture", "5 min"],
        ["10", "How to use Pilates after lifting.", "Low-impact control on a day that does not need more load.", "Recovery", "4 min"],
        ["11", "How to progress Pilates slowly.", "Range, tempo, leverage, and the quiet ways to make it harder.", "Progress", "5 min"],
        ["12", "How to know if Pilates is too hard.", "Neck strain, breath holding, low-back takeover, and when to scale down.", "Check", "4 min"],
      ],
    },
  },
};

const movePageKey = window.MOVE_L3_PAGE || "stretching";
const MOVE_PAGE = MOVE_L3[movePageKey] || MOVE_L3.stretching;
const M_BASE = `/en/fitness/move/${movePageKey}/`;
const M_SLUG = (title) => window.howToArticleSlug(M_BASE, title);
const useMArticles = window.useHubArticles || ((slugs) => ({
  articles: slugs.map((slug) => ({ slug, status: "stub", title: null })),
  loading: false,
  error: null,
}));

function moveFallbackArticle(article, row) {
  if (article && article.status === "published") return article;
  return {
    ...(article || {}),
    status: "stub",
    title: row?.[1] || row?.h || null,
    meta_description: row?.[2] || row?.d || "",
  };
}

function MoveEmLast({ text }) {
  const words = text.split(" ");
  if (words.length < 2) return <span>{text}</span>;
  return <React.Fragment>{words.slice(0, -1).join(" ")} <span>{words.slice(-1)}</span></React.Fragment>;
}

function MoveL3Header() {
  return (
    <header className="header">
      <div className="header-inner">
        <a className="logo" href="/en/">
          How To<span className="ampersand">:</span> <span style={{fontStyle:"italic"}}>Health</span> <span className="amp-roman">&amp;</span> <span style={{fontStyle:"italic"}}>Fitness</span>
          <small>The How To Co. - Edition 08</small>
        </a>
        <nav className="nav">
          <a href="/en/">Home</a>
          <a href="/en/health/">Health</a>
          <a href="/en/fitness/" className="active">Fitness</a>
          <a href="/en/#program">This Week</a>
          <a href="/en/#contributors">Contributors</a>
        </nav>
        <div className="header-right">
          <span>Search</span>
          <span className="pill">Saved - 04</span>
        </div>
      </div>
    </header>
  );
}
window.MoveL3Header = MoveL3Header;

function MoveL3Crumb() {
  return (
    <div className="tcrumb">
      <div className="tcrumb-inner">
        <div className="tcrumb-trail">
          <a href="/en/">How To: Health &amp; Fitness</a>
          <span className="sep">/</span>
          <a href="/en/fitness/">Fitness</a>
          <span className="sep">/</span>
          <a href="/en/fitness/move/">Move</a>
          <span className="sep">/</span>
          <span className="here">{MOVE_PAGE.title}</span>
        </div>
        <div>Fitness - Move - {MOVE_PAGE.title}</div>
      </div>
    </div>
  );
}
window.MoveL3Crumb = MoveL3Crumb;

function MoveL3Hero() {
  return (
    <section className="ml3-hero">
      <div className="ml3-hero-img"><img src={MOVE_PAGE.image} alt={`${MOVE_PAGE.title} movement guide image`} /></div>
      <div className="ml3-hero-inner">
        <div>
          <div className="ml3-eye"><span className="dot" /><span>Fitness - Move - {MOVE_PAGE.label}</span></div>
          <h1><MoveEmLast text={MOVE_PAGE.title} /></h1>
          <p>{MOVE_PAGE.lede}</p>
          <div className="ml3-meta">
            {MOVE_PAGE.meta.map((item) => <span key={item}>{item}</span>)}
          </div>
        </div>
        <aside>
          <div className="num">No. {MOVE_PAGE.n}</div>
          <blockquote>{MOVE_PAGE.quote}</blockquote>
        </aside>
      </div>
    </section>
  );
}
window.MoveL3Hero = MoveL3Hero;

function MoveL3Top() {
  const slugs = React.useMemo(() => MOVE_PAGE.top.map((row) => M_SLUG(row[1])), []);
  const { articles } = useMArticles(slugs);

  return (
    <section className="ml3-top">
      <div className="frame">
        <div className="sec-head">
          <div className="num">No. 01</div>
          <h2 className="title">First useful <span className="display italic" style={{color:"var(--accent)"}}>moves.</span></h2>
          <div className="meta">Five guides<br/>to start clean</div>
        </div>
        <div className="tl3-top-grid">
          {articles.map((article, index) => (
            <FitnessArticleCard
              key={article.slug}
              article={moveFallbackArticle(article, MOVE_PAGE.top[index])}
              rank={MOVE_PAGE.top[index][0]}
              tag={MOVE_PAGE.top[index][3]}
              lead={index === 0}
              variant="train"
            />
          ))}
        </div>
      </div>
    </section>
  );
}
window.MoveL3Top = MoveL3Top;

function MoveL3Primer() {
  return (
    <section className="ml3-primer">
      <div className="frame">
        <div className="ml3-primer-grid">
          <div>
            <div className="ml3-kicker">Primer</div>
            <h2>How to think about <span>{MOVE_PAGE.accent}.</span></h2>
          </div>
          <div className="ml3-notes">
            {MOVE_PAGE.sections.map((section) => (
              <article key={section[0]}>
                <h3>{section[0]}</h3>
                <p>{section[1]}</p>
              </article>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}
window.MoveL3Primer = MoveL3Primer;

function MoveL3Map() {
  const map = MOVE_PAGE.map;
  const titleWords = map.title.split(" ");
  const titleLead = titleWords.slice(0, -1).join(" ");
  const titleAccent = titleWords.slice(-1).join(" ");
  const meta = map.meta.split("\n");

  return (
    <section className="ml3-map" id="movement-map">
      <div className="frame">
        <div className="sec-head">
          <div className="num">No. 03</div>
          <h2 className="title">{titleLead} <span className="display italic" style={{color:"var(--accent)"}}>{titleAccent}</span></h2>
          <div className="meta">{meta[0]}<br />{meta[1]}</div>
        </div>
        <div className="ml3-map-grid">
          <div className="ml3-map-board">
            <div className="ml3-kicker">{map.name}</div>
            <div className="ml3-map-word">{map.word}</div>
            <div className="ml3-map-rules">
              {map.rules.map((rule) => <span key={rule}>{rule}</span>)}
            </div>
          </div>
          <div className="ml3-map-checks">
            <div className="ml3-kicker">How to choose</div>
            {map.checks.map((item, index) => (
              <article key={item[0]} className="ml3-map-check">
                <span>{String(index + 1).padStart(2, "0")}</span>
                <div>
                  <h3>{item[0]}</h3>
                  <p>{item[1]}</p>
                </div>
              </article>
            ))}
          </div>
        </div>
        <div className="ml3-map-cards">
          {map.cards.map((card) => (
            <article key={card.h}>
              <h3>{card.h}</h3>
              <p>{card.p}</p>
              <div>
                {card.d.map((item) => <span key={item}>{item}</span>)}
              </div>
            </article>
          ))}
        </div>
      </div>
    </section>
  );
}
window.MoveL3Map = MoveL3Map;

function MoveL3Library() {
  const [tab, setTab] = React.useState(MOVE_PAGE.tabs[0].id);
  const rows = MOVE_PAGE.library[tab] || [];
  const slugs = React.useMemo(() => rows.map((row) => M_SLUG(row[1])), [tab]);
  const { articles } = useMArticles(slugs);
  const active = MOVE_PAGE.tabs.find((item) => item.id === tab) || MOVE_PAGE.tabs[0];
  const total = MOVE_PAGE.tabs.reduce((sum, item) => sum + item.ct, 0);

  return (
    <section id="library" className="wlib ml3-library">
      <div className="frame">
        <div className="sec-head">
          <div className="num">No. 04</div>
          <h2 className="title">Guide <span className="display italic" style={{color:"var(--accent)"}}>shelf.</span></h2>
          <div className="meta">{total} practical guides<br/>curated by use</div>
        </div>
        <div className="wlib-tabs" role="tablist" aria-label={`${MOVE_PAGE.title} guide sections`}>
          {MOVE_PAGE.tabs.map((item) => (
            <button key={item.id} className={`wlib-tab ${tab === item.id ? "active" : ""}`} onClick={() => setTab(item.id)} type="button">
              {item.nm}<span className="ct">{item.ct}</span>
            </button>
          ))}
        </div>
        <div className="wlib-list">
          {articles.map((article, index) => (
            <FitnessArticleCard
              key={article.slug}
              article={moveFallbackArticle(article, rows[index])}
              rank={rows[index][0]}
              tag={rows[index][3]}
              time={rows[index][4]}
              variant="library"
            />
          ))}
        </div>
        <div className="wlib-foot">
          <span>Showing <strong>{rows.length}</strong> of <strong>{total}</strong> guides in <strong>{active.nm}</strong></span>
          <span>General fitness principles</span>
        </div>
      </div>
    </section>
  );
}
window.MoveL3Library = MoveL3Library;

function MoveL3Start() {
  return (
    <section className="fstart ml3-start">
      <div className="frame">
        <div className="sec-head">
          <div className="num">No. 05</div>
          <h2 className="title">Keep exploring <span className="display italic" style={{color:"var(--accent)"}}>Move.</span></h2>
          <div className="meta">Nine ways<br/>to unlock the body</div>
        </div>
        <div className="fstart-grid">
          <a className="fstart-tile" href="/en/fitness/move/stretching/">
            <div className="s-num"><span>Stretching</span><span className="arr">-&gt;</span></div>
            <h4>Open the <span className="it">hold map.</span></h4>
            <p>Static holds, tight areas, desk resets, and useful range.</p>
          </a>
          <a className="fstart-tile" href="/en/fitness/move/walking/">
            <div className="s-num"><span>Walking</span><span className="arr">-&gt;</span></div>
            <h4>Build the <span className="it">route.</span></h4>
            <p>Steps, pace, incline, weather, and the walk that keeps happening.</p>
          </a>
          <a className="fstart-tile" href="/en/fitness/move/mobility/">
            <div className="s-num"><span>Mobility</span><span className="arr">-&gt;</span></div>
            <h4>Use the <span className="it">joint map.</span></h4>
            <p>Active range for hips, ankles, shoulders, wrists, and spine.</p>
          </a>
          <a className="fstart-tile" href="/en/fitness/move/yoga/">
            <div className="s-num"><span>Yoga</span><span className="arr">-&gt;</span></div>
            <h4>Find the <span className="it">flow.</span></h4>
            <p>Beginner sequences, breath, balance, and recovery practices.</p>
          </a>
        </div>
      </div>
    </section>
  );
}
window.MoveL3Start = MoveL3Start;

function MoveL3Footer() {
  const SharedFooter = window.HowToFooter;
  return SharedFooter ? <SharedFooter screenLabel="06 Footer" /> : null;
}
window.MoveL3Footer = MoveL3Footer;

window.MOVE_L3 = MOVE_L3;
