{"id":1579,"date":"2026-06-17T07:41:34","date_gmt":"2026-06-17T07:41:34","guid":{"rendered":"https:\/\/www.contactsamerica.com\/vision\/?p=1579"},"modified":"2026-06-17T07:41:39","modified_gmt":"2026-06-17T07:41:39","slug":"wearing-contact-lenses-while-scuba-diving-or-snorkeling-in-hawaii-and-florida","status":"publish","type":"post","link":"https:\/\/www.contactsamerica.com\/vision\/wearing-contact-lenses-while-scuba-diving-or-snorkeling-in-hawaii-and-florida\/","title":{"rendered":"Wearing Contact Lenses While Scuba Diving Or Snorkeling In Hawaii And Florida"},"content":{"rendered":"\n<p>Imagine cruising along with giant manta rays under the blue waters off the Kona coast, or swimming alongside sea turtles over a vibrant coral reef in Maui. Picture yourself dropping down onto a historic shipwreck in Key Largo, or floating over the shallow, sun-drenched patch reefs of Key West. Hawaii and the Florida Keys offer some of the most breathtaking underwater adventures on the planet. There is nothing quite like the thrill of stepping off the boat deck into that crystal-clear turquoise wilderness.<\/p>\n\n\n\n<p>But if you rely on contact lenses to see the world, diving into a tropical ocean adventure comes with its own unique set of questions. What happens if a rogue wave floods your mask? Will fine sand or reef-safe sunscreen ruin your lenses? Can you safely explore these reefs without risking an eye infection?<\/p>\n\n\n\n<p>While you can absolutely wear contacts on your underwater excursions, exploring the marine environments of the Pacific and the Atlantic require a solid plan.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Can You Wear Contact Lenses While Snorkeling Or Scuba Diving in Salt Water?<\/h2>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef-1024x683.webp\" alt=\"\" class=\"wp-image-1597\" style=\"width:760px\" srcset=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef-1024x683.webp 1024w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef-300x200.webp 300w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef-768x512.webp 768w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef-1536x1024.webp 1536w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-on-a-Reef.webp 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<div style=\"height:26px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Yes. The alien world under the waves is just waiting for you to discover.<\/p>\n\n\n\n<p>However, you\u2019ll want to treat your eyes with the same respect you show the ocean. Even in the crystal-clear waters of Maui, Oahu, or the Florida Keys, the ocean is a living ecosystem. Salt water harbors plankton, bacteria, and other microscopic organisms. A sudden mask leak can instantly trap water, fine volcanic sand, sunscreen, or tiny reef debris right against your contacts.<\/p>\n\n\n\n<p>If you\u2019re snorkeling, diving, or swimming along Hawaii\u2019s coastlines, a sudden shift in wind or surf can send an unexpected splash into your mask. Over in Key West or the Middle Keys, you might find yourself floating over a shallow reef for hours, giving trapped salt or bacteria more time to irritate your eyes.<\/p>\n\n\n\n<p>Salt water can spray and get into your eyes when you\u2019re hopping from a sunny beach to a choppy boat deck. Or when you board your dive boat to travel from one dive site to another.<\/p>\n\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Hawaii Diving and Snorkeling Tips For Contact Lens Wearers<\/h3>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Hawaii-1024x559.webp\" alt=\"\" class=\"wp-image-1603\" style=\"width:760px\" srcset=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Hawaii-1024x559.webp 1024w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Hawaii-300x164.webp 300w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Hawaii-768x419.webp 768w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Hawaii.webp 1408w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<div style=\"height:22px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Scuba diving and snorkeling over Hawaii&#8217;s vibrant coral reefs is a bucket-list experience, but if you wear contacts, a little morning strategy goes a long way.<\/p>\n\n\n\n<p>The Pacific can be unpredictable, so your best bet is always to head out early. Morning conditions across the islands offer glassy, calm waters and pristine visibility before the afternoon trade winds kick up. Calmer water means you won\u2019t be constantly fighting the surf, adjusting your mask, or tempted to rub your eyes. For the safest conditions, stick to lifeguarded beaches like Oahu&#8217;s Hanauma Bay or Maui&#8217;s Napili Bay.<\/p>\n\n\n\n<p>Your mask protects your eyes, while allowing you to clearly see underwater. Before you enter the water, give your mask a rigorous fit test. A flawless seal around your forehead, nose, and cheeks is your absolute best line of defense. Even a tiny, slow trickle of saltwater can turn a lovely swim into a gritty, stinging mess if it gets trapped under your lens.<\/p>\n\n\n\n<p>Once you have your contacts on your eyes, practice a strict hands-off policy for your face. Your fingers are a magnet for irritants, especially if you can\u2019t keep your fingers off the chips, rental scuba equipment, seaweeds, or sand.<\/p>\n\n\n\n<p>If your lens starts acting up, don\u2019t try to fix it on the shore or on the boat. Wait until you can access fresh water, wash and dry your hands thoroughly, and use fresh solution from your dry bag.<\/p>\n\n\n\n<p>Speaking of your dry bag, treat it like your personal eye-care oasis. Pack a heavy backup kit: extra daily lenses, your regular glasses, a <a href=\"https:\/\/www.contactsamerica.com\/vision\/how-to-clean-your-contact-case\/\" target=\"_blank\" rel=\"noreferrer noopener\">clean case<\/a>, and plenty of contact-safe rewetting drops to soothe that inevitable post-ocean dryness.<\/p>\n\n\n\n<p>However, if you find yourself spending more time looking at sea turtles than sitting on the sand, it might be time to ditch the contacts altogether for the trip and look into a prescription snorkel mask. It removes the worry entirely so you can just enjoy the view.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Florida Keys Diving And Snorkeling Tips For Contact Lens Wearers<\/h3>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Florida-1024x559.webp\" alt=\"\" class=\"wp-image-1606\" style=\"width:760px\" srcset=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Florida-1024x559.webp 1024w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Florida-300x164.webp 300w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Florida-768x419.webp 768w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Snorkeling-in-Florida.webp 1408w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>With its lovely sandy beaches, sand flats, and vibrant reefs, the Florida Keys practically demand that you get underwater. But the logistics of a Keys dive boat require some extra strategy for contact lens wearers. It doesn\u2019t matter if you\u2019re heading out to the massive coral formations of Key Largo, the shallow reefs of Islamorada, or the vibrant waters of Marathon and Key West. Your eye-safety game starts before the boat even leaves the dock.<\/p>\n\n\n\n<p>As usual, ensure your mask has a flawless seal. A stray wave in the open Atlantic can easily breach a loose mask and send saltwater straight into your eyes and under your lens, leaving you with a gritty, stinging view of the reef.<\/p>\n\n\n\n<p>Keep your hands away from your eyes entirely. Boat decks are hotbeds for hidden irritants and pathogens. Your fingers are likely coated in a mix of heavy reef-safe sunscreen, salt crust, and microscopic boat fuel residue from the ladders.<\/p>\n\n\n\n<p>For a Keys trip, daily disposable lenses are your absolute best friend. Toss a fresh pair in before you board the boat, head out for your dive, and peel them out and discard them the second you peel off your wetsuit. This eliminates the nightmare of trying to clean reusable lenses with sandy, salty hands in a tiny boat marine head or a crowded marina bathroom. If you do stick to reusables, make sure they get a massive, sterile deep-clean the second you get back to your hotel.<\/p>\n\n\n\n<div style=\"height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!-- Florida Keys Marine Sanctuary Quote Card \u2014 paste into a WordPress Custom HTML block -->\n<style>\n.fk-reef-card {\n  position: relative;\n  width: 100%;\n  max-width: 680px;\n  min-height: 300px;\n  border-radius: 18px;\n  overflow: hidden;\n  background: linear-gradient(180deg, #0a3d6b 0%, #0e5a8a 30%, #1a7ab5 60%, #1a8fc7 80%, #1bb0e0 100%);\n  font-family: Georgia, 'Times New Roman', serif;\n  box-sizing: border-box;\n  cursor: default;\n  box-shadow: 0 8px 32px rgba(0,40,80,0.35);\n  margin: 0 auto;\n}\n.fk-reef-card:hover .fk-wave1 { animation-play-state: running; }\n.fk-reef-card:hover .fk-wave2 { animation-play-state: running; }\n.fk-reef-card:hover .fk-wave3 { animation-play-state: running; }\n.fk-reef-card:hover .fk-fish1 { animation-play-state: running; }\n.fk-reef-card:hover .fk-fish2 { animation-play-state: running; }\n.fk-reef-card:hover .fk-fish3 { animation-play-state: running; }\n.fk-reef-card:hover .fk-turtle1 { animation-play-state: running; }\n.fk-reef-card:hover .fk-turtle2 { animation-play-state: running; }\n.fk-reef-card:hover .fk-hover-hint { opacity: 0; }\n.fk-quote-area {\n  position: relative;\n  z-index: 10;\n  padding: 36px 44px 160px 44px;\n}\n.fk-quote-text {\n  font-size: 15.5px;\n  color: #e8f6ff;\n  line-height: 1.75;\n  font-style: italic;\n  text-shadow: 0 1px 4px rgba(0,0,0,0.4);\n  margin: 0;\n}\n.fk-ocean-scene {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 200px;\n  z-index: 5;\n  pointer-events: none;\n}\n.fk-wave1 {\n  animation: fkWave1 4s ease-in-out infinite;\n  animation-play-state: paused;\n  transform-origin: 0 60px;\n}\n.fk-wave2 {\n  animation: fkWave2 5s ease-in-out infinite;\n  animation-play-state: paused;\n  transform-origin: 0 88px;\n}\n.fk-wave3 {\n  animation: fkWave3 3.5s ease-in-out infinite;\n  animation-play-state: paused;\n  transform-origin: 0 115px;\n}\n@keyframes fkWave1 {\n  0%,100% { transform: translateX(0) scaleY(1); }\n  50% { transform: translateX(-30px) scaleY(1.06); }\n}\n@keyframes fkWave2 {\n  0%,100% { transform: translateX(0) scaleY(1); }\n  50% { transform: translateX(25px) scaleY(0.95); }\n}\n@keyframes fkWave3 {\n  0%,100% { transform: translateX(0); }\n  50% { transform: translateX(-20px) scaleY(1.04); }\n}\n.fk-fish1 { animation: fkSwim1 7s linear infinite; animation-play-state: paused; }\n.fk-fish2 { animation: fkSwim2 9s linear infinite; animation-play-state: paused; }\n.fk-fish3 { animation: fkSwim3 6s linear infinite; animation-play-state: paused; }\n.fk-turtle1 { animation: fkTurtle1 11s linear infinite; animation-play-state: paused; }\n.fk-turtle2 { animation: fkTurtle2 14s linear infinite; animation-play-state: paused; }\n@keyframes fkSwim1 {\n  0% { transform: translateX(-80px) translateY(0px); }\n  25% { transform: translateX(160px) translateY(-8px); }\n  50% { transform: translateX(350px) translateY(4px); }\n  75% { transform: translateX(530px) translateY(-5px); }\n  100% { transform: translateX(750px) translateY(0px); }\n}\n@keyframes fkSwim2 {\n  0% { transform: translateX(750px) translateY(0px) scaleX(-1); }\n  50% { transform: translateX(300px) translateY(6px) scaleX(-1); }\n  100% { transform: translateX(-80px) translateY(0px) scaleX(-1); }\n}\n@keyframes fkSwim3 {\n  0% { transform: translateX(-80px) translateY(0px); }\n  100% { transform: translateX(750px) translateY(10px); }\n}\n@keyframes fkTurtle1 {\n  0% { transform: translateX(750px) translateY(0px) scaleX(-1); }\n  50% { transform: translateX(350px) translateY(-12px) scaleX(-1); }\n  100% { transform: translateX(-100px) translateY(0px) scaleX(-1); }\n}\n@keyframes fkTurtle2 {\n  0% { transform: translateX(-100px) translateY(0px); }\n  50% { transform: translateX(350px) translateY(8px); }\n  100% { transform: translateX(750px) translateY(0px); }\n}\n.fk-hover-hint {\n  position: absolute;\n  bottom: 8px;\n  right: 16px;\n  z-index: 20;\n  font-size: 11px;\n  color: rgba(180,230,255,0.55);\n  font-family: Arial, sans-serif;\n  letter-spacing: 0.05em;\n  pointer-events: none;\n  transition: opacity 0.3s;\n}\n<\/style>\n\n<div class=\"fk-reef-card\" role=\"article\" aria-label=\"Florida Keys quote card\">\n  <div class=\"fk-quote-area\">\n    <p class=\"fk-quote-text\">\n      Remember that the Florida Keys National Marine Sanctuary is a protected treasure. While you&#8217;re busy keeping an eye out for dive flags, boat traffic, and your snorkel buddy, make sure you&#8217;re practicing good reef etiquette. Keep your fins up and away from the delicate living coral.\n    <\/p>\n  <\/div>\n\n  <svg class=\"fk-ocean-scene\" viewBox=\"0 0 680 200\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n    <defs>\n      <linearGradient id=\"fkSeaGrad\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"#1bb0e0\" stop-opacity=\"0.0\"\/>\n        <stop offset=\"18%\" stop-color=\"#1293c0\" stop-opacity=\"0.85\"\/>\n        <stop offset=\"55%\" stop-color=\"#0a6b96\" stop-opacity=\"1\"\/>\n        <stop offset=\"100%\" stop-color=\"#054160\" stop-opacity=\"1\"\/>\n      <\/linearGradient>\n      <linearGradient id=\"fkCoralGrad1\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"#e87040\"\/>\n        <stop offset=\"100%\" stop-color=\"#c04820\"\/>\n      <\/linearGradient>\n      <linearGradient id=\"fkCoralGrad2\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"#d44090\"\/>\n        <stop offset=\"100%\" stop-color=\"#8a1050\"\/>\n      <\/linearGradient>\n      <linearGradient id=\"fkSandGrad\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0%\" stop-color=\"#c8a84b\"\/>\n        <stop offset=\"100%\" stop-color=\"#8a6820\"\/>\n      <\/linearGradient>\n    <\/defs>\n    <rect x=\"0\" y=\"0\" width=\"680\" height=\"200\" fill=\"url(#fkSeaGrad)\"\/>\n    <rect x=\"0\" y=\"168\" width=\"680\" height=\"32\" fill=\"url(#fkSandGrad)\"\/>\n    <ellipse cx=\"80\" cy=\"168\" rx=\"70\" ry=\"10\" fill=\"#b89030\" opacity=\"0.5\"\/>\n    <ellipse cx=\"300\" cy=\"170\" rx=\"100\" ry=\"8\" fill=\"#c8a040\" opacity=\"0.4\"\/>\n    <ellipse cx=\"560\" cy=\"169\" rx=\"90\" ry=\"9\" fill=\"#b89030\" opacity=\"0.5\"\/>\n    <g opacity=\"0.9\">\n      <polygon points=\"40,168 50,140 60,168\" fill=\"url(#fkCoralGrad1)\"\/>\n      <polygon points=\"55,168 63,148 71,168\" fill=\"#e06030\"\/>\n      <polygon points=\"48,168 56,152 64,168\" fill=\"#f08050\" opacity=\"0.7\"\/>\n      <ellipse cx=\"55\" cy=\"140\" rx=\"8\" ry=\"6\" fill=\"#f09060\"\/>\n    <\/g>\n    <g opacity=\"0.85\">\n      <rect x=\"110\" y=\"150\" width=\"8\" height=\"18\" rx=\"4\" fill=\"url(#fkCoralGrad2)\"\/>\n      <rect x=\"120\" y=\"145\" width=\"8\" height=\"23\" rx=\"4\" fill=\"#c030a0\"\/>\n      <rect x=\"130\" y=\"155\" width=\"8\" height=\"13\" rx=\"4\" fill=\"#e040b0\"\/>\n      <ellipse cx=\"114\" cy=\"149\" rx=\"7\" ry=\"5\" fill=\"#e050c0\"\/>\n      <ellipse cx=\"124\" cy=\"144\" rx=\"7\" ry=\"5\" fill=\"#d040a8\"\/>\n    <\/g>\n    <g opacity=\"0.85\">\n      <polygon points=\"500,168 510,143 520,168\" fill=\"#e08030\"\/>\n      <polygon points=\"515,168 524,150 533,168\" fill=\"#d06020\"\/>\n      <ellipse cx=\"510\" cy=\"143\" rx=\"8\" ry=\"6\" fill=\"#f09050\"\/>\n    <\/g>\n    <g opacity=\"0.8\">\n      <rect x=\"580\" y=\"148\" width=\"7\" height=\"20\" rx=\"3\" fill=\"url(#fkCoralGrad2)\"\/>\n      <rect x=\"590\" y=\"153\" width=\"7\" height=\"15\" rx=\"3\" fill=\"#c030a0\"\/>\n      <ellipse cx=\"583\" cy=\"147\" rx=\"6\" ry=\"4\" fill=\"#e050c0\"\/>\n    <\/g>\n    <g opacity=\"0.7\">\n      <polygon points=\"195,168 201,155 207,168\" fill=\"#d07030\"\/>\n      <polygon points=\"228,168 235,150 242,168\" fill=\"#e06828\"\/>\n    <\/g>\n    <g>\n      <ellipse cx=\"80\" cy=\"100\" rx=\"60\" ry=\"12\" fill=\"#e0f8ff\" opacity=\"0.08\"\/>\n      <ellipse cx=\"300\" cy=\"80\" rx=\"40\" ry=\"8\" fill=\"#e0f8ff\" opacity=\"0.06\"\/>\n      <ellipse cx=\"520\" cy=\"120\" rx=\"55\" ry=\"10\" fill=\"#e0f8ff\" opacity=\"0.07\"\/>\n    <\/g>\n    <g class=\"fk-wave1\">\n      <path d=\"M-20,60 Q50,42 120,60 Q190,78 260,60 Q330,42 400,60 Q470,78 540,60 Q610,42 700,60\" fill=\"none\" stroke=\"rgba(200,240,255,0.55)\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <path d=\"M-20,60 Q50,50 120,60 Q190,70 260,60 Q330,50 400,60 Q470,70 540,60 Q610,50 700,60 L700,200 L-20,200 Z\" fill=\"rgba(255,255,255,0.06)\"\/>\n    <\/g>\n    <g class=\"fk-wave2\">\n      <path d=\"M-30,88 Q60,72 140,88 Q220,104 300,88 Q380,72 460,88 Q540,104 620,88 Q680,76 720,88\" fill=\"none\" stroke=\"rgba(200,240,255,0.45)\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n    <\/g>\n    <g class=\"fk-wave3\">\n      <path d=\"M-10,115 Q70,100 150,115 Q230,130 310,115 Q390,100 470,115 Q550,130 630,115 Q680,106 710,115\" fill=\"none\" stroke=\"rgba(180,230,255,0.35)\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <\/g>\n    <g class=\"fk-fish1\" style=\"transform:translateX(-80px)\">\n      <ellipse cx=\"14\" cy=\"62\" rx=\"14\" ry=\"7\" fill=\"#ffcc00\"\/>\n      <polygon points=\"0,62 -8,55 -8,69\" fill=\"#ffaa00\"\/>\n      <ellipse cx=\"18\" cy=\"60\" rx=\"2.5\" ry=\"2.5\" fill=\"#222\"\/>\n      <line x1=\"10\" y1=\"57\" x2=\"10\" y2=\"67\" stroke=\"#e0a800\" stroke-width=\"1\" opacity=\"0.5\"\/>\n    <\/g>\n    <g class=\"fk-fish2\" style=\"transform:translateX(750px) scaleX(-1)\">\n      <ellipse cx=\"14\" cy=\"48\" rx=\"12\" ry=\"6\" fill=\"#ff6622\"\/>\n      <ellipse cx=\"10\" cy=\"43\" rx=\"4\" ry=\"2.5\" fill=\"white\" opacity=\"0.7\"\/>\n      <ellipse cx=\"10\" cy=\"53\" rx=\"4\" ry=\"2.5\" fill=\"white\" opacity=\"0.7\"\/>\n      <polygon points=\"2,48 -6,42 -6,54\" fill=\"#dd4400\"\/>\n      <ellipse cx=\"18\" cy=\"46\" rx=\"2\" ry=\"2\" fill=\"#111\"\/>\n      <line x1=\"9\" y1=\"44\" x2=\"9\" y2=\"52\" stroke=\"#cc4400\" stroke-width=\"0.8\" opacity=\"0.5\"\/>\n    <\/g>\n    <g class=\"fk-fish3\" style=\"transform:translateX(-80px)\">\n      <ellipse cx=\"11\" cy=\"130\" rx=\"11\" ry=\"5.5\" fill=\"#44ccff\"\/>\n      <polygon points=\"0,130 -7,125 -7,135\" fill=\"#22aaee\"\/>\n      <line x1=\"6\" y1=\"126\" x2=\"6\" y2=\"134\" stroke=\"#1188cc\" stroke-width=\"0.8\" opacity=\"0.5\"\/>\n      <ellipse cx=\"15\" cy=\"128\" rx=\"2\" ry=\"2\" fill=\"#003\"\/>\n    <\/g>\n    <g class=\"fk-turtle1\" style=\"transform:translateX(750px) scaleX(-1)\">\n      <ellipse cx=\"18\" cy=\"35\" rx=\"18\" ry=\"13\" fill=\"#3a8c3a\"\/>\n      <ellipse cx=\"18\" cy=\"35\" rx=\"13\" ry=\"9\" fill=\"#5ab45a\" opacity=\"0.7\"\/>\n      <line x1=\"10\" y1=\"28\" x2=\"4\" y2=\"22\" stroke=\"#3a8c3a\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <line x1=\"26\" y1=\"28\" x2=\"32\" y2=\"22\" stroke=\"#3a8c3a\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <line x1=\"10\" y1=\"42\" x2=\"4\" y2=\"48\" stroke=\"#3a8c3a\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <line x1=\"26\" y1=\"42\" x2=\"32\" y2=\"48\" stroke=\"#3a8c3a\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n      <ellipse cx=\"30\" cy=\"35\" rx=\"7\" ry=\"5\" fill=\"#4aac4a\"\/>\n      <ellipse cx=\"32\" cy=\"34\" rx=\"2\" ry=\"1.5\" fill=\"#111\"\/>\n      <ellipse cx=\"32.5\" cy=\"33\" rx=\"0.8\" ry=\"0.8\" fill=\"white\"\/>\n    <\/g>\n    <g class=\"fk-turtle2\" style=\"transform:translateX(-100px)\">\n      <ellipse cx=\"18\" cy=\"100\" rx=\"15\" ry=\"11\" fill=\"#2d7a3a\"\/>\n      <ellipse cx=\"18\" cy=\"100\" rx=\"10\" ry=\"7\" fill=\"#4aaa5a\" opacity=\"0.65\"\/>\n      <line x1=\"10\" y1=\"94\" x2=\"4\" y2=\"88\" stroke=\"#2d7a3a\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n      <line x1=\"26\" y1=\"94\" x2=\"32\" y2=\"88\" stroke=\"#2d7a3a\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n      <line x1=\"10\" y1=\"106\" x2=\"4\" y2=\"112\" stroke=\"#2d7a3a\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n      <line x1=\"26\" y1=\"106\" x2=\"32\" y2=\"112\" stroke=\"#2d7a3a\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n      <ellipse cx=\"29\" cy=\"100\" rx=\"6\" ry=\"4\" fill=\"#3a9a4a\"\/>\n      <ellipse cx=\"31\" cy=\"99\" rx=\"1.8\" ry=\"1.5\" fill=\"#111\"\/>\n      <ellipse cx=\"31.5\" cy=\"98.3\" rx=\"0.7\" ry=\"0.7\" fill=\"white\"\/>\n    <\/g>\n  <\/svg>\n\n  <div class=\"fk-hover-hint\">Hover to animate \u2726<\/div>\n<\/div>\n\n\n\n<div style=\"height:36px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">What To Do If Seawater Gets In Your Eyes While Wearing Contacts<\/h3>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Let\u2019s face it: your mask will be even the best divers and snorkelers get flooded by a rogue wave now and then. If a splash of Atlantic or Pacific saltwater breaches your mask and hits your contacts, your absolute first instinct will be to rub your eyes.<\/p>\n\n\n\n<p>Don\u2019t do it. Rubbing compresses the lens against your eye, grinding in fine sand, salt crystals, and sunscreen like sandpaper.<\/p>\n\n\n\n<p>Instead, blink rapidly to let your natural tears do some heavy lifting, signal your buddy, and calmly head back to the boat or beach.<\/p>\n\n\n\n<p>Once you\u2019re out of the water, follow this step-by-step reset plan:<\/p>\n\n\n\n<ul>\n<li>Don\u2019t rush to rip your lenses out with salty fingers. Find a spot out of the wind, wash your hands thoroughly with fresh water and soap, and dry them completely.<br><\/li>\n\n\n\n<li>If the saltwater has caused the lens to suction tightly or feel stuck to your eye, flush your eye with a few generous drops of contact-safe rewetting solution to loosen the lens before gently pinching it out.<br><\/li>\n\n\n\n<li>Never rinse your lenses or case with ocean water, bottled drinking water, or tap water. Invasive amoebas love fresh water just as much as salt water. Only use sterile contact lens solution.<br><\/li>\n\n\n\n<li>If you\u2019re wearing dailies, toss them straight into the trash. If you wear reusable lenses, give them a deep, sterile disinfection soak. For the rest of the day, give your eyes a well-deserved break and rock your backup glasses.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Purging Flooded Masks<\/h2>\n\n\n\n<p>Even with a well-sealed mask, a rogue wave or a big smile can break the seal and let water trickle in. If you feel that familiar splash inside your frame, don&#8217;t panic. You can clear the water out in seconds before it ever touches your contacts.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<style>\n*{box-sizing:border-box;margin:0;padding:0}\n.mc-wrap{background:#0a3d6b;border-radius:16px;overflow:hidden;font-family:var(--font-sans,Arial,sans-serif);padding:0 0 28px 0}\n.mc-stepper{display:flex;align-items:center;gap:0;padding:16px 28px 0;position:relative}\n.mc-step-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px 4px;position:relative;transition:opacity 0.2s}\n.mc-step-btn:hover{opacity:0.85}\n.mc-step-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;transition:background 0.3s,color 0.3s;border:2px solid transparent}\n.mc-step-dot.active{background:#1bb0e0;color:#fff;border-color:#1bb0e0}\n.mc-step-dot.done{background:#1d9e75;color:#fff;border-color:#1d9e75}\n.mc-step-dot.idle{background:rgba(255,255,255,0.1);color:rgba(180,220,255,0.6);border-color:rgba(255,255,255,0.15)}\n.mc-step-label{font-size:10px;color:rgba(180,220,255,0.7);text-align:center;max-width:68px;line-height:1.3}\n.mc-step-label.active{color:#a0e0ff}\n.mc-connector{flex:0 0 20px;height:2px;background:rgba(255,255,255,0.12);margin-bottom:16px;transition:background 0.3s}\n.mc-connector.done{background:#1d9e75}\n.mc-panel{margin:20px 28px 0;background:rgba(255,255,255,0.05);border-radius:12px;border:0.5px solid rgba(255,255,255,0.1);overflow:hidden;min-height:220px}\n.mc-panel-inner{display:none;padding:20px 22px}\n.mc-panel-inner.visible{display:flex;gap:20px;align-items:flex-start}\n.mc-illustration{flex:0 0 140px;height:140px;position:relative}\n.mc-text-side{flex:1;min-width:0}\n.mc-step-number{font-size:11px;font-weight:500;color:#1bb0e0;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:6px}\n.mc-step-title{font-size:16px;font-weight:500;color:#e8f6ff;margin-bottom:10px;line-height:1.3}\n.mc-step-body{font-size:13px;color:rgba(200,235,255,0.8);line-height:1.65}\n.mc-nav{display:flex;justify-content:space-between;align-items:center;padding:16px 28px 0}\n.mc-btn{background:rgba(27,176,224,0.15);border:0.5px solid rgba(27,176,224,0.4);color:#a0e0ff;font-size:13px;padding:8px 18px;border-radius:8px;cursor:pointer;transition:background 0.2s}\n.mc-btn:hover{background:rgba(27,176,224,0.28)}\n.mc-btn:disabled{opacity:0.3;cursor:default}\n.mc-progress{font-size:12px;color:rgba(180,220,255,0.5)}\n.mc-complete{display:none;padding:20px 22px;flex-direction:column;align-items:center;text-align:center;gap:10px}\n.mc-complete.visible{display:flex}\n.mc-complete-icon{width:52px;height:52px;border-radius:50%;background:#1d9e75;display:flex;align-items:center;justify-content:center}\n.mc-complete-title{font-size:16px;font-weight:500;color:#e8f6ff}\n.mc-complete-body{font-size:13px;color:rgba(200,235,255,0.75);line-height:1.6;max-width:340px}\n.mc-restart{margin-top:4px}\nsvg.ill{width:140px;height:140px;overflow:visible}\n<\/style>\n\n<div class=\"mc-wrap\">\n  <div class=\"mc-stepper\" id=\"stepper\"><\/div>\n  <div class=\"mc-panel\" id=\"panel\">\n    <div class=\"mc-panel-inner\" id=\"step-content\"><\/div>\n    <div class=\"mc-complete\" id=\"complete-panel\">\n      <div class=\"mc-complete-icon\">\n        <svg viewBox=\"0 0 52 52\" width=\"52\" height=\"52\">\n          <circle cx=\"26\" cy=\"26\" r=\"26\" fill=\"#1d9e75\"\/>\n          <path d=\"M14 26 Q20 18 26 26 Q32 34 38 26\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n          <ellipse cx=\"19\" cy=\"26\" rx=\"3\" ry=\"3\" fill=\"#fff\" opacity=\"0.9\"\/>\n          <ellipse cx=\"33\" cy=\"26\" rx=\"3\" ry=\"3\" fill=\"#fff\" opacity=\"0.9\"\/>\n          <path d=\"M20 32 Q26 36 32 32\" fill=\"none\" stroke=\"#9FE1CB\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"mc-complete-title\">Crystal-clear view!<\/div>\n      <div class=\"mc-complete-body\">You now know the five steps to clear a flooded mask underwater. Practice on the surface first, then build confidence in the water.<\/div>\n      <button class=\"mc-btn mc-restart\" onclick=\"restart()\">Start over<\/button>\n    <\/div>\n  <\/div>\n  <div class=\"mc-nav\">\n    <button class=\"mc-btn\" id=\"prev-btn\" onclick=\"go(-1)\">&#8592; Prev<\/button>\n    <span class=\"mc-progress\" id=\"progress-label\">Step 1 of 5<\/span>\n    <button class=\"mc-btn\" id=\"next-btn\" onclick=\"go(1)\">Next &#8594;<\/button>\n  <\/div>\n<\/div>\n\n<script>\nconst steps = [\n  {\n    label: \"Keep cool\",\n    title: \"Keep your cool\",\n    body: \"Breathe normally. If you're scuba diving, trust your regulator \u2014 keep it firmly in your mouth. Take steady, slow breaths exclusively through your mouth.\",\n    draw: drawBreath\n  },\n  {\n    label: \"Anchor mask\",\n    title: \"Anchor the mask against your forehead\",\n    body: \"Take two fingers and press the very top frame of your mask firmly against your forehead. This locks the upper seal in place so water has only one exit route \u2014 the bottom of the mask.\",\n    draw: drawAnchor\n  },\n  {\n    label: \"Look up\",\n    title: \"Look to the light\",\n    body: \"Tilt your head back slightly to look up toward the surface. This pools all the trapped saltwater at the bottom of your mask, right against your top lip and away from your eyes.\",\n    draw: drawLookUp\n  },\n  {\n    label: \"Blow nose\",\n    title: \"Blow through your nose\",\n    body: \"Take a long, steady breath through your mouth and exhale it firmly out of your nose. The trapped air will balloon inside the mask and force all the saltwater straight out of the bottom silicone skirt.\",\n    draw: drawBlow\n  },\n  {\n    label: \"Round two\",\n    title: \"Go for round two\",\n    body: \"If there is still a tiny puddle sitting under your nose, repeat the process. One or two good nose-breaths should leave your view completely dry.\",\n    draw: drawRepeat\n  }\n];\n\nfunction drawMask(cx, cy, w, h, color, opacity) {\n  opacity = opacity || 1;\n  const lw = w * 0.42, rw = w * 0.42, gap = w * 0.1;\n  const lx = cx - gap\/2 - lw, rx = cx + gap\/2;\n  const top = cy - h*0.38, mid = cy;\n  return `\n    <rect x=\"${lx}\" y=\"${top}\" width=\"${lw}\" height=\"${h*0.76}\" rx=\"${lw*0.3}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" opacity=\"${opacity}\"\/>\n    <rect x=\"${rx}\" y=\"${top}\" width=\"${rw}\" height=\"${h*0.76}\" rx=\"${rw*0.3}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" opacity=\"${opacity}\"\/>\n    <path d=\"M${lx+lw} ${mid} Q${cx} ${mid-h*0.12} ${rx} ${mid}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" stroke-linecap=\"round\" opacity=\"${opacity}\"\/>\n    <path d=\"M${lx} ${top+h*0.2} Q${lx-w*0.18} ${top} ${cx-w*0.55} ${top-h*0.05}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" stroke-linecap=\"round\" opacity=\"${opacity}\"\/>\n    <path d=\"M${rx+rw} ${top+h*0.2} Q${rx+rw+w*0.18} ${top} ${cx+w*0.55} ${top-h*0.05}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" stroke-linecap=\"round\" opacity=\"${opacity}\"\/>\n  `;\n}\n\nfunction drawRegulator(cx, cy, color, show) {\n  if (!show) return '';\n  return `\n    <circle cx=\"${cx}\" cy=\"${cy}\" r=\"10\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\"\/>\n    <circle cx=\"${cx}\" cy=\"${cy}\" r=\"5\" fill=\"${color}\" opacity=\"0.7\"\/>\n    <path d=\"M${cx-10} ${cy} Q${cx-18} ${cy+8} ${cx-22} ${cy+16}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <path d=\"M${cx+10} ${cy} Q${cx+14} ${cy-4} ${cx+14} ${cy-10}\" fill=\"none\" stroke=\"${color}\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-dasharray=\"2,2\"\/>\n  `;\n}\n\nfunction drawBreath(svg, t) {\n  const pulse = 0.5 + 0.5 * Math.sin(t * 0.055);\n  const airW = 18 + pulse * 14;\n  const maskColor = '#1bb0e0';\n  const bubbles = [0,1,2].map(i => {\n    const p = ((t * 0.03 + i * 0.33) % 1);\n    const bx = 70 + (i-1)*10 + Math.sin(p*6+i)*4;\n    const by = 105 - p*45;\n    const br = 3 + i*1.5;\n    const op = p < 0.7 ? 0.7 : (1-p)*2.3;\n    return `<circle cx=\"${bx}\" cy=\"${by}\" r=\"${br}\" fill=\"none\" stroke=\"rgba(27,176,224,0.7)\" stroke-width=\"1.2\" opacity=\"${Math.max(0,op)}\"\/>`;\n  }).join('');\n  svg.innerHTML = `\n    ${drawMask(70, 62, 72, 44, maskColor, 0.9)}\n    <rect x=\"${70 - airW\/2}\" y=\"56\" width=\"${airW}\" height=\"${6 + pulse*4}\" rx=\"3\" fill=\"rgba(27,176,224,${0.12 + pulse*0.15})\" stroke=\"${maskColor}\" stroke-width=\"0.5\" opacity=\"${0.4+pulse*0.5}\"\/>\n    <rect x=\"${70 - airW\/2 + 6}\" y=\"56\" width=\"${airW - 12}\" height=\"${6 + pulse*4}\" rx=\"2\" fill=\"rgba(27,176,224,${0.12 + pulse*0.12})\" stroke=\"${maskColor}\" stroke-width=\"0.5\" opacity=\"${0.3+pulse*0.4}\"\/>\n    ${drawRegulator(70, 98, maskColor, true)}\n    ${bubbles}\n    <text x=\"70\" y=\"126\" text-anchor=\"middle\" fill=\"rgba(160,224,255,0.7)\" font-size=\"10\" font-family=\"Arial\">breathe through regulator<\/text>\n  `;\n}\n\nfunction drawAnchor(svg, t) {\n  const press = 0.5 + 0.5 * Math.sin(t * 0.05);\n  const maskColor = '#5DCAA5';\n  const f1y = 30 - press * 5;\n  const f2y = 30 - press * 5;\n  svg.innerHTML = `\n    ${drawMask(70, 68, 72, 44, maskColor, 0.9)}\n    <line x1=\"40\" y1=\"47\" x2=\"100\" y2=\"47\" stroke=\"${maskColor}\" stroke-width=\"3.5\" stroke-linecap=\"round\" opacity=\"0.9\"\/>\n    <rect x=\"54\" y=\"${f1y}\" width=\"8\" height=\"20\" rx=\"4\" fill=\"${maskColor}\" opacity=\"0.85\"\/>\n    <rect x=\"78\" y=\"${f2y}\" width=\"8\" height=\"20\" rx=\"4\" fill=\"${maskColor}\" opacity=\"0.85\"\/>\n    <ellipse cx=\"58\" cy=\"${f1y}\" rx=\"5\" ry=\"4\" fill=\"${maskColor}\" opacity=\"0.9\"\/>\n    <ellipse cx=\"82\" cy=\"${f2y}\" rx=\"5\" ry=\"4\" fill=\"${maskColor}\" opacity=\"0.9\"\/>\n    <path d=\"M44 88 Q70 102 96 88\" fill=\"none\" stroke=\"rgba(93,202,165,0.5)\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n    <text x=\"70\" y=\"100\" text-anchor=\"middle\" fill=\"rgba(93,202,165,0.65)\" font-size=\"9\" font-family=\"Arial\">only exit: bottom skirt<\/text>\n    <text x=\"70\" y=\"124\" text-anchor=\"middle\" fill=\"rgba(159,225,203,0.7)\" font-size=\"10\" font-family=\"Arial\">press top frame firmly<\/text>\n  `;\n}\n\nfunction drawLookUp(svg, t) {\n  const tilt = Math.sin(t * 0.035) * 10;\n  const maskColor = '#EF9F27';\n  const waterLevel = 82 + tilt * 0.3;\n  const rays = [300, 330, 0, 30, 60].map(a => {\n    const r = a * Math.PI \/ 180;\n    const pulse = 0.6 + 0.4 * Math.sin(t * 0.07 + a * 0.04);\n    const x1 = 70 + Math.cos(r) * 14, y1 = 18 + Math.sin(r) * 14;\n    const x2 = 70 + Math.cos(r) * (26 * pulse), y2 = 18 + Math.sin(r) * (26 * pulse);\n    return `<line x1=\"${x1}\" y1=\"${y1}\" x2=\"${x2}\" y2=\"${y2}\" stroke=\"#EF9F27\" stroke-width=\"2\" stroke-linecap=\"round\" opacity=\"${pulse}\"\/>`;\n  }).join('');\n  svg.innerHTML = `\n    ${rays}\n    <circle cx=\"70\" cy=\"18\" r=\"11\" fill=\"#EF9F27\" opacity=\"0.9\"\/>\n    <g transform=\"rotate(${tilt}, 70, 68)\">\n      ${drawMask(70, 68, 72, 44, maskColor, 0.9)}\n      <rect x=\"36\" y=\"${waterLevel - 68 + 68}\" width=\"68\" height=\"6\" rx=\"3\" fill=\"rgba(27,176,224,0.5)\" stroke=\"rgba(27,176,224,0.8)\" stroke-width=\"0.5\"\/>\n    <\/g>\n    <text x=\"70\" y=\"124\" text-anchor=\"middle\" fill=\"rgba(250,199,117,0.75)\" font-size=\"10\" font-family=\"Arial\">water pools at bottom<\/text>\n  `;\n}\n\nfunction drawBlow(svg, t) {\n  const phase = (t * 0.04) % (Math.PI * 2);\n  const expand = 0.5 + 0.5 * Math.sin(phase);\n  const maskColor = '#7F77DD';\n  const drops = [0,1,2,3].map(i => {\n    const progress = ((t * 0.038 + i * 0.25) % 1);\n    const dx = 48 + i * 8;\n    const dy = 85 + progress * 32;\n    const op = progress < 0.6 ? 0.85 : Math.max(0, (1-progress)*2.1);\n    return `<ellipse cx=\"${dx}\" cy=\"${dy}\" rx=\"2.5\" ry=\"3.5\" fill=\"#378ADD\" opacity=\"${op}\"\/>`;\n  }).join('');\n  const airR = 10 + expand * 12;\n  svg.innerHTML = `\n    ${drawMask(70, 60, 72, 44, maskColor, 0.9)}\n    <ellipse cx=\"70\" cy=\"60\" rx=\"${airR + 14}\" ry=\"${airR * 0.6 + 6}\" fill=\"rgba(127,119,221,${0.1 + expand*0.12})\" stroke=\"${maskColor}\" stroke-width=\"1\" opacity=\"${0.4+expand*0.5}\"\/>\n    <path d=\"M55 45 Q63 40 71 45\" fill=\"none\" stroke=\"${maskColor}\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n    <path d=\"M57 48 Q63 44 69 48\" fill=\"none\" stroke=\"rgba(175,169,236,0.6)\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n    ${drops}\n    <path d=\"M44 84 L36 100 M44 84 L52 84\" fill=\"none\" stroke=\"rgba(55,138,221,0.6)\" stroke-width=\"1.2\" stroke-linecap=\"round\"\/>\n    <text x=\"70\" y=\"118\" text-anchor=\"middle\" fill=\"rgba(175,169,236,0.75)\" font-size=\"10\" font-family=\"Arial\">air pushes water out bottom<\/text>\n  `;\n}\n\nfunction drawRepeat(svg, t) {\n  const spin = (t * 1.6) % 360;\n  const pulse = 0.5 + 0.5 * Math.sin(t * 0.07);\n  const maskColor = '#1D9E75';\n  svg.innerHTML = `\n    ${drawMask(70, 62, 72, 44, maskColor, 0.9)}\n    <circle cx=\"70\" cy=\"62\" r=\"${28 + pulse*4}\" fill=\"none\" stroke=\"#1D9E75\" stroke-width=\"1.5\" stroke-dasharray=\"5,4\" opacity=\"${0.3+pulse*0.3}\" transform=\"rotate(${spin},70,62)\"\/>\n    <path d=\"M70 38 A24 24 0 1 1 46 62 L51 56 M46 62 L40 67\" fill=\"none\" stroke=\"#1D9E75\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <ellipse cx=\"57\" cy=\"62\" rx=\"7\" ry=\"5\" fill=\"rgba(29,158,117,${0.15+pulse*0.2})\" stroke=\"${maskColor}\" stroke-width=\"1\"\/>\n    <ellipse cx=\"83\" cy=\"62\" rx=\"7\" ry=\"5\" fill=\"rgba(29,158,117,${0.15+pulse*0.2})\" stroke=\"${maskColor}\" stroke-width=\"1\"\/>\n    <text x=\"70\" y=\"110\" text-anchor=\"middle\" fill=\"rgba(93,202,165,0.75)\" font-size=\"10\" font-family=\"Arial\">repeat once or twice<\/text>\n    <text x=\"70\" y=\"123\" text-anchor=\"middle\" fill=\"rgba(93,202,165,0.55)\" font-size=\"10\" font-family=\"Arial\">until mask is clear<\/text>\n  `;\n}\n\nlet current = 0;\nlet animFrames = {};\n\nfunction buildStepper() {\n  const s = document.getElementById('stepper');\n  s.innerHTML = '';\n  steps.forEach((step, i) => {\n    const btn = document.createElement('button');\n    btn.className = 'mc-step-btn';\n    btn.setAttribute('aria-label', 'Step ' + (i+1) + ': ' + step.title);\n    const dotClass = i < current ? 'done' : i === current ? 'active' : 'idle';\n    const labelClass = i === current ? 'active' : '';\n    const dotContent = i < current\n      ? `<svg viewBox=\"0 0 20 20\" width=\"16\" height=\"16\"><path d=\"M4 10l4 4 8-8\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>`\n      : (i+1);\n    btn.innerHTML = `<div class=\"mc-step-dot ${dotClass}\">${dotContent}<\/div><div class=\"mc-step-label ${labelClass}\">${step.label}<\/div>`;\n    btn.onclick = () => { current = i; render(); };\n    s.appendChild(btn);\n    if (i < steps.length - 1) {\n      const c = document.createElement('div');\n      c.className = 'mc-connector' + (i < current ? ' done' : '');\n      s.appendChild(c);\n    }\n  });\n}\n\nfunction render() {\n  buildStepper();\n  const panel = document.getElementById('step-content');\n  const complete = document.getElementById('complete-panel');\n  panel.className = 'mc-panel-inner visible';\n  complete.className = 'mc-complete';\n\n  const step = steps[current];\n  const svgId = 'ill-svg-' + current;\n  panel.innerHTML = `\n    <div class=\"mc-illustration\"><svg class=\"ill\" id=\"${svgId}\" viewBox=\"0 0 140 135\"><\/svg><\/div>\n    <div class=\"mc-text-side\">\n      <div class=\"mc-step-number\">Step ${current+1} of ${steps.length}<\/div>\n      <div class=\"mc-step-title\">${step.title}<\/div>\n      <div class=\"mc-step-body\">${step.body}<\/div>\n    <\/div>\n  `;\n\n  cancelAnimationFrame(animFrames._id);\n  let t = 0;\n  function animate() {\n    const el = document.getElementById(svgId);\n    if (el) { step.draw(el, t); t++; animFrames._id = requestAnimationFrame(animate); }\n  }\n  animate();\n\n  document.getElementById('prev-btn').disabled = current === 0;\n  document.getElementById('next-btn').textContent = current === steps.length - 1 ? 'Finish' : 'Next \u2192';\n  document.getElementById('progress-label').textContent = `Step ${current+1} of ${steps.length}`;\n}\n\nfunction go(dir) {\n  cancelAnimationFrame(animFrames._id);\n  if (dir === 1 && current === steps.length - 1) { showComplete(); return; }\n  current = Math.max(0, Math.min(steps.length - 1, current + dir));\n  render();\n}\n\nfunction showComplete() {\n  buildStepper();\n  document.getElementById('step-content').className = 'mc-panel-inner';\n  document.getElementById('complete-panel').className = 'mc-complete visible';\n  document.getElementById('prev-btn').disabled = true;\n  document.getElementById('next-btn').disabled = true;\n  document.getElementById('progress-label').textContent = 'Complete!';\n}\n\nfunction restart() {\n  current = 0;\n  document.getElementById('next-btn').disabled = false;\n  render();\n}\n\nrender();\n<\/script>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If your mask instantly floods again, check for the usual suspects: a stray strand of hair, thick reef sunscreen, facial hair breaking the seal, or a strap that you&#8217;ve pulled too tight, which actually warps the silicone and creates gaps<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What About Prescription Masks?<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" src=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Gemini_Generated_Image_sjtfvysjtfvysjtf-1024x559.webp\" alt=\"\" class=\"wp-image-1595\" style=\"width:760px\" srcset=\"https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Gemini_Generated_Image_sjtfvysjtfvysjtf-1024x559.webp 1024w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Gemini_Generated_Image_sjtfvysjtfvysjtf-300x164.webp 300w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Gemini_Generated_Image_sjtfvysjtfvysjtf-768x419.webp 768w, https:\/\/www.contactsamerica.com\/vision\/wp-content\/uploads\/2026\/06\/Gemini_Generated_Image_sjtfvysjtfvysjtf.webp 1408w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>If you are planning intensive weeks of island-hopping through Hawaii or driving down the Florida Keys, there is an easier way to see the reefs without the constant contact lens anxiety. Wear a prescription dive mask.<\/p>\n\n\n\n<p>Think of a prescription mask as a custom set of glasses built directly into your scuba or snorkel mask. Instead of wearing contacts under standard silicone skirts, the glass lenses themselves are matched exactly to your vision needs.<\/p>\n\n\n\n<p>You can pick up affordable, off-the-shelf masks with step-diopter lenses (similar to reading glasses) for simple nearsightedness, or order custom-ground lenses that handle severe astigmatism and even bifocal needs.<\/p>\n\n\n\n<p>For a water-centric vacation, this is perfect. Instead of fumbling with backup lens cases in a rocking boat cabin or trying to clean your hands with sandy beach towels, you simply apply a defogger on your mask, pull the strap over your head, and dive in. There is zero risk of a mask leak washing away a lens, and zero post-ocean eye dryness.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.contactsamerica.com\/vision\/signs-your-eyes-need-a-professional-checkup\/\" target=\"_blank\" rel=\"noreferrer noopener\">Check with your eye doctor<\/a> or slide into a local dive shop before you catch your flight. Ditching the contacts might just be the best investment you make for your vision and your vacation.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Enjoy the Underwater World<\/h2>\n\n\n\n<p>While you can absolutely rock your contact lenses on a tropical getaway, diving into the ocean always introduces a game of risk versus reward. But now that you know exactly how to handle the waves, the sand, and the unexpected flooding of your mask, you are fully equipped to protect your eyes and enjoy the view.<\/p>\n\n\n\n<p>The vibrant coral reefs, historic shipwrecks, and incredible marine life of Hawaii and the Florida Keys are waiting for you. Clear skies, calm seas, and happy diving galore! Go make some unforgettable underwater memories this summer.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<div class=\"faq-wrapper\">\n\n  <ul class=\"faq-list\">\n\n    <li class=\"faq-item\">\n      <button class=\"faq-question\" aria-expanded=\"false\" type=\"button\">\n        <span class=\"q-text\">Can you wear contact lenses on a boat before snorkeling or diving?<\/span>\n        <span class=\"q-icon\" aria-hidden=\"true\"><\/span>\n      <\/button>\n      <div class=\"faq-answer\">\n        <div class=\"faq-answer-inner\">\n          <p>Yes, but be mindful of wind, salt spray, sunscreen, and dry air. Boat rides can make contacts feel dry before you enter the water. Bring contact-safe rewetting drops, and avoid touching your eyes while onboard.<\/p>\n        <\/div>\n      <\/div>\n    <\/li>\n\n    <li class=\"faq-item\">\n      <button class=\"faq-question\" aria-expanded=\"false\" type=\"button\">\n        <span class=\"q-text\">Should you put contacts in before or after applying sunscreen?<\/span>\n        <span class=\"q-icon\" aria-hidden=\"true\"><\/span>\n      <\/button>\n      <div class=\"faq-answer\">\n        <div class=\"faq-answer-inner\">\n          <p>Put your contacts in before applying sunscreen. This lowers the chance of transferring sunscreen residue from your fingers to your lenses. After applying sunscreen, wash and dry your hands well before touching your eyes or handling lenses again.<\/p>\n        <\/div>\n      <\/div>\n    <\/li>\n\n    <li class=\"faq-item\">\n      <button class=\"faq-question\" aria-expanded=\"false\" type=\"button\">\n        <span class=\"q-text\">Can salt air make contacts feel dry?<\/span>\n        <span class=\"q-icon\" aria-hidden=\"true\"><\/span>\n      <\/button>\n      <div class=\"faq-answer\">\n        <div class=\"faq-answer-inner\">\n          <p>Yes. Salt air, wind, sun, and long boat rides can make your eyes feel drier than usual. If your lenses start feeling scratchy or uncomfortable, use contact-safe rewetting drops. Switch to glasses if the irritation continues.<\/p>\n        <\/div>\n      <\/div>\n    <\/li>\n\n    <li class=\"faq-item\">\n      <button class=\"faq-question\" aria-expanded=\"false\" type=\"button\">\n        <span class=\"q-text\">Should you bring glasses even if you plan to wear contacts all day?<\/span>\n        <span class=\"q-icon\" aria-hidden=\"true\"><\/span>\n      <\/button>\n      <div class=\"faq-answer\">\n        <div class=\"faq-answer-inner\">\n          <p>Yes. Backup glasses are a smart part of any beach, snorkel, or dive trip. If your contacts get uncomfortable, lost, torn, or exposed to ocean water, glasses let you rest your eyes without being stuck with blurry vision.<\/p>\n        <\/div>\n      <\/div>\n    <\/li>\n\n    <li class=\"faq-item\">\n      <button class=\"faq-question\" aria-expanded=\"false\" type=\"button\">\n        <span class=\"q-text\">Can you rent a prescription dive mask in Hawaii or Florida?<\/span>\n        <span class=\"q-icon\" aria-hidden=\"true\"><\/span>\n      <\/button>\n      <div class=\"faq-answer\">\n        <div class=\"faq-answer-inner\">\n          <p>Some dive shops may carry prescription masks for rent. However, availability can vary by location, prescription strength, and shop inventory. If you strongly rely on corrective lenses, call ahead or bring your own prescription mask so you\u2019re not scrambling before your tour.<\/p>\n        <\/div>\n      <\/div>\n    <\/li>\n\n  <\/ul>\n<\/div>\n\n<style>\n  .faq-wrapper {\n    width: 100%;\n    max-width: 680px;\n    margin: 0 auto;\n    font-family: 'DM Sans', Arial, sans-serif;\n  }\n\n  .faq-list {\n    list-style: none;\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    margin: 0;\n    padding: 0;\n  }\n\n  .faq-item {\n    border: 1.5px solid #000000;\n    border-radius: 12px;\n    overflow: hidden;\n    transition: box-shadow 0.3s ease, transform 0.3s ease;\n    background: #ffffff;\n  }\n\n  .faq-item:hover {\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);\n    transform: translateY(-3px);\n  }\n\n  .faq-item.open {\n    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.22);\n    transform: translateY(-3px);\n  }\n\n  .faq-question {\n    width: 100%;\n    background: #ffffff;\n    border: none;\n    cursor: pointer;\n    padding: 20px 24px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 16px;\n    text-align: left;\n  }\n\n  .faq-item.open .faq-question {\n    background: #f9f9f9;\n  }\n\n  .q-text {\n    font-size: 15px;\n    font-weight: 600;\n    color: #111111;\n    line-height: 1.45;\n    letter-spacing: 0.01em;\n  }\n\n  .q-icon {\n    flex-shrink: 0;\n    width: 20px;\n    height: 20px;\n    position: relative;\n  }\n\n  .q-icon::before,\n  .q-icon::after {\n    content: '';\n    position: absolute;\n    background: #111111;\n    border-radius: 1px;\n    transition: transform 0.3s ease, opacity 0.3s ease;\n    top: 50%;\n    left: 50%;\n  }\n\n  .q-icon::before {\n    width: 12px;\n    height: 1.5px;\n    transform: translate(-50%, -50%);\n  }\n\n  .q-icon::after {\n    width: 1.5px;\n    height: 12px;\n    transform: translate(-50%, -50%);\n  }\n\n  .faq-item.open .q-icon::after {\n    transform: translate(-50%, -50%) rotate(90deg);\n    opacity: 0;\n  }\n\n  .faq-answer {\n    max-height: 0;\n    overflow: hidden;\n    transition: max-height 0.4s ease;\n  }\n\n  .faq-item.open .faq-answer {\n    max-height: 360px;\n  }\n\n  .faq-answer-inner {\n    padding: 0 24px 22px;\n    border-top: 1px solid #e8e8e8;\n  }\n\n  .faq-answer-inner p {\n    font-size: 14px;\n    line-height: 1.8;\n    color: #444444;\n    padding-top: 18px;\n    margin: 0;\n  }\n\n  @media (max-width: 767px) {\n    .faq-question {\n      padding: 18px;\n    }\n\n    .q-text {\n      font-size: 14px;\n    }\n\n    .faq-answer-inner {\n      padding: 0 18px 18px;\n    }\n\n    .faq-answer-inner p {\n      font-size: 14px;\n      padding-top: 16px;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    var faqButtons = document.querySelectorAll('.faq-wrapper .faq-question');\n\n    faqButtons.forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        var item = btn.closest('.faq-item');\n        var isOpen = item.classList.contains('open');\n\n        document.querySelectorAll('.faq-wrapper .faq-item').forEach(function (el) {\n          el.classList.remove('open');\n          el.querySelector('.faq-question').setAttribute('aria-expanded', 'false');\n        });\n\n        if (!isOpen) {\n          item.classList.add('open');\n          btn.setAttribute('aria-expanded', 'true');\n        }\n      });\n    });\n  })();\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">References<\/h2>\n\n\n\n<p>Scuba Diving With Contacts or Glasses. PADI\/Megan Denny. https:\/\/blog.padi.com\/scuba-diving-if-you-wear-contacts-or-glasses\/. Published Date (August-19-2020). Date Accessed, June 17, 2026.&nbsp;<\/p>\n\n\n\n<p>Wearing Contact Lenses While Diving. Divers Alert Network. https:\/\/dan.org\/alert-diver\/article\/wearing-contact-lenses-while-diving\/. Published Date (November-20-2024). Date Accessed, June 17, 2026.&nbsp;<\/p>\n\n\n\n<p>Healthy Habits: Keeping Water Away from Contact Lenses. Centers for Disease Control and Prevention. https:\/\/www.cdc.gov\/contact-lenses\/about\/healthy-habits-keeping-water-away-from-contact-lenses.html. Published Date (May-27-2025). Date Accessed, June 17, 2026.&nbsp;<\/p>\n\n\n\n<p>How To Clear Your Mask. PADI\/Emily Bates. https:\/\/blog.padi.com\/how-to-clear-your-mask\/. Published Date (August-12-2019). Date Accessed, June 17, 2026.&nbsp;<\/p>\n\n\n\n<p>Preventing Eye Infections When Wearing Contacts. Centers for Disease Control and Prevention. https:\/\/www.cdc.gov\/contact-lenses\/prevention\/index.html. Published Date (May-27-2025). Date Accessed, June 17, 2026.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imagine cruising along with giant manta rays under the blue waters off the Kona coast, or swimming alongside sea turtles over a vibrant coral reef in Maui. Picture yourself dropping down onto a historic shipwreck in Key Largo, or floating over the shallow, sun-drenched patch reefs of Key West. Hawaii and the Florida Keys offer [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":1602,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,6,69],"tags":[21,47],"semantictags":[],"_links":{"self":[{"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/posts\/1579"}],"collection":[{"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/comments?post=1579"}],"version-history":[{"count":25,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/posts\/1579\/revisions"}],"predecessor-version":[{"id":1610,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/posts\/1579\/revisions\/1610"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/media\/1602"}],"wp:attachment":[{"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/media?parent=1579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/categories?post=1579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/tags?post=1579"},{"taxonomy":"semantictags","embeddable":true,"href":"https:\/\/www.contactsamerica.com\/vision\/wp-json\/wp\/v2\/semantictags?post=1579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}