{"id":6141,"date":"2026-05-01T13:15:36","date_gmt":"2026-05-01T05:15:36","guid":{"rendered":"https:\/\/gooart.space\/?page_id=6141"},"modified":"2026-05-25T20:25:37","modified_gmt":"2026-05-25T12:25:37","slug":"latihan-saya","status":"publish","type":"page","link":"https:\/\/gooart.space\/ms\/my-training\/","title":{"rendered":"Latihan Saya"},"content":{"rendered":"\n<details style=\"background-color: #fafafa; border: 1px solid #eee; border-radius: 8px; padding: 12px 16px; margin-bottom: 20px;\" role=\"complementary\">\n    \n    <summary style=\"cursor: pointer; font-weight: 600; font-size: 1.05rem; color: #222; list-style: sans-serif; display: flex; align-items: center; justify-content: space-between;\">\n        <span>\u2699\ufe0f AI Vision Privacy &amp; Security Guarantee<\/span>\n        <span style=\"font-size: 0.85rem; color: #666; font-weight: normal; text-decoration: underline;\">Learn More<\/span>\n    <\/summary>\n    \n    <div style=\"margin-top: 15px; font-size: 0.95rem; line-height: 1.6; color: #444; border-top: 1px solid #eee; padding-top: 15px;\">\n        <p><strong>\ud83d\udd12 100% On-Device &amp; Privacy-First<\/strong><\/p>\n        <p style=\"font-style: italic;\">The <strong>200+ FCS Vision Engine<\/strong> operates strictly via <strong>Client-Side Edge Computing<\/strong>. Your camera feed is processed entirely inside your local browser in real-time. <strong>No video data, images, or camera streams are ever recorded, stored, or uploaded to our servers.<\/strong><\/p>\n        \n        <p style=\"margin-top: 15px;\"><strong>\ud83d\udcca Tensors Only, No Visual Footprints<\/strong><\/p>\n        <p>Our system utilizes Google MediaPipe WebAssembly to instantly convert motion into anonymized 3D landmark coordinate tensors (calculating your 30+ performance dimensions such as Velocity, Centerline Offset, and Kinetic Sequencing). Video frames are permanently discarded from local memory within milliseconds after feature extraction.<\/p>\n        \n        <p style=\"margin-top: 15px; font-weight: 500;\"><em>Train with elite bio-mechanic feedback with zero friction and absolute privacy.<\/em><\/p>\n    <\/div>\n<\/details>\n\n\n<p>\t<div class=\"gs-library-container\">\r\n\t\t<div class=\"library-filters\">\r\n\t\t\t<div class=\"filter-group search-group\" style=\"flex: 100%; min-width: 100%;\">\r\n\t\t\t\t<i class=\"ph-light ph-magnifying-glass filter-icon\"><\/i>\r\n\t\t\t\t<input type=\"text\" id=\"filter-search\" placeholder=\"Search 200+ Movements... (e.g. Jab, Sprawl)\" onkeyup=\"gsFilterExercises()\">\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"filter-group\">\r\n\t\t\t\t<i class=\"ph-light ph-bookmark filter-icon\"><\/i>\r\n\t\t\t\t<select id=\"filter-cat\" onchange=\"gsFilterExercises()\">\r\n\t\t\t\t\t<option value=\"all\">All Systems<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"strength-conditioning\">Phase 1.1: Strength &amp; Conditioning<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"footwork-movement\">Phase 1.2: Footwork &amp; Movement<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"striking-upper-body\">Phase 2.1: Striking &amp; Upper Body<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"kicking-knees\">Phase 2.2: Kicking &amp; Knees<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"defense-control-survival\">Phase 2.3: Defense, Control &amp; Survival<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"ground-movement\">Phase 2.4: Ground Movement<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"fight-iq-concepts\">Phase 3: Fight IQ &amp; Concepts<\/option>\r\n\t\t\t\t\t\t\t\t\t<\/select>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"filter-group\">\r\n\t\t\t\t<i class=\"ph-light ph-body filter-icon\"><\/i>\r\n\t\t\t\t<select id=\"filter-muscle\" onchange=\"gsFilterExercises()\">\r\n\t\t\t\t\t<option value=\"all\">All Muscles<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"full-body-integrated\">Full Body\/Integrated<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"lower-explosive\">Lower Explosive<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"lower-stabilizer\">Lower Stabilizer<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"rotational-core\">Rotational Core<\/option>\r\n\t\t\t\t\t\t\t\t\t<\/select>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"filter-group\">\r\n\t\t\t\t<i class=\"ph-light ph-barbell filter-icon\"><\/i>\r\n\t\t\t\t<select id=\"filter-eq\" onchange=\"gsFilterExercises()\">\r\n\t\t\t\t\t<option value=\"all\">All Equipment<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"agility-ladder\">Agility Ladder<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"bodyweight\">Bodyweight<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"dumbbell\">Dumbbell<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"flat-bench\">Flat Bench<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"kettlebell\">Kettlebell<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"medicine-ball\">Medicine Ball<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"skipping-rope\">Skipping Rope<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"speed-training-ball\">Speed Training Ball<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"wall\">Wall<\/option>\r\n\t\t\t\t\t\t\t\t\t\t<option value=\"yoga-exercise-mat\">Yoga\/Exercise Mat<\/option>\r\n\t\t\t\t\t\t\t\t\t<\/select>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"filter-group\">\r\n\t\t\t\t<i class=\"ph-light ph-gauge filter-icon\"><\/i>\r\n\t\t\t\t<select id=\"filter-diff\" onchange=\"gsFilterExercises()\">\r\n\t\t\t\t\t<option value=\"all\">All Levels<\/option>\r\n\t\t\t\t\t<option value=\"beginner\">Beginner<\/option>\r\n\t\t\t\t\t<option value=\"intermediate\">Intermediate<\/option>\r\n\t\t\t\t\t<option value=\"advanced\">Advanced<\/option>\r\n\t\t\t\t<\/select>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"filter-group\">\r\n\t\t\t\t<i class=\"ph-light ph-suitcase-simple filter-icon\"><\/i>\r\n\t\t\t\t<select id=\"filter-port\" onchange=\"gsFilterExercises()\">\r\n\t\t\t\t\t<option value=\"all\">All Portability<\/option>\r\n\t\t\t\t\t<option value=\"zero_kit\">Zero-Kit<\/option>\r\n\t\t\t\t\t<option value=\"pocket\">Pocket<\/option>\r\n\t\t\t\t\t<option value=\"portable_load\">Portable Load<\/option>\r\n\t\t\t\t\t<option value=\"venue_fixed\">Venue-Fixed<\/option>\r\n\t\t\t\t<\/select>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div class=\"library-grid\" id=\"gs-exercise-grid\">\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"full-body-integrated rotational-core\"\r\n\t\t\t\tdata-eq=\"bodyweight\"\r\n\t\t\t\tdata-alias=\"shadowboxingworkout\"\r\n\t\t\t\tdata-slug=\"shadowboxing-workout\"\r\n\t\t\t\tdata-diff=\"beginner\"\r\n\t\t\t\tdata-port=\"zero_kit\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6196, 'shadowboxing-workout', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Shadowboxing Workout<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-diff-beginner\">Beginner<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span>Full Body\/Integrated<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"bodyweight\"\r\n\t\t\t\tdata-alias=\"shadowkickboxing\"\r\n\t\t\t\tdata-slug=\"shadow-kickboxing\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6549, 'shadow-kickboxing', false)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Shadow Kickboxing<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"agility-ladder\"\r\n\t\t\t\tdata-alias=\"ickeyshuffle\"\r\n\t\t\t\tdata-slug=\"ickey-shuffle\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6181, 'ickey-shuffle', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Ickey Shuffle<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Agility Ladder<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"skipping-rope\"\r\n\t\t\t\tdata-alias=\"doubleunders\"\r\n\t\t\t\tdata-slug=\"double-unders\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6186, 'double-unders', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Double Unders<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Skipping Rope<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"lower-explosive lower-stabilizer\"\r\n\t\t\t\tdata-eq=\"bodyweight\"\r\n\t\t\t\tdata-alias=\"anklepogojumps\"\r\n\t\t\t\tdata-slug=\"ankle-pogo-jumps\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6551, 'ankle-pogo-jumps', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Ankle Pogo Jumps<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span>Lower Explosive<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"full-body-integrated\"\r\n\t\t\t\tdata-eq=\"yoga-exercise-mat\"\r\n\t\t\t\tdata-alias=\"worldsgreateststretch\"\r\n\t\t\t\tdata-slug=\"worlds-greatest-stretch\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6560, 'worlds-greatest-stretch', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>World&#039;s Greatest Stretch<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span>Full Body\/Integrated<\/span><span class=\"tag-eq\">Yoga\/Exercise Mat<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"bodyweight\"\r\n\t\t\t\tdata-alias=\"singlelegstand\"\r\n\t\t\t\tdata-slug=\"single-leg-stand\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6194, 'single-leg-stand', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Single Leg Stand<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"yoga-exercise-mat\"\r\n\t\t\t\tdata-alias=\"deadbug\"\r\n\t\t\t\tdata-slug=\"dead-bug\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6188, 'dead-bug', false)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Dead Bug<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Yoga\/Exercise Mat<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"bodyweight\"\r\n\t\t\t\tdata-alias=\"sliproll\"\r\n\t\t\t\tdata-slug=\"slip-roll\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6198, 'slip-roll', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Slip &amp; Roll<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"medicine-ball\"\r\n\t\t\t\tdata-alias=\"medicineballslam\"\r\n\t\t\t\tdata-slug=\"medicine-ball-slam\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6176, 'medicine-ball-slam', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Medicine Ball Slam<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Medicine Ball<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"kettlebell\"\r\n\t\t\t\tdata-alias=\"kettlebellswing\"\r\n\t\t\t\tdata-slug=\"kettlebell-swing\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6138, 'kettlebell-swing', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Kettlebell Swing<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Kettlebell<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"dumbbell flat-bench\"\r\n\t\t\t\tdata-alias=\"dumbbellbulgariansplitsquat\"\r\n\t\t\t\tdata-slug=\"dumbbell-bulgarian-split-squat\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6187, 'dumbbell-bulgarian-split-squat', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Dumbbell Bulgarian Split Squat<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Dumbbell<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"kettlebell\"\r\n\t\t\t\tdata-alias=\"kettlebellgobletsquat\"\r\n\t\t\t\tdata-slug=\"kettlebell-goblet-squat\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6185, 'kettlebell-goblet-squat', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Kettlebell Goblet Squat<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Kettlebell<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"bodyweight dumbbell kettlebell\"\r\n\t\t\t\tdata-alias=\"temposquats\"\r\n\t\t\t\tdata-slug=\"tempo-squats\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6195, 'tempo-squats', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Tempo Squats<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Bodyweight<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"yoga-exercise-mat\"\r\n\t\t\t\tdata-alias=\"plank\"\r\n\t\t\t\tdata-slug=\"plank\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6191, 'plank', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Plank<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Yoga\/Exercise Mat<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<a href=\"javascript:void(0)\" class=\"gs-ex-card\"\r\n\t\t\t\tdata-cat=\"strength-conditioning\"\r\n\t\t\t\tdata-muscle=\"\"\r\n\t\t\t\tdata-eq=\"wall\"\r\n\t\t\t\tdata-alias=\"wallsit\"\r\n\t\t\t\tdata-slug=\"wall-sit\"\r\n\t\t\t\tdata-diff=\"\"\r\n\t\t\t\tdata-port=\"\"\r\n\t\t\t\tonclick=\"gsOpenExerciseModal(6192, 'wall-sit', true)\">\r\n\r\n\t\t\t\t<div class=\"ex-card-icon\"><i class=\"ph-light ph-play-circle\"><\/i><\/div>\r\n\t\t\t\t<div class=\"ex-card-content\">\r\n\t\t\t\t\t<h5>Wall Sit<\/h5>\r\n\t\t\t\t\t<div class=\"ex-card-tags\">\r\n\t\t\t\t\t\t<span class=\"tag-ai\"><i class=\"ph-light ph-scan\" style=\"margin-right:2px; font-size:11px;\"><\/i>AI<\/span><span class=\"tag-cat\">Phase 1.1: Strength &amp; Conditioning<\/span><span class=\"tag-eq\">Wall<\/span>\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"ex-card-arrow\"><i class=\"ph-light ph-arrows-out-simple\"><\/i><\/div>\r\n\t\t\t<\/a>\r\n\t\t\t\t\t\t<div id=\"no-results-msg\" style=\"display:none; text-align:center; padding: 30px 0; color:#888; grid-column: 1 \/ -1;\">\r\n\t\t\t\t<i class=\"ph-light ph-warning-circle\" style=\"font-size:24px; margin-bottom:10px;\"><\/i><br>No movements found.\r\n\t\t\t<\/div>\r\n\t\t\t\t\t\t<div style=\"grid-column: 1 \/ -1; background: #fffdf5; border: 1px dashed #d35400; padding: 20px; border-radius: 12px; text-align: center; margin-top: 10px;\">\r\n\t\t\t\t<i class=\"ph-light ph-lock-key\" style=\"font-size: 28px; color: #d35400; margin-bottom: 10px;\"><\/i>\r\n\t\t\t\t<h4 style=\"margin:0 0 5px 0; color:#222; font-size:16px;\">180+ Advanced Movements Locked<\/h4>\r\n\t\t\t\t<p style=\"margin:0 0 15px 0; color:#666; font-size:13px;\">You are viewing the Core Basics. Become a premium student to unlock the full 200+ FCS digital encyclopedia.<\/p>\r\n\t\t\t\t<a href=\"https:\/\/gooart.space\/en\/booking\/\" style=\"display:inline-block; padding: 8px 16px; background: #8B0000; color: #fff; border-radius: 6px; font-weight: 700; font-size: 13px; text-decoration: none;\">Book a Session<\/a>\r\n\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t<\/div>\r\n\t<div id=\"gs-exercise-modal\" class=\"gs-modal-overlay\" style=\"display:none;\">\r\n\t\t<div class=\"gs-modal-box\">\r\n\t\t\t<div class=\"gs-modal-header\">\r\n\t\t\t\t<h4 id=\"gs-modal-title\">Loading...<\/h4>\r\n\t\t\t\t<button class=\"gs-modal-close\" onclick=\"gsCloseExerciseModal()\"><i class=\"ph-light ph-x\"><\/i><\/button>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"gs-modal-body\" id=\"gs-modal-content\">\r\n\t\t\t\t<div style=\"text-align:center; padding: 40px; color:#888;\"><i class=\"ph-light ph-spinner ph-spin\" style=\"font-size:32px;\"><\/i><\/div>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"gs-modal-footer\">\r\n\t\t\t\t<div class=\"fcs-persona-selector\" id=\"gs-persona-selector\" style=\"display:none;\">\r\n\t\t\t\t\t<div style=\"display: flex; gap: 6px; margin-bottom: 4px; align-items: stretch;\">\r\n\t\t\t\t\t\t<button class=\"persona-btn active\" id=\"btn-persona-motivation\" onclick=\"gsSetPersona('motivation', this)\" style=\"flex: 1.3; padding: 7px 4px; border: 2px solid #4CAF50; background: #e8f5e9; color: #2e7d32; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 12px; white-space: nowrap;\">\ud83d\udcaa Motivation<\/button>\r\n\t\t\t\t\t\t<button class=\"persona-btn\" id=\"btn-persona-combat\" onclick=\"gsSetPersona('combat', this)\" style=\"flex: 1.1; padding: 7px 4px; border: 2px solid #e0e0e0; background: #fff; color: #888; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 12px; white-space: nowrap;\">\ud83e\udd4a Combat<\/button>\r\n\t\t\t\t\t\t<span style=\"width: 1px; background: #e0e0e0; margin: 3px 1px; flex-shrink: 0;\"><\/span>\r\n\t\t\t\t\t\t<button class=\"coach-lang-btn\" id=\"btn-lang-en\" data-lang=\"en\" onclick=\"gsSetCoachLang('en', this)\" style=\"flex: 0.6; padding: 7px 2px; border: 2px solid #e0e0e0; background: #fff; color: #888; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 12px;\">EN<\/button>\r\n\t\t\t\t\t\t<button class=\"coach-lang-btn\" id=\"btn-lang-zh\" data-lang=\"zh\" onclick=\"gsSetCoachLang('zh', this)\" style=\"flex: 0.6; padding: 7px 2px; border: 2px solid #e0e0e0; background: #fff; color: #888; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 12px;\">\u4e2d\u6587<\/button>\r\n\t\t\t\t\t\t<button class=\"coach-lang-btn\" id=\"btn-lang-ms\" data-lang=\"ms\" onclick=\"gsSetCoachLang('ms', this)\" style=\"flex: 0.6; padding: 7px 2px; border: 2px solid #e0e0e0; background: #fff; color: #888; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; font-size: 12px;\">BM<\/button>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<button id=\"gs-btn-ai-vision\" class=\"btn-ai-vision\">Loading...<\/button>\r\n\t\t\t\t<button id=\"gs-btn-track-sync\" class=\"btn-sync-track\">\r\n\t\t\t\t\tAdd to Core 20 <i class=\"ph-light ph-arrow-down-right\"><\/i>\r\n\t\t\t\t<\/button>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n\t<style>\r\n\t\t.gs-library-container { max-width: 500px; margin: 0 auto 40px auto; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n\t\t.library-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }\r\n\t\t.filter-group { position: relative; flex: 1; min-width: 130px; }\r\n\t\t.filter-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #888; font-size: 18px; pointer-events: none; }\r\n\t\t.filter-group select, .filter-group input { width: 100%; padding: 12px 12px 12px 38px; border: 1px solid #e0e0e0; border-radius: 10px; font-size: 14px; background: #fff; outline: none; font-weight: 500; color: #333; transition: 0.2s; box-sizing: border-box; }\r\n\t\t.filter-group select { appearance: none; font-weight: 600; font-size: 13px; }\r\n\t\t.filter-group select:focus, .filter-group input:focus { border-color: #8B0000; box-shadow: 0 0 0 3px rgba(139,0,0,0.05); }\r\n\t\t.library-grid { display: flex; flex-direction: column; gap: 10px; }\r\n\t\t.gs-ex-card { \r\n\t\t\tdisplay: flex; align-items: center; background: #fff; border-radius: 12px; padding: 12px 15px; text-decoration: none; border: 1px solid #eee; transition: 0.2s; box-shadow: 0 2px 8px rgba(0,0,0,0.03); \r\n\t\t\t\/* [\u6027\u80fd\u4f18\u5316\u6838\u5fc3] \u61d2\u6e32\u67d3\u4e0e GPU \u52a0\u901f\uff0c\u652f\u6491 300+ \u5217\u8868\u6beb\u65e0\u538b\u529b *\/\r\n\t\t\tcontent-visibility: auto; \r\n\t\t\tcontain-intrinsic-size: 70px; \r\n\t\t\twill-change: transform;\r\n\t\t}\r\n\t\t.gs-ex-card:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(0,0,0,0.06); }\r\n\t\t.ex-card-icon { width: 40px; height: 40px; background: rgba(139,0,0,0.05); color: #8B0000; border-radius: 10px; display: flex; justify-content: center; align-items: center; font-size: 20px; margin-right: 15px; flex-shrink: 0; }\r\n\t\t.ex-card-content { flex-grow: 1; overflow: hidden; }\r\n\t\t.ex-card-content h5 { margin: 0 0 4px 0; font-size: 15px; color: #222; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 700; }\r\n\t\t.ex-card-tags { display: flex; gap: 6px; flex-wrap: wrap; }\r\n\t\t.ex-card-tags span { background: rgba(139,0,0,0.08); color: #8B0000; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 600; text-transform: uppercase; }\r\n\t\t.ex-card-tags span.tag-eq { background: #f0f0f0; color: #555; }\r\n\t\t.ex-card-tags span.tag-cat { background: #222; color: #fff; }\r\n\t\t.ex-card-tags span.tag-ai { background: #5e35b1; color: #ffffff !important; }\r\n\t\t.ex-card-tags span.tag-ai i { color: #ffffff !important; }\r\n\t\t.ex-card-arrow { color: #ccc; font-size: 18px; }\r\n\t\t.gs-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); z-index: 99999; display: flex; justify-content: center; align-items: flex-end; padding: 20px; backdrop-filter: blur(4px); }\r\n\t\t.gs-modal-box { background: #fff; width: 100%; max-width: 600px; max-height: 90vh; border-radius: 20px 20px 0 0; display: flex; flex-direction: column; overflow: hidden; animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1); }\r\n\t\t@keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }\r\n\t\t.gs-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 20px; border-bottom: 1px solid #f0f0f0; background: #fff; }\r\n\t\t.gs-modal-header h4 { margin: 0; font-size: 18px; color: #1a1a1a; font-weight: 800; }\r\n\t\t.gs-modal-close { background: #f5f5f5; border: none; width: 32px; height: 32px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 16px; cursor: pointer; color: #555; }\r\n\t\t.gs-modal-body { padding: 20px; overflow-y: auto; flex-grow: 1; background: #fafafa; }\r\n\t\t.gs-modal-footer { padding: 10px 16px; background: #fff; border-top: 1px solid #f0f0f0; display: flex; flex-direction: column; gap: 8px; }\r\n\t\t.btn-ai-vision { width: 100%; padding: 12px; background: #8B0000; color: #ffffff !important; border: none; border-radius: 10px; font-size: 15px; font-weight: 800; cursor: pointer; display: flex; justify-content: center; align-items: center; gap: 8px; transition: background 0.2s, transform 0.2s; box-shadow: 0 4px 15px rgba(139,0,0,0.2); }\r\n\t\t.btn-ai-vision i { color: #ffffff !important; } \r\n\t\t.btn-ai-vision:active { transform: scale(0.98); background: #660000; }\r\n\t\t.btn-ai-vision:disabled, .btn-ai-vision.disabled { background: #e0e0e0; color: #9e9e9e !important; cursor: not-allowed; transform: none; box-shadow: none; }\r\n\t\t.btn-ai-vision:disabled i, .btn-ai-vision.disabled i { color: #9e9e9e !important; } \r\n\t\t.btn-sync-track { width: 100%; padding: 9px; background: #f5f5f5; color: #1a1a1a; border: none; border-radius: 10px; font-size: 13px; font-weight: 700; cursor: pointer; display: flex; justify-content: center; align-items: center; gap: 8px; transition: background 0.2s, transform 0.2s; }\r\n\t\t.btn-sync-track:active { transform: scale(0.98); background: #e0e0e0; }\r\n\t\t.exercise-video-wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 12px; margin-bottom: 20px; background: #000; }\r\n\t\t.exercise-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }\r\n\t\t.exercise-tags-grid { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap;}\r\n\t\t.gs-badge { padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px;}\r\n\t\t.badge-eq { background: #e0e0e0; color: #333; }\r\n\t\t.badge-mu { background: rgba(139, 0, 0, 0.1); color: #8B0000; }\r\n\t\t.badge-cat { background: #222; color: #fff; } \r\n\t\t.badge-ai { background: #5e35b1; color: #ffffff !important; }\r\n\t\t.badge-ai i { color: #ffffff !important; }\r\n\t\t\/* V2.1 \u65b0\u589e\uff1aExercise Details \u5fbd\u7ae0\u4e0e\u5b89\u5168\u63d0\u793a\u6761 *\/\r\n\t\t.badge-diff-beginner { background: #e8f5e9; color: #1b5e20; border: 1px solid #a5d6a7; }\r\n\t\t.badge-diff-intermediate { background: #fff8e1; color: #b26a00; border: 1px solid #ffe082; }\r\n\t\t.badge-diff-advanced { background: #fdecea; color: #8B0000; border: 1px solid #f5c6cb; }\r\n\t\t.badge-phase { background: #e3f2fd; color: #0d47a1; border: 1px solid #bbdefb; }\r\n\t\t.badge-setup { background: #ede7f6; color: #4527a0; border: 1px solid #d1c4e9; }\r\n\t\t.badge-port { background: #f1f8e9; color: #33691e; border: 1px solid #c5e1a5; }\r\n\t\t.supervision-box { background: #fdecea; border-left: 4px solid #8B0000; padding: 12px 15px; margin-bottom: 20px; border-radius: 0 8px 8px 0; display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #8B0000; text-transform: uppercase; letter-spacing: 0.5px; }\r\n\t\t.ex-card-tags span.tag-diff-beginner { background: #e8f5e9; color: #2e7d32; }\r\n\t\t.ex-card-tags span.tag-diff-intermediate { background: #fff8e1; color: #b26a00; }\r\n\t\t.ex-card-tags span.tag-diff-advanced { background: #fdecea; color: #8B0000; }\r\n\t\t.coaching-cue-box { background: #fffdf5; border-left: 4px solid #f39c12; padding: 15px; margin-bottom: 20px; border-radius: 0 8px 8px 0; }\r\n\t\t.coaching-cue-box h5 { margin: 0 0 5px 0; color: #d35400; font-size: 13px; text-transform: uppercase;}\r\n\t\t.coaching-cue-box p { margin: 0; font-size: 14px; color: #444; font-weight: 500;}\r\n\t\t.exercise-main-content { font-size: 14px; color: #555; line-height: 1.6; }\r\n\t\t@media (max-width: 768px) {\r\n\t\t\t.gs-modal-overlay { padding-bottom: calc(85px + env(safe-area-inset-bottom)) !important; overscroll-behavior-y: none !important; touch-action: none; }\r\n\t\t\t.gs-modal-box { max-height: 86vh !important; border-radius: 20px !important; touch-action: pan-y; box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }\r\n\t\t\t.gs-modal-body { overscroll-behavior-y: contain !important; -webkit-overflow-scrolling: touch; }\r\n\t\t}\r\n\t\thtml, body { overscroll-behavior-y: none !important; }\r\n\t<\/style>\r\n\t<script>\r\n\tfunction gsFilterExercises() {\r\n\t\/\/ \u83b7\u53d6\u641c\u7d22\u6846\u5185\u5bb9\uff08\u7edf\u4e00\u8f6c\u4e3a\u5c0f\u5199\uff09\r\n\tconst sq = document.getElementById('filter-search').value.toLowerCase();\r\n\tconst sc = document.getElementById('filter-cat').value;\r\n\tconst sm = document.getElementById('filter-muscle').value;\r\n\tconst se = document.getElementById('filter-eq').value;\r\n\tconst sd = document.getElementById('filter-diff').value;\r\n\tconst sp = document.getElementById('filter-port').value;\r\n\tlet v = 0;\r\n\r\n\tdocument.querySelectorAll('.gs-ex-card').forEach(card => {\r\n\t\tconst c = card.getAttribute('data-cat') || '';\r\n\t\tconst m = card.getAttribute('data-muscle') || '';\r\n\t\tconst e = card.getAttribute('data-eq') || '';\r\n\t\tconst slug = card.getAttribute('data-slug') ? card.getAttribute('data-slug').toLowerCase() : ''; \/\/ \u83b7\u53d6 slug\r\n\t\tconst title = card.querySelector('h5').innerText.toLowerCase();\r\n\r\n\t\t\/\/ \u6838\u5fc3\u6539\u52a8\uff1a\u641c\u7d22\u5339\u914d\u903b\u8f91\r\n\t\t\/\/ \u53ea\u8981\u6807\u9898\u5305\u542b\u641c\u7d22\u8bcd\uff0c\u6216\u8005 Slug \u5305\u542b\u641c\u7d22\u8bcd\uff0c\u5373\u4e3a\u5339\u914d\r\n\t\tconst matchesSearch = (sq === '' || title.includes(sq) || slug.includes(sq));\r\n\r\n\t\tconst d = card.getAttribute('data-diff') || '';\r\n\t\tconst p = card.getAttribute('data-port') || '';\r\n\r\n\t\tif(matchesSearch && (sc === 'all' || c.includes(sc)) && (sm === 'all' || m.includes(sm)) && (se === 'all' || e.includes(se)) && (sd === 'all' || d === sd) && (sp === 'all' || p === sp)) {\r\n\t\t\tcard.style.display = 'flex'; \r\n\t\t\tv++;\r\n\t\t} else {\r\n\t\t\tcard.style.display = 'none';\r\n\t\t}\r\n\t});\r\n\tdocument.getElementById('no-results-msg').style.display = (v === 0) ? 'block' : 'none';\r\n}\r\n\tfunction gsSetPersona(mode, btnElement) {\r\n\t\tconst btns = document.querySelectorAll('.persona-btn');\r\n\t\tbtns.forEach(btn => {\r\n\t\t\tbtn.classList.remove('active');\r\n\t\t\tbtn.style.background = '#fff';\r\n\t\t\tbtn.style.color = '#888';\r\n\t\t\tbtn.style.borderColor = '#e0e0e0';\r\n\t\t});\r\n\t\tbtnElement.classList.add('active');\r\n\t\tif (mode === 'motivation') {\r\n\t\t\tbtnElement.style.background = '#e8f5e9';\r\n\t\t\tbtnElement.style.color = '#2e7d32';\r\n\t\t\tbtnElement.style.borderColor = '#4CAF50';\r\n\t\t} else {\r\n\t\t\tbtnElement.style.background = '#ffebee';\r\n\t\t\tbtnElement.style.color = '#c62828';\r\n\t\t\tbtnElement.style.borderColor = '#e53935';\r\n\t\t}\r\n\t\tif (typeof window.FCS_VisionDictionary !== 'undefined') {\r\n\t\t\twindow.FCS_VisionDictionary.coach.setMode(mode);\r\n\t\t}\r\n\t}\r\n\t\/\/ V2.2\uff1aCoach \u8bed\u8a00\u9009\u62e9\uff08\u8c03\u7528 Dict-Core V5.1 \u7684 coach.setLang\uff0clocalStorage \u8bb0\u5fc6\uff09\r\n\tfunction gsSetCoachLang(lang, btnElement) {\r\n\t\tif (typeof window.FCS_VisionDictionary !== 'undefined' && window.FCS_VisionDictionary.coach && typeof window.FCS_VisionDictionary.coach.setLang === 'function') {\r\n\t\t\twindow.FCS_VisionDictionary.coach.setLang(lang);\r\n\t\t}\r\n\t\tgsHighlightCoachLang(lang);\r\n\t}\r\n\tfunction gsHighlightCoachLang(lang) {\r\n\t\tif (!lang) {\r\n\t\t\tlang = (typeof window.FCS_VisionDictionary !== 'undefined' && window.FCS_VisionDictionary.coach && window.FCS_VisionDictionary.coach.currentLang) ? window.FCS_VisionDictionary.coach.currentLang : 'en';\r\n\t\t}\r\n\t\tdocument.querySelectorAll('.coach-lang-btn').forEach(btn => {\r\n\t\t\tconst active = btn.getAttribute('data-lang') === lang;\r\n\t\t\tbtn.style.background = active ? '#ede7f6' : '#fff';\r\n\t\t\tbtn.style.color = active ? '#4527a0' : '#888';\r\n\t\t\tbtn.style.borderColor = active ? '#5e35b1' : '#e0e0e0';\r\n\t\t});\r\n\t}\r\n\t\/\/ V2.2.1\uff1a\u4ee5 persona \u6309\u94ae\u7684\u5f53\u524d\u9ad8\u4eae\u4e3a\u51c6\uff0c\u5f3a\u5236\u540c\u6b65 Core \u7684\u6559\u7ec3\u4eba\u683c\uff08\u4fee\u590d UI \u9ed8\u8ba4 Motivation \/ Core \u9ed8\u8ba4 combat \u7684\u9519\u4f4d\uff09\r\n\tfunction gsSyncPersonaToCoach() {\r\n\t\tconst activeBtn = document.querySelector('.persona-btn.active');\r\n\t\tconst mode = (activeBtn && activeBtn.id === 'btn-persona-combat') ? 'combat' : 'motivation';\r\n\t\tif (typeof window.FCS_VisionDictionary !== 'undefined' && window.FCS_VisionDictionary.coach && typeof window.FCS_VisionDictionary.coach.setMode === 'function') {\r\n\t\t\twindow.FCS_VisionDictionary.coach.setMode(mode);\r\n\t\t}\r\n\t}\r\n\tfunction gsOpenExerciseModal(exId, exSlug, isAISupported) {\r\n\t\tdocument.getElementById('gs-exercise-modal').style.display = 'flex';\r\n\t\tdocument.body.style.overflow = 'hidden'; \r\n\t\tdocument.getElementById('gs-btn-track-sync').setAttribute('onclick', `gsSyncToTracker(${exId})`);\r\n\t\tconst aiBtn = document.getElementById('gs-btn-ai-vision');\r\n\t\tconst personaSelector = document.getElementById('gs-persona-selector');\r\n\t\tif (isAISupported) {\r\n\t\t\taiBtn.disabled = false;\r\n\t\t\taiBtn.className = 'btn-ai-vision';\r\n\t\t\taiBtn.innerHTML = 'Launch AI Vision <i class=\"ph-light ph-scan\"><\/i>';\r\n\t\t\taiBtn.setAttribute('onclick', `gsLaunchAIVision(${exId}, '${exSlug}')`);\r\n\t\t\tpersonaSelector.style.display = 'block';\r\n\t\t\tgsHighlightCoachLang(); \/\/ V2.2\uff1a\u540c\u6b65\u5f53\u524d\u6559\u7ec3\u8bed\u8a00\u9ad8\u4eae\uff08localStorage \/ \u9875\u9762\u8bed\u8a00\u81ea\u52a8\u5224\u5b9a\u7684\u7ed3\u679c\uff09\r\n\t\t\tgsSyncPersonaToCoach(); \/\/ V2.2.1\uff1a\u5f00\u5f39\u7a97\u5373\u628a UI \u9ad8\u4eae\u7684\u4eba\u683c\u540c\u6b65\u7ed9 Core\r\n\t\t} else {\r\n\t\t\taiBtn.disabled = true;\r\n\t\t\taiBtn.className = 'btn-ai-vision disabled';\r\n\t\t\taiBtn.innerHTML = 'AI Vision Not Available <i class=\"ph-light ph-prohibit\"><\/i>';\r\n\t\t\taiBtn.removeAttribute('onclick');\r\n\t\t\tpersonaSelector.style.display = 'none';\r\n\t\t}\r\n\t\tconst data = new FormData();\r\n\t\tdata.append('action', 'gs_get_exercise_modal_data');\r\n\t\tdata.append('ex_id', exId);\r\n\t\tfetch('https:\/\/gooart.space\/wp-admin\/admin-ajax.php', { method: 'POST', body: data })\r\n\t\t.then(res => res.json())\r\n\t\t.then(res => {\r\n\t\t\tif(res.success) {\r\n\t\t\t\tdocument.getElementById('gs-modal-title').innerText = res.data.title;\r\n\t\t\t\tdocument.getElementById('gs-modal-content').innerHTML = res.data.html;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tfunction gsCloseExerciseModal() {\r\n\t\tdocument.getElementById('gs-exercise-modal').style.display = 'none';\r\n\t\tdocument.body.style.overflow = 'auto';\r\n\t\tdocument.getElementById('gs-modal-title').innerText = 'Loading...';\r\n\t\tdocument.getElementById('gs-modal-content').innerHTML = '<div style=\"text-align:center; padding: 40px; color:#888;\"><i class=\"ph-light ph-spinner ph-spin\" style=\"font-size:32px;\"><\/i><\/div>';\r\n\t}\r\n\tfunction gsLaunchAIVision(exId, slug) {\r\n\t\tgsSyncPersonaToCoach(); \/\/ V2.2.1\uff1a\u542f\u52a8\u524d\u518d\u5f3a\u5236\u540c\u6b65\u4e00\u6b21\uff0c\u786e\u4fdd\u53f0\u8bcd\u4eba\u683c\u4e0e\u6309\u94ae\u4e00\u81f4\r\n\t\tgsCloseExerciseModal();\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (typeof window.FCS_VisionEngine !== 'undefined' && typeof window.FCS_VisionDictionary !== 'undefined') {\r\n\t\t\t\tconst processor = window.FCS_VisionDictionary.getProcessor(slug);\r\n\t\t\t\tif (processor) {\r\n\t\t\t\t\twindow.FCS_VisionEngine.startSession(exId, slug, processor);\r\n\t\t\t\t} else {\r\n\t\t\t\t\talert('AI Coach module for this exercise is currently in development.');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\talert('AI Engine is initializing or failed to load. Please refresh the page.');\r\n\t\t\t}\r\n\t\t}, 300);\r\n\t}\r\n\tfunction gsSyncToTracker(exId) {\r\n\t\tgsCloseExerciseModal();\r\n\t\tconst trackerSelect = document.getElementById('gs-exercise-select');\r\n\t\tconst analyticsSelect = document.getElementById('gs-dash-exercise-select');\r\n\t\tconst trackerContainer = document.querySelector('.gs-workout-logger-card');\r\n\t\tif(trackerSelect) {\r\n\t\t\ttrackerSelect.value = exId;\r\n\t\t\ttrackerSelect.dispatchEvent(new Event('change'));\r\n\t\t}\r\n\t\tif(analyticsSelect) {\r\n\t\t\tanalyticsSelect.value = exId;\r\n\t\t\tanalyticsSelect.dispatchEvent(new Event('change'));\r\n\t\t}\r\n\t\tif(trackerContainer) {\r\n\t\t\ttrackerContainer.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst weightInput = document.getElementById('gs-weight');\r\n\t\t\t\tif(weightInput) weightInput.focus();\r\n\t\t\t}, 600);\r\n\t\t} else {\r\n\t\t\talert('Please Log In or navigate to the Dashboard to add to your Core 20.');\r\n\t\t}\r\n\t}\r\n\t<\/script>\r\n\t<br \/>\n<p style=\"text-align:center;\">Please log in to track your 200+ FCS training.<\/p><br \/>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u2699\ufe0f AI Vision Privacy &amp; Security Guarantee Learn More \ud83d\udd12 100% On-Device &amp; Privacy-First The 200+ FCS Vision Engine operates strictly via Client-Side Edge Computing. Your camera feed is processed entirely inside your local browser in real-time. No video data, images, or camera streams are ever recorded, stored, or uploaded to our servers. \ud83d\udcca Tensors &#8230; <a title=\"Latihan Saya\" class=\"read-more\" href=\"https:\/\/gooart.space\/ms\/my-training\/\" aria-label=\"Read more about My Training\">Baca lagi<\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6141","page","type-page","status-publish"],"acf":[],"_links":{"self":[{"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/pages\/6141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/comments?post=6141"}],"version-history":[{"count":3,"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/pages\/6141\/revisions"}],"predecessor-version":[{"id":6556,"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/pages\/6141\/revisions\/6556"}],"wp:attachment":[{"href":"https:\/\/gooart.space\/ms\/wp-json\/wp\/v2\/media?parent=6141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}