{"product_id":"vintage-botanist-milk-coffee-keycap-set","title":"Vintage Botanist Milk Coffee Keycap Set","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700;1,900\u0026amp;family=DM+Sans:wght@400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n\/* ─────────────────────────────────────────────\n   DESIGN TOKENS\n   Palette: parchment · espresso · clay · sage\n   Signature: ink-stamp novelty key motif as\n   section dividers + pressed-key hover states\n───────────────────────────────────────────── *\/\n:root {\n  --parchment:   #f6f1e8;\n  --parchment-2: #ede5d7;\n  --parchment-3: #e0d5c3;\n  --espresso:    #2b221a;\n  --clay:        #7a5c3e;\n  --clay-mid:    #9b7556;\n  --clay-light:  #c4a882;\n  --sage:        #7a8f6e;\n  --sage-light:  #b8c9ac;\n  --sage-pale:   #dde8d4;\n  --cream:       #fdfaf5;\n  --ink:         #1e1710;\n  --muted:       #7a6e61;\n  --line:        rgba(122,92,62,.14);\n\n  --serif: 'Playfair Display', Georgia, serif;\n  --sans:  'DM Sans', system-ui, sans-serif;\n  --r: 12px;\n  --r-lg: 20px;\n  --max: 1180px;\n  --col-gap: clamp(14px, 2.5vw, 24px);\n\n  font-family: var(--sans);\n  color: var(--ink);\n  background: var(--parchment);\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n}\n\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n\/* ─── SCROLL REVEAL ─── *\/\n.reveal {\n  opacity: 0;\n  transform: translateY(22px);\n  transition: opacity .55s ease, transform .55s ease;\n}\n.reveal.visible { opacity: 1; transform: none; }\n@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }\n\n\/* ─── LAYOUT ─── *\/\n.page { max-width: var(--max); margin: 0 auto; padding: 0 clamp(16px,4vw,40px); }\n.section { padding: clamp(40px,7vw,80px) 0; }\n.section + .section { border-top: 1px solid var(--line); }\n\n\/* ─── TYPOGRAPHY ─── *\/\n.kicker {\n  font-family: var(--sans);\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .22em;\n  text-transform: uppercase;\n  color: var(--clay-mid);\n  display: block;\n  margin-bottom: 12px;\n}\n.display {\n  font-family: var(--serif);\n  font-weight: 900;\n  line-height: 1.12;\n  color: var(--espresso);\n}\n.display em { font-style: italic; color: var(--clay); }\n.body-lg { font-size: clamp(15px,1.8vw,17px); line-height: 1.75; color: var(--muted); }\n.body-sm { font-size: 14px; line-height: 1.65; color: var(--muted); }\np { font-size: clamp(15px,1.6vw,16.5px); line-height: 1.8; color: var(--muted); }\np + p { margin-top: 1em; }\nstrong { font-weight: 600; color: var(--espresso); }\n\n\/* ─── STAMP DIVIDER (signature element) ─── *\/\n.stamp-row {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  margin: 20px 0 0;\n  justify-content: center;\n}\n.stamp-row::before,\n.stamp-row::after {\n  content: '';\n  flex: 1;\n  max-width: 100px;\n  height: 1px;\n  background: linear-gradient(90deg,transparent,var(--clay-light),transparent);\n}\n.stamp {\n  width: 32px;\n  height: 32px;\n  border: 2px solid var(--clay-light);\n  border-radius: 4px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 15px;\n  color: var(--clay);\n  transform: rotate(-4deg);\n  flex-shrink: 0;\n}\n\n\/* ─── HERO ─── *\/\n.hero {\n  background: var(--espresso);\n  border-radius: var(--r-lg);\n  overflow: hidden;\n  position: relative;\n}\n\/* Aged paper texture overlay *\/\n.hero::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background-image:\n    url(\"data:image\/svg+xml,%3Csvg width='60' height='60' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='60' height='60' filter='url(%23n)' opacity='0.06'\/%3E%3C\/svg%3E\");\n  opacity: .4;\n  pointer-events: none;\n}\n.hero__body {\n  position: relative;\n  z-index: 1;\n  padding: clamp(32px,6vw,64px) clamp(24px,5vw,56px) clamp(28px,5vw,52px);\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: clamp(24px,4vw,48px);\n  align-items: center;\n}\n@media (max-width: 700px) { .hero__body { grid-template-columns: 1fr; } }\n\n.hero__text { color: var(--cream); }\n.hero__label {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .2em;\n  text-transform: uppercase;\n  color: var(--sage-light);\n  border: 1px solid rgba(184,201,172,.28);\n  border-radius: 999px;\n  padding: 6px 14px;\n  margin-bottom: 20px;\n}\n.hero__title {\n  font-family: var(--serif);\n  font-weight: 900;\n  font-size: clamp(30px,5.5vw,54px);\n  line-height: 1.08;\n  color: var(--cream);\n  margin-bottom: 16px;\n}\n.hero__title em { font-style: italic; color: var(--sage-light); }\n.hero__sub {\n  font-size: clamp(14px,1.6vw,16px);\n  line-height: 1.7;\n  color: rgba(253,250,245,.72);\n  margin-bottom: 28px;\n}\n.hero__pills {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n}\n.hero__pill {\n  font-size: 12.5px;\n  font-weight: 500;\n  color: var(--sage-light);\n  border: 1px solid rgba(184,201,172,.3);\n  border-radius: 999px;\n  padding: 6px 14px;\n  background: rgba(184,201,172,.08);\n}\n.hero__img-wrap {\n  border-radius: var(--r);\n  overflow: hidden;\n  aspect-ratio: 1 \/ 1;\n  background: var(--clay);\n  \/* Pressed key hover effect *\/\n  transition: transform .4s cubic-bezier(.34,1.56,.64,1);\n}\n.hero__img-wrap:hover { transform: scale(1.025) rotate(.5deg); }\n.hero__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\n\/* ─── BANNER ─── *\/\n.banner {\n  border-radius: var(--r-lg);\n  overflow: hidden;\n  aspect-ratio: 21 \/ 6;\n  background: var(--parchment-2);\n}\n.banner img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\n\/* ─── TRUST STRIP ─── *\/\n.trust {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 800px) { .trust { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 440px) { .trust { grid-template-columns: 1fr; } }\n.trust__item {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n  padding: 18px 16px;\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.trust__item:hover {\n  transform: translateY(-3px);\n  box-shadow: 0 8px 24px -8px rgba(43,34,26,.15);\n}\n.trust__icon { font-size: 22px; flex-shrink: 0; margin-top: 1px; }\n.trust__title { font-size: 13.5px; font-weight: 600; color: var(--espresso); }\n.trust__sub { font-size: 12px; color: var(--muted); margin-top: 3px; line-height: 1.5; }\n\n\/* ─── SECTION HEADS ─── *\/\n.head { margin-bottom: clamp(28px,4.5vw,44px); }\n.head--center { text-align: center; }\n.head .display { font-size: clamp(24px,4vw,38px); margin-bottom: 10px; }\n.head .body-lg { max-width: 640px; }\n.head--center .body-lg { margin: 0 auto; }\n\n\/* ─── PROSE BLOCK ─── *\/\n.prose { max-width: 740px; }\n.prose--center { margin: 0 auto; text-align: left; }\n\n\/* ─── IMAGE GRIDS ─── *\/\n.grid-3 {\n  display: grid;\n  grid-template-columns: repeat(3,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 700px) { .grid-3 { grid-template-columns: 1fr; } }\n.grid-2 {\n  display: grid;\n  grid-template-columns: repeat(2,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 600px) { .grid-2 { grid-template-columns: 1fr; } }\n\n.img-card {\n  position: relative;\n  border-radius: var(--r);\n  overflow: hidden;\n  background: var(--parchment-2);\n  \/* Key-press effect *\/\n  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;\n}\n.img-card:hover {\n  transform: translateY(-4px) scale(1.01);\n  box-shadow: 0 16px 36px -12px rgba(43,34,26,.22);\n}\n.img-card img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 1\/1; }\n.img-card__label {\n  position: absolute;\n  top: 10px;\n  left: 10px;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: var(--cream);\n  background: rgba(43,34,26,.7);\n  border-radius: 999px;\n  padding: 4px 10px;\n  backdrop-filter: blur(4px);\n}\n\n\/* ─── FEATURES GRID ─── *\/\n.features {\n  display: grid;\n  grid-template-columns: repeat(3,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 860px) { .features { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 540px) { .features { grid-template-columns: 1fr; } }\n.feature {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: clamp(18px,2.8vw,26px);\n  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;\n  text-align: left;\n}\n.feature:hover {\n  transform: translateY(-4px);\n  box-shadow: 0 12px 28px -8px rgba(43,34,26,.14);\n  border-color: var(--clay-light);\n}\n\/* Ink-stamp icon container — the signature *\/\n.feature__stamp {\n  width: 44px;\n  height: 44px;\n  border: 1.5px dashed var(--clay-light);\n  border-radius: 6px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 20px;\n  margin-bottom: 14px;\n  transform: rotate(-2deg);\n  background: var(--parchment-2);\n  transition: transform .3s ease;\n}\n.feature:hover .feature__stamp { transform: rotate(0deg) scale(1.08); }\n.feature h3 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(15px,1.8vw,17px);\n  color: var(--espresso);\n  margin-bottom: 8px;\n}\n.feature p { font-size: 14px; }\n\n\/* ─── SPECS DARK BLOCK ─── *\/\n.specs-block {\n  background: var(--espresso);\n  border-radius: var(--r-lg);\n  padding: clamp(32px,5.5vw,60px);\n  color: var(--cream);\n  position: relative;\n  overflow: hidden;\n}\n.specs-block::after {\n  content: '';\n  position: absolute;\n  top: -60px; right: -60px;\n  width: 240px; height: 240px;\n  border-radius: 50%;\n  background: radial-gradient(circle, rgba(122,143,110,.18) 0%, transparent 70%);\n  pointer-events: none;\n}\n.specs-block .kicker { color: var(--sage-light); }\n.specs-block .display { color: var(--cream); font-size: clamp(24px,3.8vw,36px); margin-bottom: 10px; }\n.specs-block \u003e p { color: rgba(253,250,245,.72); max-width: 580px; margin: 0 auto 28px; text-align: center; }\n.spec-grid {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: 10px;\n  margin-top: 4px;\n}\n@media (max-width: 680px) { .spec-grid { grid-template-columns: repeat(2,1fr); } }\n.spec {\n  background: rgba(253,250,245,.07);\n  border: 1px solid rgba(253,250,245,.1);\n  border-radius: 10px;\n  padding: 14px 16px;\n  text-align: center;\n}\n.spec__k {\n  font-size: 10.5px;\n  letter-spacing: .18em;\n  text-transform: uppercase;\n  color: var(--sage-light);\n  margin-bottom: 6px;\n}\n.spec__v { font-size: clamp(12.5px,1.4vw,14px); font-weight: 600; color: var(--cream); }\n\n\/* ─── PROFILE SPLIT ─── *\/\n.profile-split {\n  display: grid;\n  grid-template-columns: 5fr 7fr;\n  gap: var(--col-gap);\n  align-items: center;\n}\n@media (max-width: 700px) { .profile-split { grid-template-columns: 1fr; } }\n.profile-img {\n  border-radius: var(--r);\n  overflow: hidden;\n  background: var(--parchment-2);\n  box-shadow: 0 16px 40px -16px rgba(43,34,26,.25);\n  transition: transform .4s cubic-bezier(.34,1.56,.64,1);\n}\n.profile-img:hover { transform: scale(1.025); }\n.profile-img img { width: 100%; display: block; }\n.profile-cards { display: flex; flex-direction: column; gap: 12px; }\n.profile-card {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: 18px 20px;\n  text-align: left;\n  transition: transform .25s ease, border-color .25s ease;\n  \/* Left accent: ink stamp line *\/\n  border-left: 3px solid var(--clay-light);\n}\n.profile-card:hover { transform: translateX(4px); border-left-color: var(--clay); }\n.profile-card h4 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(14px,1.6vw,16px);\n  color: var(--espresso);\n  margin-bottom: 6px;\n}\n.profile-card p { font-size: 14px; }\n\n\/* ─── WIDE MEDIA ─── *\/\n.media-wide {\n  border-radius: var(--r-lg);\n  overflow: hidden;\n  aspect-ratio: 18\/5;\n  background: var(--parchment-2);\n}\n.media-wide img { width: 100%; height: 100%; object-fit: cover; display: block; }\n\n\/* ─── LAYOUT COVERAGE ─── *\/\n.coverage {\n  display: grid;\n  grid-template-columns: 5fr 7fr;\n  gap: clamp(28px,4.5vw,52px);\n  align-items: start;\n}\n@media (max-width: 700px) { .coverage { grid-template-columns: 1fr; } }\n.coverage__text h3 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(20px,2.4vw,24px);\n  color: var(--espresso);\n  margin-bottom: 12px;\n}\n.check-list { list-style: none; display: flex; flex-direction: column; gap: 9px; margin-top: 14px; }\n.check-list li {\n  font-size: 14.5px;\n  color: var(--muted);\n  padding-left: 22px;\n  position: relative;\n  line-height: 1.55;\n}\n.check-list li::before {\n  content: '✓';\n  position: absolute;\n  left: 0;\n  color: var(--sage);\n  font-weight: 700;\n}\n.coverage__img {\n  border-radius: var(--r);\n  overflow: hidden;\n  background: var(--parchment-2);\n  box-shadow: 0 12px 32px -12px rgba(43,34,26,.18);\n}\n.coverage__img img { width: 100%; display: block; }\n\n\/* ─── SPECS TABLE ─── *\/\n.table-wrap {\n  border-radius: var(--r);\n  overflow: hidden;\n  border: 1px solid var(--line);\n}\n.specs-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }\n.specs-table th, .specs-table td {\n  padding: 13px 18px;\n  text-align: left;\n  border-bottom: 1px solid var(--line);\n}\n.specs-table th {\n  font-weight: 600;\n  color: var(--espresso);\n  background: var(--parchment-2);\n  width: 36%;\n  font-size: 13px;\n  letter-spacing: .03em;\n}\n.specs-table td { color: var(--muted); background: var(--cream); }\n.specs-table tr:last-child th, .specs-table tr:last-child td { border-bottom: none; }\n.specs-table tr:hover td { background: var(--parchment); }\n\n.alert {\n  margin-top: 14px;\n  padding: 13px 16px;\n  background: rgba(122,92,62,.07);\n  border: 1px solid var(--clay-light);\n  border-left: 3px solid var(--clay);\n  border-radius: var(--r);\n  font-size: 13.5px;\n  color: var(--muted);\n  display: flex;\n  gap: 10px;\n  align-items: flex-start;\n  text-align: left;\n}\n.alert span { flex-shrink: 0; font-size: 16px; margin-top: 1px; }\n\n\/* ─── BOX CONTENTS ─── *\/\n.box-grid {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 700px) { .box-grid { grid-template-columns: repeat(2,1fr); } }\n.box-item {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: 20px 16px;\n  text-align: center;\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.box-item:hover { transform: translateY(-3px); box-shadow: 0 10px 24px -8px rgba(43,34,26,.14); }\n.box-item__num {\n  font-family: var(--serif);\n  font-weight: 900;\n  font-size: clamp(22px,3vw,28px);\n  color: var(--clay);\n  display: block;\n  margin-bottom: 4px;\n}\n.box-item__title { font-size: 13.5px; font-weight: 600; color: var(--espresso); }\n.box-item__sub { font-size: 12px; color: var(--muted); margin-top: 4px; }\n\n\/* ─── COLOR PALETTE ─── *\/\n.palette { display: flex; flex-wrap: wrap; gap: var(--col-gap); }\n.swatch {\n  flex: 1 1 180px;\n  display: flex;\n  align-items: center;\n  gap: 14px;\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: 14px 18px;\n  text-align: left;\n  transition: transform .25s ease;\n}\n.swatch:hover { transform: translateY(-3px); }\n.swatch__chip {\n  width: 40px;\n  height: 40px;\n  border-radius: 50%;\n  flex-shrink: 0;\n  border: 2px solid rgba(0,0,0,.08);\n}\n.swatch__name { font-size: 13.5px; font-weight: 600; color: var(--espresso); }\n.swatch__use { font-size: 12px; color: var(--muted); margin-top: 2px; }\n\n\/* ─── SETUP STEPS ─── *\/\n.steps {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: var(--col-gap);\n  counter-reset: step;\n}\n@media (max-width: 860px) { .steps { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 480px) { .steps { grid-template-columns: 1fr; } }\n.step {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: clamp(18px,2.8vw,26px);\n  text-align: left;\n  position: relative;\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.step:hover { transform: translateY(-4px); box-shadow: 0 12px 28px -8px rgba(43,34,26,.13); }\n.step__num {\n  font-family: var(--serif);\n  font-weight: 900;\n  font-size: 38px;\n  color: var(--parchment-3);\n  line-height: 1;\n  margin-bottom: 10px;\n  \/* Ink-stamp feel: slightly irregular *\/\n  font-style: italic;\n}\n.step h4 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(14px,1.6vw,16px);\n  color: var(--espresso);\n  margin-bottom: 8px;\n}\n.step p { font-size: 13.5px; }\n\n\/* ─── FOR WHOM ─── *\/\n.for-grid {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 860px) { .for-grid { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 480px) { .for-grid { grid-template-columns: 1fr; } }\n.for-card {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: clamp(18px,2.5vw,24px);\n  text-align: center;\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.for-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px -8px rgba(43,34,26,.13); }\n.for-card__icon {\n  font-size: 28px;\n  display: block;\n  margin-bottom: 10px;\n}\n.for-card h4 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(14px,1.6vw,16px);\n  color: var(--espresso);\n  margin-bottom: 8px;\n}\n.for-card p { font-size: 13px; }\n\n\/* ─── TWO PANELS ─── *\/\n.panels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--col-gap); }\n@media (max-width: 600px) { .panels { grid-template-columns: 1fr; } }\n.panel {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: clamp(22px,3.5vw,32px);\n  text-align: left;\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.panel:hover { transform: translateY(-4px); box-shadow: 0 12px 28px -8px rgba(43,34,26,.13); }\n.panel__icon { font-size: 28px; display: block; margin-bottom: 12px; }\n.panel h3 {\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(16px,2vw,19px);\n  color: var(--espresso);\n  margin-bottom: 10px;\n}\n.panel p { font-size: 14.5px; }\n\n\/* ─── GIFT HIGHLIGHT ─── *\/\n.gift-block {\n  background: var(--parchment-2);\n  border: 1px solid var(--parchment-3);\n  border-radius: var(--r-lg);\n  padding: clamp(32px,6vw,56px) clamp(24px,5vw,48px);\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n}\n.gift-block::before {\n  content: '';\n  position: absolute;\n  bottom: -40px; right: -40px;\n  width: 200px; height: 200px;\n  border: 40px solid var(--parchment-3);\n  border-radius: 50%;\n  pointer-events: none;\n}\n.gift-block__icon {\n  font-size: 44px;\n  display: inline-block;\n  margin-bottom: 14px;\n  transition: transform .4s ease;\n}\n.gift-block:hover .gift-block__icon { transform: scale(1.15) rotate(-8deg); }\n.gift-block .display { font-size: clamp(22px,3.6vw,34px); margin-bottom: 12px; }\n.gift-block \u003e p { max-width: 600px; margin: 0 auto; font-size: clamp(15px,1.8vw,17px); }\n\n\/* ─── PROMISE BAR ─── *\/\n.promise {\n  display: grid;\n  grid-template-columns: repeat(4,1fr);\n  gap: var(--col-gap);\n}\n@media (max-width: 860px) { .promise { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 480px) { .promise { grid-template-columns: 1fr; } }\n.promise__item {\n  background: var(--cream);\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  padding: clamp(16px,2.5vw,22px);\n  text-align: center;\n  transition: transform .25s ease;\n}\n.promise__item:hover { transform: translateY(-3px); }\n.promise__icon { font-size: 26px; display: block; margin-bottom: 10px; }\n.promise__title { font-size: 14px; font-weight: 600; color: var(--espresso); margin-bottom: 6px; }\n.promise__sub { font-size: 12.5px; color: var(--muted); line-height: 1.55; }\n\n\/* ─── FAQ ─── *\/\n.faq { max-width: 820px; margin: 0 auto; }\n.faq-item {\n  border: 1px solid var(--line);\n  border-radius: var(--r);\n  background: var(--cream);\n  margin-bottom: 10px;\n  overflow: hidden;\n  transition: border-color .25s ease;\n}\n.faq-item:hover { border-color: var(--clay-light); }\n.faq-item.open { border-color: var(--clay-light); }\n.faq-btn {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 14px;\n  padding: 17px 20px;\n  background: none;\n  border: none;\n  cursor: pointer;\n  font-family: var(--serif);\n  font-weight: 700;\n  font-size: clamp(14px,1.7vw,16px);\n  color: var(--espresso);\n  text-align: left;\n  line-height: 1.35;\n  transition: color .2s ease;\n}\n.faq-btn:hover { color: var(--clay); }\n.faq-icon {\n  font-size: 20px;\n  color: var(--clay-light);\n  flex-shrink: 0;\n  line-height: 1;\n  transition: transform .4s cubic-bezier(.4,0,.2,1);\n  font-weight: 400;\n}\n.faq-item.open .faq-icon { transform: rotate(45deg); color: var(--clay); }\n.faq-body {\n  height: 0;\n  overflow: hidden;\n  transition: height .45s cubic-bezier(.4,0,.2,1);\n}\n.faq-inner { padding: 0 20px 18px; font-size: 15px; color: var(--muted); line-height: 1.75; }\n\n\/* ─── CTA ─── *\/\n.cta-block {\n  background: var(--espresso);\n  border-radius: var(--r-lg);\n  padding: clamp(52px,8vw,88px) clamp(28px,6vw,72px);\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n  color: var(--cream);\n}\n.cta-block::before {\n  content: '';\n  position: absolute;\n  top: -80px; left: 50%;\n  transform: translateX(-50%);\n  width: 500px; height: 200px;\n  background: radial-gradient(ellipse, rgba(122,143,110,.2) 0%, transparent 70%);\n  pointer-events: none;\n}\n.cta-block .display {\n  color: var(--cream);\n  font-size: clamp(26px,4.5vw,44px);\n  position: relative;\n  margin-bottom: 14px;\n}\n.cta-block \u003e p {\n  color: rgba(253,250,245,.75);\n  font-size: clamp(14px,1.8vw,17px);\n  max-width: 600px;\n  margin: 0 auto 6px;\n  position: relative;\n}\n.cta-btn {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  margin-top: clamp(22px,3.5vw,30px);\n  font-size: clamp(12px,1.5vw,13.5px);\n  font-weight: 600;\n  letter-spacing: .18em;\n  text-transform: uppercase;\n  color: var(--sage-light);\n  border: 1px solid rgba(184,201,172,.38);\n  border-radius: 999px;\n  padding: 15px 30px;\n  background: rgba(184,201,172,.1);\n  cursor: pointer;\n  transition: background .3s ease, border-color .3s ease, transform .3s ease;\n  position: relative;\n}\n.cta-btn:hover {\n  background: rgba(184,201,172,.2);\n  border-color: rgba(184,201,172,.7);\n  transform: translateY(-3px) scale(1.02);\n  color: var(--cream);\n}\n.cta-btn:active { transform: translateY(-1px) scale(.99); }\n\n\/* ─── CART GLOW ANIMATION ─── *\/\n@keyframes cart-pulse {\n  0%,100% { box-shadow: none; }\n  50% { box-shadow: 0 0 0 4px rgba(122,143,110,.4), 0 0 28px rgba(122,143,110,.5); }\n}\n.pulse-glow { animation: cart-pulse 1.2s ease-in-out 3; }\n\n\/* ─── BOTTOM PADDING ─── *\/\n.page \u003e .section:last-child { padding-bottom: clamp(48px,8vw,96px); }\n\u003c\/style\u003e\n\n\n\n\u003cdiv class=\"page\"\u003e\n\n\u003c!-- ════════════════════════════════\n     1. HERO\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section\"\u003e\n  \u003cdiv class=\"hero reveal\"\u003e\n    \u003cdiv class=\"hero__body\"\u003e\n      \u003cdiv class=\"hero__text\"\u003e\n        \u003cdiv class=\"hero__label\"\u003e🌿 Vintage Botanist Collection\u003c\/div\u003e\n        \u003ch1 class=\"hero__title\"\u003eYour desk,\u003cbr\u003e\u003cem\u003ereimagined\u003c\/em\u003e.\u003c\/h1\u003e\n        \u003cp class=\"hero__sub\"\u003eAged botanical illustrations. Warm parchment and espresso tones. A keyboard set that looks like it belongs beside a leather-bound field guide — not a plastic desk mat.\u003c\/p\u003e\n        \u003cdiv class=\"hero__pills\"\u003e\n          \u003cdiv class=\"hero__pill\"\u003e138 Keys\u003c\/div\u003e\n          \u003cdiv class=\"hero__pill\"\u003eCherry Profile\u003c\/div\u003e\n          \u003cdiv class=\"hero__pill\"\u003ePBT Dye-Sub\u003c\/div\u003e\n          \u003cdiv class=\"hero__pill\"\u003eANSI \u0026amp; ISO\u003c\/div\u003e\n          \u003cdiv class=\"hero__pill\"\u003eMX Compatible\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hero__img-wrap\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01m92YnF28oRJ6eAgWf_crop_0_415_2494_2494___2987947979.webp?v=1784377246\" alt=\"Top-down view of the Vintage Botanist Milk Coffee Keycap Set installed on a keyboard. Cream alphanumeric keys, dark grey-brown modifiers, plaid-patterned accent keys, and botanical script legends — all on a warm woven mat.\" loading=\"eager\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     2. BANNER\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"banner\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01m92YnF28oRJ6eAgWf_crop_0_415_2494_2494___2987947979.webp?v=1784377246\" alt=\"Full keyboard installed with Vintage Botanist keycaps, displayed on a textured beige mat. The warm cream and grey-brown tones complement the plaid Esc key and botanical Shift legends.\" loading=\"lazy\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     3. TRUST STRIP\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"trust\"\u003e\n    \u003cdiv class=\"trust__item\"\u003e\n      \u003cdiv class=\"trust__icon\"\u003e🌿\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"trust__title\"\u003eBotanical on every key\u003c\/div\u003e\n        \u003cdiv class=\"trust__sub\"\u003eFern leaves, flask motifs, plaid accents — the theme runs board-wide\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"trust__item\"\u003e\n      \u003cdiv class=\"trust__icon\"\u003e☕\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"trust__title\"\u003eParchment + espresso palette\u003c\/div\u003e\n        \u003cdiv class=\"trust__sub\"\u003eWarm cream, grey-brown, and sage green — drawn from aged field guides\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"trust__item\"\u003e\n      \u003cdiv class=\"trust__icon\"\u003e⌨️\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"trust__title\"\u003e138 keys, wide coverage\u003c\/div\u003e\n        \u003cdiv class=\"trust__sub\"\u003eFull-size to 60%, ANSI, ISO, and Alice layouts all covered\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"trust__item\"\u003e\n      \u003cdiv class=\"trust__icon\"\u003e🪴\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"trust__title\"\u003eDye-sub PBT — legends last\u003c\/div\u003e\n        \u003cdiv class=\"trust__sub\"\u003eInk fused into the plastic; won't fade, shine, or peel with use\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     4. PROSE \/ THE STORY\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head\"\u003e\n    \u003cspan class=\"kicker\"\u003eThe Story\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eA field guide for\u003cbr\u003e\u003cem\u003eyour fingertips.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🌿\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"prose prose--center\"\u003e\n    \u003cp\u003eThe \u003cstrong\u003eVintage Botanist Milk Coffee Keycap Set\u003c\/strong\u003e draws from the world of 19th-century botanical illustration — the kind printed in heavy volumes, cross-referenced in margins, pressed between pages. Its palette of parchment cream, grey-brown espresso, and soft sage green doesn't try to look modern. That's the point.\u003c\/p\u003e\n    \u003cp\u003eShift keys carry fern leaf etchings. Modifier keys reference vintage lab flasks. The Tab and Esc keys are plaid-patterned. The Spacebar runs a tulip motif across its face. Every part of this set adds to a single coherent world, not a scattered collection of decorative choices.\u003c\/p\u003e\n    \u003cp\u003eUnderneath the aesthetics: \u003cstrong\u003ethick PBT plastic\u003c\/strong\u003e with \u003cstrong\u003edye-sublimated legends\u003c\/strong\u003e — a process where ink is infused into the keycap material under heat, not applied on top. The illustrations survive years of daily use without fading. Style without compromise.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     5. FIRST LOOK\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eFirst Look\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eCrafted down to\u003cbr\u003e\u003cem\u003eevery corner.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003eFrom the plaid accents to the hand-lettered modifier legends — nothing is left to chance.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e☕\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"grid-3\"\u003e\n    \u003cdiv class=\"img-card\"\u003e\n      \u003cdiv class=\"img-card__label\"\u003eOn the Desk\u003c\/div\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN015NE3Qk28oRJ6eDVCk__2987947979.webp?v=1784377246\" alt=\"Angled view of the Vintage Botanist set installed, left side. Cream alphanumeric keys, dark grey-brown number row, plaid Tab and Caps Lock, fern leaf Shift key with vintage cursive text. Shot on a textured beige mat.\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"img-card\"\u003e\n      \u003cdiv class=\"img-card__label\"\u003eClose Up\u003c\/div\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01QCTa1128oRJ73nnSZ_crop_0_454_2452_2452___2987947979.webp?v=1784377246\" alt=\"Extreme close-up of Shift, Alt, and Windows modifier keys. The Shift key shows a detailed fern leaf illustration with cursive botanical notes. Alt and Win keys show vintage scientific flask motifs on a subtle grid. Plaid Tab and dark Control add contrast.\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"img-card\"\u003e\n      \u003cdiv class=\"img-card__label\"\u003eDesk Scene\u003c\/div\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01ZT3vj728oRJ4yg4wf_crop_0_489_2827_2827___2987947979.webp?v=1784377247\" alt=\"Cozy vintage desk setup. Keyboard partially shown with cream, grey-brown, and novelty flower-illustration keys. Styled with aged botanical reference pages, a woven coaster, and incense sticks in warm soft light.\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     6. KEY FEATURES\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eWhy It Works\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eSix reasons it\u003cbr\u003e\u003cem\u003ebelongs on your desk.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🪴\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"features\"\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e🌿\u003c\/div\u003e\n      \u003ch3\u003eBotanical artistry\u003c\/h3\u003e\n      \u003cp\u003eFern leaves on Shift, flask motifs on the meta keys, plaid patterns on Tab and Esc, tulip illustrations on the Spacebar. The theme doesn't stop at a few novelty keys — it runs the whole board.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e⌨️\u003c\/div\u003e\n      \u003ch3\u003eCherry profile, row-sculpted\u003c\/h3\u003e\n      \u003cp\u003eRows R1 to R4 each have a different height and angle, creating the natural slope of the Cherry profile. Long sessions stay comfortable; your fingers always find the right key.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e🤎\u003c\/div\u003e\n      \u003ch3\u003eA palette with a point of view\u003c\/h3\u003e\n      \u003cp\u003eParchment cream base, grey-brown modifiers, deep espresso function row, sage green accents. The four colors reference aged paper and dried botanics — and they work together without a clash.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e☕\u003c\/div\u003e\n      \u003ch3\u003ePBT dye-sublimation\u003c\/h3\u003e\n      \u003cp\u003eInk is pressed into the keycap under heat, not printed onto the surface. There's nothing to peel or fade. The botanical prints stay crisp even after years of daily use.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e🔧\u003c\/div\u003e\n      \u003ch3\u003eUniversal MX fit\u003c\/h3\u003e\n      \u003cp\u003eStandard cross-shaped stem. Drops onto Cherry MX, Gateron, Kailh, Outemu, and virtually every MX-style switch — linear, tactile, or clicky. No adapter needed.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature\"\u003e\n      \u003cdiv class=\"feature__stamp\"\u003e📦\u003c\/div\u003e\n      \u003ch3\u003e138 keys, most layouts\u003c\/h3\u003e\n      \u003cp\u003eFull-size 100%, TKL 80%, 75%, 65%, and 60% boards are all covered. Includes ANSI and ISO keys, two Spacebar sizes (6.25u and 7u), and Alice-compatible modifiers.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     7. SPEC BLOCK (dark)\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"specs-block\" style=\"text-align:center;\"\u003e\n    \u003cspan class=\"kicker\"\u003eSpecifications\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eThe numbers,\u003cbr\u003e\u003cem\u003eat a glance.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eEverything you need to confirm fit before adding to cart.\u003c\/p\u003e\n    \u003cdiv class=\"spec-grid\"\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eMaterial\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003ePBT Plastic\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eProfile\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003eCherry\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eLegend Process\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003eDye-Sublimation\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eKey Count\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003e138 Keys\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eLayout Support\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003eANSI \u0026amp; ISO\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eStem Type\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003eMX-Style Cross\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eSpacebar Sizes\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003e6.25u \u0026amp; 7u\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"spec\"\u003e\n\u003cdiv class=\"spec__k\"\u003eTheme\u003c\/div\u003e\n\u003cdiv class=\"spec__v\"\u003eVintage Botanist\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     8. PROFILE SIDE-BY-SIDE\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eUp Close\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eThe profile,\u003cbr\u003e\u003cem\u003ein profile.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003eThe Cherry sculpt's varying row heights become obvious from the side — a natural ergonomic slope you stop noticing after the first hour.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e☕\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"profile-split\"\u003e\n    \u003cdiv class=\"profile-img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN012ajy1T28oRJ0fe4Ac_crop_0_517_2854_2854___2987947979.webp?v=1784377246\" alt=\"Side profile view showing the sculpted Cherry profile rows. Colour gradient from cream alphanumeric keys to dark grey-brown modifiers. Grid-patterned Spacebar with tulip illustration visible. Keyboard shown beside a white sculpted tray and plaid accent piece.\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"profile-cards\"\u003e\n      \u003cdiv class=\"profile-card\"\u003e\n        \u003ch4\u003eBotanical art on every side\u003c\/h4\u003e\n        \u003cp\u003eThe vintage theme doesn't stop at a handful of accent keys. From plaid Spacebar to fern Shift, every part of the board contributes to a single cohesive look.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"profile-card\"\u003e\n        \u003ch4\u003ePBT that stays matte\u003c\/h4\u003e\n        \u003cp\u003eThick PBT doesn't develop the greasy shine that ABS accumulates with use. The dye-sublimated legends are infused into the material — they cannot peel or fade.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"profile-card\"\u003e\n        \u003ch4\u003eDrop-in install, under 15 minutes\u003c\/h4\u003e\n        \u003cp\u003eMX cross-stem compatibility means these caps seat directly on Cherry, Gateron, Kailh or any MX clone. The included keycap puller is everything you need.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     9. WIDE SCENE IMAGE\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"media-wide\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01ZT3vj728oRJ4yg4wf_crop_0_489_2827_2827___2987947979.webp?v=1784377247\" alt=\"Wide desk scene: keyboard showing cream, grey-brown, and botanical novelty keys, surrounded by aged reference papers, a woven coaster, and incense sticks. Warm, soft styling that matches the keycap aesthetic.\" loading=\"lazy\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     10. LAYOUT COVERAGE\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eLayout Coverage\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eBuilt to fit\u003cbr\u003e\u003cem\u003eyour board.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003e138 keys covers an unusually broad range — from standard full-size to compact customs and Alice-style ergonomic builds.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🌿\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"coverage\"\u003e\n    \u003cdiv class=\"coverage__text\"\u003e\n      \u003ch3\u003eWhat fits and what's included\u003c\/h3\u003e\n      \u003cp\u003eWhether you're running a standard 104-key board, a compact custom, or an Alice-style ergonomic layout, the Vintage Botanist set comes with the keycaps to complete it. ANSI and ISO layouts are both supported with dedicated key options included in the kit.\u003c\/p\u003e\n      \u003cp\u003eSpacebar sizes 6.25u and 7u are both included, as are the modifiers needed for the most common Alice variants. The 138-key count isn't padded with duplicates — it reflects genuine layout coverage.\u003c\/p\u003e\n      \u003cul class=\"check-list\"\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSupported sizes:\u003c\/strong\u003e 60%, 65%, 75%, 80% TKL, 96%, 100% and more\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eANSI layout:\u003c\/strong\u003e US standard with full numpad keys\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eISO layout:\u003c\/strong\u003e European layout including ISO Enter\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eAlice layout:\u003c\/strong\u003e Compatible with most Alice-style ergonomic builds\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSpacebar:\u003c\/strong\u003e 6.25u and 7u both included\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSwitches:\u003c\/strong\u003e Cherry MX, Gateron, Kailh, Outemu, and MX clones\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp style=\"margin-top:14px;font-size:13px;color:var(--muted);font-style:italic;\"\u003eUnsure if your board is covered? Send us your keyboard model before ordering — we'll confirm.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"coverage__img\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/O1CN01e2dI9128oRJ6vCJzC__2987947979.webp?v=1784377247\" alt=\"All 138 keycaps from the Vintage Botanist set laid out flat against a light grey background. Rows of alphanumeric keys, full numpad, ISO Enter, multiple Spacebar sizes, and the collection of botanical novelty and plaid accent keys are all visible.\" loading=\"lazy\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     11. FULL SPECS TABLE\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eTechnical Details\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eFull\u003cbr\u003e\u003cem\u003especifications.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e☕\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"table-wrap\"\u003e\n    \u003ctable class=\"specs-table\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n\u003cth\u003eModel\u003c\/th\u003e\n\u003ctd\u003eVintage Botanist Milk Coffee Keycap Set\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eProfile\u003c\/th\u003e\n\u003ctd\u003eCherry (sculpted, R1–R4)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eKey Count\u003c\/th\u003e\n\u003ctd\u003e138 pieces\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eLayout Support\u003c\/th\u003e\n\u003ctd\u003eANSI \u0026amp; ISO\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eSupported Sizes\u003c\/th\u003e\n\u003ctd\u003e61 \/ 64 \/ 68 \/ 75 \/ 84 \/ 87 \/ 96 \/ 98 \/ 100 \/ 104 \/ 108 keys \u0026amp; more\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eMaterial\u003c\/th\u003e\n\u003ctd\u003ePBT plastic (thick)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eLegend Printing\u003c\/th\u003e\n\u003ctd\u003eDye-sublimation (infused into material)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eStem Type\u003c\/th\u003e\n\u003ctd\u003eMX-style cross stem\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eCompatible Switches\u003c\/th\u003e\n\u003ctd\u003eCherry MX, Gateron, Kailh, Outemu \u0026amp; most MX clones\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eSpacebar Sizes\u003c\/th\u003e\n\u003ctd\u003e6.25u and 7u (both included)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eColor Palette\u003c\/th\u003e\n\u003ctd\u003eMilk coffee cream, grey-brown, sage green, plaid accents\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003cth\u003eTheme\u003c\/th\u003e\n\u003ctd\u003eVintage Botanist\u003c\/td\u003e\n\u003c\/tr\u003e\n\n        \u003ctr\u003e\n\u003cth\u003eProduct Type\u003c\/th\u003e\n\u003ctd\u003eKeycap set (MX-style mechanical keyboards only)\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"alert\"\u003e\n    \u003cspan\u003e⚠️\u003c\/span\u003e\n    \u003cdiv\u003e\n\u003cstrong\u003eKeycaps only.\u003c\/strong\u003e The keyboard, switches, and accessories shown in photos are not included. Works with MX-style mechanical keyboards only — not compatible with membrane, scissor, or low-profile keyboards.\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     12. BOX CONTENTS\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eWhat's in the Box\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eEverything you\u003cbr\u003e\u003cem\u003eneed, included.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🪴\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"box-grid\"\u003e\n    \u003cdiv class=\"box-item\"\u003e\n      \u003cspan class=\"box-item__num\"\u003e138×\u003c\/span\u003e\n      \u003cdiv class=\"box-item__title\"\u003eKeycaps\u003c\/div\u003e\n      \u003cdiv class=\"box-item__sub\"\u003eFull coverage kit\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"box-item\"\u003e\n      \u003cspan class=\"box-item__num\"\u003e1×\u003c\/span\u003e\n      \u003cdiv class=\"box-item__title\"\u003eKeycap Puller\u003c\/div\u003e\n      \u003cdiv class=\"box-item__sub\"\u003eFor easy installation\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"box-item\"\u003e\n      \u003cspan class=\"box-item__num\"\u003e2\u003c\/span\u003e\n      \u003cdiv class=\"box-item__title\"\u003eLayout Options\u003c\/div\u003e\n      \u003cdiv class=\"box-item__sub\"\u003eANSI \u0026amp; ISO both covered\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"box-item\"\u003e\n      \u003cspan class=\"box-item__num\"\u003e✓\u003c\/span\u003e\n      \u003cdiv class=\"box-item__title\"\u003eProtective Packaging\u003c\/div\u003e\n      \u003cdiv class=\"box-item__sub\"\u003eArrives undamaged\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     13. COLOR PALETTE\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eThe Palette\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eFive colors,\u003cbr\u003e\u003cem\u003eone story.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003eA palette drawn from aged botanical reference books and dried herbs. Nothing shouts. Everything works together.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🌿\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"palette\"\u003e\n    \u003cdiv class=\"swatch\"\u003e\n      \u003cdiv class=\"swatch__chip\" style=\"background:#f6f1e8;\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"swatch__name\"\u003eParchment Cream\u003c\/div\u003e\n\u003cdiv class=\"swatch__use\"\u003eAlphanumeric base\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"swatch\"\u003e\n      \u003cdiv class=\"swatch__chip\" style=\"background:#9b7556;\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"swatch__name\"\u003eWarm Tan\u003c\/div\u003e\n\u003cdiv class=\"swatch__use\"\u003eModifier keys\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"swatch\"\u003e\n      \u003cdiv class=\"swatch__chip\" style=\"background:#2b221a;\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"swatch__name\"\u003eDeep Espresso\u003c\/div\u003e\n\u003cdiv class=\"swatch__use\"\u003eFunction row \u0026amp; dark keys\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"swatch\"\u003e\n      \u003cdiv class=\"swatch__chip\" style=\"background:#7a8f6e;\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"swatch__name\"\u003eSage Green\u003c\/div\u003e\n\u003cdiv class=\"swatch__use\"\u003eBotanical novelty accents\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"swatch\"\u003e\n      \u003cdiv class=\"swatch__chip\" style=\"background:repeating-linear-gradient(45deg,#c4a882,#c4a882 4px,#9b7556 4px,#9b7556 8px);\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cdiv class=\"swatch__name\"\u003ePlaid\u003c\/div\u003e\n\u003cdiv class=\"swatch__use\"\u003eEsc, Tab \u0026amp; accent keys\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     14. SETUP STEPS\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eGetting Started\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eInstalled in\u003cbr\u003e\u003cem\u003efour steps.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003eNo tools beyond the included keycap puller. Most people finish in under 15 minutes.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e☕\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"steps\"\u003e\n    \u003cdiv class=\"step\"\u003e\n      \u003cdiv class=\"step__num\"\u003eI\u003c\/div\u003e\n      \u003ch4\u003eCheck your layout\u003c\/h4\u003e\n      \u003cp\u003eConfirm ANSI or ISO, and identify your board size. The 138-key kit covers virtually all standard configurations including Alice-style ergonomic layouts.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n      \u003cdiv class=\"step__num\"\u003eII\u003c\/div\u003e\n      \u003ch4\u003eRemove existing keycaps\u003c\/h4\u003e\n      \u003cp\u003eUse the included keycap puller to lift your existing caps row by row. Work methodically — it keeps things organized and avoids dropping stabilizer parts.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n      \u003cdiv class=\"step__num\"\u003eIII\u003c\/div\u003e\n      \u003ch4\u003ePress on the new set\u003c\/h4\u003e\n      \u003cp\u003eAlign each keycap over its switch stem and press firmly until it clicks. Start from the bottom row and work upward for the smoothest workflow.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n      \u003cdiv class=\"step__num\"\u003eIV\u003c\/div\u003e\n      \u003ch4\u003eStep back and look\u003c\/h4\u003e\n      \u003cp\u003eGenuinely — step back. The transformation from a stock board to a fully botanical setup is the kind of thing you don't fully appreciate until you see it from a distance.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     15. WHO IT'S FOR\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eMade For\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eWho'll love\u003cbr\u003e\u003cem\u003ethis set.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"body-lg\"\u003eIf any of these sound familiar, this set belongs on your board.\u003c\/p\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🪴\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"for-grid\"\u003e\n    \u003cdiv class=\"for-card\"\u003e\n      \u003cspan class=\"for-card__icon\"\u003e🌿\u003c\/span\u003e\n      \u003ch4\u003eBotanical \u0026amp; nature lovers\u003c\/h4\u003e\n      \u003cp\u003eAnyone drawn to vintage botanical aesthetics — the kind found in old herbarium catalogues and pressed-plant collections.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"for-card\"\u003e\n      \u003cspan class=\"for-card__icon\"\u003e⌨️\u003c\/span\u003e\n      \u003ch4\u003eKeyboard enthusiasts\u003c\/h4\u003e\n      \u003cp\u003eCherry profile fans and PBT loyalists who want genuine quality construction alongside a distinctive theme.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"for-card\"\u003e\n      \u003cspan class=\"for-card__icon\"\u003e🎨\u003c\/span\u003e\n      \u003ch4\u003eCurated desk builders\u003c\/h4\u003e\n      \u003cp\u003ePeople who treat their workspace as a craft — where every item earns its place and the keyboard is worth looking at.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"for-card\"\u003e\n      \u003cspan class=\"for-card__icon\"\u003e🎁\u003c\/span\u003e\n      \u003ch4\u003eGift givers\u003c\/h4\u003e\n      \u003cp\u003eA genuinely characterful present for the keyboard enthusiast, nature lover, or vintage aesthetic fan in your life.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     16. FEEL \u0026 SOUND PANELS\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"panels\"\u003e\n    \u003cdiv class=\"panel\"\u003e\n      \u003cspan class=\"panel__icon\"\u003e🤚\u003c\/span\u003e\n      \u003ch3\u003eA sculpted touch\u003c\/h3\u003e\n      \u003cp\u003eCherry profile rows have a different height and angle at each row (R1–R4). The slope feels natural on the fingers — you notice it most when you go back to a flat keycap set. Long sessions stay comfortable; short ones feel satisfying.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"panel\"\u003e\n      \u003cspan class=\"panel__icon\"\u003e🌿\u003c\/span\u003e\n      \u003ch3\u003eA theme you feel\u003c\/h3\u003e\n      \u003cp\u003eFrom the plaid Spacebar to the botanical novelty corner keys, the vintage design extends across the whole board — not just a handful of accents. Every keystroke returns to the same world. The desk feels coherent, not decorated.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     17. GIFT BLOCK\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"gift-block\"\u003e\n    \u003cdiv class=\"gift-block__icon\"\u003e🎁\u003c\/div\u003e\n    \u003ch2 class=\"display\"\u003eA gift that\u003cbr\u003e\u003cem\u003etransforms a desk.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eThe Vintage Botanist set arrives in protective packaging — a complete kit, ready to install. For a birthday, a creative milestone, or because they've been putting off upgrading their board: this is the kind of gift that makes an impression the moment the lid comes off.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     18. PROMISE BAR\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eOur Commitment\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eShop with\u003cbr\u003e\u003cem\u003econfidence.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e🌿\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"promise\"\u003e\n    \u003cdiv class=\"promise__item\"\u003e\n      \u003cspan class=\"promise__icon\"\u003e📦\u003c\/span\u003e\n      \u003cdiv class=\"promise__title\"\u003eCarefully packed\u003c\/div\u003e\n      \u003cdiv class=\"promise__sub\"\u003eEvery set is secured for shipping so keycaps arrive in perfect condition.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"promise__item\"\u003e\n      \u003cspan class=\"promise__icon\"\u003e🔍\u003c\/span\u003e\n      \u003cdiv class=\"promise__title\"\u003eQuality checked\u003c\/div\u003e\n      \u003cdiv class=\"promise__sub\"\u003eEach order inspected for clean dye-sub printing and consistent moulding before dispatch.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"promise__item\"\u003e\n      \u003cspan class=\"promise__icon\"\u003e💬\u003c\/span\u003e\n      \u003cdiv class=\"promise__title\"\u003eReal support\u003c\/div\u003e\n      \u003cdiv class=\"promise__sub\"\u003eQuestions about fit or layout? A real person responds within 24 hours.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"promise__item\"\u003e\n      \u003cspan class=\"promise__icon\"\u003e🪴\u003c\/span\u003e\n      \u003cdiv class=\"promise__title\"\u003eBuilt for enthusiasts\u003c\/div\u003e\n      \u003cdiv class=\"promise__sub\"\u003eDesigned for people who want a keyboard that's worth looking at — not just using.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     19. FAQ\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"head head--center\"\u003e\n    \u003cspan class=\"kicker\"\u003eFAQ\u003c\/span\u003e\n    \u003ch2 class=\"display\"\u003eCommon\u003cbr\u003e\u003cem\u003equestions.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cdiv class=\"stamp-row\"\u003e\u003cdiv class=\"stamp\"\u003e☕\u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"faq\"\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eHow many keycaps are included?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003eThis set includes \u003cstrong\u003e138 keycaps\u003c\/strong\u003e. That covers the full alphanumeric cluster, all modifiers, a numpad, ISO-specific keys, two Spacebar sizes (6.25u and 7u), and a selection of botanical novelty keys. One box is all you need.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eWhat keyboard sizes and layouts does it support?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003e\n\u003cstrong\u003eANSI and ISO layouts\u003c\/strong\u003e are both supported. The 138-key kit covers 100% full-size, 80% TKL, 75%, 65%, and 60% boards, as well as most \u003cstrong\u003eAlice-style ergonomic layouts\u003c\/strong\u003e. Not sure? Send us your keyboard model and we'll confirm before you order.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eWhich switches are compatible?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003eThese keycaps use a standard \u003cstrong\u003eMX-style cross stem\u003c\/strong\u003e, compatible with \u003cstrong\u003eCherry MX, Gateron, Kailh, and Outemu\u003c\/strong\u003e switches, as well as most MX clones — linear, tactile, or clicky. Not compatible with membrane, scissor-switch, or low-profile keyboards.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eWill the botanical designs fade over time?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003eNo. \u003cstrong\u003eDye-sublimation on PBT plastic\u003c\/strong\u003e fuses ink into the material under heat — there's nothing sitting on the surface to peel or wear off. The legends and illustrations remain crisp through years of daily use.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eWhat keycap profile is this?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003e\n\u003cstrong\u003eCherry profile\u003c\/strong\u003e — sculpted rows R1 through R4, with varying heights that create a natural ergonomic angle. One of the most widely used profiles in the enthusiast community; familiar if you've used stock Cherry or Gateron boards.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eIs a keyboard included?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003e\n\u003cstrong\u003eNo — this listing is for the keycap set only.\u003c\/strong\u003e The keyboard shown in product photos is there for display. You'll need a compatible MX-style mechanical keyboard to use this set.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq-item\"\u003e\n      \u003cbutton class=\"faq-btn\" aria-expanded=\"false\"\u003e\n        \u003cspan\u003eIs a keycap puller included?\u003c\/span\u003e\n        \u003cspan class=\"faq-icon\" aria-hidden=\"true\"\u003e+\u003c\/span\u003e\n      \u003c\/button\u003e\n      \u003cdiv class=\"faq-body\" role=\"region\"\u003e\n        \u003cdiv class=\"faq-inner\"\u003e\n\u003cstrong\u003eYes.\u003c\/strong\u003e A keycap puller is included in the box. Use it to remove your existing caps, then press the Vintage Botanist set onto your switches. Most people are done in under 15 minutes.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ════════════════════════════════\n     20. CTA\n════════════════════════════════ --\u003e\n\u003cdiv class=\"section reveal\"\u003e\n  \u003cdiv class=\"cta-block\"\u003e\n    \u003ch2 class=\"display\"\u003eThe field guide\u003cbr\u003e\u003cem\u003efor your desk.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp\u003eBotanical art. Dye-sub PBT. Cherry profile comfort. 138 keys of complete coverage — and a look that earns a second glance every time you sit down.\u003c\/p\u003e\n    \u003cp\u003eYour board is one install away from a genuine transformation.\u003c\/p\u003e\n    \u003cbutton class=\"cta-btn\" id=\"vbk-cta\"\u003e\n      🛒 Add to Cart\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003c!-- \/.page --\u003e\n\n\u003cscript\u003e\n(function () {\n  \/* ── FAQ accordion ── *\/\n  var items = document.querySelectorAll('.faq-item');\n  items.forEach(function (item) {\n    var btn = item.querySelector('.faq-btn');\n    var body = item.querySelector('.faq-body');\n    var inner = item.querySelector('.faq-inner');\n    btn.addEventListener('click', function () {\n      var isOpen = item.classList.contains('open');\n      \/* close all *\/\n      items.forEach(function (other) {\n        other.classList.remove('open');\n        other.querySelector('.faq-body').style.height = '0';\n        other.querySelector('.faq-btn').setAttribute('aria-expanded', 'false');\n      });\n      if (!isOpen) {\n        item.classList.add('open');\n        body.style.height = inner.offsetHeight + 'px';\n        btn.setAttribute('aria-expanded', 'true');\n      }\n    });\n  });\n  window.addEventListener('resize', function () {\n    document.querySelectorAll('.faq-item.open .faq-body').forEach(function (b) {\n      b.style.height = b.querySelector('.faq-inner').offsetHeight + 'px';\n    });\n  });\n\n  \/* ── CTA → scroll + pulse ── *\/\n  var ctaBtn = document.getElementById('vbk-cta');\n  if (ctaBtn) {\n    ctaBtn.addEventListener('click', function () {\n      var addBtn = document.querySelector(\n        'button[name=\"add\"], .product-form__submit, [data-testid=\"add-to-cart-button\"], [data-action=\"add-to-cart\"]'\n      );\n      if (addBtn) {\n        addBtn.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        setTimeout(function () {\n          addBtn.classList.add('pulse-glow');\n          addBtn.addEventListener('animationend', function () {\n            addBtn.classList.remove('pulse-glow');\n          }, { once: true });\n        }, 650);\n      }\n    });\n  }\n\n  \/* ── Scroll reveal (IntersectionObserver) ── *\/\n  if (!window.IntersectionObserver) {\n    document.querySelectorAll('.reveal').forEach(function (el) {\n      el.classList.add('visible');\n    });\n    return;\n  }\n  var io = new IntersectionObserver(function (entries) {\n    entries.forEach(function (e) {\n      if (e.isIntersecting) {\n        e.target.classList.add('visible');\n        io.unobserve(e.target);\n      }\n    });\n  }, { threshold: 0.08, rootMargin: '0px 0px -32px 0px' });\n  document.querySelectorAll('.reveal').forEach(function (el) { io.observe(el); });\n}());\n\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"KeyArtisan","offers":[{"title":"Default Title","offer_id":48651014865053,"sku":null,"price":69.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/vintage-botanist-milk-coffee-keycap-set-1785502.webp?v=1784712551","url":"https:\/\/keyartisan.net\/products\/vintage-botanist-milk-coffee-keycap-set","provider":"KeyArtisan","version":"1.0","type":"link"}