{"product_id":"web-ritual-skate-towel","title":"Web Ritual Skate Towel","description":"\u003cdiv class=\"hf-rad-product\"\u003e\n\n  \u003c!-- INTRO STRIP --\u003e\n  \u003csection class=\"hf-rad-intro\"\u003e\n    \u003cdiv class=\"hf-rad-intro__bar\"\u003e\u003c\/div\u003e\n    \u003cp class=\"hf-rad-kicker\"\u003eWEB RITUAL SKATE TOWEL\u003c\/p\u003e\n    \u003ch2 class=\"hf-rad-headline\"\u003eBUILT FOR SWEAT, SLAMS, AND CURSED CURB SESSIONS.\u003c\/h2\u003e\n    \u003cp class=\"hf-rad-lead\"\u003e\n      The Web Ritual Skate Towel was made for actual skate sessions, not some spooky little fantasy version of them.\n      It dries fast, wipes sweat off your hands and face, sticks to metal with a built-in magnet and pairs with the Magnetic Towel Holder when you want it attached to your setup.\n      That keeps it close instead of ending up on the ground like every other generic towel that had no business showing up to the spot.\n      The art just happens to look like it knows something you don’t.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"hf-rad-pillrow\"\u003e\n      \u003cspan\u003eSUPER ABSORBENT\u003c\/span\u003e\n      \u003cspan\u003eQUICK DRY\u003c\/span\u003e\n      \u003cspan\u003eBUILT-IN MAGNET\u003c\/span\u003e\n      \u003cspan\u003eMAGNET SYSTEM READY\u003c\/span\u003e\n      \u003cspan\u003eLIMITED EDITION ART\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- FEATURE BLOCKS --\u003e\n  \u003csection class=\"hf-rad-grid\"\u003e\n    \u003carticle class=\"hf-rad-card hf-rad-card--yellow\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eWHY IT HITS\u003c\/p\u003e\n      \u003ch3\u003eLooks cursed. Works like hell.\u003c\/h3\u003e\n      \u003cp\u003e\n        Sweaty palms. Dusty ledges. Sitting down for two minutes after getting worked by the same trick again.\n        Regular towels are useless in that kind of mess. The Web Ritual was built for the actual rhythm of a session.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"hf-rad-card\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eSUPER ABSORBENT\u003c\/p\u003e\n      \u003ch3\u003eDry off. Recenter. Try again.\u003c\/h3\u003e\n      \u003cp\u003e\n        Handles sweat fast so your face, hands, and neck stop feeling cooked before attempt number 87 at the thing that should have worked by now.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"hf-rad-card\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eQUICK DRY\u003c\/p\u003e\n      \u003ch3\u003eNo damp haunted rag energy.\u003c\/h3\u003e\n      \u003cp\u003e\n        Dries quickly between uses so you are not carrying around a wet, useless lump of fabric for the rest of the day.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"hf-rad-card\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eBUILT-IN MAGNET\u003c\/p\u003e\n      \u003ch3\u003eStick it somewhere smarter.\u003c\/h3\u003e\n      \u003cp\u003e\n        Rails, benches, fences, bleachers, cars. If it’s metal, the Web Ritual has a place to hang instead of ending up in the dirt.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"hf-rad-card\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eMAGNETIC TOWEL HOLDER READY\u003c\/p\u003e\n      \u003ch3\u003eSnap it into your setup.\u003c\/h3\u003e\n      \u003cp\u003e\n        Your towel’s built-in magnet snaps directly into the holder, giving it a clean place to snap in, stay ready, and stay off the ground instead of getting tossed wherever it lands.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"hf-rad-card\"\u003e\n      \u003cp class=\"hf-rad-card__eyebrow\"\u003eARTIST DESIGNED\u003c\/p\u003e\n      \u003ch3\u003eReal art. Real humans. No fake mysticism.\u003c\/h3\u003e\n      \u003cp\u003e\n        No generated sludge. No committee-built “edge.” Just limited-edition artwork by actual people making things with a pulse.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- UPSELL --\u003e\n  \u003csection class=\"hf-rad-upsell\"\u003e\n    \u003cdiv class=\"hf-rad-upsell__left\"\u003e\n      \u003cp class=\"hf-rad-kicker\"\u003ePAIR IT WITH OUR MAGNETIC TOWEL HOLDER\u003c\/p\u003e\n      \u003ch2 class=\"hf-rad-subheadline\"\u003eYour towel has a magnet. Now it has somewhere to go.\u003c\/h2\u003e\n      \u003cp\u003e\n        The Magnetic Towel Holder is a soft silicone-wrapped magnet with a carabiner, built specifically for our magnetic towels. Clip it to your bag, belt loop, chair, or gear, then let your towel snap into place so it stays close, stays cleaner, and stays off the ground. There when you need it. Out of the way when you don’t.\n      \u003c\/p\u003e\n\n      \u003cul class=\"hf-rad-checks\"\u003e\n        \u003cli\u003eMade for Happy Faced magnetic towels\u003c\/li\u003e\n        \u003cli\u003eSoft silicone-wrapped magnet with carabiner\u003c\/li\u003e\n        \u003cli\u003eKeeps your towel up, clean, and ready\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"hf-rad-upsell__right\"\u003e\n      \u003cdiv class=\"hf-rad-upsell__photo-wrap\" style=\"position:relative;\"\u003e\n        \u003cimg class=\"hf-rad-upsell__photo\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0790\/1741\/0881\/files\/Happy_Faced_Magnetic_Towel_Holder_with_measurements.jpg?v=1776465822\" alt=\"Happy Faced Magnetic Towel Holder\" width=\"900\" height=\"900\"\u003e\n\n        \u003c!-- Glow effect --\u003e\n        \u003cdiv style=\"\n          position:absolute;\n          inset:0;\n          border-radius:20px;\n          box-shadow:0 0 40px rgba(255,217,0,0.18), inset 0 0 20px rgba(255,217,0,0.08);\n          pointer-events:none;\n        \"\u003e\u003c\/div\u003e\n\n        \u003c!-- Badge --\u003e\n        \u003cdiv class=\"hf-rad-upsell__badge\" style=\"\n          background:#FFD900;\n          color:#000;\n          font-weight:900;\n          letter-spacing:.8px;\n          box-shadow:0 10px 25px rgba(255,217,0,0.25);\n        \"\u003e\n          MAGNETIC TOWEL READY\n        \u003c\/div\u003e\n\n        \u003c!-- Helper text --\u003e\n        \u003cdiv style=\"\n          position:absolute;\n          bottom:-28px;\n          left:50%;\n          transform:translateX(-50%);\n          font-size:12px;\n          color:#ccc;\n          text-align:center;\n          max-width:220px;\n          line-height:1.4;\n        \"\u003e\n          magnet snaps\u003cbr\u003edirectly to your towel\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- USE IT TWO WAYS --\u003e\n  \u003csection class=\"hf-rad-compare hf-rad-compare--equal\"\u003e\n    \u003cdiv class=\"hf-rad-compare__intro\"\u003e\n      \u003cp class=\"hf-rad-kicker\"\u003eUSE IT TWO WAYS\u003c\/p\u003e\n      \u003ch2 class=\"hf-rad-subheadline\"\u003eBuilt to work at the spot and with your setup.\u003c\/h2\u003e\n      \u003cp class=\"hf-rad-lead\" style=\"max-width:760px;\"\u003e\n        The built-in magnet gives the Web Ritual two clean ways to work. Stick it directly to metal at the spot, or pair it with our Magnetic Towel Holder to keep it clipped to your gear and ready to grab. Same towel. Two smart ways to use it.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"hf-rad-compare__grid\"\u003e\n      \u003cdiv class=\"hf-rad-column hf-rad-column--equal\"\u003e\n        \u003cdiv class=\"hf-rad-column__top\"\u003eSTICK IT TO METAL\u003c\/div\u003e\n        \u003cul\u003e\n          \u003cli\u003eAttach it to rails, benches, fences, bleachers, or your car\u003c\/li\u003e\n          \u003cli\u003eKeeps your towel off the ground\u003c\/li\u003e\n          \u003cli\u003eFast and simple when you are skating\u003c\/li\u003e\n          \u003cli\u003ePerfect when there is metal nearby at the spot\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"hf-rad-column hf-rad-column--equal\"\u003e\n        \u003cdiv class=\"hf-rad-column__top\"\u003eSNAP INTO HOLDER\u003c\/div\u003e\n        \u003cul\u003e\n          \u003cli\u003eSnaps into the Magnetic Towel Holder\u003c\/li\u003e\n          \u003cli\u003eClips to your bag, belt loop, chair, or gear\u003c\/li\u003e\n          \u003cli\u003eKeeps your towel close, clean, and ready to grab\u003c\/li\u003e\n          \u003cli\u003ePerfect when you want your towel attached to your setup\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- COMPARISON --\u003e\n  \u003csection class=\"hf-rad-compare\"\u003e\n    \u003cdiv class=\"hf-rad-compare__intro\"\u003e\n      \u003cp class=\"hf-rad-kicker\"\u003eWHAT MAKES IT DIFFERENT\u003c\/p\u003e\n      \u003ch2 class=\"hf-rad-subheadline\"\u003eA normal towel would not survive the ceremony.\u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"hf-rad-compare__grid\"\u003e\n      \u003cdiv class=\"hf-rad-column hf-rad-column--muted\"\u003e\n        \u003cdiv class=\"hf-rad-column__top\"\u003eREGULAR TOWEL\u003c\/div\u003e\n        \u003cul\u003e\n          \u003cli\u003eFalls straight to the ground\u003c\/li\u003e\n          \u003cli\u003eGets damp and stays annoying\u003c\/li\u003e\n          \u003cli\u003eNo clean way to carry it\u003c\/li\u003e\n          \u003cli\u003eLooks like an afterthought\u003c\/li\u003e\n          \u003cli\u003eMade for nothing specific\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"hf-rad-column hf-rad-column--good\"\u003e\n        \u003cdiv class=\"hf-rad-column__top\"\u003eWEB RITUAL SKATE TOWEL\u003c\/div\u003e\n        \u003cul\u003e\n          \u003cli\u003eSticks to metal with a built-in magnet\u003c\/li\u003e\n          \u003cli\u003eQuick-dry performance fabric\u003c\/li\u003e\n          \u003cli\u003eSnaps into the Magnetic Towel Holder\u003c\/li\u003e\n          \u003cli\u003eArtist-designed limited-edition graphics\u003c\/li\u003e\n          \u003cli\u003eMade specifically for skateboarding\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ART STORY --\u003e\n  \u003csection class=\"hf-rad-story\"\u003e\n    \u003cdiv class=\"hf-rad-story__inner\"\u003e\n      \u003cp class=\"hf-rad-kicker\"\u003eTHE ART\u003c\/p\u003e\n      \u003ch2 class=\"hf-rad-subheadline\"\u003eLIMITED-EDITION ARTWORK WITH OCCULT ENERGY AND ZERO FAKE-DEPTH BULLSHIT.\u003c\/h2\u003e\n      \u003cp\u003e\n        The Web Ritual design pulls from ouija boards, spider webs, symbols, and all the strange little systems people use to make meaning out of chaos.\n        Which, honestly, is not that far off from skateboarding.\n      \u003c\/p\u003e\n      \u003cp\u003e\n        It’s bold, weird, a little ominous, and built to live on a towel that gets dragged through actual life.\n        Once Web Ritual is gone, it’s gone.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- SPECS --\u003e\n  \u003csection class=\"hf-rad-specs\"\u003e\n    \u003cdiv class=\"hf-rad-specs__header\"\u003e\n      \u003cp class=\"hf-rad-kicker\"\u003eDETAILS\u003c\/p\u003e\n      \u003ch2 class=\"hf-rad-subheadline hf-rad-subheadline--compact\"\u003eFor the detail-obsessed and the skeptics.\u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"hf-rad-specs__grid\"\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eMaterial\u003c\/span\u003e\n        \u003cstrong\u003ePerformance microfiber\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eDry Time\u003c\/span\u003e\n        \u003cstrong\u003eQuick dry\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eMagnet\u003c\/span\u003e\n        \u003cstrong\u003eEmbedded\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eCarry\u003c\/span\u003e\n        \u003cstrong\u003eMagnet system compatible\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eArtwork\u003c\/span\u003e\n        \u003cstrong\u003eLimited edition\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hf-rad-spec\"\u003e\n        \u003cspan\u003eUse\u003c\/span\u003e\n        \u003cstrong\u003eSkate sessions, street spots, parks\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- FAQ --\u003e\n  \u003csection class=\"hf-rad-faq-wrap\"\u003e\n    \u003cp class=\"hf-rad-kicker\"\u003eFAQ\u003c\/p\u003e\n    \u003ch2 class=\"hf-rad-subheadline\"\u003eStuff people ask before they commit.\u003c\/h2\u003e\n\n    \u003cdiv class=\"hf-rad-faq\"\u003e\n      \u003cdetails open\u003e\n        \u003csummary\u003eWhat makes the Web Ritual Skate Towel different from a normal towel?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          It was built specifically for skateboarding, with quick-dry fabric, an embedded magnet,\n          and compatibility with the Magnetic Towel Holder system.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eDoes the Web Ritual Skate Towel have a built-in magnet?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Yes. The built-in magnet lets you stick it to metal surfaces like rails, benches, fences, bleachers, and cars so it stays off the ground and within reach.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eDoes it come with the Magnetic Towel Holder?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          No. The towel and the Magnetic Towel Holder are sold separately, so you can build your setup how you want.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eCan I use the Web Ritual Skate Towel without the Magnetic Towel Holder?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Yes. You can use the built-in magnet on metal surfaces at the spot, or pair it with the Magnetic Towel Holder if you want a dedicated place for it on your gear.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eCan I use the Web Ritual Skate Towel for actual skate sessions?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Yes. That’s exactly what it was made for.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n        \u003csummary\u003eIs the artwork limited edition?\u003c\/summary\u003e\n        \u003cdiv\u003e\n          Yes. Each design is made in limited runs and won’t hang around forever.\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"hf-ultimate-float\" id=\"hfUltimateFloatBar\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"hf-ultimate-float__inner\"\u003e\n    \u003cdiv class=\"hf-ultimate-float__copy\"\u003e\n      \u003cspan class=\"hf-ultimate-float__eyebrow\"\u003eReady?\u003c\/span\u003e\n      \u003cspan class=\"hf-ultimate-float__title\"\u003eYou’ve seen enough.\u003c\/span\u003e\n      \u003cspan class=\"hf-ultimate-float__meta\"\u003eGo grab it.\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cbutton class=\"hf-ultimate-float__btn\" id=\"hfScrollTopBtn\" type=\"button\"\u003e\n      Take Me to the Top ↑\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  (function() {\n    var floatBar = document.getElementById('hfUltimateFloatBar');\n    var btn = document.getElementById('hfScrollTopBtn');\n    if (!floatBar || !btn) return;\n\n    var showAfter = 500;\n\n    function toggleFloatBar() {\n      if (window.scrollY \u003e showAfter) {\n        floatBar.classList.add('is-visible');\n        floatBar.setAttribute('aria-hidden', 'false');\n      } else {\n        floatBar.classList.remove('is-visible');\n        floatBar.setAttribute('aria-hidden', 'true');\n      }\n    }\n\n    btn.addEventListener('click', function() {\n      window.scrollTo({\n        top: 0,\n        behavior: 'smooth'\n      });\n    });\n\n    window.addEventListener('scroll', toggleFloatBar, { passive: true });\n    window.addEventListener('load', toggleFloatBar);\n    toggleFloatBar();\n  })();\n\u003c\/script\u003e\n\n\u003cstyle\u003e\n  .hf-rad-product{\n    color:#fff;\n    font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;\n  }\n\n  .hf-rad-product *{\n    box-sizing:border-box;\n  }\n\n  .hf-rad-product a{\n    text-decoration:none;\n  }\n\n  .hf-rad-kicker{\n    margin:0 0 14px;\n    color:#FFD900;\n    font-size:12px;\n    line-height:1.1;\n    letter-spacing:.18em;\n    font-weight:900;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-headline{\n    margin:0 0 18px;\n    font-size:clamp(2rem, 5vw, 4rem);\n    line-height:.95;\n    letter-spacing:-.05em;\n    font-weight:900;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-subheadline{\n    margin:0 0 18px;\n    font-size:clamp(1.5rem, 4vw, 2.7rem);\n    line-height:1;\n    letter-spacing:-.04em;\n    font-weight:900;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-subheadline--compact{\n    font-size:clamp(1.2rem, 3vw, 2rem);\n    line-height:1.05;\n    letter-spacing:-.03em;\n    max-width:520px;\n  }\n\n  .hf-rad-lead,\n  .hf-rad-story p,\n  .hf-rad-upsell p{\n    margin:0 0 14px;\n    color:#d7d7d7;\n    font-size:1.05rem;\n    line-height:1.7;\n    max-width:840px;\n  }\n\n  .hf-rad-intro,\n  .hf-rad-grid,\n  .hf-rad-upsell,\n  .hf-rad-compare,\n  .hf-rad-story,\n  .hf-rad-specs,\n  .hf-rad-faq-wrap{\n    margin:0 0 26px;\n  }\n\n  .hf-rad-intro{\n    position:relative;\n    padding:28px 0 8px;\n  }\n\n  .hf-rad-intro__bar{\n    width:88px;\n    height:4px;\n    border-radius:999px;\n    background:#FFD900;\n    margin:0 0 22px;\n  }\n\n  .hf-rad-pillrow{\n    display:flex;\n    flex-wrap:wrap;\n    gap:10px;\n    margin-top:24px;\n  }\n\n  .hf-rad-pillrow span{\n    padding:10px 12px;\n    border-radius:999px;\n    border:1px solid rgba(255,255,255,.14);\n    background:rgba(255,255,255,.04);\n    color:#fff;\n    font-size:.76rem;\n    line-height:1;\n    font-weight:900;\n    letter-spacing:.08em;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-grid{\n    display:grid;\n    grid-template-columns:repeat(3,1fr);\n    gap:16px;\n  }\n\n  .hf-rad-card{\n    padding:22px;\n    border-radius:22px;\n    border:1px solid rgba(255,255,255,.10);\n    background:\n      linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));\n    box-shadow:0 14px 30px rgba(0,0,0,.14);\n  }\n\n  .hf-rad-card--yellow{\n    background:\n      radial-gradient(circle at top left, rgba(255,217,0,.14), transparent 40%),\n      linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));\n    border-color:rgba(255,217,0,.22);\n  }\n\n  .hf-rad-card__eyebrow{\n    margin:0 0 10px;\n    color:#FFD900;\n    font-size:.72rem;\n    font-weight:900;\n    letter-spacing:.12em;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-card h3{\n    margin:0 0 10px;\n    font-size:1.2rem;\n    line-height:1.05;\n    letter-spacing:-.03em;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-card p{\n    margin:0;\n    color:#d6d6d6;\n    line-height:1.7;\n  }\n\n  .hf-rad-upsell{\n    display:grid;\n    grid-template-columns:1.1fr .9fr;\n    gap:20px;\n    align-items:center;\n    padding:28px;\n    border-radius:28px;\n    border:1px solid rgba(255,217,0,.24);\n    background:\n      radial-gradient(circle at top left, rgba(255,217,0,.12), transparent 36%),\n      rgba(255,255,255,.03);\n  }\n\n  .hf-rad-checks{\n    list-style:none;\n    margin:18px 0 0;\n    padding:0;\n    display:grid;\n    gap:10px;\n  }\n\n  .hf-rad-checks li{\n    position:relative;\n    padding-left:26px;\n    color:#e2e2e2;\n    line-height:1.5;\n  }\n\n  .hf-rad-checks li::before{\n    content:\"✓\";\n    position:absolute;\n    left:0;\n    top:0;\n    color:#FFD900;\n    font-weight:900;\n  }\n\n  .hf-rad-upsell__right{\n    display:flex;\n    flex-direction:column;\n    gap:12px;\n    align-items:flex-end;\n  }\n\n  .hf-rad-upsell__photo-wrap{\n    position:relative;\n    width:100%;\n    max-width:320px;\n    padding:18px;\n    border-radius:24px;\n    border:1px solid rgba(255,255,255,.10);\n    background:\n      radial-gradient(circle at top center, rgba(255,217,0,.12), transparent 36%),\n      rgba(255,255,255,.03);\n    box-shadow:0 18px 34px rgba(0,0,0,.16);\n  }\n\n  .hf-rad-upsell__photo{\n    display:block;\n    width:100%;\n    height:auto;\n    border-radius:16px;\n    object-fit:contain;\n    filter:drop-shadow(0 18px 28px rgba(0,0,0,.24));\n  }\n\n  .hf-rad-upsell__badge{\n    position:absolute;\n    right:14px;\n    bottom:14px;\n    padding:8px 10px;\n    border-radius:999px;\n    background:#FFD900;\n    color:#000;\n    font-size:.7rem;\n    line-height:1;\n    font-weight:900;\n    letter-spacing:.08em;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-compare{\n    padding:26px;\n    border-radius:28px;\n    border:1px solid rgba(255,255,255,.08);\n    background:\n      radial-gradient(circle at top center, rgba(255,217,0,.08), transparent 34%),\n      rgba(255,255,255,.03);\n  }\n\n  .hf-rad-compare__intro{\n    margin-bottom:20px;\n  }\n\n  .hf-rad-compare__grid{\n    display:grid;\n    grid-template-columns:1fr 1fr;\n    gap:16px;\n    align-items:start;\n  }\n\n  .hf-rad-column{\n    border-radius:22px;\n    overflow:hidden;\n    border:1px solid rgba(255,255,255,.10);\n    background:rgba(255,255,255,.02);\n  }\n\n  .hf-rad-column__top{\n    padding:15px 18px;\n    font-size:.78rem;\n    line-height:1;\n    font-weight:900;\n    letter-spacing:.12em;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-column--muted .hf-rad-column__top{\n    background:rgba(255,255,255,.06);\n    color:#ababab;\n  }\n\n  .hf-rad-column--good{\n    border-color:rgba(255,217,0,.28);\n    box-shadow:0 18px 34px rgba(255,217,0,.06);\n  }\n\n  .hf-rad-column--good .hf-rad-column__top{\n    background:#FFD900;\n    color:#000;\n  }\n\n  .hf-rad-column ul{\n    list-style:none;\n    margin:0;\n    padding:0;\n  }\n\n  .hf-rad-column li{\n    position:relative;\n    padding:18px 18px 18px 46px;\n    border-top:1px solid rgba(255,255,255,.08);\n    color:#e6e6e6;\n    line-height:1.55;\n  }\n\n  .hf-rad-column--muted li::before,\n  .hf-rad-column--good li::before,\n  .hf-rad-column--equal li::before{\n    position:absolute;\n    left:18px;\n    top:18px;\n    font-weight:900;\n  }\n\n  .hf-rad-column--muted li::before{\n    content:\"×\";\n    color:#7f7f7f;\n  }\n\n  .hf-rad-column--good li::before{\n    content:\"✓\";\n    color:#FFD900;\n  }\n\n  .hf-rad-compare--equal .hf-rad-column{\n    border-color:rgba(255,255,255,.10);\n    box-shadow:none;\n    background:rgba(255,255,255,.02);\n  }\n\n  .hf-rad-compare--equal .hf-rad-column__top{\n    background:rgba(255,255,255,.06);\n    color:#fff;\n  }\n\n  .hf-rad-compare--equal .hf-rad-column li::before{\n    content:\"✓\";\n    color:#FFD900;\n  }\n\n  .hf-rad-story{\n    padding:28px;\n    border-left:4px solid #FFD900;\n    background:rgba(255,255,255,.025);\n    border-radius:0 22px 22px 0;\n  }\n\n  .hf-rad-specs{\n    padding:22px;\n    border-radius:24px;\n    border:1px solid rgba(255,255,255,.08);\n    background:rgba(255,255,255,.025);\n  }\n\n  .hf-rad-specs__header{\n    margin-bottom:16px;\n  }\n\n  .hf-rad-specs__grid{\n    display:grid;\n    grid-template-columns:repeat(3,minmax(0,1fr));\n    gap:10px;\n  }\n\n  .hf-rad-spec{\n    display:flex;\n    flex-direction:column;\n    justify-content:flex-start;\n    gap:6px;\n    padding:14px 14px 13px;\n    border-radius:14px;\n    border:1px solid rgba(255,255,255,.08);\n    background:rgba(255,255,255,.03);\n    min-width:0;\n  }\n\n  .hf-rad-spec span{\n    color:#9f9f9f;\n    font-size:.72rem;\n    line-height:1.1;\n    letter-spacing:.08em;\n    font-weight:900;\n    text-transform:uppercase;\n  }\n\n  .hf-rad-spec strong{\n    color:#fff;\n    text-align:left;\n    font-size:.96rem;\n    line-height:1.35;\n    word-break:break-word;\n  }\n\n  .hf-rad-faq{\n    display:grid;\n    gap:12px;\n  }\n\n  .hf-rad-faq details{\n    border:1px solid rgba(255,255,255,.10);\n    border-radius:18px;\n    background:rgba(255,255,255,.03);\n    overflow:hidden;\n  }\n\n  .hf-rad-faq summary{\n    list-style:none;\n    cursor:pointer;\n    padding:18px 20px;\n    font-weight:900;\n    line-height:1.4;\n    position:relative;\n    padding-right:52px;\n  }\n\n  .hf-rad-faq summary::-webkit-details-marker{\n    display:none;\n  }\n\n  .hf-rad-faq summary::after{\n    content:\"+\";\n    position:absolute;\n    right:18px;\n    top:50%;\n    transform:translateY(-50%);\n    color:#FFD900;\n    font-size:1.3rem;\n    font-weight:900;\n  }\n\n  .hf-rad-faq details[open] summary::after{\n    content:\"–\";\n  }\n\n  .hf-rad-faq details div{\n    padding:0 20px 20px;\n    color:#d7d7d7;\n    line-height:1.7;\n  }\n\n  .hf-rad-btn{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    min-height:52px;\n    padding:0 20px;\n    border-radius:999px;\n    font-size:.9rem;\n    font-weight:900;\n    letter-spacing:.05em;\n    text-transform:uppercase;\n    transition:all .2s ease;\n  }\n\n  .hf-rad-btn--primary{\n    background:#FFD900;\n    color:#000;\n    border:2px solid #FFD900;\n  }\n\n  .hf-rad-btn--primary:hover{\n    transform:translateY(-2px);\n    box-shadow:0 10px 30px rgba(255,217,0,.22);\n  }\n\n  .hf-rad-btn--ghost{\n    background:transparent;\n    color:#fff;\n    border:2px solid rgba(255,255,255,.16);\n  }\n\n  .hf-rad-btn--ghost:hover{\n    border-color:#FFD900;\n    color:#FFD900;\n  }\n\n  .hf-ultimate-float{\n    position:fixed;\n    left:50%;\n    bottom:18px;\n    transform:translateX(-50%) translateY(120%);\n    width:calc(100% - 24px);\n    max-width:760px;\n    z-index:9999;\n    opacity:0;\n    pointer-events:none;\n    transition:transform .28s ease, opacity .28s ease;\n  }\n\n  .hf-ultimate-float.is-visible{\n    transform:translateX(-50%) translateY(0);\n    opacity:1;\n    pointer-events:auto;\n  }\n\n  .hf-ultimate-float__inner{\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:12px;\n    padding:12px;\n    border-radius:20px;\n    border:1px solid rgba(255,255,255,0.12);\n    background:rgba(10,10,10,0.92);\n    backdrop-filter:blur(12px);\n    box-shadow:0 18px 50px rgba(0,0,0,0.4);\n  }\n\n  .hf-ultimate-float__copy{\n    min-width:0;\n    display:flex;\n    flex-direction:column;\n    gap:2px;\n  }\n\n  .hf-ultimate-float__eyebrow{\n    color:#FFD900;\n    font-size:0.72rem;\n    font-weight:800;\n    letter-spacing:0.12em;\n    text-transform:uppercase;\n  }\n\n  .hf-ultimate-float__title{\n    color:#fff;\n    font-size:0.95rem;\n    font-weight:800;\n    line-height:1.1;\n    white-space:nowrap;\n    overflow:hidden;\n    text-overflow:ellipsis;\n  }\n\n  .hf-ultimate-float__meta{\n    color:#cfcfcf;\n    font-size:0.82rem;\n    line-height:1.2;\n  }\n\n  .hf-ultimate-float__btn{\n    flex:0 0 auto;\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:0.5rem;\n    min-height:50px;\n    padding:0.95rem 1.2rem;\n    border-radius:999px;\n    background:#FFD900;\n    color:#000;\n    text-decoration:none;\n    font-weight:900;\n    font-size:0.84rem;\n    letter-spacing:0.08em;\n    text-transform:uppercase;\n    box-shadow:0 10px 20px rgba(0,0,0,0.25);\n    transition:transform .18s ease, opacity .18s ease;\n    border:none;\n    cursor:pointer;\n    font-family:inherit;\n  }\n\n  .hf-ultimate-float__btn:hover{\n    opacity:0.9;\n    transform:translateY(-1px);\n  }\n\n  @media (max-width: 1100px){\n    .hf-rad-grid{\n      grid-template-columns:repeat(2,1fr);\n    }\n\n    .hf-rad-upsell{\n      grid-template-columns:1fr;\n    }\n\n    .hf-rad-upsell__right{\n      align-items:flex-start;\n      flex-direction:row;\n      flex-wrap:wrap;\n    }\n\n    .hf-rad-specs__grid{\n      grid-template-columns:repeat(2,minmax(0,1fr));\n    }\n  }\n\n  @media (max-width: 767px){\n    .hf-rad-grid,\n    .hf-rad-compare__grid{\n      grid-template-columns:1fr;\n    }\n\n    .hf-rad-card,\n    .hf-rad-compare,\n    .hf-rad-story,\n    .hf-rad-upsell,\n    .hf-rad-specs{\n      padding:20px;\n      border-radius:20px;\n    }\n\n    .hf-rad-column{\n      border-radius:18px;\n    }\n\n    .hf-rad-column__top{\n      padding:13px 14px;\n      font-size:.72rem;\n      letter-spacing:.1em;\n    }\n\n    .hf-rad-column li{\n      padding:14px 14px 14px 38px;\n      font-size:.95rem;\n      line-height:1.45;\n    }\n\n    .hf-rad-column--muted li::before,\n    .hf-rad-column--good li::before,\n    .hf-rad-column--equal li::before{\n      left:14px;\n      top:14px;\n    }\n\n    .hf-rad-subheadline{\n      font-size:clamp(1.35rem, 7vw, 2rem);\n      line-height:1.02;\n    }\n\n    .hf-rad-subheadline--compact{\n      font-size:1.1rem;\n      line-height:1.08;\n      max-width:320px;\n      margin-bottom:14px;\n    }\n\n    .hf-rad-specs__grid{\n      grid-template-columns:repeat(2,minmax(0,1fr));\n      gap:8px;\n    }\n\n    .hf-rad-spec{\n      padding:12px 12px 11px;\n      border-radius:12px;\n      gap:5px;\n    }\n\n    .hf-rad-spec span{\n      font-size:.66rem;\n      letter-spacing:.07em;\n    }\n\n    .hf-rad-spec strong{\n      font-size:.88rem;\n      line-height:1.25;\n    }\n\n    .hf-rad-upsell__right{\n      flex-direction:column;\n      width:100%;\n      align-items:stretch;\n    }\n\n    .hf-rad-upsell__photo-wrap{\n      max-width:none;\n    }\n  }\n\n  @media (max-width: 640px){\n    .hf-ultimate-float{\n      width:calc(100% - 16px);\n      bottom:12px;\n    }\n\n    .hf-ultimate-float__inner{\n      padding:10px;\n      gap:10px;\n    }\n\n    .hf-ultimate-float__title{\n      font-size:0.88rem;\n    }\n\n    .hf-ultimate-float__meta{\n      font-size:0.76rem;\n    }\n\n    .hf-ultimate-float__btn{\n      min-height:46px;\n      padding:0.9rem 1rem;\n      font-size:0.78rem;\n    }\n  }\n\n  @media (max-width: 420px){\n    .hf-rad-specs__grid{\n      grid-template-columns:1fr;\n    }\n\n    .hf-ultimate-float__inner{\n      align-items:flex-start;\n      flex-direction:column;\n    }\n\n    .hf-ultimate-float__btn{\n      width:100%;\n    }\n  }\n\u003c\/style\u003e","brand":"Happy Faced","offers":[{"title":"Default Title","offer_id":51498389045569,"sku":"SKT-WEBRIT","price":24.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/1741\/0881\/files\/84335189-D834-43E6-9FAC-D2F057C55287.png?v=1778597675","url":"https:\/\/happyfaced.com\/products\/web-ritual-skate-towel","provider":"Happy Faced","version":"1.0","type":"link"}