Easter Virtual Race
.pacer_desc { font-family: Helvetica Neue; } .pacer_desc .main_width { margin: 0 auto; } .pacer_desc .content_font { font-size: 16px; color: #3a3a3a; } .pacer_desc .section_title { text-align: center; font-weight: bold; font-size: 32px; } .pacer_desc .cp_list { margin-top: 50px; display: flex; background: rgba(196, 196, 196, 0.1); border-radius: 10px; padding: 54px 122px; } .pacer_desc .cp_item { flex: 1; display: flex; flex-direction: column; align-items: center; } .pacer_desc .cp_item + .cp_item { margin-left: 20px; } .pacer_desc .cp_list .cp_img { width: 100%; max-width: 200px; object-fit: contain; border-radius: 1000px; } .pacer_desc .cp_list .cp_name { margin-top: 30px; font-weight: bold; max-width: 220px; word-break: break-word; } .pacer_desc .divider { background: linear-gradient(90.03deg, #740d16 0.02%, #9f2732 99.98%); text-align: center; color: #fff; margin-top: 60px; padding: 10px 0; font-size: 15px; font-weight: 700; width: 100vw; margin-left: calc(50% - 50vw); position: relative; } .pacer_desc .feature { display: flex; align-items: center; justify-content: space-between; } .pacer_desc .feature .powered_by { margin-top: 20px; display: flex; align-items: center; } .pacer_desc .feature .powered_by img { margin-left: 10px; width: 130px; } .pacer_desc .feature .content, .pacer_desc .feature .feature_img { width: 50%; } .pacer_desc .feature .content + .feature_img, .pacer_desc .feature .feature_img + .content { margin-left: 50px; } .pacer_desc .feature .content .title { font-size: 32px; font-weight: bold; } .pacer_desc .feature .content .content_value { font-size: 16px; } .pacer_desc .tshirt { /* display: none; */ } .pacer_desc .medal .medal_desc, .pacer_desc .tshirt .tshirt_desc, .pacer_desc .checkpoint .cp_desc { margin-top: 30px; } .pacer_desc .medal_images { display: flex; margin: 40px 20px 0; justify-content: center; align-items: center; width: 100vw; margin-left: calc(50% - 50vw); } .pacer_desc .medal_images .medal_img { width: 30%; margin-right: 10px; vertical-align: middle; cursor: pointer; } .pacer_desc .medal_images .medal_img.video_item { cursor: initial; } .pacer_desc .medal_img:last-child { margin-right: 0; } .pacer_desc .mobile_video { display: none; width: 100%; /* height: 300px; */ object-fit: cover; margin-top: 20px; } .modal_image { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; background-color: #000; display: none; z-index: 99; } .modal_image .close { position: absolute; top: 35px; right: 70px; font-size: 50px; font-weight: bold; color: #fff; cursor: pointer; transition: 0.3s; } .modal_image .close:hover { color: #ddd; } .modal_image img { max-width: 100%; max-height: 100%; object-fit: contain; } @media screen and (max-width: 800px) { .pacer_desc .medal { width: 100%; } .pacer_desc .medal_images { padding-left: 15px; margin-top: 10px; overflow-x: scroll; justify-content: flex-start; box-sizing: border-box; scrollbar-width: none; margin-left: -15px; padding-right: 15px; /* no video */ flex-direction: column; margin-left: 0; margin-right: 0; padding: 0; width: 100%; } .pacer_desc .medal_images::-webkit-scrollbar { display: none; } .pacer_desc .medal_images .medal_img { width: 70vw; min-width: auto; height: auto; align-self: flex-start; margin-bottom: 10px; margin-right: 0; /* no video */ width: 100%; } .pacer_desc .medal_images .medal_img.video_item { display: none; } .pacer_desc .cp_list { margin-top: 20px; padding: 10px; } .modal_image .close { position: absolute; top: 20px; right: 30px; font-size: 40px; font-weight: bold; color: #fff; cursor: pointer; transition: 0.3s; } } @media screen and (max-width: 768px) { .pacer_desc .mobile_video { display: block; } .pacer_desc .medal { width: 100%; } .pacer_desc .medal_images { padding-left: 15px; margin-top: 10px; overflow-x: scroll; justify-content: flex-start; box-sizing: border-box; scrollbar-width: none; margin-left: -15px; padding-right: 15px; /* no video */ flex-direction: column; margin-left: 0; margin-right: 0; padding: 0; width: 100%; } .pacer_desc .medal_images::-webkit-scrollbar { display: none; } .pacer_desc .medal_images .medal_img { width: 70vw; min-width: auto; height: auto; align-self: flex-start; margin-bottom: 10px; margin-right: 0; /* no video */ width: 100%; } .pacer_desc .medal_images .medal_img.video_item { display: none; } .pacer_desc .cp_list { margin-top: 20px; padding: 10px; } .pacer_desc .cp_list .cp_item .cp_img { width: 100%; height: auto; } .pacer_desc .cp_list .cp_name { margin-top: 10px; color: #8f8f8f; font-weight: normal; font-style: italic; } .pacer_desc .feature { flex-direction: column-reverse; } .pacer_desc .feature + .feature { margin-top: 30px; } .pacer_desc .feature.img_first { flex-direction: column; } .pacer_desc .feature .feature_img, .pacer_desc .feature .content { width: 100%; } .pacer_desc .feature .content + .feature_img, .pacer_desc .feature .feature_img + .content { margin-left: 0; } .pacer_desc .feature .content { margin-top: 20px; } .pacer_desc .feature .content .title { text-align: center; width: 80%; margin: 0 auto; font-size: 30px; line-height: initial; } .pacer_desc .medal .medal_desc, .pacer_desc .tshirt .tshirt_desc, .pacer_desc .checkpoint .cp_desc { margin-top: 18px; } } Join our Joyful Easter Virtual Race! Select your preferred distance, complete it all at once, and secure your Easter Bunny medal. When and Where - This is a virtual race. Participate and complete at anytime, from anywhere in the world. How - Set your own timeframe and finish the required distance in one go with walk, run, bike or any distance-based activities of your choice. Rewards - Receive a gorgeous finisher medal at your doorstep with worldwide shipping! You will also receive an E-certificate via email and unlock a digital badge in the app. GET INSPIRED, BE ACTIVE, AND EARN A MEDAL Stunning Happy Easter Finisher Medal Each medal is created with deliberate design and exquisite craftsmanship, and comes in a cushioned showcase box. It's guaranteed not to be like any other medals that you've earned before. FUN VIRTUAL EXPERIENCE Works With What You Have Connect Pacer app with your favorite wearables/apps and easily sync over your workout. Not a fan of fancy stuff? Your phone works just fine too! Global Challenge Leaderboards You don’t have to be alone during the journey! See and compare your performance with other participants with global and friends leaderboards. Digital Happy Easter Badges and Perks Upon completion of the virtual race, you will unlock a unique badge as well as an E-certificate to print or brag about! × const modalImageContainerClassName = 'modal_image' const medalImages = document.querySelectorAll('.medal_img') const modalImage = document.querySelector('.modal_image') const modalImageImg = document.querySelector('.modal_image img') const modalImageClose = document.querySelector('.modal_image .close') const modalImageUtils = (function () { const showModalImage = (src) => { if (!src) return modalImageImg.src = src modalImage.style.display = 'flex' udpateModalImageWidth() } const udpateModalImageWidth = () => { const windowWidth = window.innerWidth const windowHeight = window.innerHeight if (windowWidth < windowHeight) { modalImageImg.style.width = windowWidth + 'px' modalImageImg.style.height = 'auto' } else { modalImageImg.style.width = 'auto' modalImageImg.style.height = windowHeight + 'px' } } const hideModalImage = () => { modalImage.style.display = 'none' } return { showModalImage, udpateModalImageWidth, hideModalImage, } })() const modalImageListner = (function () { const listenWindowResize = () => { window.addEventListener('resize', () => { modalImageUtils.udpateModalImageWidth() }) } const listenMedalImageClick = () => { medalImages.forEach((img) => { if (img.classList.contains('video_item')) return img.addEventListener('click', () => { const imgSrc = img.src || '' modalImageUtils.showModalImage(imgSrc) }) }) } const listenModalImageCloseClick = () => { modalImageClose.addEventListener('click', () => { modalImageUtils.hideModalImage() }) modalImage.addEventListener('click', (e) => { if (e.target.classList.contains(modalImageContainerClassName)) { modalImageUtils.hideModalImage() } }) } const init = () => { listenWindowResize() listenMedalImageClick() listenModalImageCloseClick() } return { init, } })() const modalImageMain = () => { modalImageListner.init() } modalImageMain()