{"id":207,"date":"2026-03-25T07:53:08","date_gmt":"2026-03-25T07:53:08","guid":{"rendered":"https:\/\/freedomfest.visiondesigning.com\/?page_id=207"},"modified":"2026-07-03T10:19:25","modified_gmt":"2026-07-03T10:19:25","slug":"home","status":"publish","type":"page","link":"https:\/\/sandbarvibes.us\/","title":{"rendered":"FREEDOM FEST"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"207\" class=\"elementor elementor-207\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eec06a9 e-flex e-con-boxed e-con e-parent\" data-id=\"eec06a9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6c6705d elementor-widget-tablet__width-initial elementor-widget elementor-widget-image\" data-id=\"6c6705d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/sandbarvibes.us\/\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"874\" height=\"285\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_r3qnvor3qnvor3qn-removebg-preview.png\" class=\"attachment-full size-full wp-image-10\" alt=\"\" srcset=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_r3qnvor3qnvor3qn-removebg-preview.png 874w, https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_r3qnvor3qnvor3qn-removebg-preview-300x98.png 300w, https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_r3qnvor3qnvor3qn-removebg-preview-768x250.png 768w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9cb8cb3 e-con-full e-flex e-con e-parent\" data-id=\"9cb8cb3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5138a991 e-flex e-con-boxed e-con e-parent\" data-id=\"5138a991\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-485372b0 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-countdown--label-block elementor-widget elementor-widget-countdown\" data-id=\"485372b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_tablet&quot;:&quot;zoomIn&quot;}\" data-widget_type=\"countdown.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-countdown-wrapper\" data-date=\"1783173600\">\n\t\t\t<div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-days\"><\/span> <span class=\"elementor-countdown-label\">Days<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-hours\"><\/span> <span class=\"elementor-countdown-label\">Hours<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-minutes\"><\/span> <span class=\"elementor-countdown-label\">Minutes<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-seconds\"><\/span> <span class=\"elementor-countdown-label\">Seconds<\/span><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c06962 e-flex e-con-boxed e-con e-parent\" data-id=\"3c06962\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ddce40 elementor-widget__width-initial elementor-widget-tablet__width-initial elementor-widget elementor-widget-html\" data-id=\"5ddce40\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_mobile&quot;:&quot;zoomIn&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/@tabler\/icons-webfont@latest\/tabler-icons.min.css\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n.event-bar { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; font-family: 'Syne', sans-serif; }\r\n.event-item { display: flex; align-items: center; gap: 6px; }\r\n.event-item span { font-size: 22px; color: #ffffff; font-weight: 600; white-space: nowrap; text-transform: uppercase; }\r\n.event-item i { font-size: 20px; color: #ef4444; }\r\n.event-divider { width: 1px; height: 18px; background: rgba(255,255,255,0.25); flex-shrink: 0; }\r\n@media (min-width: 481px) and (max-width: 1024px) {\r\n  .event-item span { font-size: 18.3px; }\r\n}\r\n@media (max-width: 480px) {\r\n  .event-bar { flex-direction: column; gap: 5px; align-items: center; }\r\n  .event-divider { width: 30px; height: 1px; }\r\n  .event-item span { font-size: 16px; }\r\n  .event-item i { font-size: 15px; }\r\n}\r\n<\/style>\r\n<div class=\"event-bar\">\r\n  <div class=\"event-item\">\r\n    <i class=\"ti ti-map-pin\"><\/i>\r\n    <span>Boca Grande Sand Bar<\/span>\r\n  <\/div>\r\n  <div class=\"event-divider\"><\/div>\r\n  <div class=\"event-item\">\r\n    <i class=\"ti ti-calendar-event\"><\/i>\r\n    <span>July 4th, 2026<\/span>\r\n  <\/div>\r\n  <div class=\"event-divider\"><\/div>\r\n  <div class=\"event-item\">\r\n    <i class=\"ti ti-clock\"><\/i>\r\n    <span>10:00 AM \u2013 2:00 PM<\/span>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7e193b1 e-flex e-con-boxed e-con e-parent\" data-id=\"7e193b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-28bc971 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"28bc971\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>2026 Festival Supporters<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;700;800&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n  body {\r\n    margin: 0; padding: 0;\r\n    font-family: 'Syne', sans-serif;\r\n    color: white;\r\n    background: transparent;\r\n  }\r\n\r\n  .sponsors-container {\r\n    padding: 20px 10px;\r\n    max-width: 1400px;\r\n    margin: 0 auto;\r\n    text-align: center;\r\n  }\r\n\r\n  \/* \u2500\u2500 HEADING \u2500\u2500 *\/\r\n  .main-heading {\r\n    font-size: 32px;\r\n    font-weight: 800;\r\n    color: white;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    margin-bottom: 25px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 15px;\r\n  }\r\n  .main-heading::before,\r\n  .main-heading::after {\r\n    content: '';\r\n    flex: 0 0 50px;\r\n    height: 3px;\r\n    background: rgba(255, 255, 255, 0.3); \r\n  }\r\n\r\n  \/* \u2500\u2500 TIER LABEL \u2500\u2500 *\/\r\n  .grid-label {\r\n    display: inline-block;\r\n    font-size: 20px;\r\n    font-weight: 700;\r\n    text-transform: uppercase;\r\n    color: white;\r\n    margin-bottom: 15px;\r\n  }\r\n  .grid-label::after {\r\n    content: '';\r\n    display: block;\r\n    width: 50px;\r\n    height: 4px;\r\n    background: #BF0A30;\r\n    margin: 8px auto 0;\r\n  }\r\n\r\n  .brand-group {\r\n    margin-bottom: 40px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    width: 100%;\r\n  }\r\n\r\n  \/* \u2500\u2500 FLEX GRID ROW \u2500\u2500 *\/\r\n  .bento-row {\r\n    display: flex;\r\n    flex-wrap: wrap; \/* Allows cards to wrap to the next line *\/\r\n    justify-content: center;\r\n    gap: 20px;\r\n    width: 100%;\r\n    padding: 15px 0;\r\n  }\r\n\r\n  \/* \u2500\u2500 CARD WRAPPER \u2500\u2500 *\/\r\n  .brand-card {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    gap: 15px;\r\n    \/* Default Desktop: 6 cards per line (100% width minus 5 gaps of 20px, divided by 6) *\/\r\n    width: calc((100% - 100px) \/ 6); \r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n\r\n  \/* \u2500\u2500 STATIC IMAGE BOX \u2500\u2500 *\/\r\n  .brand-box {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 100%;\r\n    height: 180px;    \r\n    border-radius: 15px; \r\n    overflow: hidden;\r\n    background: #ffffff;\r\n    border: 2px solid #e2e8f0;\r\n    box-shadow: 0 8px 20px rgba(0,0,0,0.06);\r\n    padding: 20px;\r\n    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.3s ease; \r\n  }\r\n\r\n  \/* \u2500\u2500 BUTTON STYLING \u2500\u2500 *\/\r\n  .sponsor-btn {\r\n    text-decoration: none;\r\n    color: #ffffff;\r\n    background: rgba(255, 255, 255, 0.05);\r\n    border: 1px solid rgba(255, 255, 255, 0.3);\r\n    padding: 10px 24px;\r\n    border-radius: 50px;\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1.5px;\r\n    transition: all 0.3s ease;\r\n    white-space: nowrap; \r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n\r\n  \/* \u2500\u2500 HOVER & TOUCH STATES \u2500\u2500 *\/\r\n  .brand-card:hover .brand-box,\r\n  .brand-card.is-touched .brand-box {\r\n    transform: scale(1.05);\r\n    box-shadow: 0 12px 25px rgba(0,0,0,0.15); \r\n  }\r\n\r\n  .brand-card:hover .sponsor-btn,\r\n  .brand-card.is-touched .sponsor-btn,\r\n  .sponsor-btn:focus {\r\n    background: red;\r\n    border-color: red;\r\n    color: #ffffff;\r\n    box-shadow: 0 5px 15px rgba(255, 0, 0, 0.4);\r\n    transform: translateY(-2px);\r\n  }\r\n\r\n  \/* \u2500\u2500 LOGO \u2500\u2500 *\/\r\n  .brand-logo {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: contain;\r\n    display: block;\r\n  }\r\n\r\n  \/* =========================================\r\n     RESPONSIVE MEDIA QUERIES\r\n     ========================================= *\/\r\n\r\n  \/* Remove heading lines on smaller screens *\/\r\n  @media (max-width: 1250px) {\r\n    .main-heading::before, .main-heading::after { display: none; }\r\n  }\r\n\r\n  \/* TABLET: 3 Cards per line *\/\r\n  @media (max-width: 1024px) {\r\n    .brand-card {\r\n      \/* 100% width minus 2 gaps of 20px, divided by 3 *\/\r\n      width: calc((100% - 40px) \/ 3);\r\n    }\r\n  }\r\n\r\n  \/* MOBILE: 1 Card per line *\/\r\n  @media (max-width: 600px) {\r\n    .bento-row {\r\n      gap: 30px; \/* A bit more breathing room when stacked *\/\r\n    }\r\n    .brand-card {\r\n      width: 100%; \r\n      max-width: 300px; \/* Stops them from stretching too wide on sideways phones *\/\r\n    }\r\n    .brand-box { height: 160px; }\r\n    .main-heading { font-size: 24px; margin-bottom: 20px; }\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<section class=\"sponsors-container\">\r\n\r\n  <h1 class=\"main-heading\">Festival Supporters<\/h1>\r\n\r\n  <div class=\"brand-group\">\r\n    <span class=\"grid-label\">Hosted By<\/span>\r\n    <div class=\"bento-row\">\r\n      <div class=\"brand-card\" style=\"width: 100%; max-width: 300px;\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/01Artboard-1.jpg\"\r\n               alt=\"Boca Grande Sandbar Associates\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/www.facebook.com\/groups\/bocasandbar\/\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"brand-group\" style=\"margin-bottom: 0;\">\r\n    <span class=\"grid-label\">Sponsors of the Fest<\/span>\r\n    <div class=\"bento-row\">\r\n      \r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/01Artboard-3.jpg\"\r\n               alt=\"Harborside Realty\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/www.harborsiderealtyfl.com\/\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/03\/01Artboard-4.jpg\"\r\n               alt=\"Skipjack\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/skipjackoutfitters.com\/\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/04\/Untitled-design-1.png\"\r\n               alt=\"Handy Guy Home Services\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/www.thehandyguyhomeservices.com\/\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/04\/Untitled-design-2.png\"\r\n               alt=\"Vision Designing\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/visiondesigning.com\/\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/04\/Untitled-design-3.png\"\r\n               alt=\"Festival Sponsor\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"https:\/\/www.facebook.com\/share\/1Ct2DBss46\/?mibextid=wwXIfr\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"brand-card\">\r\n        <div class=\"brand-box\">\r\n          <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/04\/Untitled-design-4.png\"\r\n               alt=\"Festival Sponsor\" class=\"brand-logo\">\r\n        <\/div>\r\n        <a href=\"#\" target=\"_blank\" class=\"sponsor-btn\">Visit Site<\/a> <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/section>\r\n\r\n<script>\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    const brandCards = document.querySelectorAll('.brand-card');\r\n\r\n    brandCards.forEach(card => {\r\n      card.addEventListener('touchstart', () => {\r\n        card.classList.add('is-touched');\r\n      }, { passive: true });\r\n\r\n      card.addEventListener('touchend', () => {\r\n        card.classList.remove('is-touched');\r\n      });\r\n\r\n      card.addEventListener('touchcancel', () => {\r\n        card.classList.remove('is-touched');\r\n      });\r\n    });\r\n  });\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c58bca9 elementor-widget-mobile__width-initial elementor-widget elementor-widget-html\" data-id=\"c58bca9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  \/* Base Reset for the container *\/\r\n  .premium-song-request, .premium-song-request * {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  \/* Premium Dark Container *\/\r\n  .premium-song-request {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    background: linear-gradient(135deg, #0A192F 0%, #061124 100%);\r\n    border: 1px solid rgba(255, 255, 255, 0.1);\r\n    border-radius: 16px; \r\n    padding: 35px 45px;\r\n    width: 100%; \r\n    max-width: 680px; \r\n    margin: 40px auto;\r\n    font-family: 'Montserrat', 'Segoe UI', Helvetica, Arial, sans-serif;\r\n    position: relative;\r\n    \/* Animation is active here for all devices *\/\r\n    animation: zoomInOutPulse 4s infinite ease-in-out;\r\n  }\r\n\r\n  \/* Zoom In and Out Keyframes *\/\r\n  @keyframes zoomInOutPulse {\r\n    0% { transform: scale(1); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); }\r\n    50% { transform: scale(1.03); box-shadow: 0 15px 40px rgba(211, 47, 47, 0.25); }\r\n    100% { transform: scale(1); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); }\r\n  }\r\n\r\n  \/* Left column *\/\r\n  .psr-left {\r\n    flex: 1;\r\n    text-align: left;\r\n    padding-right: 30px; \r\n  }\r\n\r\n  .psr-left h3 {\r\n    color: #ffffff;\r\n    font-size: 26px;\r\n    font-weight: 700;\r\n    margin: 0 0 8px 0;\r\n    letter-spacing: 0.5px;\r\n  }\r\n\r\n  .psr-left p {\r\n    color: #A8B2C1; \r\n    font-size: 15px;\r\n    margin: 0 0 25px 0;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  \/* Modern button styling *\/\r\n  .psr-btn {\r\n    display: inline-block;\r\n    background-color: #D32F2F; \r\n    color: #ffffff !important;\r\n    padding: 14px 32px;\r\n    text-decoration: none;\r\n    border-radius: 6px; \r\n    font-weight: 700;\r\n    font-size: 14px;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    transition: all 0.3s ease;\r\n    box-shadow: 0 4px 15px rgba(211, 47, 47, 0.3);\r\n    text-align: center;\r\n  }\r\n\r\n  .psr-btn:hover {\r\n    background-color: #E53935;\r\n    box-shadow: 0 6px 20px rgba(211, 47, 47, 0.6);\r\n  }\r\n\r\n  \/* Right column *\/\r\n  .psr-right {\r\n    position: relative;\r\n    display: flex;\r\n    justify-content: center;\r\n  }\r\n\r\n  \/* QR Code styling *\/\r\n  .psr-qr {\r\n    width: 140px !important;\r\n    height: 140px !important;\r\n    max-width: 140px !important;\r\n    display: block;\r\n    border-radius: 8px;\r\n    background: #ffffff;\r\n    padding: 6px; \r\n    transition: transform 0.3s ease;\r\n  }\r\n\r\n  .psr-qr:hover {\r\n    transform: scale(1.05);\r\n  }\r\n\r\n  \/* --- RESPONSIVE BREAKPOINTS --- *\/\r\n\r\n  \/* Tablets and smaller screens (under 768px) *\/\r\n  @media (max-width: 768px) {\r\n    .premium-song-request {\r\n      max-width: 560px;\r\n      flex-direction: column;\r\n      padding: 30px 25px;\r\n      margin: 20px auto;\r\n      \/* The animation rule has been removed from here so it keeps running! *\/\r\n      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);\r\n    }\r\n    \r\n    .psr-left {\r\n      text-align: center;\r\n      padding-right: 0;\r\n      margin-bottom: 25px;\r\n      width: 100%;\r\n    }\r\n\r\n    .psr-left h3 {\r\n      font-size: 22px; \r\n    }\r\n\r\n    .psr-left p {\r\n      font-size: 14px; \r\n    }\r\n\r\n    .psr-btn {\r\n      width: 100%; \r\n      padding: 16px 20px;\r\n    }\r\n\r\n    .psr-right {\r\n      width: 100%;\r\n      padding-top: 25px;\r\n      border-top: 1px solid rgba(255, 255, 255, 0.1); \r\n    }\r\n  }\r\n\r\n  \/* Very small mobile phones (under 400px) *\/\r\n  @media (max-width: 400px) {\r\n    .premium-song-request {\r\n      padding: 25px 15px;\r\n    }\r\n    .psr-qr {\r\n      width: 120px !important; \r\n      height: 120px !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"premium-song-request\">\r\n  \r\n  <div class=\"psr-left\">\r\n    <h3>Set the Vibe<\/h3>\r\n    <p>Want to hear your favorite track? Scan the QR code or click below to submit your request directly to the DJ.<\/p>\r\n    <a href=\"https:\/\/djrequests.com\/songRequest?access_code=3169\" target=\"_blank\" class=\"psr-btn\">\r\n      Request Songs\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <div class=\"psr-right\">\r\n    <img decoding=\"async\" src=\"https:\/\/sandbarvibes.us\/wp-content\/uploads\/2026\/04\/SongQR.jpg\" alt=\"Scan to Request Songs\" class=\"psr-qr\">\r\n  <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-851cc86 elementor-widget elementor-widget-html\" data-id=\"851cc86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.ff6-wrap {\r\n  max-width: 400px;\r\n  width: 100%;\r\n  margin: 0 auto;\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: .7rem;\r\n  border-radius: 18px;\r\n  padding: .85rem;\r\n  background: #0d162f;\r\n  border: 1px solid rgba(255,215,0,.25);\r\n  box-shadow: 0 12px 40px rgba(0,0,0,.35);\r\n  box-sizing: border-box;\r\n}\r\n.ff6-wrap, .ff6-wrap * { box-sizing: border-box; }\r\n\r\n.ff6-sponsor {\r\n  position: relative;\r\n  height: 150px;\r\n  border-radius: 12px;\r\n  overflow: hidden;\r\n}\r\n.ff6-sponsor img {\r\n  width: 100%; height: 100%;\r\n  object-fit: cover;\r\n  object-position: center;\r\n  display: block;\r\n  filter: brightness(.75) saturate(1.2);\r\n}\r\n.ff6-sponsor-ov {\r\n  position: absolute; inset: 0;\r\n  background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(13,22,47,.9));\r\n  display: flex; flex-direction: column;\r\n  justify-content: flex-end;\r\n  padding: .6rem .8rem;\r\n}\r\n.ff6-sponsor-ov h3 {\r\n  font-family: 'Bebas Neue', sans-serif;\r\n  font-size: 1.3rem; color: #FFD700; line-height: 1; margin: 0;\r\n}\r\n.ff6-sponsor-ov span {\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  font-size: .62rem; letter-spacing: .1em;\r\n  text-transform: uppercase; color: rgba(255,255,255,.65);\r\n  margin-top: .15rem; display: block;\r\n}\r\n\r\n.ff6-form { display: flex; flex-direction: column; gap: .5rem; }\r\n.ff6-field { display: flex; flex-direction: column; gap: .25rem; }\r\n.ff6-field input {\r\n  background: rgba(255,255,255,.08);\r\n  border: 1px solid rgba(255,255,255,.2);\r\n  border-radius: 8px;\r\n  padding: .6rem .85rem;\r\n  color: #fff;\r\n  font-family: 'Barlow', sans-serif;\r\n  font-size: 16px !important;\r\n  outline: none;\r\n  transition: border-color .2s, background .2s;\r\n  width: 100%;\r\n}\r\n.ff6-field input:focus { border-color: #FFD700; background: rgba(255,255,255,.1); }\r\n.ff6-field input::placeholder { color: rgba(255,255,255,.4); }\r\n.ff6-field input.err {\r\n  border-color: #ff4466 !important;\r\n  background: rgba(255,68,102,.1) !important;\r\n}\r\n.ff6-field .ff6-err {\r\n  display: none; font-size: .7rem;\r\n  color: #ff8899; padding-left: .3rem;\r\n  font-family: 'Barlow', sans-serif;\r\n}\r\n.ff6-field .ff6-err.show { display: block; }\r\n\r\n.ff6-btn {\r\n  background: linear-gradient(90deg, #C8102E, #e8243f);\r\n  color: #fff; border: none; border-radius: 8px;\r\n  padding: .7rem; font-family: 'Barlow Condensed', sans-serif;\r\n  font-weight: 700; font-size: 1rem; letter-spacing: .1em;\r\n  text-transform: uppercase; cursor: pointer;\r\n  transition: transform .2s, box-shadow .2s;\r\n  width: 100%;\r\n  margin-top: .1rem;\r\n}\r\n.ff6-btn:hover  { transform: scale(1.02); box-shadow: 0 6px 18px rgba(200,16,46,.5); }\r\n.ff6-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }\r\n\r\n.ff6-msg {\r\n  display: none; border-radius: 9px;\r\n  padding: .7rem .9rem; margin-top: .4rem;\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  font-size: .88rem; line-height: 1.45; text-align: center;\r\n}\r\n.ff6-msg.show    { display: block; }\r\n.ff6-msg.success { background: rgba(0,200,100,.1);  border: 1px solid rgba(0,200,100,.3);  color: #6effa0; }\r\n.ff6-msg.error   { background: rgba(200,16,46,.1);  border: 1px solid rgba(200,16,46,.3);  color: #ff8899; }\r\n.ff6-msg.warning { background: rgba(255,165,0,.1);  border: 1px solid rgba(255,165,0,.35); color: #ffc966; }\r\n.ff6-msg.loading { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.6); }\r\n\r\n.ff6-spin {\r\n  display: inline-block; width: 13px; height: 13px;\r\n  border: 2px solid rgba(255,255,255,.3); border-top-color: #fff;\r\n  border-radius: 50%; animation: ff6-spin .7s linear infinite;\r\n  vertical-align: middle; margin-right: .4rem;\r\n}\r\n@keyframes ff6-spin { to { transform: rotate(360deg); } }\r\n\r\n\/* Prize box \u2014 label + chest + reveal, all merged *\/\r\n.ff6-prize-box {\r\n  position: relative;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  border-radius: 14px;\r\n  padding: .8rem .8rem .7rem;\r\n  background: radial-gradient(circle at 50% 32%, #16294f 0%, #0d162f 78%);\r\n  border: 1px solid rgba(255,215,0,.25);\r\n  overflow: hidden;\r\n  animation: ff6-glow 2.4s ease-in-out infinite;\r\n}\r\n@keyframes ff6-glow {\r\n  0%, 100% { box-shadow: 0 0 0 rgba(255,215,0,0); border-color: rgba(255,215,0,.25); }\r\n  50%      { box-shadow: 0 0 14px rgba(255,215,0,.35); border-color: rgba(255,215,0,.6); }\r\n}\r\n.ff6-prize-box::before {\r\n  content: '';\r\n  position: absolute;\r\n  inset: 0;\r\n  background: radial-gradient(circle at 50% 42%, rgba(255,215,0,.16) 0%, transparent 62%);\r\n  animation: ff6-rays-pulse 2.6s ease-in-out infinite;\r\n  pointer-events: none;\r\n}\r\n@keyframes ff6-rays-pulse {\r\n  0%, 100% { opacity: .5; transform: scale(1); }\r\n  50%      { opacity: 1;  transform: scale(1.08); }\r\n}\r\n\r\n\/* ambient falling confetti flecks across the whole box *\/\r\n.ff6-ambient-confetti {\r\n  position: absolute;\r\n  width: 6px; height: 10px;\r\n  opacity: .8;\r\n  border-radius: 1px;\r\n  animation: ff6-confetti-fall 3.6s ease-in infinite;\r\n  pointer-events: none;\r\n  z-index: 1;\r\n}\r\n.ff6-ambient-confetti:nth-child(1) { left: 8%;  top: -10px; background: #FFD700; animation-delay: 0s;   }\r\n.ff6-ambient-confetti:nth-child(2) { left: 22%; top: -10px; background: #C8102E; animation-delay: .6s;  }\r\n.ff6-ambient-confetti:nth-child(3) { left: 40%; top: -10px; background: #6effa0; animation-delay: 1.2s; }\r\n.ff6-ambient-confetti:nth-child(4) { left: 60%; top: -10px; background: #FFD700; animation-delay: 1.8s; }\r\n.ff6-ambient-confetti:nth-child(5) { left: 78%; top: -10px; background: #ff8899; animation-delay: 2.4s; }\r\n.ff6-ambient-confetti:nth-child(6) { left: 92%; top: -10px; background: #6effa0; animation-delay: .9s;  }\r\n@keyframes ff6-confetti-fall {\r\n  0%   { transform: translateY(0) rotate(0deg);   opacity: 0; }\r\n  10%  { opacity: .9; }\r\n  90%  { opacity: .9; }\r\n  100% { transform: translateY(90px) rotate(360deg); opacity: 0; }\r\n}\r\n\r\n.ff6-prize-label {\r\n  position: relative;\r\n  z-index: 2;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  gap: .35rem;\r\n  color: #FFD700;\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  font-size: .72rem; letter-spacing: .18em;\r\n  text-transform: uppercase;\r\n  margin-bottom: .3rem;\r\n}\r\n.ff6-trophy {\r\n  display: inline-block;\r\n  animation: ff6-trophy-bounce 1.8s ease-in-out infinite;\r\n}\r\n@keyframes ff6-trophy-bounce {\r\n  0%, 100% { transform: translateY(0) rotate(0deg); }\r\n  25%      { transform: translateY(-4px) rotate(-8deg); }\r\n  50%      { transform: translateY(0) rotate(0deg); }\r\n  75%      { transform: translateY(-2px) rotate(8deg); }\r\n}\r\n\r\n.ff6-chest-stage {\r\n  position: relative;\r\n  z-index: 2;\r\n  width: 100%;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: .4rem;\r\n}\r\n\r\n\/* \u2500\u2500 the clickable chest scene \u2500\u2500 *\/\r\n.ff6-chest-visual {\r\n  position: relative;\r\n  width: 150px;\r\n  height: 132px;\r\n  max-width: 100%;\r\n  cursor: pointer;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n.ff6-chest-shadow {\r\n  position: absolute;\r\n  bottom: 12%;\r\n  left: 50%;\r\n  width: 122px;\r\n  height: 18px;\r\n  transform: translateX(-50%);\r\n  background: radial-gradient(ellipse at center, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 72%);\r\n  animation: ff6-shadow-pulse 3s ease-in-out infinite;\r\n  z-index: 1;\r\n  transition: opacity .4s ease;\r\n}\r\n@keyframes ff6-shadow-pulse {\r\n  0%, 100% { transform: translateX(-50%) scaleX(1);   opacity: .6; }\r\n  50%      { transform: translateX(-50%) scaleX(.85); opacity: .4; }\r\n}\r\n.ff6-chest-visual.opened .ff6-chest-shadow { opacity: .3; }\r\n\r\n\/* ambient twinkling stars around the chest \u2014 fade out once opened *\/\r\n.ff6-sparkle {\r\n  position: absolute;\r\n  background: radial-gradient(circle, #fff 0%, #FFD700 55%, transparent 75%);\r\n  clip-path: polygon(50% 0%, 61% 38%, 98% 38%, 68% 60%, 79% 95%, 50% 74%, 21% 95%, 32% 60%, 2% 38%, 39% 38%);\r\n  opacity: 0;\r\n  z-index: 4;\r\n  pointer-events: none;\r\n  animation: ff6-sparkle-twinkle 2.6s ease-in-out infinite;\r\n  transition: opacity .4s ease;\r\n}\r\n@keyframes ff6-sparkle-twinkle {\r\n  0%, 100%  { opacity: 0;  transform: scale(.2) rotate(0deg); }\r\n  50%       { opacity: 1;  transform: scale(1)  rotate(180deg); }\r\n}\r\n.ff6-sparkle-1 { top: 8%;  left: 12%; width: 10px; height: 10px; animation-delay: 0s;   }\r\n.ff6-sparkle-2 { top: 4%;  left: 78%; width: 14px; height: 14px; animation-delay: .6s;  }\r\n.ff6-sparkle-3 { top: 34%; left: 2%;  width: 8px;  height: 8px;  animation-delay: 1.2s; }\r\n.ff6-sparkle-4 { top: 24%; left: 90%; width: 11px; height: 11px; animation-delay: 1.8s; }\r\n.ff6-sparkle-5 { top: 60%; left: 94%; width: 9px;  height: 9px;  animation-delay: .3s;  }\r\n.ff6-sparkle-6 { top: 64%; left: 4%;  width: 12px; height: 12px; animation-delay: 2s;   }\r\n.ff6-chest-visual.opened .ff6-sparkle { opacity: 0 !important; animation: none; }\r\n\r\n\/* faint golden light leaking from the seam \u2014 hints there's treasure inside *\/\r\n.ff6-chest-seam-glow {\r\n  position: absolute;\r\n  top: 46%; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 96px; height: 6px;\r\n  background: radial-gradient(ellipse at center, rgba(255,215,0,.55) 0%, transparent 75%);\r\n  filter: blur(2px);\r\n  z-index: 2;\r\n  animation: ff6-seam-pulse 2.2s ease-in-out infinite;\r\n  transition: opacity .3s ease;\r\n}\r\n@keyframes ff6-seam-pulse {\r\n  0%, 100% { opacity: .35; }\r\n  50%      { opacity: .85; }\r\n}\r\n.ff6-chest-visual.opened .ff6-chest-seam-glow { opacity: 0; }\r\n\r\n.ff6-chest {\r\n  position: relative;\r\n  width: 150px;\r\n  height: 116px;\r\n  transition: opacity .4s ease;\r\n  z-index: 2;\r\n  filter: drop-shadow(0 10px 14px rgba(0,0,0,.55));\r\n}\r\n\r\n\/* wood base \u2014 planks + grain + worn corner rivets *\/\r\n.ff6-chest-base {\r\n  position: absolute;\r\n  bottom: 0; left: 0;\r\n  width: 150px; height: 72px;\r\n  background:\r\n    radial-gradient(circle 3px at 11px 11px, #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 3px at calc(100% - 11px) 11px, #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 3px at 11px calc(100% - 11px), #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 3px at calc(100% - 11px) calc(100% - 11px), #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 2.5px at 50% 8px, #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 2.5px at 50% calc(100% - 8px), #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0px, rgba(0,0,0,.16) 1.5px, transparent 1.5px, transparent 15px),\r\n    repeating-linear-gradient(0deg, rgba(0,0,0,.08) 0px, rgba(0,0,0,.08) 1px, transparent 1px, transparent 5px),\r\n    linear-gradient(180deg, #ad7a38 0%, #7a4f22 55%, #4d2f14 100%);\r\n  border: 3px solid #3a2410;\r\n  border-radius: 6px;\r\n  box-shadow:\r\n    inset 0 -10px 14px rgba(0,0,0,.45),\r\n    inset 0 3px 5px rgba(255,255,255,.14),\r\n    0 8px 16px rgba(0,0,0,.5);\r\n}\r\n.ff6-chest-base::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: -3px; left: -3px; right: -3px; bottom: -3px;\r\n  background:\r\n    linear-gradient(135deg, #d9d9d9 0%, #8a8a8a 40%, transparent 42%) top left \/ 22px 22px no-repeat,\r\n    linear-gradient(-135deg, #d9d9d9 0%, #8a8a8a 40%, transparent 42%) top right \/ 22px 22px no-repeat,\r\n    linear-gradient(45deg, #d9d9d9 0%, #8a8a8a 40%, transparent 42%) bottom left \/ 22px 22px no-repeat,\r\n    linear-gradient(-45deg, #d9d9d9 0%, #8a8a8a 40%, transparent 42%) bottom right \/ 22px 22px no-repeat;\r\n  opacity: .55;\r\n  border-radius: 6px;\r\n  pointer-events: none;\r\n}\r\n.ff6-chest-base::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: -7px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 26px; height: 30px;\r\n  background: linear-gradient(180deg, #ffe89a, #d4a520 45%, #7a5a0a);\r\n  border: 1.5px solid #5a4008;\r\n  border-radius: 4px;\r\n  box-shadow: 0 2px 4px rgba(0,0,0,.5), inset 0 1px 2px rgba(255,255,255,.4);\r\n  z-index: 1;\r\n}\r\n\r\n.ff6-chest-keyhole {\r\n  position: absolute;\r\n  top: 6px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 6px; height: 9px;\r\n  background: #2b1c06;\r\n  border-radius: 50% 50% 2px 2px;\r\n  z-index: 2;\r\n}\r\n\r\n.ff6-chest-hinge {\r\n  position: absolute;\r\n  top: -4px;\r\n  width: 14px; height: 10px;\r\n  background: linear-gradient(180deg, #d9d9d9, #6e6e6e);\r\n  border: 1px solid #3a2410;\r\n  border-radius: 2px;\r\n  z-index: 0;\r\n}\r\n.ff6-chest-hinge.left  { left: 14px; }\r\n.ff6-chest-hinge.right { right: 14px; }\r\n\r\n.ff6-chest-lid {\r\n  position: absolute;\r\n  top: 0; left: 0;\r\n  width: 150px; height: 48px;\r\n  background:\r\n    radial-gradient(circle 3px at 11px 9px, #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    radial-gradient(circle 3px at calc(100% - 11px) 9px, #ffe89a 0%, #a3780f 65%, transparent 70%),\r\n    repeating-linear-gradient(90deg, rgba(0,0,0,.14) 0px, rgba(0,0,0,.14) 1.5px, transparent 1.5px, transparent 15px),\r\n    repeating-linear-gradient(0deg, rgba(0,0,0,.07) 0px, rgba(0,0,0,.07) 1px, transparent 1px, transparent 5px),\r\n    linear-gradient(180deg, #c19850 0%, #86592a 60%, #593a1a 100%);\r\n  border: 3px solid #3a2410;\r\n  border-radius: 15px 15px 4px 4px;\r\n  transform-origin: bottom center;\r\n  transition: transform .6s cubic-bezier(.34,1.56,.64,1);\r\n  box-shadow:\r\n    inset 0 -6px 10px rgba(0,0,0,.4),\r\n    inset 0 4px 6px rgba(255,255,255,.2),\r\n    0 4px 14px rgba(0,0,0,.4);\r\n  animation: ff6-chest-wiggle 1.6s ease-in-out infinite;\r\n  z-index: 1;\r\n}\r\n.ff6-chest-lid::after {\r\n  content: '';\r\n  position: absolute;\r\n  bottom: 6px; left: 0;\r\n  width: 100%; height: 9px;\r\n  background: linear-gradient(180deg, #ffe89a, #c9960f 50%, #7a5a0a);\r\n  box-shadow: 0 1px 3px rgba(0,0,0,.5), inset 0 1px 1px rgba(255,255,255,.5);\r\n}\r\n.ff6-chest-lid::before {\r\n  content: '';\r\n  position: absolute;\r\n  top: 3px; left: 8%;\r\n  width: 84%; height: 10px;\r\n  background: linear-gradient(180deg, rgba(255,255,255,.35), transparent);\r\n  border-radius: 50%;\r\n  pointer-events: none;\r\n}\r\n@keyframes ff6-chest-wiggle {\r\n  0%, 100% { transform: rotate(0deg); }\r\n  50%      { transform: rotate(-3deg); }\r\n}\r\n\r\n.ff6-chest-tap {\r\n  position: relative;\r\n  z-index: 2;\r\n  color: #FFD700;\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  font-size: .74rem; letter-spacing: .1em;\r\n  text-transform: uppercase;\r\n  text-align: center;\r\n  animation: ff6-tap-pulse 1.6s ease-in-out infinite;\r\n  transition: opacity .3s ease, max-height .3s ease;\r\n  max-height: 30px;\r\n  overflow: hidden;\r\n}\r\n@keyframes ff6-tap-pulse {\r\n  0%, 100% { opacity: .55; }\r\n  50%      { opacity: 1; }\r\n}\r\n.ff6-chest-stage.opened .ff6-chest-tap {\r\n  opacity: 0;\r\n  max-height: 0;\r\n  pointer-events: none;\r\n}\r\n\r\n.ff6-chest-visual.opened .ff6-chest-lid {\r\n  animation: none;\r\n  transform: rotate(-115deg);\r\n}\r\n.ff6-chest-visual.opened .ff6-chest {\r\n  opacity: 0;\r\n  transition-delay: .3s;\r\n}\r\n\r\n.ff6-chest-glow {\r\n  position: absolute;\r\n  width: 10px; height: 10px;\r\n  border-radius: 50%;\r\n  background: radial-gradient(circle, rgba(255,215,0,1) 0%, rgba(255,215,0,0) 70%);\r\n  opacity: 0;\r\n  z-index: 1;\r\n}\r\n.ff6-chest-visual.opened .ff6-chest-glow {\r\n  animation: ff6-glow-burst .8s ease-out forwards;\r\n}\r\n@keyframes ff6-glow-burst {\r\n  0%   { width: 10px; height: 10px; opacity: 1; }\r\n  100% { width: 340px; height: 340px; opacity: 0; }\r\n}\r\n\r\n.ff6-chest-ray {\r\n  position: absolute;\r\n  top: 50%; left: 50%;\r\n  width: 4px; height: 90px;\r\n  background: linear-gradient(180deg, rgba(255,232,154,.9), transparent);\r\n  transform-origin: center bottom;\r\n  opacity: 0;\r\n  z-index: 1;\r\n}\r\n.ff6-chest-visual.opened .ff6-chest-ray {\r\n  animation: ff6-ray-burst .7s ease-out forwards;\r\n}\r\n@keyframes ff6-ray-burst {\r\n  0%   { opacity: 0; transform: translate(-50%,-50%) rotate(var(--rot,0deg)) scaleY(.2); }\r\n  30%  { opacity: .9; }\r\n  100% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--rot,0deg)) scaleY(1); }\r\n}\r\n\r\n.ff6-chest-product {\r\n  position: absolute;\r\n  width: 118%;\r\n  height: 118%;\r\n  object-fit: contain;\r\n  opacity: 0;\r\n  transform: scale(.4) translateY(30px);\r\n  transition: opacity .5s ease .5s, transform .6s cubic-bezier(.34,1.56,.64,1) .5s;\r\n  filter: drop-shadow(0 10px 20px rgba(0,0,0,.5));\r\n  z-index: 2;\r\n}\r\n.ff6-chest-visual.opened .ff6-chest-product {\r\n  opacity: 1;\r\n  transform: scale(1) translateY(0);\r\n  animation: ff6-bob 3s ease-in-out infinite .1s;\r\n}\r\n@keyframes ff6-bob {\r\n  0%, 100% { transform: translateY(0); }\r\n  50%      { transform: translateY(-5px); }\r\n}\r\n\r\n.ff6-local-confetti {\r\n  position: absolute;\r\n  inset: 0;\r\n  pointer-events: none;\r\n  overflow: visible;\r\n  z-index: 3;\r\n}\r\n.ff6-local-confetti span {\r\n  position: absolute;\r\n  top: 40%; left: 50%;\r\n  width: 6px; height: 12px;\r\n  border-radius: 1px;\r\n  opacity: 0;\r\n}\r\n.ff6-chest-visual.opened .ff6-local-confetti span {\r\n  animation: ff6-local-burst 1.4s ease-out forwards;\r\n}\r\n@keyframes ff6-local-burst {\r\n  0%   { opacity: 1; transform: translate(0,0) rotate(0deg); }\r\n  100% { opacity: 0; transform: translate(var(--tx), var(--ty)) rotate(720deg); }\r\n}\r\n\r\n.ff6-prize-reveal {\r\n  position: relative;\r\n  z-index: 2;\r\n  width: 100%;\r\n  text-align: center;\r\n  opacity: 0;\r\n  max-height: 0;\r\n  transform: translateY(8px);\r\n  overflow: hidden;\r\n  transition: opacity .5s ease .3s, transform .5s ease .3s, max-height .5s ease .3s, margin-top .5s ease .3s;\r\n}\r\n.ff6-chest-stage.opened .ff6-prize-reveal {\r\n  opacity: 1;\r\n  max-height: 90px;\r\n  margin-top: .4rem;\r\n  transform: translateY(0);\r\n}\r\n.ff6-prize-text {\r\n  display: block;\r\n  font-size: .95rem; line-height: 1.4;\r\n  font-family: 'Barlow', sans-serif;\r\n  font-weight: 600;\r\n  background: linear-gradient(90deg, #fff 40%, #FFD700 50%, #fff 60%);\r\n  background-size: 200% 100%;\r\n  -webkit-background-clip: text;\r\n  background-clip: text;\r\n  -webkit-text-fill-color: transparent;\r\n  animation: ff6-shimmer 3s linear infinite;\r\n}\r\n@keyframes ff6-shimmer {\r\n  0%   { background-position: 200% 0; }\r\n  100% { background-position: -200% 0; }\r\n}\r\n\r\n.ff6-burst {\r\n  position: fixed;\r\n  inset: 0;\r\n  pointer-events: none;\r\n  z-index: 9999;\r\n  overflow: hidden;\r\n  display: none;\r\n}\r\n.ff6-burst.show { display: block; }\r\n.ff6-burst span {\r\n  position: absolute;\r\n  top: -20px;\r\n  width: 8px; height: 14px;\r\n  border-radius: 2px;\r\n  animation: ff6-burst-fall linear forwards;\r\n}\r\n@keyframes ff6-burst-fall {\r\n  to { transform: translateY(110vh) rotate(720deg); opacity: .2; }\r\n}\r\n\r\n\/* \u2500\u2500 Gift gallery popup: opens when the chest is opened \u2500\u2500 *\/\r\n.ff6-gift-overlay {\r\n  position: fixed;\r\n  inset: 0;\r\n  background: rgba(5,8,20,.82);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  z-index: 10000;\r\n  padding: 1rem;\r\n  opacity: 0;\r\n  pointer-events: none;\r\n  transition: opacity .3s ease;\r\n}\r\n.ff6-gift-overlay.show { opacity: 1; pointer-events: auto; }\r\n\r\n.ff6-gift-modal {\r\n  position: relative;\r\n  width: 100%;\r\n  max-width: 640px;\r\n  max-height: 86vh;\r\n  background: #0d162f;\r\n  border: 1px solid rgba(255,215,0,.3);\r\n  border-radius: 16px;\r\n  padding: 1.2rem 1.1rem 1rem;\r\n  box-shadow: 0 20px 60px rgba(0,0,0,.6);\r\n  transform: scale(.92) translateY(10px);\r\n  transition: transform .35s cubic-bezier(.34,1.56,.64,1);\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: .8rem;\r\n  overflow: hidden;\r\n}\r\n.ff6-gift-overlay.show .ff6-gift-modal { transform: scale(1) translateY(0); }\r\n\r\n.ff6-gift-close {\r\n  position: absolute;\r\n  top: .7rem; right: .7rem;\r\n  width: 34px; height: 34px;\r\n  border-radius: 50%;\r\n  background: rgba(255,255,255,.08);\r\n  border: 1px solid rgba(255,255,255,.2);\r\n  color: #fff;\r\n  font-size: 1.1rem;\r\n  line-height: 1;\r\n  cursor: pointer;\r\n  display: flex; align-items: center; justify-content: center;\r\n  transition: background .2s ease, border-color .2s ease, transform .2s ease;\r\n  z-index: 2;\r\n}\r\n.ff6-gift-close:hover {\r\n  background: rgba(255,68,102,.25);\r\n  border-color: rgba(255,68,102,.5);\r\n  transform: rotate(90deg);\r\n}\r\n\r\n.ff6-gift-title {\r\n  color: #FFD700;\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  text-transform: uppercase;\r\n  letter-spacing: .12em;\r\n  font-size: .82rem;\r\n  text-align: center;\r\n  padding-right: 1.8rem;\r\n}\r\n\r\n.ff6-gift-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(3, 1fr);\r\n  gap: .6rem;\r\n  overflow-y: auto;\r\n  overflow-x: hidden;\r\n  padding: .1rem .1rem .3rem;\r\n}\r\n.ff6-gift-grid img {\r\n  width: 100%;\r\n  aspect-ratio: 1 \/ 1;\r\n  object-fit: cover;\r\n  border-radius: 10px;\r\n  border: 1px solid rgba(255,255,255,.12);\r\n  background: #fff;\r\n  cursor: zoom-in;\r\n  transition: transform .2s ease;\r\n}\r\n.ff6-gift-grid img:hover { transform: scale(1.03); }\r\n\r\n.ff6-gift-slider { display: none; }\r\n.ff6-gift-dots { display: none; }\r\n\r\n@media (max-width: 700px) {\r\n  .ff6-gift-grid { display: none; }\r\n  .ff6-gift-slider {\r\n    display: flex;\r\n    gap: .7rem;\r\n    overflow-x: auto;\r\n    scroll-snap-type: x mandatory;\r\n    padding: .1rem .1rem .5rem;\r\n    -webkit-overflow-scrolling: touch;\r\n  }\r\n  .ff6-gift-slider img {\r\n    flex: 0 0 78%;\r\n    scroll-snap-align: center;\r\n    aspect-ratio: 1 \/ 1;\r\n    object-fit: cover;\r\n    border-radius: 12px;\r\n    border: 1px solid rgba(255,255,255,.12);\r\n    background: #fff;\r\n    cursor: zoom-in;\r\n  }\r\n  .ff6-gift-dots {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: .35rem;\r\n  }\r\n  .ff6-gift-dots span {\r\n    width: 6px; height: 6px;\r\n    border-radius: 50%;\r\n    background: rgba(255,255,255,.25);\r\n    transition: background .2s ease, transform .2s ease;\r\n  }\r\n  .ff6-gift-dots span.active { background: #FFD700; transform: scale(1.3); }\r\n}\r\n\r\n\/* \u2500\u2500 Zoom lightbox: full-screen enlarged image viewer \u2500\u2500 *\/\r\n.ff6-lightbox-overlay {\r\n  position: fixed;\r\n  inset: 0;\r\n  background: rgba(3,5,14,.94);\r\n  z-index: 10010;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  opacity: 0;\r\n  pointer-events: none;\r\n  transition: opacity .25s ease;\r\n}\r\n.ff6-lightbox-overlay.show { opacity: 1; pointer-events: auto; }\r\n\r\n.ff6-lightbox-img {\r\n  max-width: 90vw;\r\n  max-height: 80vh;\r\n  object-fit: contain;\r\n  border-radius: 8px;\r\n  cursor: zoom-in;\r\n  transition: transform .3s cubic-bezier(.34,1.56,.64,1);\r\n  box-shadow: 0 20px 60px rgba(0,0,0,.6);\r\n  touch-action: pinch-zoom;\r\n}\r\n.ff6-lightbox-img.zoomed {\r\n  cursor: zoom-out;\r\n  transform: scale(1.9);\r\n}\r\n\r\n.ff6-lightbox-close,\r\n.ff6-lightbox-nav {\r\n  position: absolute;\r\n  background: rgba(255,255,255,.08);\r\n  border: 1px solid rgba(255,255,255,.22);\r\n  color: #fff;\r\n  border-radius: 50%;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  cursor: pointer;\r\n  transition: background .2s ease, border-color .2s ease, transform .2s ease;\r\n  z-index: 2;\r\n}\r\n.ff6-lightbox-close:hover,\r\n.ff6-lightbox-nav:hover {\r\n  background: rgba(255,215,0,.2);\r\n  border-color: rgba(255,215,0,.5);\r\n}\r\n.ff6-lightbox-close {\r\n  top: 1rem; right: 1rem;\r\n  width: 38px; height: 38px;\r\n  font-size: 1.15rem;\r\n}\r\n.ff6-lightbox-close:hover { transform: rotate(90deg); }\r\n\r\n.ff6-lightbox-nav {\r\n  top: 50%;\r\n  transform: translateY(-50%);\r\n  width: 42px; height: 42px;\r\n  font-size: 1.4rem;\r\n}\r\n.ff6-lightbox-nav:hover { transform: translateY(-50%) scale(1.08); }\r\n.ff6-lightbox-nav.prev { left: .6rem; }\r\n.ff6-lightbox-nav.next { right: .6rem; }\r\n\r\n.ff6-lightbox-counter {\r\n  position: absolute;\r\n  bottom: 1rem; left: 50%;\r\n  transform: translateX(-50%);\r\n  color: rgba(255,255,255,.7);\r\n  font-family: 'Barlow Condensed', sans-serif;\r\n  font-size: .78rem; letter-spacing: .1em;\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .ff6-lightbox-nav { width: 36px; height: 36px; font-size: 1.2rem; }\r\n  .ff6-lightbox-close { width: 34px; height: 34px; font-size: 1rem; }\r\n}\r\n\r\n\/* \u2500\u2500 Responsive: single column at every width, nothing clipped \u2500\u2500 *\/\r\n@media (max-width: 480px) {\r\n  .ff6-wrap { max-width: 94vw; border-radius: 16px; padding: .8rem; }\r\n  .ff6-sponsor { height: 120px; }\r\n  .ff6-sponsor-ov h3 { font-size: 1.15rem; }\r\n  .ff6-btn { font-size: .95rem; padding: .68rem; }\r\n  .ff6-chest-tap { font-size: .68rem; }\r\n  .ff6-prize-text { font-size: .85rem; }\r\n  .ff6-gift-modal { padding: 1rem .9rem .9rem; }\r\n  .ff6-gift-title { font-size: .74rem; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"ff6-wrap\">\r\n\r\n  <div class=\"ff6-sponsor\">\r\n    <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/Untitled-design-11.png\" alt=\"The Handy Guy\">\r\n    <div class=\"ff6-sponsor-ov\">\r\n      <h3>Raffle #1<\/h3>\r\n      <span>BY THE HANDY GUY HOME SERVICES LLC<\/span>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ff6-prize-box\">\r\n\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n    <span class=\"ff6-ambient-confetti\"><\/span>\r\n\r\n    <div class=\"ff6-prize-label\"><span class=\"ff6-trophy\">\ud83c\udfc6<\/span> Prize<\/div>\r\n\r\n    <div class=\"ff6-chest-stage\" id=\"ff6-chest-stage\">\r\n\r\n      <div class=\"ff6-chest-visual\" id=\"ff6-chest-wrap\" onclick=\"ff6ChestClick()\">\r\n\r\n        <span class=\"ff6-sparkle ff6-sparkle-1\"><\/span>\r\n        <span class=\"ff6-sparkle ff6-sparkle-2\"><\/span>\r\n        <span class=\"ff6-sparkle ff6-sparkle-3\"><\/span>\r\n        <span class=\"ff6-sparkle ff6-sparkle-4\"><\/span>\r\n        <span class=\"ff6-sparkle ff6-sparkle-5\"><\/span>\r\n        <span class=\"ff6-sparkle ff6-sparkle-6\"><\/span>\r\n\r\n        <div class=\"ff6-chest-shadow\"><\/div>\r\n        <div class=\"ff6-chest-seam-glow\"><\/div>\r\n\r\n        <div class=\"ff6-chest\" id=\"ff6-chest\">\r\n          <div class=\"ff6-chest-hinge left\"><\/div>\r\n          <div class=\"ff6-chest-hinge right\"><\/div>\r\n          <div class=\"ff6-chest-lid\"><\/div>\r\n          <div class=\"ff6-chest-base\">\r\n            <div class=\"ff6-chest-keyhole\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"ff6-chest-glow\"><\/div>\r\n        <div class=\"ff6-chest-rays\" id=\"ff6-chest-rays\"><\/div>\r\n\r\n        <img decoding=\"async\" class=\"ff6-chest-product\" src=\"\/wp-content\/uploads\/2026\/07\/goture-fishing-combo.png\" alt=\"Goture Fishing Rod & Reel Combo\">\r\n\r\n        <div class=\"ff6-local-confetti\" id=\"ff6-local-confetti\"><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ff6-chest-tap\">Tap to Open \ud83c\udf81<\/div>\r\n\r\n      <div class=\"ff6-prize-reveal\" id=\"ff6-prize-reveal\">\r\n        <span class=\"ff6-prize-text\">Goture 2-Person Fishing Rod & Reel Combo Kit<\/span>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ff6-form\" id=\"ff6-form\">\r\n    <div class=\"ff6-field\">\r\n      <input type=\"text\" id=\"ff6-name\" placeholder=\"Your Full Name\" maxlength=\"80\">\r\n      <span class=\"ff6-err\" id=\"ff6-name-err\"><\/span>\r\n    <\/div>\r\n    <div class=\"ff6-field\">\r\n      <input type=\"email\" id=\"ff6-email\" placeholder=\"Your Email Address\" maxlength=\"100\">\r\n      <span class=\"ff6-err\" id=\"ff6-email-err\"><\/span>\r\n    <\/div>\r\n    <div class=\"ff6-field\">\r\n      <input type=\"tel\" id=\"ff6-phone\" placeholder=\"Phone Number\" maxlength=\"20\">\r\n      <span class=\"ff6-err\" id=\"ff6-phone-err\"><\/span>\r\n    <\/div>\r\n    <div class=\"ff6-field\">\r\n      <input type=\"text\" id=\"ff6-address\" placeholder=\"Your Address\" maxlength=\"150\">\r\n      <span class=\"ff6-err\" id=\"ff6-address-err\"><\/span>\r\n    <\/div>\r\n    <button class=\"ff6-btn\" id=\"ff6-btn\" onclick=\"ff6Submit()\">\r\n      \ud83c\udf9f\ufe0f Enter Raffle #1\r\n    <\/button>\r\n  <\/div>\r\n\r\n  <div class=\"ff6-msg\" id=\"ff6-msg\"><\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"ff6-burst\" id=\"ff6-burst\"><\/div>\r\n\r\n<!-- Gift gallery popup \u2014 opens automatically once the chest is opened, and again on every tap after that -->\r\n<div class=\"ff6-gift-overlay\" id=\"ff6-gift-overlay\">\r\n  <div class=\"ff6-gift-modal\">\r\n    <button class=\"ff6-gift-close\" id=\"ff6-gift-close\" aria-label=\"Close\">\u2715<\/button>\r\n    <div class=\"ff6-gift-title\">\ud83c\udf81 What's Inside the Prize Pack<\/div>\r\n\r\n    <!-- Desktop: grid -->\r\n    <div class=\"ff6-gift-grid\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-1.jpg\" alt=\"2pcs telescopic fishing rods and spinning reels\" onclick=\"ff6OpenLightbox(0)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-2.jpg\" alt=\"Goture spinning reel close-up with specs\" onclick=\"ff6OpenLightbox(1)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-3.jpg\" alt=\"66 piece lures and hooks tackle box set\" onclick=\"ff6OpenLightbox(2)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-4.jpg\" alt=\"Fishing line, plier, gripper and alarm bells\" onclick=\"ff6OpenLightbox(3)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-5.jpg\" alt=\"Rod carry bag size chart\" onclick=\"ff6OpenLightbox(4)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-6.jpg\" alt=\"Full combo kit laid out on grass\" onclick=\"ff6OpenLightbox(5)\">\r\n    <\/div>\r\n\r\n    <!-- Mobile: swipeable slider -->\r\n    <div class=\"ff6-gift-slider\" id=\"ff6-gift-slider\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-1.jpg\" alt=\"2pcs telescopic fishing rods and spinning reels\" onclick=\"ff6OpenLightbox(0)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-2.jpg\" alt=\"Goture spinning reel close-up with specs\" onclick=\"ff6OpenLightbox(1)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-3.jpg\" alt=\"66 piece lures and hooks tackle box set\" onclick=\"ff6OpenLightbox(2)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-4.jpg\" alt=\"Fishing line, plier, gripper and alarm bells\" onclick=\"ff6OpenLightbox(3)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-5.jpg\" alt=\"Rod carry bag size chart\" onclick=\"ff6OpenLightbox(4)\">\r\n      <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/Gift-6.jpg\" alt=\"Full combo kit laid out on grass\" onclick=\"ff6OpenLightbox(5)\">\r\n    <\/div>\r\n    <div class=\"ff6-gift-dots\" id=\"ff6-gift-dots\">\r\n      <span class=\"active\"><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Zoom lightbox: opens full-screen when a gift photo is tapped -->\r\n<div class=\"ff6-lightbox-overlay\" id=\"ff6-lightbox-overlay\" onclick=\"ff6LightboxBgClick(event)\">\r\n  <button class=\"ff6-lightbox-close\" onclick=\"ff6CloseLightbox()\" aria-label=\"Close\">\u2715<\/button>\r\n  <button class=\"ff6-lightbox-nav prev\" onclick=\"event.stopPropagation(); ff6LightboxNav(-1)\" aria-label=\"Previous\">\u2039<\/button>\r\n  <img decoding=\"async\" class=\"ff6-lightbox-img\" id=\"ff6-lightbox-img\" src=\"\" alt=\"\" onclick=\"ff6ToggleZoom(event)\">\r\n  <button class=\"ff6-lightbox-nav next\" onclick=\"event.stopPropagation(); ff6LightboxNav(1)\" aria-label=\"Next\">\u203a<\/button>\r\n  <div class=\"ff6-lightbox-counter\" id=\"ff6-lightbox-counter\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\nvar FF6_URL = 'https:\/\/script.google.com\/macros\/s\/AKfycbwwm3WWfKKQwq_TeAxd8Mju6rPfkb09Y5O7Iu-GGCWPZWiQhsShSJD0DIKOmIvkSIYu\/exec';\r\nvar FF6_RAFFLE_1 = 'Raffle #1 \u2013 THE HANDY GUY HOME SERVICES LLC';\r\nvar FF6_STAR_CLIP = 'polygon(50% 0%, 61% 38%, 98% 38%, 68% 60%, 79% 95%, 50% 74%, 21% 95%, 32% 60%, 2% 38%, 39% 38%)';\r\n\r\nvar FF6_GIFT_IMAGES = [\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-1.jpg', alt: '2pcs telescopic fishing rods and spinning reels' },\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-2.jpg', alt: 'Goture spinning reel close-up with specs' },\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-3.jpg', alt: '66 piece lures and hooks tackle box set' },\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-4.jpg', alt: 'Fishing line, plier, gripper and alarm bells' },\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-5.jpg', alt: 'Rod carry bag size chart' },\r\n  { src: '\/wp-content\/uploads\/2026\/07\/Gift-6.jpg', alt: 'Full combo kit laid out on grass' }\r\n];\r\nvar ff6LightboxIndex = 0;\r\n\r\nfunction ff6Clear() {\r\n  ['name','email','phone','address'].forEach(function(f) {\r\n    document.getElementById('ff6-' + f).classList.remove('err');\r\n    var errEl = document.getElementById('ff6-' + f + '-err');\r\n    if (errEl) { errEl.textContent = ''; errEl.classList.remove('show'); }\r\n  });\r\n  var msg = document.getElementById('ff6-msg');\r\n  msg.className = 'ff6-msg';\r\n  msg.innerHTML = '';\r\n}\r\n\r\nfunction ff6MarkField(field, msg) {\r\n  var input = document.getElementById('ff6-' + field);\r\n  var errEl = document.getElementById('ff6-' + field + '-err');\r\n  if (input) input.classList.add('err');\r\n  if (errEl) { errEl.textContent = '\u26a0 ' + msg; errEl.classList.add('show'); }\r\n}\r\n\r\nfunction ff6ShowMsg(type, html) {\r\n  var el = document.getElementById('ff6-msg');\r\n  el.className = 'ff6-msg show ' + type;\r\n  el.innerHTML = html;\r\n}\r\n\r\nfunction ff6Celebrate() {\r\n  var colors = ['#FFD700', '#C8102E', '#6effa0', '#ffffff', '#ff8899'];\r\n  var burst = document.getElementById('ff6-burst');\r\n  burst.innerHTML = '';\r\n  burst.classList.add('show');\r\n\r\n  for (var i = 0; i < 60; i++) {\r\n    var p = document.createElement('span');\r\n    p.style.left = Math.random() * 100 + 'vw';\r\n    p.style.background = colors[Math.floor(Math.random() * colors.length)];\r\n    p.style.animationDuration = (2 + Math.random() * 1.5) + 's';\r\n    p.style.animationDelay = (Math.random() * 0.4) + 's';\r\n    if (Math.random() < 0.3) {\r\n      p.style.clipPath = FF6_STAR_CLIP;\r\n      p.style.width = '11px';\r\n      p.style.height = '11px';\r\n    }\r\n    burst.appendChild(p);\r\n  }\r\n\r\n  setTimeout(function() {\r\n    burst.classList.remove('show');\r\n    burst.innerHTML = '';\r\n  }, 3800);\r\n}\r\n\r\nfunction ff6ChestClick() {\r\n  var visual = document.getElementById('ff6-chest-wrap');\r\n  if (visual.classList.contains('opened')) {\r\n    ff6OpenGiftModal();\r\n  } else {\r\n    ff6OpenChest();\r\n  }\r\n}\r\n\r\nfunction ff6OpenChest() {\r\n  var visual = document.getElementById('ff6-chest-wrap');\r\n  var stage  = document.getElementById('ff6-chest-stage');\r\n  if (visual.classList.contains('opened')) return;\r\n\r\n  visual.classList.add('opened');\r\n  stage.classList.add('opened');\r\n\r\n  var colors = ['#FFD700', '#C8102E', '#6effa0', '#ffffff', '#ff8899'];\r\n\r\n  var confettiWrap = document.getElementById('ff6-local-confetti');\r\n  confettiWrap.innerHTML = '';\r\n  for (var i = 0; i < 36; i++) {\r\n    var p = document.createElement('span');\r\n    var angle = Math.random() * Math.PI * 2;\r\n    var dist = 80 + Math.random() * 150;\r\n    var tx = Math.cos(angle) * dist;\r\n    var ty = Math.sin(angle) * dist - 40;\r\n    p.style.setProperty('--tx', tx + 'px');\r\n    p.style.setProperty('--ty', ty + 'px');\r\n    p.style.background = colors[Math.floor(Math.random() * colors.length)];\r\n    p.style.animationDelay = (Math.random() * 0.2) + 's';\r\n    if (Math.random() < 0.55) {\r\n      p.style.clipPath = FF6_STAR_CLIP;\r\n      p.style.width = '10px';\r\n      p.style.height = '10px';\r\n    }\r\n    confettiWrap.appendChild(p);\r\n  }\r\n\r\n  var rays = document.getElementById('ff6-chest-rays');\r\n  rays.innerHTML = '';\r\n  var rayCount = 8;\r\n  for (var r = 0; r < rayCount; r++) {\r\n    var ray = document.createElement('div');\r\n    ray.className = 'ff6-chest-ray';\r\n    ray.style.setProperty('--rot', (r * (360 \/ rayCount)) + 'deg');\r\n    ray.style.animationDelay = (Math.random() * 0.1) + 's';\r\n    rays.appendChild(ray);\r\n  }\r\n\r\n  setTimeout(ff6OpenGiftModal, 900);\r\n}\r\n\r\nfunction ff6OpenGiftModal() {\r\n  document.getElementById('ff6-gift-overlay').classList.add('show');\r\n  document.body.style.overflow = 'hidden';\r\n}\r\n\r\nfunction ff6CloseGiftModal() {\r\n  document.getElementById('ff6-gift-overlay').classList.remove('show');\r\n  document.body.style.overflow = '';\r\n}\r\n\r\n\/* \u2500\u2500 Lightbox controls \u2500\u2500 *\/\r\nfunction ff6RenderLightbox() {\r\n  var item = FF6_GIFT_IMAGES[ff6LightboxIndex];\r\n  var img = document.getElementById('ff6-lightbox-img');\r\n  img.src = item.src;\r\n  img.alt = item.alt;\r\n  img.classList.remove('zoomed');\r\n  document.getElementById('ff6-lightbox-counter').textContent =\r\n    (ff6LightboxIndex + 1) + ' \/ ' + FF6_GIFT_IMAGES.length;\r\n}\r\n\r\nfunction ff6OpenLightbox(idx) {\r\n  ff6LightboxIndex = idx;\r\n  ff6RenderLightbox();\r\n  document.getElementById('ff6-lightbox-overlay').classList.add('show');\r\n}\r\n\r\nfunction ff6CloseLightbox() {\r\n  document.getElementById('ff6-lightbox-overlay').classList.remove('show');\r\n  document.getElementById('ff6-lightbox-img').classList.remove('zoomed');\r\n}\r\n\r\nfunction ff6LightboxNav(dir) {\r\n  ff6LightboxIndex = (ff6LightboxIndex + dir + FF6_GIFT_IMAGES.length) % FF6_GIFT_IMAGES.length;\r\n  ff6RenderLightbox();\r\n}\r\n\r\nfunction ff6ToggleZoom(e) {\r\n  e.stopPropagation();\r\n  document.getElementById('ff6-lightbox-img').classList.toggle('zoomed');\r\n}\r\n\r\nfunction ff6LightboxBgClick(e) {\r\n  if (e.target.id === 'ff6-lightbox-overlay') ff6CloseLightbox();\r\n}\r\n\r\ndocument.addEventListener('keydown', function(e) {\r\n  var overlay = document.getElementById('ff6-lightbox-overlay');\r\n  if (!overlay.classList.contains('show')) return;\r\n  if (e.key === 'Escape') ff6CloseLightbox();\r\n  if (e.key === 'ArrowLeft') ff6LightboxNav(-1);\r\n  if (e.key === 'ArrowRight') ff6LightboxNav(1);\r\n});\r\n\r\n(function() {\r\n  var closeBtn = document.getElementById('ff6-gift-close');\r\n  var slider = document.getElementById('ff6-gift-slider');\r\n  var dots = document.querySelectorAll('#ff6-gift-dots span');\r\n\r\n  closeBtn.addEventListener('click', ff6CloseGiftModal);\r\n\r\n  if (slider && dots.length) {\r\n    slider.addEventListener('scroll', function() {\r\n      var imgWidth = slider.children[0].getBoundingClientRect().width + 12; \/\/ + gap\r\n      var index = Math.round(slider.scrollLeft \/ imgWidth);\r\n      dots.forEach(function(d, i) { d.classList.toggle('active', i === index); });\r\n    });\r\n  }\r\n})();\r\n\r\nfunction ff6Submit() {\r\n  var name    = document.getElementById('ff6-name').value.trim();\r\n  var email   = document.getElementById('ff6-email').value.trim();\r\n  var phone   = document.getElementById('ff6-phone').value.trim();\r\n  var address = document.getElementById('ff6-address').value.trim();\r\n  var btn     = document.getElementById('ff6-btn');\r\n\r\n  ff6Clear();\r\n\r\n  var hasError = false;\r\n\r\n  if (!name || name.length < 2) {\r\n    ff6MarkField('name', 'Please enter your full name.');\r\n    hasError = true;\r\n  }\r\n\r\n  var emailRegex = \/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$\/;\r\n  if (!email || !emailRegex.test(email)) {\r\n    ff6MarkField('email', 'Please enter a valid email address.');\r\n    hasError = true;\r\n  }\r\n\r\n  var digitsOnly = phone.replace(\/\\D\/g, '');\r\n  if (!phone || digitsOnly.length !== 10) {\r\n    ff6MarkField('phone', 'Please enter a valid 10-digit phone number.');\r\n    hasError = true;\r\n  }\r\n\r\n  if (!address || address.length < 5) {\r\n    ff6MarkField('address', 'Please enter a valid address.');\r\n    hasError = true;\r\n  }\r\n\r\n  if (hasError) return;\r\n\r\n  btn.disabled = true;\r\n  ff6ShowMsg('loading', '<span class=\"ff6-spin\"><\/span> Checking & submitting your entry\u2026');\r\n\r\n  var url = FF6_URL\r\n    + '?action=submit'\r\n    + '&name='    + encodeURIComponent(name)\r\n    + '&email='   + encodeURIComponent(email)\r\n    + '&phone='   + encodeURIComponent(phone)\r\n    + '&address=' + encodeURIComponent(address)\r\n    + '&raffle='  + encodeURIComponent(FF6_RAFFLE_1);\r\n\r\n  fetch(url)\r\n    .then(function(res) { return res.json(); })\r\n    .then(function(data) {\r\n      if (data.result === 'success') {\r\n        document.getElementById('ff6-form').style.display = 'none';\r\n        ff6ShowMsg('success',\r\n          '\ud83c\udf89 You\\'re entered in Raffle #1!<br>' +\r\n          '<span style=\"font-size:.85rem;opacity:.8\">Winner announced live at the Sandbar. Good luck!<\/span>'\r\n        );\r\n        ff6Celebrate();\r\n        ff6OpenChest();\r\n      } else if (data.result === 'duplicate') {\r\n        btn.disabled = false;\r\n        ff6MarkField(data.field, data.message);\r\n        ff6ShowMsg('warning',\r\n          '\ud83d\udeab ' + data.message + '<br>' +\r\n          '<span style=\"font-size:.82rem;opacity:.75\">Each person may only enter each raffle once.<\/span>'\r\n        );\r\n      } else {\r\n        btn.disabled = false;\r\n        ff6ShowMsg('error', '\u26a0\ufe0f ' + (data.message || 'Something went wrong. Please try again.'));\r\n      }\r\n    })\r\n    .catch(function(err) {\r\n      btn.disabled = false;\r\n      ff6ShowMsg('error', '\u26a0\ufe0f Could not connect. Please check your connection and try again.');\r\n    });\r\n}\r\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7be8797 e-con-full e-flex e-con e-child\" data-id=\"7be8797\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29b9368 elementor-widget elementor-widget-html\" data-id=\"29b9368\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\"\/>\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\r\n<title>Admin \u2013 Raffle Control Panel<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Oswald:wght@500;700&family=Source+Sans+3:wght@300;400;600&display=swap\" rel=\"stylesheet\"\/>\r\n<style>\r\n  \/* \u2500\u2500 1. ELEMENTOR-PROOF SCOPING \u2500\u2500 *\/\r\n  #ff-admin-fs {\r\n    --red:    #B22234;\r\n    --red-d:  #8B1A27;\r\n    --blue:   #3C3B6E;\r\n    --blue-l: #5558A0;\r\n    --white:  #FFFFFF;\r\n    --bg:     #12111f;\r\n    --card:   #1b1a2e;\r\n    --surf:   #22203a;\r\n    --bord:   rgba(255,255,255,0.08);\r\n    --text:   #e8e6f0;\r\n    --muted:  #6b6b9a;\r\n    --green:  #2e7d52;\r\n    --green-l:#4caf7d;\r\n\r\n    display: none; \r\n    position: fixed;\r\n    inset: 0;\r\n    z-index: 999999;\r\n    background: var(--bg);\r\n    color: var(--text);\r\n    font-family: 'Source Sans 3', sans-serif !important;\r\n    overflow-x: hidden;\r\n    overflow-y: auto;\r\n    text-align: left;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  #ff-admin-fs *, #ff-admin-fs *::before, #ff-admin-fs *::after { \r\n    box-sizing: border-box !important; \r\n    margin: 0; \r\n    padding: 0; \r\n  }\r\n\r\n  #ff-admin-fs h1, #ff-admin-fs h2, #ff-admin-fs h3, \r\n  #ff-admin-fs .oswald-font {\r\n    font-family: 'Oswald', sans-serif !important;\r\n    line-height: 1.2 !important;\r\n    color: var(--white) !important;\r\n    margin: 0 !important;\r\n  }\r\n\r\n  #ff-admin-fs button {\r\n    font-family: 'Oswald', sans-serif !important;\r\n    cursor: pointer !important;\r\n    border: none;\r\n  }\r\n\r\n  \/* \u2500\u2500 2. GLOBAL COMPONENTS \u2500\u2500 *\/\r\n  #ff-admin-fs .usa-bar {\r\n    height: 8px; width: 100%;\r\n    background: repeating-linear-gradient(90deg, var(--red) 0, var(--red) 50px, var(--white) 50px, var(--white) 100px, var(--blue) 100px, var(--blue) 150px);\r\n  }\r\n\r\n  #ff-admin-fs .close-admin-btn {\r\n    position: absolute; top: 15px; right: 20px;\r\n    background: rgba(255,255,255,0.1) !important; color: #fff !important;\r\n    font-size: 1.2rem !important; width: 40px !important; height: 40px !important;\r\n    border-radius: 50% !important; z-index: 1000000;\r\n    transition: background 0.2s;\r\n    display: flex; align-items: center; justify-content: center;\r\n  }\r\n  #ff-admin-fs .close-admin-btn:hover { background: var(--red) !important; }\r\n\r\n  \/* \u2500\u2500 3. LOGIN SCREEN \u2500\u2500 *\/\r\n  #ff-admin-fs .login-wrapper {\r\n    display: flex; align-items: center; justify-content: center;\r\n    min-height: calc(100vh - 8px); padding: 2rem 1rem; width: 100%;\r\n  }\r\n  #ff-admin-fs .login-card-container { width: 100%; max-width: 380px; animation: ffFadeUp 0.4s ease both; }\r\n  \r\n  @keyframes ffFadeUp {\r\n    from { opacity: 0; transform: translateY(18px); }\r\n    to   { opacity: 1; transform: translateY(0); }\r\n  }\r\n\r\n  #ff-admin-fs .login-icon { text-align: center; font-size: 3rem; margin-bottom: 0.5rem; }\r\n  #ff-admin-fs .login-box {\r\n    background: var(--card) !important; border: 1px solid var(--bord) !important;\r\n    border-radius: 8px !important; overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,0.5);\r\n  }\r\n  #ff-admin-fs .login-head { background: var(--blue) !important; padding: 1.5rem !important; text-align: center; }\r\n  #ff-admin-fs .login-head h2 { font-size: 1.5rem !important; letter-spacing: 0.1em !important; text-transform: uppercase; }\r\n  #ff-admin-fs .login-head p { font-size: 0.8rem !important; color: rgba(255,255,255,0.7) !important; margin-top: 0.2rem !important; letter-spacing: 0.05em; }\r\n  \r\n  #ff-admin-fs .login-body { padding: 1.5rem !important; }\r\n  #ff-admin-fs .login-body label {\r\n    font-size: 0.75rem !important; font-weight: 600 !important; letter-spacing: 0.1em !important;\r\n    text-transform: uppercase; color: var(--muted) !important; display: block; margin-bottom: 0.4rem;\r\n  }\r\n  #ff-admin-fs .login-body input {\r\n    background: rgba(255,255,255,0.05) !important; border: 1.5px solid rgba(255,255,255,0.1) !important;\r\n    border-radius: 6px !important; color: var(--text) !important;\r\n    font-family: 'Source Sans 3', sans-serif !important; font-size: 16px !important; \r\n    padding: 0.8rem 1rem !important; width: 100% !important; margin-bottom: 1rem !important;\r\n    outline: none; transition: all 0.2s;\r\n  }\r\n  #ff-admin-fs .login-body input:focus { border-color: var(--red) !important; box-shadow: 0 0 0 3px rgba(178,34,52,0.2) !important; }\r\n  \r\n  #ff-admin-fs .btn-submit {\r\n    width: 100% !important; padding: 1rem !important; background: var(--red) !important; border-radius: 6px !important;\r\n    color: var(--white) !important; font-size: 1.1rem !important; letter-spacing: 0.1em !important;\r\n    text-transform: uppercase; transition: all 0.2s; box-shadow: 0 4px 16px rgba(178,34,52,0.35);\r\n  }\r\n  #ff-admin-fs .btn-submit:hover { background: var(--red-d) !important; transform: translateY(-2px); }\r\n  \r\n  #ff-admin-fs .login-err {\r\n    display: none; margin-top: 1rem !important; padding: 0.8rem !important;\r\n    background: rgba(178,34,52,0.15) !important; border: 1px solid rgba(178,34,52,0.3) !important;\r\n    border-radius: 6px !important; color: #ff8899 !important; font-size: 0.9rem !important;\r\n    font-weight: 600 !important; text-align: center;\r\n  }\r\n\r\n  \/* \u2500\u2500 4. DASHBOARD LAYOUT \u2500\u2500 *\/\r\n  #ff-admin-fs .dashboard-wrapper { display: none; padding: 2rem 1.5rem 5rem; animation: ffFadeUp 0.5s ease both; max-width: 1000px; margin: 0 auto; }\r\n  \r\n  #ff-admin-fs .dash-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }\r\n  #ff-admin-fs .dash-header h1 { font-size: 2rem !important; letter-spacing: 0.05em !important; }\r\n  #ff-admin-fs .dash-header h1 span { color: var(--red) !important; }\r\n  \r\n  #ff-admin-fs .logout-btn {\r\n    padding: 0.6rem 1.2rem !important; background: rgba(178,34,52,0.15) !important;\r\n    border: 1px solid rgba(178,34,52,0.3) !important; border-radius: 6px !important;\r\n    color: #ff8899 !important; font-size: 0.9rem !important; font-family: 'Source Sans 3', sans-serif !important;\r\n    font-weight: 600 !important; transition: all 0.2s;\r\n  }\r\n  #ff-admin-fs .logout-btn:hover { background: rgba(178,34,52,0.3) !important; }\r\n\r\n  #ff-admin-fs .data-panel { display: none; }\r\n  #ff-admin-fs .data-panel.active { display: block; }\r\n\r\n  #ff-admin-fs .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }\r\n  #ff-admin-fs .stat-card {\r\n    background: var(--surf) !important; border: 1px solid var(--bord) !important;\r\n    border-radius: 8px !important; padding: 1.5rem !important; text-align: center;\r\n  }\r\n  #ff-admin-fs .stat-card .num { font-size: 2.5rem !important; margin-bottom: 0.2rem !important; }\r\n  #ff-admin-fs .stat-card .lbl { font-size: 0.75rem !important; letter-spacing: 0.1em !important; text-transform: uppercase; color: var(--muted) !important; }\r\n\r\n  #ff-admin-fs .draw-box {\r\n    background: var(--surf) !important; border: 1px solid var(--bord) !important;\r\n    border-radius: 8px !important; padding: 1.5rem !important; margin-bottom: 1.5rem;\r\n  }\r\n  #ff-admin-fs .draw-box-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }\r\n  #ff-admin-fs .draw-lbl { font-size: 0.75rem !important; font-weight: 600 !important; letter-spacing: 0.15em !important; text-transform: uppercase; color: var(--muted) !important; }\r\n  #ff-admin-fs .draw-title { font-size: 1.2rem !important; margin-top: 0.2rem !important; }\r\n  \r\n  #ff-admin-fs .btn-roll {\r\n    padding: 0.8rem 1.5rem !important; border-radius: 6px !important; font-size: 1rem !important;\r\n    letter-spacing: 0.1em !important; text-transform: uppercase; transition: all 0.2s; white-space: nowrap;\r\n  }\r\n  #ff-admin-fs .btn-roll.blue { background: var(--blue) !important; color: var(--white) !important; box-shadow: 0 4px 16px rgba(60,59,110,0.4); }\r\n  #ff-admin-fs .btn-roll.red { background: var(--red) !important; color: var(--white) !important; box-shadow: 0 4px 16px rgba(178,34,52,0.4); }\r\n  #ff-admin-fs .btn-roll:hover:not(:disabled) { opacity: 0.9 !important; transform: translateY(-2px); }\r\n  #ff-admin-fs .btn-roll:disabled { opacity: 0.5 !important; cursor: not-allowed !important; }\r\n\r\n  #ff-admin-fs .winner-display {\r\n    display: none; margin-top: 1.5rem !important; padding: 1.5rem !important; border-radius: 8px !important;\r\n    border: 2px solid; animation: ffPopIn 0.5s cubic-bezier(0.34,1.56,0.64,1) both;\r\n  }\r\n  @keyframes ffPopIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }\r\n  \r\n  #ff-admin-fs .winner-display.blue-theme { border-color: var(--blue-l) !important; background: rgba(60,59,110,0.18) !important; }\r\n  #ff-admin-fs .winner-display.red-theme { border-color: var(--red) !important; background: rgba(178,34,52,0.12) !important; }\r\n  \r\n  #ff-admin-fs .wd-badge { font-size: 0.75rem !important; font-weight: 700 !important; letter-spacing: 0.15em !important; text-transform: uppercase; margin-bottom: 0.5rem !important; }\r\n  #ff-admin-fs .blue-theme .wd-badge { color: var(--blue-l) !important; }\r\n  #ff-admin-fs .red-theme .wd-badge { color: #ff8899 !important; }\r\n  \r\n  #ff-admin-fs .wd-name { font-size: 2rem !important; margin-bottom: 1rem !important; }\r\n  #ff-admin-fs .wd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.8rem; }\r\n  #ff-admin-fs .wd-grid > div { background: rgba(255,255,255,0.05) !important; border-radius: 6px !important; padding: 0.8rem !important; font-family: 'Source Sans 3', sans-serif !important; }\r\n  #ff-admin-fs .wd-grid .lbl { font-size: 0.7rem !important; letter-spacing: 0.1em !important; text-transform: uppercase; color: var(--muted) !important; margin-bottom: 0.2rem !important; font-weight: 600; }\r\n\r\n  #ff-admin-fs .table-container { background: var(--surf) !important; border: 1px solid var(--bord) !important; border-radius: 8px !important; overflow: hidden; }\r\n  #ff-admin-fs .table-header { padding: 1.2rem !important; border-bottom: 1px solid var(--bord) !important; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }\r\n  #ff-admin-fs .table-header h3 { font-size: 0.9rem !important; letter-spacing: 0.15em !important; text-transform: uppercase; color: var(--muted) !important; }\r\n  \r\n  #ff-admin-fs .table-actions { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; width: 100%; max-width: 400px; }\r\n  #ff-admin-fs .table-actions input {\r\n    flex: 1; min-width: 150px; background: rgba(255,255,255,0.05) !important; border: 1px solid rgba(255,255,255,0.1) !important;\r\n    border-radius: 6px !important; color: var(--text) !important; padding: 0.6rem 0.8rem !important; outline: none;\r\n    font-family: 'Source Sans 3', sans-serif !important; font-size: 16px !important;\r\n  }\r\n  #ff-admin-fs .table-actions input:focus { border-color: var(--blue-l) !important; }\r\n  #ff-admin-fs .btn-refresh {\r\n    padding: 0.6rem 1rem !important; background: rgba(255,255,255,0.05) !important; border: 1px solid var(--bord) !important;\r\n    border-radius: 6px !important; color: var(--text) !important; font-size: 0.85rem !important;\r\n    font-family: 'Source Sans 3', sans-serif !important; font-weight: 600 !important; transition: all 0.2s;\r\n  }\r\n  #ff-admin-fs .btn-refresh:hover { background: rgba(255,255,255,0.1) !important; }\r\n\r\n  #ff-admin-fs .table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }\r\n  #ff-admin-fs table { width: 100% !important; border-collapse: collapse !important; font-size: 0.9rem !important; min-width: 850px; }\r\n  #ff-admin-fs th {\r\n    padding: 1rem !important; text-align: left !important; font-size: 0.75rem !important;\r\n    font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;\r\n    color: var(--muted) !important; border-bottom: 1px solid var(--bord) !important; white-space: nowrap !important;\r\n  }\r\n  #ff-admin-fs td {\r\n    padding: 1rem !important; border-bottom: 1px solid rgba(255,255,255,0.04) !important;\r\n    white-space: nowrap !important; color: var(--text) !important;\r\n  }\r\n  #ff-admin-fs tbody tr:hover td { background: rgba(255,255,255,0.03) !important; }\r\n\r\n  #ff-admin-fs .status-msg { padding: 3rem !important; text-align: center !important; color: var(--muted) !important; font-size: 1rem !important; font-family: 'Source Sans 3', sans-serif !important; }\r\n  \r\n  #ff-admin-fs .loader {\r\n    display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.15);\r\n    border-top-color: var(--text); border-radius: 50%; animation: ffSpin 0.6s linear infinite; vertical-align: middle;\r\n  }\r\n  @keyframes ffSpin { to { transform: rotate(360deg); } }\r\n\r\n  #ff-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 1000000; }\r\n\r\n  #ff-secret-trigger {\r\n    position: fixed; bottom: 0; right: 0;\r\n    width: 70px; height: 70px;\r\n    z-index: 999998; opacity: 0; cursor: default;\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"ff-secret-trigger\"><\/div>\r\n\r\n<div id=\"ff-admin-fs\">\r\n  <button onclick=\"closeAdmin()\" class=\"close-admin-btn\" title=\"Close Admin Panel\">\u2715<\/button>\r\n  <canvas id=\"ff-confetti\"><\/canvas>\r\n  <div class=\"usa-bar\"><\/div>\r\n\r\n  <div id=\"loginScreen\" class=\"login-wrapper\">\r\n    <div class=\"login-card-container\">\r\n      <div class=\"login-box\">\r\n        <div class=\"login-head\">\r\n          <h2 class=\"oswald-font\">Admin Control Panel<\/h2>\r\n          <p>Authorized Personnel Only<\/p>\r\n        <\/div>\r\n        <div class=\"login-body\">\r\n          <label>Password<\/label>\r\n          <input type=\"password\" id=\"pwInput\" placeholder=\"Enter admin password\" onkeydown=\"if(event.key==='Enter') login()\"\/>\r\n          <button class=\"btn-submit\" onclick=\"login()\">Unlock Panel<\/button>\r\n          <div class=\"login-err\" id=\"loginErr\">\u26a0\ufe0f Incorrect password. Try again.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div id=\"dashboard\" class=\"dashboard-wrapper\">\r\n    \r\n    <div class=\"dash-header\">\r\n      <h1 class=\"oswald-font\">Raffle <span>Admin<\/span><\/h1>\r\n      <button class=\"logout-btn\" onclick=\"logout()\">\u2b05 Logout<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"data-panel active\" id=\"panel1\">\r\n      <div class=\"stats-grid\">\r\n        <div class=\"stat-card\">\r\n          <div class=\"num oswald-font\" id=\"count1\" style=\"color:#7B7FC4\">\u2013<\/div>\r\n          <div class=\"lbl\">Total Entries<\/div>\r\n        <\/div>\r\n        <div class=\"stat-card\">\r\n          <div class=\"num oswald-font\" style=\"color:var(--green-l)\">\u2713<\/div>\r\n          <div class=\"lbl\">Duplicates Blocked<\/div>\r\n        <\/div>\r\n        <div class=\"stat-card\">\r\n          <div class=\"num oswald-font\" style=\"color:#f0c97a\">\ud83c\udfaf<\/div>\r\n          <div class=\"lbl\">Active System<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"draw-box\">\r\n        <div class=\"draw-box-header\">\r\n          <div>\r\n            <div class=\"draw-lbl\">Winner Selection \u2014 Raffle #1<\/div>\r\n            <h3 class=\"draw-title oswald-font\">Pick a random winner from Raffle #1<\/h3>\r\n          <\/div>\r\n          <button class=\"btn-roll blue\" id=\"drawBtn1\" onclick=\"drawWinner(1)\">\ud83c\udfb2 Draw Winner<\/button>\r\n        <\/div>\r\n        <div class=\"winner-display blue-theme\" id=\"winner1\">\r\n          <div class=\"wd-badge\">\ud83c\udfc6 Raffle #1 Winner<\/div>\r\n          <div class=\"wd-name oswald-font\" id=\"wName1\"><\/div>\r\n          <div class=\"wd-grid\">\r\n            <div><div class=\"lbl\">Email<\/div><div id=\"wEmail1\"><\/div><\/div>\r\n            <div><div class=\"lbl\">Phone<\/div><div id=\"wPhone1\"><\/div><\/div>\r\n            <div style=\"grid-column: 1 \/ -1;\"><div class=\"lbl\">Address<\/div><div id=\"wAddress1\"><\/div><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"table-container\">\r\n        <div class=\"table-header\">\r\n          <h3 class=\"oswald-font\" id=\"table-title-1\">Recent Entries (Latest 15)<\/h3>\r\n          <div class=\"table-actions\">\r\n            <input type=\"text\" placeholder=\"Search entries...\" oninput=\"filterTable(1, this.value)\"\/>\r\n            <button class=\"btn-refresh\" onclick=\"loadEntries(1)\">\u21bb Refresh<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"table-scroll\">\r\n          <div class=\"status-msg\" id=\"loading1\"><span class=\"loader\"><\/span>&nbsp; Loading entries\u2026<\/div>\r\n          <table id=\"table1\" style=\"display:none\">\r\n            <thead><tr><th>#<\/th><th>Name<\/th><th>Email<\/th><th>Phone<\/th><th>Address<\/th><th>Timestamp<\/th><\/tr><\/thead>\r\n            <tbody id=\"tbody1\"><\/tbody>\r\n          <\/table>\r\n          <div class=\"status-msg\" id=\"empty1\" style=\"display:none\">No entries yet.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  const SCRIPT_URL = \"https:\/\/script.google.com\/macros\/s\/AKfycbwwm3WWfKKQwq_TeAxd8Mju6rPfkb09Y5O7Iu-GGCWPZWiQhsShSJD0DIKOmIvkSIYu\/exec\";\r\n  const ADMIN_PASSWORD = \"Admin@2026\"; \r\n\r\n  let entries = { 1: [] };\r\n\r\n  document.addEventListener('keydown', function(e) {\r\n    if (e.ctrlKey && e.shiftKey && (e.key === 'Q' || e.key === 'q')) {\r\n      const wrapper = document.getElementById('ff-admin-fs');\r\n      if (wrapper.style.display === 'block') { closeAdmin(); } \r\n      else { wrapper.style.display = 'block'; document.body.style.overflow = 'hidden'; }\r\n    }\r\n  });\r\n\r\n  let secretTapCount = 0;\r\n  let secretTapTimer;\r\n  document.getElementById('ff-secret-trigger').addEventListener('click', function(e) {\r\n    e.preventDefault();\r\n    secretTapCount++;\r\n    clearTimeout(secretTapTimer);\r\n    if (secretTapCount >= 3) {\r\n      document.getElementById('ff-admin-fs').style.display = 'block'; \r\n      document.body.style.overflow = 'hidden';\r\n      secretTapCount = 0; \r\n    } else {\r\n      secretTapTimer = setTimeout(() => { secretTapCount = 0; }, 1500);\r\n    }\r\n  });\r\n\r\n  function closeAdmin() {\r\n    document.getElementById('ff-admin-fs').style.display = 'none';\r\n    document.body.style.overflow = ''; \r\n  }\r\n\r\n  function login() {\r\n    const pw = document.getElementById('pwInput').value;\r\n    if (pw === ADMIN_PASSWORD) {\r\n      document.getElementById('loginScreen').style.display = 'none';\r\n      document.getElementById('dashboard').style.display = 'block';\r\n      loadEntries(1);\r\n    } else {\r\n      document.getElementById('loginErr').style.display = 'block';\r\n    }\r\n  }\r\n\r\n  function logout() {\r\n    document.getElementById('loginScreen').style.display = 'flex';\r\n    document.getElementById('dashboard').style.display = 'none';\r\n    document.getElementById('pwInput').value = '';\r\n    document.getElementById('loginErr').style.display = 'none';\r\n  }\r\n\r\n  async function loadEntries(raffle) {\r\n    const loadEl = document.getElementById('loading' + raffle);\r\n    const tableEl = document.getElementById('table' + raffle);\r\n    const emptyEl = document.getElementById('empty' + raffle);\r\n    loadEl.style.display = 'block'; tableEl.style.display = 'none'; emptyEl.style.display = 'none';\r\n    try {\r\n      const res = await fetch(SCRIPT_URL + '?action=entries&raffle=' + raffle);\r\n      const data = await res.json();\r\n      if (data.result === 'success') {\r\n        entries[raffle] = data.entries || [];\r\n        renderTable(raffle, entries[raffle], false);\r\n      } else {\r\n        loadEl.innerHTML = '\u274c Error loading data.';\r\n      }\r\n    } catch {\r\n      loadEl.innerHTML = '\u274c Failed to connect.';\r\n    }\r\n  }\r\n\r\n  function renderTable(raffle, data, isSearch = false) {\r\n    const tableEl = document.getElementById('table' + raffle);\r\n    const emptyEl = document.getElementById('empty' + raffle);\r\n    const countEl = document.getElementById('count' + raffle);\r\n    const tbody = document.getElementById('tbody' + raffle);\r\n    const titleEl = document.getElementById('table-title-' + raffle);\r\n\r\n    countEl.textContent = entries[raffle].length;\r\n    if (data.length === 0) { \r\n      emptyEl.style.display = 'block'; tableEl.style.display = 'none'; \r\n      emptyEl.textContent = isSearch ? 'No matching entries found.' : 'No entries yet.';\r\n      return; \r\n    }\r\n\r\n    let displayData = [...data];\r\n    if (!isSearch) {\r\n      displayData = displayData.reverse().slice(0, 15);\r\n      titleEl.textContent = 'Recent Entries (Latest ' + displayData.length + ')';\r\n    } else {\r\n      if (displayData.length > 50) displayData = displayData.slice(0, 50);\r\n      titleEl.textContent = 'Search Results (' + displayData.length + ')';\r\n    }\r\n\r\n    tbody.innerHTML = displayData.map((e, i) => `\r\n      <tr>\r\n        <td style=\"color:var(--muted)\">${isSearch ? i + 1 : entries[raffle].length - i}<\/td>\r\n        <td style=\"font-weight:600\">${esc(e.name)}<\/td>\r\n        <td>${esc(e.email)}<\/td>\r\n        <td>${esc(e.phone || 'N\/A')}<\/td>\r\n        <td style=\"font-size:.85rem\">${esc(e.address || 'N\/A')}<\/td>\r\n        <td style=\"color:var(--muted);font-size:.8rem\">${fmt(e.timestamp)}<\/td>\r\n      <\/tr>\r\n    `).join('');\r\n    tableEl.style.display = 'table'; emptyEl.style.display = 'none';\r\n  }\r\n\r\n  function filterTable(raffle, q) {\r\n    const ql = q.trim().toLowerCase();\r\n    if (!ql) { renderTable(raffle, entries[raffle], false); return; }\r\n    const pool = [...entries[raffle]].reverse();\r\n    renderTable(raffle, pool.filter(e =>\r\n      (e.name && e.name.toLowerCase().includes(ql)) || \r\n      (e.email && e.email.toLowerCase().includes(ql)) || \r\n      (e.phone && e.phone.includes(ql)) ||\r\n      (e.address && e.address.toLowerCase().includes(ql))\r\n    ), true);\r\n  }\r\n\r\n  function drawWinner(raffle) {\r\n    const pool = entries[raffle];\r\n    if (!pool || pool.length === 0) { alert('No entries loaded yet.'); return; }\r\n    const btn = document.getElementById('drawBtn' + raffle);\r\n    btn.disabled = true; btn.textContent = '\ud83c\udfb2 Drawing\u2026';\r\n    let ticks = 0;\r\n    const id = setInterval(() => {\r\n      const r = pool[Math.floor(Math.random() * pool.length)];\r\n      displayWinner(raffle, r, false);\r\n      ticks++;\r\n      if (ticks >= 20) {\r\n        clearInterval(id);\r\n        const winner = pool[Math.floor(Math.random() * pool.length)];\r\n        displayWinner(raffle, winner, true);\r\n        btn.disabled = false; btn.textContent = '\ud83c\udfb2 Redraw';\r\n        triggerConfetti(raffle);\r\n      }\r\n    }, 80);\r\n  }\r\n\r\n  function displayWinner(raffle, e, final) {\r\n    const card = document.getElementById('winner' + raffle);\r\n    card.style.display = 'block';\r\n    if (final) { card.style.animation = 'none'; card.offsetHeight; card.style.animation = 'ffPopIn 0.5s cubic-bezier(0.34,1.56,0.64,1) both'; }\r\n    document.getElementById('wName' + raffle).textContent = e.name;\r\n    document.getElementById('wEmail' + raffle).textContent = e.email;\r\n    document.getElementById('wPhone' + raffle).textContent = e.phone || 'N\/A';\r\n    document.getElementById('wAddress' + raffle).textContent = e.address || 'N\/A';\r\n  }\r\n\r\n  function triggerConfetti(raffle) {\r\n    const canvas = document.getElementById('ff-confetti');\r\n    const ctx = canvas.getContext('2d');\r\n    canvas.width = window.innerWidth; canvas.height = window.innerHeight;\r\n    const colors = ['#B22234','#FFFFFF','#3C3B6E','#7B7FC4'];\r\n    const pieces = Array.from({length: 150}, () => ({\r\n      x: Math.random() * canvas.width, y: -20, r: 4 + Math.random() * 5, d: 2 + Math.random() * 4,\r\n      drift: (Math.random() - 0.5) * 3, rot: Math.random() * 360, rs: (Math.random() - 0.5) * 8,\r\n      color: colors[Math.floor(Math.random() * colors.length)]\r\n    }));\r\n    let frame = 0;\r\n    (function animate() {\r\n      if (frame > 200) { ctx.clearRect(0, 0, canvas.width, canvas.height); return; }\r\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n      pieces.forEach(p => {\r\n        p.y += p.d; p.x += p.drift; p.rot += p.rs;\r\n        ctx.save(); ctx.translate(p.x, p.y); ctx.rotate(p.rot * Math.PI \/ 180);\r\n        ctx.fillStyle = p.color; ctx.globalAlpha = Math.max(0, 1 - frame \/ 180);\r\n        ctx.fillRect(-p.r \/ 2, -p.r \/ 2, p.r, p.r * 1.5); ctx.restore();\r\n      });\r\n      frame++; requestAnimationFrame(animate);\r\n    })();\r\n  }\r\n\r\n  function esc(s) { return String(s || '').replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;'); }\r\n  function fmt(iso) { \r\n    if (!iso) return 'N\/A';\r\n    try { \r\n      const d = new Date(iso); \r\n      if (isNaN(d)) return String(iso); \r\n      return d.toLocaleDateString() + ' ' + d.toLocaleTimeString([],{hour:'2-digit',minute:'2-digit'}); \r\n    } catch { return String(iso); } \r\n  }\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-374d3dd3 e-flex e-con-boxed e-con e-parent\" data-id=\"374d3dd3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-10e93cfc elementor-widget elementor-widget-heading\" data-id=\"10e93cfc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Turn up for Independence Day ! <BR><br>Drop anchor for live DJs, epic vibes, and your chance to win massive prizes<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-228e57f8 e-flex e-con-boxed e-con e-parent\" data-id=\"228e57f8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a172e94 elementor-widget elementor-widget-text-editor\" data-id=\"a172e94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Copyright \u00a9 2026 Freedom Fest | Website by <a href=\"https:\/\/visiondesigning.com\">Vision Designing<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Days Hours Minutes Seconds Boca Grande Sand Bar July 4th, 2026 10:00 AM \u2013 2:00 PM 2026 Festival Supporters Festival Supporters Hosted By Visit Site Sponsors of the Fest Visit Site Visit Site Visit Site Visit Site Visit Site Visit Site Set the Vibe Want to hear your favorite track? Scan the QR code or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-207","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/pages\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207"}],"version-history":[{"count":503,"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/pages\/207\/revisions"}],"predecessor-version":[{"id":818,"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=\/wp\/v2\/pages\/207\/revisions\/818"}],"wp:attachment":[{"href":"https:\/\/sandbarvibes.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}