{"title":"Cameras","description":"","products":[{"product_id":"umino-adaptor-kit","title":"Umino Multi USB Charging Adaptor Cable Kit","description":"\u003carticle\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eHaving the right tools to stay powered up and online is essential. \u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eIntroducing the Umino Multi USB Charging Adaptor Cable Kit, a comprehensive solution designed to keep you charged and ready for even the most unexpected situations. This versatile kit combines 7 essential parts in a compact, travel-friendly design, ensuring you're always prepared for emergencies and unforeseen circumstances.\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003carticle\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eAll-in-One Adaptability\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e: With the Umino Multi USB Charging Adaptor Cable Kit, you'll never be caught off guard. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan data-type=\"text\"\u003eEnjoy the flexibility of 7 adapters in 1, including Type-C, Lightning, and USB connections, catering to a wide range of devices and keeping you connected no matter the situation.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eEmergency-Ready Charging\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e: When every second counts, the Umino Multi USB Charging Adaptor Cable Kit is there to provide the power you need. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan data-type=\"text\"\u003eDesigned to work with a wide range of chargers and power sources, this kit ensures you can quickly and reliably charge your devices, even in the midst of an emergency.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eDual Card Storage\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e: In the midst of an emergency, having easy access to essential items can make all the difference. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan data-type=\"text\"\u003eThe Umino Multi USB Charging Adaptor Cable Kit features dedicated slots for nano SIM, and microSD cards, allowing you to maintain backup storage and international connectivity options at your fingertips.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan data-type=\"text\"\u003eThe kit enables you to store and access two cards simultaneously, ensuring you're prepared for any eventuality.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003ePlease note: The nano SIM and microSD card shown in the image are for illustrative purposes only and are \u003c\/span\u003e\u003cspan data-type=\"text\"\u003enot included\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e with this product.\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003ePortable Design\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e: Crafted with\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e durable ABS materials,\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e the Umino Multi USB Charging Adaptor Cable Kit is built to withstand the demands of any situation. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\u003cspan data-type=\"text\"\u003eIts compact size and lightweight construction make it an indispensable addition to your emergency preparedness kit.\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eYou should buy the Umino Multi USB Charging Adaptor Cable Kit if you are:\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eA frequent traveler\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e who values the ability to quickly charge and sync devices during \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eunexpected power outages\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e or \u003c\/span\u003e\u003cspan data-type=\"text\"\u003etravel disruptions\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eA digital nomad\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e or \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eremote worker\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e who requires \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eefficient data transfer\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e and \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eA safety-conscious person who understands the importance of being prepared for \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eemergencies and unexpected circumstances\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eSomeone who appreciates the \u003c\/span\u003e\u003cspan data-type=\"text\"\u003econvenience\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e of having essential adapters and storage solutions in a\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e single, compact package\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003e*The Umino Multi USB Charging Adaptor Cable Kit comes with a 12-month warranty.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/article\u003e","brand":"GL.iNet","offers":[{"title":"EU warehouse","offer_id":45442083881143,"sku":"UM-Storage Box-EU","price":9.9,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/umino---cablekit.png?v=1774447428"},{"product_id":"umino-30w-pd-charger","title":"Umino 30W PD Charger","description":"\u003carticle\u003e\n\u003ch2\u003e\u003cspan data-type=\"text\"\u003eUmino 30W PD Charger: Power Up with a Touch of Nostalgia\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eThis 30W fast charger blends a clean, modern aesthetic with a nod to classic gaming design. Its compact design and foldable plug make it perfect for travel—easily attach it to your bag or keychain. The included 1m Type-C cable offers flexibility, making it a convenient charging solution for devices like smartphones and gaming handhelds.\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFast Charging in Style: With 30W fast charging capability and a compact built, this charger combines speed and convenience.\u003c\/li\u003e\n\u003cli\u003eReady for Emergencies on the Go: The included 20cm cable doubles as a lanyard or keychain, making it easy to hang on a travel bag for quick access during emergencies or quick access.\u003c\/li\u003e\n\u003cli\u003eFlexible Connectivity: Includes an additional 1m Type-C cable for extended reach and giving you the freedom to charge from a comfortable distance.\u003c\/li\u003e\n\u003cli\u003eCompact and Space-Saving: A foldable plug and portable design make it perfect for travel or decluttering your space.\u003c\/li\u003e\n\u003cli\u003eVersitle Compatibility: Compatible with a wide range of devices, ensuring you can charge varity of gadgets seamlessly and efficiently.\u003c\/li\u003e\n\u003cli\u003eRetro Charm Meets Modern Tech: Designed to resemble a retro game console, it’s a nostalgic nod to the past with cutting-edge functionality.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eYou should buy this if you are\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eA frequent traveler:\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e The compact size and foldable plug make this charger ideal for carrying in a bag or suitcase without taking up much space. The included short cable, usable as a lanyard, adds to its travel-friendliness.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cspan data-type=\"text\"\u003eA retro gaming enthusiast: \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eIf you were a Game Boy enthusiast, this charger will add a touch of nostalgic fun to your life. Its design is a perfect blend of modern convenience and classic gaming aesthetics. \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan data-type=\"text\"\u003eSomeone who values both style and function:\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e If you want a charger that's both powerful (30W fast charging) and visually appealing, this charger combines advanced technology with a unique retro design.\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003e\u003cstrong\u003e\u003cb\u003e*\u003c\/b\u003e\u003c\/strong\u003eThe Umino 30W PD Charger comes with an 18-month warranty\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/article\u003e","brand":"GL.iNet","offers":[{"title":"CN warehouse","offer_id":46901780644023,"sku":"UM-30W PD Power-GL","price":19.9,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/umino---30w-retro.png?v=1774446598"},{"product_id":"umino-100w-4-port-gan-fast-charger","title":"Umino 100W 4-Port GaN Fast Charger","description":"\u003carticle\u003e\n\u003ch3\u003e\u003cspan data-type=\"text\"\u003eSupercharge Effortless Power for Every Deivce:\u003c\/span\u003e\u003c\/h3\u003e\n\u003cp\u003e\u003cbr data-path=\"0,1\"\u003e\u003cspan data-type=\"text\"\u003eThe Umino 100W GaN Charger delivers powerful and efficient charging in a remarkably compact design, perfect for the modern, on-the-go lifestyle. This versatile powerhouse boasts four ports – three USB-C and one USB-A – ensuring seamless compatibility with a wide range of devices, from smartphones and tablets to laptops and more.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eExperience smaller size, faster charging speeds, and reduced heat generation with GaN technology compared to traditional chargers. Whether you're a busy professional, a frequent traveler, or a tech enthusiast, the Umino 100W GaN Charger is the ultimate solution for all your charging needs.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003carticle\u003e\n\u003ch3\u003e\u003cspan data-type=\"text\"\u003eKey Features:\u003c\/span\u003e\u003c\/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eUltra-Fast 100W USB-C Charging\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,0,0,1\"\u003e\u003cspan data-type=\"text\"\u003ePower up a high-performance device like a 13-inch laptop to full charge in under one hour using just one USB-C port — ideal for on-the-go professionals or remote workers needing speed and efficiency.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eOne Charger, Four Devices\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,1,0,1\"\u003e\u003cspan data-type=\"text\"\u003eWith \u003c\/span\u003e\u003cspan data-type=\"text\"\u003e\u003cstrong\u003ethree USB-C ports\u003c\/strong\u003e\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e and \u003c\/span\u003e\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eone USB-A\u003c\/span\u003e\u003c\/strong\u003e\u003cspan data-type=\"text\"\u003e, this compact charger delivers high-speed charging to all your everyday essentials — from phones and tablets to laptops and accessories — all at the same time.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eGaN Technology\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,2,0,1\"\u003e\u003cspan data-type=\"text\"\u003eBuilt with Gallium Nitride (GaN) components, it operates cooler, charges faster, and wastes less energy than traditional silicon-based chargers. This means a smaller form factor, less heat, and greater energy efficiency — perfect for modern, power-hungry lifestyles.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eWide \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eDevice\u003c\/span\u003e\u003cspan data-type=\"text\"\u003e \u003c\/span\u003e\u003cspan data-type=\"text\"\u003eCompatibility\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,3,0,1\"\u003e\u003cspan data-type=\"text\"\u003eCompatible with a broad range of devices—including laptops, tablets, smartphones, and more—thanks to support for major fast-charging protocols like Power Delivery (PD) and Quick Charge (QC), ensuring fast and efficient charging across your entire gadget lineup.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eTravel-Ready Design with Global Adapters\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,4,0,1\"\u003e\u003cspan data-type=\"text\"\u003eDesigned for life on the go, the foldable plug and interchangeable EU, US, and UK adapters make this charger a perfect companion for international travel. Compact, versatile, and always ready — no need to carry multiple adapters again.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e\u003cspan data-type=\"text\"\u003eDeclutter Your Desk. Power Your World.\u003c\/span\u003e\u003c\/strong\u003e\u003cbr data-path=\"1,5,0,1\"\u003e\u003cspan data-type=\"text\"\u003eDitch multiple adapters — this 4-port powerhouse charges everything in one sleek unit, helping you stay organized and fully powered with less mess and more freedom.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e \u003cmeta charset=\"UTF-8\"\u003e\u003c\/p\u003e\n\u003carticle\u003e\n\u003ch3 style=\"text-align: center;\"\u003e\u003cspan data-type=\"text\"\u003eUniversal Compatibility (Partial List)\u003c\/span\u003e\u003c\/h3\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003carticle\u003e\n\u003ctable style=\"width: 100.027%;\" height=\"684\"\u003e\n\u003ccolgroup\u003e \u003ccol style=\"width: 35.368%;\" width=\"197\"\u003e \u003ccol style=\"width: 91.0233%;\" width=\"507\"\u003e \u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with iPhone\/iPad\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eiPhone 16,16 Plus, 16 Pro, 16 Pro Max,15,15 Plus,15 Pro,15 Pro Max, iPhone 14, 14 Mini, 14 Pro, 14 Pro Max, 13, 13 Mini, 13 Pro, 13 Pro Max, 12, 12 Mini, 12 Pro, 12 Pro Max, 11 Pro, 11 Pro Max, SE 2020, XS, XS Max, XR, X, 8, 8 Plus, 6s, 5s, iPad Pro 2020\/ 2018, AirPods Pro, MagSafe, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Galaxy\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eGalaxy S24\/ S24+\/ S24 Ultra\/ S23 \/ S23 Ultra \/ S22 \/ S22 Ultra \/ S21+ \/ S21 \/ S20 FE \/ S10 \/ S8 \/ Note 20 \/ Note 10 \/ Note 9 \/ A53 \/ A12 \/ A21s, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Pixel\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003ePixel 9\/8\/7\/ 6 Pro \/ 6 \/ 5 \/ 5a \/ 4 \/ 4a \/ 4XL \/ 3 \/ 3XL \/ 2 \/ 2XL \/ XL, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Mi\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eRedmi Note 11 pro \/ 11 \/ 10 Pro \/ 10 \/ 9 Pro \/ 9 \/ MI 11 Pro \/ Mi 11 \/ Mi 10 \/ Mi 9 \/ Mi 8, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Moto\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eMoto G71 \/ G60 \/ G51 \/ G50 \/ G41 \/ G31 \/ G30 \/ G20 \/ G10 \/ G9, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with MacBook\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eMacBook Pro 16\" \/ 15\" \/ 13\", MacBook Air 2022 \/ 2020 \/ 2019 \/ 2018, MacBook 12\", etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Dell\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eXPS 13, Inspiron 3793, Vostro 5391, Dell Latitude 5500; Dell Precision 3540\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with HP\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eHP ENVY 13 \/ 17 \/ X360, EliteBook x360 \/ 1030 \/ 1040, Spectre X360 15 \/ 13 \/ Folio 13, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with ASUS\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eASUS Zenbook S UX391 \/ Flip 13 UX362, Classic Series, Chromebook, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eCompatible with Lenovo\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cspan data-type=\"text\"\u003eThinkPad X1 \/ T 490, Yoga C940 \/ C740, ideapad S940 \/ S740, etc\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/article\u003e\n\u003cbr\u003e\n\n\u003c\/article\u003e\n\u003c\/article\u003e\n\u003c\/article\u003e","brand":"GL.iNet","offers":[{"title":"DE warehouse","offer_id":46989732544695,"sku":"GL-100W PD Charger-EU-4PX","price":34.37,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/table_umino_100w-charger.png?v=1770885829"},{"product_id":"umino-um-d1","title":"Umino D1 Mini \u0026 D1 Pro | Travel Dashcams for Rental Cars","description":"\u003cstyle\u003e\n  .umino-d1-main-container .umino-d1-muted {\n    color: rgba(255, 255, 255, 0.7);\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs .nav-link {\n    position: relative;\n    color: inherit;\n    border-left: 3px solid #777;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs .nav-link.active::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: -3px;\n    width: 3px;\n    background-color: #17A2B8;\n    transform: scaleY(0);\n    transform-origin: center top;\n    animation: umino-d1-adas-progress 5s linear forwards paused;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs.is-running .nav-link.active::after {\n    animation-play-state: running;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs.is-resetting .nav-link.active::after {\n    animation-name: none;\n  }\n\n  @keyframes umino-d1-adas-progress {\n    from { transform: scaleY(0); }\n    to { transform: scaleY(1); }\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs .nav-link h3 {\n    color: inherit;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-description {\n    display: grid;\n    grid-template-rows: 0fr;\n    opacity: 0;\n    transition: grid-template-rows 0.3s ease, opacity 0.3s ease;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-description \u003e div {\n    min-height: 0;\n    overflow: hidden;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-tabs .nav-link.active .umino-d1-adas-description {\n    grid-template-rows: 1fr;\n    opacity: 1;\n  }\n\n  .umino-d1-main-container .umino-d1-adas-section video {\n    aspect-ratio: 16 \/ 9;\n    object-fit: contain;\n  }\n\n  .umino-d1-main-container .umino-d1-crowdfunding-card {\n    background: linear-gradient(\n      150deg, \n      rgba(97, 127, 167, 0.7) 0%, \n      rgba(15, 35, 61, 0.7) 50%, \n      rgba(15, 35, 61, 0.7) 60%, \n      rgba(13, 23, 42, 1) 100%\n    );\n  }\n\n  .umino-d1-main-container .umino-d1-crowdfunding-card hr {\n    border-top-color: rgba(255, 255, 255, 0.1);\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-media video {\n    width: 100%;\n    height: clamp(260px, 60vw, 500px);\n    object-fit: cover;\n    border-radius: 15px;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-products {\n    position: relative;\n    display: block;\n    width: 280px;\n    max-width: 100%;\n    margin: 0 auto -8rem;\n    z-index: 2;\n  }\n\n  @media (min-width: 992px) {\n    .umino-d1-main-container .top-banner .row {\n      min-height: 68vh;\n    }\n\n    .umino-d1-main-container .top-banner .top-banner-copy {\n      padding-right: 2rem;\n    }\n\n    .umino-d1-main-container .top-banner .logo img:first-child {\n      margin-left: calc(54px * -28.6 \/ 172.1);\n    }\n\n    .umino-d1-main-container .top-banner .top-banner-media video {\n      position: absolute;\n      top: 0;\n      left: 15px;\n      width: calc(50vw + 100% \/ 7 - 15px);\n      height: 100%;\n      padding-left: 9.5rem;\n      border-radius: 0;\n      \/* border-radius: 999px 0 0; *\/\n    }\n\n    .umino-d1-main-container .top-banner .top-banner-products {\n      position: absolute;\n      top: 20%;\n      left: 0%;\n      width: 520px;\n      max-width: none;\n      margin: 0;\n    }\n  }\n\n  @media (min-width: 992px) and (max-width: 1199px) {\n    .umino-d1-main-container .top-banner .top-banner-products {\n      top: 26%;\n      width: 380px;\n    }\n  }\n\n  .umino-d1-main-container .top-banner .logo img {\n    width: auto;\n    height: 54px;\n    filter: brightness(0) invert(1);\n  }\n\n  .umino-d1-main-container .top-banner .logo-separator {\n    width: 1px;\n    height: 36px;\n    background-color: rgba(255, 255, 255, 0.4);\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-heading {\n    gap: 0.75rem 2rem;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-actions {\n    gap: 2rem;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-kickstarter {\n    width: auto;\n    height: 56px;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-heading \u003e *,\n  .umino-d1-main-container .top-banner .top-banner-actions \u003e * {\n    margin: 0;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-status {\n    font-size: 12px;\n    color: #1ed780;\n    letter-spacing: 0.08em;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-status::before {\n    content: \"\";\n    width: 0.375rem;\n    height: 0.375rem;\n    margin-right: 0.5rem;\n    border-radius: 50%;\n    background-color: currentColor;\n    flex-shrink: 0;\n  }\n\n  .umino-d1-main-container .top-banner .top-banner-actions .btn {\n    font-family: \"Poppins\", sans-serif;\n    text-transform: none;\n  }\n\n  .umino-d1-main-container .top-banner .text-link {\n    display: inline-flex;\n    align-items: center;\n    color: #fff;\n    font-family: \"Poppins\", sans-serif;\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .umino-d1-main-container .top-banner .text-link i {\n    transition: transform 0.25s ease;\n  }\n\n  .umino-d1-main-container .top-banner .text-link:hover i {\n    transform: translateX(4px);\n  }\n\n  .umino-d1-main-container .top-banner #global-banner-container iframe {\n    visibility: hidden;\n  }\n\n  .umino-d1-main-container .top-banner #global-banner-container iframe[data-subscribe-styled] {\n    visibility: visible;\n  }\n\n  @media (max-width: 767px) {\n    .umino-d1-main-container .top-banner .logo img {\n      height: 36px;\n    }\n\n    .umino-d1-main-container .top-banner .logo-separator {\n      height: 20px;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-grid-row {\n    display: grid;\n    gap: 8px;\n    margin-bottom: 8px;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-grid-row-1 .umino-d1-highlight-card {\n    height: 440px;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-grid-row-1 {\n    grid-template-columns: minmax(0, 5fr) minmax(0, 2fr);\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-grid-row-2 {\n    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr) minmax(0, 2fr);\n    margin-bottom: 0;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-grid-row-2 .umino-d1-highlight-card {\n    height: 320px;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card {\n    background-color: #000;\n    background-size: cover;\n    background-position: center;\n    background-repeat: no-repeat;\n    border-radius: 16px;\n    overflow: hidden;\n    position: relative;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--1 {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--1 \u003e .umino-d1-highlight-card__video,\n  .umino-d1-main-container .umino-d1-highlight-card--5 \u003e .umino-d1-highlight-card__video {\n    position: absolute;\n    inset: 0;\n    z-index: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    pointer-events: none;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--5 \u003e .umino-d1-highlight-card__video {\n    object-position: bottom center;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card__badges {\n    display: flex;\n    justify-content: flex-end;\n    align-items: center;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card__badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    font-weight: 500;\n    line-height: 1;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--1 .umino-d1-highlight-card__badge--day {\n    position: absolute;\n    right: 1rem;\n    bottom: calc(50% + 1rem);\n    background: rgb(0, 0, 0, 0.75);\n    color: #fff;\n  }\n\n  @media (min-width: 992px) {\n    .umino-d1-main-container .umino-d1-highlight-card--1 .umino-d1-highlight-card__badge--day {\n      right: 1.5rem;\n      bottom: calc(50% + 1.5rem);\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card__badge--night {\n    background: rgb(255, 255, 255, 0.75);\n    color: #000;\n  }\n\n  @media (max-width: 576px) {\n    .umino-d1-main-container .umino-d1-highlight-card__badge {\n      padding: 5px 8px;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--2 {\n    background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/highlight_cars-and-road-trips.png\");\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--3 {\n    background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/highlight_wifi6.png\");\n    background-position: bottom center;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--4 {\n    background-image:\n      url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/highlight_travel-story.png\"),\n      linear-gradient(to bottom, #617FA7 0%, #0F233D 50%, #0F233D 60%, #04070D 100%);\n    background-size: auto 67%, 100% 100%;\n    background-position: center bottom, center bottom;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card--1::before,\n  .umino-d1-main-container .umino-d1-highlight-card--2::before,\n  .umino-d1-main-container .umino-d1-highlight-card--5::before{\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    border-radius: inherit;\n    background: linear-gradient(to bottom,\n        rgba(0, 0, 0, 0.8) 0%,\n        transparent 36%);\n    pointer-events: none;\n    z-index: 1;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card \u003e * {\n    position: relative;\n    z-index: 2;\n  }\n\n  .umino-d1-main-container .umino-d1-highlight-card h3 {\n    font-size: 18px;\n  }\n\n  @media (min-width: 992px) {\n    .umino-d1-main-container .umino-d1-highlight-card h3 {\n      font-size: 20px;\n    }\n  }\n\n  @media (min-width: 1200px) {\n    .umino-d1-main-container .umino-d1-highlight-card h3 {\n      font-size: 24px;\n    }\n  }\n\n  @media (max-width: 1199px) {\n    .umino-d1-main-container .umino-d1-highlight-card--4 {\n      background-size: auto 60%, 100% 100%;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-grid-row-1 .umino-d1-highlight-card {\n      height: 320px;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-grid-row-2 .umino-d1-highlight-card {\n      height: 260px;\n    }\n  }\n\n  @media (max-width: 991px) {\n    .umino-d1-main-container .umino-d1-highlight-grid-row-1 .umino-d1-highlight-card {\n      height: 280px;\n    }\n    .umino-d1-main-container .umino-d1-highlight-grid-row-2 .umino-d1-highlight-card {\n      height: 240px;\n    }\n\n  }\n\n  @media (max-width: 767px) {\n    .umino-d1-main-container .umino-d1-highlight-grid {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n      gap: 8px;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-grid-row {\n      display: contents;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-card--1 {\n      grid-column: 1 \/ -1;\n      order: 1;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-card--4 {\n      background-size: auto 67%, 100% 100%;\n      grid-column: 1 \/ -1;\n      order: 2;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-card--5 {\n      grid-column: 1 \/ -1;\n      order: 3;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-card--2 {\n      order: 4;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-card--3 {\n      order: 5;\n    }\n\n    .umino-d1-main-container .umino-d1-highlight-grid-row-1 .umino-d1-highlight-card,\n    .umino-d1-main-container .umino-d1-highlight-grid-row-2 .umino-d1-highlight-card {\n      height: 200px;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-spec-section {\n    background-color: #131313;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-card {\n    overflow: hidden;\n    border: 1px solid rgba(255, 255, 255, 0.16);\n    border-radius: 1.25rem;\n    background-color: #181818;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-images,\n  .umino-d1-main-container .umino-d1-spec-products,\n  .umino-d1-main-container .umino-d1-spec-compare-row {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-images,\n  .umino-d1-main-container .umino-d1-spec-products {\n    justify-items: center;\n    text-align: center;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-images {\n    padding: 2rem 1.25rem 0;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-images img {\n    display: block;\n    width: auto;\n    max-width: calc(100% - 1rem);\n    height: 150px;\n    object-fit: contain;\n    object-position: center bottom;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-products {\n    padding-bottom: 1.5rem;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-section .umino-d1-spec-products h4 {\n    margin-bottom: 0;\n    font-weight: 700;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-compare-row {\n    border-top: 1px solid rgba(255, 255, 255, 0.08);\n    text-align: center;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-cell {\n    display: flex;\n    flex-direction: column;\n    padding: 1.65rem 1.25rem;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-cell i {\n    display: block;\n    width: 1.35rem;\n    margin: 0 auto 0.8rem;\n    color: rgba(255, 255, 255, 0.88);\n    font-size: 1.2rem;\n    line-height: 1;\n    text-align: center;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-value {\n    margin-bottom: 0.35rem;\n    font-weight: 700;\n    line-height: 1.35;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-name {\n    margin-bottom: 0;\n    color: rgba(255, 255, 255, 0.55);\n  }\n\n  .umino-d1-main-container .umino-d1-spec-toggle {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    padding: 1.05rem 1rem;\n    border: 0;\n    border-top: 1px solid rgba(255, 255, 255, 0.08);\n    background: transparent;\n    color: rgba(255, 255, 255, 0.78);\n    cursor: pointer;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-toggle:hover,\n  .umino-d1-main-container .umino-d1-spec-toggle:focus {\n    color: #fff;\n    outline: none;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-toggle:focus-visible {\n    outline: 1px solid rgba(255, 255, 255, 0.4);\n    outline-offset: -2px;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-toggle i {\n    margin-left: 0.4rem;\n    transition: transform 0.2s ease;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-toggle[aria-expanded=\"true\"] i {\n    transform: rotate(180deg);\n  }\n\n  .umino-d1-main-container .umino-d1-spec-shared h5 {\n    margin: 0;\n    padding: 1rem 1.5rem;\n    background-color: #333333;\n    border-top: 1px solid rgba(255, 255, 255, 0.12);\n    border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n    font-weight: 700;\n  }\n\n  @media (max-width: 991.98px) {\n    .umino-d1-main-container .umino-d1-spec-shared h5 {\n      padding: 1rem;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-spec-shared-row {\n    display: grid;\n    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);\n    gap: 1.5rem;\n    align-items: baseline;\n    padding: 0.95rem 1.5rem;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n  }\n\n  .umino-d1-main-container .umino-d1-spec-shared-row:last-child {\n    border-bottom: 0;\n  }\n\n  .umino-d1-main-container .umino-d1-spec-shared-row span:first-child {\n    color: rgba(255, 255, 255, 0.62);\n  }\n\n  @media (max-width: 991.98px) {\n    .umino-d1-main-container .umino-d1-spec-images img {\n      height: 90px;\n    }\n\n    .umino-d1-main-container .umino-d1-spec-cell {\n      padding: 1.15rem 0.75rem;\n    }\n\n    .umino-d1-main-container .umino-d1-spec-shared-row {\n      gap: 0.75rem;\n      padding-right: 1rem;\n      padding-left: 1rem;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-video {\n    height: 200vh;\n    background-color: #020202;\n  }\n\n  .umino-d1-main-container .umino-d1-video-sticky {\n    position: sticky;\n    top: 0;\n    height: 100vh;\n    overflow: hidden;\n  }\n\n  .umino-d1-main-container .umino-d1-video-sticky video,\n  .umino-d1-main-container .umino-d1-video-mobile \u003e video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n  }\n\n  .umino-d1-main-container .umino-d1-video-title {\n    position: absolute;\n    top: 15%;\n    left: 0;\n    right: 0;\n    z-index: 1;\n    pointer-events: none;\n    opacity: 0;\n  }\n\n  .umino-d1-main-container .umino-d1-video-title h2 {\n    font-size: clamp(2.25rem, 4.5vw, 4rem);\n    line-height: 1.15;\n  }\n\n  .umino-d1-main-container .umino-d1-video-mobile {\n    position: relative;\n    height: 50vh;\n    overflow: hidden;\n    background-color: #020202;\n  }\n\n  @media (max-width: 576px) {\n    .umino-d1-main-container .umino-d1-video-mobile {\n      height: 40vh;\n    }\n  }\n\n  .umino-d1-main-container .umino-d1-video-mobile \u003e .container {\n    position: relative;\n    z-index: 1;\n  }\n\n  .umino-d1-main-container .umino-d1-features {\n    position: relative;\n    height: 350vh;\n    height: 350svh;\n    background-color: #000;\n  }\n\n  .umino-d1-main-container .umino-d1-features-sticky {\n    position: sticky;\n    top: 0;\n    height: 100vh;\n    height: 100svh;\n    overflow: hidden;\n    background-color: #000;\n  }\n\n  .umino-d1-main-container .umino-d1-features-frame {\n    position: absolute;\n    inset: 0;\n    opacity: 0;\n    transform: scale(1.08);\n    transform-origin: center center;\n    will-change: opacity, transform;\n  }\n\n  .umino-d1-main-container .umino-d1-features-frame img {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: var(--feature-position-x, 50%) center;\n  }\n\n  .umino-d1-main-container .umino-d1-features-frame:first-child {\n    opacity: 1;\n    z-index: 1;\n  }\n\n  .umino-d1-main-container .umino-d1-features-callout {\n    position: absolute;\n    z-index: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    width: max-content;\n    gap: 0.75rem;\n    margin: 0;\n    color: #fff;\n    font-weight: 700;\n    white-space: nowrap;\n    transform: translateX(-50%);\n    pointer-events: none;\n  }\n\n  .umino-d1-main-container .umino-d1-features-callout-line {\n    position: relative;\n    left: var(--feature-line-offset, 0px);\n    width: 2px;\n    height: var(--feature-line-height, 4rem);\n    background: currentColor;\n    flex: none;\n    transform: scale(0);\n    transform-origin: center top;\n  }\n\n  .umino-d1-main-container .umino-d1-features-callout-title {\n    opacity: 0;\n    transform: translateY(24px);\n  }\n\n  @media (min-width: 992px) {\n    .umino-d1-main-container .umino-d1-features {\n      height: 350vh;\n    }\n\n    .umino-d1-main-container .umino-d1-features-sticky {\n      height: 100vh;\n    }\n\n    .umino-d1-main-container .umino-d1-features-frame img {\n      object-position: center;\n    }\n\n    .umino-d1-main-container .umino-d1-features-callout {\n      flex-direction: row;\n      justify-content: flex-start;\n      font-size: clamp(2.25rem, 4.5vw, 4rem);\n      line-height: 1.15;\n      transform: translateY(-50%);\n    }\n\n    .umino-d1-main-container .umino-d1-features-callout-line {\n      left: 0;\n      width: clamp(4.5rem, 8vw, 8.5rem);\n      height: 2px;\n      transform-origin: left center;\n    }\n  }\n \n\u003c\/style\u003e\n\u003cmain class=\"umino-d1-main-container\"\u003e\n  \u003c!-- Top Banner --\u003e\n  \u003csection class=\"top-banner overflow-hidden text-light\" style=\"background-color: #000;\" id=\"subscribe\"\u003e\n    \u003cdiv class=\"container py-4 py-lg-0\"\u003e\n      \u003cdiv class=\"row align-items-center\"\u003e\n        \u003cdiv class=\"top-banner-copy col-12 col-lg-5 py-4 text-center text-lg-left\"\u003e\n          \u003cdiv class=\"logo d-flex align-items-center justify-content-center justify-content-lg-start mb-4 mb-lg-5\"\u003e\n            \u003cimg class=\"mr-3\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_new_logo.svg\" alt=\"Umino Logo\"\u003e\n            \u003cspan class=\"logo-separator mr-3\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n            \u003cimg src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/glinet_logo.svg\" alt=\"GL.iNet Logo\"\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"top-banner-heading d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start mb-3\"\u003e\n            \u003ch3\u003eUmino D1 Mini \u0026amp; Pro\u003c\/h3\u003e\n            \u003c!--\n            \u003cp class=\"top-banner-status d-inline-flex align-items-center font-weight-bold text-nowrap\"\u003eCOMING SOON ON KICKSTARTER\u003c\/p\u003e\n            --\u003e\n          \u003c\/div\u003e\n          \u003ch1 class=\"font-weight-bold mb-3\"\u003eThe Travel Dashcams Built for Rental Cars\u003c\/h1\u003e\n          \u003ch5 class=\"mb-0\" style=\"font-weight:400;\"\u003eThe Car Is Rented. The Journey Is Yours.\u003c\/h5\u003e\n          \u003cdiv class=\"mt-4\"\u003e\n            \u003cdiv id=\"global-banner-container\" style=\"width: 100%; height: 50px;\"\u003e\u003c\/div\u003e\n            \u003cdiv id=\"zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU\" style=\"display: none;\"\u003e\u003c\/div\u003e\n            \u003cscript type=\"text\/javascript\"\u003e\n              (function () {\n                try {\n                  var f = document.createElement('iframe');\n                  var ifrmSrc = 'https:\/\/forms.zohopublic.com\/glinet\/form\/UMD1ProductNewsletterSignup\/formperma\/NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU?zf_rszfm=1';\n\n                  try {\n                    if (typeof ZFAdvLead != 'undefined' \u0026\u0026 typeof zfutm_zfAdvLead != 'undefined') {\n                      for (var prmIdx = 0; prmIdx \u003c ZFAdvLead.utmPNameArr.length; prmIdx++) {\n                        var utmPm = ZFAdvLead.utmPNameArr[prmIdx];\n                        utmPm = (ZFAdvLead.isSameDomian \u0026\u0026 (ZFAdvLead.utmcustPNameArr.indexOf(utmPm) == -1))\n                          ? 'zf_' + utmPm\n                          : utmPm;\n                        var utmVal = zfutm_zfAdvLead.zfautm_gC_enc(ZFAdvLead.utmPNameArr[prmIdx]);\n\n                        if (typeof utmVal !== 'undefined' \u0026\u0026 utmVal != '') {\n                          ifrmSrc += (ifrmSrc.indexOf('?') \u003e 0 ? '\u0026' : '?') + utmPm + '=' + utmVal;\n                        }\n                      }\n                    }\n\n                    if (typeof ZFLead !== 'undefined' \u0026\u0026 typeof zfutm_zfLead !== 'undefined') {\n                      for (var prmIdx = 0; prmIdx \u003c ZFLead.utmPNameArr.length; prmIdx++) {\n                        var utmPm = ZFLead.utmPNameArr[prmIdx];\n                        var utmVal = zfutm_zfLead.zfutm_gC_enc(ZFLead.utmPNameArr[prmIdx]);\n\n                        if (typeof utmVal !== 'undefined' \u0026\u0026 utmVal != '') {\n                          ifrmSrc += (ifrmSrc.indexOf('?') \u003e 0 ? '\u0026' : '?') + utmPm + '=' + utmVal;\n                        }\n                      }\n                    }\n\n                    if (!new RegExp('[?\u0026]referrername=').test(ifrmSrc)) {\n                      var rfr = window.location.href;\n\n                      try {\n                        rfr = window.self !== window.top\n                          ? window.top.location.href\n                          : (\/^https?:\\\/\\\/[\\w.-]+\\.[a-zA-Z]{2,}\/i.test(rfr) ? rfr : '');\n                      } catch (e) { }\n\n                      if (rfr \u0026\u0026 rfr !== '') {\n                        if (rfr.length \u003e 1800) {\n                          var queryIndex = rfr.indexOf('?');\n\n                          if (queryIndex \u003e -1) {\n                            rfr = rfr.substring(0, queryIndex);\n                          }\n\n                          if (rfr.length \u003e 1800) {\n                            rfr = rfr.substring(0, 1800);\n                          }\n                        }\n\n                        ifrmSrc += (ifrmSrc.indexOf('?') \u003e 0 ? '\u0026' : '?')\n                          + 'referrername=' + encodeURIComponent(rfr);\n                      }\n                    }\n                  } catch (e) { }\n\n                  f.src = ifrmSrc;\n                  f.style.border = 'none';\n                  f.style.height = '220px';\n                  f.style.width = '100%';\n                  f.style.display = 'block';\n                  f.style.transition = 'all 0.5s ease';\n                  f.setAttribute('aria-label', 'UM-D1 Product Newsletter Signup');\n\n                  var d = document.getElementById('zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU');\n                  d.appendChild(f);\n\n                  window.addEventListener('message', function (event) {\n                    var evntData = event.data;\n\n                    if (evntData \u0026\u0026 evntData.constructor == String) {\n                      var zf_ifrm_data = evntData.split('|');\n\n                      if (zf_ifrm_data.length == 2 || zf_ifrm_data.length == 3) {\n                        var zf_perma = zf_ifrm_data[0];\n                        var zf_ifrm_ht_nw = (parseInt(zf_ifrm_data[1], 10) + 35) + 'px';\n                        var iframe = document\n                          .getElementById('zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU')\n                          .getElementsByTagName('iframe')[0];\n\n                        if (iframe.src.indexOf('formperma') \u003e 0 \u0026\u0026 iframe.src.indexOf(zf_perma) \u003e 0) {\n                          var prevIframeHeight = iframe.style.height;\n                          var zf_tout = false;\n\n                          if (zf_ifrm_data.length == 3) {\n                            iframe.scrollIntoView();\n                            zf_tout = true;\n                          }\n\n                          if (prevIframeHeight != zf_ifrm_ht_nw) {\n                            if (zf_tout) {\n                              setTimeout(function () {\n                                iframe.style.height = zf_ifrm_ht_nw;\n                              }, 500);\n                            } else {\n                              iframe.style.height = zf_ifrm_ht_nw;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }, false);\n                } catch (e) { }\n              })();\n            \u003c\/script\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"top-banner-actions d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start mt-4 mb-2\"\u003e\n            \u003cimg class=\"top-banner-kickstarter\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/logo_coming-soon-on-kickstarter.png\" alt=\"Coming soon on Kickstarter\"\u003e\n            \u003c!--\n            \u003ca class=\"text-link\" href=\"https:\/\/www.kickstarter.com\/projects\/glinet\/umino-d1-mini-and-pro\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGet Notified on Kickstarter \u003ci class=\"fa-solid fa-arrow-right ml-2\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\u003c\/a\u003e\n            --\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"top-banner-media col-12 col-lg-7 align-self-lg-stretch pb-4 pb-lg-0 position-relative\"\u003e\n          \u003cimg class=\"top-banner-products\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_hero_banner_mini-and-pro.png\" alt=\"Umino D1 Mini and D1 Pro dashcams\"\u003e\n          \u003cvideo class=\"d-block\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n            \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_hero_banner_video.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Why Crowdfunding --\u003e\n  \u003csection class=\"py-4 py-lg-5\" style=\"background-color: #131313\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cdiv class=\"row justify-content-center text-light text-left\"\u003e\n        \u003cdiv class=\"col-12\"\u003e\n          \u003cdiv class=\"umino-d1-crowdfunding-card gl-rounded p-4 p-lg-5\"\u003e\n            \u003ch2 class=\"font-weight-bold\"\u003eWhy Crowdfunding?\u003c\/h2\u003e\n            \u003cp\u003eUmino is an internal startup venture dedicated to making visual technology more accessible, portable, and practical for people on the move. Backed by GL.iNet's extensive hardware expertise, our team operates independently with its own budget and financial responsibilities.\u003c\/p\u003e\n            \u003cp\u003eKickstarter allows us to validate market demand, plan our first production run based on real customer interest, and minimize excess inventory and waste.\u003c\/p\u003e\n            \u003cp class=\"mb-0\"\u003eThis approach enables us to bring innovative products to market responsibly and sustainably, while giving early supporters the opportunity to help shape Umino's future.\u003c\/p\u003e\n            \u003chr class=\"mt-lg-5 my-4\"\u003e\n            \u003cdiv class=\"row align-items-center\"\u003e\n              \u003cdiv class=\"col-12 col-lg mb-3 mb-lg-0\"\u003e\n                \u003ch5 class=\"font-weight-bold mb-0\"\u003eGet early access to Umino's Kickstarter campaign, exclusive perks, and special rewards with a VIP Pass.\u003c\/h5\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"col-12 col-lg-auto\"\u003e\n                \u003ca class=\"btn btn-light btn-round font-weight-bold\" href=\"\/en-eu\/pages\/um-d1-vip\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGet Your VIP Pass\u003c\/a\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n \u003c!-- Highlights --\u003e\n  \u003csection class=\"py-4 py-lg-5 text-light\" style=\"background-color: #131313;\" id=\"highlight\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cdiv class=\"umino-d1-highlight-grid\"\u003e\n        \u003cdiv class=\"umino-d1-highlight-grid-row umino-d1-highlight-grid-row-1\"\u003e\n          \u003carticle class=\"umino-d1-highlight-card umino-d1-highlight-card--1 p-3 p-lg-4\"\u003e\n            \u003cvideo class=\"umino-d1-highlight-card__video\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n              \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/highlight_day-and-night.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n            \u003ch3 class=\"font-weight-bold\"\u003eSony STARVIS 2 + CPL Filter \u003cbr class=\"d-none d-md-inline\"\u003eClarity in Every Light\u003c\/h3\u003e\n            \u003cspan class=\"umino-d1-highlight-card__badge umino-d1-highlight-card__badge--day\"\u003e\n              \u003ci class=\"fa-solid fa-sun-bright\" aria-hidden=\"true\"\u003e\u003c\/i\u003e Day\n            \u003c\/span\u003e\n            \u003cdiv class=\"umino-d1-highlight-card__badges\"\u003e\n              \u003cspan class=\"umino-d1-highlight-card__badge umino-d1-highlight-card__badge--night\"\u003e\n                \u003ci class=\"fa-solid fa-moon-stars\" aria-hidden=\"true\"\u003e\u003c\/i\u003e Night\n              \u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/article\u003e\n          \u003carticle class=\"umino-d1-highlight-card umino-d1-highlight-card--2 p-3 p-lg-4\"\u003e\n            \u003ch3 class=\"font-weight-bold\"\u003eSuction Cup Mount. \u003cbr class=\"d-none d-md-inline\"\u003eLeaves No Residue.\u003c\/h3\u003e\n          \u003c\/article\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"umino-d1-highlight-grid-row umino-d1-highlight-grid-row-2\"\u003e\n          \u003carticle class=\"umino-d1-highlight-card umino-d1-highlight-card--3 p-3 p-lg-4\"\u003e\n            \u003ch3 class=\"font-weight-bold\"\u003eWi-Fi 6\u003c\/h3\u003e\n            \u003cp class=\"font-italic mb-0\"\u003e \u0026gt; 20 MB\/s Transfer\u003c\/p\u003e\n          \u003c\/article\u003e\n          \u003carticle class=\"umino-d1-highlight-card umino-d1-highlight-card--4 p-3 p-lg-4\"\u003e\n            \u003ch3 class=\"font-weight-bold\"\u003eTurn Every Drive Into a Travel Story\u003c\/h3\u003e\n            \u003cp class=\"font-italic mb-0\"\u003e*Available with the Umino Cam App\u003c\/p\u003e\n          \u003c\/article\u003e\n          \u003carticle class=\"umino-d1-highlight-card umino-d1-highlight-card--5 p-3 p-lg-4\"\u003e\n            \u003cvideo class=\"umino-d1-highlight-card__video\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n              \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/highlight_chanllenging-light.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n            \u003ch3 class=\"font-weight-bold\"\u003eBalanced Detail \u003cbr class=\"d-none d-md-inline\"\u003ein Challenging Light\u003c\/h3\u003e\n          \u003c\/article\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n \u003c!-- Features --\u003e\n  \u003csection class=\"umino-d1-features\" aria-label=\"Umino D1 features\"\u003e\n    \u003cdiv class=\"umino-d1-features-sticky\"\u003e\n      \u003cdiv class=\"umino-d1-features-frame\" style=\"--feature-position-x: 49%;\" data-lens-x=\"56.5\" data-lens-y=\"60\" data-mobile-lens-x=\"53.75\" data-mobile-lens-y=\"67\"\u003e\n        \u003cimg src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_features_01.png\" alt=\"Umino D1 feature 1\"\u003e\n        \u003ch3 class=\"umino-d1-features-callout\"\u003e\n\u003cspan class=\"umino-d1-features-callout-line\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003cspan class=\"umino-d1-features-callout-title\"\u003e4K Front\u003c\/span\u003e\n\u003c\/h3\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"umino-d1-features-frame\" style=\"--feature-position-x: 46%;\" data-lens-x=\"53.5\" data-lens-y=\"49.5\" data-mobile-lens-x=\"51.75\" data-mobile-lens-y=\"53.5\"\u003e\n        \u003cimg src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_features_03.png\" alt=\"Umino D1 feature 3\"\u003e\n        \u003ch3 class=\"umino-d1-features-callout\"\u003e\n\u003cspan class=\"umino-d1-features-callout-line\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003cspan class=\"umino-d1-features-callout-title\"\u003e1080p Interior\u003c\/span\u003e\n\u003c\/h3\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"umino-d1-features-frame\" style=\"--feature-position-x: 37%;\" data-lens-x=\"45.5\" data-lens-y=\"56.5\" data-mobile-lens-x=\"41.67\" data-mobile-lens-y=\"63.5\"\u003e\n        \u003cimg src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_features_02.png\" alt=\"Umino D1 feature 2\"\u003e\n        \u003ch3 class=\"umino-d1-features-callout\"\u003e\n\u003cspan class=\"umino-d1-features-callout-line\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003cspan class=\"umino-d1-features-callout-title\"\u003e2K Front\u003c\/span\u003e\n\u003c\/h3\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003cscript\u003e\n    (function () {\n      var section = document.querySelector(\".umino-d1-features\");\n      if (!section) return;\n\n      var frames = Array.prototype.map.call(section.querySelectorAll(\".umino-d1-features-frame\"), function (frame) {\n        return {\n          element: frame,\n          img: frame.querySelector(\"img\"),\n          callout: frame.querySelector(\".umino-d1-features-callout\"),\n          line: frame.querySelector(\".umino-d1-features-callout-line\"),\n          title: frame.querySelector(\".umino-d1-features-callout-title\")\n        };\n      });\n      var desktopMq = window.matchMedia(\"(min-width: 992px)\");\n      var loading = false;\n\n      function placeCallouts() {\n        var boxW = section.clientWidth;\n        var boxH = section.querySelector(\".umino-d1-features-sticky\").clientHeight;\n        var isDesktop = desktopMq.matches;\n        var anchor = isDesktop ? \"data-lens-\" : \"data-mobile-lens-\";\n\n        for (var i = 0; i \u003c frames.length; i++) {\n          var frame = frames[i];\n          var img = frame.img;\n          if (!img.naturalWidth || !boxW) continue;\n\n          var cover = Math.max(boxW \/ img.naturalWidth, boxH \/ img.naturalHeight);\n          var width = img.naturalWidth * cover;\n          var height = img.naturalHeight * cover;\n          var positionX = isDesktop ? 0.5 : parseFloat(getComputedStyle(img).objectPosition) \/ 100;\n          var lensX = (boxW - width) * positionX + (parseFloat(frame.element.getAttribute(anchor + \"x\")) \/ 100) * width;\n          var lensY = (boxH - height) \/ 2 + (parseFloat(frame.element.getAttribute(anchor + \"y\")) \/ 100) * height;\n          var calloutX = lensX;\n\n          if (!isDesktop) {\n            \/\/ 按最大缩放 1.08 留出 16px 边距；文字避让边缘时，竖线仍对准镜头下沿。\n            var halfTitle = frame.title.offsetWidth \/ 2;\n            var minX = boxW \/ 2 + (16 - boxW \/ 2) \/ 1.08 + halfTitle;\n            var maxX = boxW \/ 2 + (boxW \/ 2 - 16) \/ 1.08 - halfTitle;\n            calloutX = Math.max(minX, Math.min(maxX, lensX));\n            var gap = parseFloat(getComputedStyle(frame.callout).rowGap);\n            var bottom = boxH \/ 2 + (boxH \/ 2 - 16) \/ 1.08;\n            var lineHeight = Math.max(0, Math.min(96, boxH * 0.12, bottom - lensY - gap - frame.title.offsetHeight));\n            frame.callout.style.setProperty(\"--feature-line-offset\", (lensX - calloutX) + \"px\");\n            frame.callout.style.setProperty(\"--feature-line-height\", lineHeight + \"px\");\n          }\n\n          frame.callout.style.left = calloutX + \"px\";\n          frame.callout.style.top = lensY + \"px\";\n        }\n      }\n\n      function loadScript(src, isReady) {\n        if (isReady()) return Promise.resolve();\n        return new Promise(function (resolve, reject) {\n          var script = document.querySelector('script[src=\"' + src + '\"]');\n          if (!script) {\n            script = document.createElement(\"script\");\n            script.src = src;\n            script.addEventListener(\"load\", resolve, { once: true });\n            script.addEventListener(\"error\", reject, { once: true });\n            document.head.appendChild(script);\n            return;\n          }\n\n          script.addEventListener(\"load\", resolve, { once: true });\n          script.addEventListener(\"error\", reject, { once: true });\n        });\n      }\n\n      function setupAnimation() {\n        var hold = 1;\n        var fade = 0.5;\n        ScrollTrigger.getAll().forEach(function (trigger) {\n          if (trigger.trigger !== section) return;\n          var animation = trigger.animation;\n          trigger.kill();\n          if (animation) animation.kill();\n        });\n        placeCallouts();\n        var timeline = gsap.timeline({\n          defaults: { ease: \"none\" },\n          scrollTrigger: {\n            trigger: section,\n            start: \"top top\",\n            end: \"bottom bottom\",\n            scrub: 0.5,\n            onRefreshInit: placeCallouts\n          }\n        });\n\n        frames.forEach(function (frame, index) {\n          var start = index * (hold + fade);\n          var enter = index === 0 ? 0 : start - fade;\n          var end = start + hold + (index \u003c frames.length - 1 ? fade : 0);\n          gsap.set(frame.element, { opacity: index === 0 ? 1 : 0, scale: 1.08, zIndex: index + 1 });\n          gsap.set(frame.line, { scale: 0 });\n          gsap.set(frame.title, { opacity: 0, y: 24 });\n\n          if (index \u003e 0) {\n            timeline.to(frame.element, { opacity: 1, duration: fade, ease: \"sine.inOut\" }, enter);\n            timeline.set(frames[index - 1].element, { opacity: 0 }, start);\n          }\n          timeline.to(frame.element, { scale: 1.02, duration: end - enter }, enter);\n          timeline.to(frame.line, { scale: 1, duration: 0.3, ease: \"power1.out\" }, start);\n          timeline.to(frame.title, { opacity: 1, y: 0, duration: 0.4, ease: \"power1.out\" }, start + 0.12);\n        });\n      }\n\n      function start() {\n        if (loading) return;\n        loading = true;\n        \/\/ 与 Video 使用相同 CDN 地址，复用已经加载或正在加载的脚本。\n        loadScript(\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.4\/gsap.min.js\", function () {\n          return !!window.gsap;\n        }).then(function () {\n          return loadScript(\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.4\/ScrollTrigger.min.js\", function () {\n            return !!window.ScrollTrigger;\n          });\n        }).then(function () {\n          gsap.registerPlugin(ScrollTrigger);\n          setupAnimation();\n        }).catch(function (error) {\n          loading = false;\n          console.warn(\"[Umino Features] Animation unavailable:\", error);\n        });\n      }\n\n      frames.forEach(function (frame) {\n        if (!frame.img.complete) frame.img.addEventListener(\"load\", placeCallouts, { once: true });\n      });\n      start();\n    })();\n  \u003c\/script\u003e\n\n \u003c!-- Cases --\u003e\n  \u003csection class=\"umino-d1-cases-section py-4 py-lg-5 text-light\" style=\"background-color: #000;\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cdiv class=\"row align-items-center mb-5\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 pr-lg-5 mb-4 mb-lg-0\"\u003e\n          \u003ch2 class=\"font-weight-bold\"\u003eClarity You Can Count On.\u003c\/h2\u003e\n          \u003cp class=\"mb-0\"\u003eCapture greater detail across changing light with Sony STARVIS 2.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6\"\u003e\n          \u003cimg class=\"img-fluid gl-rounded w-100\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_clarity-elevated.png\" alt=\"Sony STARVIS 2 IMX678 and IMX675 image sensors\"\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"row align-items-center mb-5\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 order-2 order-lg-1\"\u003e\n          \u003cvideo class=\"d-block gl-rounded w-100\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n            \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_see-the-road.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6 order-1 order-lg-2 pl-lg-5 mb-4 mb-lg-0\"\u003e\n          \u003ch2 class=\"font-weight-bold\"\u003eSee the Road, Not the Reflection.\u003c\/h2\u003e\n          \u003cp class=\"mb-0\"\u003eThe included CPL Filter reduces windshield glare for a cleaner, more refined view.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"row align-items-center mb-5\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 pr-lg-5 mb-4 mb-lg-0\"\u003e\n          \u003ch2 class=\"font-weight-bold\"\u003eDetail Through Every Contrast.\u003c\/h2\u003e\n          \u003cp class=\"mb-0\"\u003eHDR helps preserve detail across bright highlights and deep shadows for a more balanced view of the road.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6\"\u003e\n          \u003cvideo class=\"d-block gl-rounded w-100\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n            \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_hdr.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"row align-items-center\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 order-2 order-lg-1\"\u003e\n          \u003cvideo class=\"d-block gl-rounded w-100\" autoplay muted loop playsinline aria-hidden=\"true\"\u003e\n            \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_day-and-night.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6 order-1 order-lg-2 pl-lg-5 mb-4 mb-lg-0\"\u003e\n          \u003ch2 class=\"font-weight-bold mb-0\"\u003eClear Views. Day and Night.\u003c\/h2\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n \u003c!-- Video \n \u003csection class=\"umino-d1-video d-none d-lg-block\"\u003e\n   \u003cdiv class=\"umino-d1-video-sticky\"\u003e\n     \u003cvideo playsinline=\"playsinline\" muted=\"muted\" preload=\"none\" aria-hidden=\"true\"\u003e\n       \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_video.mp4\" type=\"video\/mp4\"\u003e\n     \u003c\/video\u003e\n     \u003cdiv class=\"umino-d1-video-title container text-center text-light\"\u003e\n       \u003ch2 class=\"font-weight-bold mb-0\"\u003eThe Car is Rented.\u003cbr\u003eThe Journey Is Yours.\u003c\/h2\u003e\n     \u003c\/div\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n --\u003e\n\n \u003c!-- Video mobile \n \u003csection class=\"umino-d1-video-mobile d-lg-none py-5 text-light\"\u003e\n   \u003cvideo playsinline=\"playsinline\" muted=\"muted\" preload=\"none\" aria-hidden=\"true\"\u003e\n     \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_video.mp4\" type=\"video\/mp4\"\u003e\n   \u003c\/video\u003e\n   \u003cdiv class=\"container text-center\"\u003e\n     \u003ch2 class=\"font-weight-bold mb-0\"\u003eThe Car is Rented.\u003cbr\u003eThe Journey Is Yours.\u003c\/h2\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n \u003cscript\u003e\n   (function () {\n     var GSAP_URL = \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.4\/gsap.min.js\";\n     var ST_URL = \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.4\/ScrollTrigger.min.js\";\n     var desktopMq = window.matchMedia(\"(min-width: 992px)\");\n     var desktopTl;\n     var playGen = 0;\n     var unlocked = false;\n\n     function loadScript(src) {\n       return new Promise(function (resolve, reject) {\n         var existing = document.querySelector('script[src=\"' + src + '\"]');\n         if (existing) {\n           if ((src.indexOf(\"ScrollTrigger\") !== -1 \u0026\u0026 window.ScrollTrigger) ||\n               (src.indexOf(\"gsap.min.js\") !== -1 \u0026\u0026 window.gsap)) {\n             resolve();\n             return;\n           }\n           existing.addEventListener(\"load\", resolve);\n           existing.addEventListener(\"error\", reject);\n           return;\n         }\n         var script = document.createElement(\"script\");\n         script.src = src;\n         script.onload = resolve;\n         script.onerror = reject;\n         document.head.appendChild(script);\n       });\n     }\n\n     function ensureGsap() {\n       if (window.gsap \u0026\u0026 window.ScrollTrigger) return Promise.resolve();\n       var ready = window.gsap ? Promise.resolve() : loadScript(GSAP_URL);\n       return ready.then(function () {\n         return window.ScrollTrigger ? Promise.resolve() : loadScript(ST_URL);\n       });\n     }\n\n     function killDesktop(section) {\n       if (desktopTl) {\n         if (desktopTl.scrollTrigger) desktopTl.scrollTrigger.kill();\n         desktopTl.kill();\n         desktopTl = null;\n       }\n       if (section) section.style.height = \"\";\n     }\n\n     function freezeLastFrame(video, gen) {\n       if (!video) return;\n       video.pause();\n       video.muted = true;\n       function toEnd() {\n         if (gen !== playGen) return;\n         if (video.duration \u0026\u0026 isFinite(video.duration)) {\n           video.currentTime = Math.max(0, video.duration - 0.05);\n         }\n       }\n       if (video.readyState \u003e= 1) {\n         toEnd();\n       } else {\n         video.addEventListener(\"loadedmetadata\", toEnd, { once: true });\n       }\n     }\n\n     function unlockVideos(desktopVideo, mobileVideo) {\n       if (unlocked) return;\n       unlocked = true;\n       [desktopVideo, mobileVideo].forEach(function (video) {\n         if (!video) return;\n         var playPromise = video.play();\n         if (playPromise \u0026\u0026 playPromise.then) {\n           playPromise.then(function () {\n             video.pause();\n           }).catch(function () {});\n         }\n       });\n     }\n\n     function setupDesktop(section, video, gen) {\n       if (!section || !video) return;\n\n       video.pause();\n       video.muted = true;\n       gsap.registerPlugin(ScrollTrigger);\n\n       function bind() {\n         if (gen !== playGen || !desktopMq.matches || !video.duration || !isFinite(video.duration)) return;\n\n         var screens = Math.max(1, video.duration * 0.28);\n         var title = section.querySelector(\".umino-d1-video-title\");\n         section.style.height = (1 + screens) * 100 + \"vh\";\n\n         desktopTl = gsap.timeline({\n           scrollTrigger: {\n             trigger: section,\n             start: \"top 10%\",\n             end: \"bottom bottom\",\n             scrub: 0.4,\n             invalidateOnRefresh: true\n           }\n         });\n\n         desktopTl.to(video, {\n           currentTime: video.duration,\n           ease: \"none\",\n           duration: 1\n         }, 0);\n\n         if (title) {\n           desktopTl.fromTo(title, {\n             opacity: 0,\n             y: 32\n           }, {\n             opacity: 1,\n             y: 0,\n             ease: \"none\",\n             duration: 0.2\n           }, 0.55);\n         }\n\n         ScrollTrigger.refresh();\n       }\n\n       if (video.readyState \u003e= 1) {\n         bind();\n       } else {\n         video.addEventListener(\"loadedmetadata\", bind, { once: true });\n       }\n     }\n\n     function apply() {\n       var desktopSection = document.querySelector(\".umino-d1-main-container .umino-d1-video\");\n       var desktopVideo = desktopSection \u0026\u0026 desktopSection.querySelector(\"video\");\n       var mobileSection = document.querySelector(\".umino-d1-main-container .umino-d1-video-mobile\");\n       var mobileVideo = mobileSection \u0026\u0026 mobileSection.querySelector(\"video\");\n       var gen = ++playGen;\n\n       killDesktop(desktopSection);\n\n       if (desktopMq.matches) {\n         if (mobileVideo) {\n           mobileVideo.pause();\n           mobileVideo.preload = \"none\";\n         }\n         if (desktopVideo) {\n           desktopVideo.preload = \"auto\";\n           desktopVideo.load();\n         }\n         ensureGsap().then(function () {\n           if (gen !== playGen || !desktopMq.matches) return;\n           setupDesktop(desktopSection, desktopVideo, gen);\n         });\n       } else {\n         if (desktopVideo) {\n           desktopVideo.pause();\n           desktopVideo.preload = \"none\";\n         }\n         if (mobileVideo) {\n           mobileVideo.preload = \"auto\";\n           mobileVideo.load();\n           freezeLastFrame(mobileVideo, gen);\n         }\n       }\n     }\n\n     function start() {\n       var desktopVideo = document.querySelector(\".umino-d1-main-container .umino-d1-video video\");\n       var mobileVideo = document.querySelector(\".umino-d1-main-container .umino-d1-video-mobile video\");\n       function unlock() {\n         unlockVideos(desktopVideo, mobileVideo);\n       }\n       window.addEventListener(\"touchstart\", unlock, { once: true });\n       window.addEventListener(\"click\", unlock, { once: true });\n\n       apply();\n       if (desktopMq.addEventListener) {\n         desktopMq.addEventListener(\"change\", apply);\n       } else if (desktopMq.addListener) {\n         desktopMq.addListener(apply);\n       }\n     }\n\n     if (document.readyState === \"loading\") {\n       document.addEventListener(\"DOMContentLoaded\", start);\n     } else {\n       start();\n     }\n   })();\n \u003c\/script\u003e\n --\u003e\n\n \u003c!-- Travel Case --\u003e\n  \u003csection class=\"umino-d1-travel-section py-4 py-lg-5 text-light\" style=\"background-color: #000;\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cdiv class=\"row align-items-center\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 mb-4 mb-lg-0\"\u003e\n          \u003ch2 class=\"font-weight-bold\"\u003eTravel, Thoughtfully Organized\u003c\/h2\u003e\n          \u003cp class=\"mb-0\"\u003eThe included Travel Case brings your dashcam and essentials together in one refined, easy-to-carry setup.\u003c\/p\u003e\n         \n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6 pl-lg-5\"\u003e\n          \u003cimg class=\"img-fluid gl-rounded w-100\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_travel.jpg\" alt=\"Umino D1 travel case\"\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n  \u003c!-- Driving Awareness \n  \u003csection class=\"umino-d1-adas-section py-4 py-lg-5 text-light\" style=\"background-color: #000;\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cdiv class=\"text-center mb-5\"\u003e\n        \u003ch4 class=\"umino-d1-muted\" style=\"font-weight: 400\"\u003e*Umino D1 Pro Only\u003c\/h4\u003e\n        \u003ch2 class=\"font-weight-bold\"\u003eStay One Step Ahead on Unfamiliar Roads.\u003c\/h2\u003e\n        \u003cp class=\"umino-d1-muted mb-0\"\u003eD1 Pro adds an extra layer of driving awareness to help you stay alert\u003cbr class=\"d-none d-lg-inline\"\u003e and react with greater confidence on the road.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"row align-items-center\"\u003e\n        \u003cdiv class=\"col-12 col-lg-6 mb-4 mb-lg-0\"\u003e\n          \u003cdiv class=\"tab-content\"\u003e\n            \u003cdiv class=\"tab-pane active\" id=\"umino-d1-forward-collision\" role=\"tabpanel\" aria-labelledby=\"umino-d1-forward-collision-tab\"\u003e\n              \u003cvideo class=\"d-block gl-rounded w-100\" muted loop playsinline preload=\"none\" aria-label=\"Forward Collision Warning demonstration\"\u003e\n                \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/video_forward-collision-warning.mp4\" type=\"video\/mp4\"\u003e\n              \u003c\/video\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"tab-pane\" id=\"umino-d1-following-distance\" role=\"tabpanel\" aria-labelledby=\"umino-d1-following-distance-tab\"\u003e\n              \u003cvideo class=\"d-block gl-rounded w-100\" muted loop playsinline preload=\"none\" aria-label=\"Following Distance Warning demonstration\"\u003e\n                \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/video_following-distance-warning.mp4\" type=\"video\/mp4\"\u003e\n              \u003c\/video\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"tab-pane\" id=\"umino-d1-pedestrian-collision\" role=\"tabpanel\" aria-labelledby=\"umino-d1-pedestrian-collision-tab\"\u003e\n              \u003cvideo class=\"d-block gl-rounded w-100\" muted loop playsinline preload=\"none\" aria-label=\"Pedestrian Collision Warning demonstration\"\u003e\n                \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/video_pedestrian-collision-warning.mp4\" type=\"video\/mp4\"\u003e\n              \u003c\/video\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"tab-pane\" id=\"umino-d1-lane-departure\" role=\"tabpanel\" aria-labelledby=\"umino-d1-lane-departure-tab\"\u003e\n              \u003cvideo class=\"d-block gl-rounded w-100\" muted loop playsinline preload=\"none\" aria-label=\"Lane Departure Warning demonstration\"\u003e\n                \u003csource src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/video_lane-departure-warning.mp4\" type=\"video\/mp4\"\u003e\n              \u003c\/video\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"col-12 col-lg-6 pl-lg-5\"\u003e\n          \u003cdiv class=\"umino-d1-adas-tabs nav flex-column\" role=\"tablist\" aria-label=\"Driving awareness features\" aria-orientation=\"vertical\"\u003e\n            \u003ca class=\"nav-link active py-2 pl-3 mb-3\" id=\"umino-d1-forward-collision-tab\" data-toggle=\"tab\" href=\"#umino-d1-forward-collision\" role=\"tab\" aria-controls=\"umino-d1-forward-collision\" aria-selected=\"true\"\u003e\n              \u003ch3 class=\"font-weight-bold mb-0\"\u003eForward Collision Warning\u003c\/h3\u003e\n              \u003cdiv class=\"umino-d1-adas-description\"\u003e\n                \u003cdiv\u003e\u003cp class=\"mt-2 mb-0\"\u003eAlerts the driver when the vehicle ahead decelerates suddenly, or the distance to that vehicle is closing too quickly.\u003c\/p\u003e\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/a\u003e\n            \u003ca class=\"nav-link py-2 pl-3 mb-3\" id=\"umino-d1-following-distance-tab\" data-toggle=\"tab\" href=\"#umino-d1-following-distance\" role=\"tab\" aria-controls=\"umino-d1-following-distance\" aria-selected=\"false\"\u003e\n              \u003ch3 class=\"font-weight-bold mb-0\"\u003eFollowing Distance Warning\u003c\/h3\u003e\n              \u003cdiv class=\"umino-d1-adas-description\"\u003e\n                \u003cdiv\u003e\u003cp class=\"mt-2 mb-0\"\u003eAlerts the driver when the following distance to the vehicle ahead is too short.\u003c\/p\u003e\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/a\u003e\n            \u003ca class=\"nav-link py-2 pl-3 mb-3\" id=\"umino-d1-pedestrian-collision-tab\" data-toggle=\"tab\" href=\"#umino-d1-pedestrian-collision\" role=\"tab\" aria-controls=\"umino-d1-pedestrian-collision\" aria-selected=\"false\"\u003e\n              \u003ch3 class=\"font-weight-bold mb-0\"\u003ePedestrian Collision Warning\u003c\/h3\u003e\n              \u003cdiv class=\"umino-d1-adas-description\"\u003e\n                \u003cdiv\u003e\u003cp class=\"mt-2 mb-0\"\u003eAlerts the driver when a pedestrian is detected in the vehicle’s path.\u003c\/p\u003e\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/a\u003e\n            \u003ca class=\"nav-link py-2 pl-3\" id=\"umino-d1-lane-departure-tab\" data-toggle=\"tab\" href=\"#umino-d1-lane-departure\" role=\"tab\" aria-controls=\"umino-d1-lane-departure\" aria-selected=\"false\"\u003e\n              \u003ch3 class=\"font-weight-bold mb-0\"\u003eLane Departure Warning\u003c\/h3\u003e\n              \u003cdiv class=\"umino-d1-adas-description\"\u003e\n                \u003cdiv\u003e\u003cp class=\"mt-2 mb-0\"\u003eAlerts the driver when the vehicle begins to drift out of its lane.\u003c\/p\u003e\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/a\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"small umino-d1-muted font-italic mt-4 mb-0\"\u003e*ADAS alerts are for assistance only and do not replace driver attention or judgment. Always follow local traffic laws and road conditions.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003cscript\u003e\n    (function () {\n      function initDrivingAwarenessTabs() {\n        var section = document.querySelector(\".umino-d1-adas-section\");\n        if (!section || !window.jQuery || !window.jQuery.fn.tab) return;\n        var tabs = section.querySelector(\".umino-d1-adas-tabs\");\n        var videos = section.querySelectorAll(\"video\");\n        var inView = false;\n\n        function updatePlayback() {\n          tabs.classList.toggle(\"is-running\", inView \u0026\u0026 !document.hidden);\n          videos.forEach(function (video) {\n            if (video.closest(\".tab-pane\").classList.contains(\"active\") \u0026\u0026 inView \u0026\u0026 !document.hidden) {\n              video.play().catch(function () {});\n            } else {\n              video.pause();\n            }\n          });\n        }\n\n        tabs.addEventListener(\"animationend\", function (event) {\n          if (event.animationName !== \"umino-d1-adas-progress\") return;\n          var active = tabs.querySelector(\".nav-link.active\");\n          if (event.target !== active) return;\n          window.jQuery(active.nextElementSibling || tabs.firstElementChild).tab(\"show\");\n        });\n\n        tabs.addEventListener(\"click\", function (event) {\n          if (!event.target.closest(\".nav-link\")) return;\n          tabs.classList.add(\"is-resetting\");\n          void tabs.offsetWidth;\n          tabs.classList.remove(\"is-resetting\");\n        });\n\n        window.jQuery(tabs).on(\"shown.bs.tab\", function (event) {\n          var video = section.querySelector(event.target.getAttribute(\"href\") + \" video\");\n          video.currentTime = 0;\n          updatePlayback();\n        });\n\n        new IntersectionObserver(function (entries) {\n          inView = entries[0].isIntersecting;\n          updatePlayback();\n        }).observe(section);\n        document.addEventListener(\"visibilitychange\", updatePlayback);\n      }\n\n      if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", initDrivingAwarenessTabs, { once: true });\n      } else {\n        initDrivingAwarenessTabs();\n      }\n    })();\n  \u003c\/script\u003e\n  --\u003e\n\n  \u003c!-- Specifications --\u003e\n  \u003csection class=\"umino-d1-spec-section py-5 text-light\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003ch2 class=\"font-weight-bold mb-4\"\u003eSpecifications\u003c\/h2\u003e\n      \u003cdiv class=\"umino-d1-spec-card\"\u003e\n        \u003cdiv class=\"umino-d1-spec-images\"\u003e\n          \u003cimg class=\"mb-3\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/table_d1-mini.png\" alt=\"Umino D1 Mini dashcam\"\u003e\n          \u003cimg class=\"mb-3\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/table_d1-pro.png\" alt=\"Umino D1 Pro dashcam\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"umino-d1-spec-products\"\u003e\n          \u003ch4\u003eUmino D1 Mini\u003c\/h4\u003e\n          \u003ch4\u003eUmino D1 Pro\u003c\/h4\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"umino-d1-spec-compare\"\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-microchip\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003eSony STARVIS 2\u003cbr\u003eIMX675 (5 MP)\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eImage Sensor\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-microchip\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003eSony STARVIS 2\u003cbr\u003eIMX678 (8 MP)\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eImage Sensor\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-video\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e2K @ 60 fps\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eMax Resolution\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-video\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003eFront 4K @ 30 fps\u003cbr\u003eCabin 1080p @ 30 fps\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eMax Resolution\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-aperture\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003eF1.8 \/ 140°\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eAperture \/ FOV\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-aperture\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003eFront F1.8 \/ 140°\u003cbr\u003eCabin F2.0 \/ 125°\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eAperture \/ FOV\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-display\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e1.69-inch\u003cbr\u003eIPS\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eColor Touchscreen\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-display\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e1.69-inch\u003cbr\u003eFull-lamination IPS\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eColor Touchscreen\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-expand\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e63 x 55.83 x 27.76\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eDimensions (mm)\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-expand\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e95 x 56.8 x 27.8\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eDimensions (mm)\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"umino-d1-spec-compare-row\"\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-weight-hanging\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e103g\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eWeight\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-cell\"\u003e\n              \u003ci class=\"fa-regular fa-weight-hanging\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n              \u003cp class=\"umino-d1-spec-value\"\u003e153g\u003c\/p\u003e\n              \u003cp class=\"umino-d1-spec-name small mt-auto\"\u003eWeight\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cbutton class=\"umino-d1-spec-toggle\" type=\"button\" data-toggle=\"collapse\" data-target=\"#umino-d1-spec-shared\" aria-expanded=\"false\" aria-controls=\"umino-d1-spec-shared\"\u003e\n          Expand to learn more \u003ci class=\"fa-solid fa-chevron-down\" aria-hidden=\"true\"\u003e\u003c\/i\u003e\n        \u003c\/button\u003e\n        \u003cdiv class=\"collapse\" id=\"umino-d1-spec-shared\"\u003e\n          \u003cdiv class=\"umino-d1-spec-shared\"\u003e\n            \u003ch5\u003eHardware\u003c\/h5\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003ePositioning (GNSS)\u003c\/span\u003e\u003cspan\u003eSupport\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eG-Sensor\u003c\/span\u003e\u003cspan\u003eSupport\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eWireless\u003c\/span\u003e\u003cspan\u003eWi-Fi 6 (2.4 GHz \u0026amp; 5 GHz) + Bluetooth 5.0\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eWi-Fi Transfer Rate\u003c\/span\u003e\u003cspan\u003eUp to 20 MB\/s\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eAudio\u003c\/span\u003e\u003cspan\u003eDual microphone + speaker\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eStorage Expansion\u003c\/span\u003e\u003cspan\u003emicroSD up to 512 GB (exFAT)\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003ePower Backup\u003c\/span\u003e\u003cspan\u003eSupercapacitor\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003ch5\u003eEnvironment\u003c\/h5\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eOperating Temperature\u003c\/span\u003e\u003cspan\u003e-10 ~ 60°C (14 ~ 140°F)\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eOperating Humidity\u003c\/span\u003e\u003cspan\u003e5% ~ 95%, non-condensing\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"umino-d1-spec-shared-row\"\u003e\n\u003cspan\u003eIngress Protection\u003c\/span\u003e\u003cspan\u003eIP4X\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n   \u003c!-- Disclaimer --\u003e\n   \u003csection class=\"py-3 py-lg-4 text-light\" style=\"background-color: #000;\"\u003e\n    \u003cdiv class=\"container\"\u003e\n      \u003cp class=\"mb-0 small\"\u003e*Privacy, surveillance, and recording laws vary by location. Please comply with all applicable laws when using this product.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\n\u003c\/main\u003e\n\n\u003cscript src=\"https:\/\/js.gl-inet.com\/web-sdk\/6.1\/braze.min.js\"\u003e\u003c\/script\u003e\n\u003cscript\u003e\n  (function () {\n    if (window.__brazeBannerLoaded) {\n      return;\n    }\n\n    window.__brazeBannerLoaded = true;\n\n    const placementId = 'pdp_top_banner_um-d1';\n    let bannerInserted = false;\n\n    function showZohoFallback() {\n      const bannerContainer = document.getElementById('global-banner-container');\n      const zohoFallback = document.getElementById('zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU');\n\n      if (bannerContainer) {\n        bannerContainer.style.display = 'none';\n      }\n\n      if (zohoFallback) {\n        zohoFallback.style.display = '';\n      } else {\n        console.warn('[Braze] Zoho fallback container not found');\n      }\n    }\n\n    try {\n      if (typeof braze === 'undefined') {\n        throw new Error('Braze SDK is unavailable');\n      }\n\n      const initialized = braze.initialize('a3cb3cae-dc89-461c-9ddf-ca3980efb0c6', {\n        baseUrl: 'sdk.iad-07.braze.com',\n        enableLogging: true,\n        allowUserSuppliedJavascript: true,\n      });\n\n      if (!initialized) {\n        console.error('[Braze] SDK initialization failed');\n        showZohoFallback();\n        return;\n      }\n\n      const bannerContainer = document.getElementById('global-banner-container');\n      const desktop = window.matchMedia('(min-width: 992px)');\n\n      function updateAlignment() {\n        const iframe = bannerContainer.querySelector('iframe');\n        if (!iframe || !iframe.contentDocument) return;\n        iframe.contentDocument.documentElement.style.setProperty(\n          '--subscribe-align', desktop.matches ? 'flex-start' : 'center'\n        );\n      }\n\n      function styleBanner(iframe) {\n        const doc = iframe.contentDocument;\n        if (!doc || !doc.querySelector('#mc-embedded-subscribe-form')) return;\n\n        if (!doc.getElementById('umino-subscribe-styles')) {\n          const style = doc.createElement('style');\n          style.id = 'umino-subscribe-styles';\n          style.textContent = `\n            body #mc_embed_shell {\n              justify-content: var(--subscribe-align);\n              margin-top: 0;\n            }\n\n            body #mc-embedded-subscribe-form {\n              width: 100%;\n              margin: 0;\n              justify-content: var(--subscribe-align);\n            }\n\n            body #mc_embed_shell input[type=\"submit\"] {\n              background-color: #2b2b2b;\n              transition: none;\n            }\n\n            body #mc_embed_shell input[type=\"submit\"]:hover {\n              background-color: #3a3a3a;\n            }\n          `;\n          doc.head.appendChild(style);\n        }\n\n        updateAlignment();\n        iframe.setAttribute('data-subscribe-styled', '');\n      }\n\n      if (!bannerContainer) {\n        showZohoFallback();\n        return;\n      }\n\n      bannerContainer.addEventListener('load', function (event) {\n        if (event.target.tagName === 'IFRAME') styleBanner(event.target);\n      }, true);\n\n      const bannerObserver = new MutationObserver(function () {\n        const iframe = bannerContainer.querySelector('iframe');\n        if (iframe \u0026\u0026 iframe.contentDocument \u0026\u0026 iframe.contentDocument.readyState === 'complete') {\n          styleBanner(iframe);\n        }\n      });\n      bannerObserver.observe(bannerContainer, { childList: true });\n      desktop.addEventListener('change', updateAlignment);\n\n      braze.subscribeToBannersUpdates(function (banners) {\n        console.log('[Braze] Banners updated:', banners);\n\n        const container = document.getElementById('global-banner-container');\n\n        if (!container) {\n          console.warn('[Braze] Banner container not found');\n          return;\n        }\n\n        if (bannerInserted) {\n          console.log('[Braze] Banner already inserted, skipping duplicate render');\n          return;\n        }\n\n        const banner = braze.getBanner(placementId);\n        const zohoFallback = document.getElementById('zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU');\n\n        console.log('[Braze] Banner:', banner);\n\n        if (!banner) {\n          console.warn('[Braze] No Banner for placement:', placementId);\n          showZohoFallback();\n          return;\n        }\n\n        if (banner.isControl) {\n          console.warn('[Braze] Banner is control');\n          container.style.display = 'none';\n          if (zohoFallback) zohoFallback.style.display = 'none';\n          return;\n        }\n\n        container.innerHTML = '';\n        container.style.display = '';\n        if (zohoFallback) zohoFallback.style.display = 'none';\n\n        braze.insertBanner(banner, container);\n        bannerInserted = true;\n\n        console.log('[Braze] Banner inserted:', placementId);\n      });\n\n      braze.openSession();\n\n      setTimeout(function () {\n        console.log('[Braze] Requesting Banner:', placementId);\n        braze.requestBannersRefresh([placementId]);\n      }, 1500);\n    } catch (error) {\n      console.error('[Braze] SDK initialization failed:', error);\n      showZohoFallback();\n    }\n  })();\n\u003c\/script\u003e\n","brand":"GL.iNet","offers":[{"title":"Backer Club \/ D1 Pro \/ Yes","offer_id":57934590443703,"sku":null,"price":9.99,"currency_code":"USD","in_stock":false},{"title":"Backer Club \/ D1 Pro \/ No","offer_id":57934590476471,"sku":null,"price":9.99,"currency_code":"USD","in_stock":false},{"title":"Backer Club \/ D1 Mini \/ Yes","offer_id":57934590509239,"sku":null,"price":9.99,"currency_code":"USD","in_stock":false},{"title":"Backer Club \/ D1 Mini \/ No","offer_id":57934590542007,"sku":null,"price":9.99,"currency_code":"USD","in_stock":false},{"title":"Insider \/ D1 Pro \/ Yes","offer_id":57934590574775,"sku":null,"price":1.0,"currency_code":"USD","in_stock":false},{"title":"Insider \/ D1 Pro \/ No","offer_id":57934590607543,"sku":null,"price":1.0,"currency_code":"USD","in_stock":false},{"title":"Insider \/ D1 Mini \/ Yes","offer_id":57934590640311,"sku":null,"price":1.0,"currency_code":"USD","in_stock":false},{"title":"Insider \/ D1 Mini \/ No","offer_id":57934590673079,"sku":null,"price":1.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/3A013936-8060-4ECD-B594-536D8D623A43.png?v=1787735049"},{"product_id":"umino-um-t1","title":"Umino Travel Cam T1 (UM-T1)","description":"\u003cstyle\u003e\n  .umino-t1-main-container {\n    --umino-t1: #f7e341;\n  }\n\n  .umino-t1-main-container .text-umino-t1 {\n    color: var(--umino-t1);\n  }\n\n  .umino-t1-main-container .btn-round-umino-t1 {\n    background-color: var(--umino-t1);\n    color: #fff;\n    border-radius: 50px;\n    padding: 1rem 2rem;\n    text-transform: uppercase;\n    font-weight: bold;\n  }\n\n  @media (max-width: 768px) {\n    .umino-t1-main-container .btn-round-umino-t1 {\n      align-items: center;\n      border-radius: 50px;\n      display: inline-flex;\n      justify-content: center;\n      line-height: 1.2;\n      min-height: 50px;\n      padding: 0 2rem;\n      text-transform: uppercase;\n      font-weight: bold;\n    }\n  }\n\n  .umino-t1-main-container .btn-round-umino-t1:hover {\n    background-color: #fff;\n    color: #f0de3d;\n    border-color: #f0de3d;\n  }\n\n  .umino-t1-main-container .top-banner {\n    position: relative;\n    overflow: hidden;\n    height: 80vh;\n    background-size: cover;\n    background-repeat: no-repeat;\n    background-position: center bottom;\n    background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-t1\/um-t1_hero_banner_web.jpg\");\n  }\n\n  @media (max-width: 991px) {\n    .umino-t1-main-container .top-banner {\n      background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-t1\/um-t1_hero_banner_mb.jpg\");\n    }\n  }\n\n  .umino-t1-main-container .top-banner .award-stage {\n    position: absolute;\n    left: 50%;\n    bottom: 0;\n    z-index: 1;\n    width: max(100%, calc(80vh * 16 \/ 9));\n    aspect-ratio: 16 \/ 9;\n    transform: translateX(-50%);\n    pointer-events: none;\n  }\n\n  .umino-t1-main-container .top-banner .award-logo {\n    position: absolute;\n    left: 50%;\n    top: 74%;\n    width: 7%;\n    height: auto;\n    transform: translate(-50%, -100%);\n  }\n\n  @media (max-width: 991px) {\n    .umino-t1-main-container .top-banner .award-stage {\n      width: max(100%, calc(80vh * 10 \/ 13));\n      aspect-ratio: 10 \/ 13;\n    }\n\n    .umino-t1-main-container .top-banner .award-logo {\n      top: 64%;\n      width: 18%;\n    }\n  }\n\n  .umino-t1-main-container .top-banner .container {\n    position: relative;\n    z-index: 2;\n  }\n\n  .umino-t1-main-container .top-banner .row {\n    padding-top: 6vh;\n  }\n\n  @media (max-width: 768px) {\n    .umino-t1-main-container .top-banner .row {\n      padding-top: 1.5rem;\n    }\n  }\n\n  .umino-t1-main-container .top-banner .logo img {\n    width: auto;\n    height: 58px;\n    max-height: inherit;\n    margin-right: 1rem;\n    filter: brightness(0) invert(1);\n  }\n\n  .umino-t1-main-container .top-banner .logo-separator {\n    display: inline-block;\n    width: 2px;\n    height: 28px;\n    margin-right: 1rem;\n    margin-top: 0.75rem;\n    vertical-align: middle;\n    background-color: currentColor;\n  }\n\n  @media (max-width: 767px) {\n    .umino-t1-main-container .top-banner .logo img {\n      height: 42px;\n      margin-bottom: 0.75rem;\n    }\n\n    .umino-t1-main-container .top-banner .logo-separator {\n      height: 16px;\n      margin-top: 0rem;\n      margin-bottom: 0.25rem;\n    }\n  }\n\n\u003c\/style\u003e\n\u003cmain class=\"umino-t1-main-container\"\u003e\n  \u003csection class=\"top-banner\" id=\"subscribe\"\u003e\n    \u003cdiv class=\"award-stage\"\u003e\n      \u003cimg src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-t1\/logo_ifa2026.png\" class=\"award-logo\" alt=\"IFA 2026 Logo\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"container h-100\"\u003e\n      \u003cdiv class=\"row justify-content-center align-items-start text-center text-light h-100\"\u003e\n        \u003cdiv class=\"col-12 col-lg-8\"\u003e\n          \u003cdiv class=\"logo pb-lg-4\"\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_new_logo.svg\" alt=\"Umino Logo\"\u003e\n            \u003cspan class=\"logo-separator\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/glinet_logo.svg\" alt=\"GL.iNet Logo\"\u003e\n          \u003c\/div\u003e\n\n          \u003ch1 class=\"font-weight-bold\"\u003eMeet Umino T1\u003c\/h1\u003e\n          \u003ch3\u003eDetect Hidden Cameras. Monitor Break-Ins.\u003c\/h3\u003e\n          \u003cdiv id=\"global-banner-container\" style=\"width: 100%; height: 50px;\"\u003e\u003c\/div\u003e\n          \u003cdiv id=\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\" style=\"display: none;\"\u003e\n          \u003c\/div\u003e\n          \n          \u003cscript type=\"text\/javascript\"\u003e\n            (function () {\n              try {\n                var f = document.createElement(\"iframe\");\n\n                var ifrmSrc = 'https:\/\/forms.zohopublic.com\/glinet\/form\/UMT1ProductNewsletterSignup\/formperma\/XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8?zf_rszfm=1';\n\n                try {\n                  if (typeof ZFAdvLead != \"undefined\" \u0026\u0026 typeof zfutm_zfAdvLead != \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFAdvLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFAdvLead.utmPNameArr[prmIdx];\n                      utmPm = (ZFAdvLead.isSameDomian \u0026\u0026 (ZFAdvLead.utmcustPNameArr.indexOf(utmPm) == -1)) ? \"zf_\" + utmPm : utmPm;\n                      var utmVal = zfutm_zfAdvLead.zfautm_gC_enc(ZFAdvLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (typeof ZFLead !== \"undefined\" \u0026\u0026 typeof zfutm_zfLead !== \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFLead.utmPNameArr[prmIdx];\n                      var utmVal = zfutm_zfLead.zfutm_gC_enc(ZFLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\/\/No I18N\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\/\/No I18N\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (!((new RegExp(\"[?\u0026]referrername=\")).test(ifrmSrc))) {\n                    var rfr = window.location.href;\n\n                    try {\n                      rfr = window.self !== window.top ?\n                        window.top.location.href :\n                        (\/^https?:\\\/\\\/[\\w.-]+\\.[a-zA-Z]{2,}\/i.test(rfr) ? rfr : \"\");\n                    } catch (e) { }\n\n                    if (rfr \u0026\u0026 rfr !== \"\") {\n                      if (rfr.length \u003e 1800) {\n                        var queryIndex = rfr.indexOf('?');\n                        if (queryIndex \u003e -1) {\n                          rfr = rfr.substring(0, queryIndex);\n                        }\n                        if (rfr.length \u003e 1800) {\n                          rfr = rfr.substring(0, 1800);\n                        }\n                      }\n                      ifrmSrc += ((ifrmSrc.indexOf('?') \u003e 0) ? '\u0026' : '?') + 'referrername=' + encodeURIComponent(rfr);\n                    }\n                  }\n                } catch (e) { }\n\n\n                f.src = ifrmSrc;\n                f.style.border = \"none\";\n                f.style.height = \"220px\";\n                f.style.width = \"99%\";\n                f.style.transition = \"all 0.5s ease\";\n                f.setAttribute(\"aria-label\", 'UM\\-D1 Product Newsletter Signup');\n\n                var d = document.getElementById(\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\");\n                d.appendChild(f);\n                window.addEventListener('message', function () {\n                  var evntData = event.data;\n                  if (evntData \u0026\u0026 evntData.constructor == String) {\n                    var zf_ifrm_data = evntData.split(\"|\");\n                    if (zf_ifrm_data.length == 2 || zf_ifrm_data.length == 3) {\n                      var zf_perma = zf_ifrm_data[0];\n                      var zf_ifrm_ht_nw = (parseInt(zf_ifrm_data[1], 10) + 35) + \"px\";\n                      var iframe = document.getElementById(\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\").getElementsByTagName(\"iframe\")[0];\n                      if ((iframe.src).indexOf('formperma') \u003e 0 \u0026\u0026 (iframe.src).indexOf(zf_perma) \u003e 0) {\n                        var prevIframeHeight = iframe.style.height;\n                        var zf_tout = false;\n                        if (zf_ifrm_data.length == 3) {\n                          iframe.scrollIntoView();\n                          zf_tout = true;\n                        }\n\n                        if (prevIframeHeight != zf_ifrm_ht_nw) {\n                          if (zf_tout) {\n                            setTimeout(function () {\n                              iframe.style.height = zf_ifrm_ht_nw;\n                            }, 500);\n                          } else {\n                            iframe.style.height = zf_ifrm_ht_nw;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }, false);\n              } catch (e) { }\n\n\n            })();\n          \u003c\/script\u003e\n\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/main\u003e\n\u003cscript src=\"https:\/\/js.gl-inet.com\/web-sdk\/6.1\/braze.min.js\"\u003e\u003c\/script\u003e\n\u003cscript\u003e\n  (function () {\n    \/*\n     * 防止 Shopify 重复执行脚本。\n     *\/\n    if (window.__brazeBannerLoaded) {\n      return;\n    }\n\n    window.__brazeBannerLoaded = true;\n\n    const placementId = 'pdp_top_banner_um-t1';\n    let bannerInserted = false;\n\n    function showZohoFallback() {\n      const bannerContainer = document.getElementById('global-banner-container');\n      const zohoFallback = document.getElementById('zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8');\n\n      if (bannerContainer) {\n        bannerContainer.style.display = 'none';\n      }\n\n      if (zohoFallback) {\n        zohoFallback.style.display = '';\n      } else {\n        console.warn('[Braze] Zoho fallback container not found');\n      }\n    }\n\n    try {\n      if (typeof braze === 'undefined') {\n        throw new Error('Braze SDK is unavailable');\n      }\n\n      \/*\n       * 初始化 Braze Web SDK。\n       *\/\n      const initialized = braze.initialize('a3cb3cae-dc89-461c-9ddf-ca3980efb0c6', {\n        baseUrl: 'sdk.iad-07.braze.com',\n        enableLogging: true,\n        allowUserSuppliedJavascript: true,\n      });\n\n      if (!initialized) {\n        console.error('[Braze] SDK initialization failed');\n        showZohoFallback();\n        return;\n      }\n\n      \/*\n       * 监听 Banner 数据更新。\n       *\/\n      braze.subscribeToBannersUpdates(function (banners) {\n        console.log('[Braze] Banners updated:', banners);\n\n        const container = document.getElementById('global-banner-container');\n\n        if (!container) {\n          console.warn('[Braze] Banner container not found');\n          return;\n        }\n\n        \/*\n         * Banner 已经插入后不再重复插入。\n         *\/\n        if (bannerInserted) {\n          console.log('[Braze] Banner already inserted, skipping duplicate render');\n          return;\n        }\n\n        const banner = braze.getBanner(placementId);\n\n        console.log('[Braze] Banner:', banner);\n\n        if (!banner) {\n          console.warn('[Braze] No Banner for placement:', placementId);\n          return;\n        }\n\n        \/*\n         * Control Group 不显示 Banner。\n         *\/\n        if (banner.isControl) {\n          console.warn('[Braze] Banner is control');\n          container.style.display = 'none';\n          return;\n        }\n\n        container.innerHTML = '';\n        container.style.display = '';\n\n        \/*\n         * 把 Banner 插入 Shopify 容器。\n         *\/\n        braze.insertBanner(banner, container);\n        bannerInserted = true;\n\n        console.log('[Braze] Banner inserted:', placementId);\n      });\n\n      \/*\n       * 启动 Braze Session。\n       *\/\n      braze.openSession();\n\n      \/*\n       * 请求指定 Placement 的 Banner。\n       *\/\n      setTimeout(function () {\n        console.log('[Braze] Requesting Banner:', placementId);\n        braze.requestBannersRefresh([placementId]);\n      }, 1500);\n    } catch (error) {\n      console.error('[Braze] SDK initialization failed:', error);\n      showZohoFallback();\n    }\n  })();\n\u003c\/script\u003e","brand":"GL.iNet","offers":[{"title":"Default Title","offer_id":49059362406583,"sku":null,"price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/BBD01621-EF93-42B5-91EE-8FAB8CB84903.png?v=1787803443"},{"product_id":"umino-um-f1","title":"Umino F1 | Long-range Outdoor Security Camera Kit","description":"\u003cstyle\u003e\n  .um-f1-main-container .top-banner {\n    position: relative;\n    overflow: hidden;\n    height: 80vh;\n    background-size: cover;\n    background-repeat: no-repeat;\n    background-position: center;\n    background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-f1\/um-f1_hero_banner.jpg\");\n  }\n\n  @media (max-width: 991px) {\n    .um-f1-main-container .top-banner {\n      height: 85vh\n      background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-f1\/um-f1_hero_banner_mobile.jpg\");\n    }\n  }\n\n  .um-f1-main-container .top-banner .container {\n    position: relative;\n    z-index: 2;\n  }\n\n  .um-f1-main-container .top-banner .row {\n    padding-top: 3vh;\n  }\n\n  @media (max-width: 768px) {\n    .um-f1-main-container .top-banner .row {\n      padding-top: 1.5rem;\n    }\n  }\n\n  .um-f1-main-container .top-banner .logo img {\n    width: auto;\n    height: 58px;\n    max-height: inherit;\n    margin-right: 1rem;\n    filter: brightness(0) invert(1);\n  }\n\n  .um-f1-main-container .top-banner .logo-separator {\n    display: inline-block;\n    width: 2px;\n    height: 28px;\n    margin-right: 1rem;\n    margin-top: 0.75rem;\n    vertical-align: middle;\n    background-color: currentColor;\n  }\n\n  @media (max-width: 767px) {\n    .um-f1-main-container .top-banner .logo img {\n      height: 42px;\n      margin-bottom: 0.75rem;\n    }\n\n    .um-f1-main-container .top-banner .logo-separator {\n      height: 16px;\n      margin-top: 0rem;\n      margin-bottom: 0.25rem;\n    }\n  }\n\n  .um-f1-main-container #global-banner-container {\n    display: flow-root;\n    width: 100%;\n    min-height: 50px;\n  }\n\u003c\/style\u003e\n\n\u003cmain class=\"um-f1-main-container\"\u003e\n  \u003csection class=\"top-banner\" id=\"subscribe\"\u003e\n    \u003cdiv class=\"container h-100\"\u003e\n      \u003cdiv class=\"row justify-content-center align-items-start text-center text-light h-100\"\u003e\n        \u003cdiv class=\"col-12 col-lg-8\"\u003e\n\n          \u003cdiv class=\"logo pb-lg-3\"\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_new_logo.svg\" alt=\"Umino Logo\"\u003e\n            \u003cspan class=\"logo-separator\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/glinet_logo.svg\" alt=\"GL.iNet Logo\"\u003e\n          \u003c\/div\u003e\n\n          \u003ch1 class=\"font-weight-bold\"\u003eMeet Umino F1\u003c\/h1\u003e\n          \u003ch3\u003eLong-range Outdoor Security Camera Kit\u003c\/h3\u003e\n          \u003cp class=\"mb-3\"\u003eUp to 1 km\/6,500 ft wireless range\u003c\/p\u003e \n          \u003cdiv id=\"global-banner-container\"\u003e\u003c\/div\u003e\n          \u003cdiv id=\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\" style=\"display: none;\"\u003e\n          \u003c\/div\u003e\n          \n          \u003cscript type=\"text\/javascript\"\u003e\n            (function () {\n              try {\n                var f = document.createElement(\"iframe\");\n\n                var ifrmSrc = 'https:\/\/forms.zohopublic.com\/glinet\/form\/UMF1ProductNewsletterSignup\/formperma\/5g5z1go2YWkf7IEcYFElIkFkgDmkg8C57XhczCjrP9Q';\n\n                try {\n                  if (typeof ZFAdvLead != \"undefined\" \u0026\u0026 typeof zfutm_zfAdvLead != \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFAdvLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFAdvLead.utmPNameArr[prmIdx];\n                      utmPm = (ZFAdvLead.isSameDomian \u0026\u0026 (ZFAdvLead.utmcustPNameArr.indexOf(utmPm) == -1)) ? \"zf_\" + utmPm : utmPm;\n                      var utmVal = zfutm_zfAdvLead.zfautm_gC_enc(ZFAdvLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (typeof ZFLead !== \"undefined\" \u0026\u0026 typeof zfutm_zfLead !== \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFLead.utmPNameArr[prmIdx];\n                      var utmVal = zfutm_zfLead.zfutm_gC_enc(ZFLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\/\/No I18N\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\/\/No I18N\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (!((new RegExp(\"[?\u0026]referrername=\")).test(ifrmSrc))) {\n                    var rfr = window.location.href;\n\n                    try {\n                      rfr = window.self !== window.top ?\n                        window.top.location.href :\n                        (\/^https?:\\\/\\\/[\\w.-]+\\.[a-zA-Z]{2,}\/i.test(rfr) ? rfr : \"\");\n                    } catch (e) { }\n\n                    if (rfr \u0026\u0026 rfr !== \"\") {\n                      if (rfr.length \u003e 1800) {\n                        var queryIndex = rfr.indexOf('?');\n                        if (queryIndex \u003e -1) {\n                          rfr = rfr.substring(0, queryIndex);\n                        }\n                        if (rfr.length \u003e 1800) {\n                          rfr = rfr.substring(0, 1800);\n                        }\n                      }\n                      ifrmSrc += ((ifrmSrc.indexOf('?') \u003e 0) ? '\u0026' : '?') + 'referrername=' + encodeURIComponent(rfr);\n                    }\n                  }\n                } catch (e) { }\n\n\n                f.src = ifrmSrc;\n                f.style.border = \"none\";\n                f.style.height = \"220px\";\n                f.style.width = \"99%\";\n                f.style.transition = \"all 0.5s ease\";\n                f.setAttribute(\"aria-label\", 'UM\\-D1 Product Newsletter Signup');\n\n                var d = document.getElementById(\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\");\n                d.appendChild(f);\n                window.addEventListener('message', function () {\n                  var evntData = event.data;\n                  if (evntData \u0026\u0026 evntData.constructor == String) {\n                    var zf_ifrm_data = evntData.split(\"|\");\n                    if (zf_ifrm_data.length == 2 || zf_ifrm_data.length == 3) {\n                      var zf_perma = zf_ifrm_data[0];\n                      var zf_ifrm_ht_nw = (parseInt(zf_ifrm_data[1], 10) + 35) + \"px\";\n                      var iframe = document.getElementById(\"zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8\").getElementsByTagName(\"iframe\")[0];\n                      if ((iframe.src).indexOf('formperma') \u003e 0 \u0026\u0026 (iframe.src).indexOf(zf_perma) \u003e 0) {\n                        var prevIframeHeight = iframe.style.height;\n                        var zf_tout = false;\n                        if (zf_ifrm_data.length == 3) {\n                          iframe.scrollIntoView();\n                          zf_tout = true;\n                        }\n\n                        if (prevIframeHeight != zf_ifrm_ht_nw) {\n                          if (zf_tout) {\n                            setTimeout(function () {\n                              iframe.style.height = zf_ifrm_ht_nw;\n                            }, 500);\n                          } else {\n                            iframe.style.height = zf_ifrm_ht_nw;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }, false);\n              } catch (e) { }\n\n\n            })();\n          \u003c\/script\u003e\n\n          \u003c!--\n          \u003ca\n              class=\"text-link\"\n              href=\"https:\/\/www.reddit.com\/r\/GlInet\/\"\n              target=\"_blank\"\n              rel=\"noopener\"\n              \u003eShare Your Ideas on Reddit \u003ci class=\"fas fa-arrow-right\"\u003e\u003c\/i\n            \u003e\u003c\/a\u003e\n          --\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/main\u003e\n\u003cscript src=\"https:\/\/js.gl-inet.com\/web-sdk\/6.1\/braze.min.js\"\u003e\u003c\/script\u003e\n\u003cscript\u003e\n  (function () {\n    \/*\n     * 防止 Shopify 重复执行脚本。\n     *\/\n    if (window.__brazeBannerLoaded) {\n      return;\n    }\n\n    window.__brazeBannerLoaded = true;\n\n    const placementId = 'pdp_top_banner_um-f1';\n    let bannerInserted = false;\n\n    function showZohoFallback() {\n      const bannerContainer = document.getElementById('global-banner-container');\n      const zohoFallback = document.getElementById('zf_div_XlUs9k14B0Fs4XN0MElP6pKpj4fLtvFZx2zfrsaP2v8');\n\n      if (bannerContainer) {\n        bannerContainer.style.display = 'none';\n      }\n\n      if (zohoFallback) {\n        zohoFallback.style.display = '';\n      } else {\n        console.warn('[Braze] Zoho fallback container not found');\n      }\n    }\n\n    try {\n      if (typeof braze === 'undefined') {\n        throw new Error('Braze SDK is unavailable');\n      }\n\n      \/*\n       * 初始化 Braze Web SDK。\n       *\/\n      const initialized = braze.initialize('a3cb3cae-dc89-461c-9ddf-ca3980efb0c6', {\n        baseUrl: 'sdk.iad-07.braze.com',\n        enableLogging: true,\n        allowUserSuppliedJavascript: true,\n      });\n\n      if (!initialized) {\n        console.error('[Braze] SDK initialization failed');\n        showZohoFallback();\n        return;\n      }\n\n      \/*\n       * 监听 Banner 数据更新。\n       *\/\n      braze.subscribeToBannersUpdates(function (banners) {\n        console.log('[Braze] Banners updated:', banners);\n\n        const container = document.getElementById('global-banner-container');\n\n        if (!container) {\n          console.warn('[Braze] Banner container not found');\n          return;\n        }\n\n        \/*\n         * Banner 已经插入后不再重复插入。\n         *\/\n        if (bannerInserted) {\n          console.log('[Braze] Banner already inserted, skipping duplicate render');\n          return;\n        }\n\n        const banner = braze.getBanner(placementId);\n\n        console.log('[Braze] Banner:', banner);\n\n        if (!banner) {\n          console.warn('[Braze] No Banner for placement:', placementId);\n          return;\n        }\n\n        \/*\n         * Control Group 不显示 Banner。\n         *\/\n        if (banner.isControl) {\n          console.warn('[Braze] Banner is control');\n          container.style.display = 'none';\n          return;\n        }\n\n        container.innerHTML = '';\n        container.style.display = '';\n\n        \/*\n         * 把 Banner 插入 Shopify 容器。\n         *\/\n        braze.insertBanner(banner, container);\n        bannerInserted = true;\n\n        console.log('[Braze] Banner inserted:', placementId);\n      });\n\n      \/*\n       * 启动 Braze Session。\n       *\/\n      braze.openSession();\n\n      \/*\n       * 请求指定 Placement 的 Banner。\n       *\/\n      setTimeout(function () {\n        console.log('[Braze] Requesting Banner:', placementId);\n        braze.requestBannersRefresh([placementId]);\n      }, 1500);\n    } catch (error) {\n      console.error('[Braze] SDK initialization failed:', error);\n      showZohoFallback();\n    }\n  })();\n\u003c\/script\u003e\n","brand":"GL.iNet","offers":[{"title":"Default Title","offer_id":57977158992055,"sku":null,"price":0.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/20261103-165857.png?v=1793696371"}],"url":"https:\/\/www.gl-inet.com\/en-eu\/collections\/cameras.oembed","provider":"GL.iNet","version":"1.0","type":"link"}