{"product_id":"50-u-s-states-d-c-christmas-ornaments-hometown-keepsakes-meaningful-holiday-gifts","title":"🎄✨ 50 U.S. States \u0026 D.C. Christmas Ornaments – Hometown Keepsakes \u0026 Meaningful Holiday Gifts","description":"\n\u003cstyle\u003e\n\/* ===========================================\n  ALASJOY HOMETOWN CHRISTMAS KEEPSAKES\n  COMPLETE LANDING PAGE - 2026\n  PURE HTML \/ CSS \/ JAVASCRIPT\n  NO LIQUID TAGS REQUIRED\n=========================================== *\/\n\n#aj-hometown-2026 {\n  --cream:#fbf7f0;\n  --paper:#fffdf9;\n  --oat:#f1e7d8;\n  --sand:#e4d1b7;\n  --ink:#42362f;\n  --muted:#786e64;\n  --gold:#be9561;\n  --red:#9b4842;\n  --pine:#455a48;\n  --line:#e7dac8;\n\n  display:block;\n  position:relative;\n  isolation:isolate;\n  container-type:inline-size;\n  max-width:1200px;\n  width:100%;\n  margin:20px auto;\n  overflow:hidden;\n  border-radius:17px;\n  background:var(--cream);\n  color:var(--ink);\n  font:16px\/1.7 Arial,Helvetica,sans-serif;\n}\n\n#aj-hometown-2026,\n#aj-hometown-2026 *,\n#aj-hometown-2026 *::before,\n#aj-hometown-2026 *::after {\n  box-sizing:border-box;\n}\n\n#aj-hometown-2026 h2,\n#aj-hometown-2026 h3,\n#aj-hometown-2026 p {\n  margin:0;\n  padding:0;\n  text-transform:none;\n  letter-spacing:normal;\n  overflow-wrap:break-word;\n  word-break:normal;\n}\n\n#aj-hometown-2026 h2 {\n  font:700 clamp(28px,3.7vw,43px)\/1.2 Georgia,serif;\n  color:var(--ink);\n}\n\n#aj-hometown-2026 h3 {\n  font:700 21px\/1.3 Georgia,serif;\n  color:var(--ink);\n}\n\n#aj-hometown-2026 p {\n  color:var(--muted);\n  font-size:15px;\n  line-height:1.8;\n}\n\n#aj-hometown-2026 img {\n  display:block;\n  width:100%;\n  max-width:100%;\n  border:0;\n  box-shadow:none;\n}\n\n#aj-hometown-2026 .ht-kicker {\n  display:block;\n  margin-bottom:12px;\n  color:#a27a4c;\n  font-size:11px;\n  font-weight:800;\n  line-height:1.5;\n  letter-spacing:1.8px;\n  text-transform:uppercase;\n}\n\n#aj-hometown-2026 .ht-section {\n  padding:46px 20px;\n}\n\n#aj-hometown-2026 .ht-center {\n  text-align:center;\n}\n\n#aj-hometown-2026 .ht-intro {\n  max-width:690px;\n  margin:17px auto 0;\n}\n\n\/* =================================\n   SUBTLE WARM LIGHT EFFECT\n================================= *\/\n\n#aj-hometown-2026 .ht-glow {\n  position:relative;\n  isolation:isolate;\n}\n\n#aj-hometown-2026 .ht-glow::before {\n  content:\"\";\n  position:absolute;\n  inset:12%;\n  z-index:0;\n  border-radius:50%;\n  background:radial-gradient(\n    ellipse,\n    rgba(238,196,130,.24),\n    transparent 72%\n  );\n  filter:blur(22px);\n  pointer-events:none;\n  animation:ht-breathe 7s ease-in-out infinite;\n}\n\n#aj-hometown-2026 .ht-glow \u003e * {\n  position:relative;\n  z-index:1;\n}\n\n@keyframes ht-breathe {\n  0%,100% {opacity:.4;}\n  50% {opacity:1;}\n}\n\n\/* =================================\n   SMALL CHRISTMAS SPARKLES\n================================= *\/\n\n#aj-hometown-2026 .ht-sparkles {\n  position:relative;\n  isolation:isolate;\n  overflow:hidden;\n}\n\n#aj-hometown-2026 .ht-sparkles::before,\n#aj-hometown-2026 .ht-sparkles::after {\n  content:\"\";\n  position:absolute;\n  inset:0;\n  z-index:0;\n  pointer-events:none;\n  background-image:\n    radial-gradient(\n      circle,\n      rgba(255,245,219,.8) 1px,\n      transparent 2px\n    ),\n    radial-gradient(\n      circle,\n      rgba(255,255,255,.65) 1px,\n      transparent 2px\n    );\n  background-size:127px 159px,183px 217px;\n  opacity:.4;\n  animation:ht-fall 33s linear infinite;\n}\n\n#aj-hometown-2026 .ht-sparkles::after {\n  background-size:191px 211px,151px 179px;\n  animation-duration:48s;\n  animation-delay:-16s;\n  opacity:.2;\n}\n\n#aj-hometown-2026 .ht-sparkles \u003e * {\n  position:relative;\n  z-index:1;\n}\n\n@keyframes ht-fall {\n  from {\n    background-position:0 -200px,30px -250px;\n  }\n  to {\n    background-position:25px 440px,-20px 520px;\n  }\n}\n\n\/* =================================\n   DECORATIVE GOLD LINE\n================================= *\/\n\n#aj-hometown-2026 .ht-flourish {\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:14px;\n  margin:20px auto;\n  color:var(--gold);\n  font-size:20px;\n}\n\n#aj-hometown-2026 .ht-flourish::before,\n#aj-hometown-2026 .ht-flourish::after {\n  content:\"\";\n  width:72px;\n  max-width:20%;\n  height:1px;\n  background:var(--gold);\n}\n\n\/* =================================\n   HERO\n================================= *\/\n\n#aj-hometown-2026 .ht-hero {\n  display:grid;\n  grid-template-columns:minmax(0,1fr);\n  gap:28px;\n  align-items:center;\n  padding:23px 17px 39px;\n  background:\n    radial-gradient(\n      ellipse at 100% 0%,\n      rgba(232,210,175,.5),\n      transparent 58%\n    ),\n    radial-gradient(\n      ellipse at 0% 100%,\n      rgba(220,225,208,.23),\n      transparent 60%\n    ),\n    var(--cream);\n}\n\n\/* GALLERY *\/\n\n#aj-hometown-2026 .ht-gallery {\n  min-width:0;\n  width:100%;\n}\n\n#aj-hometown-2026 .ht-gallery-frame {\n  position:relative;\n  width:100%;\n  aspect-ratio:1\/1;\n  overflow:hidden;\n  border:2px solid #e1d0b9;\n  border-radius:14px;\n  background:#f0e6d8;\n  box-shadow:0 14px 33px rgba(65,49,30,.11);\n}\n\n#aj-hometown-2026 .ht-track {\n  display:flex;\n  width:100%;\n  height:100%;\n  overflow-x:auto;\n  overflow-y:hidden;\n  scroll-snap-type:x mandatory;\n  scroll-behavior:smooth;\n  scrollbar-width:none;\n  -webkit-overflow-scrolling:touch;\n}\n\n#aj-hometown-2026 .ht-track::-webkit-scrollbar {\n  display:none;\n}\n\n#aj-hometown-2026 .ht-slide {\n  display:flex;\n  flex:0 0 100%;\n  width:100%;\n  height:100%;\n  align-items:center;\n  justify-content:center;\n  scroll-snap-align:start;\n  scroll-snap-stop:always;\n}\n\n#aj-hometown-2026 .ht-slide img {\n  width:100%;\n  height:100%;\n  object-fit:contain;\n  object-position:center;\n}\n\n#aj-hometown-2026 .ht-gallery-loading {\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  align-items:center;\n  gap:10px;\n  width:100%;\n  height:100%;\n  padding:25px;\n  text-align:center;\n  background:#f5ebdd;\n}\n\n#aj-hometown-2026 .ht-gallery-loading span {\n  font-size:45px;\n}\n\n#aj-hometown-2026 .ht-gallery-loading strong {\n  color:var(--ink);\n  font:700 22px\/1.3 Georgia,serif;\n}\n\n#aj-hometown-2026 .ht-gallery-loading p {\n  font-size:13px;\n}\n\n#aj-hometown-2026 .ht-arrow {\n  position:absolute;\n  top:50%;\n  z-index:5;\n  transform:translateY(-50%);\n  display:none;\n  align-items:center;\n  justify-content:center;\n  width:38px;\n  height:38px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:rgba(255,255,255,.96);\n  color:#654c3b;\n  font-size:27px;\n  line-height:1;\n  box-shadow:0 3px 12px rgba(0,0,0,.13);\n  cursor:pointer;\n}\n\n#aj-hometown-2026 .ht-arrow.visible {\n  display:flex;\n}\n\n#aj-hometown-2026 .ht-prev {\n  left:10px;\n}\n\n#aj-hometown-2026 .ht-next {\n  right:10px;\n}\n\n#aj-hometown-2026 .ht-thumbs {\n  display:flex;\n  gap:8px;\n  width:100%;\n  margin-top:11px;\n  padding-bottom:5px;\n  overflow-x:auto;\n  scrollbar-width:thin;\n}\n\n#aj-hometown-2026 .ht-thumb {\n  flex:0 0 62px;\n  width:62px;\n  height:62px;\n  padding:0;\n  border:2px solid transparent;\n  border-radius:8px;\n  background:#eee4d6;\n  overflow:hidden;\n  cursor:pointer;\n}\n\n#aj-hometown-2026 .ht-thumb.active {\n  border-color:var(--red);\n}\n\n#aj-hometown-2026 .ht-thumb img {\n  width:100%;\n  height:100%;\n  object-fit:contain;\n}\n\n#aj-hometown-2026 .ht-gallery-note {\n  margin-top:8px;\n  text-align:center;\n  font-size:12px;\n}\n\n\/* HERO COPY *\/\n\n#aj-hometown-2026 .ht-hero-copy {\n  min-width:0;\n}\n\n#aj-hometown-2026 .ht-hero-copy h2 {\n  font-size:clamp(30px,3.6vw,44px);\n}\n\n#aj-hometown-2026 .ht-lead {\n  margin-top:17px;\n  font-size:16px;\n}\n\n#aj-hometown-2026 .ht-benefits {\n  display:grid;\n  gap:15px;\n  margin-top:24px;\n}\n\n#aj-hometown-2026 .ht-benefit {\n  display:flex;\n  align-items:flex-start;\n  gap:12px;\n}\n\n#aj-hometown-2026 .ht-benefit-icon {\n  flex:0 0 28px;\n  font-size:23px;\n  line-height:1.4;\n}\n\n#aj-hometown-2026 .ht-benefit strong {\n  display:block;\n  color:#60503f;\n  font-size:15px;\n}\n\n#aj-hometown-2026 .ht-benefit p {\n  font-size:14px;\n}\n\n\/* =================================\n   SENTIMENT RIBBON\n================================= *\/\n\n#aj-hometown-2026 .ht-ribbon {\n  padding:21px 17px;\n  background:\n    linear-gradient(\n      90deg,#f2e7d7,#fff8e8,#e9d7bd\n    );\n  border-top:1px solid #dfcaaa;\n  border-bottom:1px solid #dfcaaa;\n  color:#846244;\n  text-align:center;\n  font:italic 20px\/1.5 Georgia,serif;\n}\n\n\/* =================================\n   CHRISTMAS STORY PANEL\n================================= *\/\n\n#aj-hometown-2026 .ht-story-banner {\n  padding:57px 22px;\n  background:\n    radial-gradient(\n      ellipse at 50% 100%,\n      rgba(239,193,129,.17),\n      transparent 66%\n    ),\n    linear-gradient(\n      145deg,#6f4a40,#513d36,#363d34\n    );\n  text-align:center;\n}\n\n#aj-hometown-2026 .ht-story-inner {\n  max-width:800px;\n  margin:auto;\n  padding:30px 18px;\n  border:1px solid rgba(237,205,156,.55);\n  border-radius:5px;\n}\n\n#aj-hometown-2026 .ht-story-banner h2 {\n  color:#fff8ec;\n  font-size:clamp(30px,4vw,48px);\n}\n\n#aj-hometown-2026 .ht-story-banner .ht-kicker {\n  color:#f1d6a9;\n}\n\n#aj-hometown-2026 .ht-story-banner p {\n  max-width:650px;\n  margin:17px auto 0;\n  color:#f3eae0;\n  font-size:16px;\n}\n\n#aj-hometown-2026 .ht-story-script {\n  display:block;\n  margin-top:24px;\n  color:#f2d9aa;\n  font:italic clamp(19px,2.8vw,27px)\/1.5 Georgia,serif;\n}\n\n\/* =================================\n   POSTCARD MODULE\n================================= *\/\n\n#aj-hometown-2026 .ht-postcard-section {\n  padding:46px 20px;\n  background:\n    radial-gradient(\n      ellipse at 5% 0%,\n      rgba(225,202,165,.35),\n      transparent 60%\n    ),\n    #f4eadc;\n}\n\n#aj-hometown-2026 .ht-postcard {\n  position:relative;\n  max-width:900px;\n  margin:0 auto;\n  padding:36px 27px;\n  border:1px solid #d9c19f;\n  border-radius:8px;\n  background:\n    repeating-linear-gradient(\n      0deg,\n      transparent,\n      transparent 31px,\n      rgba(164,135,95,.065) 32px\n    ),\n    #fffaf0;\n  box-shadow:0 14px 30px #49351d14;\n  overflow:hidden;\n}\n\n#aj-hometown-2026 .ht-postcard::before {\n  content:\"\";\n  position:absolute;\n  right:18px;\n  top:18px;\n  width:60px;\n  height:72px;\n  border:2px dashed #c7a77a;\n  border-radius:3px;\n  opacity:.65;\n}\n\n#aj-hometown-2026 .ht-postcard::after {\n  content:\"✦\";\n  position:absolute;\n  right:35px;\n  top:31px;\n  font-size:29px;\n  color:#b78e58;\n}\n\n#aj-hometown-2026 .ht-postcard-kicker {\n  display:block;\n  margin-bottom:14px;\n  font:italic 17px\/1.4 Georgia,serif;\n  color:#a67b50;\n}\n\n#aj-hometown-2026 .ht-postcard h2 {\n  max-width:720px;\n  padding-right:55px;\n}\n\n#aj-hometown-2026 .ht-postcard p {\n  max-width:680px;\n  margin-top:17px;\n  color:#746559;\n}\n\n#aj-hometown-2026 .ht-signature {\n  display:block;\n  margin-top:23px;\n  color:#a06b4f;\n  font:italic 23px\/1.4 Georgia,serif;\n}\n\n\/* =================================\n   PHOTO STORY\n================================= *\/\n\n#aj-hometown-2026 .ht-story {\n  display:grid;\n  grid-template-columns:minmax(0,1fr);\n  align-items:center;\n  background:#fffdf9;\n}\n\n#aj-hometown-2026 .ht-story-photo {\n  display:none;\n  min-width:0;\n  padding:15px;\n  background:#f4ede3;\n}\n\n#aj-hometown-2026 .ht-story.has-photo .ht-story-photo {\n  display:block;\n}\n\n#aj-hometown-2026 .ht-story-photo img {\n  width:100%;\n  height:auto;\n  aspect-ratio:1\/1;\n  object-fit:contain;\n  border-radius:11px;\n  background:white;\n}\n\n#aj-hometown-2026 .ht-story-copy {\n  min-width:0;\n  padding:33px 23px;\n}\n\n#aj-hometown-2026 .ht-story-copy p {\n  margin-top:16px;\n}\n\n#aj-hometown-2026 .ht-quote {\n  margin-top:21px;\n  padding:17px 18px;\n  border-left:3px solid var(--gold);\n  border-radius:0 8px 8px 0;\n  background:#f8f0e4;\n  color:#95654d;\n  font:italic 19px\/1.5 Georgia,serif;\n}\n\n\/* =================================\n   THREE MEANINGFUL REASONS\n================================= *\/\n\n#aj-hometown-2026 .ht-cards {\n  display:grid;\n  grid-template-columns:1fr;\n  gap:14px;\n  margin-top:27px;\n}\n\n#aj-hometown-2026 .ht-card {\n  padding:25px 22px;\n  background:white;\n  border:1px solid var(--line);\n  border-radius:12px;\n  border-top:3px solid #c9aa7d;\n  box-shadow:0 7px 22px #382b1c0b;\n}\n\n#aj-hometown-2026 .ht-card-icon {\n  display:block;\n  margin-bottom:13px;\n  font-size:29px;\n}\n\n#aj-hometown-2026 .ht-card p {\n  margin-top:10px;\n  font-size:14px;\n}\n\n\/* =================================\n   REAL PRODUCT PHOTO COLLECTION\n================================= *\/\n\n#aj-hometown-2026 .ht-photo-section {\n  display:none;\n  background:linear-gradient(\n    165deg,#e8d9c6,#f4eadc\n  );\n}\n\n#aj-hometown-2026 .ht-photo-section.has-photos {\n  display:block;\n}\n\n#aj-hometown-2026 .ht-photo-grid {\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:11px;\n  margin-top:27px;\n}\n\n#aj-hometown-2026 .ht-photo-tile {\n  display:none;\n  min-width:0;\n  padding:7px;\n  border:1px solid #d9c4a8;\n  border-radius:11px;\n  background:#fffdf8;\n  overflow:hidden;\n}\n\n#aj-hometown-2026 .ht-photo-tile.has-photo {\n  display:block;\n}\n\n#aj-hometown-2026 .ht-photo-tile img {\n  width:100%;\n  height:auto;\n  aspect-ratio:1\/1;\n  object-fit:contain;\n  border-radius:7px;\n}\n\n#aj-hometown-2026 .ht-photo-tile span {\n  display:block;\n  padding:10px 3px 4px;\n  text-align:center;\n  color:#7c644e;\n  font-size:12px;\n  font-weight:700;\n}\n\n\/* =================================\n   CHOOSING YOUR STATE\n================================= *\/\n\n#aj-hometown-2026 .ht-select-section {\n  background:#fffdfa;\n}\n\n#aj-hometown-2026 .ht-steps {\n  display:grid;\n  grid-template-columns:1fr;\n  gap:14px;\n  max-width:980px;\n  margin:27px auto 0;\n}\n\n#aj-hometown-2026 .ht-step {\n  padding:23px;\n  border:1px solid #eadfce;\n  border-radius:12px;\n  background:#f9f4ec;\n}\n\n#aj-hometown-2026 .ht-step-no {\n  display:block;\n  margin-bottom:12px;\n  color:#ba9465;\n  font:700 31px\/1 Georgia,serif;\n}\n\n#aj-hometown-2026 .ht-step p {\n  margin-top:9px;\n  font-size:14px;\n}\n\n\/* =================================\n   PERSONAL GIFT STORY\n================================= *\/\n\n#aj-hometown-2026 .ht-gift {\n  padding:55px 22px;\n  text-align:center;\n  background:\n    radial-gradient(\n      ellipse at 50% 0%,\n      #f3e1c4,\n      transparent 64%\n    ),\n    #f8f1e7;\n}\n\n#aj-hometown-2026 .ht-gift p {\n  max-width:690px;\n  margin:17px auto 0;\n}\n\n#aj-hometown-2026 .ht-gift-quote {\n  display:block;\n  margin-top:23px;\n  color:#956f4b;\n  font:italic clamp(20px,3vw,27px)\/1.5 Georgia,serif;\n}\n\n\/* =================================\n   FAQ\n================================= *\/\n\n#aj-hometown-2026 .ht-faq-section {\n  background:white;\n}\n\n#aj-hometown-2026 .ht-faq {\n  max-width:790px;\n  margin:26px auto 0;\n}\n\n#aj-hometown-2026 .ht-faq details {\n  border-bottom:1px solid var(--line);\n}\n\n#aj-hometown-2026 .ht-faq summary {\n  display:list-item;\n  padding:17px 4px;\n  color:#574638;\n  font-size:15px;\n  line-height:1.5;\n  font-weight:700;\n  cursor:pointer;\n}\n\n#aj-hometown-2026 .ht-faq details p {\n  padding:0 4px 18px;\n  font-size:14px;\n}\n\n\/* =================================\n   FINAL CTA\n================================= *\/\n\n#aj-hometown-2026 .ht-final {\n  padding:59px 22px;\n  background:\n    radial-gradient(\n      ellipse at 50% 100%,\n      rgba(229,179,112,.24),\n      transparent 65%\n    ),\n    linear-gradient(\n      150deg,#765043,#3f4034\n    );\n  text-align:center;\n}\n\n#aj-hometown-2026 .ht-final h2 {\n  color:#fff8ea;\n}\n\n#aj-hometown-2026 .ht-final .ht-kicker {\n  color:#f1d5a6;\n}\n\n#aj-hometown-2026 .ht-final p {\n  max-width:660px;\n  margin:17px auto 0;\n  color:#f2e9df;\n}\n\n#aj-hometown-2026 .ht-button {\n  display:inline-block;\n  width:100%;\n  max-width:360px;\n  margin-top:28px;\n  padding:17px 23px;\n  border:1px solid #f7e4bf;\n  border-radius:9px;\n  background:linear-gradient(\n    120deg,#e4be85,#fff0d0,#d3a36b\n  );\n  color:#554031;\n  font:800 15px\/1.5 Arial,sans-serif;\n  text-align:center;\n  text-decoration:none;\n  box-shadow:0 9px 22px #0002;\n}\n\n#aj-hometown-2026 .ht-button:hover {\n  background:#fff6e6;\n  color:#554031;\n}\n\n#aj-hometown-2026 .ht-final-note {\n  margin-top:12px;\n  font-size:12px;\n}\n\n\/* =================================\n   RESPONSIVE\n================================= *\/\n\n@container (min-width:790px) {\n\n  #aj-hometown-2026 .ht-hero {\n    grid-template-columns:minmax(0,1fr) minmax(0,1fr);\n    gap:39px;\n    padding:39px;\n  }\n\n  #aj-hometown-2026 .ht-story.has-photo {\n    grid-template-columns:minmax(0,1fr) minmax(0,1fr);\n  }\n\n  #aj-hometown-2026 .ht-story-copy {\n    padding:43px;\n  }\n\n  #aj-hometown-2026 .ht-story-photo {\n    padding:20px;\n  }\n\n  #aj-hometown-2026 .ht-section {\n    padding:53px 42px;\n  }\n\n  #aj-hometown-2026 .ht-cards,\n  #aj-hometown-2026 .ht-steps {\n    grid-template-columns:repeat(3,minmax(0,1fr));\n  }\n\n  #aj-hometown-2026 .ht-photo-grid {\n    grid-template-columns:repeat(3,minmax(0,1fr));\n  }\n}\n\n@container (max-width:460px) {\n\n  #aj-hometown-2026 .ht-hero {\n    padding:16px 14px 30px;\n  }\n\n  #aj-hometown-2026 .ht-section {\n    padding:36px 17px;\n  }\n\n  #aj-hometown-2026 .ht-thumb {\n    flex-basis:55px;\n    width:55px;\n    height:55px;\n  }\n\n  #aj-hometown-2026 .ht-story-banner {\n    padding:45px 16px;\n  }\n\n  #aj-hometown-2026 .ht-story-inner {\n    padding:26px 14px;\n  }\n\n  #aj-hometown-2026 .ht-postcard {\n    padding:29px 18px;\n  }\n\n  #aj-hometown-2026 .ht-postcard h2 {\n    padding-right:48px;\n  }\n\n  #aj-hometown-2026 .ht-postcard::before {\n    right:12px;\n    width:47px;\n    height:58px;\n  }\n\n  #aj-hometown-2026 .ht-postcard::after {\n    right:24px;\n    top:30px;\n    font-size:22px;\n  }\n\n  #aj-hometown-2026 .ht-photo-grid {\n    gap:7px;\n  }\n\n  #aj-hometown-2026 .ht-photo-tile {\n    padding:4px;\n  }\n}\n\n@media (prefers-reduced-motion:reduce) {\n  #aj-hometown-2026 *,\n  #aj-hometown-2026 *::before,\n  #aj-hometown-2026 *::after {\n    animation:none!important;\n    transition:none!important;\n  }\n\n  #aj-hometown-2026 .ht-track {\n    scroll-behavior:auto;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv id=\"aj-hometown-2026\"\u003e\n\n  \u003c!-- =================================\n       HERO\n  ================================= --\u003e\n\n  \u003csection class=\"ht-hero\"\u003e\n\n    \u003c!-- LEFT PRODUCT CAROUSEL --\u003e\n\n    \u003cdiv class=\"ht-gallery ht-glow\"\u003e\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"ht-gallery-frame\"\u003e\n\n          \u003cdiv class=\"ht-track\" data-ht-track\u003e\n\n            \u003cdiv class=\"ht-slide\"\u003e\n\n              \u003cdiv class=\"ht-gallery-loading\"\u003e\n\n                \u003cspan\u003e🎄\u003c\/span\u003e\n\n                \u003cstrong\u003e\n                  A Little Piece of Home\n                \u003c\/strong\u003e\n\n                \u003cp data-ht-loading\u003e\n                  Loading your store's\n                  original product photographs...\n                \u003c\/p\u003e\n\n              \u003c\/div\u003e\n\n            \u003c\/div\u003e\n\n          \u003c\/div\u003e\n\n          \u003cbutton type=\"button\" class=\"ht-arrow ht-prev\" data-ht-prev aria-label=\"Previous product photo\"\u003e‹\u003c\/button\u003e\n\n          \u003cbutton type=\"button\" class=\"ht-arrow ht-next\" data-ht-next aria-label=\"Next product photo\"\u003e›\u003c\/button\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"ht-thumbs\" data-ht-thumbs\u003e\u003c\/div\u003e\n\n        \u003cp class=\"ht-gallery-note\"\u003e\n          Swipe to explore the different designs.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003c!-- HERO TEXT --\u003e\n\n    \u003cdiv class=\"ht-hero-copy\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        EVERY HOME HAS A STORY\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        A Little Piece of Home\n        for Your Christmas Tree.\n      \u003c\/h2\u003e\n\n      \u003cp class=\"ht-lead\"\u003e\n        No matter where life takes us,\n        there's always one place\n        that feels like home.\n      \u003c\/p\u003e\n\n      \u003cp class=\"ht-lead\"\u003e\n        The state where you grew up.\n        The place you met someone special.\n        The hometown you still think\n        about every Christmas.\n      \u003c\/p\u003e\n\n      \u003cp class=\"ht-lead\"\u003e\n        Celebrate the places that\n        shaped your story with a\n        meaningful little keepsake\n        you can enjoy during\n        the holiday season.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"ht-benefits\"\u003e\n\n        \u003cdiv class=\"ht-benefit\"\u003e\n\n          \u003cspan class=\"ht-benefit-icon\"\u003e🏡\u003c\/span\u003e\n\n          \u003cdiv\u003e\n            \u003cstrong\u003eA Reminder of Home\u003c\/strong\u003e\n            \u003cp\u003e\n              Celebrate the state that\n              will always hold\n              a special place in your heart.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"ht-benefit\"\u003e\n\n          \u003cspan class=\"ht-benefit-icon\"\u003e🇺🇸\u003c\/span\u003e\n\n          \u003cdiv\u003e\n            \u003cstrong\u003e50 States + Washington, D.C.\u003c\/strong\u003e\n            \u003cp\u003e\n              Choose the location\n              connected to your story.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"ht-benefit\"\u003e\n\n          \u003cspan class=\"ht-benefit-icon\"\u003e🎄\u003c\/span\u003e\n\n          \u003cdiv\u003e\n            \u003cstrong\u003eA Story on Your Christmas Tree\u003c\/strong\u003e\n            \u003cp\u003e\n              Make your festive decorations\n              feel more personal.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"ht-benefit\"\u003e\n\n          \u003cspan class=\"ht-benefit-icon\"\u003e🎁\u003c\/span\u003e\n\n          \u003cdiv\u003e\n            \u003cstrong\u003eA Meaningful Holiday Gift\u003c\/strong\u003e\n            \u003cp\u003e\n              A thoughtful way to say,\n              \"I know how much this\n              place means to you.\"\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- SENTIMENTAL TRANSITION --\u003e\n\n  \u003cdiv class=\"ht-ribbon\"\u003e\n    ✨ Wherever Life Takes You,\n    Home Stays With You.\n  \u003c\/div\u003e\n\n  \u003c!-- =================================\n       CHRISTMAS MEMORY STORY\n  ================================= --\u003e\n\n  \u003csection class=\"ht-story-banner ht-sparkles\"\u003e\n\n    \u003cdiv class=\"ht-story-inner\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        A CHRISTMAS STORY ABOUT HOME\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Every Ornament Has a Memory.\n        This One Has a Place.\n      \u003c\/h2\u003e\n\n      \u003cdiv class=\"ht-flourish\"\u003e✦\u003c\/div\u003e\n\n      \u003cp\u003e\n        The Christmas tree is glowing.\n        The family is together.\n        Familiar songs fill the room.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        And somewhere among the\n        twinkling lights hangs\n        a little reminder of\n        the place where\n        your story began.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"ht-story-script\"\u003e\n        Because home isn't just\n        where you live.\n        It's what you carry with you.\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       POSTCARD STORY\n  ================================= --\u003e\n\n  \u003csection class=\"ht-postcard-section\"\u003e\n\n    \u003cdiv class=\"ht-postcard\"\u003e\n\n      \u003cspan class=\"ht-postcard-kicker\"\u003e\n        A little note from home...\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Dear Home,\n        I Still Think of You\n        Every Christmas.\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        I remember the roads we drove.\n        The places we visited.\n        The people who made\n        the ordinary days\n        feel unforgettable.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Life may have taken me\n        somewhere new, but\n        the memories still\n        feel close.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        And every December,\n        they come back like\n        a favorite Christmas song.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"ht-signature\"\u003e\n        With love, always.\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       PHOTO STORY ONE\n  ================================= --\u003e\n\n  \u003csection class=\"ht-story\" data-ht-story\u003e\n\n    \u003cdiv class=\"ht-story-photo\" data-ht-story-photo=\"1\"\u003e\u003c\/div\u003e\n\n    \u003cdiv class=\"ht-story-copy\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        CHAPTER ONE · WHERE IT ALL BEGAN\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Some Places Stay in\n        Your Heart Forever.\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Maybe it's the state\n        where you spent\n        your childhood.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Maybe it's where your\n        family still gathers\n        around the table\n        every Christmas.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Or maybe it's a place\n        you moved away from,\n        but never stopped loving.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        A small keepsake can bring\n        those memories back\n        in the sweetest way.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"ht-quote\"\u003e\n        \"No matter how far away,\n        part of my heart\n        will always be there.\"\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       THREE REASONS\n  ================================= --\u003e\n\n  \u003csection class=\"ht-section ht-center\"\u003e\n\n    \u003cspan class=\"ht-kicker\"\u003e\n      MORE THAN A CHRISTMAS DECORATION\n    \u003c\/span\u003e\n\n    \u003ch2\u003e\n      One Little Keepsake.\n      So Many Beautiful Memories.\n    \u003c\/h2\u003e\n\n    \u003cp class=\"ht-intro\"\u003e\n      A favorite place can mean\n      something different to everyone.\n      That's what makes\n      this little holiday reminder\n      feel personal.\n    \u003c\/p\u003e\n\n    \u003cdiv class=\"ht-cards\"\u003e\n\n      \u003cdiv class=\"ht-card\"\u003e\n\n        \u003cspan class=\"ht-card-icon\"\u003e❤️\u003c\/span\u003e\n\n        \u003ch3\u003eThe Place You Call Home\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Celebrate your roots\n          and remember the people\n          and places that made\n          you who you are.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-card\"\u003e\n\n        \u003cspan class=\"ht-card-icon\"\u003e🧳\u003c\/span\u003e\n\n        \u003ch3\u003eThe Place You Once Lived\u003c\/h3\u003e\n\n        \u003cp\u003e\n          A sweet reminder\n          of a previous home,\n          a big move, or\n          a wonderful chapter\n          of your life.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-card\"\u003e\n\n        \u003cspan class=\"ht-card-icon\"\u003e🎁\u003c\/span\u003e\n\n        \u003ch3\u003eThe Place Someone Misses\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Surprise someone\n          with a thoughtful\n          reminder of the state\n          they still hold\n          close to their heart.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       REAL PRODUCT PHOTO GRID\n  ================================= --\u003e\n\n  \u003csection class=\"ht-section ht-photo-section\" data-ht-photo-section\u003e\n\n    \u003cdiv class=\"ht-center\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        THE BEAUTY OF PERSONAL MEMORIES\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Different Places.\n        Different Stories.\n        The Same Christmas Feeling.\n      \u003c\/h2\u003e\n\n      \u003cp class=\"ht-intro\"\u003e\n        Discover the available\n        designs and find\n        the location that\n        means something special\n        to you or someone you love.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ht-photo-grid\"\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"2\"\u003e\n        \u003cspan\u003eBeautiful Holiday Details\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"3\"\u003e\n        \u003cspan\u003eA Meaningful Little Keepsake\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"4\"\u003e\n        \u003cspan\u003eMemories Worth Celebrating\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"5\"\u003e\n        \u003cspan\u003eInspired by Places We Love\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"6\"\u003e\n        \u003cspan\u003eFestive Design Details\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-photo-tile\" data-ht-extra=\"7\"\u003e\n        \u003cspan\u003eFind the Place in Your Story\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       HOW TO CHOOSE\n  ================================= --\u003e\n\n  \u003csection class=\"ht-section ht-select-section\"\u003e\n\n    \u003cdiv class=\"ht-center\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        FIND YOUR LITTLE PIECE OF HOME\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Which State Tells\n        Your Christmas Story?\n      \u003c\/h2\u003e\n\n      \u003cp class=\"ht-intro\"\u003e\n        Think of the places\n        that matter most.\n        Your hometown.\n        Your new home.\n        Or the place where\n        beautiful memories began.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ht-steps\"\u003e\n\n      \u003cdiv class=\"ht-step\"\u003e\n\n        \u003cspan class=\"ht-step-no\"\u003e01\u003c\/span\u003e\n\n        \u003ch3\u003eChoose Your State\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Explore the available\n          state and Washington, D.C.\n          options in the product\n          selection area above.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-step\"\u003e\n\n        \u003cspan class=\"ht-step-no\"\u003e02\u003c\/span\u003e\n\n        \u003ch3\u003eThink of Your Story\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Choose a place that\n          represents your roots,\n          a favorite memory,\n          or someone special.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"ht-step\"\u003e\n\n        \u003cspan class=\"ht-step-no\"\u003e03\u003c\/span\u003e\n\n        \u003ch3\u003eMake It a Christmas Memory\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Add it to your\n          holiday decorations\n          or give it to someone\n          who will understand\n          exactly what it means.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       FAMILY STORY TWO\n  ================================= --\u003e\n\n  \u003csection class=\"ht-story\" data-ht-story\u003e\n\n    \u003cdiv class=\"ht-story-copy\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        CHAPTER TWO · THE CHRISTMAS TREE\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Every Year, the Tree\n        Tells Our Family Story.\n      \u003c\/h2\u003e\n\n      \u003cp\u003e\n        Some ornaments remind us\n        of childhood.\n        Others celebrate a wedding,\n        a new home, or\n        a favorite vacation.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        Each year, we take them\n        out of their boxes and\n        remember the little\n        moments behind them.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        A keepsake connected\n        to home can become\n        one more meaningful\n        part of that tradition.\n      \u003c\/p\u003e\n\n      \u003cdiv class=\"ht-quote\"\u003e\n        \"This one reminds me\n        of where we came from.\"\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ht-story-photo\" data-ht-story-photo=\"8\"\u003e\u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       CHRISTMAS GIFT SECTION\n  ================================= --\u003e\n\n  \u003csection class=\"ht-gift\"\u003e\n\n    \u003cdiv\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        A SMALL GIFT WITH A BEAUTIFUL MEANING\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Some Gifts Say More\n        Than Words Ever Could.\n      \u003c\/h2\u003e\n\n      \u003cdiv class=\"ht-flourish\"\u003e✦\u003c\/div\u003e\n\n      \u003cp\u003e\n        For someone who moved\n        far from home.\n        For a college student\n        missing familiar places.\n        For a friend beginning\n        a new chapter.\n      \u003c\/p\u003e\n\n      \u003cp\u003e\n        For parents, grandparents,\n        siblings, and loved ones\n        who carry beautiful\n        memories of a special\n        place in their hearts.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"ht-gift-quote\"\u003e\n        \"I saw this and thought\n        of home... and of you.\"\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       FAQ\n  ================================= --\u003e\n\n  \u003csection class=\"ht-section ht-faq-section\"\u003e\n\n    \u003cdiv class=\"ht-center\"\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        GOOD TO KNOW\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        A Few Things Before\n        You Choose Yours.\n      \u003c\/h2\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"ht-faq\"\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          Can I choose a specific state?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          The collection is presented\n          with designs for the\n          50 U.S. states and\n          Washington, D.C.\n          Please select your preferred\n          option from the choices\n          currently available\n          in the store.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          Does one order include all 51 designs?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          The collection offers\n          state and D.C. designs.\n          This does not mean\n          every design is included\n          in one purchase.\n          Please review the selected\n          variant, quantity, and\n          order details before checkout.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          Can I add a custom name or date?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          Personalized text\n          should only be expected\n          if the selected product\n          option specifically offers it.\n          Check the available\n          choices before ordering.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          What is it made from?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          Please review the current\n          store specifications\n          for the confirmed material,\n          dimensions, finish,\n          and hanging accessories.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          Is it a thoughtful gift for someone who moved away?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          Absolutely as a gift idea.\n          A state-themed Christmas\n          keepsake can be a meaningful\n          reminder of someone's\n          hometown, family roots,\n          or favorite place.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n      \u003cdetails\u003e\n\n        \u003csummary\u003e\n          When will my order arrive?\n        \u003c\/summary\u003e\n\n        \u003cp\u003e\n          Please check the store's\n          current shipping estimates\n          and checkout information,\n          especially if you're\n          ordering for Christmas.\n        \u003c\/p\u003e\n\n      \u003c\/details\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n  \u003c!-- =================================\n       ONLY BOTTOM CTA\n  ================================= --\u003e\n\n  \u003csection class=\"ht-final ht-sparkles\"\u003e\n\n    \u003cdiv\u003e\n\n      \u003cspan class=\"ht-kicker\"\u003e\n        A LITTLE PIECE OF HOME THIS CHRISTMAS\n      \u003c\/span\u003e\n\n      \u003ch2\u003e\n        Some Places Never\n        Leave Your Heart.\n      \u003c\/h2\u003e\n\n      \u003cdiv class=\"ht-flourish\"\u003e✦\u003c\/div\u003e\n\n      \u003cp\u003e\n        Celebrate where you came from.\n        Remember where you've been.\n        Keep the people and places\n        you love a little closer\n        this Christmas.\n      \u003c\/p\u003e\n\n      \u003ca href=\"#\" class=\"ht-button\" data-ht-top\u003e\n        Find Your Piece of Home ↑\n      \u003c\/a\u003e\n\n      \u003cp class=\"ht-final-note\"\u003e\n        Return to the top\n        to explore available designs.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n\n  function initHometown(){\n\n    var root=document.getElementById(\n      'aj-hometown-2026'\n    );\n\n    if(!root || root.dataset.ready==='1'){\n      return;\n    }\n\n    root.dataset.ready='1';\n\n    var track=root.querySelector(\n      '[data-ht-track]'\n    );\n\n    var thumbsBox=root.querySelector(\n      '[data-ht-thumbs]'\n    );\n\n    var prev=root.querySelector(\n      '[data-ht-prev]'\n    );\n\n    var next=root.querySelector(\n      '[data-ht-next]'\n    );\n\n    var topLink=root.querySelector(\n      '[data-ht-top]'\n    );\n\n    var slides=[];\n    var current=0;\n    var timer=null;\n\n    \/* IMAGE SOURCE HANDLING *\/\n\n    function normalize(item){\n\n      var url='';\n\n      if(typeof item==='string'){\n        url=item;\n      }else if(item \u0026\u0026 typeof item==='object'){\n        url=item.src || item.url || '';\n      }\n\n      if(!url) return '';\n\n      try{\n        return new URL(\n          url,\n          window.location.origin\n        ).href;\n      }catch(e){\n        return '';\n      }\n    }\n\n    function unique(urls){\n\n      var seen={};\n\n      return urls.filter(function(url){\n\n        if(!url) return false;\n\n        var key=url.split('?')[0];\n\n        if(seen[key]) return false;\n\n        seen[key]=true;\n        return true;\n\n      });\n    }\n\n    function verify(src){\n\n      return new Promise(function(resolve){\n\n        var image=new Image();\n\n        image.onload=function(){\n          resolve(src);\n        };\n\n        image.onerror=function(){\n          resolve(null);\n        };\n\n        image.src=src;\n\n      });\n    }\n\n    \/* CAROUSEL *\/\n\n    function refreshThumbs(){\n\n      thumbsBox.querySelectorAll(\n        '.ht-thumb'\n      ).forEach(function(button,index){\n\n        var active=index===current;\n\n        button.classList.toggle(\n          'active',\n          active\n        );\n\n        button.setAttribute(\n          'aria-pressed',\n          active?'true':'false'\n        );\n\n      });\n    }\n\n    function show(index){\n\n      if(!slides.length) return;\n\n      current=(\n        index+slides.length\n      )%slides.length;\n\n      track.scrollTo({\n        left:current*track.clientWidth,\n        behavior:'smooth'\n      });\n\n      refreshThumbs();\n    }\n\n    function stopAuto(){\n\n      if(timer!==null){\n        clearInterval(timer);\n        timer=null;\n      }\n    }\n\n    function startAuto(){\n\n      stopAuto();\n\n      if(slides.length\u003c2) return;\n\n      if(window.matchMedia(\n        '(prefers-reduced-motion: reduce)'\n      ).matches){\n        return;\n      }\n\n      timer=setInterval(function(){\n\n        if(!document.hidden){\n          show(current+1);\n        }\n\n      },4100);\n    }\n\n    function createGallery(images){\n\n      if(!images.length) return;\n\n      stopAuto();\n\n      track.innerHTML='';\n      thumbsBox.innerHTML='';\n      slides=[];\n      current=0;\n\n      images.slice(0,8).forEach(function(src,index){\n\n        var slide=document.createElement('div');\n        slide.className='ht-slide';\n\n        var img=document.createElement('img');\n\n        img.src=src;\n\n        img.alt=\n          'State Christmas keepsake design '+\n          (index+1);\n\n        img.loading=index===0?'eager':'lazy';\n\n        slide.appendChild(img);\n        track.appendChild(slide);\n        slides.push(slide);\n\n        var button=document.createElement('button');\n        button.type='button';\n        button.className='ht-thumb';\n\n        button.setAttribute(\n          'aria-label',\n          'View photo '+(index+1)\n        );\n\n        var thumb=document.createElement('img');\n\n        thumb.src=src;\n        thumb.alt='';\n        thumb.loading='lazy';\n\n        button.appendChild(thumb);\n        thumbsBox.appendChild(button);\n\n        button.addEventListener('click',function(){\n\n          show(index);\n          startAuto();\n\n        });\n\n      });\n\n      var hasMany=slides.length\u003e1;\n\n      prev.classList.toggle('visible',hasMany);\n      next.classList.toggle('visible',hasMany);\n\n      show(0);\n      startAuto();\n    }\n\n    \/* STATIC PHOTOS *\/\n\n    function addImage(holder,src,alt){\n\n      if(!holder || !src) return;\n\n      var img=document.createElement('img');\n\n      img.src=src;\n      img.alt=alt;\n      img.loading='lazy';\n\n      holder.insertBefore(\n        img,\n        holder.firstChild\n      );\n\n      holder.classList.add('has-photo');\n    }\n\n    function createStaticImages(images){\n\n      root.querySelectorAll(\n        '[data-ht-story-photo]'\n      ).forEach(function(holder){\n\n        var index=Number(\n          holder.getAttribute(\n            'data-ht-story-photo'\n          )\n        );\n\n        holder.innerHTML='';\n\n        if(!images[index]){\n          return;\n        }\n\n        addImage(\n          holder,\n          images[index],\n          'State-themed Christmas keepsake product photo'\n        );\n\n        var story=holder.closest(\n          '[data-ht-story]'\n        );\n\n        if(story){\n          story.classList.add('has-photo');\n        }\n\n      });\n\n      var count=0;\n\n      root.querySelectorAll(\n        '[data-ht-extra]'\n      ).forEach(function(holder){\n\n        var index=Number(\n          holder.getAttribute('data-ht-extra')\n        );\n\n        if(!images[index]) return;\n\n        addImage(\n          holder,\n          images[index],\n          'More views of the available Christmas keepsake designs'\n        );\n\n        count++;\n\n      });\n\n      var section=root.querySelector(\n        '[data-ht-photo-section]'\n      );\n\n      if(section \u0026\u0026 count\u003e0){\n        section.classList.add('has-photos');\n      }\n    }\n\n    \/* FIND PRODUCT PHOTOS IN CURRENT PAGE *\/\n\n    function findPageImages(){\n\n      var found=[];\n\n      var selectors=[\n        'main .product__media img',\n        'main .product__media-list img',\n        'main .product-media-container img',\n        'main .product-gallery img',\n        'main .product-single__photos img',\n        'main [data-product-gallery] img',\n        '[id*=\"MainProduct\"] img'\n      ];\n\n      document.querySelectorAll(\n        selectors.join(',')\n      ).forEach(function(img){\n\n        if(root.contains(img)) return;\n\n        var src=\n          img.getAttribute('data-zoom-image') ||\n          img.getAttribute('data-src') ||\n          img.currentSrc ||\n          img.getAttribute('src');\n\n        var url=normalize(src);\n\n        if(\n          url \u0026\u0026\n          (\n            url.indexOf('\/cdn\/shop\/')!==-1 ||\n            url.indexOf('cdn.shopify.com')!==-1\n          )\n        ){\n          found.push(url);\n        }\n\n      });\n\n      var meta=document.querySelector(\n        'meta[property=\"og:image\"]'\n      );\n\n      if(meta \u0026\u0026 meta.content){\n\n        found.push(\n          normalize(meta.content)\n        );\n\n      }\n\n      return unique(found);\n    }\n\n    \/* VERIFY AND DISPLAY *\/\n\n    function applyImages(items){\n\n      var urls=unique(\n        items.map(normalize)\n      ).slice(0,14);\n\n      if(!urls.length) return;\n\n      Promise.all(\n        urls.map(verify)\n      ).then(function(results){\n\n        var valid=results.filter(Boolean);\n\n        if(!valid.length) return;\n\n        createGallery(valid);\n        createStaticImages(valid);\n\n      });\n    }\n\n    \/* FETCH REAL PRODUCT GALLERY *\/\n\n    function loadImages(){\n\n      var pageImages=findPageImages();\n\n      if(pageImages.length){\n        applyImages(pageImages);\n      }\n\n      var path=window.location.pathname\n        .replace(\/\\\/$\/,'');\n\n      \/* The product's encoded handle\n         is preserved automatically. *\/\n\n      var jsonUrl=path+'.js';\n\n      fetch(jsonUrl,{\n        credentials:'same-origin'\n      })\n      .then(function(response){\n\n        if(!response.ok){\n          throw new Error('Product data unavailable');\n        }\n\n        return response.json();\n\n      })\n      .then(function(product){\n\n        if(\n          !product ||\n          !Array.isArray(product.images) ||\n          !product.images.length\n        ){\n          return;\n        }\n\n        applyImages(product.images);\n\n      })\n      .catch(function(){\n\n        if(pageImages.length){\n          return;\n        }\n\n        var label=root.querySelector(\n          '[data-ht-loading]'\n        );\n\n        if(label){\n          label.textContent=\n            'Product photos could not load. '+\n            'Open this section on the corresponding Shopify product page.';\n        }\n\n      });\n\n    }\n\n    \/* EVENTS *\/\n\n    prev.addEventListener('click',function(){\n      show(current-1);\n      startAuto();\n    });\n\n    next.addEventListener('click',function(){\n      show(current+1);\n      startAuto();\n    });\n\n    track.addEventListener(\n      'mouseenter',\n      stopAuto\n    );\n\n    track.addEventListener(\n      'mouseleave',\n      startAuto\n    );\n\n    track.addEventListener(\n      'focusin',\n      stopAuto\n    );\n\n    track.addEventListener(\n      'focusout',\n      startAuto\n    );\n\n    track.addEventListener(\n      'touchstart',\n      stopAuto,\n      {passive:true}\n    );\n\n    track.addEventListener(\n      'touchend',\n      startAuto,\n      {passive:true}\n    );\n\n    track.addEventListener(\n      'scroll',\n      function(){\n\n        if(!track.clientWidth || !slides.length){\n          return;\n        }\n\n        current=Math.max(\n          0,\n          Math.min(\n            slides.length-1,\n            Math.round(\n              track.scrollLeft\/track.clientWidth\n            )\n          )\n        );\n\n        refreshThumbs();\n\n      },\n      {passive:true}\n    );\n\n    \/* BOTTOM BUTTON ONLY *\/\n\n    topLink.addEventListener(\n      'click',\n      function(event){\n\n        event.preventDefault();\n\n        window.scrollTo({\n          top:0,\n          left:0,\n          behavior:'smooth'\n        });\n\n      }\n    );\n\n    \/* START *\/\n\n    loadImages();\n\n  }\n\n  if(document.readyState==='loading'){\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      initHometown\n    );\n\n  }else{\n\n    initHometown();\n\n  }\n\n  document.addEventListener(\n    'shopify:section:load',\n    initHometown\n  );\n\n})();\n\u003c\/script\u003e\n","brand":"zhidou","offers":[{"title":"Default Title","offer_id":68125032644845,"sku":"YZY26103102-Default Title","price":26.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0841\/9354\/2381\/files\/96848557738295297.webp?v=1793431502","url":"https:\/\/alasjoy.com\/products\/50-u-s-states-d-c-christmas-ornaments-hometown-keepsakes-meaningful-holiday-gifts","provider":"alasjoy","version":"1.0","type":"link"}