{"product_id":"bat-wing-motorcycle-laser-safety-light-bold-road-projection-rear-warning-lamp","title":"🏍️ Bat-Wing Motorcycle Laser Safety Light – Bold Road Projection Rear Warning Lamp","description":"\n\u003c!-- ALASJOY BAT WING \/ NO-LIQUID IMAGE-FIRST PAGE --\u003e\n\u003c!-- Shopify Theme Editor \u003e Product template \u003e Custom Liquid. Replace old block entirely. --\u003e\n\u003cdiv id=\"bw5\" class=\"bw5\"\u003e\n  \u003cdiv class=\"bw5-top\"\u003e\n\u003cspan\u003e\u003ci\u003e\u003c\/i\u003e ALASJOY \/ NIGHT RIDER\u003c\/span\u003e\u003cspan\u003eBAT-WING GROUND PROJECTION\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cheader class=\"bw5-heading\"\u003e\n    \u003cp class=\"bw5-kicker\"\u003eMOTORCYCLE STYLE \/ AFTER DARK\u003c\/p\u003e\n    \u003ch2\u003eTHE ROAD IS YOUR \u003cem\u003eCANVAS.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eOne compact projector. One bold bat-wing-inspired light pattern. A completely different look for your parked ride.\u003c\/p\u003e\n  \u003c\/header\u003e\n\n  \u003csection class=\"bw5-hero\" aria-label=\"Real product photo gallery\"\u003e\n    \u003cdiv class=\"bw5-visual\"\u003e\n      \u003cdiv class=\"bw5-stage\" id=\"bw5-stage\"\u003e\n        \u003cimg id=\"bw5-main\" alt=\"Motorcycle bat-wing projection light\" loading=\"eager\" decoding=\"async\" hidden\u003e\n        \u003cdiv class=\"bw5-loading\" id=\"bw5-loading\"\u003e\n\u003cb\u003eREAL PRODUCT PHOTOS\u003c\/b\u003e\u003csmall\u003eLoading from this Shopify product…\u003c\/small\u003e\n\u003c\/div\u003e\n        \u003cspan class=\"bw5-phototag\"\u003eLIVE PRODUCT GALLERY \u003cb id=\"bw5-count\"\u003e01\u003c\/b\u003e\u003c\/span\u003e\n        \u003cbutton type=\"button\" class=\"bw5-prev\" aria-label=\"Previous product photo\"\u003e❮\u003c\/button\u003e\n        \u003cbutton type=\"button\" class=\"bw5-next\" aria-label=\"Next product photo\"\u003e❯\u003c\/button\u003e\n        \u003cdiv id=\"bw5-dots\" class=\"bw5-dots\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv id=\"bw5-thumbs\" class=\"bw5-thumbs\" aria-label=\"Product photo thumbnails\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bw5-selling\"\u003e\n      \u003cspan class=\"bw5-micro\"\u003e01 \/ THE PRODUCT\u003c\/span\u003e\n      \u003ch3\u003eSMALL UNIT.\u003cbr\u003e\u003cem\u003eBIG NIGHT LOOK.\u003c\/em\u003e\n\u003c\/h3\u003e\n      \u003cp\u003eA wing-shaped projection creates a dramatic graphic on pavement behind or near the motorcycle, depending on positioning.\u003c\/p\u003e\n      \u003cdiv class=\"bw5-point\"\u003e\n\u003cspan\u003e01\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eTHE SIGNATURE PATTERN\u003c\/strong\u003e\u003csmall\u003eA striking visual that makes a parked motorcycle photo stand out.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"bw5-point\"\u003e\n\u003cspan\u003e02\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eTHE PROJECTOR ITSELF\u003c\/strong\u003e\u003csmall\u003eLook closely at the lens, housing, mounting point and cable.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"bw5-point\"\u003e\n\u003cspan\u003e03\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eTHE AFTER-DARK EFFECT\u003c\/strong\u003e\u003csmall\u003eGround contrast changes with ambient light, surface and angle.\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cp class=\"bw5-note\"\u003eAuxiliary styling accessory only. Not a replacement for required vehicle lamps or a guaranteed accident-prevention device.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"bw5-slogan\"\u003ePROJECT THE ATTITUDE \u003cspan\u003e✕\u003c\/span\u003e AFTER-DARK STYLE \u003cspan\u003e✕\u003c\/span\u003e SHOW THE DETAILS\u003c\/div\u003e\n\n  \u003csection class=\"bw5-feature\" id=\"bw5-effect-section\" hidden\u003e\n    \u003cdiv class=\"bw5-fig\"\u003e\n\u003cimg id=\"bw5-effect-photo\" loading=\"lazy\" alt=\"Actual product projection photograph\"\u003e\u003cspan\u003e02 \/ LIGHT ON THE ROAD\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"bw5-feature-copy\"\u003e\n      \u003cp class=\"bw5-kicker\"\u003eTHE VISUAL EFFECT\u003c\/p\u003e\n      \u003ch3\u003eIT'S NOT JUST A LIGHT.\u003cbr\u003e\u003cem\u003eIT'S THE SHAPE.\u003c\/em\u003e\n\u003c\/h3\u003e\n      \u003cp\u003eThe bat-inspired outline is the detail that changes the look of the pavement. See its size, contrast and shape in the actual product photos.\u003c\/p\u003e\n      \u003cp\u003eFor the strongest visual effect, compare the projection on darker surfaces in a stationary, low-light setting.\u003c\/p\u003e\n      \u003cdiv class=\"bw5-chiprow\"\u003e\n\u003cspan\u003eGROUND PATTERN\u003c\/span\u003e\u003cspan\u003eLOW-LIGHT CONTRAST\u003c\/span\u003e\u003cspan\u003eREAR-AREA STYLING\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"bw5-section\" id=\"bw5-details-section\" hidden\u003e\n    \u003cdiv class=\"bw5-section-head\"\u003e\n\u003cp class=\"bw5-kicker\"\u003e03 \/ A CLOSER LOOK\u003c\/p\u003e\n\u003ch3\u003eSEE THE HARDWARE. \u003cem\u003eKNOW THE DETAILS.\u003c\/em\u003e\n\u003c\/h3\u003e\n\u003cp\u003eThe projector's physical design matters just as much as the nighttime effect.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"bw5-detail-grid\"\u003e\n      \u003carticle id=\"bw5-card-one\" hidden\u003e\u003cimg id=\"bw5-detail-one\" loading=\"lazy\" alt=\"Original projector light photo\"\u003e\u003cdiv\u003e\n\u003cspan\u003ePROJECTOR \u0026amp; LENS\u003c\/span\u003e\u003ch4\u003eTHE COMPACT UNIT\u003c\/h4\u003e\n\u003cp\u003eInspect the light housing, front lens and cable exit. These determine where a unit can fit on your motorcycle.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n      \u003carticle id=\"bw5-card-two\" hidden\u003e\u003cimg id=\"bw5-detail-two\" loading=\"lazy\" alt=\"Original projector product detail photo\"\u003e\u003cdiv\u003e\n\u003cspan\u003eMOUNTING \u0026amp; POSITION\u003c\/span\u003e\u003ch4\u003eTHE RIGHT ANGLE\u003c\/h4\u003e\n\u003cp\u003eCheck the included fittings, wiring path and clearance. Aim any beam downward and away from eyes and traffic.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/article\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"bw5-section bw5-check\"\u003e\n    \u003cdiv class=\"bw5-section-head\"\u003e\n\u003cp class=\"bw5-kicker\"\u003e04 \/ BEFORE YOU INSTALL\u003c\/p\u003e\n\u003ch3\u003eTHREE THINGS \u003cem\u003eTO CHECK.\u003c\/em\u003e\n\u003c\/h3\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"bw5-checkgrid\"\u003e\n      \u003cdiv\u003e\n\u003cb\u003e01\u003c\/b\u003e\u003cstrong\u003ePOWER \u0026amp; FIT\u003c\/strong\u003e\u003cp\u003eMatch the selected variant's voltage, mounting hardware, cable length and vehicle clearance.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cb\u003e02\u003c\/b\u003e\u003cstrong\u003eDOWNWARD AIM\u003c\/strong\u003e\u003cp\u003eSecurely position the projector so the pattern falls onto the ground, not toward other road users.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cb\u003e03\u003c\/b\u003e\u003cstrong\u003eTEST WHEN PARKED\u003c\/strong\u003e\u003cp\u003eCheck the projected shape and installation in a stationary setting; verify local lighting laws.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"bw5-section\" id=\"bw5-gallery-section\" hidden\u003e\n    \u003cdiv class=\"bw5-section-head\"\u003e\n\u003cp class=\"bw5-kicker\"\u003e05 \/ REAL PRODUCT PHOTOS\u003c\/p\u003e\n\u003ch3\u003eTHE WHOLE LOOK. \u003cem\u003eEVERY ANGLE.\u003c\/em\u003e\n\u003c\/h3\u003e\n\u003cp\u003eActual images associated with this ALASJOY product. No unrelated stock photos.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv id=\"bw5-grid\" class=\"bw5-grid\"\u003e\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"bw5-section bw5-faq\"\u003e\n    \u003cdiv class=\"bw5-section-head\"\u003e\n\u003cp class=\"bw5-kicker\"\u003e06 \/ GOOD TO KNOW\u003c\/p\u003e\n\u003ch3\u003eYOUR QUESTIONS. \u003cem\u003eANSWERED.\u003c\/em\u003e\n\u003c\/h3\u003e\n\u003c\/div\u003e\n    \u003cdetails\u003e\u003csummary\u003eWhat is the main feature of this light?\u003c\/summary\u003e\u003cp\u003eThe defining feature is a wing-inspired ground projection for motorcycle styling. How it appears depends on the variant, mounting position and surrounding conditions.\u003c\/p\u003e\u003c\/details\u003e\n    \u003cdetails\u003e\u003csummary\u003eDoes it fit every motorcycle?\u003c\/summary\u003e\u003cp\u003eCompatibility is not guaranteed. Check the selected option's electrical requirements, dimensions, bracket and required clearance before purchasing.\u003c\/p\u003e\u003c\/details\u003e\n    \u003cdetails\u003e\u003csummary\u003eDoes it replace the tail light or brake light?\u003c\/summary\u003e\u003cp\u003eNo. It is an auxiliary decorative projector and is not a substitute for legally required vehicle lighting or a collision-prevention system.\u003c\/p\u003e\u003c\/details\u003e\n    \u003cdetails\u003e\u003csummary\u003eWhat is included and is it weather resistant?\u003c\/summary\u003e\u003cp\u003eConfirm quantity, included hardware and any stated IP\/weather-resistance rating in the product's original specifications.\u003c\/p\u003e\u003c\/details\u003e\n    \u003cdetails\u003e\u003csummary\u003eCan I use projected lighting on public roads?\u003c\/summary\u003e\u003cp\u003eRules vary by location. Review the applicable vehicle-lighting regulations, and never aim intense light or laser emissions at anyone's eyes.\u003c\/p\u003e\u003c\/details\u003e\n  \u003c\/section\u003e\n\n  \u003cfooter class=\"bw5-end\"\u003e\u003cp class=\"bw5-kicker\"\u003eNIGHT RIDER \/ ALASJOY\u003c\/p\u003e\n\u003ch3\u003eMAKE THE PAVEMENT \u003cem\u003ePART OF YOUR STYLE.\u003c\/em\u003e\n\u003c\/h3\u003e\n\u003cp\u003eSee the real photos, confirm fitment and choose your option above.\u003c\/p\u003e\n\u003ca href=\"#\" id=\"bw5-up\"\u003eBACK TO TOP · VIEW OPTIONS ↑\u003c\/a\u003e\u003c\/footer\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n#bw5,#bw5 *{box-sizing:border-box}\n#bw5{container-type:inline-size;display:block;clear:both;width:100%;max-width:none;min-width:0;margin:0 auto;padding:0 12px 24px;background:linear-gradient(160deg,#0b0e14,#151923 56%,#090c11);color:#f5f6f8;font:14px\/1.6 Arial,Helvetica,sans-serif;isolation:isolate;overflow:hidden;--accent:#ff465c;--line:#363c48}\n#bw5 [hidden]{display:none!important}\n#bw5 img{display:block;max-width:100%}\n#bw5 h2,#bw5 h3,#bw5 h4,#bw5 p{margin:0}\n#bw5 h2,#bw5 h3,#bw5 h4{font-family:Impact,'Arial Narrow','Arial Black',Arial,sans-serif;line-height:1.09;font-weight:900;letter-spacing:.005em;color:#fff;overflow-wrap:break-word}\n#bw5 em{font-style:normal;color:var(--accent)}\n#bw5 p{color:#b8bfca;font-size:14px;line-height:1.64}\n#bw5 .bw5-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;border-bottom:1px solid var(--line);padding:12px 2px;font-size:10px;font-weight:bold;letter-spacing:.1em;color:#bfc6d1}\n#bw5 .bw5-top i{display:inline-block;background:var(--accent);box-shadow:0 0 8px var(--accent);height:7px;width:7px;border-radius:50%;margin-right:6px}\n#bw5 .bw5-heading{text-align:center;padding:24px 6px 19px;max-width:850px;margin:auto}\n#bw5 .bw5-kicker{font-size:10px;letter-spacing:.15em;font-weight:900;color:var(--accent);margin:0 0 9px}\n#bw5 .bw5-heading h2{font-size:clamp(31px,6cqw,58px);line-height:1.04;margin:0 0 10px}\n#bw5 .bw5-heading\u003ep:last-child{font-size:15px;max-width:570px;margin:auto}\n#bw5 .bw5-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:center;margin:0 0 19px}\n#bw5 .bw5-visual{min-width:0}\n#bw5 .bw5-stage{position:relative;width:100%;aspect-ratio:1\/1;overflow:hidden;border:1px solid #4b525e;border-radius:9px;background:radial-gradient(circle at center,#2a303c,#0c1016 78%);touch-action:pan-y}\n#bw5 .bw5-stage:before,#bw5 .bw5-stage:after{content:'';position:absolute;z-index:4;width:34px;height:34px;pointer-events:none}\n#bw5 .bw5-stage:before{top:0;left:0;border-top:3px solid var(--accent);border-left:3px solid var(--accent)}\n#bw5 .bw5-stage:after{bottom:0;right:0;border-bottom:3px solid var(--accent);border-right:3px solid var(--accent)}\n#bw5 #bw5-main{width:100%;height:100%;object-fit:contain}\n#bw5 .bw5-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;text-align:center;background:#171d26;gap:7px}\n#bw5 .bw5-loading b{font-size:18px;color:#f2f3f6}\n#bw5 .bw5-loading small{font-size:11px;color:#a5adbc}\n#bw5 .bw5-phototag{position:absolute;top:11px;right:11px;z-index:4;font-size:9px;letter-spacing:.06em;font-weight:800;color:#fff;text-shadow:0 1px 5px #000}\n#bw5 .bw5-phototag b{color:var(--accent)}\n#bw5 .bw5-prev,#bw5 .bw5-next{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:35px;height:40px;border:1px solid #757a82;background:#0c1016d9;color:#fff;cursor:pointer}\n#bw5 .bw5-prev{left:6px}#bw5 .bw5-next{right:6px}\n#bw5 .bw5-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:4px}\n#bw5 .bw5-dots i{width:7px;height:5px;background:#929aa8;border-radius:2px}#bw5 .bw5-dots i.on{width:20px;background:var(--accent)}\n#bw5 .bw5-thumbs{display:flex;gap:6px;overflow-x:auto;margin-top:7px;scrollbar-width:thin}\n#bw5 .bw5-thumbs button{flex:0 0 60px;width:60px;height:60px;padding:3px;cursor:pointer;border:1px solid #4c5360;background:#161b24;border-radius:4px;overflow:hidden}\n#bw5 .bw5-thumbs button.on{border:2px solid var(--accent)}#bw5 .bw5-thumbs img{width:100%;height:100%;object-fit:contain}\n#bw5 .bw5-selling{min-width:0;padding:6px 3px}\n#bw5 .bw5-micro{display:block;color:var(--accent);font-size:10px;letter-spacing:.12em;font-weight:900;margin-bottom:8px}\n#bw5 .bw5-selling h3{font-size:clamp(28px,5.3cqw,49px);margin:0 0 12px}\n#bw5 .bw5-selling\u003ep{margin:0 0 12px}\n#bw5 .bw5-point{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}\n#bw5 .bw5-point span{color:var(--accent);font-size:16px;font-weight:bold}\n#bw5 .bw5-point strong{display:block;color:#fff;font-size:12px;letter-spacing:.04em;line-height:1.5}\n#bw5 .bw5-point small{display:block;color:#afb9c5;font-size:12px;line-height:1.55}\n#bw5 .bw5-selling .bw5-note{font-size:11px;color:#969eae;margin:11px 0 0}\n#bw5 .bw5-slogan{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;padding:11px 7px;background:rgba(255,70,92,.07);border-block:1px solid #703b49;font-size:10px;letter-spacing:.06em;font-weight:900;color:#f0c3cb}\n#bw5 .bw5-slogan span{color:var(--accent)}\n#bw5 .bw5-feature{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:center;padding:25px 1px;border-bottom:1px solid var(--line)}\n#bw5 .bw5-fig{position:relative;min-width:0;border:1px solid #4b535f;background:#111720;padding:6px;border-radius:6px}\n#bw5 .bw5-fig img{width:100%;aspect-ratio:1\/1;object-fit:contain}\n#bw5 .bw5-fig span{display:block;padding:8px 5px 2px;color:#ecb4be;font-size:10px;font-weight:bold;letter-spacing:.1em}\n#bw5 .bw5-feature-copy h3{font-size:clamp(27px,4.5cqw,44px);margin:0 0 12px}\n#bw5 .bw5-feature-copy p{margin-bottom:10px}\n#bw5 .bw5-chiprow{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}\n#bw5 .bw5-chiprow span{border:1px solid #5c4651;padding:6px 8px;font-size:10px;color:#f1bdc7}\n#bw5 .bw5-section{padding:27px 1px;border-bottom:1px solid var(--line)}\n#bw5 .bw5-section-head{text-align:center;margin:0 auto 16px;max-width:700px}\n#bw5 .bw5-section-head h3{font-size:clamp(27px,5cqw,43px);margin:0 0 8px}\n#bw5 .bw5-section-head p:last-child{font-size:13px}\n#bw5 .bw5-detail-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:11px}\n#bw5 .bw5-detail-grid article{background:#1b202a;border:1px solid #3e4652;overflow:hidden;border-radius:5px;min-width:0}\n#bw5 .bw5-detail-grid img{width:100%;aspect-ratio:1\/1;object-fit:contain;background:#10151c}\n#bw5 .bw5-detail-grid article\u003ediv{padding:13px}\n#bw5 .bw5-detail-grid article span{font-size:10px;letter-spacing:.08em;color:var(--accent);font-weight:bold}\n#bw5 .bw5-detail-grid h4{font-size:21px;margin:7px 0}\n#bw5 .bw5-detail-grid p{font-size:13px}\n#bw5 .bw5-check{background:#161b24}\n#bw5 .bw5-checkgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}\n#bw5 .bw5-checkgrid\u003ediv{padding:14px;border-top:2px solid var(--accent);background:#1f2530}\n#bw5 .bw5-checkgrid b{color:var(--accent);display:block;font-size:22px;line-height:1.1}\n#bw5 .bw5-checkgrid strong{display:block;margin:6px 0;color:#fff;font-size:12px;letter-spacing:.04em}\n#bw5 .bw5-checkgrid p{font-size:12px}\n#bw5 .bw5-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}\n#bw5 .bw5-grid figure{min-width:0;margin:0;padding:5px;background:#181d26;border:1px solid #3c4450}\n#bw5 .bw5-grid img{width:100%;aspect-ratio:1\/1;object-fit:contain;background:#0e131a}\n#bw5 .bw5-grid figcaption{font-size:9px;letter-spacing:.06em;color:#c0c7d2;text-align:center;padding:7px 3px 3px}\n#bw5 .bw5-faq details{margin:6px 0;border:1px solid #3f4752;border-left:2px solid var(--accent);background:#1b2029}\n#bw5 .bw5-faq summary{cursor:pointer;list-style:none;position:relative;padding:13px 35px 13px 13px;font-size:13px;line-height:1.45;font-weight:bold;color:#f1f3f6}\n#bw5 .bw5-faq summary::-webkit-details-marker{display:none}\n#bw5 .bw5-faq summary:after{content:'+';position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--accent)}\n#bw5 .bw5-faq details[open] summary:after{content:'−'}#bw5 .bw5-faq details p{padding:0 13px 13px;font-size:12px;margin:0}\n#bw5 .bw5-end{text-align:center;margin-top:13px;padding:27px 15px;border:1px solid #663544;background:radial-gradient(ellipse at 50% 100%,rgba(255,70,92,.13),transparent 70%),#111620}\n#bw5 .bw5-end h3{font-size:clamp(31px,5.5cqw,52px);margin:0 0 9px}\n#bw5 .bw5-end p:not(.bw5-kicker){margin:0 auto 15px;max-width:470px}\n#bw5 .bw5-end a{display:inline-block;max-width:100%;background:var(--accent);color:#101115!important;text-decoration:none!important;font-weight:900;font-size:12px;letter-spacing:.04em;padding:13px 18px}\n@container (min-width:760px){#bw5 .bw5-hero{grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:25px}#bw5 .bw5-feature{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:25px}#bw5 .bw5-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#bw5 .bw5-checkgrid{grid-template-columns:repeat(3,minmax(0,1fr))}#bw5 .bw5-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}\n@media (max-width:650px){#bw5 .bw5-top span:last-child{display:none}#bw5 .bw5-heading{padding:20px 5px 15px}#bw5 .bw5-section{padding:24px 0}}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function(){\n  function ready(){\n    var root=document.getElementById('bw5');\n    if(!root||root.dataset.loaded==='1')return;\n    root.dataset.loaded='1';\n    var handle='bat-wing-motorcycle-laser-safety-light-bold-road-projection-rear-warning-lamp';\n    var main=root.querySelector('#bw5-main'),loading=root.querySelector('#bw5-loading'),thumbs=root.querySelector('#bw5-thumbs'),dots=root.querySelector('#bw5-dots');\n    var photos=[],index=0,interval=null,touchStart=0;\n    function absolute(x){\n      if(!x)return '';\n      var u=String(x).replace(\/^\\\/\\\/\/,'https:');\n      if(u.charAt(0)==='\/')u=location.origin+u;\n      return \/^https?:\\\/\\\/\/i.test(u)?u:'';\n    }\n    function uniq(items){\n      var used={};\n      return items.map(function(x){return {src:absolute(typeof x==='string'?x:(x.src||x.url)),alt:typeof x==='string'?'':(x.alt||'')};}).filter(function(x){\n        var key=x.src.split('?')[0].replace(\/_\\d+x\\d+(?=\\.)\/,'');\n        if(!x.src||used[key]||\/logo|favicon|payment|placeholder|badge\/i.test(key))return false;\n        used[key]=true;return true;\n      });\n    }\n    function domPhotos(){\n      var results=[];\n      document.querySelectorAll('media-gallery img,product-gallery img,.product__media img,.product-media-gallery img,[id*=\"MediaGallery\"] img').forEach(function(el){\n        if(root.contains(el))return;\n        var s=el.currentSrc||el.src;\n        if(\/\\\/cdn\\\/shop\\\/|cdn\\.shopify\\.com\/i.test(s||''))results.push({src:s,alt:el.alt||''});\n      });\n      var og=document.querySelector('meta[property=\"og:image\"]');\n      if(og\u0026\u0026og.content)results.unshift({src:og.content,alt:'Product main photo'});\n      return uniq(results);\n    }\n    function fromProduct(p){\n      var arr=[];\n      (p.images||[]).forEach(function(x){arr.push(typeof x==='string'?{src:x,alt:''}:{src:x.src,alt:x.alt||''});});\n      (p.media||[]).forEach(function(x){if(!x.media_type||x.media_type==='image')arr.push({src:x.src||(x.preview_image\u0026\u0026x.preview_image.src),alt:x.alt||''});});\n      if(p.description){\n        var box=document.createElement('div');box.innerHTML=p.description;\n        box.querySelectorAll('img').forEach(function(im){arr.push({src:im.getAttribute('data-src')||im.getAttribute('src'),alt:im.alt||''});});\n      }\n      return uniq(arr);\n    }\n    function showError(){\n      main.hidden=true;loading.hidden=false;\n      loading.querySelector('b').textContent='PRODUCT GALLERY';\n      loading.querySelector('small').textContent='Add this code to a Custom Liquid block in the product template to load images.';\n    }\n    function paint(){\n      dots.innerHTML='';\n      if(!photos.length){showError();return;}\n      var p=photos[index];\n      main.hidden=false;loading.hidden=true;\n      if(main.getAttribute('src')!==p.src)main.src=p.src;\n      main.alt=p.alt||'Actual product image '+(index+1);\n      root.querySelector('#bw5-count').textContent=String(index+1).padStart(2,'0');\n      photos.slice(0,12).forEach(function(_,i){var b=document.createElement('i');if(i===index)b.className='on';dots.appendChild(b);});\n      root.querySelector('.bw5-prev').hidden=root.querySelector('.bw5-next').hidden=photos.length\u003c2;\n      Array.from(thumbs.children).forEach(function(b,i){b.classList.toggle('on',i===index);});\n    }\n    function move(n){if(photos.length\u003c2)return;index=(index+n+photos.length)%photos.length;paint();}\n    function pause(){if(interval)clearInterval(interval);interval=null;}\n    function play(){pause();if(photos.length\u003c2||window.matchMedia\u0026\u0026window.matchMedia('(prefers-reduced-motion:reduce)').matches)return;interval=setInterval(function(){move(1);},4000);}\n    function thumbBuild(){thumbs.innerHTML='';photos.slice(0,8).forEach(function(p,i){var b=document.createElement('button');b.type='button';b.setAttribute('aria-label','View product photo '+(i+1));var im=document.createElement('img');im.src=p.src;im.alt='Product thumbnail '+(i+1);im.loading='lazy';b.appendChild(im);b.onclick=function(){index=i;paint();play();};thumbs.appendChild(b);});}\n    function choose(re,indexFallback){return photos.find(function(p){return re.test(p.alt+' '+p.src.split('\/').pop());})||photos[Math.min(indexFallback,photos.length-1)]||null;}\n    function staticPhoto(imageId,sectionId,p){var el=root.querySelector('#'+imageId),section=root.querySelector('#'+sectionId);if(!p||!el||!section)return;el.onload=function(){section.hidden=false;};el.onerror=function(){section.hidden=true;};el.src=p.src;el.alt=p.alt||el.alt;}\n    function install(items){photos=uniq(items);index=0;thumbBuild();paint();play();if(!photos.length)return;\n      var effect=choose(\/projection|road|night|effect|wing|ground\/i,0);\n      var one=choose(\/housing|projector|lens|body|hardware|detail\/i,Math.min(1,photos.length-1));\n      var two=choose(\/mount|bracket|wiring|install|fender|side\/i,Math.min(2,photos.length-1));\n      staticPhoto('bw5-effect-photo','bw5-effect-section',effect);\n      if(photos.length\u003e=2){\n        staticPhoto('bw5-detail-one','bw5-card-one',one);\n        if(photos.length\u003e=3){staticPhoto('bw5-detail-two','bw5-card-two',two);}\n        root.querySelector('#bw5-details-section').hidden=false;\n      }\n      var g=root.querySelector('#bw5-grid');g.innerHTML='';photos.slice(0,8).forEach(function(p,i){var f=document.createElement('figure'),im=document.createElement('img'),cap=document.createElement('figcaption');im.src=p.src;im.alt=p.alt||'Real product photo '+(i+1);im.loading='lazy';im.onerror=function(){f.remove();if(!g.children.length)root.querySelector('#bw5-gallery-section').hidden=true;};cap.textContent='ORIGINAL PRODUCT PHOTO \/ '+String(i+1).padStart(2,'0');f.appendChild(im);f.appendChild(cap);g.appendChild(f);});\n      root.querySelector('#bw5-gallery-section').hidden=!g.children.length;\n    }\n    root.querySelector('.bw5-prev').onclick=function(){move(-1);play();};root.querySelector('.bw5-next').onclick=function(){move(1);play();};\n    var stage=root.querySelector('#bw5-stage');stage.addEventListener('mouseenter',pause);stage.addEventListener('mouseleave',play);\n    stage.addEventListener('touchstart',function(e){touchStart=e.changedTouches[0].screenX;},{passive:true});\n    stage.addEventListener('touchend',function(e){var dx=e.changedTouches[0].screenX-touchStart;if(Math.abs(dx)\u003e35){move(dx\u003c0?1:-1);play();}},{passive:true});\n    main.addEventListener('error',function(){if(photos.length){photos.splice(index,1);index=0;thumbBuild();paint();play();}});\n    root.querySelector('#bw5-up').onclick=function(e){e.preventDefault();window.scrollTo({top:0,behavior:'smooth'});};\n    var early=domPhotos();if(early.length)install(early);\n    var prefix=window.Shopify\u0026\u0026window.Shopify.routes\u0026\u0026window.Shopify.routes.root||'\/';if(prefix.slice(-1)!=='\/')prefix+='\/';\n    fetch(prefix+'products\/'+handle+'.js',{credentials:'same-origin'}).then(function(r){if(!r.ok)throw Error('Unavailable');return r.json();}).then(function(p){var newPhotos=fromProduct(p);if(newPhotos.length)install(newPhotos);else if(!photos.length)showError();}).catch(function(){if(!photos.length){var fallback=domPhotos();if(fallback.length)install(fallback);else showError();}});\n  }\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',ready);else ready();\n})();\n\u003c\/script\u003e\n","brand":"zhidou","offers":[{"title":"Default Title","offer_id":68124855828717,"sku":null,"price":29.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0841\/9354\/2381\/files\/2cea9948-036d-491a-bff1-f7cd09f7c5e4.png?v=1793430437","url":"https:\/\/alasjoy.com\/products\/bat-wing-motorcycle-laser-safety-light-bold-road-projection-rear-warning-lamp","provider":"alasjoy","version":"1.0","type":"link"}