{"id":63,"date":"2026-10-20T00:16:08","date_gmt":"2026-10-20T00:16:08","guid":{"rendered":"https:\/\/apk.produsenpagarbrc.com\/?p=63"},"modified":"2026-10-20T00:16:08","modified_gmt":"2026-10-20T00:16:08","slug":"honeybound-freecell","status":"publish","type":"post","link":"https:\/\/play.produsenpagarbrc.com\/?p=63","title":{"rendered":"Honeybound FreeCell"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Honeybound FreeCell<\/strong> is a cozy FreeCell solitaire game set inside a warm honeylit library, where every card feels like a small piece of an old golden archive. The table glows with parchment colors, amber light, soft shadows, and library-inspired card suits such as bee seals, honey drops, leafy marks, and golden bookmarks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your goal is to move every card into the foundations from Ace to King by suit. Use the free cells carefully, arrange tableau cards in descending order with alternating colors, and plan each move before the honeylit table fills with difficult choices.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/play.produsenpagarbrc.com\/wp-content\/uploads\/2026\/10\/Honeybound-FreeCell-1024x768.png\" alt=\"\" class=\"wp-image-64\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">A Warm Library Twist on Classic FreeCell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Honeybound FreeCell<\/strong> keeps the classic strategy of FreeCell while giving it a softer, more inviting atmosphere. Instead of a plain card table, you play inside a cozy reading room filled with golden light, quiet bookshelves, parchment textures, and a calm Honey Library mood.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The rules are simple to understand, but every decision matters. A free cell can save one card, an empty column can open new movement space, and one careful move can turn a crowded board into a clean path toward victory.<\/p>\n\n\n\n<style>\n#vrf-freecell{\n  --vrf-card-w:86px;\n  --vrf-card-h:116px;\n  width:min(100%,1100px);\n  aspect-ratio:16\/9;\n  margin:18px auto;\n  position:relative;\n  overflow:hidden;\n  border-radius:24px;\n  background:\n    radial-gradient(circle at 76% 13%, rgba(216,183,106,.23), transparent 27%),\n    radial-gradient(circle at 18% 17%, rgba(168,213,208,.16), transparent 22%),\n    radial-gradient(circle at 16% 88%, rgba(17,52,61,.40), transparent 40%),\n    linear-gradient(160deg,#183842 0%,#1f5f67 43%,#365f6b 75%,#7db9b3 100%);\n  box-shadow:0 22px 60px rgba(16,40,48,.32);\n  user-select:none;\n  -webkit-user-select:none;\n  touch-action:none;\n  overscroll-behavior:none;\n  font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\n  color:#f2eee4;\n}\n#vrf-freecell,\n#vrf-freecell *{box-sizing:border-box}\n\n#vrf-freecell:fullscreen,\n#vrf-freecell.vrf-is-fullscreen{\n  width:100vw !important;\n  height:100vh !important;\n  max-width:none !important;\n  margin:0 !important;\n  border-radius:0 !important;\n}\n\n#vrf-freecell .vrf-fit{\n  position:absolute;\n  width:1280px;\n  height:720px;\n  left:0;\n  top:0;\n  transform-origin:0 0;\n  overflow:hidden;\n  border-radius:24px;\n  background:\n    radial-gradient(circle at 76% 13%, rgba(216,183,106,.22), transparent 27%),\n    radial-gradient(circle at 18% 17%, rgba(168,213,208,.15), transparent 22%),\n    radial-gradient(circle at 16% 88%, rgba(17,52,61,.40), transparent 40%),\n    linear-gradient(160deg,#183842 0%,#1f5f67 43%,#365f6b 75%,#7db9b3 100%);\n}\n#vrf-freecell.vrf-is-fullscreen .vrf-fit{border-radius:0}\n\n#vrf-freecell .vrf-fit::before{\n  content:\"\";\n  position:absolute;\n  inset:-80px;\n  background:\n    radial-gradient(circle at 10% 28%, rgba(242,238,228,.16) 0 2px, transparent 3px),\n    radial-gradient(circle at 21% 64%, rgba(242,238,228,.12) 0 2px, transparent 3px),\n    radial-gradient(circle at 43% 26%, rgba(216,183,106,.14) 0 2px, transparent 3px),\n    radial-gradient(circle at 70% 34%, rgba(242,238,228,.13) 0 2px, transparent 3px),\n    radial-gradient(circle at 86% 68%, rgba(242,238,228,.12) 0 3px, transparent 4px),\n    radial-gradient(circle at 92% 28%, rgba(242,238,228,.10) 0 2px, transparent 3px),\n    linear-gradient(104deg, rgba(255,255,255,.12), transparent 24%),\n    linear-gradient(78deg, rgba(255,255,255,.07), transparent 34%),\n    radial-gradient(circle at 74% 16%, rgba(216,183,106,.12), transparent 24%);\n  opacity:.92;\n  pointer-events:none;\n}\n#vrf-freecell .vrf-fit::after{\n  content:\"\";\n  position:absolute;\n  inset:0;\n  background:\n    radial-gradient(circle at 50% 52%, transparent 0 60%, rgba(8,31,39,.20) 100%),\n    linear-gradient(180deg, rgba(255,255,255,.04), transparent 27%);\n  pointer-events:none;\n}\n\n#vrf-freecell .vrf-table-glow{\n  position:absolute;\n  left:166px;\n  top:72px;\n  width:948px;\n  height:568px;\n  border-radius:36px;\n  background:\n    radial-gradient(circle at 28% 16%, rgba(242,238,228,.07), transparent 30%),\n    radial-gradient(circle at 76% 84%, rgba(216,183,106,.08), transparent 30%),\n    linear-gradient(135deg, rgba(17,52,61,.32), rgba(125,185,179,.08));\n  border:1px solid rgba(168,213,208,.20);\n  box-shadow:\n    inset 0 0 0 1px rgba(255,255,255,.05),\n    inset 0 0 46px rgba(242,238,228,.035),\n    0 26px 70px rgba(14,39,47,.22);\n  pointer-events:none;\n}\n\n#vrf-freecell .vrf-ornament{\n  position:absolute;\n  pointer-events:none;\n  opacity:.18;\n}\n#vrf-freecell .vrf-ornament.left{\n  left:42px;\n  bottom:62px;\n  width:160px;\n  height:236px;\n  border-left:2px solid rgba(168,213,208,.26);\n  border-bottom:2px solid rgba(168,213,208,.12);\n  border-radius:0 0 0 94px;\n  transform:rotate(-8deg);\n}\n#vrf-freecell .vrf-ornament.right{\n  right:46px;\n  bottom:58px;\n  width:160px;\n  height:236px;\n  border-right:2px solid rgba(168,213,208,.22);\n  border-bottom:2px solid rgba(168,213,208,.12);\n  border-radius:0 0 94px 0;\n  transform:rotate(8deg);\n}\n#vrf-freecell .vrf-ornament.left::before,\n#vrf-freecell .vrf-ornament.left::after,\n#vrf-freecell .vrf-ornament.right::before,\n#vrf-freecell .vrf-ornament.right::after{\n  content:\"\";\n  position:absolute;\n  width:56px;\n  height:17px;\n  border-radius:50%;\n  background:rgba(242,238,228,.08);\n  border:1px solid rgba(242,238,228,.08);\n}\n#vrf-freecell .vrf-ornament.left::before{\n  left:18px;\n  top:44px;\n  transform:rotate(32deg);\n}\n#vrf-freecell .vrf-ornament.left::after{\n  left:-8px;\n  top:116px;\n  transform:rotate(-26deg);\n}\n#vrf-freecell .vrf-ornament.right::before{\n  right:20px;\n  top:50px;\n  transform:rotate(-34deg);\n}\n#vrf-freecell .vrf-ornament.right::after{\n  right:-8px;\n  top:126px;\n  transform:rotate(24deg);\n}\n\n#vrf-freecell button{\n  font:inherit;\n  -webkit-tap-highlight-color:transparent;\n}\n\n#vrf-freecell .vrf-icon{\n  position:absolute;\n  z-index:280;\n  top:18px;\n  width:48px;\n  height:48px;\n  border:1px solid rgba(242,238,228,.28);\n  border-radius:17px;\n  background:\n    radial-gradient(circle at 34% 24%, rgba(255,255,255,.17), transparent 33%),\n    rgba(17,52,61,.46);\n  color:#f2eee4;\n  box-shadow:\n    0 10px 22px rgba(12,38,45,.22),\n    inset 0 1px 0 rgba(255,255,255,.08);\n  cursor:pointer;\n  display:grid;\n  place-items:center;\n  transition:transform .12s ease, background .12s ease, border-color .12s ease, opacity .14s ease, visibility .14s ease;\n}\n#vrf-freecell .vrf-icon:hover{\n  transform:translateY(-1px);\n  background:\n    radial-gradient(circle at 34% 24%, rgba(255,255,255,.20), transparent 33%),\n    rgba(24,66,75,.52);\n  border-color:rgba(242,238,228,.38);\n}\n#vrf-freecell .vrf-icon:active{\n  transform:scale(.94);\n}\n\n#vrf-freecell .vrf-mute{\n  left:22px;\n  display:none;\n}\n#vrf-freecell .vrf-pause{\n  left:78px;\n  display:none;\n}\n#vrf-freecell.vrf-game-active .vrf-mute,\n#vrf-freecell.vrf-game-active .vrf-pause{\n  display:grid;\n}\n#vrf-freecell.vrf-paused .vrf-mute,\n#vrf-freecell.vrf-paused .vrf-pause{\n  opacity:0;\n  visibility:hidden;\n  pointer-events:none;\n}\n#vrf-freecell .vrf-fullscreen{\n  right:22px;\n  display:grid;\n}\n\n#vrf-freecell .vrf-sound-symbol{\n  position:relative;\n  width:28px;\n  height:24px;\n  display:block;\n}\n#vrf-freecell .vrf-sound-box{\n  position:absolute;\n  left:3px;\n  top:9px;\n  width:6px;\n  height:6px;\n  border-radius:2px 0 0 2px;\n  background:currentColor;\n}\n#vrf-freecell .vrf-sound-box::after{\n  content:\"\";\n  position:absolute;\n  left:5px;\n  top:-5px;\n  width:12px;\n  height:16px;\n  background:currentColor;\n  clip-path:polygon(0 36%,100% 0,100% 100%,0 64%);\n  border-radius:2px;\n}\n#vrf-freecell .vrf-sound-wave{\n  position:absolute;\n  border-style:solid;\n  border-color:currentColor;\n  border-left-color:transparent;\n  border-top-color:transparent;\n  border-bottom-color:transparent;\n  border-radius:0 999px 999px 0;\n  transition:opacity .14s ease;\n}\n#vrf-freecell .vrf-sound-wave.w1{\n  left:17px;\n  top:9px;\n  width:4px;\n  height:6px;\n  border-width:2px;\n}\n#vrf-freecell .vrf-sound-wave.w2{\n  left:19px;\n  top:7px;\n  width:7px;\n  height:10px;\n  border-width:2px;\n  opacity:.88;\n}\n#vrf-freecell .vrf-sound-wave.w3{\n  left:21px;\n  top:5px;\n  width:9px;\n  height:14px;\n  border-width:2px;\n  opacity:.72;\n}\n#vrf-freecell .vrf-sound-slash{\n  position:absolute;\n  left:2px;\n  top:10px;\n  width:25px;\n  height:3px;\n  border-radius:999px;\n  background:#d88d7a;\n  transform:rotate(45deg) scaleX(0);\n  transform-origin:center;\n  box-shadow:0 1px 0 rgba(0,0,0,.16);\n  transition:transform .14s ease;\n}\n#vrf-freecell.vrf-muted .vrf-sound-wave{opacity:0}\n#vrf-freecell.vrf-muted .vrf-sound-slash{transform:rotate(45deg) scaleX(1)}\n\n#vrf-freecell .vrf-pause-symbol{\n  position:relative;\n  width:22px;\n  height:22px;\n  display:block;\n}\n#vrf-freecell .vrf-pause-symbol::before,\n#vrf-freecell .vrf-pause-symbol::after{\n  content:\"\";\n  position:absolute;\n  top:3px;\n  width:6px;\n  height:16px;\n  border-radius:3px;\n  background:currentColor;\n  box-shadow:0 1px 0 rgba(0,0,0,.16);\n}\n#vrf-freecell .vrf-pause-symbol::before{left:4px}\n#vrf-freecell .vrf-pause-symbol::after{right:4px}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::before{\n  left:6px;\n  top:3px;\n  width:0;\n  height:0;\n  border-top:8px solid transparent;\n  border-bottom:8px solid transparent;\n  border-left:13px solid #1f5f67;\n  border-radius:0;\n  background:transparent;\n  box-shadow:none;\n}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::after{display:none}\n\n#vrf-freecell .vrf-full-symbol{\n  position:relative;\n  width:30px;\n  height:30px;\n  display:block;\n}\n#vrf-freecell .vrf-full-symbol::before{\n  content:\"\";\n  position:absolute;\n  inset:2px;\n  background:\n    linear-gradient(currentColor,currentColor) left top \/ 12px 4px no-repeat,\n    linear-gradient(currentColor,currentColor) left top \/ 4px 12px no-repeat,\n    linear-gradient(currentColor,currentColor) right top \/ 12px 4px no-repeat,\n    linear-gradient(currentColor,currentColor) right top \/ 4px 12px no-repeat,\n    linear-gradient(currentColor,currentColor) left bottom \/ 12px 4px no-repeat,\n    linear-gradient(currentColor,currentColor) left bottom \/ 4px 12px no-repeat,\n    linear-gradient(currentColor,currentColor) right bottom \/ 12px 4px no-repeat,\n    linear-gradient(currentColor,currentColor) right bottom \/ 4px 12px no-repeat;\n}\n\n\/* Score \/ Time \/ Moves panel *\/\n#vrf-freecell .vrf-stats{\n  position:absolute;\n  top:18px;\n  left:50%;\n  transform:translateX(-50%);\n  z-index:82;\n  height:48px;\n  min-width:392px;\n  padding:6px 12px;\n  border-radius:999px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:8px;\n  background:\n    linear-gradient(180deg, rgba(125,185,179,.24), rgba(17,52,61,.44)),\n    linear-gradient(90deg, rgba(216,183,106,.10), rgba(17,52,61,.04));\n  border:1px solid rgba(168,213,208,.30);\n  box-shadow:\n    0 14px 28px rgba(12,38,45,.16),\n    inset 0 1px 0 rgba(255,255,255,.10),\n    inset 0 -10px 18px rgba(17,52,61,.12);\n}\n#vrf-freecell .vrf-stat{\n  min-width:106px;\n  height:32px;\n  padding:0 12px;\n  border-radius:999px;\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:6px;\n  background:\n    linear-gradient(180deg, rgba(242,238,228,.15), rgba(17,52,61,.18));\n  border:1px solid rgba(242,238,228,.08);\n  color:rgba(242,238,228,.78);\n  font-size:13px;\n  letter-spacing:.02em;\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);\n}\n#vrf-freecell .vrf-stat b{\n  color:#fff6e9;\n  font-size:15px;\n  font-weight:850;\n  min-width:22px;\n  text-align:right;\n}\n\n#vrf-freecell .vrf-label{\n  position:absolute;\n  z-index:8;\n  top:82px;\n  height:24px;\n  line-height:24px;\n  padding:0 14px;\n  min-width:128px;\n  border-radius:999px;\n  text-align:center;\n  color:rgba(242,238,228,.92);\n  background:rgba(17,52,61,.30);\n  border:1px solid rgba(242,238,228,.16);\n  font-size:12px;\n  font-weight:900;\n  letter-spacing:.09em;\n  text-transform:uppercase;\n}\n#vrf-freecell .vrf-label.free{\n  left:436px;\n  transform:translateX(-50%);\n}\n#vrf-freecell .vrf-label.foundation{\n  left:844px;\n  transform:translateX(-50%);\n}\n\n#vrf-freecell .vrf-layer{\n  position:absolute;\n  inset:0;\n  z-index:20;\n  pointer-events:auto;\n  touch-action:none;\n}\n#vrf-freecell .vrf-slots,\n#vrf-freecell .vrf-columns{\n  position:absolute;\n  inset:0;\n  z-index:14;\n  pointer-events:none;\n}\n#vrf-freecell .vrf-slot,\n#vrf-freecell .vrf-column-zone{\n  position:absolute;\n  border-radius:16px;\n  pointer-events:none;\n  touch-action:none;\n}\n#vrf-freecell .vrf-slot{\n  width:calc(var(--vrf-card-w) + 10px);\n  height:var(--vrf-card-h);\n  transform:translateX(-5px);\n  background:\n    radial-gradient(circle at 50% 26%, rgba(242,238,228,.10), transparent 32%),\n    linear-gradient(145deg, rgba(242,238,228,.065), rgba(17,52,61,.12));\n  border:1.5px dashed rgba(168,213,208,.42);\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035), 0 10px 24px rgba(12,38,45,.10);\n}\n#vrf-freecell .vrf-slot::before{\n  content:\"\";\n  position:absolute;\n  inset:10px;\n  border-radius:13px;\n  border:1px solid rgba(242,238,228,.055);\n}\n#vrf-freecell .vrf-column-zone{\n  width:calc(var(--vrf-card-w) + 10px);\n  height:392px;\n  transform:translateX(-5px);\n  background:\n    linear-gradient(180deg, rgba(242,238,228,.035), rgba(17,52,61,.055));\n  border:1px solid rgba(168,213,208,.06);\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018);\n}\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border-color:rgba(168,213,208,.92);\n  background:\n    radial-gradient(circle at 50% 22%, rgba(125,185,179,.26), transparent 54%),\n    rgba(125,185,179,.11);\n  box-shadow:0 0 0 3px rgba(168,213,208,.11), 0 0 24px rgba(125,185,179,.28);\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:0 0 0 5px rgba(242,238,228,.15), 0 0 34px rgba(216,183,106,.31);\n}\n\n#vrf-freecell .vrf-card{\n  position:absolute;\n  width:var(--vrf-card-w);\n  height:var(--vrf-card-h);\n  border-radius:15px;\n  background:\n    radial-gradient(circle at 50% 0%, rgba(255,255,255,.84), transparent 55%),\n    linear-gradient(155deg,#fffaf0 0%,#f2eee4 52%,#e4d9c8 100%);\n  border:1px solid rgba(54,95,107,.38);\n  box-shadow:0 11px 20px rgba(12,38,45,.22), inset 0 0 0 1px rgba(255,255,255,.48);\n  color:#203f48;\n  overflow:hidden;\n  pointer-events:auto;\n  cursor:grab;\n  touch-action:none;\n  transition:box-shadow .10s ease, transform .10s ease;\n}\n#vrf-freecell .vrf-card::before{\n  content:\"\";\n  position:absolute;\n  inset:5px;\n  border-radius:12px;\n  border:1px solid rgba(125,185,179,.18);\n  pointer-events:none;\n}\n#vrf-freecell .vrf-card::after{\n  content:\"\";\n  position:absolute;\n  left:13px;\n  right:13px;\n  top:51%;\n  height:1px;\n  transform:translateY(-50%);\n  background:linear-gradient(90deg, transparent, rgba(54,95,107,.10), transparent);\n  pointer-events:none;\n}\n#vrf-freecell .vrf-card.red{color:#d88d7a}\n#vrf-freecell .vrf-card.black{color:#203f48}\n#vrf-freecell .vrf-card.vrf-selected{\n  box-shadow:0 0 0 3px rgba(216,183,106,.48), 0 17px 28px rgba(12,38,45,.27), 0 0 22px rgba(216,183,106,.24);\n  transform:translateY(-3px);\n}\n#vrf-freecell .vrf-card.vrf-dimmed{visibility:hidden}\n#vrf-freecell .vrf-card.vrf-hint-source{\n  box-shadow:0 0 0 4px rgba(168,213,208,.22), 0 18px 30px rgba(12,38,45,.24);\n}\n\n#vrf-freecell .vrf-corner{\n  position:absolute;\n  left:4px;\n  top:6px;\n  width:30px;\n  text-align:center;\n  font-weight:950;\n  line-height:.88;\n  font-size:17px;\n  letter-spacing:-.045em;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:1px;\n}\n#vrf-freecell .vrf-corner .suit-small{\n  font-size:19px;\n  line-height:.86;\n  margin-top:0;\n}\n#vrf-freecell .vrf-corner.bottom{\n  left:auto;\n  top:auto;\n  right:4px;\n  bottom:6px;\n  transform:rotate(180deg);\n}\n#vrf-freecell .vrf-center-suit{\n  position:absolute;\n  inset:0;\n  display:grid;\n  place-items:center;\n  font-size:48px;\n  font-weight:950;\n  opacity:.88;\n  text-shadow:0 1px 0 rgba(255,255,255,.30);\n}\n#vrf-freecell .vrf-card.foundation-card{cursor:default}\n\n#vrf-freecell .vrf-ghost{\n  position:absolute;\n  inset:0;\n  z-index:120;\n  pointer-events:none;\n}\n#vrf-freecell .vrf-ghost .vrf-card{\n  pointer-events:none;\n  visibility:visible;\n  box-shadow:0 20px 36px rgba(12,38,45,.32), 0 0 0 2px rgba(168,213,208,.30);\n}\n\n#vrf-freecell .vrf-status{\n  position:absolute;\n  left:50%;\n  bottom:72px;\n  transform:translateX(-50%);\n  min-width:280px;\n  max-width:680px;\n  height:34px;\n  z-index:86;\n  padding:0 18px;\n  border-radius:999px;\n  background:rgba(17,52,61,.36);\n  border:1px solid rgba(242,238,228,.13);\n  color:rgba(242,238,228,.84);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  font-size:13px;\n  letter-spacing:.01em;\n  box-shadow:0 10px 22px rgba(12,38,45,.13);\n  pointer-events:none;\n  text-align:center;\n}\n\n\/* Bottom buttons like requested image *\/\n#vrf-freecell .vrf-bottom-controls{\n  position:absolute;\n  left:50%;\n  bottom:24px;\n  transform:translateX(-50%);\n  z-index:90;\n  display:flex;\n  gap:10px;\n  align-items:center;\n  justify-content:center;\n}\n#vrf-freecell .vrf-pill{\n  height:40px;\n  min-width:104px;\n  padding:0 18px;\n  border-radius:999px;\n  border:1px solid rgba(255,255,255,.52);\n  color:#f8f6ef;\n  font-size:14px;\n  font-weight:800;\n  letter-spacing:.01em;\n  text-shadow:0 1px 0 rgba(0,0,0,.18);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.30),\n    inset 0 -8px 14px rgba(0,0,0,.10),\n    0 8px 16px rgba(11,35,42,.18);\n  cursor:pointer;\n  transition:\n    transform .12s ease,\n    filter .12s ease,\n    box-shadow .12s ease,\n    opacity .12s ease;\n}\n#vrf-freecell .vrf-pill:hover{\n  transform:translateY(-1px);\n  filter:brightness(1.05);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.34),\n    inset 0 -8px 14px rgba(0,0,0,.12),\n    0 10px 18px rgba(11,35,42,.22);\n}\n#vrf-freecell .vrf-pill:active{\n  transform:translateY(1px) scale(.985);\n  filter:brightness(.98);\n}\n#vrf-freecell .vrf-pill:disabled{\n  opacity:.48;\n  cursor:default;\n  transform:none;\n  filter:none;\n}\n#vrf-freecell #vrfNewDeal{\n  background:linear-gradient(180deg, #d9c06b 0%, #bc9442 100%);\n  border-color:rgba(255,245,210,.70);\n  color:#fff9ec;\n}\n#vrf-freecell #vrfRestart{\n  background:linear-gradient(180deg, #5eaeb6 0%, #238296 100%);\n  border-color:rgba(218,247,250,.62);\n  color:#f7ffff;\n}\n#vrf-freecell #vrfUndo{\n  background:linear-gradient(180deg, #a89ce0 0%, #7d73c4 100%);\n  border-color:rgba(241,237,255,.62);\n  color:#fbfaff;\n}\n#vrf-freecell #vrfHint{\n  background:linear-gradient(180deg, #e3efec 0%, #bfd8d4 100%);\n  border-color:rgba(255,255,255,.78);\n  color:#24434a;\n  text-shadow:none;\n}\n\n#vrf-freecell .vrf-overlay{\n  position:absolute;\n  inset:0;\n  z-index:180;\n  display:none;\n  align-items:center;\n  justify-content:center;\n  background:rgba(10,36,43,.56);\n}\n#vrf-freecell .vrf-overlay.active{display:flex}\n\n#vrf-freecell .vrf-popup{\n  width:430px;\n  max-width:calc(100% - 48px);\n  min-height:276px;\n  position:relative;\n  border-radius:28px;\n  padding:34px 34px 28px;\n  background:\n    radial-gradient(circle at 80% 0%, rgba(216,183,106,.15), transparent 38%),\n    linear-gradient(145deg, rgba(242,238,228,.96), rgba(168,213,208,.90));\n  border:1px solid rgba(255,255,255,.50);\n  box-shadow:0 30px 76px rgba(8,28,34,.34), inset 0 0 0 1px rgba(255,255,255,.14);\n  text-align:center;\n  overflow:hidden;\n}\n#vrf-freecell .vrf-popup::before,\n#vrf-freecell .vrf-popup::after{\n  content:\"\";\n  position:absolute;\n  width:156px;\n  height:156px;\n  border-radius:50%;\n  border:1px solid rgba(31,95,103,.08);\n  pointer-events:none;\n}\n#vrf-freecell .vrf-popup::before{\n  left:-86px;\n  top:-86px;\n}\n#vrf-freecell .vrf-popup::after{\n  right:-74px;\n  bottom:-92px;\n}\n\n#vrf-freecell .vrf-start-main,\n#vrf-freecell .vrf-win-main{\n  position:relative;\n  z-index:2;\n}\n\n#vrf-freecell .vrf-lantern-mark{\n  width:58px;\n  height:58px;\n  margin:0 auto -2px;\n  border-radius:50%;\n  background:\n    radial-gradient(circle at 38% 28%, #fff 0 7px, transparent 8px),\n    radial-gradient(circle at 50% 48%, #f2eee4 0 15px, #d8b76a 16px 21px, rgba(125,185,179,.88) 22px 100%);\n  box-shadow:0 0 24px rgba(216,183,106,.28), 0 10px 24px rgba(31,95,103,.16);\n}\n#vrf-freecell .vrf-start-title{\n  margin:0;\n  color:#203f48;\n  font-size:27px;\n  line-height:1.1;\n  font-weight:950;\n  letter-spacing:-.03em;\n}\n\n#vrf-freecell .vrf-start-btn,\n#vrf-freecell .vrf-win-btn{\n  width:210px;\n  height:52px;\n  border:1px solid rgba(255,255,255,.42);\n  border-radius:999px;\n  color:#203f48;\n  background:linear-gradient(180deg,#f2eee4,#d8b76a);\n  font-weight:950;\n  font-size:16px;\n  cursor:pointer;\n  box-shadow:0 16px 32px rgba(8,28,34,.18);\n  transition:transform .12s ease, filter .12s ease;\n}\n#vrf-freecell .vrf-start-btn:hover,\n#vrf-freecell .vrf-win-btn:hover{\n  transform:translateY(-2px);\n  filter:brightness(1.04);\n}\n\n#vrf-freecell .vrf-difficulty{\n  display:flex;\n  gap:9px;\n  justify-content:center;\n  align-items:center;\n}\n#vrf-freecell .vrf-diff-btn{\n  min-width:86px;\n  height:38px;\n  border-radius:999px;\n  border:1px solid rgba(31,95,103,.12);\n  background:rgba(255,255,255,.36);\n  color:rgba(32,63,72,.74);\n  font-size:13px;\n  font-weight:850;\n  cursor:pointer;\n  transition:background .12s ease, color .12s ease, border-color .12s ease, box-shadow .12s ease, transform .12s ease;\n}\n#vrf-freecell .vrf-diff-btn:hover{\n  transform:translateY(-1px);\n  border-color:rgba(31,95,103,.26);\n}\n#vrf-freecell .vrf-diff-btn.active{\n  color:#203f48;\n  background:linear-gradient(180deg,#f2eee4,#d8b76a);\n  border-color:rgba(255,255,255,.42);\n  box-shadow:0 0 0 3px rgba(216,183,106,.14), 0 0 18px rgba(216,183,106,.14);\n}\n\n#vrf-freecell .vrf-help{\n  color:rgba(32,63,72,.72);\n  line-height:1.48;\n  font-size:13px;\n  text-align:center;\n  margin:0;\n}\n\n#vrf-freecell #vrfStartOverlay .vrf-start-main,\n#vrf-freecell #vrfPauseOverlay .vrf-start-main{\n  min-height:210px;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n  gap:14px;\n}\n#vrf-freecell #vrfStartOverlay .vrf-start-btn,\n#vrf-freecell #vrfPauseOverlay .vrf-start-btn{\n  display:block;\n  margin:0 auto;\n}\n#vrf-freecell #vrfStartOverlay .vrf-difficulty{\n  margin:0;\n}\n#vrf-freecell #vrfStartOverlay .vrf-help,\n#vrf-freecell #vrfPauseOverlay .vrf-pause-copy{\n  width:100%;\n  max-width:335px;\n  margin:0 auto;\n  text-align:center;\n  line-height:1.45;\n  display:block;\n}\n\n#vrf-freecell .vrf-win-title{\n  margin:0 0 8px;\n  color:#203f48;\n  font-size:25px;\n  letter-spacing:-.02em;\n}\n#vrf-freecell .vrf-win-text{\n  margin:0 0 18px;\n  color:rgba(32,63,72,.72);\n  font-size:14px;\n}\n#vrf-freecell .vrf-win-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:9px;\n  margin:18px 0 22px;\n}\n#vrf-freecell .vrf-win-box{\n  border-radius:18px;\n  padding:11px 8px;\n  background:rgba(255,255,255,.34);\n  border:1px solid rgba(31,95,103,.10);\n}\n#vrf-freecell .vrf-win-box span{\n  display:block;\n  color:rgba(32,63,72,.58);\n  font-size:11px;\n  text-transform:uppercase;\n  letter-spacing:.08em;\n}\n#vrf-freecell .vrf-win-box b{\n  color:#203f48;\n  font-size:18px;\n}\n\n#vrf-freecell .vrf-rotate-note{\n  position:absolute;\n  inset:0;\n  z-index:250;\n  display:none;\n  place-items:center;\n  padding:24px;\n  background:rgba(10,36,43,.68);\n  color:#f2eee4;\n  text-align:center;\n}\n#vrf-freecell.vrf-portrait-fullscreen .vrf-rotate-note{display:grid}\n#vrf-freecell .vrf-rotate-card{\n  width:min(320px,84vw);\n  padding:22px 20px;\n  border-radius:24px;\n  background:rgba(17,52,61,.82);\n  border:1px solid rgba(242,238,228,.20);\n  box-shadow:0 24px 60px rgba(8,28,34,.36);\n}\n#vrf-freecell .vrf-rotate-card b{\n  display:block;\n  font-size:18px;\n  margin-bottom:7px;\n}\n#vrf-freecell .vrf-rotate-card span{\n  display:block;\n  font-size:13px;\n  line-height:1.45;\n  opacity:.78;\n}\n\n@media (max-width:720px){\n  #vrf-freecell{\n    width:100%;\n    border-radius:18px;\n  }\n}\n\n\n\/* Honeybound FreeCell total reskin layer *\/\n#vrf-freecell{\n  color:#fff7ee;\n  background:\n    radial-gradient(circle at 76% 14%, rgba(198,161,91,.24), transparent 27%),\n    radial-gradient(circle at 18% 19%, rgba(217,165,175,.18), transparent 24%),\n    radial-gradient(circle at 12% 86%, rgba(62,42,49,.44), transparent 42%),\n    linear-gradient(155deg,#3e1f2a 0%,#6e2c3a 42%,#5b3948 72%,#2f1b24 100%);\n  box-shadow:0 24px 70px rgba(36,17,24,.38);\n}\n#vrf-freecell .vrf-fit{\n  background:\n    radial-gradient(circle at 76% 14%, rgba(198,161,91,.23), transparent 27%),\n    radial-gradient(circle at 17% 18%, rgba(217,165,175,.17), transparent 24%),\n    radial-gradient(circle at 12% 86%, rgba(62,42,49,.48), transparent 42%),\n    linear-gradient(155deg,#3e1f2a 0%,#6e2c3a 42%,#5b3948 72%,#2f1b24 100%);\n}\n#vrf-freecell .vrf-fit::before{\n  background:\n    radial-gradient(circle at 10% 28%, rgba(255,247,238,.14) 0 2px, transparent 3px),\n    radial-gradient(circle at 21% 64%, rgba(244,235,221,.10) 0 2px, transparent 3px),\n    radial-gradient(circle at 43% 26%, rgba(198,161,91,.16) 0 2px, transparent 3px),\n    radial-gradient(circle at 70% 34%, rgba(255,247,238,.12) 0 2px, transparent 3px),\n    radial-gradient(circle at 86% 68%, rgba(217,165,175,.13) 0 3px, transparent 4px),\n    radial-gradient(circle at 92% 28%, rgba(244,235,221,.10) 0 2px, transparent 3px),\n    radial-gradient(ellipse at 84% 20%, rgba(198,161,91,.18), transparent 28%),\n    linear-gradient(104deg, rgba(255,255,255,.12), transparent 25%),\n    linear-gradient(77deg, rgba(198,161,91,.07), transparent 37%);\n}\n#vrf-freecell .vrf-fit::after{\n  background:\n    radial-gradient(circle at 50% 54%, transparent 0 57%, rgba(36,17,24,.26) 100%),\n    linear-gradient(180deg, rgba(255,247,238,.045), transparent 28%);\n}\n#vrf-freecell .vrf-table-glow{\n  background:\n    radial-gradient(circle at 28% 15%, rgba(255,247,238,.075), transparent 31%),\n    radial-gradient(circle at 76% 84%, rgba(198,161,91,.10), transparent 30%),\n    linear-gradient(135deg, rgba(110,44,58,.34), rgba(62,42,49,.30));\n  border-color:rgba(198,161,91,.24);\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.055), inset 0 0 56px rgba(255,247,238,.035), inset 0 -32px 60px rgba(36,17,24,.18), 0 28px 76px rgba(36,17,24,.28);\n}\n#vrf-freecell .vrf-table-glow::before{\n  content:\"\";position:absolute;inset:16px;border-radius:28px;border:1px solid rgba(198,161,91,.12);\n  background:linear-gradient(112deg,rgba(255,247,238,.055),transparent 28%),radial-gradient(circle at 48% 42%,rgba(184,121,136,.08),transparent 46%);\n}\n#vrf-freecell .vrf-ornament{opacity:.20}\n#vrf-freecell .vrf-ornament.left{border-left-color:rgba(198,161,91,.30);border-bottom-color:rgba(198,161,91,.16)}\n#vrf-freecell .vrf-ornament.right{border-right-color:rgba(198,161,91,.26);border-bottom-color:rgba(198,161,91,.15)}\n#vrf-freecell .vrf-ornament.left::before,#vrf-freecell .vrf-ornament.left::after,#vrf-freecell .vrf-ornament.right::before,#vrf-freecell .vrf-ornament.right::after{background:rgba(217,165,175,.10);border-color:rgba(244,235,221,.08)}\n#vrf-freecell .vrf-icon{border-color:rgba(198,161,91,.34);background:radial-gradient(circle at 34% 24%,rgba(255,247,238,.17),transparent 33%),rgba(62,30,42,.58);color:#fff7ee;box-shadow:0 11px 24px rgba(36,17,24,.24),inset 0 1px 0 rgba(255,255,255,.10)}\n#vrf-freecell .vrf-icon:hover{background:radial-gradient(circle at 34% 24%,rgba(255,247,238,.22),transparent 33%),rgba(110,44,58,.62);border-color:rgba(244,235,221,.42)}\n#vrf-freecell .vrf-sound-slash{background:#c06a7a}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::before{border-left-color:#6e2c3a}\n#vrf-freecell .vrf-stats{background:linear-gradient(180deg,rgba(110,44,58,.46),rgba(62,42,49,.56)),linear-gradient(90deg,rgba(198,161,91,.13),rgba(184,121,136,.08));border-color:rgba(198,161,91,.32);box-shadow:0 15px 32px rgba(36,17,24,.20),inset 0 1px 0 rgba(255,255,255,.10),inset 0 -10px 18px rgba(62,30,42,.18)}\n#vrf-freecell .vrf-stat{background:linear-gradient(180deg,rgba(255,247,238,.14),rgba(62,30,42,.18));border-color:rgba(244,235,221,.10);color:rgba(255,247,238,.78)}\n#vrf-freecell .vrf-stat b{color:#fff7ee}\n#vrf-freecell .vrf-label{color:rgba(255,247,238,.92);background:rgba(62,30,42,.40);border-color:rgba(198,161,91,.20)}\n#vrf-freecell .vrf-slot{background:radial-gradient(circle at 50% 26%,rgba(255,247,238,.10),transparent 32%),linear-gradient(145deg,rgba(244,235,221,.06),rgba(62,30,42,.14));border-color:rgba(198,161,91,.43);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 10px 25px rgba(36,17,24,.13)}\n#vrf-freecell .vrf-column-zone{background:linear-gradient(180deg,rgba(255,247,238,.035),rgba(62,30,42,.055));border-color:rgba(198,161,91,.065)}\n#vrf-freecell .vrf-slot.vrf-valid,#vrf-freecell .vrf-column-zone.vrf-valid{border-color:rgba(217,165,175,.96);background:radial-gradient(circle at 50% 22%,rgba(217,165,175,.27),transparent 54%),rgba(198,161,91,.10);box-shadow:0 0 0 3px rgba(217,165,175,.11),0 0 25px rgba(198,161,91,.26)}\n#vrf-freecell .vrf-slot.vrf-hint-target,#vrf-freecell .vrf-column-zone.vrf-hint-target{box-shadow:0 0 0 5px rgba(255,247,238,.15),0 0 35px rgba(198,161,91,.35)}\n#vrf-freecell .vrf-card{background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.86),transparent 55%),linear-gradient(155deg,#fff9f1 0%,#f4ebdd 52%,#dfcfc1 100%);border-color:rgba(110,44,58,.30);box-shadow:0 12px 22px rgba(36,17,24,.24),inset 0 0 0 1px rgba(255,255,255,.48);color:#433039}\n#vrf-freecell .vrf-card::before{border-color:rgba(184,121,136,.18)}\n#vrf-freecell .vrf-card::after{background:linear-gradient(90deg,transparent,rgba(110,44,58,.10),transparent)}\n#vrf-freecell .vrf-card.red{color:#b04e62}#vrf-freecell .vrf-card.black{color:#433039}\n#vrf-freecell .vrf-card.suit-H{color:#b04e62}#vrf-freecell .vrf-card.suit-D{color:#c06a7a}#vrf-freecell .vrf-card.suit-C{color:#4a343c}#vrf-freecell .vrf-card.suit-S{color:#38262d}\n#vrf-freecell .vrf-card.vrf-selected{box-shadow:0 0 0 3px rgba(198,161,91,.50),0 18px 30px rgba(36,17,24,.30),0 0 23px rgba(217,165,175,.28)}\n#vrf-freecell .vrf-card.vrf-hint-source{box-shadow:0 0 0 4px rgba(217,165,175,.25),0 18px 30px rgba(36,17,24,.25)}\n#vrf-freecell .vrf-corner{gap:2px}#vrf-freecell .vrf-corner .suit-small{width:19px;height:19px;display:grid;place-items:center;margin-top:0;font-size:0}\n#vrf-freecell .vrf-center-suit{font-size:0;opacity:.88;filter:drop-shadow(0 1px 0 rgba(255,255,255,.34))}\n#vrf-freecell .vrf-suit-shape{position:relative;display:block;color:currentColor;width:46px;height:46px}\n#vrf-freecell .vrf-suit-shape.small{width:17px;height:17px}\n#vrf-freecell .vrf-suit-lantern-bloom{width:34px;height:34px;background:currentColor;transform:rotate(-45deg) scale(.76);border-radius:24% 24% 10% 24%;box-shadow:inset -3px -4px 0 rgba(62,30,42,.10)}\n#vrf-freecell .vrf-suit-lantern-bloom.small{width:14px;height:14px}\n#vrf-freecell .vrf-suit-lantern-bloom::before,#vrf-freecell .vrf-suit-lantern-bloom::after{content:\"\";position:absolute;width:100%;height:100%;border-radius:50%;background:currentColor}\n#vrf-freecell .vrf-suit-lantern-bloom::before{left:0;top:-50%}#vrf-freecell .vrf-suit-lantern-bloom::after{left:50%;top:0}\n#vrf-freecell .vrf-suit-brass-gem{width:37px;height:37px;background:currentColor;transform:rotate(45deg) scale(.84);border-radius:5px;box-shadow:inset 4px 4px 0 rgba(255,255,255,.13),inset -4px -4px 0 rgba(62,30,42,.10)}\n#vrf-freecell .vrf-suit-brass-gem.small{width:15px;height:15px;border-radius:3px}\n#vrf-freecell .vrf-suit-brass-gem::before{content:\"\";position:absolute;inset:18%;border:1px solid rgba(255,247,238,.22);border-radius:3px}\n#vrf-freecell .vrf-suit-olive-clover{background:radial-gradient(circle at 50% 28%,currentColor 0 27%,transparent 28%),radial-gradient(circle at 31% 50%,currentColor 0 27%,transparent 28%),radial-gradient(circle at 69% 50%,currentColor 0 27%,transparent 28%),linear-gradient(currentColor,currentColor) 50% 72% \/ 22% 38% no-repeat;border-radius:40%}\n#vrf-freecell .vrf-suit-olive-clover::after{content:\"\";position:absolute;left:36%;right:36%;bottom:5%;height:24%;background:currentColor;border-radius:0 0 999px 999px}\n#vrf-freecell .vrf-suit-ember-spade{background:currentColor;clip-path:polygon(50% 0%,88% 36%,76% 66%,59% 66%,59% 100%,41% 100%,41% 66%,24% 66%,12% 36%);border-radius:8px;box-shadow:inset -3px -5px 0 rgba(0,0,0,.10)}\n#vrf-freecell .vrf-suit-ember-spade.small{border-radius:4px}\n#vrf-freecell .vrf-ghost .vrf-card{box-shadow:0 22px 38px rgba(36,17,24,.34),0 0 0 2px rgba(217,165,175,.32)}\n#vrf-freecell .vrf-status{background:rgba(62,30,42,.42);border-color:rgba(244,235,221,.14);color:rgba(255,247,238,.84);box-shadow:0 10px 24px rgba(36,17,24,.16);max-width:700px}\n#vrf-freecell .vrf-pill{border-color:rgba(255,247,238,.52);color:#fff7ee;box-shadow:inset 0 1px 0 rgba(255,255,255,.30),inset 0 -8px 14px rgba(0,0,0,.12),0 9px 18px rgba(36,17,24,.22)}\n#vrf-freecell #vrfNewDeal{background:linear-gradient(180deg,#d4b66b 0%,#a77e3f 100%);border-color:rgba(255,245,210,.70);color:#fff9ec}\n#vrf-freecell #vrfRestart{background:linear-gradient(180deg,#b87988 0%,#8f4a58 100%);border-color:rgba(255,220,229,.62);color:#fff7ee}\n#vrf-freecell #vrfUndo{background:linear-gradient(180deg,#8b6a85 0%,#6e556b 100%);border-color:rgba(245,231,244,.56);color:#fbf4fb}\n#vrf-freecell #vrfHint{background:linear-gradient(180deg,#f4ebdd 0%,#d8c1ba 100%);border-color:rgba(255,255,255,.78);color:#5b3948;text-shadow:none}\n#vrf-freecell .vrf-overlay{background:rgba(36,17,24,.62)}\n#vrf-freecell .vrf-popup{background:radial-gradient(circle at 80% 0%,rgba(198,161,91,.18),transparent 38%),radial-gradient(circle at 18% 20%,rgba(217,165,175,.18),transparent 34%),linear-gradient(145deg,rgba(255,247,238,.97),rgba(235,211,204,.92));border-color:rgba(255,255,255,.56);box-shadow:0 32px 82px rgba(36,17,24,.38),inset 0 0 0 1px rgba(255,255,255,.15)}\n#vrf-freecell .vrf-popup::before,#vrf-freecell .vrf-popup::after{border-color:rgba(110,44,58,.09)}\n#vrf-freecell .vrf-lantern-mark{position:relative;background:radial-gradient(circle at 38% 28%,#fff7ee 0 7px,transparent 8px),radial-gradient(circle at 50% 48%,#f4ebdd 0 14px,#c6a15b 15px 20px,#8f4a58 21px 100%);box-shadow:0 0 24px rgba(198,161,91,.30),0 10px 24px rgba(110,44,58,.18)}\n#vrf-freecell .vrf-lantern-mark::before{content:\"\";position:absolute;left:17px;top:18px;width:24px;height:24px;background:#b04e62;transform:rotate(-45deg) scale(.72);border-radius:24% 24% 10% 24%}\n#vrf-freecell .vrf-lantern-mark::after{content:\"\";position:absolute;left:16px;top:10px;width:25px;height:25px;border-radius:50%;border:1px solid rgba(255,247,238,.55)}\n#vrf-freecell .vrf-start-title,#vrf-freecell .vrf-win-title{color:#4b2a35}\n#vrf-freecell .vrf-start-btn,#vrf-freecell .vrf-win-btn{color:#4b2a35;background:linear-gradient(180deg,#fff7ee,#c6a15b);border-color:rgba(255,255,255,.50);box-shadow:0 16px 34px rgba(36,17,24,.20)}\n#vrf-freecell .vrf-diff-btn{border-color:rgba(110,44,58,.13);background:rgba(255,255,255,.38);color:rgba(75,42,53,.74)}\n#vrf-freecell .vrf-diff-btn:hover{border-color:rgba(110,44,58,.26)}\n#vrf-freecell .vrf-diff-btn.active{color:#4b2a35;background:linear-gradient(180deg,#fff7ee,#c6a15b);border-color:rgba(255,255,255,.50);box-shadow:0 0 0 3px rgba(198,161,91,.14),0 0 18px rgba(198,161,91,.14)}\n#vrf-freecell .vrf-help,#vrf-freecell .vrf-win-text{color:rgba(75,42,53,.72)}\n#vrf-freecell .vrf-win-box{background:rgba(255,255,255,.36);border-color:rgba(110,44,58,.10)}\n#vrf-freecell .vrf-win-box span{color:rgba(75,42,53,.58)}#vrf-freecell .vrf-win-box b{color:#4b2a35}\n#vrf-freecell .vrf-rotate-note{background:rgba(36,17,24,.72);color:#fff7ee}\n#vrf-freecell .vrf-rotate-card{background:rgba(62,30,42,.86);border-color:rgba(244,235,221,.22);box-shadow:0 24px 62px rgba(36,17,24,.38)}\n\n<\/style>\n\n\n<style>\n\/* Amber Lantern polish pass *\/\n#vrf-freecell .vrf-slot{\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,247,238,.08), transparent 34%),\n    linear-gradient(180deg, #8f5967 0%, #7a4754 48%, #653844 100%);\n  border:1.2px dashed rgba(214,180,135,.44);\n  box-shadow:\n    inset 0 1px 0 rgba(255,247,238,.10),\n    inset 0 0 0 1px rgba(255,255,255,.02),\n    inset 0 -14px 24px rgba(57,27,35,.16),\n    0 8px 20px rgba(36,17,24,.10);\n}\n#vrf-freecell .vrf-slot::before{\n  inset:12px;\n  border-color:rgba(255,247,238,.08);\n  background:linear-gradient(180deg, rgba(255,247,238,.03), rgba(255,247,238,0));\n}\n#vrf-freecell .vrf-column-zone{\n  background:linear-gradient(180deg, rgba(255,247,238,.018), rgba(62,30,42,.028));\n  border-color:rgba(214,180,135,.045);\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.010);\n}\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border-color:rgba(217,165,175,.90);\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,238,243,.14), transparent 42%),\n    linear-gradient(180deg, rgba(177,108,123,.90), rgba(125,74,88,.92));\n  box-shadow:0 0 0 3px rgba(217,165,175,.10), 0 0 24px rgba(198,161,91,.22);\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:0 0 0 4px rgba(255,247,238,.12), 0 0 30px rgba(198,161,91,.26);\n}\n#vrf-freecell .vrf-status{\n  bottom:82px;\n  min-width:360px;\n  max-width:640px;\n  padding:0 16px;\n  background:rgba(75,42,53,.48);\n  border-color:rgba(255,247,238,.12);\n  box-shadow:0 9px 20px rgba(36,17,24,.14);\n}\n#vrf-freecell #vrfHint{\n  background:linear-gradient(180deg,#ead8d2 0%, #c9acaf 100%);\n  border-color:rgba(255,245,241,.76);\n  color:#5a3742;\n}\n#vrf-freecell .vrf-suit-ember-spade{\n  width:36px;\n  height:40px;\n  background:none;\n  clip-path:none;\n  border-radius:0;\n  box-shadow:none;\n}\n#vrf-freecell .vrf-suit-ember-spade::before{\n  content:\"\";\n  position:absolute;\n  left:50%;\n  top:0;\n  width:28px;\n  height:28px;\n  background:currentColor;\n  transform:translateX(-50%) rotate(45deg);\n  border-radius:4px 13px 4px 13px;\n  box-shadow:inset -3px -4px 0 rgba(0,0,0,.08);\n}\n#vrf-freecell .vrf-suit-ember-spade::after{\n  content:\"\";\n  position:absolute;\n  left:50%;\n  bottom:1px;\n  width:12px;\n  height:18px;\n  background:currentColor;\n  transform:translateX(-50%);\n  clip-path:polygon(50% 0%, 100% 38%, 75% 38%, 75% 100%, 25% 100%, 25% 38%, 0 38%);\n}\n#vrf-freecell .vrf-suit-ember-spade.small{\n  width:15px;\n  height:17px;\n}\n#vrf-freecell .vrf-suit-ember-spade.small::before{\n  width:12px;\n  height:12px;\n  border-radius:2px 6px 2px 6px;\n  box-shadow:none;\n}\n#vrf-freecell .vrf-suit-ember-spade.small::after{\n  width:5px;\n  height:8px;\n  bottom:0;\n}\n<\/style>\n\n\n<style>\n\/* Amber Lantern label polish v2 *\/\n#vrf-freecell .vrf-label{\n  background:linear-gradient(180deg, #6d3341 0%, #5a2b37 100%);\n  border:1px solid rgba(214,180,135,.70);\n  color:#fff4ea;\n  box-shadow:\n    inset 0 1px 0 rgba(255,247,238,.12),\n    inset 0 -8px 14px rgba(36,17,24,.16),\n    0 8px 18px rgba(36,17,24,.18);\n}\n<\/style>\n\n\n<style>\n\/* Honeybound FreeCell - outline consistency and tableau height adjustment *\/\n#vrf-freecell{\n  --vrf-outline-color:rgba(214,180,135,.58);\n  --vrf-outline-soft:rgba(214,180,135,.34);\n  --vrf-outline-width:1.45px;\n}\n\n\/* Cells & Foundations labels stay slightly higher *\/\n#vrf-freecell .vrf-label{\n  top:78px;\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color);\n  background:linear-gradient(180deg, #6d3341 0%, #5a2b37 100%);\n  color:#fff4ea;\n  box-shadow:\n    inset 0 1px 0 rgba(255,247,238,.12),\n    inset 0 -8px 14px rgba(36,17,24,.16),\n    0 8px 18px rgba(36,17,24,.18);\n}\n\n\/* Main lantern table outline: clearer, same tone, not overly heavy *\/\n#vrf-freecell .vrf-table-glow{\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color);\n  box-shadow:\n    inset 0 0 0 var(--vrf-outline-width) rgba(255,247,238,.035),\n    inset 0 0 52px rgba(255,247,238,.032),\n    inset 0 -30px 56px rgba(36,17,24,.17),\n    0 24px 66px rgba(36,17,24,.25);\n}\n#vrf-freecell .vrf-table-glow::before{\n  border:var(--vrf-outline-width) solid var(--vrf-outline-soft);\n}\n\n\/* Free cell and foundation containers: same outline thickness and color *\/\n#vrf-freecell .vrf-slot{\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color);\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,247,238,.08), transparent 34%),\n    linear-gradient(180deg, #8f5967 0%, #7a4754 48%, #653844 100%);\n  box-shadow:\n    inset 0 1px 0 rgba(255,247,238,.10),\n    inset 0 0 0 1px rgba(255,255,255,.02),\n    inset 0 -14px 24px rgba(57,27,35,.16),\n    0 8px 20px rgba(36,17,24,.10);\n}\n#vrf-freecell .vrf-slot::before{\n  border:var(--vrf-outline-width) solid var(--vrf-outline-soft);\n  background:linear-gradient(180deg, rgba(255,247,238,.03), rgba(255,247,238,0));\n}\n\n\/* Tableau containers: longer again, with the same outline color\/thickness *\/\n#vrf-freecell .vrf-column-zone{\n  height:372px !important;\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color);\n  background:\n    linear-gradient(180deg, rgba(255,247,238,.026), rgba(62,30,42,.040));\n  box-shadow:\n    inset 0 0 0 1px rgba(255,255,255,.010);\n}\n\n\/* Valid and hint states keep the same visual family *\/\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border:var(--vrf-outline-width) solid rgba(226,177,187,.92);\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,238,243,.15), transparent 42%),\n    linear-gradient(180deg, rgba(177,108,123,.90), rgba(125,74,88,.92));\n  box-shadow:\n    0 0 0 3px rgba(226,177,187,.10),\n    0 0 24px rgba(198,161,91,.23);\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:\n    0 0 0 4px rgba(255,247,238,.12),\n    0 0 30px rgba(198,161,91,.27);\n}\n<\/style>\n\n\n<style>\n\/* Amber Lantern - spacing and bottom status solid pass *\/\n#vrf-freecell .vrf-status{\n  background:\n    radial-gradient(circle at 34% 10%, rgba(255,247,238,.14), transparent 38%),\n    linear-gradient(180deg, #6d3341 0%, #5a2b37 100%);\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color);\n  color:#fff4ea;\n  box-shadow:\n    inset 0 1px 0 rgba(255,247,238,.12),\n    inset 0 -8px 14px rgba(36,17,24,.16),\n    0 8px 18px rgba(36,17,24,.18);\n}\n<\/style>\n\n\n<style>\n\/* Text-only adjustment for FREE CELLS and FOUNDATIONS labels *\/\n#vrf-freecell .vrf-label .vrf-label-text{\n  display:inline-block;\n  transform:translateY(-1.5px);\n}\n<\/style>\n\n\n<style>\n\/* Slightly bolder Score \/ Time \/ Moves text *\/\n#vrf-freecell .vrf-stat{\n  font-weight:850;\n}\n#vrf-freecell .vrf-stat b{\n  font-weight:950;\n}\n<\/style>\n\n\n\n<style>\n\/* Honeybound FreeCell final visual skin *\/\n#vrf-freecell{\n  --vrf-card-w:86px;\n  --vrf-card-h:116px;\n  --alf-walnut:#3B241B;\n  --alf-charcoal:#2A1C17;\n  --alf-plum:#5A3B42;\n  --alf-olive:#5C5A3E;\n  --alf-amber:#B86A2D;\n  --alf-gold:#D8A24A;\n  --alf-brass:#C79B5A;\n  --alf-copper:#A45F43;\n  --alf-parchment:#F5EBDD;\n  --alf-cream:#FFF3D8;\n  --alf-moss:#6B7254;\n  --vrf-outline-color:rgba(199,155,90,.66);\n  --vrf-outline-soft:rgba(255,243,216,.22);\n  --vrf-outline-width:1.45px;\n  color:var(--alf-cream);\n  background:\n    radial-gradient(circle at 72% 16%, rgba(216,162,74,.34), transparent 25%),\n    radial-gradient(circle at 20% 18%, rgba(164,95,67,.18), transparent 24%),\n    radial-gradient(circle at 14% 86%, rgba(92,90,62,.28), transparent 40%),\n    linear-gradient(155deg,#2A1C17 0%,#3B241B 36%,#5A3B42 70%,#2B2119 100%) !important;\n  box-shadow:0 24px 70px rgba(42,28,23,.42);\n}\n#vrf-freecell .vrf-fit{\n  background:\n    radial-gradient(circle at 72% 16%, rgba(216,162,74,.32), transparent 25%),\n    radial-gradient(circle at 16% 20%, rgba(255,243,216,.08), transparent 20%),\n    radial-gradient(circle at 84% 82%, rgba(92,90,62,.24), transparent 30%),\n    radial-gradient(circle at 14% 86%, rgba(164,95,67,.16), transparent 38%),\n    linear-gradient(155deg,#2A1C17 0%,#3B241B 38%,#5A3B42 72%,#271914 100%) !important;\n}\n#vrf-freecell .vrf-fit::before{\n  background:\n    radial-gradient(circle at 10% 28%, rgba(255,243,216,.12) 0 2px, transparent 3px),\n    radial-gradient(circle at 22% 65%, rgba(216,162,74,.12) 0 2px, transparent 3px),\n    radial-gradient(circle at 44% 25%, rgba(255,243,216,.10) 0 2px, transparent 3px),\n    radial-gradient(circle at 68% 34%, rgba(216,162,74,.15) 0 2px, transparent 3px),\n    radial-gradient(circle at 87% 68%, rgba(199,155,90,.16) 0 3px, transparent 4px),\n    radial-gradient(circle at 93% 28%, rgba(255,243,216,.09) 0 2px, transparent 3px),\n    radial-gradient(ellipse at 76% 18%, rgba(216,162,74,.24), transparent 30%),\n    linear-gradient(104deg, rgba(255,243,216,.10), transparent 26%),\n    linear-gradient(77deg, rgba(199,155,90,.07), transparent 38%) !important;\n  opacity:.92;\n}\n#vrf-freecell .vrf-fit::after{\n  background:\n    radial-gradient(circle at 50% 54%, transparent 0 58%, rgba(42,28,23,.34) 100%),\n    linear-gradient(180deg, rgba(255,243,216,.045), transparent 28%) !important;\n}\n#vrf-freecell .vrf-table-glow{\n  background:\n    radial-gradient(circle at 30% 16%, rgba(255,243,216,.07), transparent 31%),\n    radial-gradient(circle at 76% 84%, rgba(216,162,74,.12), transparent 31%),\n    linear-gradient(135deg, rgba(59,36,27,.58), rgba(92,90,62,.20)) !important;\n  border:var(--vrf-outline-width) solid var(--vrf-outline-color) !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(255,243,216,.045),\n    inset 0 0 56px rgba(255,243,216,.030),\n    inset 0 -32px 62px rgba(42,28,23,.25),\n    0 28px 76px rgba(42,28,23,.30) !important;\n}\n#vrf-freecell .vrf-table-glow::before{\n  content:\"\";\n  position:absolute;\n  inset:16px;\n  border-radius:28px;\n  border:var(--vrf-outline-width) solid rgba(199,155,90,.28) !important;\n  background:\n    linear-gradient(112deg,rgba(255,243,216,.052),transparent 30%),\n    radial-gradient(circle at 52% 42%,rgba(184,106,45,.09),transparent 46%);\n}\n#vrf-freecell .vrf-ornament{\n  opacity:.22 !important;\n}\n#vrf-freecell .vrf-ornament.left{\n  border-left-color:rgba(199,155,90,.34) !important;\n  border-bottom-color:rgba(199,155,90,.18) !important;\n}\n#vrf-freecell .vrf-ornament.right{\n  border-right-color:rgba(199,155,90,.32) !important;\n  border-bottom-color:rgba(199,155,90,.18) !important;\n}\n#vrf-freecell .vrf-ornament.left::before,\n#vrf-freecell .vrf-ornament.left::after,\n#vrf-freecell .vrf-ornament.right::before,\n#vrf-freecell .vrf-ornament.right::after{\n  background:rgba(216,162,74,.10) !important;\n  border-color:rgba(255,243,216,.10) !important;\n  border-radius:999px 999px 999px 18px !important;\n}\n#vrf-freecell .vrf-icon{\n  border:1.45px solid rgba(199,155,90,.58) !important;\n  background:\n    radial-gradient(circle at 34% 24%,rgba(255,243,216,.18),transparent 33%),\n    linear-gradient(180deg,rgba(74,45,31,.78),rgba(42,28,23,.64)) !important;\n  color:var(--alf-cream) !important;\n  box-shadow:\n    0 11px 24px rgba(42,28,23,.27),\n    inset 0 1px 0 rgba(255,243,216,.12) !important;\n}\n#vrf-freecell .vrf-icon:hover{\n  background:\n    radial-gradient(circle at 34% 24%,rgba(255,243,216,.24),transparent 33%),\n    linear-gradient(180deg,rgba(94,55,35,.80),rgba(59,36,27,.70)) !important;\n  border-color:rgba(255,243,216,.44) !important;\n  box-shadow:0 0 0 3px rgba(216,162,74,.10),0 12px 26px rgba(42,28,23,.30),inset 0 1px 0 rgba(255,243,216,.13) !important;\n}\n#vrf-freecell .vrf-sound-slash{background:var(--alf-copper) !important;}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::before{border-left-color:#5C5A3E !important;}\n#vrf-freecell .vrf-stats{\n  background:\n    linear-gradient(180deg,rgba(74,45,31,.72),rgba(42,28,23,.60)),\n    linear-gradient(90deg,rgba(216,162,74,.16),rgba(92,90,62,.10)) !important;\n  border:1.45px solid rgba(199,155,90,.62) !important;\n  box-shadow:\n    0 15px 32px rgba(42,28,23,.23),\n    inset 0 1px 0 rgba(255,243,216,.11),\n    inset 0 -10px 18px rgba(42,28,23,.20) !important;\n}\n#vrf-freecell .vrf-stat{\n  background:linear-gradient(180deg,rgba(255,243,216,.13),rgba(92,90,62,.14)) !important;\n  border:1px solid rgba(255,243,216,.10) !important;\n  color:rgba(255,243,216,.80) !important;\n  font-weight:850 !important;\n}\n#vrf-freecell .vrf-stat b{\n  color:#FFF6E4 !important;\n  font-weight:950 !important;\n}\n#vrf-freecell .vrf-label{\n  top:78px !important;\n  border:var(--vrf-outline-width) solid rgba(199,155,90,.72) !important;\n  background:linear-gradient(180deg,#664027 0%, #4A2D1F 100%) !important;\n  color:#FFF3D8 !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,243,216,.13),\n    inset 0 -8px 14px rgba(42,28,23,.16),\n    0 8px 18px rgba(42,28,23,.20) !important;\n}\n#vrf-freecell .vrf-slot{\n  border:var(--vrf-outline-width) solid rgba(199,155,90,.62) !important;\n  background:\n    radial-gradient(circle at 50% 22%,rgba(255,243,216,.08),transparent 35%),\n    linear-gradient(180deg,#6A5737 0%,#56462F 48%,#3D2B20 100%) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,243,216,.11),\n    inset 0 0 0 1px rgba(255,255,255,.02),\n    inset 0 -14px 24px rgba(42,28,23,.17),\n    0 8px 20px rgba(42,28,23,.12) !important;\n}\n#vrf-freecell .vrf-slot::before{\n  border:var(--vrf-outline-width) solid rgba(255,243,216,.12) !important;\n  background:linear-gradient(180deg,rgba(255,243,216,.035),rgba(255,243,216,0)) !important;\n}\n#vrf-freecell .vrf-column-zone{\n  height:372px !important;\n  border:var(--vrf-outline-width) solid rgba(199,155,90,.34) !important;\n  background:linear-gradient(180deg,rgba(255,243,216,.024),rgba(42,28,23,.042)) !important;\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.010) !important;\n}\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border:var(--vrf-outline-width) solid rgba(255,209,129,.95) !important;\n  background:\n    radial-gradient(circle at 50% 22%,rgba(255,243,216,.16),transparent 42%),\n    linear-gradient(180deg,rgba(184,106,45,.76),rgba(92,90,62,.78)) !important;\n  box-shadow:0 0 0 3px rgba(216,162,74,.13),0 0 25px rgba(216,162,74,.30) !important;\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:0 0 0 4px rgba(255,243,216,.14),0 0 32px rgba(216,162,74,.36) !important;\n}\n#vrf-freecell .vrf-card{\n  background:\n    radial-gradient(circle at 50% 0%,rgba(255,255,255,.84),transparent 55%),\n    linear-gradient(155deg,#FFF8E8 0%,#F5EBDD 52%,#DDC9AA 100%) !important;\n  border:1px solid rgba(74,45,31,.36) !important;\n  box-shadow:\n    0 12px 22px rgba(42,28,23,.26),\n    inset 0 0 0 1px rgba(255,255,255,.50) !important;\n  color:#2A1C17 !important;\n}\n#vrf-freecell .vrf-card::before{border-color:rgba(199,155,90,.24) !important;}\n#vrf-freecell .vrf-card::after{background:linear-gradient(90deg,transparent,rgba(74,45,31,.12),transparent) !important;}\n#vrf-freecell .vrf-card.red{color:#A45F43 !important;}\n#vrf-freecell .vrf-card.black{color:#2A1C17 !important;}\n#vrf-freecell .vrf-card.suit-H{color:#B86A2D !important;}\n#vrf-freecell .vrf-card.suit-D{color:#D8A24A !important;}\n#vrf-freecell .vrf-card.suit-C{color:#6B7254 !important;}\n#vrf-freecell .vrf-card.suit-S{color:#2A1C17 !important;}\n#vrf-freecell .vrf-card.vrf-selected{\n  box-shadow:0 0 0 3px rgba(216,162,74,.54),0 18px 30px rgba(42,28,23,.31),0 0 24px rgba(216,162,74,.28) !important;\n}\n#vrf-freecell .vrf-card.vrf-hint-source{\n  box-shadow:0 0 0 4px rgba(255,209,129,.26),0 18px 30px rgba(42,28,23,.26) !important;\n}\n#vrf-freecell .vrf-corner{gap:2px !important;}\n#vrf-freecell .vrf-corner .suit-small{\n  width:19px !important;\n  height:19px !important;\n  display:grid !important;\n  place-items:center !important;\n  margin-top:0 !important;\n  font-size:0 !important;\n}\n#vrf-freecell .vrf-center-suit{\n  font-size:0 !important;\n  opacity:.90 !important;\n  filter:drop-shadow(0 1px 0 rgba(255,255,255,.34)) !important;\n}\n#vrf-freecell .vrf-suit-shape{\n  position:relative !important;\n  display:block !important;\n  color:currentColor !important;\n  width:46px !important;\n  height:46px !important;\n}\n#vrf-freecell .vrf-suit-shape.small{width:17px !important;height:17px !important;}\n#vrf-freecell .vrf-suit-lantern-bloom{\n  width:34px !important;\n  height:34px !important;\n  background:currentColor !important;\n  transform:rotate(-45deg) scale(.76) !important;\n  border-radius:24% 24% 10% 24% !important;\n  box-shadow:inset -3px -4px 0 rgba(42,28,23,.10),0 0 12px rgba(216,162,74,.12) !important;\n}\n#vrf-freecell .vrf-suit-lantern-bloom.small{width:14px !important;height:14px !important;}\n#vrf-freecell .vrf-suit-lantern-bloom::before,\n#vrf-freecell .vrf-suit-lantern-bloom::after{\n  content:\"\" !important;\n  position:absolute !important;\n  width:100% !important;\n  height:100% !important;\n  border-radius:50% !important;\n  background:currentColor !important;\n}\n#vrf-freecell .vrf-suit-lantern-bloom::before{left:0 !important;top:-50% !important;}\n#vrf-freecell .vrf-suit-lantern-bloom::after{left:50% !important;top:0 !important;}\n#vrf-freecell .vrf-suit-brass-gem{\n  width:37px !important;\n  height:37px !important;\n  background:currentColor !important;\n  transform:rotate(45deg) scale(.84) !important;\n  border-radius:5px !important;\n  box-shadow:inset 4px 4px 0 rgba(255,255,255,.18),inset -4px -4px 0 rgba(42,28,23,.12),0 0 13px rgba(216,162,74,.16) !important;\n}\n#vrf-freecell .vrf-suit-brass-gem.small{width:15px !important;height:15px !important;border-radius:3px !important;}\n#vrf-freecell .vrf-suit-brass-gem::before{\n  content:\"\" !important;\n  position:absolute !important;\n  inset:18% !important;\n  border:1px solid rgba(255,243,216,.32) !important;\n  border-radius:3px !important;\n}\n#vrf-freecell .vrf-suit-olive-clover{\n  background:\n    radial-gradient(circle at 50% 27%,currentColor 0 27%,transparent 28%),\n    radial-gradient(circle at 31% 50%,currentColor 0 27%,transparent 28%),\n    radial-gradient(circle at 69% 50%,currentColor 0 27%,transparent 28%),\n    linear-gradient(currentColor,currentColor) 50% 72% \/ 22% 38% no-repeat !important;\n  border-radius:40% !important;\n}\n#vrf-freecell .vrf-suit-olive-clover::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:36% !important;\n  right:36% !important;\n  bottom:5% !important;\n  height:24% !important;\n  background:currentColor !important;\n  border-radius:0 0 999px 999px !important;\n}\n#vrf-freecell .vrf-suit-ember-spade{\n  width:36px !important;\n  height:40px !important;\n  background:none !important;\n  clip-path:none !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n}\n#vrf-freecell .vrf-suit-ember-spade::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:0 !important;\n  width:28px !important;\n  height:28px !important;\n  background:currentColor !important;\n  transform:translateX(-50%) rotate(45deg) !important;\n  border-radius:4px 13px 4px 13px !important;\n  box-shadow:inset -3px -4px 0 rgba(0,0,0,.10) !important;\n}\n#vrf-freecell .vrf-suit-ember-spade::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  bottom:1px !important;\n  width:12px !important;\n  height:18px !important;\n  background:currentColor !important;\n  transform:translateX(-50%) !important;\n  clip-path:polygon(50% 0%,100% 38%,75% 38%,75% 100%,25% 100%,25% 38%,0 38%) !important;\n}\n#vrf-freecell .vrf-suit-ember-spade.small{width:15px !important;height:17px !important;}\n#vrf-freecell .vrf-suit-ember-spade.small::before{width:12px !important;height:12px !important;border-radius:2px 6px 2px 6px !important;box-shadow:none !important;}\n#vrf-freecell .vrf-suit-ember-spade.small::after{width:5px !important;height:8px !important;bottom:0 !important;}\n#vrf-freecell .vrf-ghost .vrf-card{\n  box-shadow:0 22px 38px rgba(42,28,23,.35),0 0 0 2px rgba(216,162,74,.36) !important;\n}\n#vrf-freecell .vrf-status{\n  bottom:82px !important;\n  min-width:360px;\n  max-width:660px !important;\n  background:\n    radial-gradient(circle at 34% 10%,rgba(255,243,216,.14),transparent 38%),\n    linear-gradient(180deg,#664027 0%,#4A2D1F 100%) !important;\n  border:var(--vrf-outline-width) solid rgba(199,155,90,.66) !important;\n  color:#FFF3D8 !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,243,216,.13),\n    inset 0 -8px 14px rgba(42,28,23,.16),\n    0 8px 18px rgba(42,28,23,.20) !important;\n}\n#vrf-freecell .vrf-pill{\n  border-color:rgba(255,243,216,.54) !important;\n  color:#FFF3D8 !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.28),\n    inset 0 -8px 14px rgba(0,0,0,.13),\n    0 9px 18px rgba(42,28,23,.24) !important;\n}\n#vrf-freecell #vrfNewDeal{\n  background:linear-gradient(180deg,#D8A24A 0%,#B86A2D 100%) !important;\n  border-color:rgba(255,243,216,.72) !important;\n  color:#FFF7E9 !important;\n}\n#vrf-freecell #vrfRestart{\n  background:linear-gradient(180deg,#A45F43 0%,#7E432E 100%) !important;\n  border-color:rgba(255,222,196,.62) !important;\n  color:#FFF3D8 !important;\n}\n#vrf-freecell #vrfUndo{\n  background:linear-gradient(180deg,#6B5843 0%,#4E3B34 100%) !important;\n  border-color:rgba(235,216,192,.56) !important;\n  color:#FFF3D8 !important;\n}\n#vrf-freecell #vrfHint{\n  background:linear-gradient(180deg,#FFF3D8 0%,#DCC8A7 100%) !important;\n  border-color:rgba(255,255,255,.78) !important;\n  color:#4A2D1F !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-overlay{background:rgba(42,28,23,.64) !important;}\n#vrf-freecell .vrf-popup{\n  background:\n    radial-gradient(circle at 80% 0%,rgba(216,162,74,.23),transparent 38%),\n    radial-gradient(circle at 18% 20%,rgba(199,155,90,.16),transparent 34%),\n    linear-gradient(145deg,rgba(255,248,232,.98),rgba(225,201,169,.94)) !important;\n  border-color:rgba(255,255,255,.58) !important;\n  box-shadow:0 32px 82px rgba(42,28,23,.40),inset 0 0 0 1px rgba(255,255,255,.16) !important;\n}\n#vrf-freecell .vrf-popup::before,\n#vrf-freecell .vrf-popup::after{border-color:rgba(74,45,31,.10) !important;}\n#vrf-freecell .vrf-lantern-mark{\n  position:relative !important;\n  width:58px !important;\n  height:58px !important;\n  margin:0 auto -2px !important;\n  border-radius:18px 18px 15px 15px !important;\n  background:\n    radial-gradient(circle at 50% 54%,#FFF3D8 0 8px,rgba(216,162,74,.90) 9px 17px,rgba(184,106,45,.72) 18px 100%) !important;\n  border:2px solid rgba(74,45,31,.24) !important;\n  box-shadow:0 0 28px rgba(216,162,74,.34),0 10px 24px rgba(74,45,31,.18),inset 0 0 0 1px rgba(255,243,216,.18) !important;\n}\n#vrf-freecell .vrf-lantern-mark::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:14px !important;\n  top:-8px !important;\n  width:30px !important;\n  height:18px !important;\n  border:3px solid rgba(74,45,31,.38) !important;\n  border-bottom:none !important;\n  border-radius:15px 15px 0 0 !important;\n  background:transparent !important;\n  transform:none !important;\n}\n#vrf-freecell .vrf-lantern-mark::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:17px !important;\n  top:15px !important;\n  width:24px !important;\n  height:31px !important;\n  border-radius:10px 10px 12px 12px !important;\n  border:1px solid rgba(255,243,216,.55) !important;\n  background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.72),rgba(216,162,74,.20) 48%,transparent 68%) !important;\n  transform:none !important;\n}\n#vrf-freecell .vrf-start-title,\n#vrf-freecell .vrf-win-title{color:#4A2D1F !important;}\n#vrf-freecell .vrf-start-btn,\n#vrf-freecell .vrf-win-btn{\n  color:#4A2D1F !important;\n  background:linear-gradient(180deg,#FFF3D8,#D8A24A) !important;\n  border-color:rgba(255,255,255,.52) !important;\n  box-shadow:0 16px 34px rgba(42,28,23,.21) !important;\n}\n#vrf-freecell .vrf-diff-btn{\n  border-color:rgba(74,45,31,.14) !important;\n  background:rgba(255,255,255,.38) !important;\n  color:rgba(74,45,31,.76) !important;\n}\n#vrf-freecell .vrf-diff-btn:hover{border-color:rgba(74,45,31,.28) !important;}\n#vrf-freecell .vrf-diff-btn.active{\n  color:#4A2D1F !important;\n  background:linear-gradient(180deg,#FFF3D8,#D8A24A) !important;\n  border-color:rgba(255,255,255,.52) !important;\n  box-shadow:0 0 0 3px rgba(216,162,74,.15),0 0 18px rgba(216,162,74,.16) !important;\n}\n#vrf-freecell .vrf-help,\n#vrf-freecell .vrf-win-text{color:rgba(74,45,31,.74) !important;}\n#vrf-freecell .vrf-win-box{\n  background:rgba(255,255,255,.38) !important;\n  border-color:rgba(74,45,31,.11) !important;\n}\n#vrf-freecell .vrf-win-box span{color:rgba(74,45,31,.58) !important;}\n#vrf-freecell .vrf-win-box b{color:#4A2D1F !important;}\n#vrf-freecell .vrf-rotate-note{background:rgba(42,28,23,.74) !important;color:#FFF3D8 !important;}\n#vrf-freecell .vrf-rotate-card{\n  background:rgba(74,45,31,.88) !important;\n  border-color:rgba(255,243,216,.22) !important;\n  box-shadow:0 24px 62px rgba(42,28,23,.40) !important;\n}\n@media (max-width:720px){\n  #vrf-freecell .vrf-status{min-width:320px;}\n}\n<\/style>\n\n\n<style>\n\/* =========================================================\n   Honeybound FreeCell - Comfort Skin\n   Eye-comfort pass: balanced blue-white palette, soft contrast,\n   no amber\/brown leftovers, mechanics untouched.\n   ========================================================= *\/\n\n#vrf-freecell{\n  --vrf-card-w:86px;\n  --vrf-card-h:116px;\n\n  --clf-ink:#254867;\n  --clf-ink-deep:#16344f;\n  --clf-muted:#6f8ca7;\n  --clf-library:#f8fcff;\n  --clf-card:#fffefe;\n  --clf-card-2:#edf7fd;\n  --clf-linen:#f3f9fe;\n  --clf-sky:#ddf0fa;\n  --clf-blue:#8fc4ef;\n  --clf-blue-2:#72a9d6;\n  --clf-blue-3:#5f93bf;\n  --clf-navy:#2f5c80;\n  --clf-mist:#a9c2d8;\n  --clf-border:rgba(116,168,216,.30);\n  --clf-border-strong:rgba(116,168,216,.46);\n  --clf-shadow:rgba(88,130,168,.18);\n\n  --vrf-outline-color:rgba(116,168,216,.42);\n  --vrf-outline-soft:rgba(221,240,250,.55);\n  --vrf-outline-width:1.35px;\n\n  color:var(--clf-ink) !important;\n  background:\n    radial-gradient(circle at 16% 12%, rgba(255,255,255,.92), transparent 22%),\n    radial-gradient(circle at 82% 14%, rgba(221,240,250,.82), transparent 28%),\n    radial-gradient(circle at 18% 88%, rgba(183,215,242,.44), transparent 36%),\n    linear-gradient(155deg,#f8fcff 0%, #e9f6fd 44%, #d7edf9 76%, #c6e3f4 100%) !important;\n  box-shadow:0 20px 52px rgba(88,130,168,.22) !important;\n}\n\n#vrf-freecell .vrf-fit{\n  background:\n    radial-gradient(circle at 15% 12%, rgba(255,255,255,.92), transparent 22%),\n    radial-gradient(circle at 82% 14%, rgba(221,240,250,.82), transparent 28%),\n    radial-gradient(circle at 12% 86%, rgba(183,215,242,.42), transparent 38%),\n    linear-gradient(155deg,#f8fcff 0%, #e9f6fd 44%, #d7edf9 76%, #c6e3f4 100%) !important;\n}\n\n#vrf-freecell .vrf-fit::before{\n  background:\n    radial-gradient(circle at 9% 26%, rgba(255,255,255,.75) 0 12px, transparent 13px),\n    radial-gradient(circle at 13% 30%, rgba(255,255,255,.62) 0 18px, transparent 19px),\n    radial-gradient(circle at 23% 64%, rgba(255,255,255,.58) 0 11px, transparent 12px),\n    radial-gradient(circle at 78% 28%, rgba(255,255,255,.66) 0 14px, transparent 15px),\n    radial-gradient(circle at 87% 66%, rgba(255,255,255,.48) 0 18px, transparent 19px),\n    radial-gradient(circle at 50% 18%, rgba(143,196,239,.16) 0 3px, transparent 4px),\n    radial-gradient(circle at 64% 72%, rgba(143,196,239,.14) 0 4px, transparent 5px),\n    linear-gradient(104deg, rgba(255,255,255,.35), transparent 26%),\n    linear-gradient(75deg, rgba(143,196,239,.12), transparent 38%) !important;\n  opacity:.74 !important;\n}\n\n#vrf-freecell .vrf-fit::after{\n  background:\n    radial-gradient(circle at 50% 52%, transparent 0 60%, rgba(95,147,191,.12) 100%),\n    linear-gradient(180deg, rgba(255,255,255,.22), transparent 30%) !important;\n}\n\n#vrf-freecell .vrf-table-glow{\n  background:\n    radial-gradient(circle at 28% 16%, rgba(255,255,255,.48), transparent 32%),\n    radial-gradient(circle at 78% 84%, rgba(221,240,250,.50), transparent 32%),\n    linear-gradient(135deg, rgba(255,255,255,.68), rgba(221,240,250,.34)) !important;\n  border:var(--vrf-outline-width) solid rgba(116,168,216,.38) !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(255,255,255,.48),\n    inset 0 0 54px rgba(143,196,239,.10),\n    0 24px 60px rgba(88,130,168,.16) !important;\n}\n\n#vrf-freecell .vrf-table-glow::before{\n  content:\"\";\n  position:absolute;\n  inset:16px;\n  border-radius:28px;\n  border:1px dashed rgba(116,168,216,.20) !important;\n  background:\n    linear-gradient(112deg,rgba(255,255,255,.32),transparent 30%),\n    radial-gradient(circle at 48% 42%,rgba(143,196,239,.10),transparent 46%) !important;\n}\n\n#vrf-freecell .vrf-ornament{\n  opacity:.18 !important;\n}\n#vrf-freecell .vrf-ornament.left{\n  border-left-color:rgba(116,168,216,.34) !important;\n  border-bottom-color:rgba(116,168,216,.14) !important;\n}\n#vrf-freecell .vrf-ornament.right{\n  border-right-color:rgba(116,168,216,.30) !important;\n  border-bottom-color:rgba(116,168,216,.14) !important;\n}\n#vrf-freecell .vrf-ornament.left::before,\n#vrf-freecell .vrf-ornament.left::after,\n#vrf-freecell .vrf-ornament.right::before,\n#vrf-freecell .vrf-ornament.right::after{\n  background:rgba(255,255,255,.40) !important;\n  border-color:rgba(116,168,216,.16) !important;\n  border-radius:999px !important;\n}\n\n\/* Top icon buttons *\/\n#vrf-freecell .vrf-icon{\n  border:1.35px solid rgba(116,168,216,.42) !important;\n  background:\n    radial-gradient(circle at 34% 24%,rgba(255,255,255,.74),transparent 34%),\n    linear-gradient(180deg,rgba(255,255,255,.76),rgba(221,240,250,.58)) !important;\n  color:var(--clf-ink) !important;\n  box-shadow:\n    0 10px 22px rgba(88,130,168,.14),\n    inset 0 1px 0 rgba(255,255,255,.72) !important;\n}\n#vrf-freecell .vrf-icon:hover{\n  background:\n    radial-gradient(circle at 34% 24%,rgba(255,255,255,.86),transparent 34%),\n    linear-gradient(180deg,#ffffff,#ddf0fa) !important;\n  border-color:rgba(116,168,216,.56) !important;\n  box-shadow:0 0 0 3px rgba(221,240,250,.62),0 12px 24px rgba(88,130,168,.18) !important;\n}\n#vrf-freecell .vrf-sound-slash{\n  background:#d96f6f !important;\n}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::before{\n  border-left-color:var(--clf-ink) !important;\n}\n\n\/* Stats panel *\/\n#vrf-freecell .vrf-stats{\n  background:\n    radial-gradient(circle at 24% 20%, rgba(255,255,255,.58), transparent 34%),\n    linear-gradient(180deg,rgba(255,255,255,.78),rgba(221,240,250,.58)) !important;\n  border:1.35px solid rgba(116,168,216,.38) !important;\n  box-shadow:\n    0 14px 28px rgba(88,130,168,.14),\n    inset 0 1px 0 rgba(255,255,255,.78),\n    inset 0 -10px 18px rgba(116,168,216,.08) !important;\n}\n#vrf-freecell .vrf-stat{\n  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(243,249,254,.52)) !important;\n  border:1px solid rgba(116,168,216,.18) !important;\n  color:var(--clf-muted) !important;\n  font-weight:850 !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-stat b{\n  color:var(--clf-ink) !important;\n  font-weight:950 !important;\n}\n\n\/* Labels *\/\n#vrf-freecell .vrf-label{\n  top:78px !important;\n  border:1.35px solid rgba(116,168,216,.42) !important;\n  background:\n    radial-gradient(circle at 30% 12%, rgba(255,255,255,.68), transparent 32%),\n    linear-gradient(180deg,#f8fcff 0%, #ddf0fa 100%) !important;\n  color:var(--clf-ink) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.76),\n    0 8px 18px rgba(88,130,168,.12) !important;\n  text-shadow:none !important;\n}\n\n\/* Slots and tableau zones *\/\n#vrf-freecell .vrf-slot{\n  border:1.35px solid rgba(116,168,216,.38) !important;\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,255,255,.50), transparent 36%),\n    linear-gradient(180deg,#edf7fd 0%, #d7edf9 100%) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.70),\n    inset 0 -12px 22px rgba(116,168,216,.08),\n    0 8px 18px rgba(88,130,168,.10) !important;\n}\n#vrf-freecell .vrf-slot::before{\n  border:1px dashed rgba(116,168,216,.24) !important;\n  background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0)) !important;\n}\n#vrf-freecell .vrf-column-zone{\n  height:372px !important;\n  border:1.35px solid rgba(116,168,216,.22) !important;\n  background:\n    linear-gradient(180deg,rgba(255,255,255,.26),rgba(221,240,250,.15)) !important;\n  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24) !important;\n}\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border:1.35px solid rgba(95,147,191,.80) !important;\n  background:\n    radial-gradient(circle at 50% 22%,rgba(255,255,255,.52),transparent 42%),\n    linear-gradient(180deg,rgba(221,240,250,.82),rgba(183,215,242,.50)) !important;\n  box-shadow:0 0 0 3px rgba(221,240,250,.56),0 0 24px rgba(143,196,239,.28) !important;\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:0 0 0 4px rgba(255,255,255,.58),0 0 30px rgba(143,196,239,.36) !important;\n}\n\n\/* Cards: soft archive tags, readable ranks *\/\n#vrf-freecell .vrf-card{\n  background:\n    radial-gradient(circle at 50% 0%,rgba(255,255,255,.88),transparent 56%),\n    linear-gradient(155deg,#ffffff 0%,#f8fcff 52%,#edf7fd 100%) !important;\n  border:1px solid rgba(116,168,216,.38) !important;\n  box-shadow:\n    0 11px 20px rgba(88,130,168,.20),\n    inset 0 0 0 1px rgba(255,255,255,.72) !important;\n  color:var(--clf-ink) !important;\n}\n#vrf-freecell .vrf-card::before{\n  border-color:rgba(116,168,216,.20) !important;\n}\n#vrf-freecell .vrf-card::after{\n  background:linear-gradient(90deg,transparent,rgba(116,168,216,.12),transparent) !important;\n}\n#vrf-freecell .vrf-card.red,\n#vrf-freecell .vrf-card.black{\n  color:var(--clf-ink) !important;\n}\n#vrf-freecell .vrf-card.suit-H{color:#4f8fba !important;}\n#vrf-freecell .vrf-card.suit-D{color:#6faed6 !important;}\n#vrf-freecell .vrf-card.suit-C{color:#315d7e !important;}\n#vrf-freecell .vrf-card.suit-S{color:#254867 !important;}\n#vrf-freecell .vrf-card.vrf-selected{\n  box-shadow:\n    0 0 0 3px rgba(143,196,239,.54),\n    0 16px 28px rgba(88,130,168,.24),\n    0 0 22px rgba(221,240,250,.74) !important;\n  transform:translateY(-3px);\n}\n#vrf-freecell .vrf-card.vrf-hint-source{\n  box-shadow:\n    0 0 0 4px rgba(221,240,250,.78),\n    0 18px 30px rgba(88,130,168,.22) !important;\n}\n\n\/* Suit icons become Honeybound objects *\/\n#vrf-freecell .vrf-corner{\n  color:currentColor !important;\n}\n#vrf-freecell .vrf-corner .suit-small{\n  width:19px !important;\n  height:19px !important;\n  display:grid !important;\n  place-items:center !important;\n  margin-top:0 !important;\n  font-size:0 !important;\n}\n#vrf-freecell .vrf-center-suit{\n  font-size:0 !important;\n  opacity:.88 !important;\n  filter:drop-shadow(0 1px 0 rgba(255,255,255,.40)) !important;\n}\n#vrf-freecell .vrf-suit-shape{\n  position:relative !important;\n  display:block !important;\n  color:currentColor !important;\n  width:46px !important;\n  height:46px !important;\n}\n#vrf-freecell .vrf-suit-shape.small{\n  width:17px !important;\n  height:17px !important;\n}\n\n\/* H suit: legacy suit icon override *\/\n#vrf-freecell .vrf-suit-lantern-bloom{\n  width:44px !important;\n  height:38px !important;\n  background:currentColor !important;\n  transform:none !important;\n  border-radius:0 !important;\n  clip-path:polygon(29% 8%, 41% 17%, 59% 17%, 71% 8%, 94% 30%, 78% 45%, 70% 36%, 70% 92%, 30% 92%, 30% 36%, 22% 45%, 6% 30%) !important;\n  box-shadow:inset -4px -5px 0 rgba(37,72,103,.10),0 0 12px rgba(143,196,239,.18) !important;\n}\n#vrf-freecell .vrf-suit-lantern-bloom::before,\n#vrf-freecell .vrf-suit-lantern-bloom::after{\n  display:none !important;\n}\n#vrf-freecell .vrf-suit-lantern-bloom.small{\n  width:17px !important;\n  height:15px !important;\n}\n\n\/* D suit: legacy suit icon override *\/\n#vrf-freecell .vrf-suit-brass-gem{\n  width:38px !important;\n  height:38px !important;\n  background:currentColor !important;\n  transform:none !important;\n  border-radius:50% 50% 50% 14px !important;\n  box-shadow:inset 5px 5px 0 rgba(255,255,255,.22),inset -4px -5px 0 rgba(37,72,103,.10),0 0 14px rgba(143,196,239,.20) !important;\n}\n#vrf-freecell .vrf-suit-brass-gem::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:22% !important;\n  top:18% !important;\n  width:28% !important;\n  height:28% !important;\n  border-radius:50% !important;\n  background:rgba(255,255,255,.62) !important;\n  border:0 !important;\n}\n#vrf-freecell .vrf-suit-brass-gem.small{\n  width:15px !important;\n  height:15px !important;\n  border-radius:50% 50% 50% 5px !important;\n}\n\n\/* C suit: legacy suit icon override *\/\n#vrf-freecell .vrf-suit-olive-clover{\n  width:25px !important;\n  height:44px !important;\n  background:currentColor !important;\n  border-radius:10px !important;\n  transform:rotate(10deg) !important;\n  box-shadow:inset -3px -5px 0 rgba(37,72,103,.10),0 0 12px rgba(143,196,239,.14) !important;\n}\n#vrf-freecell .vrf-suit-olive-clover::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:5px !important;\n  bottom:5px !important;\n  width:2px !important;\n  transform:translateX(-50%) !important;\n  background:rgba(255,255,255,.48) !important;\n  border-radius:999px !important;\n}\n#vrf-freecell .vrf-suit-olive-clover::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:18px !important;\n  width:8px !important;\n  height:8px !important;\n  transform:translateX(-50%) !important;\n  border:2px solid rgba(255,255,255,.55) !important;\n  border-radius:50% !important;\n  background:transparent !important;\n}\n#vrf-freecell .vrf-suit-olive-clover.small{\n  width:10px !important;\n  height:17px !important;\n  border-radius:4px !important;\n}\n#vrf-freecell .vrf-suit-olive-clover.small::before,\n#vrf-freecell .vrf-suit-olive-clover.small::after{\n  display:none !important;\n}\n\n\/* S suit: legacy suit icon override *\/\n#vrf-freecell .vrf-suit-ember-spade{\n  width:42px !important;\n  height:36px !important;\n  background:none !important;\n  clip-path:none !important;\n  border-radius:0 !important;\n  box-shadow:none !important;\n}\n#vrf-freecell .vrf-suit-ember-spade::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:4px !important;\n  right:2px !important;\n  top:4px !important;\n  height:13px !important;\n  border-radius:7px !important;\n  background:currentColor !important;\n  transform:none !important;\n  box-shadow:inset -4px -3px 0 rgba(37,72,103,.10),0 14px 0 currentColor !important;\n}\n#vrf-freecell .vrf-suit-ember-spade::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:10px !important;\n  right:8px !important;\n  top:10px !important;\n  height:3px !important;\n  border-radius:999px !important;\n  background:rgba(255,255,255,.55) !important;\n  transform:none !important;\n  box-shadow:0 14px 0 rgba(255,255,255,.48) !important;\n  clip-path:none !important;\n}\n#vrf-freecell .vrf-suit-ember-spade.small{\n  width:16px !important;\n  height:14px !important;\n}\n#vrf-freecell .vrf-suit-ember-spade.small::before{\n  left:1px !important;\n  right:1px !important;\n  top:1px !important;\n  height:5px !important;\n  border-radius:3px !important;\n  box-shadow:0 7px 0 currentColor !important;\n}\n#vrf-freecell .vrf-suit-ember-spade.small::after{\n  left:4px !important;\n  right:3px !important;\n  top:3px !important;\n  height:1px !important;\n  box-shadow:0 7px 0 rgba(255,255,255,.48) !important;\n}\n\n\/* Ghost and status *\/\n#vrf-freecell .vrf-ghost .vrf-card{\n  box-shadow:0 20px 34px rgba(88,130,168,.26),0 0 0 2px rgba(143,196,239,.44) !important;\n}\n#vrf-freecell .vrf-status{\n  bottom:82px !important;\n  min-width:360px;\n  max-width:680px !important;\n  background:\n    radial-gradient(circle at 34% 10%,rgba(255,255,255,.64),transparent 38%),\n    linear-gradient(180deg,#ffffff 0%,#ddf0fa 100%) !important;\n  border:1.35px solid rgba(116,168,216,.38) !important;\n  color:var(--clf-ink) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.72),\n    0 8px 18px rgba(88,130,168,.13) !important;\n  text-shadow:none !important;\n}\n\n\/* Bottom buttons *\/\n#vrf-freecell .vrf-pill{\n  border-color:rgba(255,255,255,.68) !important;\n  color:#ffffff !important;\n  text-shadow:0 1px 0 rgba(37,72,103,.18) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.32),\n    inset 0 -8px 14px rgba(37,72,103,.08),\n    0 9px 18px rgba(88,130,168,.18) !important;\n}\n#vrf-freecell .vrf-pill:hover{\n  transform:translateY(-1px);\n  filter:none !important;\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,.38),\n    inset 0 -8px 14px rgba(37,72,103,.08),\n    0 12px 22px rgba(88,130,168,.22) !important;\n}\n#vrf-freecell #vrfNewDeal{\n  background:linear-gradient(180deg,#8fc4ef 0%,#5f93bf 100%) !important;\n  color:#ffffff !important;\n}\n#vrf-freecell #vrfRestart{\n  background:linear-gradient(180deg,#9fd0ee 0%,#72a9d6 100%) !important;\n  color:#ffffff !important;\n}\n#vrf-freecell #vrfUndo{\n  background:linear-gradient(180deg,#7ea7c9 0%,#5f83a3 100%) !important;\n  color:#ffffff !important;\n}\n#vrf-freecell #vrfHint{\n  background:linear-gradient(180deg,#ffffff 0%,#ddf0fa 100%) !important;\n  border-color:rgba(116,168,216,.34) !important;\n  color:var(--clf-ink) !important;\n  text-shadow:none !important;\n}\n\n\/* Popup overlays *\/\n#vrf-freecell .vrf-overlay{\n  background:rgba(37,72,103,.24) !important;\n  backdrop-filter:blur(8px);\n}\n#vrf-freecell .vrf-popup{\n  background:\n    radial-gradient(circle at 78% 2%,rgba(221,240,250,.72),transparent 38%),\n    radial-gradient(circle at 18% 20%,rgba(255,255,255,.78),transparent 34%),\n    linear-gradient(145deg,rgba(255,255,255,.98),rgba(237,247,253,.94)) !important;\n  border-color:rgba(255,255,255,.72) !important;\n  box-shadow:0 28px 74px rgba(88,130,168,.24),inset 0 0 0 1px rgba(255,255,255,.42) !important;\n}\n#vrf-freecell .vrf-popup::before,\n#vrf-freecell .vrf-popup::after{\n  border-color:rgba(116,168,216,.12) !important;\n}\n#vrf-freecell .vrf-lantern-mark{\n  position:relative !important;\n  width:62px !important;\n  height:50px !important;\n  margin:0 auto -2px !important;\n  border-radius:22px 22px 18px 18px !important;\n  background:\n    radial-gradient(circle at 28% 34%,rgba(255,255,255,.92) 0 9px,transparent 10px),\n    radial-gradient(circle at 66% 32%,rgba(255,255,255,.76) 0 11px,transparent 12px),\n    linear-gradient(180deg,#ddf0fa,#8fc4ef) !important;\n  border:1.5px solid rgba(116,168,216,.28) !important;\n  box-shadow:0 0 22px rgba(221,240,250,.78),0 10px 22px rgba(88,130,168,.15),inset 0 0 0 1px rgba(255,255,255,.46) !important;\n}\n#vrf-freecell .vrf-lantern-mark::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:15px !important;\n  top:-8px !important;\n  width:32px !important;\n  height:14px !important;\n  border-radius:999px !important;\n  background:#ffffff !important;\n  border:1px solid rgba(116,168,216,.16) !important;\n  transform:none !important;\n}\n#vrf-freecell .vrf-lantern-mark::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:23px !important;\n  top:18px !important;\n  width:16px !important;\n  height:16px !important;\n  border-radius:50% !important;\n  border:3px solid rgba(255,255,255,.78) !important;\n  background:transparent !important;\n  transform:none !important;\n}\n#vrf-freecell .vrf-start-title,\n#vrf-freecell .vrf-win-title{\n  color:var(--clf-ink) !important;\n}\n#vrf-freecell .vrf-start-btn,\n#vrf-freecell .vrf-win-btn{\n  color:#ffffff !important;\n  background:linear-gradient(180deg,#8fc4ef,#5f93bf) !important;\n  border-color:rgba(255,255,255,.68) !important;\n  box-shadow:0 14px 30px rgba(88,130,168,.18) !important;\n  text-shadow:0 1px 0 rgba(37,72,103,.16);\n}\n#vrf-freecell .vrf-diff-btn{\n  border-color:rgba(116,168,216,.20) !important;\n  background:rgba(255,255,255,.58) !important;\n  color:rgba(37,72,103,.74) !important;\n}\n#vrf-freecell .vrf-diff-btn:hover{\n  border-color:rgba(116,168,216,.36) !important;\n  background:#ffffff !important;\n}\n#vrf-freecell .vrf-diff-btn.active{\n  color:var(--clf-ink) !important;\n  background:linear-gradient(180deg,#ffffff,#ddf0fa) !important;\n  border-color:rgba(116,168,216,.42) !important;\n  box-shadow:0 0 0 3px rgba(221,240,250,.62),0 0 18px rgba(143,196,239,.18) !important;\n}\n#vrf-freecell .vrf-help,\n#vrf-freecell .vrf-win-text{\n  color:rgba(37,72,103,.72) !important;\n}\n#vrf-freecell .vrf-win-box{\n  background:rgba(255,255,255,.62) !important;\n  border-color:rgba(116,168,216,.16) !important;\n}\n#vrf-freecell .vrf-win-box span{\n  color:rgba(37,72,103,.58) !important;\n}\n#vrf-freecell .vrf-win-box b{\n  color:var(--clf-ink) !important;\n}\n#vrf-freecell .vrf-rotate-note{\n  background:rgba(37,72,103,.34) !important;\n  color:#ffffff !important;\n  backdrop-filter:blur(8px);\n}\n#vrf-freecell .vrf-rotate-card{\n  background:rgba(37,72,103,.86) !important;\n  border-color:rgba(221,240,250,.28) !important;\n  box-shadow:0 24px 62px rgba(37,72,103,.30) !important;\n}\n\n\/* Fullscreen keeps the same soft comfort background *\/\n#vrf-freecell:fullscreen,\n#vrf-freecell.vrf-is-fullscreen{\n  background:#d7edf9 !important;\n}\n\n@media (max-width:720px){\n  #vrf-freecell .vrf-status{\n    min-width:320px;\n  }\n}\n<\/style>\n\n\n<style>\n\/* =========================================================\n   Honeybound FreeCell - Pause\/Mute Position Swap + Speaker Icon\n   Pause now sits on the far-left, Sound sits beside it.\n   Sound icon rebuilt as a clear CSS speaker with 3 waves.\n   ========================================================= *\/\n\n\/* Swap positions *\/\n#vrf-freecell .vrf-pause{\n  left:22px !important;\n  right:auto !important;\n}\n\n#vrf-freecell .vrf-mute{\n  left:78px !important;\n  right:auto !important;\n}\n\n#vrf-freecell.vrf-game-active .vrf-pause,\n#vrf-freecell.vrf-game-active .vrf-mute{\n  display:grid !important;\n}\n\n\/* Stronger, clearer speaker icon inspired by the reference image *\/\n#vrf-freecell .vrf-sound-symbol{\n  position:relative !important;\n  width:31px !important;\n  height:28px !important;\n  display:block !important;\n  color:currentColor !important;\n  transform:translateX(-1px);\n}\n\n#vrf-freecell .vrf-sound-box{\n  position:absolute !important;\n  left:1px !important;\n  top:10px !important;\n  width:8px !important;\n  height:9px !important;\n  border-radius:3px 0 0 3px !important;\n  background:currentColor !important;\n}\n\n#vrf-freecell .vrf-sound-box::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:7px !important;\n  top:-8px !important;\n  width:18px !important;\n  height:25px !important;\n  background:currentColor !important;\n  clip-path:polygon(0 35%,100% 0,100% 100%,0 65%) !important;\n  border-radius:3px !important;\n}\n\n#vrf-freecell .vrf-sound-wave{\n  position:absolute !important;\n  display:block !important;\n  background:transparent !important;\n  border-style:solid !important;\n  border-color:currentColor !important;\n  border-left-color:transparent !important;\n  border-top-color:transparent !important;\n  border-bottom-color:transparent !important;\n  border-radius:0 999px 999px 0 !important;\n  opacity:1 !important;\n  transition:opacity .14s ease !important;\n}\n\n#vrf-freecell .vrf-sound-wave.w1{\n  left:19px !important;\n  top:10px !important;\n  width:6px !important;\n  height:9px !important;\n  border-width:3px !important;\n}\n\n#vrf-freecell .vrf-sound-wave.w2{\n  left:22px !important;\n  top:6px !important;\n  width:11px !important;\n  height:17px !important;\n  border-width:3px !important;\n}\n\n#vrf-freecell .vrf-sound-wave.w3{\n  left:25px !important;\n  top:2px !important;\n  width:16px !important;\n  height:25px !important;\n  border-width:3px !important;\n  opacity:.92 !important;\n}\n\n\/* Muted state: waves disappear and red slash appears *\/\n#vrf-freecell.vrf-muted .vrf-sound-wave{\n  opacity:0 !important;\n}\n\n#vrf-freecell .vrf-sound-slash{\n  position:absolute !important;\n  left:2px !important;\n  top:13px !important;\n  width:32px !important;\n  height:3.5px !important;\n  border-radius:999px !important;\n  background:#d96f6f !important;\n  transform:rotate(45deg) scaleX(0) !important;\n  transform-origin:center !important;\n  box-shadow:0 1px 0 rgba(37,72,103,.18), 0 0 8px rgba(217,111,111,.32) !important;\n  transition:transform .14s ease !important;\n}\n\n#vrf-freecell.vrf-muted .vrf-sound-slash{\n  transform:rotate(45deg) scaleX(1) !important;\n}\n\n\/* Keep icon readable on Honeybound light buttons *\/\n#vrf-freecell .vrf-mute,\n#vrf-freecell .vrf-pause{\n  color:#254867 !important;\n}\n\n\/* Compact landscape\/mobile height tuning *\/\n@media (max-height:520px){\n  #vrf-freecell .vrf-pause{\n    left:22px !important;\n  }\n\n  #vrf-freecell .vrf-mute{\n    left:76px !important;\n  }\n\n  #vrf-freecell .vrf-sound-symbol{\n    transform:scale(.90) translateX(-1px);\n  }\n}\n<\/style>\n\n\n<style>\n\/* Honeybound FreeCell - slightly smaller sound icon *\/\n#vrf-freecell .vrf-sound-symbol{\n  transform:scale(.86) translateX(-1px) !important;\n  transform-origin:center center !important;\n}\n\n@media (max-height:520px){\n  #vrf-freecell .vrf-sound-symbol{\n    transform:scale(.80) translateX(-1px) !important;\n  }\n}\n<\/style>\n\n\n\n<style>\n\/* =========================================================\n   Honeybound FreeCell - Final Honey Library Skin\n   Mechanics untouched: FreeCell rules, move logic, drag\/tap,\n   difficulty, score, timer, undo, hint, pause, sound, fullscreen.\n   ========================================================= *\/\n#vrf-freecell{\n  --vrf-card-w:86px;\n  --vrf-card-h:116px;\n  --hbf-ink:#3F2418;\n  --hbf-deep:#2B160E;\n  --hbf-walnut:#5A321F;\n  --hbf-cocoa:#6B3B24;\n  --hbf-amber:#B87333;\n  --hbf-honey:#F4C542;\n  --hbf-soft:#E9C875;\n  --hbf-cream:#FFF1C9;\n  --hbf-paper:#FFF8DF;\n  --hbf-ivory:#FFFDF0;\n  --hbf-book:#68784F;\n  --hbf-rose:#B8735A;\n  --hbf-shadow:rgba(63,36,24,.24);\n  --vrf-outline-color:rgba(244,197,66,.46);\n  --vrf-outline-soft:rgba(255,241,201,.32);\n  --vrf-outline-width:1.35px;\n  color:var(--hbf-cream) !important;\n  background:\n    radial-gradient(circle at 72% 12%, rgba(244,197,66,.34), transparent 26%),\n    radial-gradient(circle at 18% 18%, rgba(255,241,201,.18), transparent 22%),\n    radial-gradient(circle at 12% 86%, rgba(104,120,79,.22), transparent 40%),\n    linear-gradient(155deg,#2B160E 0%,#3F2418 38%,#5A321F 70%,#7A421F 100%) !important;\n  box-shadow:0 24px 70px rgba(63,36,24,.38) !important;\n}\n#vrf-freecell .vrf-fit{\n  background:\n    radial-gradient(circle at 72% 13%, rgba(244,197,66,.32), transparent 26%),\n    radial-gradient(circle at 17% 19%, rgba(255,241,201,.16), transparent 22%),\n    radial-gradient(circle at 86% 82%, rgba(104,120,79,.18), transparent 32%),\n    linear-gradient(155deg,#2B160E 0%,#3F2418 40%,#5A321F 72%,#7A421F 100%) !important;\n}\n#vrf-freecell .vrf-fit::before{\n  background:\n    linear-gradient(90deg, transparent 0 5.8%, rgba(255,241,201,.055) 6% 6.35%, transparent 6.6% 13%, rgba(233,200,117,.055) 13.4% 13.75%, transparent 14% 100%),\n    linear-gradient(0deg, transparent 0 18%, rgba(255,241,201,.045) 18.3% 18.7%, transparent 19% 100%),\n    radial-gradient(circle at 10% 28%, rgba(255,241,201,.14) 0 2px, transparent 3px),\n    radial-gradient(circle at 22% 66%, rgba(244,197,66,.14) 0 2px, transparent 3px),\n    radial-gradient(circle at 43% 26%, rgba(255,248,223,.12) 0 2px, transparent 3px),\n    radial-gradient(circle at 70% 34%, rgba(244,197,66,.16) 0 2px, transparent 3px),\n    radial-gradient(circle at 88% 68%, rgba(233,200,117,.16) 0 3px, transparent 4px),\n    radial-gradient(ellipse at 76% 18%, rgba(244,197,66,.22), transparent 30%),\n    linear-gradient(104deg, rgba(255,241,201,.10), transparent 26%),\n    linear-gradient(75deg, rgba(233,200,117,.07), transparent 38%) !important;\n  opacity:.92 !important;\n}\n#vrf-freecell .vrf-fit::after{\n  background:\n    radial-gradient(circle at 50% 54%, transparent 0 58%, rgba(43,22,14,.34) 100%),\n    linear-gradient(180deg, rgba(255,241,201,.055), transparent 28%) !important;\n}\n#vrf-freecell .vrf-table-glow{\n  background:\n    radial-gradient(circle at 30% 16%, rgba(255,248,223,.10), transparent 31%),\n    radial-gradient(circle at 76% 84%, rgba(244,197,66,.13), transparent 31%),\n    linear-gradient(135deg, rgba(63,36,24,.64), rgba(90,50,31,.34)) !important;\n  border:var(--vrf-outline-width) solid rgba(244,197,66,.50) !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(255,241,201,.055),\n    inset 0 0 56px rgba(255,241,201,.035),\n    inset 0 -32px 62px rgba(43,22,14,.25),\n    0 28px 76px rgba(43,22,14,.30) !important;\n}\n#vrf-freecell .vrf-table-glow::before{\n  content:\"\";\n  position:absolute;\n  inset:16px;\n  border-radius:28px;\n  border:1.35px solid rgba(244,197,66,.25) !important;\n  background:\n    linear-gradient(112deg, rgba(255,241,201,.060), transparent 30%),\n    radial-gradient(circle at 52% 42%, rgba(184,115,51,.10), transparent 46%);\n}\n#vrf-freecell .vrf-table-glow::after{\n  content:\"\";\n  position:absolute;\n  inset:30px 38px;\n  border-radius:22px;\n  opacity:.22;\n  background:\n    linear-gradient(30deg, transparent 0 24%, rgba(244,197,66,.08) 24.4% 25%, transparent 25.4% 49%, rgba(255,241,201,.07) 49.4% 50%, transparent 50.4% 74%, rgba(244,197,66,.08) 74.4% 75%, transparent 75.4%),\n    linear-gradient(150deg, transparent 0 24%, rgba(244,197,66,.08) 24.4% 25%, transparent 25.4% 49%, rgba(255,241,201,.07) 49.4% 50%, transparent 50.4% 74%, rgba(244,197,66,.08) 74.4% 75%, transparent 75.4%);\n  background-size:54px 54px;\n  pointer-events:none;\n}\n#vrf-freecell .vrf-ornament{opacity:.18 !important;}\n#vrf-freecell .vrf-ornament.left{border-left-color:rgba(244,197,66,.34) !important;border-bottom-color:rgba(244,197,66,.16) !important;}\n#vrf-freecell .vrf-ornament.right{border-right-color:rgba(244,197,66,.32) !important;border-bottom-color:rgba(244,197,66,.16) !important;}\n#vrf-freecell .vrf-ornament.left::before,\n#vrf-freecell .vrf-ornament.left::after,\n#vrf-freecell .vrf-ornament.right::before,\n#vrf-freecell .vrf-ornament.right::after{\n  background:rgba(233,200,117,.10) !important;\n  border-color:rgba(255,241,201,.10) !important;\n  border-radius:999px 999px 999px 20px !important;\n}\n#vrf-freecell .vrf-icon{\n  border:1.45px solid rgba(244,197,66,.50) !important;\n  background:\n    radial-gradient(circle at 34% 24%, rgba(255,241,201,.20), transparent 33%),\n    linear-gradient(180deg, rgba(90,50,31,.78), rgba(43,22,14,.66)) !important;\n  color:var(--hbf-cream) !important;\n  box-shadow:0 11px 24px rgba(43,22,14,.28), inset 0 1px 0 rgba(255,241,201,.13) !important;\n}\n#vrf-freecell .vrf-icon:hover{\n  background:\n    radial-gradient(circle at 34% 24%, rgba(255,241,201,.26), transparent 33%),\n    linear-gradient(180deg, rgba(122,66,31,.84), rgba(90,50,31,.72)) !important;\n  border-color:rgba(255,241,201,.45) !important;\n  box-shadow:0 0 0 3px rgba(244,197,66,.11),0 12px 26px rgba(43,22,14,.30),inset 0 1px 0 rgba(255,241,201,.14) !important;\n}\n#vrf-freecell .vrf-sound-slash{background:#C85D4F !important;}\n#vrf-freecell.vrf-paused .vrf-pause-symbol::before{border-left-color:var(--hbf-walnut) !important;}\n#vrf-freecell .vrf-stats{\n  background:\n    radial-gradient(circle at 24% 20%, rgba(255,241,201,.16), transparent 34%),\n    linear-gradient(180deg, rgba(90,50,31,.76), rgba(43,22,14,.62)),\n    linear-gradient(90deg, rgba(244,197,66,.18), rgba(104,120,79,.10)) !important;\n  border:1.45px solid rgba(244,197,66,.46) !important;\n  box-shadow:0 15px 32px rgba(43,22,14,.24), inset 0 1px 0 rgba(255,241,201,.12), inset 0 -10px 18px rgba(43,22,14,.20) !important;\n}\n#vrf-freecell .vrf-stat{\n  background:linear-gradient(180deg, rgba(255,241,201,.14), rgba(90,50,31,.14)) !important;\n  border:1px solid rgba(255,241,201,.12) !important;\n  color:rgba(255,241,201,.78) !important;\n  font-weight:850 !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-stat b{color:#FFF8DF !important;font-weight:950 !important;}\n#vrf-freecell .vrf-label{\n  top:78px !important;\n  border:1.35px solid rgba(244,197,66,.56) !important;\n  background:\n    radial-gradient(circle at 30% 12%, rgba(255,241,201,.16), transparent 32%),\n    linear-gradient(180deg,#7A421F 0%,#5A321F 100%) !important;\n  color:var(--hbf-cream) !important;\n  box-shadow:inset 0 1px 0 rgba(255,241,201,.13),0 8px 18px rgba(43,22,14,.20) !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-slot{\n  border:1.35px solid rgba(244,197,66,.44) !important;\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,241,201,.10), transparent 36%),\n    linear-gradient(180deg,#6B4A27 0%,#5A3A22 50%,#3F2418 100%) !important;\n  box-shadow:inset 0 1px 0 rgba(255,241,201,.12), inset 0 -12px 22px rgba(43,22,14,.17), 0 8px 18px rgba(43,22,14,.13) !important;\n}\n#vrf-freecell .vrf-slot::before{\n  border:1px dashed rgba(255,241,201,.16) !important;\n  background:linear-gradient(180deg,rgba(255,241,201,.040),rgba(255,241,201,0)) !important;\n}\n#vrf-freecell .vrf-column-zone{\n  height:372px !important;\n  border:1.35px solid rgba(244,197,66,.22) !important;\n  background:linear-gradient(180deg, rgba(255,241,201,.026), rgba(43,22,14,.045)) !important;\n  box-shadow:inset 0 0 0 1px rgba(255,241,201,.012) !important;\n}\n#vrf-freecell .vrf-slot.vrf-valid,\n#vrf-freecell .vrf-column-zone.vrf-valid{\n  border:1.35px solid rgba(244,197,66,.86) !important;\n  background:\n    radial-gradient(circle at 50% 22%, rgba(255,248,223,.18), transparent 42%),\n    linear-gradient(180deg, rgba(184,115,51,.82), rgba(104,120,79,.62)) !important;\n  box-shadow:0 0 0 3px rgba(244,197,66,.13),0 0 25px rgba(244,197,66,.32) !important;\n}\n#vrf-freecell .vrf-slot.vrf-hint-target,\n#vrf-freecell .vrf-column-zone.vrf-hint-target{\n  box-shadow:0 0 0 4px rgba(255,241,201,.15),0 0 32px rgba(244,197,66,.40) !important;\n}\n#vrf-freecell .vrf-card{\n  background:\n    radial-gradient(circle at 50% 0%, rgba(255,255,255,.82), transparent 56%),\n    linear-gradient(155deg,#FFFDF0 0%,#FFF8DF 48%,#E8D2A7 100%) !important;\n  border:1px solid rgba(90,50,31,.36) !important;\n  box-shadow:0 12px 22px rgba(43,22,14,.27), inset 0 0 0 1px rgba(255,255,255,.50) !important;\n  color:var(--hbf-ink) !important;\n}\n#vrf-freecell .vrf-card::before{border-color:rgba(184,115,51,.22) !important;}\n#vrf-freecell .vrf-card::after{background:linear-gradient(90deg,transparent,rgba(90,50,31,.11),transparent) !important;}\n#vrf-freecell .vrf-card.red,#vrf-freecell .vrf-card.black{color:var(--hbf-ink) !important;}\n#vrf-freecell .vrf-card.suit-H{color:#B87333 !important;}\n#vrf-freecell .vrf-card.suit-D{color:#D99A2B !important;}\n#vrf-freecell .vrf-card.suit-C{color:#68784F !important;}\n#vrf-freecell .vrf-card.suit-S{color:#3F2418 !important;}\n#vrf-freecell .vrf-card.vrf-selected{\n  box-shadow:0 0 0 3px rgba(244,197,66,.55),0 17px 28px rgba(43,22,14,.28),0 0 22px rgba(244,197,66,.28) !important;\n}\n#vrf-freecell .vrf-card.vrf-hint-source{\n  box-shadow:0 0 0 4px rgba(244,197,66,.28),0 18px 30px rgba(43,22,14,.24) !important;\n}\n#vrf-freecell .vrf-corner{gap:2px !important;}\n#vrf-freecell .vrf-corner .suit-small{width:19px !important;height:19px !important;display:grid !important;place-items:center !important;margin-top:0 !important;font-size:0 !important;}\n#vrf-freecell .vrf-center-suit{font-size:0 !important;opacity:.92 !important;filter:drop-shadow(0 1px 0 rgba(255,255,255,.38)) !important;}\n#vrf-freecell .vrf-suit-shape{position:relative !important;display:block !important;color:currentColor !important;width:46px !important;height:46px !important;}\n#vrf-freecell .vrf-suit-shape.small{width:17px !important;height:17px !important;}\n\n\/* H suit: Bee Seal *\/\n#vrf-freecell .vrf-suit-bee-seal{\n  border-radius:50% !important;\n  background:radial-gradient(circle at 50% 50%, currentColor 0 42%, transparent 43%) !important;\n  box-shadow:inset 0 0 0 5px rgba(255,248,223,.22),0 0 14px rgba(244,197,66,.16) !important;\n}\n#vrf-freecell .vrf-suit-bee-seal::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:50% !important;\n  width:22px !important;\n  height:14px !important;\n  transform:translate(-50%,-50%) !important;\n  border-radius:999px !important;\n  background:linear-gradient(90deg, rgba(255,248,223,.86) 0 22%, currentColor 23% 42%, rgba(255,248,223,.86) 43% 62%, currentColor 63% 82%, rgba(255,248,223,.86) 83% 100%) !important;\n  box-shadow:0 -8px 0 -4px rgba(255,248,223,.70),0 8px 0 -4px rgba(255,248,223,.70) !important;\n}\n#vrf-freecell .vrf-suit-bee-seal::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:50% !important;\n  width:32px !important;\n  height:18px !important;\n  transform:translate(-50%,-50%) !important;\n  background:radial-gradient(ellipse at 24% 50%, rgba(255,248,223,.68) 0 32%, transparent 34%),radial-gradient(ellipse at 76% 50%, rgba(255,248,223,.68) 0 32%, transparent 34%) !important;\n}\n#vrf-freecell .vrf-suit-bee-seal.small{box-shadow:inset 0 0 0 2px rgba(255,248,223,.22) !important;}\n#vrf-freecell .vrf-suit-bee-seal.small::before{width:8px !important;height:5px !important;box-shadow:none !important;}\n#vrf-freecell .vrf-suit-bee-seal.small::after{width:13px !important;height:8px !important;}\n\n\/* D suit: Honey Drop *\/\n#vrf-freecell .vrf-suit-honey-drop{\n  width:38px !important;\n  height:40px !important;\n  background:currentColor !important;\n  border-radius:56% 56% 58% 18% !important;\n  transform:rotate(-45deg) !important;\n  box-shadow:inset 5px 5px 0 rgba(255,248,223,.24),inset -4px -5px 0 rgba(63,36,24,.10),0 0 14px rgba(244,197,66,.20) !important;\n}\n#vrf-freecell .vrf-suit-honey-drop::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:23% !important;\n  top:20% !important;\n  width:26% !important;\n  height:26% !important;\n  border-radius:50% !important;\n  background:rgba(255,248,223,.60) !important;\n}\n#vrf-freecell .vrf-suit-honey-drop::after{display:none !important;}\n#vrf-freecell .vrf-suit-honey-drop.small{width:15px !important;height:16px !important;border-radius:56% 56% 58% 18% !important;}\n\n\/* C suit: Library Leaf *\/\n#vrf-freecell .vrf-suit-library-leaf{\n  width:42px !important;\n  height:42px !important;\n  background:none !important;\n}\n#vrf-freecell .vrf-suit-library-leaf::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:7px !important;\n  top:4px !important;\n  width:28px !important;\n  height:34px !important;\n  border-radius:26px 4px 26px 4px !important;\n  background:currentColor !important;\n  transform:rotate(34deg) !important;\n  box-shadow:inset -4px -5px 0 rgba(63,36,24,.10),0 0 12px rgba(104,120,79,.18) !important;\n}\n#vrf-freecell .vrf-suit-library-leaf::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:22px !important;\n  top:10px !important;\n  width:2px !important;\n  height:25px !important;\n  border-radius:999px !important;\n  background:rgba(255,248,223,.42) !important;\n  transform:rotate(34deg) !important;\n}\n#vrf-freecell .vrf-suit-library-leaf.small::before{left:3px !important;top:2px !important;width:11px !important;height:13px !important;border-radius:10px 2px 10px 2px !important;}\n#vrf-freecell .vrf-suit-library-leaf.small::after{left:8px !important;top:4px !important;height:10px !important;width:1px !important;}\n\n\/* S suit: Golden Bookmark *\/\n#vrf-freecell .vrf-suit-golden-bookmark{\n  width:28px !important;\n  height:42px !important;\n  left:9px !important;\n  background:currentColor !important;\n  border-radius:6px 6px 3px 3px !important;\n  clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%) !important;\n  box-shadow:inset 4px 4px 0 rgba(255,248,223,.20),inset -4px -5px 0 rgba(63,36,24,.10),0 0 13px rgba(244,197,66,.18) !important;\n}\n#vrf-freecell .vrf-suit-golden-bookmark::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:7px !important;\n  right:7px !important;\n  top:7px !important;\n  height:17px !important;\n  border-radius:999px 999px 4px 4px !important;\n  border:2px solid rgba(255,248,223,.46) !important;\n  border-bottom:0 !important;\n}\n#vrf-freecell .vrf-suit-golden-bookmark::after{display:none !important;}\n#vrf-freecell .vrf-suit-golden-bookmark.small{left:3px !important;width:11px !important;height:16px !important;border-radius:3px !important;}\n#vrf-freecell .vrf-suit-golden-bookmark.small::before{left:3px !important;right:3px !important;top:3px !important;height:6px !important;border-width:1px !important;}\n\n#vrf-freecell .vrf-ghost .vrf-card{box-shadow:0 22px 38px rgba(43,22,14,.35),0 0 0 2px rgba(244,197,66,.36) !important;}\n#vrf-freecell .vrf-status{\n  bottom:82px !important;\n  min-width:360px;\n  max-width:690px !important;\n  background:\n    radial-gradient(circle at 34% 10%, rgba(255,241,201,.18), transparent 38%),\n    linear-gradient(180deg,#7A421F 0%,#5A321F 100%) !important;\n  border:1.35px solid rgba(244,197,66,.48) !important;\n  color:var(--hbf-cream) !important;\n  box-shadow:inset 0 1px 0 rgba(255,241,201,.13),0 8px 18px rgba(43,22,14,.20) !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-pill{\n  border-color:rgba(255,241,201,.60) !important;\n  color:#FFF8DF !important;\n  text-shadow:0 1px 0 rgba(63,36,24,.22) !important;\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),inset 0 -8px 14px rgba(63,36,24,.12),0 9px 18px rgba(43,22,14,.24) !important;\n}\n#vrf-freecell .vrf-pill:hover{filter:none !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.36),inset 0 -8px 14px rgba(63,36,24,.12),0 12px 22px rgba(43,22,14,.28),0 0 0 3px rgba(244,197,66,.08) !important;}\n#vrf-freecell #vrfNewDeal{background:linear-gradient(180deg,#F4C542 0%,#B87333 100%) !important;color:#FFF8DF !important;}\n#vrf-freecell #vrfRestart{background:linear-gradient(180deg,#B8735A 0%,#7A421F 100%) !important;color:#FFF8DF !important;}\n#vrf-freecell #vrfUndo{background:linear-gradient(180deg,#68784F 0%,#4D593B 100%) !important;color:#FFF8DF !important;}\n#vrf-freecell #vrfHint{background:linear-gradient(180deg,#FFF8DF 0%,#E9C875 100%) !important;border-color:rgba(255,255,255,.78) !important;color:#3F2418 !important;text-shadow:none !important;}\n#vrf-freecell .vrf-overlay{background:rgba(43,22,14,.58) !important;backdrop-filter:blur(7px);}\n#vrf-freecell .vrf-popup{\n  background:\n    radial-gradient(circle at 80% 0%, rgba(244,197,66,.26), transparent 38%),\n    radial-gradient(circle at 18% 20%, rgba(255,241,201,.32), transparent 34%),\n    linear-gradient(145deg, rgba(255,248,223,.98), rgba(233,200,117,.92)) !important;\n  border-color:rgba(255,255,255,.60) !important;\n  box-shadow:0 32px 82px rgba(43,22,14,.40), inset 0 0 0 1px rgba(255,255,255,.18) !important;\n}\n#vrf-freecell .vrf-popup::before,\n#vrf-freecell .vrf-popup::after{border-color:rgba(63,36,24,.10) !important;}\n#vrf-freecell .vrf-lantern-mark{\n  position:relative !important;\n  width:60px !important;\n  height:60px !important;\n  margin:0 auto -2px !important;\n  border-radius:50% !important;\n  background:radial-gradient(circle at 50% 50%, #FFF8DF 0 12px, #F4C542 13px 23px, #B87333 24px 100%) !important;\n  border:2px solid rgba(63,36,24,.25) !important;\n  box-shadow:0 0 28px rgba(244,197,66,.38),0 10px 24px rgba(63,36,24,.18),inset 0 0 0 1px rgba(255,241,201,.20) !important;\n}\n#vrf-freecell .vrf-lantern-mark::before{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:50% !important;\n  width:26px !important;\n  height:15px !important;\n  transform:translate(-50%,-50%) !important;\n  border-radius:999px !important;\n  background:linear-gradient(90deg,#3F2418 0 20%,#FFF8DF 21% 40%,#3F2418 41% 60%,#FFF8DF 61% 80%,#3F2418 81% 100%) !important;\n  border:0 !important;\n}\n#vrf-freecell .vrf-lantern-mark::after{\n  content:\"\" !important;\n  position:absolute !important;\n  left:50% !important;\n  top:50% !important;\n  width:38px !important;\n  height:22px !important;\n  transform:translate(-50%,-50%) !important;\n  border:0 !important;\n  background:radial-gradient(ellipse at 24% 50%, rgba(255,248,223,.74) 0 31%, transparent 33%),radial-gradient(ellipse at 76% 50%, rgba(255,248,223,.74) 0 31%, transparent 33%) !important;\n}\n#vrf-freecell .vrf-start-title,#vrf-freecell .vrf-win-title{color:#3F2418 !important;}\n#vrf-freecell .vrf-start-btn,#vrf-freecell .vrf-win-btn{\n  color:#3F2418 !important;\n  background:linear-gradient(180deg,#FFF8DF,#F4C542) !important;\n  border-color:rgba(255,255,255,.55) !important;\n  box-shadow:0 16px 34px rgba(63,36,24,.22) !important;\n  text-shadow:none !important;\n}\n#vrf-freecell .vrf-diff-btn{border-color:rgba(63,36,24,.16) !important;background:rgba(255,255,255,.38) !important;color:rgba(63,36,24,.74) !important;}\n#vrf-freecell .vrf-diff-btn:hover{border-color:rgba(63,36,24,.28) !important;background:rgba(255,248,223,.58) !important;}\n#vrf-freecell .vrf-diff-btn.active{color:#3F2418 !important;background:linear-gradient(180deg,#FFF8DF,#F4C542) !important;border-color:rgba(255,255,255,.55) !important;box-shadow:0 0 0 3px rgba(244,197,66,.16),0 0 18px rgba(244,197,66,.18) !important;}\n#vrf-freecell .vrf-help,#vrf-freecell .vrf-win-text{color:rgba(63,36,24,.76) !important;}\n#vrf-freecell .vrf-win-box{background:rgba(255,255,255,.38) !important;border-color:rgba(63,36,24,.11) !important;}\n#vrf-freecell .vrf-win-box span{color:rgba(63,36,24,.58) !important;}\n#vrf-freecell .vrf-win-box b{color:#3F2418 !important;}\n#vrf-freecell .vrf-rotate-note{background:rgba(43,22,14,.72) !important;color:#FFF8DF !important;backdrop-filter:blur(7px);}\n#vrf-freecell .vrf-rotate-card{background:rgba(63,36,24,.88) !important;border-color:rgba(255,241,201,.24) !important;box-shadow:0 24px 62px rgba(43,22,14,.40) !important;}\n#vrf-freecell:fullscreen,#vrf-freecell.vrf-is-fullscreen{background:#3F2418 !important;}\n@media (max-width:720px){#vrf-freecell .vrf-status{min-width:320px;}}\n<\/style>\n\n<div id=\"vrf-freecell\">\n  <div class=\"vrf-fit\" id=\"vrfFit\">\n    <div class=\"vrf-table-glow\"><\/div>\n    <div class=\"vrf-ornament left\"><\/div>\n    <div class=\"vrf-ornament right\"><\/div>\n\n    <button class=\"vrf-icon vrf-mute\" id=\"vrfMute\" type=\"button\" aria-label=\"Sound\">\n      <span class=\"vrf-sound-symbol\" aria-hidden=\"true\">\n        <span class=\"vrf-sound-box\"><\/span>\n        <span class=\"vrf-sound-wave w1\"><\/span>\n        <span class=\"vrf-sound-wave w2\"><\/span>\n        <span class=\"vrf-sound-wave w3\"><\/span>\n        <span class=\"vrf-sound-slash\"><\/span>\n      <\/span>\n    <\/button>\n\n    <button class=\"vrf-icon vrf-pause\" id=\"vrfPause\" type=\"button\" aria-label=\"Pause\">\n      <span class=\"vrf-pause-symbol\" aria-hidden=\"true\"><\/span>\n    <\/button>\n\n    <div class=\"vrf-stats\" aria-live=\"polite\">\n      <span class=\"vrf-stat\">Score <b id=\"vrfScore\">0<\/b><\/span>\n      <span class=\"vrf-stat\">Time <b id=\"vrfTime\">00:00<\/b><\/span>\n      <span class=\"vrf-stat\">Moves <b id=\"vrfMoves\">0<\/b><\/span>\n    <\/div>\n\n    <button class=\"vrf-icon vrf-fullscreen\" id=\"vrfFullscreen\" type=\"button\" aria-label=\"Fullscreen\">\n      <span class=\"vrf-full-symbol\" aria-hidden=\"true\"><\/span>\n    <\/button>\n\n    <div class=\"vrf-label free\"><span class=\"vrf-label-text\">Free Cells<\/span><\/div>\n    <div class=\"vrf-label foundation\"><span class=\"vrf-label-text\">Foundations<\/span><\/div>\n\n    <div class=\"vrf-slots\" id=\"vrfFreeSlots\"><\/div>\n    <div class=\"vrf-slots\" id=\"vrfFoundationSlots\"><\/div>\n    <div class=\"vrf-columns\" id=\"vrfColumnZones\"><\/div>\n    <div class=\"vrf-layer\" id=\"vrfCards\"><\/div>\n    <div class=\"vrf-ghost\" id=\"vrfGhost\"><\/div>\n\n    <div class=\"vrf-status\" id=\"vrfStatus\">Choose a difficulty, then open the honeylit card table.<\/div>\n\n    <div class=\"vrf-bottom-controls\">\n      <button class=\"vrf-pill\" id=\"vrfNewDeal\" type=\"button\">New Deal<\/button>\n      <button class=\"vrf-pill\" id=\"vrfRestart\" type=\"button\">Restart<\/button>\n      <button class=\"vrf-pill\" id=\"vrfUndo\" type=\"button\">Undo<\/button>\n      <button class=\"vrf-pill\" id=\"vrfHint\" type=\"button\">Hint<\/button>\n    <\/div>\n\n    <div class=\"vrf-overlay active\" id=\"vrfStartOverlay\">\n      <div class=\"vrf-popup\">\n        <div class=\"vrf-start-main\">\n          <div class=\"vrf-lantern-mark\" aria-hidden=\"true\"><\/div>\n          <h3 class=\"vrf-start-title\">Honeybound FreeCell<\/h3>\n          <button class=\"vrf-start-btn\" id=\"vrfStartBtn\" type=\"button\">Start Reading<\/button>\n          <div class=\"vrf-difficulty\" aria-label=\"Difficulty\">\n            <button class=\"vrf-diff-btn\" type=\"button\" data-diff=\"Easy\">Easy<\/button>\n            <button class=\"vrf-diff-btn active\" type=\"button\" data-diff=\"Normal\">Normal<\/button>\n            <button class=\"vrf-diff-btn\" type=\"button\" data-diff=\"Hard\">Hard<\/button>\n          <\/div>\n          <p class=\"vrf-help\">Build each foundation from Ace to King by suit. Arrange tableau cards in descending order with alternating colors, and use the free cells wisely.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"vrf-overlay\" id=\"vrfPauseOverlay\">\n      <div class=\"vrf-popup\">\n        <div class=\"vrf-start-main\">\n          <div class=\"vrf-lantern-mark\" aria-hidden=\"true\"><\/div>\n          <h3 class=\"vrf-start-title\">Reading Break<\/h3>\n          <button class=\"vrf-start-btn\" id=\"vrfResumeBtn\" type=\"button\">Return to the Table<\/button>\n          <p class=\"vrf-help vrf-pause-copy\">The honeylit cards will wait quietly on the archive table. Take a breath, then return when you are ready.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"vrf-overlay\" id=\"vrfWinOverlay\">\n      <div class=\"vrf-popup\">\n        <div class=\"vrf-win-main\">\n          <div class=\"vrf-lantern-mark\" aria-hidden=\"true\"><\/div>\n          <h3 class=\"vrf-win-title\">The Archive Is Complete<\/h3>\n          <p class=\"vrf-win-text\">Every suit has found its golden foundation, and the reading room settles into a quiet honey glow.<\/p>\n          <div class=\"vrf-win-grid\">\n            <div class=\"vrf-win-box\"><span>Score<\/span><b id=\"vrfWinScore\">0<\/b><\/div>\n            <div class=\"vrf-win-box\"><span>Time<\/span><b id=\"vrfWinTime\">00:00<\/b><\/div>\n            <div class=\"vrf-win-box\"><span>Moves<\/span><b id=\"vrfWinMoves\">0<\/b><\/div>\n          <\/div>\n          <button class=\"vrf-win-btn\" id=\"vrfPlayAgain\" type=\"button\">Play Again<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"vrf-rotate-note\">\n    <div class=\"vrf-rotate-card\">\n      <b>Rotate Your Phone<\/b>\n      <span>Landscape mode gives the Honey Library table more room and keeps every card easy to read.<\/span>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  \"use strict\";\n\n  function initializeHoneyboundFreeCell(){\n  const root=document.getElementById(\"vrf-freecell\");\n  if(!root || root.dataset.vrfWpReady === \"1\") return;\n  root.dataset.vrfWpReady = \"1\";\n  const fit=document.getElementById(\"vrfFit\");\n  const freeSlotsEl=document.getElementById(\"vrfFreeSlots\");\n  const foundationSlotsEl=document.getElementById(\"vrfFoundationSlots\");\n  const columnZonesEl=document.getElementById(\"vrfColumnZones\");\n  const cardsEl=document.getElementById(\"vrfCards\");\n  const ghostEl=document.getElementById(\"vrfGhost\");\n  const statusEl=document.getElementById(\"vrfStatus\");\n  const startOverlay=document.getElementById(\"vrfStartOverlay\");\n  const pauseOverlay=document.getElementById(\"vrfPauseOverlay\");\n  const winOverlay=document.getElementById(\"vrfWinOverlay\");\n  const scoreEl=document.getElementById(\"vrfScore\");\n  const timeEl=document.getElementById(\"vrfTime\");\n  const movesEl=document.getElementById(\"vrfMoves\");\n  const muteBtn=document.getElementById(\"vrfMute\");\n  const pauseBtn=document.getElementById(\"vrfPause\");\n  const fullscreenBtn=document.getElementById(\"vrfFullscreen\");\n  const startBtn=document.getElementById(\"vrfStartBtn\");\n  const resumeBtn=document.getElementById(\"vrfResumeBtn\");\n  const newDealBtn=document.getElementById(\"vrfNewDeal\");\n  const restartBtn=document.getElementById(\"vrfRestart\");\n  const undoBtn=document.getElementById(\"vrfUndo\");\n  const hintBtn=document.getElementById(\"vrfHint\");\n  const playAgainBtn=document.getElementById(\"vrfPlayAgain\");\n  const winScoreEl=document.getElementById(\"vrfWinScore\");\n  const winTimeEl=document.getElementById(\"vrfWinTime\");\n  const winMovesEl=document.getElementById(\"vrfWinMoves\");\n\n  const BASE_W=1280;\n  const BASE_H=720;\n  const CARD_W=86;\n  const CARD_H=116;\n  const CELL_Y=106;\n  const TABLEAU_Y=246;\n  const MAX_CARD_BOTTOM=626;\n  const SLOT_GAP=18;\n  const COL_GAP=17;\n  const COL_LEFT=Math.round((BASE_W-(8*CARD_W+7*COL_GAP))\/2);\n\n  const SUITS=[\n    {key:\"H\",icon:\"bee-seal\",color:\"red\",name:\"Bee Seals\"},\n    {key:\"D\",icon:\"honey-drop\",color:\"red\",name:\"Honey Drops\"},\n    {key:\"C\",icon:\"library-leaf\",color:\"black\",name:\"Library Leaves\"},\n    {key:\"S\",icon:\"golden-bookmark\",color:\"black\",name:\"Golden Bookmarks\"}\n  ];\n\n  const DIFFICULTY={\n    Easy:{base:7000,timePenalty:1,movePenalty:3,hintPenalty:50,candidates:10,pick:\"easy\"},\n    Normal:{base:10000,timePenalty:2,movePenalty:5,hintPenalty:100,candidates:8,pick:\"normal\"},\n    Hard:{base:13000,timePenalty:3,movePenalty:8,hintPenalty:200,candidates:12,pick:\"hard\"}\n  };\n\n  function vrfSafeRead(key){\n    try { return window.localStorage.getItem(key); } catch(error) { return null; }\n  }\n  function vrfSafeWrite(key,value){\n    try { window.localStorage.setItem(key,value); } catch(error) {}\n  }\n\n  const state={\n    started:false,\n    won:false,\n    paused:false,\n    pausedAt:0,\n    difficulty:\"Normal\",\n    deckMap:new Map(),\n    tableau:Array.from({length:8},()=>[]),\n    free:[null,null,null,null],\n    foundations:[],\n    moves:0,\n    hints:0,\n    undoStack:[],\n    selected:null,\n    hintMark:null,\n    initialSnapshot:null,\n    startTime:0,\n    finalElapsed:0,\n    muted:vrfSafeRead(\"vrfMuted\")===\"1\",\n    audioCtx:null\n  };\n\n  let interaction=null;\n  let lastTap={id:\"\",time:0};\n  let statusTimer=null;\n  let hintTimer=null;\n  const positions={free:[],foundation:[],columns:[]};\n\n  function rankLabel(rank){\n    if(rank===1) return \"A\";\n    if(rank===11) return \"J\";\n    if(rank===12) return \"Q\";\n    if(rank===13) return \"K\";\n    return String(rank);\n  }\n  function rankStatusName(rank){\n    if(rank===1) return \"Ace\";\n    if(rank===11) return \"Jack\";\n    if(rank===12) return \"Queen\";\n    if(rank===13) return \"King\";\n    return String(rank);\n  }\n  function suitByKey(key){return SUITS.find(s=>s.key===key)}\n  function cardColor(card){return suitByKey(card.suit).color}\n  function cardStatusName(card){return rankStatusName(card.rank)+\" of \"+suitByKey(card.suit).name}\n\n  function formatTime(seconds){\n    seconds=Math.max(0,Math.floor(seconds));\n    const m=String(Math.floor(seconds\/60)).padStart(2,\"0\");\n    const s=String(seconds%60).padStart(2,\"0\");\n    return m+\":\"+s;\n  }\n\n  function nowElapsed(){\n    if(!state.started) return 0;\n    if(state.won) return state.finalElapsed;\n    if(state.paused) return Math.floor((state.pausedAt-state.startTime)\/1000);\n    return Math.floor((Date.now()-state.startTime)\/1000);\n  }\n\n  function resetFoundations(){\n    state.foundations=[\n      {suit:null,rank:0},\n      {suit:null,rank:0},\n      {suit:null,rank:0},\n      {suit:null,rank:0}\n    ];\n  }\n\n  function foundationCount(){\n    return state.foundations.reduce((sum,pile)=>sum+pile.rank,0);\n  }\n\n  function calcScore(){\n    const cfg=DIFFICULTY[state.difficulty];\n    const score=cfg.base+foundationCount()*25-nowElapsed()*cfg.timePenalty-state.moves*cfg.movePenalty-state.hints*cfg.hintPenalty;\n    return Math.max(0,Math.floor(score));\n  }\n\n  function updateStats(){\n    scoreEl.textContent=String(calcScore());\n    timeEl.textContent=formatTime(nowElapsed());\n    movesEl.textContent=String(state.moves);\n    undoBtn.disabled=state.undoStack.length===0 || !state.started || state.won || state.paused;\n    hintBtn.disabled=!state.started || state.won || state.paused;\n    restartBtn.disabled=!state.started;\n  }\n\n  function setStatus(text,temporary){\n    statusEl.textContent=text;\n    if(statusTimer) clearTimeout(statusTimer);\n    if(temporary){\n      statusTimer=setTimeout(()=>{\n        if(!state.started) statusEl.textContent=\"Choose a difficulty, then open the honeylit card table.\";\n        else if(state.paused) statusEl.textContent=\"The honeylit table rests quietly.\";\n        else if(state.won) statusEl.textContent=\"Every suit now rests in a golden foundation.\";\n        else statusEl.textContent=\"Tap a card, then guide it to a golden place. You can also drag it across the honeylit table.\";\n      },temporary);\n    }\n  }\n\n  function initAudio(){\n    if(state.audioCtx) return;\n    const AC=window.AudioContext || window.webkitAudioContext;\n    if(!AC) return;\n    state.audioCtx=new AC();\n  }\n\n  function playChord(freqs,duration,volume){\n    const ctx=state.audioCtx;\n    if(!ctx) return;\n    freqs.forEach((freq,i)=>{\n      const t=ctx.currentTime+i*.075;\n      const gain=ctx.createGain();\n      const osc=ctx.createOscillator();\n      osc.type=i%2?\"sine\":\"triangle\";\n      osc.frequency.setValueAtTime(freq,t);\n      gain.gain.setValueAtTime(.0001,t);\n      gain.gain.exponentialRampToValueAtTime(volume,t+.025);\n      gain.gain.exponentialRampToValueAtTime(.0001,t+duration);\n      osc.connect(gain);\n      gain.connect(ctx.destination);\n      osc.start(t);\n      osc.stop(t+duration+.04);\n    });\n  }\n\n  function playSound(type){\n    if(state.muted) return;\n    initAudio();\n    const ctx=state.audioCtx;\n    if(!ctx) return;\n    if(ctx.state===\"suspended\" ? ctx.resume : false) ctx.resume().catch(()=>{});\n\n    function tone(freq,duration,volume,wave,delay,endRatio){\n      const t=ctx.currentTime+(delay||0);\n      const gain=ctx.createGain();\n      const osc=ctx.createOscillator();\n      osc.type=wave||\"triangle\";\n      osc.frequency.setValueAtTime(freq,t);\n      osc.frequency.exponentialRampToValueAtTime(Math.max(70,freq*(endRatio||.82)),t+duration);\n      gain.gain.setValueAtTime(.0001,t);\n      gain.gain.exponentialRampToValueAtTime(volume,t+.012);\n      gain.gain.exponentialRampToValueAtTime(.0001,t+duration);\n      osc.connect(gain);\n      gain.connect(ctx.destination);\n      osc.start(t);\n      osc.stop(t+duration+.025);\n    }\n\n    if(type===\"move\"){\n      tone(315,.070,.026,\"triangle\",0,.72);\n      tone(415,.055,.014,\"sine\",.018,.84);\n    }else if(type===\"foundation\"){\n      tone(520,.105,.026,\"triangle\",0,.92);\n      tone(690,.115,.020,\"sine\",.055,.94);\n    }else if(type===\"select\"){\n      tone(285,.050,.020,\"sine\",0,.76);\n    }else if(type===\"invalid\"){\n      tone(145,.115,.024,\"triangle\",0,.64);\n    }else if(type===\"hint\"){\n      tone(620,.115,.024,\"triangle\",0,.94);\n      tone(820,.120,.018,\"sine\",.052,.96);\n    }else if(type===\"deal\"){\n      tone(260,.080,.024,\"triangle\",0,.78);\n      tone(335,.085,.016,\"sine\",.045,.86);\n    }else if(type===\"pause\"){\n      tone(220,.105,.020,\"sine\",0,.70);\n    }else if(type===\"resume\"){\n      tone(360,.075,.022,\"triangle\",0,.88);\n      tone(470,.075,.014,\"sine\",.035,.92);\n    }else if(type===\"win\"){\n      playChord([392,493.88,587.33,783.99],.48,.025);\n    }\n  }\n\n  function createDeck(){\n    const deck=[];\n    SUITS.forEach(suit=>{\n      for(let r=1;r<=13;r++) deck.push({id:suit.key+\"-\"+r,suit:suit.key,rank:r});\n    });\n    return deck;\n  }\n\n  function mulberry32(seed){\n    return function(){\n      let t=seed+=0x6D2B79F5;\n      t=Math.imul(t^t>>>15,t|1);\n      t^=t+Math.imul(t^t>>>7,t|61);\n      return ((t^t>>>14)>>>0)\/4294967296;\n    };\n  }\n\n  function shuffle(deck,seed){\n    const rand=mulberry32(seed);\n    const arr=deck.slice();\n    for(let i=arr.length-1;i>0;i--){\n      const j=Math.floor(rand()*(i+1));\n      const tmp=arr[i];\n      arr[i]=arr[j];\n      arr[j]=tmp;\n    }\n    return arr;\n  }\n\n  function dealFromDeck(deck){\n    const tableau=Array.from({length:8},()=>[]);\n    deck.forEach((card,index)=>tableau[index%8].push(card));\n    return tableau;\n  }\n\n  function estimateDealDifficulty(tableau){\n    let score=0;\n    tableau.forEach(col=>{\n      col.forEach((card,index)=>{\n        const depth=col.length-1-index;\n        if(card.rank<=4) score+=depth*9+(5-card.rank)*3;\n      });\n      const top=col[col.length-1];\n      if(top){\n        if(top.rank<=3) score-=18;\n        if(top.rank===1) score-=16;\n      }\n      let chain=1;\n      for(let i=col.length-1;i>0;i--){\n        const upper=col[i];\n        const below=col[i-1];\n        if(below.rank===upper.rank+1 ? cardColor(below)!==cardColor(upper) : false) chain++;\n        else break;\n      }\n      score-=chain*5;\n    });\n    return score;\n  }\n\n  function chooseDeal(difficulty){\n    const cfg=DIFFICULTY[difficulty];\n    const base=createDeck();\n    const candidates=[];\n    for(let i=0;i<cfg.candidates;i++){\n      const seed=((Date.now()+Math.floor(Math.random()*9999999)+i*7919)>>>0);\n      const deck=shuffle(base,seed);\n      const tableau=dealFromDeck(deck);\n      candidates.push({deck,tableau,difficulty:estimateDealDifficulty(tableau)});\n    }\n    candidates.sort((a,b)=>a.difficulty-b.difficulty);\n    if(cfg.pick===\"easy\") return candidates[0];\n    if(cfg.pick===\"hard\") return candidates[candidates.length-1];\n    return candidates[Math.floor(candidates.length\/2)];\n  }\n\n  function snapshot(){\n    return {\n      tableau:state.tableau.map(col=>col.map(c=>c.id)),\n      free:state.free.map(c=>c?c.id:null),\n      foundations:state.foundations.map(pile=>({suit:pile.suit,rank:pile.rank})),\n      moves:state.moves,\n      hints:state.hints\n    };\n  }\n\n  function clearGhost(){\n    ghostEl.innerHTML=\"\";\n    ghostEl.style.transform=\"\";\n  }\n\n  function updatePauseButton(){\n    pauseBtn.setAttribute(\"aria-label\",state.paused?\"Resume\":\"Pause\");\n    root.classList.toggle(\"vrf-paused\",state.paused);\n    pauseOverlay.classList.toggle(\"active\",state.paused);\n  }\n\n  function restoreSnapshot(snap){\n    state.tableau=snap.tableau.map(col=>col.map(id=>state.deckMap.get(id)));\n    state.free=snap.free.map(id=>id?state.deckMap.get(id):null);\n    state.foundations=snap.foundations.map(pile=>({suit:pile.suit,rank:pile.rank}));\n    state.moves=snap.moves;\n    state.hints=snap.hints;\n    state.selected=null;\n    state.hintMark=null;\n    state.won=false;\n    state.paused=false;\n    state.pausedAt=0;\n    interaction=null;\n    clearGhost();\n    pauseOverlay.classList.remove(\"active\");\n    winOverlay.classList.remove(\"active\");\n    updatePauseButton();\n    render();\n    updateStats();\n  }\n\n  function pushUndo(){\n    state.undoStack.push(snapshot());\n    if(state.undoStack.length>80) state.undoStack.shift();\n  }\n\n  function setupPositions(){\n    positions.free=[];\n    positions.foundation=[];\n    positions.columns=[];\n\n    const freeX=COL_LEFT;\n    const foundationX=freeX+4*(CARD_W+SLOT_GAP);\n\n    for(let i=0;i<4;i++){\n      positions.free.push({x:freeX+i*(CARD_W+SLOT_GAP),y:CELL_Y,w:CARD_W,h:CARD_H});\n      positions.foundation.push({x:foundationX+i*(CARD_W+SLOT_GAP),y:CELL_Y,w:CARD_W,h:CARD_H,index:i});\n    }\n    for(let i=0;i<8;i++){\n      positions.columns.push({x:COL_LEFT+i*(CARD_W+COL_GAP),y:TABLEAU_Y,w:CARD_W,h:430,col:i});\n    }\n  }\n\n  function createDropZones(){\n    freeSlotsEl.innerHTML=\"\";\n    foundationSlotsEl.innerHTML=\"\";\n    columnZonesEl.innerHTML=\"\";\n\n    positions.free.forEach((p,i)=>{\n      const slot=document.createElement(\"div\");\n      slot.className=\"vrf-slot vrf-drop\";\n      slot.dataset.target=\"free\";\n      slot.dataset.index=String(i);\n      slot.style.left=p.x+\"px\";\n      slot.style.top=p.y+\"px\";\n      freeSlotsEl.appendChild(slot);\n    });\n\n    positions.foundation.forEach((p,i)=>{\n      const slot=document.createElement(\"div\");\n      slot.className=\"vrf-slot vrf-drop\";\n      slot.dataset.target=\"foundation\";\n      slot.dataset.index=String(i);\n      slot.style.left=p.x+\"px\";\n      slot.style.top=p.y+\"px\";\n      foundationSlotsEl.appendChild(slot);\n    });\n\n    positions.columns.forEach((p,i)=>{\n      const zone=document.createElement(\"div\");\n      zone.className=\"vrf-column-zone vrf-drop\";\n      zone.dataset.target=\"tableau\";\n      zone.dataset.col=String(i);\n      zone.style.left=p.x+\"px\";\n      zone.style.top=(p.y-8)+\"px\";\n      zone.style.height=\"392px\";\n      columnZonesEl.appendChild(zone);\n    });\n  }\n\n  function getFanGap(){\n    const maxLen=Math.max(1,...state.tableau.map(col=>col.length));\n    if(maxLen<=1) return 31;\n    const fitGap=(MAX_CARD_BOTTOM-CARD_H-TABLEAU_Y)\/(maxLen-1);\n    return Math.max(7,Math.min(31,fitGap));\n  }\n\n  function suitIconHTML(suit,small){\n    return '<span class=\"vrf-suit-shape vrf-suit-'+suit.icon+(small?' small':' center')+'\" aria-hidden=\"true\"><\/span>';\n  }\n\n  function createCardEl(card,x,y,loc,zIndex){\n    const suit=suitByKey(card.suit);\n    const el=document.createElement(\"div\");\n    el.className=\"vrf-card \"+suit.color+\" suit-\"+suit.key;\n    el.dataset.cardId=card.id;\n    el.dataset.loc=loc.type;\n\n    if(loc.type===\"tableau\"){\n      el.dataset.col=String(loc.col);\n      el.dataset.index=String(loc.index);\n    }else if(loc.type===\"free\"){\n      el.dataset.index=String(loc.index);\n    }else if(loc.type===\"foundation\"){\n      el.dataset.index=String(loc.index);\n      el.classList.add(\"foundation-card\");\n    }\n\n    el.style.left=x+\"px\";\n    el.style.top=y+\"px\";\n    el.style.zIndex=String(zIndex);\n\n    const label=rankLabel(card.rank);\n    el.innerHTML=\n      '<div class=\"vrf-corner\"><div>'+label+'<\/div><div class=\"suit-small\">'+suitIconHTML(suit,true)+'<\/div><\/div>'+\n      '<div class=\"vrf-center-suit\">'+suitIconHTML(suit,false)+'<\/div>'+\n      '<div class=\"vrf-corner bottom\"><div>'+label+'<\/div><div class=\"suit-small\">'+suitIconHTML(suit,true)+'<\/div><\/div>';\n\n    if(state.selected ? state.selected.stack.some(c=>c.id===card.id) : false){\n      el.classList.add(\"vrf-selected\");\n      if(interaction ? interaction.drag : false) el.classList.add(\"vrf-dimmed\");\n    }\n    if(state.hintMark ? state.hintMark.sourceIds.includes(card.id) : false){\n      el.classList.add(\"vrf-hint-source\");\n    }\n    return el;\n  }\n\n  function renderFoundationCard(index,x,y,zIndex){\n    const pile=state.foundations[index];\n    if(!pile || !pile.suit || pile.rank<=0) return null;\n    return createCardEl({id:\"F-\"+index+\"-\"+pile.rank,suit:pile.suit,rank:pile.rank},x,y,{type:\"foundation\",index},zIndex);\n  }\n\n  function clearDropHighlights(){\n    root.querySelectorAll(\".vrf-drop\").forEach(el=>el.classList.remove(\"vrf-valid\",\"vrf-hint-target\"));\n  }\n\n  function dropElementForTarget(target){\n    if(!target) return null;\n    if(target.type===\"free\") return root.querySelector('.vrf-drop[data-target=\"free\"][data-index=\"'+target.index+'\"]');\n    if(target.type===\"foundation\") return root.querySelector('.vrf-drop[data-target=\"foundation\"][data-index=\"'+target.index+'\"]');\n    if(target.type===\"tableau\") return root.querySelector('.vrf-drop[data-target=\"tableau\"][data-col=\"'+target.col+'\"]');\n    return null;\n  }\n\n  function updateDropHighlights(){\n    clearDropHighlights();\n    if(state.selected ? !state.paused : false){\n      getValidTargets(state.selected).forEach(target=>{\n        const el=dropElementForTarget(target);\n        if(el) el.classList.add(\"vrf-valid\");\n      });\n    }\n    if(state.hintMark ? (state.hintMark.target ? !state.paused : false) : false){\n      const el=dropElementForTarget(state.hintMark.target);\n      if(el) el.classList.add(\"vrf-hint-target\");\n    }\n  }\n\n  function render(){\n    cardsEl.innerHTML=\"\";\n    const fan=getFanGap();\n\n    state.free.forEach((card,i)=>{\n      if(!card) return;\n      const p=positions.free[i];\n      cardsEl.appendChild(createCardEl(card,p.x,p.y,{type:\"free\",index:i},50+i));\n    });\n\n    positions.foundation.forEach((p,i)=>{\n      const cardEl=renderFoundationCard(i,p.x,p.y,50+i);\n      if(cardEl) cardsEl.appendChild(cardEl);\n    });\n\n    state.tableau.forEach((col,colIndex)=>{\n      const p=positions.columns[colIndex];\n      col.forEach((card,index)=>{\n        const y=TABLEAU_Y+index*fan;\n        cardsEl.appendChild(createCardEl(card,p.x,y,{type:\"tableau\",col:colIndex,index},100+colIndex*70+index));\n      });\n    });\n\n    updateDropHighlights();\n    updateStats();\n  }\n\n  function isOrderedStack(stack){\n    if(!stack || stack.length<=1) return true;\n    for(let i=0;i<stack.length-1;i++){\n      const lower=stack[i];\n      const upper=stack[i+1];\n      if(lower.rank!==upper.rank+1) return false;\n      if(cardColor(lower)===cardColor(upper)) return false;\n    }\n    return true;\n  }\n\n  function selectionFromElement(el){\n    const loc=el.dataset.loc;\n    if(loc===\"free\"){\n      const index=Number(el.dataset.index);\n      const card=state.free[index];\n      if(!card) return null;\n      return {source:{type:\"free\",index},stack:[card],index:0};\n    }\n    if(loc===\"tableau\"){\n      const col=Number(el.dataset.col);\n      const index=Number(el.dataset.index);\n      const column=state.tableau[col];\n      const stack=column.slice(index);\n      if(!stack.length) return null;\n      if(!isOrderedStack(stack)){\n        playSound(\"invalid\");\n        setStatus(\"Only descending stacks with alternating colors can move.\",1400);\n        return null;\n      }\n      return {source:{type:\"tableau\",col},stack,index};\n    }\n    return null;\n  }\n\n  function targetFromCardElement(el){\n    const loc=el.dataset.loc;\n    if(loc===\"tableau\") return {type:\"tableau\",col:Number(el.dataset.col)};\n    if(loc===\"foundation\") return {type:\"foundation\",index:Number(el.dataset.index)};\n    if(loc===\"free\") return {type:\"free\",index:Number(el.dataset.index)};\n    return null;\n  }\n\n  function sameSourceAndTarget(sel,target){\n    if(!sel || !target) return false;\n    if(sel.source.type===\"tableau\" ? (target.type===\"tableau\" ? sel.source.col===target.col : false) : false) return true;\n    if(sel.source.type===\"free\" ? (target.type===\"free\" ? sel.source.index===target.index : false) : false) return true;\n    return false;\n  }\n\n  function emptyFreeCount(){return state.free.filter(c=>!c).length}\n  function emptyTableauCount(sourceCol,targetCol){\n    return state.tableau.filter((col,i)=>{\n      if(i===sourceCol || i===targetCol) return false;\n      return col.length===0;\n    }).length;\n  }\n  function moveCapacity(sel,target){\n    if(sel.source.type!==\"tableau\") return 1;\n    const sourceCol=sel.source.col;\n    const targetCol=target ? (target.type===\"tableau\" ? target.col : -1) : -1;\n    const emptyCols=emptyTableauCount(sourceCol,targetCol);\n    return (emptyFreeCount()+1)*Math.pow(2,emptyCols);\n  }\n\n  function canPlaceOnTableau(stack,colIndex){\n    const dest=state.tableau[colIndex];\n    const bottomMoving=stack[0];\n    if(!dest.length) return true;\n    const destTop=dest[dest.length-1];\n    return destTop.rank===bottomMoving.rank+1 ? cardColor(destTop)!==cardColor(bottomMoving) : false;\n  }\n\n  function canPlaceOnFoundation(card,index){\n    const pile=state.foundations[index];\n    if(!pile.suit || pile.rank===0) return card.rank===1;\n    return pile.suit===card.suit ? card.rank===pile.rank+1 : false;\n  }\n\n  function canMove(sel,target){\n    if(!sel || !target || !sel.stack.length || state.paused) return false;\n    if(sameSourceAndTarget(sel,target)) return false;\n\n    const stack=sel.stack;\n\n    if(target.type===\"free\") return stack.length===1 ? !state.free[target.index] : false;\n    if(target.type===\"foundation\"){\n      if(stack.length!==1) return false;\n      return canPlaceOnFoundation(stack[0],target.index);\n    }\n    if(target.type===\"tableau\"){\n      if(!canPlaceOnTableau(stack,target.col)) return false;\n      if(sel.source.type===\"tableau\" ? stack.length>moveCapacity(sel,target) : false) return false;\n      return true;\n    }\n    return false;\n  }\n\n  function getValidTargets(sel){\n    const targets=[];\n    for(let i=0;i<4;i++){\n      const target={type:\"free\",index:i};\n      if(canMove(sel,target)) targets.push(target);\n    }\n    for(let i=0;i<4;i++){\n      const target={type:\"foundation\",index:i};\n      if(canMove(sel,target)) targets.push(target);\n    }\n    for(let i=0;i<8;i++){\n      const target={type:\"tableau\",col:i};\n      if(canMove(sel,target)) targets.push(target);\n    }\n    return targets;\n  }\n\n  function removeSelectionFromSource(sel){\n    if(sel.source.type===\"free\"){\n      state.free[sel.source.index]=null;\n      return;\n    }\n    if(sel.source.type===\"tableau\") state.tableau[sel.source.col].splice(sel.index);\n  }\n\n  function placeStack(sel,target){\n    const stack=sel.stack;\n    if(target.type===\"free\"){\n      state.free[target.index]=stack[0];\n      return;\n    }\n    if(target.type===\"foundation\"){\n      const card=stack[0];\n      state.foundations[target.index].suit=card.suit;\n      state.foundations[target.index].rank=card.rank;\n      return;\n    }\n    if(target.type===\"tableau\") state.tableau[target.col].push(...stack);\n  }\n\n  function messageForMove(sel,target){\n    const label=cardStatusName(sel.stack[0]);\n    if(target.type===\"foundation\") return label+\" settled into a golden foundation.\";\n    if(target.type===\"free\") return label+\" rests inside a quiet free cell.\";\n    return label+\" found a new place on the honeylit tableau.\";\n  }\n\n  function tryMove(sel,target,quiet){\n    if(!state.started || state.won || state.paused) return false;\n    if(!canMove(sel,target)){\n      if(!quiet){\n        playSound(\"invalid\");\n        setStatus(\"That card cannot follow the current shelf order.\",1200);\n      }\n      return false;\n    }\n\n    pushUndo();\n    removeSelectionFromSource(sel);\n    placeStack(sel,target);\n    state.moves++;\n    state.selected=null;\n    state.hintMark=null;\n    interaction=null;\n    clearGhost();\n\n    playSound(target.type===\"foundation\" ? \"foundation\" : \"move\");\n    setStatus(messageForMove(sel,target),1100);\n    render();\n    checkWin();\n    return true;\n  }\n\n  function autoMoveSelection(sel){\n    if(!sel || sel.stack.length!==1 || state.paused) return false;\n    for(let i=0;i<4;i++){\n      const target={type:\"foundation\",index:i};\n      if(canMove(sel,target)){\n        tryMove(sel,target);\n        return true;\n      }\n    }\n    playSound(\"invalid\");\n    setStatus(\"That golden stack is not ready for this card yet.\",1400);\n    return false;\n  }\n\n  function gamePoint(clientX,clientY){\n    const rect=fit.getBoundingClientRect();\n    const scale=rect.width\/BASE_W;\n    return {x:(clientX-rect.left)\/scale,y:(clientY-rect.top)\/scale};\n  }\n\n  function pointInRect(p,r){\n    return p.x>=r.x ? (p.x<=r.x+r.w ? (p.y>=r.y ? p.y<=r.y+r.h : false) : false) : false;\n  }\n\n  function targetFromPoint(clientX,clientY){\n    const p=gamePoint(clientX,clientY);\n\n    for(let i=0;i<positions.free.length;i++){\n      if(pointInRect(p,positions.free[i])) return {type:\"free\",index:i};\n    }\n    for(let i=0;i<positions.foundation.length;i++){\n      if(pointInRect(p,positions.foundation[i])) return {type:\"foundation\",index:i};\n    }\n    for(let i=0;i<positions.columns.length;i++){\n      const r=positions.columns[i];\n      const hit={x:r.x-COL_GAP\/2,y:r.y-34,w:r.w+COL_GAP,h:470};\n      if(pointInRect(p,hit)) return {type:\"tableau\",col:i};\n    }\n    return null;\n  }\n\n  function buildGhost(sel,point){\n    ghostEl.innerHTML=\"\";\n    const fan=Math.min(25,getFanGap());\n    sel.stack.forEach((card,i)=>{\n      const el=createCardEl(card,0,i*fan,{type:\"ghost\"},200+i);\n      el.style.left=\"0px\";\n      el.style.top=(i*fan)+\"px\";\n      ghostEl.appendChild(el);\n    });\n    moveGhost(point);\n  }\n\n  function moveGhost(point){\n    if(!interaction) return;\n    const fan=Math.min(25,getFanGap());\n    const totalHeight=CARD_H+Math.max(0,interaction.selection.stack.length-1)*fan;\n    const x=point.x-CARD_W\/2;\n    const y=point.y-Math.min(34,totalHeight\/3);\n    ghostEl.style.transform=\"translate(\"+x+\"px, \"+y+\"px)\";\n  }\n\n  function clearSelection(){\n    state.selected=null;\n    state.hintMark=null;\n    interaction=null;\n    clearGhost();\n    render();\n  }\n\n  function handleTapSelection(sel,cardId){\n    const now=Date.now();\n    const isDoubleTap=sel.stack.length===1 ? (lastTap.id===cardId ? now-lastTap.time<340 : false) : false;\n    if(isDoubleTap){\n      lastTap={id:\"\",time:0};\n      state.selected=null;\n      autoMoveSelection(sel);\n      render();\n      return;\n    }\n    lastTap={id:cardId,time:now};\n    state.selected=sel;\n    state.hintMark=null;\n    playSound(\"select\");\n    setStatus(\"Tap a golden place, or drag the selected card.\",1400);\n    render();\n  }\n\n  function onBoardPointerDown(e){\n    if(!state.started || state.won || state.paused) return;\n    if(e.target.closest(\"button\")) return;\n    e.preventDefault();\n\n    if(cardsEl.setPointerCapture ? e.pointerId!==undefined : false){\n      try{cardsEl.setPointerCapture(e.pointerId)}catch(err){}\n    }\n\n    const cardEl=e.target.closest(\".vrf-card\");\n\n    if(!cardEl || !cardsEl.contains(cardEl)){\n      if(state.selected){\n        const target=targetFromPoint(e.clientX,e.clientY);\n        if(target ? tryMove(state.selected,target) : false) return;\n        clearSelection();\n      }\n      return;\n    }\n\n    if(state.selected){\n      const target=targetFromCardElement(cardEl);\n      if(target ? tryMove(state.selected,target,true) : false) return;\n    }\n\n    if(cardEl.dataset.loc===\"foundation\"){\n      if(state.selected){\n        const target={type:\"foundation\",index:Number(cardEl.dataset.index)};\n        tryMove(state.selected,target);\n      }\n      return;\n    }\n\n    const sel=selectionFromElement(cardEl);\n    if(!sel) return;\n\n    interaction={\n      selection:sel,\n      startX:e.clientX,\n      startY:e.clientY,\n      cardId:sel.stack[sel.stack.length-1].id,\n      drag:false\n    };\n\n    window.addEventListener(\"pointermove\",onPointerMove,{passive:false});\n    window.addEventListener(\"pointerup\",onPointerUp,{passive:false,once:true});\n    window.addEventListener(\"pointercancel\",onPointerCancel,{passive:false,once:true});\n  }\n\n  function onPointerMove(e){\n    if(!interaction || state.paused) return;\n    e.preventDefault();\n\n    const dx=e.clientX-interaction.startX;\n    const dy=e.clientY-interaction.startY;\n    const dist=Math.sqrt(dx*dx+dy*dy);\n\n    if(!interaction.drag ? dist>7 : false){\n      interaction.drag=true;\n      state.selected=interaction.selection;\n      state.hintMark=null;\n      buildGhost(interaction.selection,gamePoint(e.clientX,e.clientY));\n      render();\n    }\n\n    if(interaction.drag) moveGhost(gamePoint(e.clientX,e.clientY));\n  }\n\n  function onPointerUp(e){\n    if(!interaction) return;\n    e.preventDefault();\n\n    const wasDrag=interaction.drag;\n    const sel=interaction.selection;\n    const cardId=interaction.cardId;\n\n    window.removeEventListener(\"pointermove\",onPointerMove);\n    window.removeEventListener(\"pointercancel\",onPointerCancel);\n\n    if(state.paused){\n      clearSelection();\n      return;\n    }\n\n    if(wasDrag){\n      const target=targetFromPoint(e.clientX,e.clientY);\n      clearGhost();\n\n      if(target ? tryMove(sel,target) : false){\n        interaction=null;\n        return;\n      }\n\n      playSound(\"invalid\");\n      setStatus(\"The card slides gently back to the archive table.\",900);\n      state.selected=null;\n      interaction=null;\n      render();\n    }else{\n      interaction=null;\n      handleTapSelection(sel,cardId);\n    }\n  }\n\n  function onPointerCancel(){\n    if(!interaction) return;\n    window.removeEventListener(\"pointermove\",onPointerMove);\n    clearGhost();\n    interaction=null;\n    state.selected=null;\n    render();\n  }\n\n  function findHint(){\n    const hints=[];\n    function addHint(sel,target,score){\n      if(canMove(sel,target)) hints.push({sel,target,score});\n    }\n\n    state.free.forEach((card,i)=>{\n      if(!card) return;\n      const sel={source:{type:\"free\",index:i},stack:[card],index:0};\n      for(let f=0;f<4;f++) addHint(sel,{type:\"foundation\",index:f},120);\n      for(let c=0;c<8;c++) addHint(sel,{type:\"tableau\",col:c},48);\n    });\n\n    state.tableau.forEach((col,colIndex)=>{\n      if(!col.length) return;\n\n      const topIndex=col.length-1;\n      const topSel={source:{type:\"tableau\",col:colIndex},stack:[col[topIndex]],index:topIndex};\n\n      for(let f=0;f<4;f++) addHint(topSel,{type:\"foundation\",index:f},140);\n      for(let free=0;free<4;free++) addHint(topSel,{type:\"free\",index:free},12);\n\n      for(let index=0;index<col.length;index++){\n        const stack=col.slice(index);\n        if(!isOrderedStack(stack)) continue;\n        const sel={source:{type:\"tableau\",col:colIndex},stack,index};\n\n        for(let c=0;c<8;c++){\n          const opensColumn=index>0 ? 9 : 0;\n          const stackBonus=stack.length>1 ? stack.length*8 : 0;\n          addHint(sel,{type:\"tableau\",col:c},40+opensColumn+stackBonus);\n        }\n      }\n    });\n\n    if(!hints.length) return null;\n    hints.sort((a,b)=>b.score-a.score);\n\n    if(state.difficulty===\"Hard\" ? hints.length>2 : false){\n      return hints[Math.min(hints.length-1,Math.floor(hints.length*.38))];\n    }\n    return hints[0];\n  }\n\n  function useHint(){\n    if(!state.started || state.won || state.paused) return;\n\n    const hint=findHint();\n    state.hints++;\n\n    if(!hint){\n      playSound(\"invalid\");\n      setStatus(\"No golden hint is visible in the library light right now.\",1400);\n      updateStats();\n      return;\n    }\n\n    state.selected=null;\n    state.hintMark={sourceIds:hint.sel.stack.map(c=>c.id),target:hint.target};\n    playSound(\"hint\");\n\n    if(state.difficulty===\"Easy\"){\n      setStatus(\"Hint: move \"+cardStatusName(hint.sel.stack[0])+\" to the golden place.\",1800);\n    }else if(state.difficulty===\"Hard\"){\n      setStatus(\"The archive offers only a quiet clue.\",1600);\n    }else{\n      setStatus(\"An amber path is glowing.\",1500);\n    }\n\n    render();\n\n    if(hintTimer) clearTimeout(hintTimer);\n    hintTimer=setTimeout(()=>{\n      state.hintMark=null;\n      render();\n    },1900);\n  }\n\n  function checkWin(){\n    if(foundationCount()!==52) return;\n\n    state.won=true;\n    state.finalElapsed=nowElapsed();\n    state.selected=null;\n    state.hintMark=null;\n    state.paused=false;\n    state.pausedAt=0;\n    pauseOverlay.classList.remove(\"active\");\n    updatePauseButton();\n    winScoreEl.textContent=String(calcScore());\n    winTimeEl.textContent=formatTime(state.finalElapsed);\n    winMovesEl.textContent=String(state.moves);\n    statusEl.textContent=\"Every suit now rests in a golden foundation.\";\n    winOverlay.classList.add(\"active\");\n    playSound(\"win\");\n    render();\n  }\n\n  function togglePause(){\n    if(!state.started || state.won) return;\n\n    if(!state.paused){\n      state.paused=true;\n      state.pausedAt=Date.now();\n      state.selected=null;\n      state.hintMark=null;\n      interaction=null;\n      clearGhost();\n      setStatus(\"The honeylit table rests quietly.\");\n      playSound(\"pause\");\n    }else{\n      const pausedDuration=Date.now()-state.pausedAt;\n      state.startTime+=pausedDuration;\n      state.paused=false;\n      state.pausedAt=0;\n      setStatus(\"The honeylight is moving again.\",900);\n      playSound(\"resume\");\n    }\n\n    updatePauseButton();\n    render();\n  }\n\n  function startNewDeal(difficulty){\n    root.classList.add(\"vrf-game-active\");\n    initAudio();\n\n    state.started=true;\n    state.won=false;\n    state.paused=false;\n    state.pausedAt=0;\n    state.difficulty=difficulty || state.difficulty;\n    state.moves=0;\n    state.hints=0;\n    state.undoStack=[];\n    state.selected=null;\n    state.hintMark=null;\n    state.free=[null,null,null,null];\n    resetFoundations();\n    state.startTime=Date.now();\n    state.finalElapsed=0;\n\n    const deal=chooseDeal(state.difficulty);\n    state.deckMap=new Map();\n    deal.deck.forEach(card=>state.deckMap.set(card.id,card));\n    state.tableau=deal.tableau;\n    state.initialSnapshot=snapshot();\n\n    startOverlay.classList.remove(\"active\");\n    pauseOverlay.classList.remove(\"active\");\n    winOverlay.classList.remove(\"active\");\n    updatePauseButton();\n\n    setStatus(\"Tap a card, then guide it to a golden place. You can also drag it across the honeylit table.\",1500);\n    playSound(\"deal\");\n    render();\n  }\n\n  function restartDeal(){\n    if(!state.initialSnapshot) return;\n\n    state.started=true;\n    state.won=false;\n    state.paused=false;\n    state.pausedAt=0;\n    state.startTime=Date.now();\n    state.finalElapsed=0;\n    state.undoStack=[];\n\n    restoreSnapshot({\n      tableau:state.initialSnapshot.tableau.map(col=>col.slice()),\n      free:[null,null,null,null],\n      foundations:[\n        {suit:null,rank:0},\n        {suit:null,rank:0},\n        {suit:null,rank:0},\n        {suit:null,rank:0}\n      ],\n      moves:0,\n      hints:0\n    });\n\n    setStatus(\"The honeylit table has been reset.\",1100);\n    playSound(\"deal\");\n  }\n\n  function undo(){\n    if(!state.undoStack.length || state.won || state.paused) return;\n    const snap=state.undoStack.pop();\n    restoreSnapshot(snap);\n    setStatus(\"One card returns to its earlier place.\",900);\n    playSound(\"select\");\n  }\n\n  async function toggleFullscreen(){\n    try{\n      if(!document.fullscreenElement){\n        await root.requestFullscreen();\n        if(screen.orientation ? screen.orientation.lock : false){\n          try{await screen.orientation.lock(\"landscape\")}catch(err){}\n        }\n      }else{\n        if(screen.orientation ? screen.orientation.unlock : false){\n          try{screen.orientation.unlock()}catch(err){}\n        }\n        await document.exitFullscreen();\n      }\n    }catch(err){\n      setStatus(\"Fullscreen is not available in this browser.\",1500);\n    }\n    resizeGame();\n  }\n\n  function resizeGame(){\n    const w=root.clientWidth;\n    const h=root.clientHeight;\n    const scale=Math.min(w\/BASE_W,h\/BASE_H);\n    const left=(w-BASE_W*scale)\/2;\n    const top=(h-BASE_H*scale)\/2;\n\n    fit.style.left=left+\"px\";\n    fit.style.top=top+\"px\";\n    fit.style.transform=\"scale(\"+scale+\")\";\n\n    const isFs=document.fullscreenElement===root;\n    root.classList.toggle(\"vrf-is-fullscreen\",isFs);\n    root.classList.toggle(\"vrf-portrait-fullscreen\",isFs ? window.innerHeight>window.innerWidth : false);\n  }\n\n  function updateMuteButton(){\n    muteBtn.setAttribute(\"aria-label\",state.muted?\"Muted\":\"Sound\");\n    root.classList.toggle(\"vrf-muted\",state.muted);\n  }\n\n  function setDifficulty(diff){\n    state.difficulty=diff;\n    root.querySelectorAll(\".vrf-diff-btn\").forEach(btn=>{\n      const active=btn.dataset.diff===diff;\n      btn.classList.toggle(\"active\",active);\n      btn.setAttribute(\"aria-pressed\",active?\"true\":\"false\");\n    });\n    setStatus(diff+\" difficulty selected.\",900);\n    playSound(\"select\");\n  }\n\n  function bindEvents(){\n    root.querySelectorAll(\".vrf-diff-btn\").forEach(btn=>{\n      btn.addEventListener(\"click\",()=>setDifficulty(btn.dataset.diff));\n    });\n\n    startBtn.addEventListener(\"click\",()=>startNewDeal(state.difficulty));\n    resumeBtn.addEventListener(\"click\",togglePause);\n    playAgainBtn.addEventListener(\"click\",()=>startNewDeal(state.difficulty));\n    newDealBtn.addEventListener(\"click\",()=>startNewDeal(state.difficulty));\n    restartBtn.addEventListener(\"click\",restartDeal);\n    undoBtn.addEventListener(\"click\",undo);\n    hintBtn.addEventListener(\"click\",useHint);\n    fullscreenBtn.addEventListener(\"click\",toggleFullscreen);\n    pauseBtn.addEventListener(\"click\",togglePause);\n\n    muteBtn.addEventListener(\"click\",()=>{\n      state.muted=!state.muted;\n      vrfSafeWrite(\"vrfMuted\",state.muted?\"1\":\"0\");\n      updateMuteButton();\n      if(!state.muted) playSound(\"select\");\n    });\n\n    cardsEl.addEventListener(\"pointerdown\",onBoardPointerDown,{passive:false});\n    cardsEl.addEventListener(\"touchstart\",function(e){e.preventDefault()},{passive:false});\n\n    document.addEventListener(\"fullscreenchange\",resizeGame);\n    window.addEventListener(\"resize\",resizeGame);\n    window.addEventListener(\"orientationchange\",()=>setTimeout(resizeGame,220));\n\n    setInterval(updateStats,500);\n  }\n\n  function initEmptyBoard(){\n    const base=createDeck();\n    state.deckMap=new Map();\n    base.forEach(card=>state.deckMap.set(card.id,card));\n    state.tableau=Array.from({length:8},()=>[]);\n    state.free=[null,null,null,null];\n    resetFoundations();\n    render();\n  }\n\n  setupPositions();\n  createDropZones();\n  bindEvents();\n  updateMuteButton();\n  updatePauseButton();\n  initEmptyBoard();\n  resizeGame();\n  updateStats();\n  }\n\n  if(document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\",initializeHoneyboundFreeCell,{once:true});\n  } else {\n    initializeHoneyboundFreeCell();\n  }\n})();\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">Plan, Move, Undo, and Build the Foundations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Move cards between the tableau, free cells, and foundations using tap or drag controls. Build each foundation from Ace to King, keep tableau stacks descending with alternating colors, and use the available free cells as temporary spaces when the board becomes tight.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The game includes multiple difficulty options, a move counter, timer, score system, undo button, hint button, pause mode, sound toggle, and responsive fullscreen support. Whether you want a relaxed card puzzle or a more focused challenge, <strong>Honeybound FreeCell<\/strong> gives you a smooth and comfortable solitaire experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why You Will Love Honeybound FreeCell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Honeybound FreeCell<\/strong> is perfect for players who enjoy thoughtful solitaire games with a calm, polished atmosphere. It is strategic without feeling harsh, cozy without feeling sleepy, and simple enough to play during a short break.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Step into the Honey Library, follow the golden suits, and see if you can guide every card home before the reading room grows quiet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Honeybound FreeCell is a cozy FreeCell solitaire game set inside a warm honeylit library, where every card feels like a small piece of an old golden archive. The table glows with parchment colors, amber light, soft shadows, and library-inspired card suits such as bee seals, honey drops, leafy marks, and golden bookmarks. Your goal is &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-card"],"_links":{"self":[{"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=63"}],"version-history":[{"count":0,"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/play.produsenpagarbrc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}