{"product_id":"unitree-as2-w","title":"Unitree AS2 Pro","description":"\u003cdiv id=\"unitree-as2-pro-description\" class=\"as2-lp\" data-as2-root role=\"region\" aria-label=\"Unitree AS2 PRO product details\"\u003e\n  \u003csection class=\"as2-lp__hero\" aria-label=\"Unitree AS2 PRO hero\"\u003e\n    \u003ch2 class=\"as2-lp__sr-only\"\u003eUnitree AS2 PRO — Compact Size, Industrial Capability\u003c\/h2\u003e\n    \u003cimg class=\"as2-lp__hero-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2_Hero_Image.webp?v=1784662328\" alt=\"Unitree AS2 quadruped robot moving through an industrial environment\" width=\"1920\" height=\"1081\" loading=\"eager\" fetchpriority=\"high\" decoding=\"async\"\u003e\n    \u003cdiv class=\"as2-lp__hero-mobile-copy\"\u003e\n      \u003cp\u003eUnitree AS2 PRO\u003c\/p\u003e\n      \u003cp class=\"as2-lp__hero-mobile-title\"\u003eCompact Size.\u003cbr\u003eIndustrial Capability.\u003c\/p\u003e\n      \u003cspan\u003eOfficial speed range: 0–3.7 m\/s\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"as2-lp__model-band\" aria-labelledby=\"as2-pro-heading\"\u003e\n    \u003cdiv class=\"as2-lp__model-band-inner\"\u003e\n      \u003cdiv\u003e\n        \u003cp class=\"as2-lp__eyebrow\"\u003eAS2 PRO\u003c\/p\u003e\n        \u003ch2 id=\"as2-pro-heading\"\u003eBuilt for longer,\u003cbr\u003eharder missions.\u003c\/h2\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"as2-lp__model-band-copy\"\u003e\n        \u003cp\u003e\n          This listing is for the Unitree AS2 PRO configuration. Every model-specific figure below\n          follows the PRO column of Unitree’s comparison table and is kept separate from AS2 AIR\n          and AS2 EDU values.\n        \u003c\/p\u003e\n        \u003cul aria-label=\"Unitree AS2 PRO key specifications\"\u003e\n          \u003cli\u003e≈18 kg\u003c\/li\u003e\n          \u003cli\u003e≈75 N·m\u003c\/li\u003e\n          \u003cli\u003e15,000 mAh\u003c\/li\u003e\n          \u003cli\u003e0–3.7 m\/s\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"as2-lp__features\"\u003e\n    \u003carticle class=\"as2-lp__feature\" aria-labelledby=\"as2-power-heading\"\u003e\n      \u003cdiv class=\"as2-lp__feature-inner\"\u003e\n        \u003cdiv class=\"as2-lp__video-frame\"\u003e\n          \u003cvideo class=\"as2-lp__video\" data-as2-video autoplay muted loop playsinline preload=\"none\" disablepictureinpicture disableremoteplayback controlslist=\"nodownload noplaybackrate nofullscreen\" aria-label=\"Unitree AS2 PRO motor torque and payload demonstration\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/b8ad02207c664513a1b3879285a4b405.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"as2-lp__feature-copy\"\u003e\n          \u003cp class=\"as2-lp__feature-index\"\u003e01 \/ Power\u003c\/p\u003e\n          \u003ch2 id=\"as2-power-heading\"\u003ePowerful Motors,\u003cbr\u003eExceptional Payload.\u003c\/h2\u003e\n          \u003cp\u003e\n            AS2 PRO combines an approximately 18 kg body including battery with a maximum joint\n            torque of approximately 75 N·m. Official load figures list an approximately 55 kg\n            standing load and an approximately 13 kg continuous walking load.\n          \u003c\/p\u003e\n          \u003cdl class=\"as2-lp__metrics\"\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eMaximum joint torque\u003c\/dt\u003e\n\u003cdd\u003e≈75 N·m\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eWeight with battery\u003c\/dt\u003e\n\u003cdd\u003e≈18 kg\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eMaximum standing load\u003c\/dt\u003e\n\u003cdd\u003e≈55 kg\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eContinuous walking load\u003c\/dt\u003e\n\u003cdd\u003e≈13 kg\u003c\/dd\u003e\n\u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"as2-lp__feature as2-lp__feature--reverse\" aria-labelledby=\"as2-endurance-heading\"\u003e\n      \u003cdiv class=\"as2-lp__feature-inner\"\u003e\n        \u003cdiv class=\"as2-lp__video-frame\"\u003e\n          \u003cvideo class=\"as2-lp__video\" data-as2-video autoplay muted loop playsinline preload=\"none\" disablepictureinpicture disableremoteplayback controlslist=\"nodownload noplaybackrate nofullscreen\" aria-label=\"Unitree AS2 PRO long-endurance battery demonstration\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/b233b66f03094473949d6807ad955578.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"as2-lp__feature-copy\"\u003e\n          \u003cp class=\"as2-lp__feature-index\"\u003e02 \/ Endurance\u003c\/p\u003e\n          \u003ch2 id=\"as2-endurance-heading\"\u003eUltra-Long Endurance,\u003cbr\u003eExpand Boundaries.\u003c\/h2\u003e\n          \u003cp\u003e\n            AS2 PRO uses one 15,000 mAh long-range battery. Official laboratory figures list\n            approximately 4 hours and 20 km of continuous unloaded walking; with a 13 kg load,\n            the listed result is more than 2.5 hours and approximately 13 km.\n          \u003c\/p\u003e\n          \u003cdl class=\"as2-lp__metrics\"\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eBattery capacity\u003c\/dt\u003e\n\u003cdd\u003e15,000 mAh\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eUnloaded runtime\u003c\/dt\u003e\n\u003cdd\u003e≈4 h\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eUnloaded range\u003c\/dt\u003e\n\u003cdd\u003e≈20 km\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eWith 13 kg load\u003c\/dt\u003e\n\u003cdd\u003e\u0026gt;2.5 h \/ ≈13 km\u003c\/dd\u003e\n\u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"as2-lp__feature\" aria-labelledby=\"as2-weather-heading\"\u003e\n      \u003cdiv class=\"as2-lp__feature-inner\"\u003e\n        \u003cdiv class=\"as2-lp__video-frame\"\u003e\n          \u003cvideo class=\"as2-lp__video\" data-as2-video autoplay muted loop playsinline preload=\"none\" disablepictureinpicture disableremoteplayback controlslist=\"nodownload noplaybackrate nofullscreen\" aria-label=\"Unitree AS2 PRO operating in wet and demanding environments\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/3fb3c05bfdcb4aa6bed4f020547b4c07.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"as2-lp__feature-copy\"\u003e\n          \u003cp class=\"as2-lp__feature-index\"\u003e03 \/ Protection\u003c\/p\u003e\n          \u003ch2 id=\"as2-weather-heading\"\u003eAll-Weather Adaptability,\u003cbr\u003eReliable Operation.\u003c\/h2\u003e\n          \u003cp\u003e\n            Unitree lists an IP54 protection rating for AS2 PRO, together with an official\n            operating-temperature range of −20°C to 50°C for operation across more demanding\n            weather and environmental conditions.\n          \u003c\/p\u003e\n          \u003cdl class=\"as2-lp__metrics\"\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eProtection rating\u003c\/dt\u003e\n\u003cdd\u003eIP54\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eOperating temperature\u003c\/dt\u003e\n\u003cdd\u003e−20°C to 50°C\u003c\/dd\u003e\n\u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"as2-lp__feature as2-lp__feature--reverse\" aria-labelledby=\"as2-dynamics-heading\"\u003e\n      \u003cdiv class=\"as2-lp__feature-inner\"\u003e\n        \u003cdiv class=\"as2-lp__video-frame\"\u003e\n          \u003cvideo class=\"as2-lp__video\" data-as2-video autoplay muted loop playsinline preload=\"none\" disablepictureinpicture disableremoteplayback controlslist=\"nodownload noplaybackrate nofullscreen\" aria-label=\"Unitree AS2 PRO running, climbing and jumping demonstration\"\u003e\n            \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/0cc434af1c554809915390bd499b8586.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"as2-lp__feature-copy\"\u003e\n          \u003cp class=\"as2-lp__feature-index\"\u003e04 \/ Dynamics\u003c\/p\u003e\n          \u003ch2 id=\"as2-dynamics-heading\"\u003eAgile Bionic,\u003cbr\u003eExceptional Dynamics.\u003c\/h2\u003e\n          \u003cp\u003e\n            The video above is an official AS2-series demonstration and may show movements or\n            configurations beyond the AS2 PRO specification. For AS2 PRO, Unitree lists a speed\n            range of 0–3.7 m\/s, an approximately 40° slope capability and a 25 cm forward\n            stair-climbing capability.\n          \u003c\/p\u003e\n          \u003cdl class=\"as2-lp__metrics as2-lp__metrics--three\"\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eSpeed\u003c\/dt\u003e\n\u003cdd\u003e0–3.7 m\/s\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eSlope capability\u003c\/dt\u003e\n\u003cdd\u003e≈40°\u003c\/dd\u003e\n\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cdt\u003eForward stair capability\u003c\/dt\u003e\n\u003cdd\u003e25 cm\u003c\/dd\u003e\n\u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/article\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"as2-lp__pro-specs\" aria-labelledby=\"as2-pro-specs-heading\"\u003e\n    \u003cdiv class=\"as2-lp__pro-specs-inner\"\u003e\n      \u003cheader class=\"as2-lp__pro-specs-header\"\u003e\n        \u003cdiv\u003e\n          \u003cp class=\"as2-lp__eyebrow\"\u003eAS2 PRO \/ Complete Specifications\u003c\/p\u003e\n          \u003ch2 id=\"as2-pro-specs-heading\"\u003eOfficial PRO specifications.\u003cbr\u003eOne clear reference.\u003c\/h2\u003e\n        \u003c\/div\u003e\n        \u003cp\u003e\n          The values in this section apply specifically to the Unitree AS2 PRO configuration.\n          They have been separated from AS2 AIR and AS2 EDU specifications for clear model\n          identification.\n        \u003c\/p\u003e\n      \u003c\/header\u003e\n\n      \u003cdiv class=\"as2-lp__pro-spec-grid\"\u003e\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e01\u003c\/span\u003e\n            \u003ch3\u003eMechanical Parameters\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSize (standing)\u003c\/dt\u003e\n              \u003cdd\u003e720 × 378 × 457 mm\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSize (lying prone)\u003c\/dt\u003e\n              \u003cdd\u003e776 × 378 × 233 mm\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eWeight (with battery)\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 18 kg\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eMaterial\u003c\/dt\u003e\n              \u003cdd\u003eAluminum alloy + high-strength engineering plastic\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eDegrees of freedom (joint motors)\u003c\/dt\u003e\n              \u003cdd\u003e12\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eJoint bearings\u003c\/dt\u003e\n              \u003cdd\u003eIndustrial-grade crossed roller bearings (high precision, high load capacity)\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eJoint motors\u003c\/dt\u003e\n              \u003cdd\u003eLow-inertia, high-speed inner-rotor PMSM (enhanced response and heat dissipation)\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eMaximum joint torque\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 75 N·m\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eRange of motion\u003c\/dt\u003e\n              \u003cdd\u003e\n                Body: −45° to 45°\u003cbr\u003e\n                Thigh: −115° to 200°\u003cbr\u003e\n                Shank: −159° to −47°\n              \u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e02\u003c\/span\u003e\n            \u003ch3\u003eElectrical \u0026amp; Connectivity\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSupply voltage\u003c\/dt\u003e\n              \u003cdd\u003e36–50.4 V\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eJoint encoder\u003c\/dt\u003e\n              \u003cdd\u003eDual encoders\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eCooling system\u003c\/dt\u003e\n              \u003cdd\u003eLocal air cooling\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003ePower supply\u003c\/dt\u003e\n              \u003cdd\u003eLithium battery\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eWi-Fi 6 \u0026amp; Bluetooth 5.2\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSpeaker\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eMicrophone\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eFront light\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eISS 3.0 intelligent side-follow system\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eGPS\u003c\/dt\u003e\n              \u003cdd\u003eYes — disabled by default; user authorization required\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003e4G\u003c\/dt\u003e\n              \u003cdd\u003eYes — disabled by default; user authorization required\u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e03\u003c\/span\u003e\n            \u003ch3\u003ePerception \u0026amp; Interfaces\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eHD camera\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eUltra-wide-angle LiDAR\u003c\/dt\u003e\n              \u003cdd\u003eIndustrial-grade 64–128-line LiDAR\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eComputing power\u003c\/dt\u003e\n              \u003cdd\u003e8-core high-performance CPU\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eExternal interfaces\u003c\/dt\u003e\n              \u003cdd\u003e\n                1 × Gigabit Ethernet\u003cbr\u003e\n                1 × SBUS\u003cbr\u003e\n                Power output: BAT\n              \u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e04\u003c\/span\u003e\n            \u003ch3\u003ePerformance \u0026amp; Mobility\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eOperating temperature\u003c\/dt\u003e\n              \u003cdd\u003e−20°C to 50°C\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eBattery life (unloaded)\u003csup\u003e1\u003c\/sup\u003e\n\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 4 hours continuous walking; approx. 20 km\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eBattery life (loaded)\u003csup\u003e1\u003c\/sup\u003e\n\u003c\/dt\u003e\n              \u003cdd\u003eWith 13 kg load: \u0026gt;2.5 hours continuous walking; approx. 13 km\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eMaximum standing load\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 55 kg\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eContinuous walking load\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 13 kg\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSlope-walking capability\u003c\/dt\u003e\n              \u003cdd\u003eApprox. 40°\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eStair-climbing capability\u003c\/dt\u003e\n              \u003cdd\u003e25 cm\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSpeed\u003c\/dt\u003e\n              \u003cdd\u003e0–3.7 m\/s\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eProtection rating\u003c\/dt\u003e\n              \u003cdd\u003eIP54\u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e05\u003c\/span\u003e\n            \u003ch3\u003eBattery \u0026amp; Accessories\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eRemote controller\u003c\/dt\u003e\n              \u003cdd\u003eYes\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eBattery capacity\u003c\/dt\u003e\n              \u003cdd\u003eLong Range (15,000 mAh) × 1\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eCharger\u003c\/dt\u003e\n              \u003cdd\u003eFast Charging (51 V \/ 9 A)\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eCharging dock\u003c\/dt\u003e\n              \u003cdd\u003e\/\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eHigh-computing-power expansion dock\u003c\/dt\u003e\n              \u003cdd\u003e\/\u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"as2-lp__pro-spec-card\"\u003e\n          \u003cdiv class=\"as2-lp__pro-spec-card-heading\"\u003e\n            \u003cspan\u003e06\u003c\/span\u003e\n            \u003ch3\u003eSoftware \u0026amp; Support\u003c\/h3\u003e\n          \u003c\/div\u003e\n          \u003cdl class=\"as2-lp__pro-spec-list\"\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSecondary development\u003csup\u003e2\u003c\/sup\u003e\n\u003c\/dt\u003e\n              \u003cdd\u003eNot supported\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eUniStore platform\u003c\/dt\u003e\n              \u003cdd\u003eSupported\u003c\/dd\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003cdt\u003eSmart OTA upgrade\u003c\/dt\u003e\n              \u003cdd\u003eContinuous upgrades\u003c\/dd\u003e\n            \u003c\/div\u003e\n          \u003c\/dl\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"as2-lp__pro-spec-notes\"\u003e\n        \u003cp\u003e\n          \u003csup\u003e1\u003c\/sup\u003e The above data were obtained under laboratory conditions. Actual\n          performance may vary based on usage conditions.\n        \u003c\/p\u003e\n        \u003cp\u003e\n          \u003csup\u003e2\u003c\/sup\u003e For detailed functions, please refer to the Secondary Development Manual.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"as2-lp__series-reference\" aria-labelledby=\"as2-series-reference-heading\"\u003e\n    \u003cp class=\"as2-lp__eyebrow\"\u003eOfficial AS2 Series Reference\u003c\/p\u003e\n    \u003ch2 id=\"as2-series-reference-heading\"\u003eRead the PRO column for this product.\u003c\/h2\u003e\n    \u003cp\u003e\n      The gallery below contains AS2-series material. Images that mention developer interfaces,\n      90 N·m, speeds above 3.7 m\/s, a 65 kg standing load, a 15 kg walking load, a 15 kg loaded\n      endurance test, a charging dock or Orin NX refer to AS2 EDU or series-maximum references—not\n      AS2 PRO specifications. For this listing, use only the PRO figures above and the centre PRO\n      comparison column.\n    \u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"as2-lp__image-stack\" aria-label=\"Official Unitree AS2 product details and model comparison\"\u003e\n    \u003cfigure class=\"as2-lp__stack-item\"\u003e\n      \u003cfigcaption class=\"as2-lp__asset-label\"\u003e\n        AS2 PRO feature — ISS 3.0 intelligent side-follow is supported\n      \u003c\/figcaption\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image1.webp?v=1784662265\" alt=\"AS2 PRO ISS 3.0 intelligent side-follow feature reference\" width=\"1920\" height=\"1180\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/figure\u003e\n    \u003cfigure class=\"as2-lp__stack-item\"\u003e\n      \u003cfigcaption class=\"as2-lp__asset-label\"\u003e\n        AS2 EDU reference — secondary development is not supported on AS2 PRO\n      \u003c\/figcaption\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image2.webp?v=1784662266\" alt=\"AS2 EDU developer-platform reference; secondary development is not supported on AS2 PRO\" width=\"1920\" height=\"1214\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/figure\u003e\n    \u003cfigure class=\"as2-lp__stack-item\"\u003e\n      \u003cfigcaption class=\"as2-lp__asset-label\"\u003e\n        AS2 EDU \/ series-maximum reference — use the official AS2 PRO values above\n      \u003c\/figcaption\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image3.webp?v=1784662265\" alt=\"AS2 EDU and series-maximum performance reference; values shown do not all apply to AS2 PRO\" width=\"1920\" height=\"749\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/figure\u003e\n    \u003cfigure class=\"as2-lp__stack-item\"\u003e\n      \u003cfigcaption class=\"as2-lp__asset-label\"\u003e\n        AS2 PRO hardware note — 64–128-line LiDAR and 15,000 mAh are standard; Orin NX is not available\n      \u003c\/figcaption\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image4.webp?v=1784662266\" alt=\"AS2-series hardware reference; AS2 PRO uses industrial 64–128-line LiDAR and a 15,000 mAh battery without Orin NX expansion\" width=\"1920\" height=\"1247\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/figure\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image5.webp?v=1784662266\" alt=\"Unitree AS2 operating across varied environments\" width=\"1920\" height=\"1078\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2Listing_Image6.webp?v=1784662265\" alt=\"Unitree AS2 parameter section introduction\" width=\"1920\" height=\"1039\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003cdiv class=\"as2-lp__compare-scroll\" role=\"region\" aria-label=\"Scrollable AS2 AIR, PRO and EDU comparison table; PRO is this product and appears in the centre column\" tabindex=\"0\"\u003e\n      \u003cdiv class=\"as2-lp__compare-track\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2_Compare_Image1.webp?v=1784662265\" alt=\"Unitree AS2 AIR, PRO and EDU mechanical and electrical specification comparison\" width=\"1920\" height=\"1678\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2_Compare_Image2.webp?v=1784662265\" alt=\"Unitree AS2 AIR, PRO and EDU performance, accessories and feature comparison\" width=\"1920\" height=\"1958\" loading=\"lazy\" decoding=\"async\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .as2-lp {\n    --as2-black: #000000;\n    --as2-panel: #08090d;\n    --as2-panel-2: #0d0f17;\n    --as2-ink: #f5f5f7;\n    --as2-muted: #a4a7b1;\n    --as2-line: rgba(255, 255, 255, 0.11);\n    --as2-purple: #9c83ff;\n    --as2-purple-soft: #c2b5ff;\n    width: 100%;\n    max-width: 1920px;\n    margin: 0 auto;\n    overflow: hidden;\n    background: var(--as2-black);\n    color: var(--as2-ink);\n    font-family: var(--font-body-family, Inter, Helvetica, Arial, sans-serif);\n    font-size: 16px;\n    line-height: 1.55;\n    -webkit-font-smoothing: antialiased;\n    text-rendering: optimizeLegibility;\n  }\n\n  .as2-lp,\n  .as2-lp *,\n  .as2-lp *::before,\n  .as2-lp *::after {\n    box-sizing: border-box;\n  }\n\n  .as2-lp h2,\n  .as2-lp h3,\n  .as2-lp p,\n  .as2-lp dl,\n  .as2-lp dd,\n  .as2-lp ul {\n    margin: 0;\n  }\n\n  .as2-lp h2,\n  .as2-lp h3 {\n    color: inherit;\n    font-family: var(--font-heading-family, Inter, Helvetica, Arial, sans-serif);\n    font-weight: 650;\n  }\n\n  .as2-lp__sr-only {\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(0, 0, 0, 0) !important;\n    clip-path: inset(50%) !important;\n    white-space: nowrap !important;\n  }\n\n  .as2-lp__hero {\n    position: relative;\n    overflow: hidden;\n    background: #020205;\n  }\n\n  .as2-lp__hero-image {\n    display: block !important;\n    width: 100% !important;\n    max-width: none !important;\n    height: auto !important;\n    margin: 0 !important;\n    border: 0 !important;\n  }\n\n  .as2-lp__hero-mobile-copy {\n    display: none;\n  }\n\n  .as2-lp__model-band {\n    padding: clamp(54px, 7vw, 110px) clamp(20px, 5vw, 78px);\n    border-top: 1px solid var(--as2-line);\n    border-bottom: 1px solid var(--as2-line);\n    background:\n      radial-gradient(circle at 86% 0%, rgba(126, 92, 255, 0.18), transparent 33%),\n      var(--as2-black);\n  }\n\n  .as2-lp__model-band-inner {\n    display: grid;\n    width: min(100%, 1420px);\n    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);\n    gap: clamp(40px, 7vw, 120px);\n    align-items: end;\n    margin: 0 auto;\n  }\n\n  .as2-lp__eyebrow,\n  .as2-lp__feature-index {\n    color: var(--as2-purple-soft);\n    font-size: 0.73rem;\n    font-weight: 750;\n    letter-spacing: 0.17em;\n    line-height: 1.2;\n    text-transform: uppercase;\n  }\n\n  .as2-lp__model-band h2 {\n    margin-top: 13px;\n    font-size: clamp(2.35rem, 5.3vw, 5rem);\n    letter-spacing: -0.055em;\n    line-height: 0.96;\n    text-wrap: balance;\n  }\n\n  .as2-lp__model-band-copy \u003e p {\n    color: var(--as2-muted);\n    font-size: clamp(1rem, 1.25vw, 1.15rem);\n  }\n\n  .as2-lp__model-band-copy ul {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 9px;\n    margin-top: 25px;\n    padding: 0;\n    list-style: none;\n  }\n\n  .as2-lp__model-band-copy li {\n    padding: 8px 13px;\n    border: 1px solid rgba(156, 131, 255, 0.34);\n    border-radius: 999px;\n    background: rgba(156, 131, 255, 0.08);\n    color: #e2dcff;\n    font-size: 0.72rem;\n    font-weight: 750;\n    letter-spacing: 0.1em;\n  }\n\n  .as2-lp__features {\n    background: var(--as2-black);\n  }\n\n  .as2-lp__feature {\n    padding: clamp(54px, 7vw, 108px) clamp(18px, 4.4vw, 70px);\n    border-bottom: 1px solid var(--as2-line);\n    background:\n      radial-gradient(circle at 12% 50%, rgba(91, 65, 202, 0.09), transparent 30%),\n      var(--as2-black);\n  }\n\n  .as2-lp__feature--reverse {\n    background:\n      radial-gradient(circle at 88% 50%, rgba(91, 65, 202, 0.09), transparent 30%),\n      var(--as2-black);\n  }\n\n  .as2-lp__feature-inner {\n    display: grid;\n    width: min(100%, 1480px);\n    grid-template-columns: minmax(0, 1.14fr) minmax(350px, 0.86fr);\n    gap: clamp(34px, 6vw, 104px);\n    align-items: center;\n    margin: 0 auto;\n  }\n\n  .as2-lp__feature--reverse .as2-lp__video-frame {\n    order: 2;\n  }\n\n  .as2-lp__feature--reverse .as2-lp__feature-copy {\n    order: 1;\n  }\n\n  .as2-lp__video-frame {\n    position: relative;\n    overflow: hidden;\n    border-radius: 20px;\n    background: #050608;\n    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.4);\n  }\n\n  .as2-lp__video-frame::after {\n    position: absolute;\n    inset: 0;\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    border-radius: inherit;\n    content: \"\";\n    pointer-events: none;\n  }\n\n  .as2-lp__video {\n    display: block !important;\n    width: 100% !important;\n    max-width: none !important;\n    height: auto !important;\n    aspect-ratio: 16 \/ 9;\n    margin: 0 !important;\n    border: 0 !important;\n    background: #000;\n    object-fit: cover;\n    pointer-events: none;\n  }\n\n  .as2-lp__feature-copy {\n    min-width: 0;\n  }\n\n  .as2-lp__feature-copy h2 {\n    margin-top: 15px;\n    font-size: clamp(2.3rem, 4.6vw, 4.7rem);\n    letter-spacing: -0.058em;\n    line-height: 0.96;\n    text-wrap: balance;\n  }\n\n  .as2-lp__feature-copy \u003e p:not(.as2-lp__feature-index) {\n    margin-top: 24px;\n    color: var(--as2-muted);\n    font-size: clamp(0.98rem, 1.2vw, 1.12rem);\n  }\n\n  .as2-lp__metrics {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 1px;\n    margin-top: 34px !important;\n    overflow: hidden;\n    border: 1px solid var(--as2-line);\n    border-radius: 16px;\n    background: var(--as2-line);\n  }\n\n  .as2-lp__metrics--three {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .as2-lp__metrics \u003e div {\n    min-width: 0;\n    padding: 16px 15px 17px;\n    background: rgba(12, 13, 19, 0.96);\n  }\n\n  .as2-lp__metrics dt {\n    color: #777b87;\n    font-size: 0.66rem;\n    font-weight: 700;\n    letter-spacing: 0.1em;\n    line-height: 1.25;\n    text-transform: uppercase;\n  }\n\n  .as2-lp__metrics dd {\n    margin-top: 6px;\n    color: #f1efff;\n    font-size: clamp(0.88rem, 1.1vw, 1.02rem);\n    font-weight: 680;\n    line-height: 1.25;\n  }\n\n  .as2-lp__pro-specs {\n    padding: clamp(58px, 8vw, 118px) clamp(18px, 5vw, 78px);\n    border-bottom: 1px solid var(--as2-line);\n    background:\n      radial-gradient(circle at 10% 0%, rgba(126, 92, 255, 0.18), transparent 29%),\n      radial-gradient(circle at 92% 55%, rgba(81, 53, 186, 0.12), transparent 31%),\n      #050509;\n  }\n\n  .as2-lp__pro-specs-inner {\n    width: min(100%, 1420px);\n    margin: 0 auto;\n  }\n\n  .as2-lp__pro-specs-header {\n    display: grid;\n    grid-template-columns: minmax(0, 1.08fr) minmax(330px, 0.92fr);\n    gap: clamp(32px, 7vw, 112px);\n    align-items: end;\n  }\n\n  .as2-lp__pro-specs-header h2 {\n    margin-top: 15px;\n    font-size: clamp(2.5rem, 5.2vw, 5rem);\n    letter-spacing: -0.058em;\n    line-height: 0.96;\n    text-wrap: balance;\n  }\n\n  .as2-lp__pro-specs-header \u003e p {\n    color: var(--as2-muted);\n    font-size: clamp(0.98rem, 1.2vw, 1.12rem);\n  }\n\n  .as2-lp__pro-spec-grid {\n    columns: 2;\n    column-gap: 16px;\n    margin-top: clamp(42px, 6vw, 76px);\n  }\n\n  .as2-lp__pro-spec-card {\n    display: inline-block;\n    width: 100%;\n    min-width: 0;\n    margin: 0 0 16px !important;\n    overflow: hidden;\n    border: 1px solid rgba(255, 255, 255, 0.11);\n    border-radius: 19px;\n    background:\n      linear-gradient(145deg, rgba(156, 131, 255, 0.055), transparent 34%),\n      rgba(11, 12, 18, 0.97);\n    vertical-align: top;\n    -webkit-column-break-inside: avoid;\n    page-break-inside: avoid;\n    break-inside: avoid;\n  }\n\n  .as2-lp__pro-spec-card-heading {\n    display: flex;\n    gap: 14px;\n    align-items: baseline;\n    padding: clamp(20px, 2.5vw, 30px) clamp(18px, 2.8vw, 34px);\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n  }\n\n  .as2-lp__pro-spec-card-heading span {\n    flex: 0 0 auto;\n    color: var(--as2-purple);\n    font-size: 0.68rem;\n    font-weight: 800;\n    letter-spacing: 0.13em;\n  }\n\n  .as2-lp__pro-spec-card-heading h3 {\n    font-size: clamp(1.15rem, 1.75vw, 1.55rem);\n    letter-spacing: -0.025em;\n    line-height: 1.15;\n  }\n\n  .as2-lp__pro-spec-list {\n    padding: 0 clamp(18px, 2.8vw, 34px) 6px;\n  }\n\n  .as2-lp__pro-spec-list \u003e div {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(170px, 47%);\n    gap: clamp(16px, 2vw, 30px);\n    align-items: start;\n    padding: 15px 0;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.075);\n  }\n\n  .as2-lp__pro-spec-list \u003e div:last-child {\n    border-bottom: 0;\n  }\n\n  .as2-lp__pro-spec-list dt {\n    color: #878a94;\n    font-size: 0.78rem;\n    font-weight: 650;\n    letter-spacing: 0.015em;\n    line-height: 1.4;\n  }\n\n  .as2-lp__pro-spec-list dd {\n    color: #f2f0ff;\n    font-size: clamp(0.82rem, 1vw, 0.93rem);\n    font-weight: 680;\n    line-height: 1.42;\n    overflow-wrap: anywhere;\n    text-align: right;\n  }\n\n  .as2-lp__pro-spec-list sup,\n  .as2-lp__pro-spec-notes sup {\n    color: var(--as2-purple-soft);\n    font-size: 0.7em;\n    line-height: 0;\n  }\n\n  .as2-lp__pro-spec-notes {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 18px clamp(28px, 5vw, 72px);\n    margin-top: 26px;\n    padding: 23px clamp(18px, 2.8vw, 34px);\n    border: 1px solid rgba(156, 131, 255, 0.18);\n    border-radius: 15px;\n    background: rgba(156, 131, 255, 0.045);\n  }\n\n  .as2-lp__pro-spec-notes p {\n    color: #8f929d;\n    font-size: 0.72rem;\n    line-height: 1.55;\n  }\n\n  .as2-lp__series-reference {\n    padding: clamp(52px, 7vw, 96px) clamp(20px, 5vw, 78px);\n    border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n    background:\n      radial-gradient(circle at 50% 120%, rgba(112, 77, 255, 0.2), transparent 42%),\n      #000;\n    text-align: center;\n  }\n\n  .as2-lp__series-reference h2 {\n    max-width: 940px;\n    margin: 14px auto 0;\n    font-size: clamp(2.15rem, 4.5vw, 4.2rem);\n    letter-spacing: -0.055em;\n    line-height: 0.98;\n    text-wrap: balance;\n  }\n\n  .as2-lp__series-reference \u003e p:last-child {\n    max-width: 850px;\n    margin: 23px auto 0;\n    color: var(--as2-muted);\n    font-size: clamp(0.94rem, 1.15vw, 1.08rem);\n  }\n\n  .as2-lp__image-stack {\n    width: 100%;\n    overflow: hidden;\n    background: #000;\n    font-size: 0;\n    line-height: 0;\n  }\n\n  .as2-lp__stack-item {\n    display: block;\n    width: 100%;\n    margin: 0 !important;\n    padding: 0 !important;\n    border: 0 !important;\n    background: #000;\n    font-size: 0;\n    line-height: 0;\n  }\n\n  .as2-lp__asset-label {\n    display: block;\n    margin: 0 !important;\n    padding: 13px clamp(16px, 4vw, 54px);\n    border-top: 1px solid rgba(156, 131, 255, 0.32);\n    border-bottom: 1px solid rgba(156, 131, 255, 0.2);\n    background: #07070b;\n    color: #c9bdff;\n    font-size: clamp(0.66rem, 0.9vw, 0.8rem);\n    font-weight: 750;\n    letter-spacing: 0.07em;\n    line-height: 1.4;\n    text-align: center;\n    text-transform: uppercase;\n  }\n\n  .as2-lp__image-stack img {\n    display: block !important;\n    width: 100% !important;\n    max-width: none !important;\n    height: auto !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    border: 0 !important;\n    vertical-align: top;\n  }\n\n  .as2-lp__image-stack img + img {\n    margin-top: -1px !important;\n  }\n\n  .as2-lp__stack-item + .as2-lp__stack-item,\n  .as2-lp__stack-item + img,\n  .as2-lp__image-stack \u003e img + .as2-lp__compare-scroll {\n    margin-top: -1px !important;\n  }\n\n  .as2-lp__compare-scroll,\n  .as2-lp__compare-track {\n    width: 100%;\n    margin: 0;\n    padding: 0;\n    background: #000;\n    font-size: 0;\n    line-height: 0;\n  }\n\n  .as2-lp__compare-scroll {\n    overflow-x: auto;\n    overflow-y: hidden;\n    overscroll-behavior-x: contain;\n    scrollbar-color: #6651be #08080b;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .as2-lp__compare-scroll:focus-visible {\n    outline: 2px solid var(--as2-purple);\n    outline-offset: -2px;\n  }\n\n  @media (max-width: 980px) {\n    .as2-lp__model-band-inner,\n    .as2-lp__feature-inner,\n    .as2-lp__pro-specs-header {\n      grid-template-columns: 1fr;\n    }\n\n    .as2-lp__model-band-inner {\n      gap: 28px;\n    }\n\n    .as2-lp__feature-inner {\n      gap: 40px;\n    }\n\n    .as2-lp__feature--reverse .as2-lp__video-frame,\n    .as2-lp__feature--reverse .as2-lp__feature-copy {\n      order: initial;\n    }\n\n    .as2-lp__feature-copy {\n      max-width: 760px;\n    }\n\n    .as2-lp__pro-specs-header {\n      gap: 26px;\n    }\n\n    .as2-lp__pro-specs-header \u003e p {\n      max-width: 760px;\n    }\n\n    .as2-lp__compare-track {\n      width: 960px;\n    }\n  }\n\n  @media (max-width: 860px) {\n    .as2-lp__pro-spec-grid {\n      columns: 1;\n      column-gap: 0;\n    }\n  }\n\n  @media (max-width: 749px) {\n    .as2-lp__hero {\n      height: clamp(570px, 155vw, 710px);\n    }\n\n    .as2-lp__hero::after {\n      position: absolute;\n      inset: 0;\n      background:\n        linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgba(0, 0, 0, 0.15) 58%, rgba(0, 0, 0, 0.05) 100%),\n        linear-gradient(90deg, rgba(0, 0, 0, 0.2), transparent 65%);\n      content: \"\";\n      pointer-events: none;\n    }\n\n    .as2-lp__hero-image {\n      width: 100% !important;\n      height: 100% !important;\n      object-fit: cover;\n      object-position: 72% 50%;\n    }\n\n    .as2-lp__hero-mobile-copy {\n      position: absolute;\n      z-index: 1;\n      right: 20px;\n      bottom: 34px;\n      left: 20px;\n      display: block;\n    }\n\n    .as2-lp__hero-mobile-copy \u003e p {\n      color: var(--as2-purple-soft);\n      font-size: 0.73rem;\n      font-weight: 750;\n      letter-spacing: 0.16em;\n      text-transform: uppercase;\n    }\n\n    .as2-lp__hero-mobile-title {\n      margin-top: 12px;\n      color: #fff;\n      font-size: clamp(2.7rem, 13.5vw, 4rem);\n      font-weight: 650;\n      letter-spacing: -0.06em;\n      line-height: 0.93;\n    }\n\n    .as2-lp__hero-mobile-copy span {\n      display: block;\n      margin-top: 17px;\n      color: rgba(255, 255, 255, 0.64);\n      font-size: 0.84rem;\n    }\n\n    .as2-lp__model-band {\n      padding: 54px 20px;\n    }\n\n    .as2-lp__model-band h2 {\n      font-size: clamp(2.4rem, 12vw, 3.5rem);\n    }\n\n    .as2-lp__feature {\n      padding: 48px 12px 58px;\n    }\n\n    .as2-lp__feature-inner {\n      gap: 32px;\n    }\n\n    .as2-lp__video-frame {\n      border-radius: 14px;\n    }\n\n    .as2-lp__feature-copy {\n      padding: 0 8px;\n    }\n\n    .as2-lp__feature-copy h2 {\n      font-size: clamp(2.35rem, 12vw, 3.45rem);\n    }\n\n    .as2-lp__metrics,\n    .as2-lp__metrics--three {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      margin-top: 28px !important;\n      border-radius: 13px;\n    }\n\n    .as2-lp__metrics \u003e div {\n      padding: 14px 12px 15px;\n    }\n\n    .as2-lp__pro-specs {\n      padding: 56px 14px 66px;\n    }\n\n    .as2-lp__pro-specs-header {\n      padding: 0 6px;\n    }\n\n    .as2-lp__pro-specs-header h2 {\n      font-size: clamp(2.4rem, 12vw, 3.55rem);\n    }\n\n    .as2-lp__pro-spec-grid {\n      margin-top: 38px;\n    }\n\n    .as2-lp__pro-spec-card {\n      border-radius: 15px;\n    }\n\n    .as2-lp__pro-spec-notes {\n      grid-template-columns: 1fr;\n      margin-top: 16px;\n    }\n\n  }\n\n  @media (max-width: 540px) {\n    .as2-lp__pro-spec-list \u003e div {\n      grid-template-columns: 1fr;\n      gap: 5px;\n      padding: 14px 0;\n    }\n\n    .as2-lp__pro-spec-list dd {\n      text-align: left;\n    }\n  }\n\n  @media (max-width: 420px) {\n    .as2-lp__model-band-copy ul {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .as2-lp__model-band-copy li {\n      padding: 8px 5px;\n      text-align: center;\n    }\n\n    .as2-lp__metrics,\n    .as2-lp__metrics--three {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .as2-lp *,\n    .as2-lp *::before,\n    .as2-lp *::after {\n      scroll-behavior: auto !important;\n      transition-duration: 0.01ms !important;\n      animation-duration: 0.01ms !important;\n      animation-iteration-count: 1 !important;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (() =\u003e {\n    const rootSelector = '[data-as2-root]';\n\n    const getRoots = (scope) =\u003e {\n      const roots = [];\n      if (scope \u0026\u0026 scope.matches \u0026\u0026 scope.matches(rootSelector)) roots.push(scope);\n      if (scope \u0026\u0026 scope.querySelectorAll) roots.push(...scope.querySelectorAll(rootSelector));\n      return roots;\n    };\n\n    const initialize = (root) =\u003e {\n      if (!root || root.dataset.as2Initialized === 'true') return;\n\n      root.dataset.as2Initialized = 'true';\n      const videos = Array.from(root.querySelectorAll('[data-as2-video]'));\n      const ratios = new Map();\n      const removeListeners = [];\n      let observer = null;\n\n      const on = (target, type, handler, options) =\u003e {\n        target.addEventListener(type, handler, options);\n        removeListeners.push(() =\u003e target.removeEventListener(type, handler, options));\n      };\n\n      const pauseVideo = (video) =\u003e {\n        if (!video.paused) video.pause();\n      };\n\n      const pauseAll = () =\u003e videos.forEach(pauseVideo);\n\n      const playMostVisible = () =\u003e {\n        if (document.visibilityState !== 'visible') {\n          pauseAll();\n          return;\n        }\n\n        let candidate = null;\n        let bestRatio = 0.45;\n\n        videos.forEach((video) =\u003e {\n          const ratio = ratios.get(video) || 0;\n          if (ratio \u003e= bestRatio) {\n            candidate = video;\n            bestRatio = ratio;\n          }\n        });\n\n        videos.forEach((video) =\u003e {\n          if (video !== candidate) pauseVideo(video);\n        });\n\n        if (!candidate) return;\n\n        try {\n          const playPromise = candidate.play();\n          if (playPromise \u0026\u0026 typeof playPromise.catch === 'function') {\n            playPromise.catch(() =\u003e {});\n          }\n        } catch (error) {\n          \/\/ Autoplay can be blocked by browser or device policy.\n        }\n      };\n\n      videos.forEach((video) =\u003e {\n        video.muted = true;\n        video.defaultMuted = true;\n        video.loop = true;\n        video.autoplay = true;\n        video.playsInline = true;\n        video.controls = false;\n        video.removeAttribute('controls');\n        ratios.set(video, 0);\n        pauseVideo(video);\n\n        on(video, 'play', () =\u003e {\n          const ratio = ratios.get(video) || 0;\n          if (ratio \u003c 0.45 || document.visibilityState !== 'visible') {\n            pauseVideo(video);\n            return;\n          }\n          videos.forEach((otherVideo) =\u003e {\n            if (otherVideo !== video) pauseVideo(otherVideo);\n          });\n        });\n      });\n\n      if ('IntersectionObserver' in window) {\n        observer = new IntersectionObserver(\n          (entries) =\u003e {\n            entries.forEach((entry) =\u003e {\n              ratios.set(entry.target, entry.intersectionRatio);\n            });\n            playMostVisible();\n          },\n          { threshold: [0, 0.15, 0.45, 0.75, 1] }\n        );\n\n        videos.forEach((video) =\u003e observer.observe(video));\n      } else {\n        let frameRequested = false;\n\n        const updateFallbackRatios = () =\u003e {\n          const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n          videos.forEach((video) =\u003e {\n            const rect = video.getBoundingClientRect();\n            const visibleHeight = Math.max(\n              0,\n              Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0)\n            );\n            ratios.set(video, rect.height \u003e 0 ? Math.min(1, visibleHeight \/ rect.height) : 0);\n          });\n\n          playMostVisible();\n        };\n\n        const requestFallbackUpdate = () =\u003e {\n          if (frameRequested) return;\n          frameRequested = true;\n          window.requestAnimationFrame(() =\u003e {\n            frameRequested = false;\n            updateFallbackRatios();\n          });\n        };\n\n        on(window, 'scroll', requestFallbackUpdate, { passive: true });\n        on(window, 'resize', requestFallbackUpdate);\n        updateFallbackRatios();\n      }\n\n      const handleVisibility = () =\u003e {\n        if (document.visibilityState !== 'visible') pauseAll();\n        else playMostVisible();\n      };\n\n      on(document, 'visibilitychange', handleVisibility);\n\n      root.as2Cleanup = () =\u003e {\n        if (observer) observer.disconnect();\n        removeListeners.forEach((remove) =\u003e remove());\n        pauseAll();\n        delete root.as2Cleanup;\n        delete root.dataset.as2Initialized;\n      };\n    };\n\n    const initializeAll = (scope) =\u003e getRoots(scope).forEach(initialize);\n\n    initializeAll(document);\n\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', () =\u003e initializeAll(document), { once: true });\n    }\n\n    document.addEventListener('shopify:section:load', (event) =\u003e initializeAll(event.target));\n    document.addEventListener('shopify:section:unload', (event) =\u003e {\n      getRoots(event.target).forEach((root) =\u003e {\n        if (typeof root.as2Cleanup === 'function') root.as2Cleanup();\n      });\n    });\n  })();\n\u003c\/script\u003e\n","brand":"SpeedyDrone Canada ","offers":[{"title":"Default Title","offer_id":47665640702089,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0665\/1242\/1001\/files\/AS2-Photo1.webp?v=1784660137","url":"https:\/\/www.speedydrone.ca\/products\/unitree-as2-w","provider":"SpeedyDrone Canada ","version":"1.0","type":"link"}