{"product_id":"christmas-light","title":"AI DIY LED Pixel String Lights – App-Controlled Custom Light Display","description":"\u003cstyle\u003e\n    .rg-page {\n      --rg-night: #070b24;\n      --rg-violet: #6f3cda;\n      --rg-gold: #ffd79a;\n      width: 100%;\n      max-width: 100%;\n      overflow: hidden;\n      position: relative;\n      isolation: isolate;\n      color: var(--rg-gold);\n      background:\n        radial-gradient(circle at 12% 8%, rgba(255, 215, 154, .33) 0 8%, transparent 29%),\n        radial-gradient(circle at 88% 31%, rgba(111, 60, 218, .88) 0 10%, transparent 35%),\n        radial-gradient(circle at 18% 76%, rgba(111, 60, 218, .58) 0 8%, transparent 32%),\n        linear-gradient(145deg, var(--rg-night) 0%, var(--rg-violet) 51%, var(--rg-night) 100%);\n      background-size: 180% 180%, 198% 198%, 215% 215%, 235% 235%;\n      animation: rgGradient 22s ease-in-out infinite alternate;\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;\n      line-height: 1.65;\n    }\n\n    .rg-page,\n    .rg-page * {\n      box-sizing: border-box;\n    }\n\n    .rg-page * {\n      min-width: 0;\n    }\n\n    .rg-page h1,\n    .rg-page h2,\n    .rg-page h3,\n    .rg-page p,\n    .rg-page figure {\n      margin: 0;\n      overflow-wrap: anywhere;\n    }\n\n    .rg-page img {\n      display: block;\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      object-fit: contain;\n    }\n\n    .rg-shell {\n      width: min(100%, 1080px);\n      margin: 0 auto;\n      padding: 14px 10px 56px;\n      position: relative;\n      z-index: 3;\n    }\n\n    .rg-ambient {\n      position: absolute;\n      inset: 0;\n      overflow: hidden;\n      pointer-events: none;\n      z-index: 0;\n    }\n\n    .rg-ambient::before,\n    .rg-ambient::after {\n      content: \"\";\n      position: absolute;\n      width: 350px;\n      height: 350px;\n      border-radius: 45% 55% 62% 38% \/ 49% 37% 63% 51%;\n      filter: blur(28px);\n      opacity: .34;\n      animation: rgWash 13s ease-in-out infinite;\n    }\n\n    .rg-ambient::before {\n      top: 7%;\n      right: -225px;\n      background: var(--rg-gold);\n    }\n\n    .rg-ambient::after {\n      bottom: 5%;\n      left: -220px;\n      background: var(--rg-violet);\n      animation-delay: -6.5s;\n    }\n\n    .rg-pixel {\n      position: absolute;\n      top: -15px;\n      width: 3px;\n      height: 120px;\n      opacity: .62;\n      background: linear-gradient(to bottom, var(--rg-gold), transparent);\n      animation: rgDrop 7.5s ease-in-out infinite;\n    }\n\n    .rg-pixel::before,\n    .rg-pixel::after {\n      content: \"\";\n      position: absolute;\n      left: 50%;\n      width: 8px;\n      height: 8px;\n      border-radius: 50%;\n      background: var(--rg-gold);\n      box-shadow: 0 0 9px var(--rg-gold), 0 0 22px var(--rg-violet);\n      transform: translateX(-50%);\n      animation: rgBlink 2.4s ease-in-out infinite;\n    }\n\n    .rg-pixel::before { top: 35px; }\n    .rg-pixel::after { top: 91px; animation-delay: -1.2s; }\n    .rg-pixel:nth-child(1) { left: 5%; height: 145px; }\n    .rg-pixel:nth-child(2) { left: 18%; height: 105px; animation-delay: -1.4s; }\n    .rg-pixel:nth-child(3) { left: 34%; height: 165px; animation-delay: -3.1s; }\n    .rg-pixel:nth-child(4) { right: 35%; height: 125px; animation-delay: -4.7s; }\n    .rg-pixel:nth-child(5) { right: 18%; height: 155px; animation-delay: -2.2s; }\n    .rg-pixel:nth-child(6) { right: 5%; height: 112px; animation-delay: -5.8s; }\n\n    .rg-section {\n      margin-top: 18px;\n      overflow: hidden;\n      position: relative;\n      border: 1px solid rgba(255, 215, 154, .38);\n      border-radius: 28px;\n      color: var(--rg-gold);\n      background: linear-gradient(145deg, rgba(7, 11, 36, .98), rgba(111, 60, 218, .82));\n      box-shadow: 0 24px 60px rgba(7, 11, 36, .5);\n      transition: transform .35s ease, box-shadow .35s ease;\n      backdrop-filter: blur(9px);\n    }\n\n    .rg-section::before {\n      content: \"\";\n      position: absolute;\n      top: 0;\n      left: -85%;\n      width: 56%;\n      height: 4px;\n      background: linear-gradient(90deg, transparent, var(--rg-gold), transparent);\n      animation: rgStroke 6.2s ease-in-out infinite;\n      z-index: 4;\n    }\n\n    .rg-section:hover {\n      transform: translateY(-4px);\n      box-shadow: 0 33px 74px rgba(7, 11, 36, .66);\n    }\n\n    .rg-light {\n      color: var(--rg-night);\n      border-color: rgba(255, 215, 154, .72);\n      background: linear-gradient(145deg, rgba(255, 215, 154, .98), rgba(111, 60, 218, .72));\n    }\n\n    .rg-violet {\n      color: var(--rg-gold);\n      border-color: rgba(255, 215, 154, .35);\n      background: linear-gradient(145deg, rgba(111, 60, 218, .98), rgba(7, 11, 36, .96));\n    }\n\n    .rg-copy {\n      padding: 31px 18px 24px;\n      position: relative;\n      z-index: 2;\n      text-align: center;\n    }\n\n    .rg-kicker {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      max-width: 100%;\n      margin-bottom: 14px;\n      padding: 7px 13px;\n      border: 1px solid currentColor;\n      border-radius: 999px;\n      font-size: 10px;\n      font-weight: 900;\n      line-height: 1.35;\n      letter-spacing: .13em;\n      text-transform: uppercase;\n    }\n\n    .rg-kicker::before {\n      content: \"✦\";\n      font-size: 15px;\n      line-height: 1;\n      animation: rgSpark 2.6s ease-in-out infinite;\n    }\n\n    .rg-title,\n    .rg-heading {\n      font-family: Georgia, \"Times New Roman\", serif;\n      letter-spacing: -.045em;\n      text-wrap: balance;\n    }\n\n    .rg-title {\n      font-size: clamp(39px, 10.4vw, 77px);\n      line-height: .97;\n    }\n\n    .rg-heading {\n      font-size: clamp(30px, 8.1vw, 55px);\n      line-height: 1.04;\n    }\n\n    .rg-title span,\n    .rg-heading span {\n      color: var(--rg-gold);\n      background: linear-gradient(90deg, var(--rg-gold), var(--rg-violet), var(--rg-gold));\n      background-size: 220% auto;\n      -webkit-background-clip: text;\n      background-clip: text;\n      -webkit-text-fill-color: transparent;\n      animation: rgTextFlow 5s linear infinite;\n    }\n\n    .rg-light .rg-title span,\n    .rg-light .rg-heading span {\n      background: linear-gradient(90deg, var(--rg-night), var(--rg-violet), var(--rg-night));\n      background-size: 220% auto;\n      -webkit-background-clip: text;\n      background-clip: text;\n      -webkit-text-fill-color: transparent;\n    }\n\n    .rg-subtitle,\n    .rg-lead {\n      max-width: 760px;\n      margin: 17px auto 0 !important;\n    }\n\n    .rg-subtitle {\n      font-size: clamp(16px, 4.5vw, 21px);\n    }\n\n    .rg-lead {\n      font-size: clamp(15px, 4vw, 18px);\n    }\n\n    .rg-badges {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 9px;\n      margin-top: 23px;\n    }\n\n    .rg-badge {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 7px;\n      min-height: 57px;\n      padding: 10px 7px;\n      border: 1px solid rgba(255, 215, 154, .32);\n      border-radius: 15px;\n      background: rgba(255, 215, 154, .08);\n      font-size: 12px;\n      font-weight: 850;\n      line-height: 1.25;\n      backdrop-filter: blur(7px);\n    }\n\n    .rg-badge b {\n      font-size: 18px;\n      line-height: 1;\n      font-family: \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n    }\n\n    .rg-figure,\n    .rg-gallery {\n      padding: 0 9px 9px;\n    }\n\n    .rg-figure img,\n    .rg-gallery figure {\n      border-radius: 20px;\n      background: var(--rg-night);\n      box-shadow: 0 15px 38px rgba(7, 11, 36, .52);\n    }\n\n    .rg-figure img,\n    .rg-gallery img {\n      border-radius: 20px;\n      transition: transform .45s ease, filter .45s ease;\n    }\n\n    .rg-section:hover .rg-figure img,\n    .rg-gallery figure:hover img {\n      transform: scale(1.018);\n      filter: saturate(1.08) brightness(1.03);\n    }\n\n    .rg-hero .rg-figure img {\n      animation: rgImageBreathe 6.7s ease-in-out infinite;\n      transform-origin: center bottom;\n    }\n\n    .rg-ticker {\n      margin-top: 16px;\n      overflow: hidden;\n      border-block: 1px solid rgba(255, 215, 154, .42);\n      color: var(--rg-gold);\n      background: rgba(7, 11, 36, .91);\n      box-shadow: 0 14px 34px rgba(7, 11, 36, .42);\n    }\n\n    .rg-track {\n      display: flex;\n      width: max-content;\n      padding: 11px 0;\n      animation: rgTicker 25s linear infinite;\n    }\n\n    .rg-track span {\n      padding-right: 28px;\n      white-space: nowrap;\n      font-size: 11px;\n      font-weight: 900;\n      letter-spacing: .1em;\n      text-transform: uppercase;\n    }\n\n    .rg-track span::after {\n      content: \"✦\";\n      margin-left: 28px;\n      color: var(--rg-violet);\n      text-shadow: 0 0 11px var(--rg-gold);\n    }\n\n    .rg-chip-row {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 8px;\n      margin-top: 20px;\n    }\n\n    .rg-chip {\n      padding: 8px 12px;\n      border: 1px solid rgba(255, 215, 154, .32);\n      border-radius: 999px;\n      color: var(--rg-gold);\n      background: rgba(255, 215, 154, .09);\n      box-shadow: 0 9px 22px rgba(7, 11, 36, .24);\n      font-size: 12px;\n      font-weight: 850;\n    }\n\n    .rg-light .rg-chip {\n      color: var(--rg-night);\n      border-color: rgba(7, 11, 36, .19);\n      background: rgba(255, 215, 154, .59);\n    }\n\n    .rg-card-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n      margin-top: 24px;\n    }\n\n    .rg-card {\n      min-height: 153px;\n      padding: 18px 12px;\n      border: 1px solid rgba(255, 215, 154, .25);\n      border-radius: 19px;\n      color: var(--rg-gold);\n      background: rgba(7, 11, 36, .55);\n      box-shadow: 0 13px 29px rgba(7, 11, 36, .28);\n      transition: transform .3s ease, background .3s ease;\n    }\n\n    .rg-card:hover {\n      transform: translateY(-6px) rotate(.35deg);\n      background: rgba(7, 11, 36, .79);\n    }\n\n    .rg-card-icon {\n      display: inline-grid;\n      place-items: center;\n      width: 43px;\n      height: 43px;\n      margin-bottom: 10px;\n      border-radius: 15px;\n      color: var(--rg-night);\n      background: linear-gradient(145deg, var(--rg-gold), var(--rg-violet));\n      box-shadow: 0 0 25px rgba(255, 215, 154, .35);\n      font-family: \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n      font-size: 22px;\n    }\n\n    .rg-card h3 {\n      font-size: 14px;\n      line-height: 1.25;\n    }\n\n    .rg-card p {\n      margin-top: 7px !important;\n      font-size: 12px;\n      line-height: 1.48;\n    }\n\n    .rg-gallery {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 10px;\n    }\n\n    .rg-gallery figure {\n      overflow: hidden;\n      position: relative;\n    }\n\n    .rg-caption {\n      position: absolute;\n      left: 10px;\n      right: 10px;\n      bottom: 10px;\n      padding: 8px 11px;\n      border: 1px solid rgba(255, 215, 154, .33);\n      border-radius: 999px;\n      color: var(--rg-gold);\n      background: rgba(7, 11, 36, .84);\n      font-size: 10px;\n      font-weight: 900;\n      line-height: 1.25;\n      letter-spacing: .08em;\n      text-align: center;\n      text-transform: uppercase;\n      backdrop-filter: blur(7px);\n    }\n\n    .rg-scene-grid,\n    .rg-step-grid,\n    .rg-size-grid,\n    .rg-spec-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n      margin-top: 23px;\n    }\n\n    .rg-size-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .rg-scene,\n    .rg-step,\n    .rg-size,\n    .rg-spec {\n      padding: 17px 11px;\n      border: 1px solid rgba(255, 215, 154, .25);\n      border-radius: 18px;\n      color: var(--rg-gold);\n      background: rgba(7, 11, 36, .46);\n      text-align: center;\n      transition: transform .3s ease, background .3s ease;\n    }\n\n    .rg-scene:hover,\n    .rg-step:hover,\n    .rg-size:hover,\n    .rg-spec:hover {\n      transform: translateY(-5px);\n      background: rgba(7, 11, 36, .7);\n    }\n\n    .rg-scene b {\n      display: block;\n      margin-bottom: 7px;\n      font-family: \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n      font-size: 25px;\n      line-height: 1;\n    }\n\n    .rg-scene strong,\n    .rg-step strong,\n    .rg-size strong,\n    .rg-spec strong {\n      display: block;\n      font-size: 13px;\n      line-height: 1.3;\n    }\n\n    .rg-scene span,\n    .rg-step span,\n    .rg-size span,\n    .rg-spec span {\n      display: block;\n      margin-top: 5px;\n      font-size: 11px;\n      line-height: 1.45;\n    }\n\n    .rg-step {\n      position: relative;\n      padding-top: 49px;\n    }\n\n    .rg-step em {\n      position: absolute;\n      top: 12px;\n      left: 50%;\n      display: grid;\n      place-items: center;\n      width: 28px;\n      height: 28px;\n      border-radius: 50%;\n      color: var(--rg-night);\n      background: var(--rg-gold);\n      box-shadow: 0 0 22px rgba(255, 215, 154, .48);\n      font-style: normal;\n      font-size: 12px;\n      font-weight: 950;\n      transform: translateX(-50%);\n    }\n\n    .rg-light .rg-size,\n    .rg-light .rg-spec {\n      color: var(--rg-night);\n      border-color: rgba(7, 11, 36, .18);\n      background: rgba(255, 215, 154, .62);\n      box-shadow: 0 10px 25px rgba(7, 11, 36, .16);\n    }\n\n    .rg-light .rg-size:hover,\n    .rg-light .rg-spec:hover {\n      background: rgba(255, 215, 154, .88);\n    }\n\n    .rg-note {\n      max-width: 760px;\n      margin: 18px auto 0 !important;\n      padding: 13px 14px;\n      border: 1px solid rgba(255, 215, 154, .24);\n      border-radius: 16px;\n      background: rgba(7, 11, 36, .35);\n      font-size: 12px;\n      line-height: 1.55;\n    }\n\n    .rg-light .rg-note {\n      color: var(--rg-night);\n      border-color: rgba(7, 11, 36, .16);\n      background: rgba(255, 215, 154, .56);\n    }\n\n    .rg-faq {\n      padding: 24px 14px 27px;\n    }\n\n    .rg-faq-head {\n      padding: 8px 5px 18px;\n      text-align: center;\n    }\n\n    .rg-faq details {\n      margin-top: 9px;\n      border: 1px solid rgba(255, 215, 154, .24);\n      border-radius: 17px;\n      color: var(--rg-gold);\n      background: rgba(7, 11, 36, .62);\n      box-shadow: 0 10px 24px rgba(7, 11, 36, .32);\n      transition: transform .25s ease;\n    }\n\n    .rg-faq details:hover {\n      transform: translateY(-2px);\n    }\n\n    .rg-faq summary {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 13px;\n      padding: 16px;\n      cursor: pointer;\n      list-style: none;\n      font-weight: 900;\n      line-height: 1.35;\n    }\n\n    .rg-faq summary::-webkit-details-marker {\n      display: none;\n    }\n\n    .rg-faq summary::after {\n      content: \"+\";\n      flex: 0 0 28px;\n      display: grid;\n      place-items: center;\n      width: 28px;\n      height: 28px;\n      border-radius: 50%;\n      color: var(--rg-night);\n      background: var(--rg-gold);\n      font-size: 19px;\n      transition: transform .3s ease;\n    }\n\n    .rg-faq details[open] summary::after {\n      transform: rotate(45deg);\n    }\n\n    .rg-answer {\n      padding: 0 16px 17px;\n      font-size: 13px;\n    }\n\n    .rg-cta {\n      padding: 38px 18px 41px;\n      text-align: center;\n    }\n\n    .rg-button {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 51px;\n      margin-top: 23px;\n      padding: 13px 24px;\n      border: 1px solid rgba(255, 215, 154, .58);\n      border-radius: 999px;\n      color: var(--rg-night) !important;\n      background: var(--rg-gold);\n      box-shadow: 0 0 34px rgba(255, 215, 154, .4);\n      font-size: 13px;\n      font-weight: 950;\n      letter-spacing: .06em;\n      text-decoration: none !important;\n      text-transform: uppercase;\n      animation: rgButton 2.8s ease-in-out infinite;\n      transition: transform .28s ease, box-shadow .28s ease;\n    }\n\n    .rg-button:hover {\n      transform: translateY(-4px) scale(1.02);\n      box-shadow: 0 0 48px rgba(255, 215, 154, .58);\n    }\n\n    @keyframes rgGradient {\n      0% { background-position: 0% 0%, 100% 25%, 0% 100%, 0% 50%; }\n      100% { background-position: 19% 8%, 77% 54%, 30% 74%, 100% 50%; }\n    }\n\n    @keyframes rgWash {\n      0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }\n      50% { transform: translate3d(29px, -25px, 0) rotate(12deg) scale(1.08); }\n    }\n\n    @keyframes rgDrop {\n      0%, 100% { transform: translateY(0); opacity: .37; }\n      50% { transform: translateY(26px); opacity: .72; }\n    }\n\n    @keyframes rgBlink {\n      0%, 100% { opacity: .42; transform: translateX(-50%) scale(.78); }\n      50% { opacity: 1; transform: translateX(-50%) scale(1.25); }\n    }\n\n    @keyframes rgStroke {\n      0%, 16% { left: -85%; opacity: 0; }\n      40% { opacity: 1; }\n      72%, 100% { left: 132%; opacity: 0; }\n    }\n\n    @keyframes rgTextFlow {\n      to { background-position: 220% center; }\n    }\n\n    @keyframes rgSpark {\n      0%, 100% { transform: rotate(0deg) scale(.9); opacity: .65; }\n      50% { transform: rotate(90deg) scale(1.25); opacity: 1; }\n    }\n\n    @keyframes rgImageBreathe {\n      0%, 100% { transform: translateY(0) scale(1); }\n      50% { transform: translateY(-5px) scale(1.008); }\n    }\n\n    @keyframes rgTicker {\n      to { transform: translateX(-50%); }\n    }\n\n    @keyframes rgButton {\n      0%, 100% { box-shadow: 0 0 30px rgba(255, 215, 154, .36); }\n      50% { box-shadow: 0 0 50px rgba(255, 215, 154, .65); }\n    }\n\n    @media (min-width: 640px) {\n      .rg-shell {\n        padding: 22px 18px 71px;\n      }\n\n      .rg-section {\n        margin-top: 24px;\n        border-radius: 33px;\n      }\n\n      .rg-copy {\n        padding: 44px 38px 31px;\n      }\n\n      .rg-badges {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n      }\n\n      .rg-card-grid,\n      .rg-scene-grid,\n      .rg-size-grid,\n      .rg-spec-grid {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n      }\n\n      .rg-step-grid {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n      }\n\n      .rg-size-grid {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n      }\n\n      .rg-gallery {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        gap: 13px;\n        padding: 0 13px 13px;\n      }\n\n      .rg-figure {\n        padding: 0 13px 13px;\n      }\n\n      .rg-figure img,\n      .rg-gallery img,\n      .rg-gallery figure {\n        border-radius: 24px;\n      }\n\n      .rg-faq {\n        padding: 35px 36px 39px;\n      }\n\n      .rg-cta {\n        padding: 52px 38px 57px;\n      }\n    }\n\n    @media (min-width: 900px) {\n      .rg-shell {\n        padding-top: 31px;\n      }\n\n      .rg-copy {\n        padding: 57px 62px 38px;\n      }\n\n      .rg-card {\n        min-height: 168px;\n        padding: 22px 17px;\n      }\n\n      .rg-card h3 {\n        font-size: 16px;\n      }\n\n      .rg-card p {\n        font-size: 13px;\n      }\n\n      .rg-scene,\n      .rg-step,\n      .rg-size,\n      .rg-spec {\n        padding: 20px 14px;\n      }\n\n      .rg-cta {\n        padding: 65px 60px 70px;\n      }\n    }\n\n    @media (hover: none) {\n      .rg-section:hover,\n      .rg-card:hover,\n      .rg-scene:hover,\n      .rg-step:hover,\n      .rg-size:hover,\n      .rg-spec:hover,\n      .rg-faq details:hover {\n        transform: none;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .rg-page,\n      .rg-page *,\n      .rg-page *::before,\n      .rg-page *::after {\n        animation-duration: .01ms !important;\n        animation-iteration-count: 1 !important;\n        scroll-behavior: auto !important;\n        transition-duration: .01ms !important;\n      }\n    }\n  \u003c\/style\u003e\n\u003cdiv class=\"rg-page\" id=\"smart-rgb-curtain-lights-details\"\u003e\n\u003cdiv class=\"rg-ambient\"\u003e\n\u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e\u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e\u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e \u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e\u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e\u003cspan class=\"rg-pixel\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cmain class=\"rg-shell\"\u003e\n\u003csection class=\"rg-section rg-hero\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eLight up every moment\u003c\/div\u003e\n\u003ch1 class=\"rg-title\"\u003eSmart RGB\u003cbr\u003e\u003cspan\u003eCurtain Lights\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003cp class=\"rg-subtitle\"\u003eTurn a window, wall or backdrop into a customizable pixel-light canvas for everyday ambiance, parties and seasonal displays.\u003c\/p\u003e\n\u003cdiv class=\"rg-badges\"\u003e\n\u003cdiv class=\"rg-badge\"\u003e\n\u003cb\u003e📱\u003c\/b\u003e App Control\u003c\/div\u003e\n\u003cdiv class=\"rg-badge\"\u003e\n\u003cb\u003e✍️\u003c\/b\u003e DIY Text \u0026amp; Art\u003c\/div\u003e\n\u003cdiv class=\"rg-badge\"\u003e\n\u003cb\u003e🎵\u003c\/b\u003e Music Sync\u003c\/div\u003e\n\u003cdiv class=\"rg-badge\"\u003e\n\u003cb\u003e🔌\u003c\/b\u003e USB Powered\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 01: Main product overview --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/TikSave.io_7681938098028072205.gif?v=1788776083\" alt=\"\"\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003cdiv class=\"rg-ticker\"\u003e\n\u003cdiv class=\"rg-track\"\u003e\n\u003cspan\u003eApp-Controlled Color\u003c\/span\u003e\u003cspan\u003eDIY Pixel Designs\u003c\/span\u003e\u003cspan\u003eScrolling Messages\u003c\/span\u003e\u003cspan\u003eMusic-Reactive Effects\u003c\/span\u003e\u003cspan\u003eThree Size Options\u003c\/span\u003e \u003cspan\u003eApp-Controlled Color\u003c\/span\u003e\u003cspan\u003eDIY Pixel Designs\u003c\/span\u003e\u003cspan\u003eScrolling Messages\u003c\/span\u003e\u003cspan\u003eMusic-Reactive Effects\u003c\/span\u003e\u003cspan\u003eThree Size Options\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection class=\"rg-section rg-light\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eYour light show, your way\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eShape the atmosphere\u003cbr\u003e\u003cspan\u003efrom your phone\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eUse the mobile app to adjust colors, brightness, animation effects and scrolling text. Switch from a calm bedroom glow to an energetic celebration without rebuilding the display.\u003c\/p\u003e\n\u003cdiv class=\"rg-card-grid\"\u003e\n\u003carticle class=\"rg-card\"\u003e\u003cspan class=\"rg-card-icon\"\u003e🎨\u003c\/span\u003e\n\u003ch3\u003eColor Control\u003c\/h3\u003e\n\u003cp\u003eMatch the light curtain to the room, theme or moment.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"rg-card\"\u003e\u003cspan class=\"rg-card-icon\"\u003e☀️\u003c\/span\u003e\n\u003ch3\u003eBrightness\u003c\/h3\u003e\n\u003cp\u003eFine-tune the intensity for a softer or bolder look.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"rg-card\"\u003e\u003cspan class=\"rg-card-icon\"\u003e✨\u003c\/span\u003e\n\u003ch3\u003eAnimations\u003c\/h3\u003e\n\u003cp\u003eBring static spaces to life with moving effects.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003carticle class=\"rg-card\"\u003e\u003cspan class=\"rg-card-icon\"\u003e💬\u003c\/span\u003e\n\u003ch3\u003eScrolling Text\u003c\/h3\u003e\n\u003cp\u003eCreate greetings, names and custom messages.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 02: Control and feature overview --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/9c52fe69-55e2-4e05-b01b-3a23d0929fbd.png?v=1788772577\" alt=\"\"\u003e\u003cbr\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-violet\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eCreate beyond presets\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eDraw it. Type it.\u003cbr\u003e\u003cspan\u003eWatch it glow.\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eDIY editing lets you turn ideas into illuminated patterns, drawings, emojis and messages. Make a gaming icon, birthday greeting, festive symbol or personalized backdrop that feels unmistakably yours.\u003c\/p\u003e\n\u003cdiv class=\"rg-chip-row\"\u003e\n\u003cspan class=\"rg-chip\"\u003eCustom symbols\u003c\/span\u003e \u003cspan class=\"rg-chip\"\u003ePixel artwork\u003c\/span\u003e \u003cspan class=\"rg-chip\"\u003ePersonal messages\u003c\/span\u003e \u003cspan class=\"rg-chip\"\u003eCreative animations\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 06: DIY pixel art example --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/366db5c4-e3c4-4238-a6c3-f22370f7bd41.png?v=1788773893\" alt=\"\"\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eFeel the beat\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eLet the lights\u003cbr\u003e\u003cspan\u003emove with the music\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eMusic synchronization responds to rhythms and surrounding sound, turning playlists and party moments into a more immersive visual experience.\u003c\/p\u003e\n\u003cdiv class=\"rg-scene-grid\"\u003e\n\u003cdiv class=\"rg-scene\"\u003e\n\u003cb\u003e🎮\u003c\/b\u003e\u003cstrong\u003eGaming Rooms\u003c\/strong\u003e\u003cspan\u003eReactive light behind the action\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-scene\"\u003e\n\u003cb\u003e🎉\u003c\/b\u003e\u003cstrong\u003eParties\u003c\/strong\u003e\u003cspan\u003eMovement that lifts the energy\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-scene\"\u003e\n\u003cb\u003e🎂\u003c\/b\u003e\u003cstrong\u003eBirthdays\u003c\/strong\u003e\u003cspan\u003ePersonalized celebratory scenes\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-scene\"\u003e\n\u003cb\u003e💍\u003c\/b\u003e\u003cstrong\u003eEvents\u003c\/strong\u003e\u003cspan\u003eAn animated photo backdrop\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 04: Multi-pattern home display --\u003e \u003cimg src=\"https:\/\/cdn.newfastcdn.com\/image\/7684dbab47fc1ae7daa16be114400fba63dd1c7b.png\" alt=\"Dynamic Christmas light animations\"\u003e\u003cbr\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-light\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eLESS TANGLE • MORE WOW\u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eSkip the Weekend of\u003cbr\u003e\u003cspan\u003eUntangling Lights\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eUse a single curtain as a focused window display, or arrange multiple sets across separate spaces for a larger visual story. Flexible placement makes it easy to adapt the look to your house or event.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 05: Multiple-set examples --\u003e \u003cimg src=\"https:\/\/cdn.newfastcdn.com\/image\/51d79b72e10f5ab69941bcaa386f47059477c69b.png\" alt=\"Christmas curtain wall light display\"\u003e\u003cbr\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-violet\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eSeason after season\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eA new display for\u003cbr\u003e\u003cspan\u003eevery celebration\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eChange the artwork instead of changing the decor. Create Halloween icons, Christmas scenes, patriotic patterns, birthday messages, Valentine hearts and more from the same adaptable curtain-light format.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-gallery\"\u003e\n\u003cfigure\u003e\u003c!-- IMAGE URL 03: Halloween feature overview --\u003e\n\u003cfigcaption class=\"rg-caption\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/e272aca787c54b148c26b49c1ccf17fc_tplv-fhlh96nyum-crop-webp_800_800.webp?v=1788771446\" alt=\"Outdoor curtain light display showing colorful DIY pixel artwork\" width=\"800\" height=\"800\" loading=\"lazy\"\u003eDIY Halloween patterns\u003c\/figcaption\u003e\n\u003c\/figure\u003e\n\u003cfigure\u003e\u003c!-- IMAGE URL 09: Ghost display scene --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/ChatGPT_Image_2026_9_7_19_01_36_2.png?v=1788857377\" alt=\"\"\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eMore than ordinary string lights\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eFrom simple sparkle to\u003cbr\u003e\u003cspan\u003ea programmable light screen\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eIndividually arranged light points create recognizable images and moving scenes, while app-based DIY tools give you far more freedom than a basic one-pattern decorative strand.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 07: Upgrade comparison --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/16d212f664fc85a3091c4d9a7acce4692e198fe3.jpg?v=1788857252\" alt=\"\"\u003e\u003cbr\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-light\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eThree flexible sizes\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eChoose the canvas that\u003cbr\u003e\u003cspan\u003efits your space\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eSelect a compact square for smaller displays or expand to a larger curtain for windows, walls and event backdrops. Measure the intended area before choosing.\u003c\/p\u003e\n\u003cdiv class=\"rg-size-grid\"\u003e\n\u003cdiv class=\"rg-size\"\u003e\n\u003cstrong\u003e1 × 1 m\u003c\/strong\u003e\u003cspan\u003eApprox. 3.3 × 3.3 ft\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-size\"\u003e\n\u003cstrong\u003e2 × 2 m\u003c\/strong\u003e\u003cspan\u003eApprox. 6.6 × 6.6 ft\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-size\"\u003e\n\u003cstrong\u003e3 × 3 m\u003c\/strong\u003e\u003cspan\u003eApprox. 9.8 × 9.8 ft\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"rg-note\"\u003eMeasure both width and drop height. Slight differences may occur depending on installation spacing and how the strands are arranged.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"rg-figure\"\u003e\u003c!-- IMAGE URL 10: Size guide --\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/4238\/8876\/files\/Untitled_design_2.webp?v=1788772648\" alt=\"Size comparison for 1 by 1, 2 by 2 and 3 by 3 meter curtain lights\" width=\"823\" height=\"823\" loading=\"lazy\"\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-violet\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eSimple setup\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eHang, connect,\u003cbr\u003e\u003cspan\u003ecreate your scene\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eUSB power makes placement more flexible around the home or event space. Connect to a suitable USB source, pair with the app and begin choosing or creating effects.\u003c\/p\u003e\n\u003cp class=\"rg-lead\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0763\/3115\/5645\/files\/ChatGPTImageSep7_2026_04_33_45PM.png?v=1789380706\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"rg-step-grid\"\u003e\n\u003cdiv class=\"rg-step\"\u003e\n\u003cem\u003e1\u003c\/em\u003e\u003cstrong\u003eHang the Curtain\u003c\/strong\u003e\u003cspan\u003eArrange the strands evenly across the chosen area.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-step\"\u003e\n\u003cem\u003e2\u003c\/em\u003e\u003cstrong\u003eConnect USB Power\u003c\/strong\u003e\u003cspan\u003eUse a compatible adapter, power bank or computer.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-step\"\u003e\n\u003cem\u003e3\u003c\/em\u003e\u003cstrong\u003eOpen the App\u003c\/strong\u003e\u003cspan\u003eChoose colors, animations, text or DIY artwork.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"rg-note\"\u003eWhen styling outdoors, protect the USB connection from moisture and follow the supplied setup instructions. A USB power adapter is not listed among the included items.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section\"\u003e\n\u003cdiv class=\"rg-copy\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eWhat arrives\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eThe essentials for your\u003cbr\u003e\u003cspan\u003enext illuminated backdrop\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003eThe product description lists the curtain-light set, USB power cable and user manual—ready for installation with a compatible USB power source.\u003c\/p\u003e\n\u003cp class=\"rg-lead\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0763\/3115\/5645\/files\/51d79b72e10f5ab69941bcaa386f47059477c69b.webp?v=1789380953\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"rg-spec-grid\"\u003e\n\u003cdiv class=\"rg-spec\"\u003e\n\u003cstrong\u003e1 × Light Curtain\u003c\/strong\u003e\u003cspan\u003eYour selected size\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-spec\"\u003e\n\u003cstrong\u003eUSB Power Cable\u003c\/strong\u003e\u003cspan\u003eFlexible power connection\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-spec\"\u003e\n\u003cstrong\u003eUser Manual\u003c\/strong\u003e\u003cspan\u003eSetup and operation guidance\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rg-spec\"\u003e\n\u003cstrong\u003eMobile App\u003c\/strong\u003e\u003cspan\u003eControls supported lighting features\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-faq\"\u003e\n\u003cdiv class=\"rg-faq-head\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eGood to know\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eBright questions,\u003cbr\u003e\u003cspan\u003eclear answers\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cdetails open=\"\"\u003e\n\u003csummary\u003eWhat can I control in the app?\u003c\/summary\u003e\n\u003cdiv class=\"rg-answer\"\u003eThe product page lists color, brightness, lighting effects, animations, scrolling text and DIY display editing as app-controlled features.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCan I make my own patterns?\u003c\/summary\u003e\n\u003cdiv class=\"rg-answer\"\u003eYes. DIY editing supports drawings, pixel-style graphics, emojis, greetings and custom messages.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDo the lights react to music?\u003c\/summary\u003e\n\u003cdiv class=\"rg-answer\"\u003eYes. Music synchronization allows the light effects to respond to rhythms and surrounding sound.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eHow are the curtain lights powered?\u003c\/summary\u003e\n\u003cdiv class=\"rg-answer\"\u003eThey use a USB connection and can work with compatible USB adapters, power banks, computers and other suitable USB sources.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhich size should I choose?\u003c\/summary\u003e\n\u003cdiv class=\"rg-answer\"\u003eMeasure the width and height of your intended wall, window or backdrop, then compare it with the available 1 × 1 m, 2 × 2 m and 3 × 3 m options.\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003csection class=\"rg-section rg-violet rg-cta\"\u003e\n\u003cdiv class=\"rg-kicker\"\u003eMake the moment glow\u003c\/div\u003e\n\u003ch2 class=\"rg-heading\"\u003eYour space is ready for\u003cbr\u003e\u003cspan\u003ea brighter personality\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"rg-lead\"\u003ePick the right size, create your first pattern and turn an ordinary backdrop into an animated expression of your mood.\u003c\/p\u003e\n\u003ca class=\"rg-button\" href=\"#MainContent\"\u003eExplore Size Options\u003c\/a\u003e\u003c\/section\u003e\n\u003c\/main\u003e\n\u003c\/div\u003e","brand":"LYLY","offers":[{"title":"1×1m (3.3×3.3 ft)","offer_id":48442393460925,"sku":"B03058-A","price":45.99,"currency_code":"USD","in_stock":true},{"title":"2×2m (6.6×6.6 ft) 🚛Free shipping","offer_id":48442393493693,"sku":"B03058-B","price":52.99,"currency_code":"USD","in_stock":true},{"title":"3×3m (9.8×9.8 ft) 🚛Free shipping","offer_id":48442393526461,"sku":"B03058-C","price":59.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0763\/3115\/5645\/files\/eee82ee2-2341-4ccb-84a3-9366b270aeb2.png?v=1789465804","url":"https:\/\/valorsnet.us\/products\/christmas-light","provider":"Valors-net","version":"1.0","type":"link"}