{"product_id":"the-legend-of-hei-5108-v5","title":"The Legend of Hei 5108 V5 Mechanical Keyboard","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eAkko The Legend of Hei 5108 V5 | Mechanical Keyboard\u003c\/title\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=Cinzel:wght@600;700;800\u0026amp;family=Inter:wght@400;500;600;700\u0026amp;family=JetBrains+Mono:wght@400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n\/* ============================================================\n   DESIGN TOKENS — The Legend of Hei palette:\n   deep ink black, bamboo gold, forest jade, mist white\n   ============================================================ *\/\n:root {\n  --ink:        #0E1A14;\n  --ink-soft:   #3A4A40;\n  --jade:       #2D6A4F;\n  --jade-light: #52B788;\n  --jade-pale:  #D8F3DC;\n  --gold:       #C9A84C;\n  --gold-light: #F1D88F;\n  --gold-pale:  #FDF7E3;\n  --mist:       #F4F7F4;\n  --stone:      #E8EDE8;\n  --white:      #FFFFFF;\n  --line:       #D4E0D4;\n\n  --font-display: 'Cinzel', serif;\n  --font-body:    'Inter', sans-serif;\n  --font-mono:    'JetBrains Mono', monospace;\n\n  --r-lg: 22px;\n  --r-md: 14px;\n  --r-sm: 8px;\n\n  --shadow: 0 14px 36px -18px rgba(14,26,20,0.28);\n  --shadow-sm: 0 6px 20px -10px rgba(14,26,20,0.18);\n  --max: 1160px;\n}\n\n\/* ---- Reset ---- *\/\n*,*::before,*::after { box-sizing: border-box; }\nhtml { scroll-behavior: smooth; }\nbody { margin: 0; font-family: var(--font-body); color: var(--ink); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }\nimg { max-width: 100%; display: block; }\na { color: inherit; }\nh1,h2,h3 { font-family: var(--font-display); margin: 0 0 14px; line-height: 1.15; }\nh1 { font-size: clamp(2rem,4vw,3.2rem); font-weight: 800; }\nh2 { font-size: clamp(1.55rem,2.8vw,2.2rem); font-weight: 700; }\nh3 { font-size: 1.15rem; font-weight: 600; font-family: var(--font-body); }\np  { margin: 0 0 12px; }\n:focus-visible { outline: 3px solid var(--jade); outline-offset: 3px; border-radius: 5px; }\n\n\/* ---- Utility ---- *\/\n.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 22px; }\n\n\/* ============================================================\n   1. TOP STRIP\n   ============================================================ *\/\n.top-strip {\n  background: var(--ink);\n  color: var(--gold-light);\n  text-align: center;\n  font-family: var(--font-mono);\n  font-size: .76rem;\n  letter-spacing: .07em;\n  padding: 9px 12px;\n}\n\n\/* ============================================================\n   2. HEADER\n   ============================================================ *\/\n.brand-header { padding: 32px 0 20px; text-align: center; }\n.brand-header .eyebrow {\n  display: inline-flex; align-items: center; gap: 7px;\n  background: var(--jade-pale); color: var(--jade);\n  font-family: var(--font-mono); font-size: .75rem; font-weight: 600;\n  letter-spacing: .08em; text-transform: uppercase;\n  padding: 7px 18px; border-radius: 999px;\n  border: 1px solid var(--line); margin-bottom: 14px;\n}\n.brand-header .sub { max-width: 620px; margin: 0 auto; color: var(--ink-soft); font-size: 1.1rem; }\n\n\/* ============================================================\n   3. HERO\n   ============================================================ *\/\n.hero { background: linear-gradient(180deg, var(--jade-pale) 0%, var(--stone) 100%); padding: 10px 0 0; }\n.hero-frame { position: relative; max-width: 1380px; margin: 0 auto; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); }\n.hero-frame img { width: 100%; }\n.hero-caption {\n  position: absolute; left: 0; right: 0; bottom: 0;\n  padding: 28px 32px;\n  background: linear-gradient(0deg,rgba(14,26,20,.55) 0%,rgba(14,26,20,0) 60%);\n  color: #fff;\n}\n.hero-caption span { font-family: var(--font-mono); font-size: .76rem; letter-spacing: .09em; text-transform: uppercase; opacity: .9; }\n.hero-caption strong { display: block; font-family: var(--font-display); font-size: clamp(1.2rem,2.5vw,1.8rem); }\n\n\/* ============================================================\n   4. BADGE ROW\n   ============================================================ *\/\n.badge-section { padding: 48px 0 12px; background: var(--jade-pale); }\n.badge-title { text-align: center; margin-bottom: 26px; }\n.badge-title .pill {\n  display: inline-block; background: var(--jade); color: #fff;\n  font-family: var(--font-mono); font-size: .73rem; font-weight: 600;\n  letter-spacing: .08em; text-transform: uppercase;\n  padding: 6px 16px; border-radius: 999px; margin-bottom: 12px;\n}\n.badge-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 11px; }\n.badge-chip {\n  display: flex; align-items: center; gap: 7px;\n  background: var(--white); border: 1.5px solid var(--line);\n  color: var(--jade); font-weight: 600; font-size: .95rem;\n  padding: 11px 20px; border-radius: 999px; box-shadow: var(--shadow-sm);\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.badge-chip:hover { transform: translateY(-3px); box-shadow: 0 14px 26px -16px rgba(45,106,79,.35); }\n\n\/* ============================================================\n   5. FEATURE ICON GRID\n   ============================================================ *\/\n.icon-grid-section { padding: 56px 0; }\n.icon-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }\n.icon-card {\n  background: var(--white); border-radius: var(--r-md);\n  padding: 26px 14px 22px; text-align: center;\n  border: 1px solid var(--line);\n  transition: transform .25s ease, box-shadow .25s ease;\n}\n.icon-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-sm); }\n.icon-box {\n  width: 62px; height: 62px; margin: 0 auto 13px;\n  border-radius: 50%; background: var(--jade-pale);\n  display: flex; align-items: center; justify-content: center; overflow: hidden;\n}\n.icon-box img { width: 62%; height: 62%; object-fit: contain; }\n.icon-card h3 { font-size: .94rem; margin: 0; }\n\n\/* ============================================================\n   6. FEATURE MODULES (text + image alternating)\n   FIX: min-height removed so text drives the row height.\n   Font sizes increased so short text fills the space.\n   ============================================================ *\/\n.feat-module { padding: 70px 0; }\n.feat-module.tinted { background: var(--gold-pale); }\n.feat-module.dark   { background: var(--ink); }\n\n.module-pair {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 60px;\n  align-items: center;   \/* vertically centred, NOT stretch *\/\n}\n.module-pair.flip .t-col { order: 2; }\n.module-pair.flip .i-col { order: 1; }\n\n\/* TEXT column — BIGGER fonts so short paragraphs fill space *\/\n.t-col .eyebrow-tag {\n  display: inline-block;\n  font-family: var(--font-mono); font-size: .76rem; font-weight: 600;\n  letter-spacing: .1em; text-transform: uppercase;\n  color: var(--jade); background: var(--jade-pale);\n  padding: 5px 14px; border-radius: 999px; margin-bottom: 14px;\n}\n.t-col .eyebrow-tag.gold-tag { color: var(--gold); background: var(--gold-pale); }\n.t-col h2 { margin-bottom: 18px; }\n\n\/* KEY FIX: paragraph font-size raised from 1rem → 1.15rem *\/\n.t-col p { font-size: 1.15rem; line-height: 1.7; color: var(--ink-soft); }\n.feat-module.dark .t-col p { color: #b6c4bb; }\n.feat-module.dark .t-col h2 { color: var(--gold-light); }\n\n.t-col .fine-print {\n  font-family: var(--font-mono); font-size: .82rem;\n  color: var(--ink-soft); opacity: .8; margin-top: 14px;\n}\n\n\/* IMAGE column *\/\n.i-col { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); }\n.i-col img { width: 100%; height: 100%; object-fit: cover; }\n\n\/* ============================================================\n   7. TRANSITION BANNER\n   ============================================================ *\/\n.trans-wrap { padding: 48px 0 40px; }\n.trans-banner {\n  position: relative; margin: 0 auto; max-width: 880px;\n  padding: 48px 30px; text-align: center;\n  background: var(--ink); border-radius: var(--r-lg); overflow: hidden;\n}\n.trans-banner::before,.trans-banner::after {\n  content: \"\"; position: absolute; width: 160px; height: 160px;\n  border-radius: 50%; opacity: .16;\n}\n.trans-banner::before { top: -60px; left: -60px; background: var(--jade-light); }\n.trans-banner::after  { bottom: -70px; right: -70px; background: var(--gold); }\n.trans-banner .tb-tag {\n  display: inline-block; font-family: var(--font-mono);\n  font-size: .72rem; letter-spacing: .15em; text-transform: uppercase;\n  color: var(--jade-light);\n  border: 1px solid rgba(82,183,136,.4);\n  padding: 5px 16px; border-radius: 999px; margin-bottom: 14px; position: relative;\n}\n.trans-banner h2 { color: var(--gold-light); position: relative; margin: 0; }\n.tb-stars { position: absolute; inset: 0; pointer-events: none; font-size: 1.1rem; color: rgba(201,168,76,.35); }\n.tb-stars span { position: absolute; }\n.tb-stars span:nth-child(1){ top: 18px; left: 35px; }\n.tb-stars span:nth-child(2){ top: 22px; right: 45px; }\n.tb-stars span:nth-child(3){ bottom: 20px; left: 65px; }\n\n\/* ============================================================\n   8. PRO GAMING — DEMO CARDS\n   All motion is JS-driven (transition only, no @keyframes)\n   so Shopify's description sanitiser cannot strip it.\n   ============================================================ *\/\n.gaming-header { text-align: center; padding: 62px 0 10px; background: var(--jade-pale); }\n.gaming-header h1 { color: var(--ink); }\n\n.demo-section { padding: 28px 0 66px; background: var(--jade-pale); }\n.demo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }\n\n.demo-card {\n  background: var(--white); border: 1px solid var(--line);\n  border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow-sm);\n}\n.demo-num { font-family: var(--font-mono); color: var(--jade); font-weight: 700; font-size: .84rem; letter-spacing: .05em; }\n.demo-visual {\n  background: var(--jade-pale); border-radius: var(--r-md);\n  padding: 28px 18px; margin: 14px 0 20px;\n}\n\n\/* Snap Key *\/\n.snap-demo { display: flex; align-items: center; gap: 16px; }\n.snap-block { flex: 1; text-align: center; }\n.snap-label { font-family: var(--font-mono); font-size: .74rem; color: var(--ink-soft); margin-bottom: 10px; min-height: 28px; }\n.snap-track {\n  position: relative; height: 34px;\n  background: var(--white); border-radius: 999px;\n  border: 1px solid var(--line); overflow: hidden; margin-bottom: 12px;\n}\n.snap-runner {\n  position: absolute; top: 5px; left: 6px;\n  width: 22px; height: 22px; border-radius: 50%;\n  background: var(--jade-light);\n  transition: left .55s ease-in-out;\n}\n.snap-runner.on { background: var(--jade); }\n.snap-keys { display: flex; justify-content: center; gap: 8px; align-items: center; }\n.demo-key {\n  width: 30px; height: 30px; border-radius: 7px;\n  background: var(--white); border: 1.5px solid var(--line);\n  display: flex; align-items: center; justify-content: center;\n  font-family: var(--font-mono); font-size: .8rem; font-weight: 700; color: var(--ink-soft);\n  transition: background .2s, color .2s, border-color .2s;\n}\n.demo-key.on { background: var(--jade); color: #fff; border-color: var(--jade); }\n.key-plus { color: var(--ink-soft); font-weight: 700; }\n\n\/* Mod-Tap *\/\n.modtap-demo { display: flex; align-items: center; justify-content: center; gap: 28px; }\n.modtap-key {\n  width: 56px; height: 56px; border-radius: 12px;\n  background: var(--jade); color: #fff;\n  font-family: var(--font-mono); font-weight: 700; font-size: 1.1rem;\n  display: flex; align-items: center; justify-content: center;\n  transition: transform .18s ease;\n}\n.modtap-actions { display: flex; gap: 18px; }\n.modtap-action { text-align: center; }\n.modtap-result {\n  width: 42px; height: 42px; border-radius: 9px;\n  background: var(--white); border: 1.5px solid var(--line);\n  font-family: var(--font-mono); font-weight: 700;\n  display: flex; align-items: center; justify-content: center; margin-bottom: 6px;\n}\n.modtap-action span { font-family: var(--font-mono); font-size: .72rem; color: var(--ink-soft); }\n.demo-card h3 { margin: 4px 0 10px; }\n.demo-card p { font-size: 1rem; color: var(--ink-soft); }\n\n\/* ============================================================\n   9. DUAL FEATURE CARDS (dark bg)\n   ============================================================ *\/\n.dual-section { padding: 62px 0; background: var(--ink); }\n.dual-section .sec-lead { text-align: center; max-width: 620px; margin: 0 auto 34px; }\n.dual-section .sec-lead h2 { color: var(--gold-light); }\n.dual-section .sec-lead p  { color: #8fa896; font-size: 1.05rem; }\n.dual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }\n.dual-card {\n  background: rgba(255,255,255,.05); border: 1px solid rgba(82,183,136,.2);\n  border-radius: var(--r-lg); padding: 26px;\n}\n.dual-card h3 { color: #fff; margin-bottom: 8px; font-family: var(--font-display); }\n.dual-card p  { color: rgba(244,247,244,.7); font-size: 1rem; }\n.dual-img {\n  position: relative; border-radius: var(--r-md);\n  overflow: hidden; margin-top: 16px;\n}\n.dual-img::before {\n  content: \"\"; position: absolute; inset: 0; z-index: 1;\n  background: radial-gradient(circle at 30% 20%,rgba(82,183,136,.3),transparent 60%);\n}\n.dual-img img { position: relative; z-index: 0; width: 100%; }\n\n\/* ============================================================\n   10. INFO ROWS (Multi-modes \/ Web Driver \/ Gasket)\n   ============================================================ *\/\n.info-row { padding: 58px 0; }\n.info-row.on-pale { background: var(--jade-pale); }\n.info-row.on-gold { background: var(--gold-pale); }\n.info-inner { max-width: 740px; margin: 0 auto; text-align: center; }\n\n\/* KEY FIX: kicker and paragraph enlarged *\/\n.info-inner h3.kicker {\n  font-family: var(--font-display); font-size: 1.45rem;\n  color: var(--jade); margin-bottom: 10px;\n}\n.info-inner p { font-size: 1.15rem; line-height: 1.72; color: var(--ink-soft); }\n.info-img { margin-top: 26px; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); }\n.info-img img { width: 100%; }\n.launch-btn {\n  display: inline-flex; align-items: center; gap: 8px;\n  background: var(--jade); color: #fff !important; font-weight: 600;\n  text-decoration: none; padding: 13px 28px;\n  border-radius: 999px; margin-top: 8px;\n  transition: background .3s ease, transform .25s ease;\n}\n.launch-btn:hover { background: var(--jade-light); color: var(--ink) !important; transform: translateY(-2px); }\n\n\/* ============================================================\n   11. SWITCH SPEC CARD\n   ============================================================ *\/\n.switch-section { padding: 62px 0; }\n.switch-card {\n  background: var(--jade-pale); border: 1px solid var(--line);\n  border-radius: var(--r-lg); padding: 36px;\n  display: grid; grid-template-columns: 1.1fr .9fr; gap: 34px; align-items: center;\n}\n.sw-badge {\n  display: inline-block; background: var(--gold); color: var(--ink);\n  font-family: var(--font-mono); font-size: .72rem; font-weight: 700;\n  letter-spacing: .06em; text-transform: uppercase;\n  padding: 5px 14px; border-radius: 999px; margin-bottom: 12px;\n}\n.sw-title { font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; margin-bottom: 20px; }\n.sw-row {\n  display: flex; justify-content: space-between; padding: 10px 0;\n  border-bottom: 1px dashed var(--line); font-size: 1rem;\n}\n.sw-row span:first-child { color: var(--ink-soft); }\n.sw-row span:last-child  { font-family: var(--font-mono); font-weight: 600; }\n.sw-img {\n  border-radius: var(--r-md); overflow: hidden;\n  background: var(--white); border: 1px solid var(--line);\n  min-height: 210px; display: flex; align-items: center; justify-content: center;\n}\n.sw-img img { width: 100%; }\n.sw-img-placeholder { display: none; align-items: center; justify-content: center; height: 210px; color: var(--ink-soft); font-family: var(--font-mono); font-size: .84rem; padding: 20px; text-align: center; }\n\n\/* ============================================================\n   12. SPECS TABLE\n   ============================================================ *\/\n.specs-section { padding: 62px 0 44px; }\n.specs-panel {\n  background: var(--white); border: 1px solid var(--line);\n  border-radius: var(--r-lg); padding: 40px; box-shadow: var(--shadow-sm);\n}\n.specs-label { font-family: var(--font-mono); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--jade); margin-bottom: 6px; }\n.specs-panel p { max-width: 540px; }\n.manual-btn {\n  display: inline-flex; align-items: center; gap: 6px;\n  border: 1.5px solid var(--jade); color: var(--jade) !important;\n  text-decoration: none; font-weight: 600; font-size: .9rem;\n  padding: 9px 18px; border-radius: 999px; margin-top: 8px;\n  transition: background .3s, color .3s;\n}\n.manual-btn:hover { background: var(--jade); color: #fff !important; }\n.specs-list { margin-top: 20px; }\n.specs-row {\n  display: grid; grid-template-columns: 220px 1fr; gap: 12px;\n  padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 1rem;\n}\n.specs-row:last-child { border-bottom: none; }\n.specs-row.hidden { display: none; }\n.spec-label { font-weight: 600; }\n.spec-value { font-family: var(--font-mono); color: var(--ink-soft); font-size: .94rem; }\n.specs-toggle { text-align: center; margin-top: 22px; }\n#sp-btn {\n  display: inline-flex; align-items: center; gap: 8px;\n  background: var(--jade-pale); border: 1px solid var(--line);\n  color: var(--jade); font-weight: 600; font-family: var(--font-body);\n  font-size: .92rem; padding: 11px 26px; border-radius: 999px; cursor: pointer;\n  transition: background .25s;\n}\n#sp-btn:hover { background: var(--stone); }\n.tog-icon { display: inline-block; transition: transform .25s; }\n#sp-btn.open .tog-icon { transform: rotate(180deg); }\n\n\/* ============================================================\n   13. PACKAGE CONTENTS\n   ============================================================ *\/\n.pkg-section { padding: 10px 0 62px; }\n.pkg-panel {\n  background: var(--gold-pale); border-radius: var(--r-lg);\n  padding: 34px 40px; display: grid;\n  grid-template-columns: 1fr 2fr; gap: 28px; align-items: center;\n}\n.pkg-list {\n  list-style: none; margin: 0; padding: 0;\n  display: grid; grid-template-columns: repeat(3,1fr); gap: 10px 18px;\n}\n.pkg-list li { display: flex; align-items: center; gap: 8px; font-size: 1rem; color: var(--ink-soft); }\n.pkg-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); flex-shrink: 0; }\n\n\/* ============================================================\n   14. FINAL CTA — Jump to Add to Cart\n   KEY FIXES:\n   • Larger text (1.2rem) — no more tiny text + huge gap\n   • New premium bag\/arrow SVG icon (Shopify-safe)\n   • Hover uses opacity + slight-lift — no background swap\n   • Glow on the real add-to-cart button is JS box-shadow only\n   ============================================================ *\/\n.final-cta { padding: 64px 0 72px; text-align: center; }\n.final-cta-inner { max-width: 680px; margin: 0 auto; }\n\n\/* KEY FIX: text enlarged from 1.02rem → 1.2rem *\/\n.final-cta-inner p { font-size: 1.2rem; line-height: 1.75; color: var(--ink-soft); margin-bottom: 30px; }\n\n\/* Premium icon button — no cart icon that looks like a broken icon *\/\n.jump-cta {\n  display: inline-flex; align-items: center; gap: 12px;\n  background: var(--jade); color: var(--white) !important;\n  text-decoration: none; font-family: var(--font-display);\n  font-weight: 700; font-size: 1.05rem;\n  padding: 16px 34px; border-radius: 999px; border: none; cursor: pointer;\n  \/* Soft shadow — no jarring jump *\/\n  box-shadow: 0 6px 22px -8px rgba(45,106,79,.45);\n  \/* Transition on opacity \u0026 lift only → feels soft, not abrupt *\/\n  transition: opacity .35s ease, transform .3s ease, box-shadow .35s ease;\n}\n.jump-cta:hover {\n  opacity: .88;\n  transform: translateY(-3px);\n  box-shadow: 0 14px 30px -10px rgba(45,106,79,.5);\n}\n\/* Shopify-safe icon: simple bag outline, no mask\/filter\/clip *\/\n.jump-cta svg { width: 22px; height: 22px; flex-shrink: 0; }\n\n\/* Glow class applied to the real ATC button via JS — box-shadow only,\n   no shape\/size\/radius change, purely decorative *\/\n.akko-loh-glow { transition: box-shadow .7s ease; }\n\n\/* ============================================================\n   15. FOOTER BANNER\n   ============================================================ *\/\n.footer-banner { max-width: 1380px; margin: 0 auto 40px; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); }\n.footer-banner img { width: 100%; }\n.footer-note { text-align: center; padding-bottom: 50px; color: var(--ink-soft); font-size: .86rem; }\n.footer-note strong { color: var(--jade); }\n\n\/* ============================================================\n   16. RESPONSIVE — TABLET\n   ============================================================ *\/\n@media (max-width: 980px) {\n  .icon-grid     { grid-template-columns: repeat(3,1fr); }\n  .module-pair   { grid-template-columns: 1fr; gap: 28px; }\n  .module-pair.flip .t-col { order: 1; }\n  .module-pair.flip .i-col { order: 2; }\n  .demo-grid     { grid-template-columns: 1fr; }\n  .dual-grid     { grid-template-columns: 1fr; }\n  .switch-card   { grid-template-columns: 1fr; }\n  .sw-img        { order: -1; }\n  .pkg-panel     { grid-template-columns: 1fr; text-align: center; }\n  .pkg-list      { grid-template-columns: repeat(2,1fr); text-align: left; }\n}\n\n\/* ============================================================\n   17. RESPONSIVE — MOBILE\n   ============================================================ *\/\n@media (max-width: 620px) {\n  .wrap          { padding: 0 16px; }\n  h1             { font-size: 1.85rem; }\n  h2             { font-size: 1.4rem; }\n  .icon-grid     { grid-template-columns: repeat(2,1fr); gap: 13px; }\n  .icon-card     { padding: 18px 10px 15px; }\n  .icon-box      { width: 50px; height: 50px; }\n  .icon-card h3  { font-size: .85rem; }\n  .badge-row     { flex-direction: column; align-items: stretch; }\n  .badge-chip    { justify-content: center; }\n  .trans-banner  { padding: 32px 16px; }\n  .specs-panel   { padding: 24px 18px; }\n  .specs-row     { grid-template-columns: 1fr; gap: 3px; }\n  .pkg-list      { grid-template-columns: 1fr; }\n  .switch-card   { padding: 22px; }\n  .feat-module   { padding: 46px 0; }\n  .final-cta     { padding: 48px 0 56px; }\n  .final-cta-inner p { font-size: 1.05rem; }\n  .jump-cta      { font-size: .94rem; padding: 14px 24px; }\n}\n\u003c\/style\u003e\n\n\n\n\u003c!-- TOP STRIP --\u003e\n\u003cdiv class=\"top-strip\"\u003eSANRIO LICENSED DESIGN · AKKO 5108 V5 SERIES · LIMITED COLLECTION\u003c\/div\u003e\n\n\u003c!-- ============================================================\n     HEADER\n     ============================================================ --\u003e\n\u003cheader class=\"brand-header\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cspan class=\"eyebrow\"\u003e\n      \u003c!-- Shopify-safe SVG: \u003cpath\u003e + \u003ccircle\u003e only, no mask\/filter\/clip --\u003e\n      \u003csvg width=\"15\" height=\"15\" viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n        \u003cpath d=\"M12 3L14.5 9H21L15.5 13.5L17.5 20L12 16L6.5 20L8.5 13.5L3 9H9.5Z\" fill=\"#2D6A4F\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      V5 Upgrade · The Legend of Hei Series\n    \u003c\/span\u003e\n    \u003ch1\u003eAkko The Legend of Hei 5108 V5\u003cbr\u003eMechanical Keyboard\u003c\/h1\u003e\n    \u003cp class=\"sub\"\u003eA 100% layout with Gasket Mount softness and full Legend of Hei theming front to back. Wired, 2.4GHz, and Bluetooth 5.0 with 8K Hz polling and a 10,000mAh battery.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/header\u003e\n\n\u003c!-- ============================================================\n     HERO\n     ============================================================ --\u003e\n\u003csection class=\"hero\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"hero-frame\"\u003e\n      \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-Q.avif\" alt=\"Akko The Legend of Hei 5108 V5 keyboard, full view\" loading=\"lazy\"\u003e\n      \u003cdiv class=\"hero-caption\"\u003e\n        \u003cspan\u003eFeatured Look\u003c\/span\u003e\n        \u003cstrong\u003eInk, jade and gold — a full-body tribute to The Legend of Hei\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     V5 BADGE ROW\n     ============================================================ --\u003e\n\u003csection class=\"badge-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"badge-title\"\u003e\n      \u003cspan class=\"pill\"\u003eV5 Upgrade\u003c\/span\u003e\n      \u003ch2\u003eWhat's New in the 5108 V5?\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"badge-row\"\u003e\n      \u003cdiv class=\"badge-chip\"\u003eWired \u0026amp; 2.4G Wireless · 8K Hz\u003c\/div\u003e\n      \u003cdiv class=\"badge-chip\"\u003eUpgraded Switch · Creamy Yellow U1\u003c\/div\u003e\n      \u003cdiv class=\"badge-chip\"\u003e10,000 mAh · Long-Lasting Battery\u003c\/div\u003e\n      \u003cdiv class=\"badge-chip\"\u003eBottom Case Art · Aesthetic Unity\u003c\/div\u003e\n      \u003cdiv class=\"badge-chip\"\u003eUltra-Narrow Gasket Structure\u003c\/div\u003e\n      \u003cdiv class=\"badge-chip\"\u003eDual-Section Split PC Plate\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     FEATURE ICON GRID\n     ============================================================ --\u003e\n\u003csection class=\"icon-grid-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"icon-grid\"\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-100-Layout.avif\" alt=\"100% Layout\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003e100% Layout\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-100-8K.avif\" alt=\"8K Polling Rate\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003e8K Polling Rate\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-Per-Key-Flex-Cut.avif\" alt=\"Per-Key Flex-Cut\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003ePer-Key Flex-Cut\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-Gasket-Mount.avif\" alt=\"Gasket Mount\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003eGasket Mount\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-Hot-Swappable.avif\" alt=\"Hot-Swappable\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003eHot-Swappable\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-RGB.avif\" alt=\"RGB Backlit\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003eRGB Backlit\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-PBT-Dye-Sub.avif\" alt=\"PBT Dye-Sub\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003ePBT Dye-Sub\u003c\/h3\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"icon-card\"\u003e\n\u003cdiv class=\"icon-box\"\u003e\u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-MD-Multi-mode.avif\" alt=\"Multi-mode\" loading=\"lazy\"\u003e\u003c\/div\u003e\n\u003ch3\u003eMulti-mode\u003c\/h3\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     FULL-BODY THEMED DESIGN\n     FIX: .module-pair uses align-items:center so short text\n     doesn't create a huge white void next to the image.\n     Font size raised to 1.15rem.\n     ============================================================ --\u003e\n\u003csection class=\"feat-module\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"module-pair\"\u003e\n      \u003cdiv class=\"t-col\"\u003e\n        \u003cspan class=\"eyebrow-tag\"\u003eTheme Design\u003c\/span\u003e\n        \u003ch2\u003eFull-Body Themed Design\u003c\/h2\u003e\n        \u003cp\u003eThe keyboard features The Legend of Hei theme artwork across the top case and the entire back panel. Paired with the matching themed keycaps, it presents a perfectly cohesive full-body design from every angle.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"i-col\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-CT-BM.avif\" alt=\"Full-body Legend of Hei themed keyboard\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     DUAL 8K HZ POLLING RATE\n     ============================================================ --\u003e\n\u003csection class=\"feat-module tinted\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"module-pair flip\"\u003e\n      \u003cdiv class=\"t-col\"\u003e\n        \u003cspan class=\"eyebrow-tag\"\u003ePerformance\u003c\/span\u003e\n        \u003ch2\u003eDual 8K Hz Polling Rate\u003c\/h2\u003e\n        \u003cp\u003eFeaturing 8000Hz polling rate in both wired and 2.4G mode, this keyboard sends operational data 8 times more frequently per second, delivering near-zero latency, ultra-responsive performance, and precise control for both gaming and typing.\u003c\/p\u003e\n        \u003cp class=\"fine-print\"\u003e* When testing 8K polling rate with Keyboard Inspector, please ensure your computer is in Safe Mode for accurate results.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"i-col\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-CT-8Kz.avif\" alt=\"8K Hz polling rate\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     PRO GAMING — HEADER\n     ============================================================ --\u003e\n\u003csection class=\"gaming-header\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cspan class=\"eyebrow-tag gold-tag\" style=\"display:inline-block;margin-bottom:12px;\"\u003eCompetitive Play\u003c\/span\u003e\n    \u003ch1\u003ePro Gaming Features\u003c\/h1\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     SNAP KEY + MOD-TAP DEMO CARDS\n     All animation driven by JS setInterval + inline style.left \/\n     style.transform — zero @keyframes, fully Shopify-safe.\n     ============================================================ --\u003e\n\u003csection class=\"demo-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"demo-grid\"\u003e\n\n      \u003c!-- Snap Key card --\u003e\n      \u003cdiv class=\"demo-card\"\u003e\n        \u003cdiv class=\"demo-visual\"\u003e\n          \u003cdiv class=\"snap-demo\"\u003e\n            \u003cdiv class=\"snap-block\"\u003e\n              \u003cdiv class=\"snap-label\"\u003eAkko Snap Keys\u003cbr\u003eOff\u003c\/div\u003e\n              \u003cdiv class=\"snap-track\"\u003e\u003cdiv class=\"snap-runner\" id=\"snapOff\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n              \u003cdiv class=\"snap-keys\"\u003e\n                \u003cdiv class=\"demo-key on\" id=\"soA\"\u003eA\u003c\/div\u003e\n                \u003cspan class=\"key-plus\"\u003e+\u003c\/span\u003e\n                \u003cdiv class=\"demo-key on\" id=\"soD\"\u003eD\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"snap-block\"\u003e\n              \u003cdiv class=\"snap-label\"\u003eAkko Snap Keys\u003cbr\u003eOn\u003c\/div\u003e\n              \u003cdiv class=\"snap-track\"\u003e\u003cdiv class=\"snap-runner on\" id=\"snapOn\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n              \u003cdiv class=\"snap-keys\"\u003e\n                \u003cdiv class=\"demo-key\" id=\"snA\"\u003eA\u003c\/div\u003e\n                \u003cspan class=\"key-plus\"\u003e+\u003c\/span\u003e\n                \u003cdiv class=\"demo-key on\" id=\"snD\"\u003eD\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"demo-num\"\u003e01\u003c\/div\u003e\n        \u003ch3\u003eSnap Key\u003c\/h3\u003e\n        \u003cp\u003eSnap Key is Akko's implementation of SOCD, prioritizing the most recent keypress for swift directional changes without releasing previous inputs. This ensures fluid, responsive control in FPS games, where quick reactions and precise movement are crucial.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- Mod-Tap card --\u003e\n      \u003cdiv class=\"demo-card\"\u003e\n        \u003cdiv class=\"demo-visual\"\u003e\n          \u003cdiv class=\"modtap-demo\"\u003e\n            \u003cdiv class=\"modtap-key\" id=\"mtKey\"\u003eG\u003c\/div\u003e\n            \u003cdiv class=\"modtap-actions\"\u003e\n              \u003cdiv class=\"modtap-action\"\u003e\n\u003cdiv class=\"modtap-result\"\u003eG\u003c\/div\u003e\n\u003cspan\u003eTap\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"modtap-action\"\u003e\n\u003cdiv class=\"modtap-result\"\u003eF\u003c\/div\u003e\n\u003cspan\u003eHold\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"demo-num\"\u003e02\u003c\/div\u003e\n        \u003ch3\u003eMod-Tap\u003c\/h3\u003e\n        \u003cp\u003eMod Tap enables the creation of dedicated or dual-functional keys based on key press behavior. A single keypress can achieve two functions: holding down the key for one function, and pressing the key for another, improving efficiency and control.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     TRANSITION BANNER\n     ============================================================ --\u003e\n\u003cdiv class=\"trans-wrap\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"trans-banner\"\u003e\n      \u003cdiv class=\"tb-stars\"\u003e\n\u003cspan\u003e✦\u003c\/span\u003e\u003cspan\u003e✦\u003c\/span\u003e\u003cspan\u003e✦\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003cspan class=\"tb-tag\"\u003eThe Legend of Hei\u003c\/span\u003e\n      \u003ch2\u003eGET THE MOST OUT OF 5108 V5\u003c\/h2\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ============================================================\n     PBT DYE-SUB KEYCAPS\n     ============================================================ --\u003e\n\u003csection class=\"feat-module tinted\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"module-pair flip\"\u003e\n      \u003cdiv class=\"t-col\"\u003e\n        \u003cspan class=\"eyebrow-tag\"\u003eKeycaps\u003c\/span\u003e\n        \u003ch2\u003ePBT Dye-Sub Keycaps\u003c\/h2\u003e\n        \u003cp\u003eMade through a dye-sub process with durable PBT materials that ensure the legends will not fade easily. These keycaps keep their pristine matte look while delivering a comfortable, tactile typing experience.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"i-col\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-Profile.avif\" alt=\"PBT Dye-Sub keycaps\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     10,000 MAH BATTERY\n     ============================================================ --\u003e\n\u003csection class=\"feat-module\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"module-pair\"\u003e\n      \u003cdiv class=\"t-col\"\u003e\n        \u003cspan class=\"eyebrow-tag\"\u003eBattery\u003c\/span\u003e\n        \u003ch2\u003e10,000mAh Battery\u003c\/h2\u003e\n        \u003cp\u003eEnjoy uninterrupted typing, gaming, or productivity with a high-capacity 10,000mAh battery, with no need for constant recharging.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"i-col\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-10000mAh.avif\" alt=\"10,000mAh battery\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     MULTI-MODES\n     ============================================================ --\u003e\n\u003csection class=\"info-row on-pale\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"info-inner\"\u003e\n      \u003ch3 class=\"kicker\"\u003eMulti-Modes\u003c\/h3\u003e\n      \u003cp\u003eThe Legend of Hei 5108 V5 supports BT 5.0, multi-host 2.4GHz (with receiver), and wired Type-C connection for seamless device switching.\u003c\/p\u003e\n      \u003cdiv class=\"info-img\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-SM.avif\" alt=\"Multi-mode connectivity\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     WEB DRIVER\n     ============================================================ --\u003e\n\u003csection class=\"info-row\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"info-inner\"\u003e\n      \u003ch3 class=\"kicker\"\u003eWeb \u0026amp; Cloud Driver\u003c\/h3\u003e\n      \u003cp\u003eFull customization for lighting, keys, and macros. Customize your keyboard anytime, anywhere.\u003c\/p\u003e\n      \u003ca class=\"launch-btn\" href=\"https:\/\/web.akkogear.com\" target=\"_blank\" rel=\"noopener\"\u003eLaunch Web Driver →\u003c\/a\u003e\n      \u003cdiv class=\"info-img\" style=\"margin-top:22px;\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-QD.avif\" alt=\"Web and Cloud Driver\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     GASKET MOUNTED\n     ============================================================ --\u003e\n\u003csection class=\"info-row on-pale\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"info-inner\"\u003e\n      \u003ch3 class=\"kicker\"\u003eGasket-Mounted\u003c\/h3\u003e\n      \u003cp\u003eAkko's innovative Gasket design effectively eliminates the key-striking resonance common in traditional tray-mount structures.\u003c\/p\u003e\n      \u003cdiv class=\"info-img\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-CJ.avif\" alt=\"Gasket mount structure\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     SWITCH SPEC CARDS (two switches for this model)\n     ============================================================ --\u003e\n\u003csection class=\"switch-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n\n    \u003c!-- Creamy Yellow U1 --\u003e\n    \u003cdiv class=\"switch-card\" style=\"margin-bottom:24px;\"\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"sw-badge\"\u003eLinear Switch\u003c\/span\u003e\n        \u003cdiv class=\"sw-title\"\u003eAkko Creamy Yellow U1 Switch\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eType\u003c\/span\u003e\u003cspan\u003eLinear\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eOperating Force\u003c\/span\u003e\u003cspan\u003e45 ± 8gf\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eTotal Travel\u003c\/span\u003e\u003cspan\u003e3.6 ± 0.4 mm\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003ePre Travel\u003c\/span\u003e\u003cspan\u003e2.0 ± 0.4 mm\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eMaterial\u003c\/span\u003e\u003cspan\u003ePOM \/ PC \/ PA\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eLED Diffuser\u003c\/span\u003e\u003cspan\u003eYes\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"sw-img\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/04\/Bun-Wonderland-5108-V5-V5-Creamy-Yellow-Ultra.avif\" alt=\"Akko Creamy Yellow U1 Switch\" loading=\"lazy\" onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\"\u003e\n        \u003cdiv class=\"sw-img-placeholder\"\u003eSwitch image unavailable.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- V3 Piano Pro --\u003e\n    \u003cdiv class=\"switch-card\"\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"sw-badge\"\u003eLinear Switch\u003c\/span\u003e\n        \u003cdiv class=\"sw-title\"\u003eAkko V3 Piano Pro Switch\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eType\u003c\/span\u003e\u003cspan\u003eLinear\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eOperating Force\u003c\/span\u003e\u003cspan\u003e45 ± 5gf\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eTotal Travel\u003c\/span\u003e\u003cspan\u003e3.1 mm\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003ePre Travel\u003c\/span\u003e\u003cspan\u003e1.9 ± 0.5 mm\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eMaterial\u003c\/span\u003e\u003cspan\u003ePOM \/ PA \/ PA\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"sw-row\"\u003e\n\u003cspan\u003eLED Diffuser\u003c\/span\u003e\u003cspan\u003eYes\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"sw-img\"\u003e\n        \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/06\/The-Legend-of-Hei-5108-V5-V3-Piano-Pro-GX.avif\" alt=\"Akko V3 Piano Pro Switch\" loading=\"lazy\" onerror=\"this.style.display='none';this.nextElementSibling.style.display='flex';\"\u003e\n        \u003cdiv class=\"sw-img-placeholder\"\u003eSwitch image unavailable.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     SPECS TABLE\n     ============================================================ --\u003e\n\u003csection class=\"specs-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"specs-panel\"\u003e\n      \u003cdiv class=\"specs-label\"\u003eThe Legend of Hei 5108 V5\u003c\/div\u003e\n      \u003ch2\u003eSpecs\u003c\/h2\u003e\n      \u003cp\u003eLearn more about the 5108 V5 such as the hotkeys, system commands, backlight setting, and more in the user manual.\u003c\/p\u003e\n      \u003ca class=\"manual-btn\" href=\"https:\/\/file.akkogear.com\/5108_V5.pdf\" target=\"_blank\" rel=\"noopener\"\u003eUser Manual\u003c\/a\u003e\n      \u003cdiv class=\"specs-list\" id=\"specs-list\"\u003e\n        \u003cdiv class=\"specs-row\"\u003e\n\u003cspan class=\"spec-label\"\u003eStructure:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eGasket Mount\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row\"\u003e\n\u003cspan class=\"spec-label\"\u003eConnection:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eBluetooth 5.0 \/ 2.4GHz \/ USB Type-C\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row\"\u003e\n\u003cspan class=\"spec-label\"\u003eBacklight:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eARGB Backlit\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row\"\u003e\n\u003cspan class=\"spec-label\"\u003eHot Swappable:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e3-Pin \/ 5-Pin Support\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row\"\u003e\n\u003cspan class=\"spec-label\"\u003eN-Key Rollover:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eSupport\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eBattery Capacity:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e10,000mAh\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003ePolling Rate:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e8,000Hz (wired \u0026amp; 2.4G) \/ 125Hz (Bluetooth)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eMacro:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eAkko Macro V1.0\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eSwitches:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eAkko Creamy Yellow U1 \/ Akko V3 Piano Pro\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eMaterials:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003ePBT Keycaps + ABS Case\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eLegends Printing:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eDye-Sublimation\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eKeycap Profile:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eCherry \/ MOA\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eProduct Weight:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eApproximately 1.41KG\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eDimensions:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e440.5 × 130 × 30.1mm (excl. keycap height)\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003eOperating Systems:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eWindows \/ macOS \/ iOS \/ Android\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"specs-row hidden\"\u003e\n\u003cspan class=\"spec-label\"\u003ePackage List:\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eKeyboard × 1, Manual × 1, Cable × 1, Receiver × 1, Keycap Puller × 1, Switch Puller × 1, Dust Cover × 1, Extra Switches\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"specs-toggle\"\u003e\n        \u003cbutton id=\"sp-btn\" type=\"button\" aria-expanded=\"false\"\u003e\n          \u003cspan id=\"sp-label\"\u003eView all\u003c\/span\u003e\n          \u003cspan class=\"tog-icon\"\u003e⌄\u003c\/span\u003e\n        \u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     PACKAGE CONTENTS\n     ============================================================ --\u003e\n\u003csection class=\"pkg-section\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"pkg-panel\"\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"eyebrow-tag\" style=\"display:inline-block;margin-bottom:10px;\"\u003eIn the Box\u003c\/span\u003e\n        \u003ch3\u003ePackage Contents\u003c\/h3\u003e\n        \u003cp style=\"margin:0;color:var(--ink-soft);\"\u003eEverything ready to go, right out of the box.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cul class=\"pkg-list\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eKeyboard × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eUser Manual × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eUSB-C Cable × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003e2.4G Receiver × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eKeycap Puller × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eSwitch Puller × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eDust Cover × 1\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"pkg-dot\"\u003e\u003c\/span\u003eExtra Switches\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     FINAL CTA — JUMP TO ADD TO CART\n     KEY FIXES vs previous versions:\n     1. Text is 1.2rem — fills space, no more tiny text + big gap\n     2. Icon: a clean shopping bag SVG (no cart wheels that look\n        broken). Simple \u003cpath\u003e only, no mask\/filter\/clip.\n        Shopify-safe and visually premium.\n     3. Hover: opacity + lift only (soft) — no sudden color swap\n     4. Glow on real ATC: JS box-shadow pulse, shape untouched\n     ============================================================ --\u003e\n\u003csection class=\"final-cta\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"final-cta-inner\"\u003e\n      \u003cp\u003eA 100% layout with Gasket Mount softness and full Legend of Hei theming, front to back. Wired, 2.4GHz, and Bluetooth 5.0 keep you connected with near-zero latency, backed by 8K Hz polling and a 10,000mAh battery.\u003c\/p\u003e\n      \u003ca href=\"#\" class=\"jump-cta\" id=\"jump-to-cart\"\u003e\n        \u003c!-- Shopify-safe shopping bag icon: two \u003cpath\u003es, no mask\/filter\/clip --\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n          \u003cpath d=\"M6 2L4 6H20L18 2H6Z\" stroke=\"#FFFFFF\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"M4 6V20C4 21.1 4.9 22 6 22H18C19.1 22 20 21.1 20 20V6H4Z\" stroke=\"#FFFFFF\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"M9 10C9 11.66 10.34 13 12 13C13.66 13 15 11.66 15 10\" stroke=\"#FFFFFF\" stroke-width=\"1.6\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        Jump to Add to Cart\n      \u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ============================================================\n     FOOTER BANNER\n     ============================================================ --\u003e\n\u003csection class=\"wrap\"\u003e\n  \u003cdiv class=\"footer-banner\"\u003e\n    \u003cimg src=\"https:\/\/en.akkogear.com\/wp-content\/uploads\/2026\/05\/The-Legend-of-Hei-5108-V5-XQ-CC.avif\" alt=\"Akko Legend of Hei 5108 V5 closing image\" loading=\"lazy\"\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cp class=\"footer-note\"\u003eThis product is manufactured by \u003cstrong\u003eAkko\u003c\/strong\u003e. Images are representative; actual product and packaging may vary slightly.\u003c\/p\u003e\n\n\u003c!-- ============================================================\n     JAVASCRIPT\n     ─ All animations use setInterval + inline style (no @keyframes)\n     ─ Glow modifies box-shadow only — shape\/radius untouched\n     ─ Shopify description sanitiser strips @keyframes but keeps\n       transition + inline style, so this approach is reliable\n     ============================================================ --\u003e\n\u003cscript\u003e\n(function () {\n\n  \/* ---- 1. Specs toggle ---- *\/\n  var spBtn   = document.getElementById('sp-btn');\n  var spLabel = document.getElementById('sp-label');\n  var spList  = document.getElementById('specs-list');\n\n  spBtn.addEventListener('click', function () {\n    var open   = spBtn.classList.contains('open');\n    var hidden = spList.querySelectorAll('.specs-row.hidden');\n    var shown  = spList.querySelectorAll('.specs-row.was-hidden');\n    if (!open) {\n      hidden.forEach(function (r) { r.classList.remove('hidden'); r.classList.add('was-hidden'); });\n      spLabel.textContent = 'View less';\n      spBtn.classList.add('open');\n      spBtn.setAttribute('aria-expanded', 'true');\n    } else {\n      shown.forEach(function (r) { r.classList.add('hidden'); r.classList.remove('was-hidden'); });\n      spLabel.textContent = 'View all';\n      spBtn.classList.remove('open');\n      spBtn.setAttribute('aria-expanded', 'false');\n    }\n  });\n\n  \/* ---- 2. Snap Key demo — JS-driven left transition ---- *\/\n  var snapOff = document.getElementById('snapOff');\n  var snapOn  = document.getElementById('snapOn');\n\n  function runLoop(el, steps, ms) {\n    if (!el) return;\n    var i = 0;\n    (function tick() {\n      el.style.left = steps[i % steps.length];\n      i++;\n      window.setTimeout(tick, ms);\n    })();\n  }\n\n  \/* Off: uneven jitter to show A+D conflict *\/\n  runLoop(snapOff, ['6px','58%','28%','68%','38%','calc(100% - 28px)','38%','6px'], 400);\n  \/* On: clean left→right→left *\/\n  runLoop(snapOn,  ['6px','calc(100% - 28px)'], 860);\n\n  \/* ---- 3. Mod-Tap key press pulse ---- *\/\n  var mtKey = document.getElementById('mtKey');\n  if (mtKey) {\n    window.setInterval(function () {\n      mtKey.style.transform = 'scale(0.88)';\n      window.setTimeout(function () { mtKey.style.transform = 'scale(1)'; }, 175);\n    }, 2400);\n  }\n\n  \/* ---- 4. Jump to Add to Cart + soft glow ---- *\/\n  var jumpBtn = document.getElementById('jump-to-cart');\n\n  function findATC() {\n    var selectors = [\n      'form[action*=\"\/cart\/add\"] button[type=\"submit\"]',\n      'form[action*=\"\/cart\/add\"] input[type=\"submit\"]',\n      'button[name=\"add\"]',\n      'input[name=\"add\"]',\n      '.product-form__submit',\n      '.product-form__buttons button',\n      '#AddToCart',\n      '#ProductSubmitButton',\n      '[data-add-to-cart]',\n      'button[id*=\"AddToCart\" i]',\n      'button[class*=\"add-to-cart\" i]'\n    ];\n    for (var i = 0; i \u003c selectors.length; i++) {\n      var el = document.querySelector(selectors[i]);\n      if (el) return el;\n    }\n    return null;\n  }\n\n  \/* Glow: 3-step box-shadow pulse, box-shadow only, ~2.2 s total.\n     Colours: soft jade-mint + gold to match the product palette.\n     Shape\/size\/radius of the target button are NEVER changed. *\/\n  function glowTarget(target) {\n    var orig = target.style.boxShadow || '';\n    target.classList.add('akko-loh-glow');\n    var steps = [\n      '0 0 0 7px rgba(82,183,136,.22), 0 0 48px 12px rgba(82,183,136,.32)',\n      '0 0 0 4px rgba(201,168,76,.18), 0 0 36px 10px rgba(201,168,76,.3)',\n      '0 0 0 7px rgba(82,183,136,.22), 0 0 48px 12px rgba(82,183,136,.32)',\n      orig || 'none'\n    ];\n    var delay = 0;\n    steps.forEach(function (shadow, idx) {\n      delay += idx === 0 ? 20 : 600;\n      window.setTimeout(function () {\n        target.style.boxShadow = shadow;\n        if (idx === steps.length - 1) {\n          window.setTimeout(function () {\n            target.classList.remove('akko-loh-glow');\n            target.style.boxShadow = orig;\n          }, 700);\n        }\n      }, delay);\n    });\n  }\n\n  if (jumpBtn) {\n    jumpBtn.addEventListener('click', function (e) {\n      e.preventDefault();\n      var atc = findATC();\n      if (!atc) return;\n      atc.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      window.setTimeout(function () { glowTarget(atc); }, 520);\n    });\n  }\n\n})();\n\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"Akko","offers":[{"title":"Akko V3 Piano Pro \/ MOA","offer_id":48747202969757,"sku":null,"price":154.9,"currency_code":"USD","in_stock":false},{"title":"Akko Creamy Yellow U1 \/ Cherry","offer_id":48747203002525,"sku":null,"price":154.9,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0684\/6962\/0893\/files\/The-Legend-of-Hei-5108-V5-1.png?v=1785846653","url":"https:\/\/keyartisan.net\/products\/the-legend-of-hei-5108-v5","provider":"KeyArtisan","version":"1.0","type":"link"}