{"title":"Mouse Pads","description":"","products":[{"product_id":"mp50-ergonomic-mouse-pad","title":"MP50 Ergonomic Mouse Pad with Wrist Rest","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\n\u003cstyle\u003e\n\/* ===== Global Reset + Brand Standards ===== *\/\n* { margin:0; padding:0; box-sizing:border-box; }\nbody { background-color: #ffffff; font-family: Arial, sans-serif; }\n.responsive { width: 100%; height: auto; }\n\n\/* Top Title Area *\/\n.k90-feature-wrap {\n    margin: 40px auto 0;\n    padding: 0 20px;\n    text-align: center;\n}\n.k90-model {\n    font-size: 35px;\n    font-weight: 700;\n    color: #f3a330;\n    margin-bottom: 8px;\n    line-height: 1.2;\n}\n.k90-title {\n    font-size: 24px;\n    font-weight: 700;\n    color: #222;\n    line-height: 1.3;\n    margin-bottom: 30px;\n}\n@media (max-width:750px) {\n    .k90-model {font-size:22px;}\n    .k90-title {font-size:18px; margin-bottom:20px;}\n}\n\n\/* Selling Point Icon Area *\/\n.page_specs_container2 {\n    display: flex !important;\n    flex-wrap: wrap !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    background-color: #f5f7f8;\n    padding: 10px 0 !important;\n}\n.specs_wrapper2 {\n    width: 33.3333% !important;\n    flex: 0 0 33.3333% !important;\n    padding: 25px 15px !important;\n    display: flex !important;\n    justify-content: center !important;\n    align-items: center !important;\n    min-height: 120px !important;\n    box-sizing: border-box !important;\n}\n@media (max-width:750px) {\n    .page_specs_container2 {max-width: 100% !important;}\n    .specs_wrapper2 {\n        width: 50% !important; \n        flex: 0 0 50% !important;\n        padding:20px 8px !important;\n        min-height: 100px !important;\n    }\n}\n.gm_icon_blocks_a {\n    line-height: 1.5;\n    color: #000000;\n    font-size: 14px;\n    margin: auto;\n    text-align: center;\n    width: 100%;\n}\n.material-icons_shopifyuse {\n    font-family: 'Material Icons_shopifyuse';\n    font-weight: normal;\n    font-style: normal;\n    line-height: 1;\n    display: block;\n    text-align: center;\n    font-size: 28px;\n    color: #f3a330;\n    margin-bottom: 12px;\n}\n@media (max-width:750px) {\n    .material-icons_shopifyuse {font-size:24px;}\n}\n\n\/* ===== Core Adjustment: Carousel Area Layout (Title Top \/ Image Middle \/ Text Bottom) ===== *\/\n.product_detail_banner {\n    position: relative;\n    display: block;\n    text-align: center;\n    background-color: #ffffff;\n    margin: 40px auto 0; \/* Carousel section spacing *\/\n    padding: 0 20px 30px;\n}\n\n\/* Carousel Title (Separated, placed above carousel images) *\/\n.carousel-title {\n    font-size: 18px;\n    font-weight: 700;\n    margin-bottom:20px;\n    color:#222;\n    line-height:1.2;\n    text-align: center;\n}\n\n\/* Carousel Container (Center display, core fix for arrow centering) *\/\n.carousel-container {\n    position: relative;\n    overflow: hidden;\n    touch-action: pan-y;\n    display: block !important;\n    margin: 0 auto 20px; \/* Spacing between carousel image and text below *\/\n    width: 100% !important;\n    \/* Ensure container height follows image, arrows centered *\/\n    aspect-ratio: 1464 \/ 600; \/* Match image ratio, force container ratio *\/\n}\n.carousel-slides {\n    display: flex;\n    transition: transform 0.3s ease-out;\n    will-change: transform;\n    height: 100%; \/* Carousel slides fill container height *\/\n}\n.carousel-slide {\n    width: 100% !important;\n    flex-shrink: 0;\n    height: 100%; \/* Carousel slide fill container height *\/\n}\n.carousel-slide img {\n    display: block;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: contain; \/* Image center display, no stretching *\/\n}\n\n\/* Carousel Text Description (Below carousel) *\/\n.carousel-desc {\n    line-height: 1.6;\n    color: #555;\n    font-size:14px;\n    text-align: center;\n    padding: 0 10px;\n}\n\n\/* Carousel Arrows (Vertically centered based on container height) *\/\n.carousel-prev, .carousel-next {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%); \/* Precise vertical centering *\/\n    background: rgba(255,255,255,0.8);\n    border: none;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index:10;\n    box-shadow: 0 2px 6px rgba(0,0,0,0.1);\n    transition: all 0.2s ease;\n}\n.carousel-prev {left: 15px;}\n.carousel-next {right: 15px;}\n.carousel-prev::before {\n    content:''; width:8px; height:8px;\n    border-top:2px solid #f3a330; border-left:2px solid #f3a330;\n    transform: rotate(-45deg);\n}\n.carousel-next::before {\n    content:''; width:8px; height:8px;\n    border-top:2px solid #f3a330; border-right:2px solid #f3a330;\n    transform: rotate(45deg);\n}\n.carousel-prev:hover, .carousel-next:hover {background:#fff;}\n@media (max-width:750px) {\n    .carousel-prev, .carousel-next {width:32px; height:32px;}\n    .carousel-prev {left:8px;}\n    .carousel-next {right:8px;}\n}\n\n\/* Carousel Dots *\/\n.carousel-dots {\n    position: absolute;\n    bottom:20px;\n    left:50%;\n    transform: translateX(-50%);\n    display:flex;\n    gap:10px;\n    z-index:10;\n}\n.carousel-dot {\n    width:10px;\n    height:10px;\n    border-radius:50%;\n    background:rgba(255,255,255,0.6);\n    cursor:pointer;\n    transition:all 0.3s ease;\n}\n.carousel-dot.active {\n    background:#f3a330;\n    width:24px;\n    border-radius:5px;\n}\n@media (max-width:750px) {\n    .carousel-dot {width:8px; height:8px;}\n    .carousel-dot.active {width:20px;}\n}\n\n\/* Font Library *\/\n@font-face {\n    font-family: 'Material Icons_shopifyuse';\n    font-style: normal;\n    font-weight: 400;\n    src: url(https:\/\/fonts.gstatic.com\/s\/materialicons\/v128\/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');\n    font-display: swap;\n}\n\u003c\/style\u003e\n\n\n\u003c!-- Top Title Area --\u003e\n\u003cdiv class=\"k90-feature-wrap\"\u003e\n    \u003cdiv class=\"k90-model\"\u003eMP50\u003c\/div\u003e\n    \u003cdiv class=\"k90-title\"\u003eProtoArc Ergonomic Mouse Pad\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Selling Point Icon Area --\u003e\n\u003cdiv class=\"page_specs_container2\"\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003eaccessibility\u003c\/span\u003e\n            \u003cp\u003e8° Ergonomic\u003cbr\u003eSlope\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003espa\u003c\/span\u003e\n            \u003cp\u003eMassage\u003cbr\u003eBeads Design\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003efitness_center\u003c\/span\u003e\n            \u003cp\u003ePremium\u003cbr\u003eMemory Foam\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003etexture\u003c\/span\u003e\n            \u003cp\u003eHigh-quality\u003cbr\u003ePU Leather\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003elock\u003c\/span\u003e\n            \u003cp\u003eNon-Slip\u003cbr\u003ePU Base\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"specs_wrapper2\"\u003e\n        \u003cdiv class=\"gm_icon_blocks_a\"\u003e\n            \u003cspan class=\"material-icons_shopifyuse\"\u003etrack_changes\u003c\/span\u003e\n            \u003cp\u003ePrecise\u003cbr\u003eMouse Tracking\u003c\/p\u003e\n        \u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- First Carousel (Ergonomic Comfort Support) --\u003e\n\u003cdiv class=\"product_detail_banner\"\u003e\n    \u003c!-- Carousel Title (Top) --\u003e\n    \u003ch4 class=\"carousel-title\"\u003eErgonomic 8° Slope \u0026amp; Comfort\u003c\/h4\u003e\n    \u003c!-- Carousel Images (Middle) - Replace with actual image links --\u003e\n    \u003cdiv class=\"carousel-container\" aria-label=\"Ergonomic comfort carousel\"\u003e\n        \u003cbutton class=\"carousel-prev\"\u003e\u003c\/button\u003e\n        \u003cbutton class=\"carousel-next\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"carousel-slides\"\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/58541a59-aed4-477c-bf70-47f6f92b6ba3.__CR0_0_1464_600_PT0_SX1464_V1.png?v=1766713163\" loading=\"lazy\" alt=\"8° Ergonomic Slope Design\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/122b1f43-7f29-45f1-9bac-202afa71775a.__CR0_0_1464_600_PT0_SX1464_V1____1.png?v=1766713163\" loading=\"lazy\" alt=\"Massage Beads for Wrist Comfort\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/06467c3e-d229-4fbf-9bfe-f5672342cc80.__CR0_0_1464_600_PT0_SX1464_V1.png?v=1766713163\" loading=\"lazy\" alt=\"Carpal Tunnel Syndrome Relief\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"carousel-dots\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003c!-- Carousel Text (Bottom) --\u003e\n    \u003cdiv class=\"carousel-desc\"\u003e\n        This ergonomic mouse pad features an 8-degree tilt to provides stable support for your wrist and palm, effectively alleviating fatigue from prolonged use, while also helping to improve discomfort associated with Carpal Tunnel Syndrome (CTS). The massage bump design promote air circulation, preventing sweaty discomfort and keeping your wrist cool and dry all day\u003cbr\u003e\u003cbr\u003eLearning curve: 1-2 weeks adaptation time for first-time use.\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Second Carousel (PU Surface \u0026 Non-Slip Base) --\u003e\n\u003cdiv class=\"product_detail_banner\"\u003e\n    \u003c!-- Carousel Title (Top) --\u003e\n    \u003ch4 class=\"carousel-title\"\u003ePU Surface with Non-Slip Base \u0026amp; Precise Tracking\u003c\/h4\u003e\n    \u003c!-- Carousel Images (Middle) - Replace with actual image links --\u003e\n    \u003cdiv class=\"carousel-container\" aria-label=\"PU surface carousel\"\u003e\n        \u003cbutton class=\"carousel-prev\"\u003e\u003c\/button\u003e\n        \u003cbutton class=\"carousel-next\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"carousel-slides\"\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/9ca58383-2461-474f-8ad6-73bbc894c034.__CR0_0_1464_600_PT0_SX1464_V1.png?v=1766713163\" loading=\"lazy\" alt=\"Smooth PU Leather Surface\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/875049e3-02dd-4520-bdfb-a2ad98c723c1.__CR0_0_1464_600_PT0_SX1464_V1.png?v=1766713163\" loading=\"lazy\" alt=\"Non-Slip PU Base\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"carousel-dots\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003c!-- Carousel Text (Bottom) --\u003e\n    \u003cdiv class=\"carousel-desc\"\u003e\n        Topped with a smooth PU leather surface for pixel-precise tracking, and backed by a non-slip rubber base for firm stability, this mousemat provides dual-layer assurance for seamless, controlled movement. The smooth surface ensures effortless mouse gliding and accurate cursor positioning, compatible with wireless, vertical, and gaming mice.\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Third Carousel (Size \u0026 Applicability) --\u003e\n\u003cdiv class=\"product_detail_banner\"\u003e\n    \u003c!-- Carousel Title (Top) --\u003e\n    \u003ch4 class=\"carousel-title\"\u003ePerfect Size for All Users \u0026amp; Wide Applicability\u003c\/h4\u003e\n    \u003c!-- Carousel Images (Middle) - Replace with actual image links --\u003e\n    \u003cdiv class=\"carousel-container\" aria-label=\"Size and applicability carousel\"\u003e\n        \u003cbutton class=\"carousel-prev\"\u003e\u003c\/button\u003e\n        \u003cbutton class=\"carousel-next\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"carousel-slides\"\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/eac66cf1-cfa4-4941-94c9-be3e73785d29.__CR0_0_1464_600_PT0_SX1464_V1.png?v=1766713162\" loading=\"lazy\" alt=\"11.81x7.67 Inches Size\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/9ca58383-2461-474f-8ad6-73bbc894c034.__CR0_0_1464_600_PT0_SX1464_V1____1.png?v=1766713163\" loading=\"lazy\" alt=\"Home\/Office\/Gaming Use\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"carousel-dots\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003c!-- Carousel Text (Bottom) --\u003e\n    \u003cdiv class=\"carousel-desc\"\u003e\n        Measuring 30x19.5x4cm (11.81x7.67x1.57in), it offers ample space for mouse movement and is suitable for both right and left-handed users. Ideal for gaming, office work, or home use. Warm tips: Since it takes a learning curve to get used to the shape when using our ergonomic mouse pad for the first time, it may cause inconvenience initially, but it will help reduce wrist pressure and pain from long-term mouse use.\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Carousel JS (Keep unchanged) --\u003e\n\u003cscript\u003e\ndocument.querySelectorAll('.carousel-container').forEach(container =\u003e {\n    const slides = container.querySelector('.carousel-slides');\n    const slideItems = container.querySelectorAll('.carousel-slide');\n    const prevBtn = container.querySelector('.carousel-prev');\n    const nextBtn = container.querySelector('.carousel-next');\n    const dotsContainer = container.querySelector('.carousel-dots');\n    const slideCount = slideItems.length;\n    let currentIndex = 0;\n    let isDragging = false;\n    let startX = 0;\n    let startTranslate = 0;\n    let currentTranslate = 0;\n    let autoPlayInterval;\n\n    const generateDots = () =\u003e {\n        dotsContainer.innerHTML = '';\n        slideItems.forEach((_, index) =\u003e {\n            const dot = document.createElement('div');\n            dot.className = `carousel-dot ${index === 0 ? 'active' : ''}`;\n            dot.addEventListener('click', () =\u003e goToSlide(index));\n            dotsContainer.appendChild(dot);\n        });\n    };\n    const getSlideWidth = () =\u003e slideItems[0].offsetWidth;\n    const updateCarousel = () =\u003e {\n        const slideWidth = getSlideWidth();\n        currentTranslate = -currentIndex * slideWidth;\n        slides.style.transform = `translateX(${currentTranslate}px)`;\n        container.querySelectorAll('.carousel-dot').forEach((dot, i) =\u003e {\n            dot.classList.toggle('active', i === currentIndex);\n        });\n    };\n    const goToSlide = (index) =\u003e {currentIndex = index; updateCarousel(); resetAutoPlay();};\n    const prevSlide = () =\u003e {currentIndex = (currentIndex -1 + slideCount) % slideCount; updateCarousel(); resetAutoPlay();};\n    const nextSlide = () =\u003e {currentIndex = (currentIndex +1) % slideCount; updateCarousel(); resetAutoPlay();};\n\n    const handleTouchStart = (e) =\u003e {\n        isDragging = true; startX = e.touches[0].clientX; startTranslate = currentTranslate; slides.style.transition = 'none'; resetAutoPlay();\n    };\n    const handleTouchMove = (e) =\u003e {\n        if (!isDragging) return;\n        const diffX = e.touches[0].clientX - startX;\n        currentTranslate = (currentIndex===0\u0026\u0026diffX\u003e0)||(currentIndex===slideCount-1\u0026\u0026diffX\u003c0) ? startTranslate + diffX*0.3 : startTranslate + diffX;\n        slides.style.transform = `translateX(${currentTranslate}px)`;\n    };\n    const handleTouchEnd = (e) =\u003e {\n        if (!isDragging) return; isDragging = false; slides.style.transition = 'transform 0.3s ease-out';\n        const diffX = e.changedTouches[0].clientX - startX;\n        const threshold = getSlideWidth() * 0.15;\n        diffX\u003ethreshold ? prevSlide() : diffX\u003c-threshold ? nextSlide() : updateCarousel();\n    };\n\n    const startAutoPlay = () =\u003e autoPlayInterval = setInterval(nextSlide,5000);\n    const resetAutoPlay = () =\u003e {clearInterval(autoPlayInterval); startAutoPlay();};\n    window.addEventListener('resize', updateCarousel);\n    slideItems.forEach(s=\u003es.querySelector('img').addEventListener('load',updateCarousel));\n\n    prevBtn.addEventListener('click', prevSlide);\n    nextBtn.addEventListener('click', nextSlide);\n    container.addEventListener('touchstart', handleTouchStart, {passive:true});\n    container.addEventListener('touchmove', handleTouchMove, {passive:true});\n    container.addEventListener('touchend', handleTouchEnd);\n    container.addEventListener('mouseenter',()=\u003eclearInterval(autoPlayInterval));\n    container.addEventListener('mouseleave', startAutoPlay);\n\n    generateDots();\n    slideItems[0].querySelector('img').complete ? updateCarousel() : slideItems[0].querySelector('img').addEventListener('load', updateCarousel);\n    startAutoPlay();\n});\n\u003c\/script\u003e\n\n\u003c\/body\u003e","brand":"ProtoArc","offers":[{"title":"Black","offer_id":42943090589785,"sku":"CP016706","price":26.59,"currency_code":"USD","in_stock":true},{"title":"Gray","offer_id":42943119720537,"sku":"CP016708","price":28.49,"currency_code":"USD","in_stock":true},{"title":"Beige","offer_id":42943119753305,"sku":"CP016707","price":28.49,"currency_code":"USD","in_stock":true},{"title":"Black PU Leather","offer_id":42943146197081,"sku":"CP016704","price":20.49,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0551\/3972\/9497\/files\/MP50_Mouse_Pad_Main.png?v=1775031852"}],"url":"https:\/\/www.protoarc.com\/collections\/mouse-pads.oembed","provider":"ProtoArc","version":"1.0","type":"link"}