{"product_id":"christmas-gift-card-keepsake-frame","title":"💯🔥 50% OFF -🎄Christmas Gift Card Keepsake Frame","description":"\u003c!-- ===== SHOPNOVA SAFE SALE COUNTDOWN + MARQUEE START ===== --\u003e \u003cdiv class=\"sn-sale-wrap\"\u003e\n\u003c!-- COUNTDOWN --\u003e \u003cdiv class=\"sn-cd-stage\"\u003e \u003cdiv class=\"sn-cd-box\"\u003e\n\u003cspan class=\"sn-cd-glow\" aria-hidden=\"true\"\u003e \u003c\/span\u003e \u003cspan class=\"sn-cd-star sn-cd-star-1\" aria-hidden=\"true\"\u003e✦\u003c\/span\u003e \u003cspan class=\"sn-cd-star sn-cd-star-2\" aria-hidden=\"true\"\u003e✧\u003c\/span\u003e \u003cspan class=\"sn-cd-star sn-cd-star-3\" aria-hidden=\"true\"\u003e✦\u003c\/span\u003e \u003c!-- TITLE --\u003e \u003cdiv class=\"sn-cd-title\"\u003e\n\u003cspan class=\"sn-cd-tree\" aria-hidden=\"true\"\u003e🎄\u003c\/span\u003e \u003cspan class=\"sn-cd-title-text\"\u003eChristmas Early Bird Sale\u003c\/span\u003e \u003cspan class=\"sn-cd-fire\" aria-hidden=\"true\"\u003e🔥\u003c\/span\u003e\n\u003c\/div\u003e \u003c!-- SUBTITLE --\u003e \u003cdiv class=\"sn-cd-subtitle\"\u003eFlash Sale · Limited-Time Drops · Up to \u003cstrong\u003e50% OFF\u003c\/strong\u003e\n\u003c\/div\u003e \u003c!-- TIMER --\u003e \u003cdiv class=\"sn-cd-timer\"\u003e\n\u003c!-- HOURS --\u003e \u003cdiv class=\"sn-cd-unit\"\u003e \u003cdiv class=\"sn-cd-number\"\u003e00\u003c\/div\u003e \u003cdiv class=\"sn-cd-label\"\u003eHRS\u003c\/div\u003e \u003c\/div\u003e \u003c!-- MINUTES --\u003e \u003cdiv class=\"sn-cd-unit\"\u003e \u003cdiv class=\"sn-cd-window\"\u003e \u003cdiv class=\"sn-cd-minute-wheel\"\u003e\n\u003cspan class=\"sn-cd-digit\"\u003e09\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e08\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e07\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e06\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e05\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e04\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e03\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e02\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e01\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e00\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e00\u003c\/span\u003e\n\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"sn-cd-label\"\u003eMIN\u003c\/div\u003e \u003c\/div\u003e \u003c!-- SECONDS --\u003e \u003cdiv class=\"sn-cd-unit\"\u003e \u003cdiv class=\"sn-cd-window\"\u003e \u003cdiv class=\"sn-cd-second-wheel\"\u003e\n\u003cspan class=\"sn-cd-digit\"\u003e59\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e58\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e57\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e56\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e55\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e54\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e53\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e52\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e51\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e50\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e49\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e48\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e47\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e46\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e45\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e44\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e43\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e42\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e41\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e40\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e39\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e38\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e37\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e36\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e35\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e34\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e33\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e32\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e31\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e30\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e29\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e28\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e27\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e26\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e25\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e24\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e23\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e22\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e21\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e20\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e19\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e18\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e17\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e16\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e15\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e14\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e13\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e12\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e11\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e10\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e09\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e08\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e07\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e06\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e05\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e04\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e03\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e02\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e01\u003c\/span\u003e \u003cspan class=\"sn-cd-digit\"\u003e00\u003c\/span\u003e \u003c!-- 循环衔接 --\u003e \u003cspan class=\"sn-cd-digit\"\u003e59\u003c\/span\u003e\n\u003c\/div\u003e \u003c!-- 10分钟结束后固定00 --\u003e \u003cdiv class=\"sn-cd-final-second\"\u003e00\u003c\/div\u003e \u003c\/div\u003e \u003cdiv class=\"sn-cd-label\"\u003eSEC\u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e \u003c!-- STATUS --\u003e \u003cdiv class=\"sn-cd-status\"\u003e\n\u003cspan class=\"sn-cd-hourglass\" aria-hidden=\"true\"\u003e⏳\u003c\/span\u003e Hurry — limited-time offer!\u003c\/div\u003e \u003c!-- PARTICLES --\u003e \u003cspan class=\"sn-cd-particle sn-cd-p1\" aria-hidden=\"true\"\u003e \u003c\/span\u003e \u003cspan class=\"sn-cd-particle sn-cd-p2\" aria-hidden=\"true\"\u003e \u003c\/span\u003e \u003cspan class=\"sn-cd-particle sn-cd-p3\" aria-hidden=\"true\"\u003e \u003c\/span\u003e \u003cspan class=\"sn-cd-particle sn-cd-p4\" aria-hidden=\"true\"\u003e \u003c\/span\u003e \u003c!-- SHEEN --\u003e \u003cspan class=\"sn-cd-sheen\" aria-hidden=\"true\"\u003e \u003c\/span\u003e\n\u003c\/div\u003e \u003c\/div\u003e \u003c!-- ========================= --\u003e \u003c!-- SALE MARQUEE --\u003e \u003c!-- ========================= --\u003e \u003cdiv class=\"sn-marquee\"\u003e \u003cdiv class=\"sn-marquee-track\"\u003e \u003cdiv class=\"sn-marquee-group\"\u003e\n\u003cspan class=\"sn-marquee-item\"\u003e 🎁 LIMITED TIME OFFER \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🔥 SAVE 50% \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🎁 LIMITED TIME OFFER \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🔥 SAVE 50% \u003c\/span\u003e\n\u003c\/div\u003e \u003c!-- DUPLICATE FOR SEAMLESS LOOP --\u003e \u003cdiv class=\"sn-marquee-group\" aria-hidden=\"true\"\u003e\n\u003cspan class=\"sn-marquee-item\"\u003e 🎁 LIMITED TIME OFFER \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🔥 SAVE 50% \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🎁 LIMITED TIME OFFER \u003c\/span\u003e \u003cspan class=\"sn-marquee-item\"\u003e 🔥 SAVE 50% \u003c\/span\u003e\n\u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e \u003cstyle\u003e  \/* ==========================================    SHOPNOVA LOCAL RESET ========================================== *\/  .sn-sale-wrap, .sn-sale-wrap * {   box-sizing: border-box !important; }  .sn-sale-wrap {   width: 100% !important;   max-width: 100% !important;    margin: 0 auto !important;   padding: 0 !important;    overflow: hidden !important;    font-family:     -apple-system,     BlinkMacSystemFont,     'Segoe UI',     Roboto,     Arial,     sans-serif !important;    -webkit-text-size-adjust: 100%;   text-size-adjust: 100%; }    \/* ==========================================    COUNTDOWN OUTER ========================================== *\/  .sn-cd-stage {    width: 100% !important;    margin:     12px auto     10px !important;    padding:     0 8px !important;    display: flex !important;    align-items:     center !important;    justify-content:     center !important;    text-align:     center !important;  }    \/* ==========================================    COUNTDOWN BOX ========================================== *\/  .sn-cd-box {    position:     relative !important;    width:     100% !important;    max-width:     450px !important;    margin:     0 auto !important;    padding:     11px 14px     10px !important;    overflow:     hidden !important;    border:     1px solid     rgba(212,175,55,.72) !important;    border-radius:     14px !important;     background:      radial-gradient(       circle at 50% 0%,       rgba(255,220,120,.15),       transparent 38%     ),      linear-gradient(       100deg,       #a81c30 0%,       #b8172d 48%,       #d01b32 100%     ) !important;     color:     #f7e9b9 !important;     box-shadow:      0 6px 18px     rgba(91,11,22,.24),      0 0 18px     rgba(212,175,55,.12) !important;     animation:      snCdBoxGlow     2.5s     ease-in-out     infinite !important;  }    \/* ==========================================    TITLE ========================================== *\/  .sn-cd-title {    position:     relative !important;    z-index:     5 !important;    display:     flex !important;    align-items:     center !important;    justify-content:     center !important;    gap:     7px !important;    margin:     0 !important;    padding:     0 !important;    color:     #fff8dc !important;    font-size:     16px !important;    font-weight:     900 !important;    line-height:     1.15 !important;    text-align:     center !important;  }    \/* ==========================================    TREE \/ FIRE ========================================== *\/  .sn-cd-tree, .sn-cd-fire, .sn-cd-hourglass {    display:     inline-block !important;    flex:     0 0 auto !important;  }   .sn-cd-tree {    animation:      snCdTree     2.3s     ease-in-out     infinite !important;  }   .sn-cd-fire {    animation:      snCdFire     .85s     ease-in-out     infinite !important;  }    \/* ==========================================    SUBTITLE ========================================== *\/  .sn-cd-subtitle {    position:     relative !important;    z-index:     5 !important;    margin:     5px 0 0 !important;    padding:     0 !important;    color:     #f7e9b9 !important;    font-size:     12px !important;    font-weight:     400 !important;    line-height:     1.25 !important;    text-align:     center !important;  }   .sn-cd-subtitle strong {    color:     #ffdf94 !important;    font-weight:     900 !important;    text-shadow:      0 0 10px     rgba(255,215,0,.42) !important;  }    \/* ==========================================    TIMER ========================================== *\/  .sn-cd-timer {    position:     relative !important;    z-index:     5 !important;    width:     100% !important;    display:     flex !important;    align-items:     stretch !important;    justify-content:     center !important;    gap:     8px !important;    margin:     9px 0 0 !important;    padding:     0 !important;  }    \/* ==========================================    TIMER UNIT ========================================== *\/  .sn-cd-unit {    position:     relative !important;    flex:     0 1 76px !important;    min-width:     0 !important;    max-width:     90px !important;    margin:     0 !important;    padding:     7px 10px     6px !important;    overflow:     hidden !important;    border:      1px solid     rgba(255,215,0,.34) !important;    border-radius:     11px !important;    background:      rgba(       76,       0,       11,       .26     ) !important;    box-shadow:      inset     0 0 10px     rgba(0,0,0,.20),      0 4px 10px     rgba(0,0,0,.12) !important;  }    \/* ==========================================    NUMBER ========================================== *\/  .sn-cd-number, .sn-cd-window {    position:     relative !important;    width:     100% !important;    height:     26px !important;    margin:     0 !important;    padding:     0 !important;    overflow:     hidden !important;    color:     #ffdf94 !important;    font-family:      'Courier New',     Courier,     monospace !important;    font-size:     22px !important;    font-weight:     900 !important;    line-height:     26px !important;    text-align:     center !important;    white-space:     nowrap !important;    text-shadow:      0 0 13px     rgba(255,215,0,.35) !important;  }    \/* ==========================================    NUMBER WHEEL ========================================== *\/  .sn-cd-minute-wheel, .sn-cd-second-wheel {    width:     100% !important;    margin:     0 !important;    padding:     0 !important;    transform:     translateY(0);    will-change:     transform;  }   .sn-cd-minute-wheel span, .sn-cd-second-wheel span, .sn-cd-minute-wheel .sn-cd-digit, .sn-cd-second-wheel .sn-cd-digit {    display:     block !important;    width:     100% !important;    height:     26px !important;    margin:     0 !important;    padding:     0 !important;    line-height:     26px !important;    text-align:     center !important;    white-space:     nowrap !important;  }    \/* ==========================================    MINUTE ========================================== *\/  .sn-cd-minute-wheel {    animation:      snCdMinute     600s     steps(10,end)     1     forwards !important;  }    \/* ==========================================    SECOND ========================================== *\/  .sn-cd-second-wheel {    animation:      snCdSecond     60s     steps(60,end)     10     forwards,      snCdHideSecond     .01s     linear     600s     1     forwards !important;  }    \/* ==========================================    FINAL SECOND 00 ========================================== *\/  .sn-cd-final-second {    position:     absolute !important;    inset:     0 !important;    display:     flex !important;    align-items:     center !important;    justify-content:     center !important;    opacity:     0 !important;    color:     #ffdf94 !important;    font-family:      'Courier New',     Courier,     monospace !important;    font-size:     22px !important;    font-weight:     900 !important;    line-height:     26px !important;    text-align:     center !important;     animation:      snCdShowFinal     .01s     linear     600s     1     forwards !important;  }    \/* ==========================================    TIMER LABEL ========================================== *\/  .sn-cd-label {    margin:     2px 0 0 !important;    padding:     0 !important;    color:     #f7e9b9 !important;    font-size:     9px !important;    font-weight:     700 !important;    line-height:     1 !important;    letter-spacing:     1.2px !important;    text-align:     center !important;  }    \/* ==========================================    STATUS ========================================== *\/  .sn-cd-status {    position:     relative !important;    z-index:     5 !important;    margin:     7px 0 0 !important;    padding:     0 !important;    color:     #fff8dc !important;    font-size:     12px !important;    font-weight:     600 !important;    line-height:     1.2 !important;    text-align:     center !important;  }   .sn-cd-hourglass {    margin-right:     3px !important;    animation:      snCdHourglass     1.6s     ease-in-out     infinite !important;  }    \/* ==========================================    STARS ========================================== *\/  .sn-cd-star {    position:     absolute !important;    z-index:     3 !important;    pointer-events:     none !important;    color:     #ffdf94 !important;    text-shadow:      0 0 8px     rgba(255,215,0,.65) !important;    animation:      snCdTwinkle     1.4s     ease-in-out     infinite !important;  }   .sn-cd-star-1 {    left:     8% !important;    top:     9px !important;  }   .sn-cd-star-2 {    left:     50% !important;    top:     4px !important;    animation-delay:     .45s !important;  }   .sn-cd-star-3 {    right:     8% !important;    top:     15px !important;    animation-delay:     .85s !important;  }    \/* ==========================================    PARTICLES ========================================== *\/  .sn-cd-particle {    position:     absolute !important;    z-index:     2 !important;    bottom:     -8px !important;    width:     7px !important;    height:     7px !important;    font-size:     0 !important;    line-height:     0 !important;    overflow:     hidden !important;    border-radius:     50% !important;    pointer-events:     none !important;    background:     rgba(255,223,148,.55) !important;    box-shadow:      0 0 12px     rgba(255,215,0,.55) !important;    animation:      snCdParticle     3s     linear     infinite !important;  }   .sn-cd-p1 {    left:     12% !important;  }   .sn-cd-p2 {    left:     36% !important;    width:     5px !important;    height:     5px !important;    animation-delay:     .7s !important;  }   .sn-cd-p3 {    left:     65% !important;    animation-delay:     1.3s !important;  }   .sn-cd-p4 {    left:     87% !important;    width:     4px !important;    height:     4px !important;    animation-delay:     2s !important;  }    \/* ==========================================    SHEEN ========================================== *\/  .sn-cd-sheen {    position:     absolute !important;    z-index:     2 !important;    top:     -50% !important;    left:     -35% !important;    width:     22% !important;    height:     200% !important;    font-size:     0 !important;    line-height:     0 !important;    overflow:     hidden !important;    opacity:     0 !important;    pointer-events:     none !important;    transform:     skewX(-22deg) !important;    background:      linear-gradient(       90deg,       transparent,       rgba(255,225,150,.14),       transparent     ) !important;    animation:      snCdSheen     3.5s     ease-in-out     infinite !important;  }    \/* ==========================================    GLOW ========================================== *\/  .sn-cd-glow {    position:     absolute !important;    z-index:     1 !important;    inset:     -40% !important;    font-size:     0 !important;    line-height:     0 !important;    overflow:     hidden !important;    pointer-events:     none !important;    background:      radial-gradient(       circle at 30% 40%,       rgba(255,215,0,.12),       transparent 35%     ),      radial-gradient(       circle at 75% 65%,       rgba(255,215,0,.08),       transparent 35%     ) !important;    animation:      snCdGlowMove     5s     ease-in-out     infinite !important;  }    \/* ==========================================    MARQUEE ========================================== *\/  .sn-marquee {    position:     relative !important;    width:     100% !important;    max-width:     100% !important;    height:     48px !important;    margin:     10px 0 0 !important;    padding:     0 !important;    display:     flex !important;    align-items:     center !important;    overflow:     hidden !important;    background:      linear-gradient(       90deg,       #97192a,       #a81c30,       #c4142e     ) !important;    border-top:      1px solid     rgba(255,223,148,.25) !important;    border-bottom:      1px solid     rgba(255,223,148,.25) !important;  }    \/* ==========================================    MARQUEE TRACK ========================================== *\/  .sn-marquee-track {    display:     flex !important;    align-items:     center !important;    width:     max-content !important;    min-width:     max-content !important;    flex:     0 0 auto !important;    will-change:     transform;    animation:      snMarqueeMove     18s     linear     infinite !important;  }    \/* ==========================================    MARQUEE GROUP ========================================== *\/  .sn-marquee-group {    display:     flex !important;    align-items:     center !important;    flex:     0 0 auto !important;    white-space:     nowrap !important;  }    \/* ==========================================    MARQUEE ITEM ========================================== *\/  .sn-marquee-item {    display:     inline-flex !important;    align-items:     center !important;    flex:     0 0 auto !important;    padding:     0 28px !important;    white-space:     nowrap !important;    color:     #ffffff !important;    font-size:     14px !important;    font-weight:     900 !important;    line-height:     48px !important;    letter-spacing:     .05em !important;    text-transform:     uppercase !important;  }    \/* ==========================================    KEYFRAMES ========================================== *\/  @keyframes snCdMinute {    from {     transform:       translateY(0);   }    to {     transform:       translateY(-260px);   }  }    @keyframes snCdSecond {    from {     transform:       translateY(0);   }    to {     transform:       translateY(-1560px);   }  }    @keyframes snCdHideSecond {    from {     opacity:       1;   }    to {     opacity:       0;   }  }    @keyframes snCdShowFinal {    from {     opacity:       0;   }    to {     opacity:       1;   }  }    @keyframes snCdTwinkle {    0%,   100% {      opacity:       .25;      transform:       scale(.75)       rotate(0deg);    }    50% {      opacity:       1;      transform:       scale(1.25)       rotate(18deg);    }  }    @keyframes snCdFire {    0%,   100% {      transform:       translateY(0)       scale(1);    }    50% {      transform:       translateY(-2px)       scale(1.12);    }  }    @keyframes snCdTree {    0%,   100% {      transform:       rotate(-2deg);    }    50% {      transform:       rotate(2deg);    }  }    @keyframes snCdHourglass {    0%,   100% {      transform:       rotate(0deg);    }    50% {      transform:       rotate(180deg);    }  }    @keyframes snCdParticle {    0% {      transform:       translateY(20px)       scale(.7);      opacity:       0;    }    20% {      opacity:       .9;    }    100% {      transform:       translateY(-100px)       scale(1.1);      opacity:       0;    }  }    @keyframes snCdSheen {    0%,   62% {      left:       -35%;      opacity:       0;    }    73% {      opacity:       1;    }    100% {      left:       125%;      opacity:       0;    }  }    @keyframes snCdGlowMove {    0%,   100% {      transform:       translateX(-3%);    }    50% {      transform:       translateX(3%);    }  }    @keyframes snCdBoxGlow {    0%,   100% {      box-shadow:        0 6px 18px       rgba(91,11,22,.24),        0 0 14px       rgba(212,175,55,.10);    }    50% {      box-shadow:        0 7px 20px       rgba(91,11,22,.30),        0 0 22px       rgba(212,175,55,.20);    }  }    @keyframes snMarqueeMove {    from {      transform:       translate3d(0,0,0);    }    to {      transform:       translate3d(-50%,0,0);    }  }    \/* ==========================================    MOBILE ========================================== *\/  @media (max-width:480px) {    .sn-cd-stage {      margin-top:       8px !important;      padding:       0 6px !important;    }     .sn-cd-box {      max-width:       100% !important;      padding:       10px 8px       9px !important;      border-radius:       12px !important;    }     .sn-cd-title {      gap:       5px !important;      font-size:       14px !important;    }     .sn-cd-subtitle {      font-size:       11px !important;    }     .sn-cd-timer {      gap:       5px !important;    }     .sn-cd-unit {      flex:       1 1 0 !important;      max-width:       82px !important;      padding:       6px 5px !important;      border-radius:       9px !important;    }     .sn-cd-number,   .sn-cd-window,   .sn-cd-final-second {      font-size:       20px !important;    }     .sn-cd-status {      font-size:       11px !important;    }     .sn-marquee {      height:       44px !important;    }     .sn-marquee-item {      padding:       0 20px !important;      font-size:       12px !important;      line-height:       44px !important;    }  }    \/* ==========================================    VERY SMALL PHONE ========================================== *\/  @media (max-width:340px) {    .sn-cd-title {      font-size:       13px !important;    }     .sn-cd-subtitle {      font-size:       10px !important;    }     .sn-cd-unit {      padding-left:       4px !important;      padding-right:       4px !important;    }  }    \/* ==========================================    REDUCED MOTION ========================================== *\/  @media (prefers-reduced-motion:reduce) {    .sn-marquee-track,   .sn-cd-box,   .sn-cd-tree,   .sn-cd-fire,   .sn-cd-hourglass,   .sn-cd-star,   .sn-cd-particle,   .sn-cd-sheen,   .sn-cd-glow {      animation:       none !important;    }  }  \u003c\/style\u003e \u003c!-- ===== SHOPNOVA SAFE SALE COUNTDOWN + MARQUEE END ===== --\u003e \u003cstyle\u003e \/* =========================================================    CHRISTMAS GIFT CARD KEEPSAKE HOLDER    FINAL OPTIMIZED LANDING PAGE ========================================================= *\/  #xmas-giftcard-page{   --red:#a92f35;   --red-dark:#782229;   --green:#29463a;   --green2:#385749;   --gold:#c39a5b;   --gold2:#e2c899;    --cream:#fbf6ee;   --cream2:#f4eadf;   --paper:#eee2d3;   --white:#fffdfa;    --text:#392f29;   --muted:#766a61;   --line:#ddcfbf;    width:100%;   margin:0;   padding:0;   overflow:hidden;    background:var(--cream);   color:var(--text);    font-family:     -apple-system,     BlinkMacSystemFont,     'Segoe UI',     Roboto,     Helvetica,     Arial,     sans-serif; }  #xmas-giftcard-page *{   box-sizing:border-box; }  #xmas-giftcard-page img{   display:block;   width:100%;   height:auto; }  #xmas-giftcard-page h1, #xmas-giftcard-page h2, #xmas-giftcard-page h3, #xmas-giftcard-page p{   margin-top:0; }  #xmas-giftcard-page a{   text-decoration:none; }  #xmas-giftcard-page .wrap{   width:100%;   max-width:1080px;   margin:0 auto;   padding:0 20px; }  #xmas-giftcard-page .eyebrow{   margin:0 0 9px;    color:var(--red);    font-size:11px;   line-height:1.35;   font-weight:900;    letter-spacing:2px;   text-transform:uppercase; }  #xmas-giftcard-page .title{   margin:0 0 15px;    color:#302721;    font-family:     Georgia,     'Times New Roman',     serif;    font-size:39px;   line-height:1.08;    letter-spacing:-.6px; }  #xmas-giftcard-page .copy{   margin:0;    color:var(--muted);    font-size:16px;   line-height:1.72; }  #xmas-giftcard-page .head{   max-width:740px;    margin:0 auto 34px;    text-align:center; }  #xmas-giftcard-page .photo{   overflow:hidden;    border:     1px solid rgba(92,67,50,.14);    border-radius:18px;    background:#efe5da;    box-shadow:     0 15px 35px rgba(56,41,30,.13); }  #xmas-giftcard-page .photo img{   width:100%;   height:100%;   object-fit:cover; }   \/* =========================================================    BUTTON ========================================================= *\/  #xmas-giftcard-page .btn{   display:inline-flex;    min-height:54px;    align-items:center;   justify-content:center;    padding:0 28px;    border:0;   border-radius:7px;    background:     linear-gradient(       180deg,       #be3941,       #90252c     );    box-shadow:     0 11px 26px rgba(104,39,39,.24);    color:#fff;    font-size:13px;   font-weight:900;    letter-spacing:.4px;    transition:.2s ease; }  #xmas-giftcard-page .btn:hover{   transform:translateY(-2px); }   \/* =========================================================    HERO ========================================================= *\/  #xmas-giftcard-page .hero{   background:     radial-gradient(       circle at 12% 15%,       rgba(169,47,53,.12),       transparent 33%     ),     linear-gradient(       135deg,       #faf5ed,       #f0e4d6     ); }  #xmas-giftcard-page .hero-grid{   display:grid;    grid-template-columns:.9fr 1.1fr;    max-width:1220px;   min-height:650px;    margin:0 auto;    align-items:center; }  #xmas-giftcard-page .hero-copy{   position:relative;   z-index:3;    padding:55px 34px 55px 28px; }  #xmas-giftcard-page .hero-badge{   display:inline-flex;    margin-bottom:17px;    padding:8px 13px;    border:1px solid #decbbb;   border-radius:999px;    background:rgba(255,255,255,.64);    color:#8d353a;    font-size:10px;   font-weight:900;    letter-spacing:1.3px; }  #xmas-giftcard-page .hero h1{   max-width:525px;    margin:0 0 16px;    color:#332823;    font-family:     Georgia,     'Times New Roman',     serif;    font-size:49px;   line-height:1.03;    letter-spacing:-1px; }  #xmas-giftcard-page .hero h1 span{   color:var(--red); }  #xmas-giftcard-page .hero-copy \u003e p{   max-width:510px;    margin-bottom:22px;    color:#75685f;    font-size:16px;   line-height:1.68; }  #xmas-giftcard-page .hero-pills{   display:flex;   flex-wrap:wrap;    gap:8px;    margin-bottom:25px; }  #xmas-giftcard-page .hero-pill{   padding:8px 11px;    border:1px solid #ddcfc0;   border-radius:7px;    background:#fffaf4;    color:#62544a;    font-size:11px;   font-weight:700; }  #xmas-giftcard-page .hero-note{   margin:11px 0 0 !important;    color:#9a8d83 !important;    font-size:11px !important; }  #xmas-giftcard-page .hero-image{   position:relative;    min-height:650px;   height:100%; }  #xmas-giftcard-page .hero-image img{   width:100%;   height:100%;    object-fit:cover; }  #xmas-giftcard-page .hero-image:before{   content:'';    position:absolute;   z-index:2;    left:0;   top:0;   bottom:0;    width:22%;    background:     linear-gradient(       90deg,       #f2e7da,       rgba(242,231,218,.60),       transparent     ); }   \/* =========================================================    TRUST ========================================================= *\/  #xmas-giftcard-page .trust{   background:#fffaf3;    border-top:1px solid #eadfd2;   border-bottom:1px solid #e2d5c7; }  #xmas-giftcard-page .trust-grid{   display:grid;    grid-template-columns:repeat(4,1fr);    max-width:960px;    margin:auto; }  #xmas-giftcard-page .trust-item{   padding:19px 12px;    text-align:center;    border-right:1px solid #e2d6c8; }  #xmas-giftcard-page .trust-item:last-child{   border-right:0; }  #xmas-giftcard-page .trust-icon{   margin-bottom:6px;    font-size:21px; }  #xmas-giftcard-page .trust-item strong{   display:block;    margin-bottom:3px;    color:#483b33;    font-size:12px; }  #xmas-giftcard-page .trust-item span{   display:block;    color:#8c7e73;    font-size:10px; }   \/* =========================================================    PAIN \/ CORE HOOK ========================================================= *\/  #xmas-giftcard-page .hook{   padding:68px 0;    background:#f5ede3; }  #xmas-giftcard-page .hook-grid{   display:grid;    grid-template-columns:.95fr 1.05fr;    gap:46px;    align-items:center; }  #xmas-giftcard-page .callout{   margin-top:22px;    padding:18px 20px;    border-left:4px solid var(--red);    background:#eadccc;    color:#5e5046;    font-family:     Georgia,     'Times New Roman',     serif;    font-size:17px;   line-height:1.55; }   \/* =========================================================    TWO SIZES ========================================================= *\/  #xmas-giftcard-page .sizes{   padding:70px 0;    background:#fffaf5; }  #xmas-giftcard-page .size-grid{   display:grid;    grid-template-columns:repeat(2,1fr);    gap:18px;    margin-top:34px; }  #xmas-giftcard-page .size-card{   overflow:hidden;    border:1px solid #ded0bf;   border-radius:17px;    background:#fff;    box-shadow:     0 12px 30px rgba(68,49,35,.10); }  #xmas-giftcard-page .size-image{   background:#f2e7da; }  #xmas-giftcard-page .size-image img{   width:100%;   height:auto; }  #xmas-giftcard-page .size-body{   padding:25px 23px 27px; }  #xmas-giftcard-page .size-label{   display:inline-flex;    margin-bottom:12px;    padding:7px 10px;    border-radius:999px;    background:#f3e6e5;    color:#9a3036;    font-size:10px;   font-weight:900;    letter-spacing:1.2px; }  #xmas-giftcard-page .size-card h3{   margin:0 0 9px;    color:#382e28;    font-family:     Georgia,     'Times New Roman',     serif;    font-size:24px; }  #xmas-giftcard-page .size-card p{   margin:0 0 16px;    color:#786c63;    font-size:13px;   line-height:1.65; }  #xmas-giftcard-page .size-tags{   display:flex;   flex-wrap:wrap;    gap:7px; }  #xmas-giftcard-page .size-tags span{   padding:7px 9px;    border-radius:6px;    background:#f5eee6;    color:#63564c;    font-size:10px;   font-weight:700; }   \/* =========================================================    GIFT CARD → PHOTO FRAME    这里只放 A 图 ========================================================= *\/  #xmas-giftcard-page .transform{   padding:70px 0;    background:var(--green); }  #xmas-giftcard-page .transform .title{   color:#fff; }  #xmas-giftcard-page .transform .copy{   color:#c8d2cc; }  #xmas-giftcard-page .transform .eyebrow{   color:#e1bd82; }  #xmas-giftcard-page .transform-grid{   display:grid;    grid-template-columns:.96fr 1.04fr;    gap:46px;    align-items:center; }  #xmas-giftcard-page .transform-photo{   overflow:hidden;    border:     1px solid rgba(255,255,255,.12);    border-radius:18px;    background:#eee4d8;    box-shadow:     0 18px 38px rgba(0,0,0,.18); }  #xmas-giftcard-page .transform-photo img{   display:block;    width:100%;   height:auto;    object-fit:contain; }  #xmas-giftcard-page .transform-badge{   display:inline-flex;    margin-top:22px;    padding:10px 13px;    border:     1px solid rgba(255,255,255,.14);    border-radius:7px;    background:     rgba(255,255,255,.06);    color:#eef4f0;    font-size:11px;   font-weight:800; }   \/* =========================================================    DOUBLE-SIDED ========================================================= *\/  #xmas-giftcard-page .double{   padding:70px 0;    background:#f1e7dc; }  #xmas-giftcard-page .double-grid{   display:grid;    grid-template-columns:1fr 1fr;    gap:46px;    align-items:center; }  #xmas-giftcard-page .feature-list{   margin:22px 0 0;    padding:0;    list-style:none; }  #xmas-giftcard-page .feature-list li{   position:relative;    margin-bottom:12px;    \u003c\/style\u003e","brand":"choooooovy","offers":[{"title":"❤️3-Piece Set | 1 Large + 2 Small","offer_id":67631492727153,"sku":"SS3662555-3件套","price":24.99,"currency_code":"USD","in_stock":true},{"title":"🔥6-Piece Set | 2 Large + 4 Small (Save 10% \u0026Free Shipping)","offer_id":67631492759921,"sku":"SS3662555-3件套*2","price":44.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1024\/2870\/5137\/files\/e7cc16030d1491fd33834d4a86561476ffcdb7bd.webp?v=1791046533","url":"https:\/\/viqzes.com\/products\/christmas-gift-card-keepsake-frame","provider":"viqzes","version":"1.0","type":"link"}