{"id":971,"date":"2026-03-30T14:09:31","date_gmt":"2026-03-30T14:09:31","guid":{"rendered":"https:\/\/gerdygamingcz.com\/?page_id=971"},"modified":"2026-03-30T14:09:52","modified_gmt":"2026-03-30T14:09:52","slug":"elementor-971","status":"publish","type":"page","link":"https:\/\/gerdygamingcz.com\/?page_id=971","title":{"rendered":"cart"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"971\" class=\"elementor elementor-971\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5da3025 e-flex e-con-boxed e-con e-parent\" data-id=\"5da3025\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba6f0d1 elementor-widget elementor-widget-shortcode\" data-id=\"ba6f0d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\n<style>\n\/* \u2500\u2500\u2500 VARIABLES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n:root {\n  --bg:  #07090f; --bg2: #0d1117; --bg3: #0f1624; --bg4: #1a2235;\n  --bdr: #1e2d4e; --bdr2: #263552;\n  --blue: #3b82f6; --blue2: #60a5fa; --blue3: #1d4ed8; --blue4: #93c5fd;\n  --purple: #7c3aed; --purple2: #a78bfa;\n  --green: #10b981; --green2: #059669;\n  --red: #ef4444; --red2: #f87171;\n  --amber: #f59e0b;\n  --tx: #e2e8f0; --tx2: #94a3b8; --tx3: #64748b; --tx4: #374151;\n  --r: 12px; --r2: 8px; --r3: 20px;\n  --shadow: 0 4px 24px rgba(0,0,0,.45);\n  --shadow-blue: 0 0 0 1px rgba(59,130,246,.3), 0 6px 28px rgba(59,130,246,.18);\n\n  \/* Fluid type \u2014 every size scales smoothly with the viewport instead of\n     jumping at breakpoints, so the same page reads well on a small phone and\n     on a large desktop. clamp(min, preferred, max). *\/\n  --fs-hero:  clamp(22px, 4.2vw, 30px);\n  --fs-h2:    clamp(16px, 2.2vw, 19px);\n  --fs-price: clamp(26px, 5.2vw, 36px);\n  --fs-body:  clamp(13px, 1.5vw, 15px);\n  --fs-sm:    clamp(12px, 1.2vw, 13px);\n  --fs-card-title: clamp(14px, 1.7vw, 16px);\n}\n\n\/* \u2500\u2500\u2500 BASE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n*, *::before, *::after { box-sizing: border-box; }\n\n\/* Nothing inside the shop may exceed its column. Grid\/flex children default to\n   min-width:auto, which is what lets a single long word, a wide image or a\n   table punch through the layout and clip the page on narrow screens. *\/\n.sd-fe :where(img, video, canvas, svg, iframe) { max-width: 100%; height: auto; }\n.sd-fe :where(h1, h2, h3, p, li, td, div) { overflow-wrap: anywhere; word-break: break-word; }\n.sd-fe :where(pre, table) { max-width: 100%; overflow-x: auto; }\n.sd-fe :where(.sd-detail-layout, .sd-det-grid, .sd-checkout-grid, .sd-games-grid,\n              .sd-related-grid, .sd-sysreq, .sd-screenshots) > * { min-width: 0; }\n\n.sd-fe {\n  font-family: \"Inter\", system-ui, sans-serif;\n  color: var(--tx);\n  background: var(--bg);\n  min-height: 50vh;\n  animation: sdIn .3s ease;\n  \/* Fill the theme's content area and center the inner content (.sd-wrap).\n     The old 100vw + left:50% + margin:-50vw full-bleed trick mis-anchored in\n     some themes and shoved the whole shop off to one side \/ clipped it on the\n     right. width:100% is robust in every theme. *\/\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n  \/* `clip`, not `hidden`: overflow-x:hidden turns this into a scroll container,\n     which silently kills position:sticky on the detail sidebar. `clip` contains\n     stray-wide content without that side effect. *\/\n  overflow-x: clip;\n}\n@supports not (overflow: clip) { .sd-fe { overflow-x: hidden; } }\n.sd-fe a { text-decoration: none; color: var(--blue2); }\n.sd-fe a:hover { color: var(--blue4); }\n\n@keyframes sdIn  { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:none } }\n@keyframes sdOut { to   { opacity:0; transform:translateY(-5px) } }\n.sd-fe.sd-leaving { animation: sdOut .2s ease forwards; pointer-events: none; }\n\n\/* \u2500\u2500\u2500 LAYOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-wrap {\n  width: 100%;\n  max-width: 1400px;\n  margin: 0 auto;\n  padding: 0 28px 68px;\n}\n\n\/* \u2500\u2500\u2500 PAGE HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-page-header {\n  padding: 32px 0 24px;\n  border-bottom: 1px solid var(--bdr);\n  margin-bottom: 28px;\n}\n.sd-page-header .accent {\n  width: 36px; height: 4px;\n  background: linear-gradient(90deg, var(--blue), var(--purple));\n  border-radius: 2px;\n  margin-bottom: 10px;\n}\n.sd-page-header h1 {\n  font-size: var(--fs-hero); font-weight: 900; color: #fff;\n  margin: 0 0 5px; letter-spacing: -.5px; line-height: 1.2;\n}\n.sd-page-header p { font-size: var(--fs-body); color: var(--tx3); margin: 0; }\n\n\/* \u2500\u2500\u2500 SECTION BAR (Games \/ Maps \/ Engine \u2026) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-sectionbar { margin: 22px 0 26px; }\n.sd-sectionbar-inner {\n  display: inline-flex; gap: 4px; padding: 5px;\n  background: var(--bg2); border: 1px solid var(--bdr);\n  border-radius: 14px; flex-wrap: wrap;\n}\n.sd-sectab {\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n  min-height: 42px; padding: 0 22px; border-radius: 10px;\n  font-size: 15px; font-weight: 700; color: var(--tx2);\n  white-space: nowrap; line-height: 1; transition: background .15s, color .15s, box-shadow .15s;\n}\n.sd-sectab:hover { color: #fff; background: var(--bg4); }\n.sd-sectab.active {\n  color: #fff;\n  background: linear-gradient(135deg, var(--blue), var(--blue3));\n  box-shadow: 0 4px 14px rgba(59,130,246,.30);\n}\n.sd-sectab-ico { font-size: 17px; line-height: 1; display: inline-flex; align-items: center; }\n@media (max-width: 560px) {\n  .sd-sectionbar { margin: 16px 0 20px; }\n  \/* Scroll horizontally instead of cramming tabs \u2014 keeps each tab tappable. *\/\n  .sd-sectionbar-inner { display: flex; flex-wrap: nowrap; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }\n  .sd-sectionbar-inner::-webkit-scrollbar { display: none; }\n  .sd-sectab { flex: 0 0 auto; min-height: 40px; padding: 0 16px; font-size: 14px; }\n}\n\n\/* \u2500\u2500\u2500 FEATURED STRIP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-featured-label {\n  font-size: 11px; font-weight: 700; color: var(--tx3);\n  text-transform: uppercase; letter-spacing: .1em; margin-bottom: 12px;\n}\n.sd-featured-strip {\n  display: flex; gap: 16px;\n  overflow-x: auto; padding-bottom: 8px;\n  scroll-snap-type: x mandatory;\n  margin-bottom: 32px;\n  scrollbar-width: thin; scrollbar-color: var(--bdr2) transparent;\n}\n.sd-featured-strip::-webkit-scrollbar { height: 3px; }\n.sd-featured-strip::-webkit-scrollbar-thumb { background: var(--bdr2); border-radius: 2px; }\n.sd-fcrd {\n  flex: 0 0 280px; scroll-snap-align: start;\n  border-radius: var(--r); overflow: hidden;\n  border: 1px solid var(--bdr); cursor: pointer; position: relative;\n  transition: transform .2s, box-shadow .2s;\n  background: var(--bg2);\n}\n.sd-fcrd:hover { transform: translateY(-4px); box-shadow: var(--shadow-blue); }\n.sd-fcrd-img { height: 158px; overflow: hidden; background: var(--bg3); position: relative; }\n.sd-fcrd-img img { width:100%; height:100%; object-fit:cover; transition: transform .4s; display:block; }\n.sd-fcrd:hover .sd-fcrd-img img { transform: scale(1.06); }\n.sd-fcrd-body { padding: 12px 14px; }\n.sd-fcrd-title { font-size: 14px; font-weight: 700; color: #f1f5f9; margin-bottom: 3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n.sd-fcrd-price { font-size: 16px; font-weight: 800; color: var(--blue2); }\n\n\/* \u2500\u2500\u2500 FILTERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-filters-row {\n  display: flex; gap: 8px; align-items: center;\n  flex-wrap: wrap; margin-bottom: 20px;\n}\n.sd-search-wrap { position: relative; flex: 1; min-width: 180px; }\n.sd-search-ico {\n  position: absolute; left: 12px; top: 50%;\n  transform: translateY(-50%); pointer-events: none;\n  color: var(--tx3); width: 16px; height: 16px;\n}\n.sd-search {\n  width: 100%; padding: 10px 14px 10px 38px;\n  background: var(--bg2); border: 1px solid var(--bdr);\n  border-radius: var(--r2); color: var(--tx); font-size: 14px;\n  outline: none; font-family: inherit; transition: border .15s;\n}\n.sd-search:focus { border-color: var(--blue); background: var(--bg3); }\n.sd-genre-btn {\n  padding: 9px 16px; border-radius: var(--r2);\n  border: 1px solid var(--bdr); background: var(--bg2);\n  color: var(--tx3); font-size: 13px; font-weight: 600;\n  cursor: pointer; transition: all .15s; font-family: inherit;\n  white-space: nowrap;\n}\n.sd-genre-btn:hover, .sd-genre-btn.active {\n  background: var(--blue3); border-color: var(--blue3); color: #fff;\n}\n.sd-sort-sel {\n  padding: 9px 14px; background: var(--bg2); border: 1px solid var(--bdr);\n  border-radius: var(--r2); color: var(--tx); font-size: 13px;\n  outline: none; cursor: pointer; font-family: inherit;\n}\n\n\/* \u2500\u2500\u2500 GAMES GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-games-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));\n  gap: 20px;\n}\n\n\/* \u2500\u2500\u2500 GAME CARD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-gcard {\n  background: var(--bg2); border: 1px solid var(--bdr);\n  border-radius: var(--r); overflow: hidden;\n  display: flex; flex-direction: column;\n  transition: transform .2s, border-color .2s, box-shadow .2s;\n  position: relative;\n}\n.sd-gcard:hover {\n  transform: translateY(-5px);\n  border-color: rgba(59,130,246,.45);\n  box-shadow: var(--shadow-blue);\n}\n\/* Cover 16:9 *\/\n.sd-gcard-cover {\n  position: relative;\n  padding-bottom: 56.25%; \/* 16:9 *\/\n  background: var(--bg3);\n  overflow: hidden;\n  cursor: pointer;\n}\n.sd-gcard-cover img {\n  position: absolute; inset: 0;\n  width: 100%; height: 100%; object-fit: cover;\n  transition: transform .35s;\n}\n.sd-gcard:hover .sd-gcard-cover img { transform: scale(1.06); }\n.sd-gcard-cover-ph {\n  position: absolute; inset: 0;\n  display: flex; align-items: center; justify-content: center;\n  font-size: 52px; opacity: .3; cursor: pointer;\n}\n\n\/* Badges *\/\n.sd-bdg {\n  position: absolute; z-index: 2;\n  padding: 3px 9px; border-radius: var(--r3);\n  font-size: 11px; font-weight: 800; line-height: 1.5;\n}\n.sd-bdg-sale   { top: 10px; left: 10px; background: #dc2626; color: #fff; }\n.sd-bdg-owned  { top: 10px; right: 40px; background: rgba(16,185,129,.9); color: #fff; }\n.sd-bdg-feat   { bottom: 8px; left: 8px; background: rgba(124,58,237,.9); color: #fff; }\n\n\/* Wishlist btn *\/\n.sd-wish-btn {\n  position: absolute; top: 8px; right: 8px;\n  width: 32px; height: 32px; border-radius: 50%;\n  background: rgba(0,0,0,.55); border: none;\n  color: #fff; cursor: pointer; font-size: 15px;\n  display: flex; align-items: center; justify-content: center;\n  transition: background .15s, transform .15s;\n  backdrop-filter: blur(4px); z-index: 3;\n}\n.sd-wish-btn:hover { background: rgba(220,38,38,.7); transform: scale(1.1); }\n.sd-wish-btn.on    { background: rgba(220,38,38,.88); }\n\n\/* Card body *\/\n.sd-gcard-body {\n  padding: 14px; flex: 1;\n  display: flex; flex-direction: column; gap: 6px;\n}\n.sd-gcard-meta {\n  display: flex; align-items: center;\n  justify-content: space-between; gap: 6px;\n}\n.sd-genre-pill {\n  font-size: 11px; font-weight: 700; color: var(--blue2);\n  background: rgba(59,130,246,.1); border: 1px solid rgba(59,130,246,.2);\n  padding: 2px 9px; border-radius: var(--r3); white-space: nowrap;\n}\n.sd-stars-row { display: flex; align-items: center; gap: 2px; }\n.sd-star-on  { color: var(--amber); font-size: 12px; }\n.sd-star-off { color: #374151;      font-size: 12px; }\n.sd-star-ct  { font-size: 11px; color: var(--tx3); margin-left: 2px; }\n\n.sd-gcard-title {\n  font-size: var(--fs-card-title); font-weight: 700; color: #f1f5f9;\n  line-height: 1.35; cursor: pointer;\n  overflow: hidden; display: -webkit-box;\n  -webkit-line-clamp: 2; -webkit-box-orient: vertical;\n}\n.sd-gcard-title:hover { color: var(--blue2); }\n.sd-gcard-tagline {\n  font-size: 12px; color: var(--tx3); line-height: 1.5;\n  overflow: hidden; display: -webkit-box;\n  -webkit-line-clamp: 2; -webkit-box-orient: vertical;\n}\n.sd-gcard-footer {\n  display: flex; align-items: center;\n  justify-content: space-between; margin-top: auto; padding-top: 10px;\n}\n.sd-price    { font-size: 20px; font-weight: 800; color: var(--blue); }\n.sd-price-was{ font-size: 12px; color: var(--tx3); text-decoration: line-through; margin-left: 4px; }\n.sd-add-btn {\n  padding: 7px 14px; background: var(--blue3); color: #fff;\n  border: none; border-radius: var(--r2); cursor: pointer;\n  font-size: 13px; font-weight: 700; transition: background .15s;\n  font-family: inherit; white-space: nowrap;\n}\n.sd-add-btn:hover    { background: var(--blue); }\n.sd-add-btn:disabled { background: var(--bg4); color: var(--tx3); cursor: default; }\n\n\/* \u2500\u2500\u2500 EMPTY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-empty {\n  text-align: center; padding: 64px 20px; color: var(--tx3);\n}\n.sd-empty-ico { font-size: 52px; margin-bottom: 14px; opacity: .65; }\n.sd-empty p { font-size: 15px; margin-bottom: 20px; }\n\n\/* \u2500\u2500\u2500 BOX \/ CARD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-box {\n  background: var(--bg2); border: 1px solid var(--bdr);\n  border-radius: var(--r); padding: 22px; margin-bottom: 18px;\n}\n.sd-box h2 {\n  font-size: var(--fs-h2); font-weight: 700; color: #f1f5f9;\n  margin: 0 0 16px; display: flex; align-items: center; gap: 8px;\n  flex-wrap: wrap;\n}\n\n\/* \u2500\u2500\u2500 BUTTONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-btn {\n  display: inline-flex; align-items: center; justify-content: center;\n  gap: 7px; padding: 11px 20px;\n  border-radius: var(--r2); border: none;\n  cursor: pointer; font-weight: 700; font-size: 14px;\n  font-family: inherit; text-decoration: none;\n  transition: filter .15s; line-height: 1;\n}\n.sd-btn:hover      { filter: brightness(1.12); text-decoration: none; }\n.sd-btn-primary    { background: linear-gradient(135deg,var(--blue),var(--blue3)); color:#fff; box-shadow:0 3px 14px rgba(59,130,246,.25); }\n.sd-btn-success    { background: linear-gradient(135deg,var(--green),var(--green2)); color:#fff; }\n.sd-btn-ghost      { background: var(--bg3); color: var(--tx2); border: 1px solid var(--bdr); }\n.sd-btn-ghost:hover{ background: var(--bg4); color: var(--tx); filter: none; }\n.sd-btn-danger     { background: var(--red); color:#fff; }\n.sd-btn-gift       { background: linear-gradient(135deg,var(--purple),#4f46e5); color:#fff; }\n.sd-btn-sm         { padding: 7px 13px; font-size: 13px; }\n.sd-btn-lg         { padding: 13px 26px; font-size: 15px; }\n.sd-btn-full       { width: 100%; }\n\n\/* Shorthand aliases used in old templates *\/\n.sd-bp  { background: linear-gradient(135deg,var(--blue),var(--blue3)); color:#fff; }\n.sd-bs  { background: linear-gradient(135deg,var(--green),var(--green2)); color:#fff; }\n.sd-bg  { background: var(--bg3); color: var(--tx2); border: 1px solid var(--bdr); }\n.sd-bd  { background: var(--red); color:#fff; }\n.sd-bsm { padding: 7px 13px; font-size: 13px; border-radius: var(--r2); }\n.sd-bfull { width:100%; justify-content:center; display:inline-flex; }\n\n\/* \u2500\u2500\u2500 INPUTS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-input, .sd-in {\n  width: 100%; padding: 11px 14px;\n  background: var(--bg3); border: 1px solid var(--bdr);\n  border-radius: var(--r2); color: var(--tx); font-size: 14px;\n  outline: none; font-family: inherit;\n  transition: border .15s; margin-bottom: 12px;\n}\n.sd-input:focus, .sd-in:focus { border-color: var(--blue); background: var(--bg2); }\n.sd-label, .sd-lbl {\n  display: block; font-size: 11px; font-weight: 700;\n  color: var(--tx3); text-transform: uppercase;\n  letter-spacing: .06em; margin-bottom: 6px;\n}\n\n\/* \u2500\u2500\u2500 TOAST \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-toast {\n  position: fixed; bottom: 24px; right: 24px;\n  padding: 13px 20px; border-radius: var(--r);\n  font-weight: 600; font-size: 14px; z-index: 99999;\n  box-shadow: var(--shadow); animation: sdTIn .2s ease;\n  max-width: 320px; font-family: inherit;\n}\n@keyframes sdTIn { from { transform:translateY(14px);opacity:0 } to { transform:none;opacity:1 } }\n.sd-t-ok   { background: rgba(16,185,129,.95); color:#fff; }\n.sd-t-err  { background: rgba(220,38,38,.95);  color:#fff; }\n.sd-t-warn { background: rgba(245,158,11,.95); color:#111; }\n\n\/* \u2500\u2500\u2500 CART \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-ci {\n  display: flex; align-items: center; gap: 14px;\n  padding: 14px 0; border-bottom: 1px solid var(--bdr);\n}\n.sd-ci:last-child { border-bottom: none; }\n.sd-ct, .sd-ct-img {\n  width: 56px; height: 56px; border-radius: var(--r2);\n  object-fit: cover; flex-shrink: 0;\n}\n.sd-ct-ph {\n  width: 56px; height: 56px; border-radius: var(--r2);\n  background: var(--bg3); border: 1px solid var(--bdr);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 24px; flex-shrink: 0;\n}\n.sd-cart-total {\n  display: flex; justify-content: space-between; align-items: center;\n  border-top: 1px solid var(--bdr); padding-top: 16px; margin-top: 6px;\n  font-size: 20px; font-weight: 800; color: #f1f5f9;\n}\n\n\/* \u2500\u2500\u2500 DISCOUNT CODE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-coupon-row { display: flex; gap: 8px; align-items: stretch; }\n.sd-coupon-row .sd-input { flex: 1; min-width: 0; }\n.sd-coupon-row .sd-btn { white-space: nowrap; flex-shrink: 0; }\n.sd-coupon-row .sd-input:disabled { opacity: .7; font-weight: 700; color: var(--green); }\n\n\/* \u2500\u2500\u2500 CHECKOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-checkout-grid {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 340px;\n  gap: 24px; align-items: start;\n}\n.sd-total-row {\n  display: flex; justify-content: space-between; align-items: center;\n  padding-top: 14px; margin-top: 4px;\n  font-size: 20px; font-weight: 800; color: #f1f5f9;\n}\n\n\/* \u2500\u2500\u2500 DETAIL PAGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\/* minmax(0,\u2026) is required: a bare `1fr` track has min-width:auto, so one wide\n   child (long title, image, <pre>) inflates the column and shoves the buy box\n   off the right edge \u2014 the page then looks cut off instead of wrapping. *\/\n.sd-detail-layout {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 310px;\n  gap: 26px; align-items: start;\n}\n.sd-detail-sidebar { position: sticky; top: 80px; }\n\/* Cover *\/\n.sd-det-cover {\n  border-radius: var(--r); overflow: hidden;\n  aspect-ratio: 16\/9; background: var(--bg3);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 80px; margin-bottom: 18px;\n}\n.sd-det-cover img { width:100%; height:100%; object-fit:cover; display:block; }\n\/* Aliases kept for backward compat *\/\n.sd-det-img        { border-radius:var(--r); overflow:hidden; aspect-ratio:16\/9; background:var(--bg3); display:flex; align-items:center; justify-content:center; font-size:80px; margin-bottom:18px; }\n.sd-det-img img    { width:100%; height:100%; object-fit:cover; display:block; }\n.sd-det-grid       { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:26px; align-items:start; }\n.sd-det-sticky     { position:sticky; top:80px; }\n\n\/* Screenshots *\/\n.sd-screenshots {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));\n  gap: 8px; margin-bottom: 20px;\n}\n.sd-screenshot, .sd-gallery-item {\n  border-radius: var(--r2); overflow: hidden;\n  aspect-ratio: 16\/9; cursor: pointer;\n  border: 1px solid var(--bdr); transition: border-color .15s;\n}\n.sd-screenshot:hover, .sd-gallery-item:hover { border-color: var(--blue); }\n.sd-screenshot img, .sd-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; }\n\/* Alias *\/\n.sd-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px; margin-bottom:20px; }\n\n\/* Buy box *\/\n.sd-buy-box { background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r); padding:22px; }\n.sd-big-price, .sd-price-big { font-size:var(--fs-price); font-weight:900; color:var(--blue); line-height:1.05; }\n.sd-orig-p, .sd-orig-price { font-size:14px; color:var(--tx3); text-decoration:line-through; margin-bottom:5px; }\n.sd-sale-pct, .sd-sale-badge {\n  display: inline-block; background: #dc2626; color: #fff;\n  padding: 3px 11px; border-radius: var(--r3);\n  font-size: 13px; font-weight: 800; margin-bottom: 14px;\n}\n.sd-detail-stars { display:flex; align-items:center; gap:3px; margin-bottom:14px; }\n.sd-son  { color:var(--amber); font-size:16px; }\n.sd-soff { color:#374151;      font-size:16px; }\n.sd-sct  { font-size:12px; color:var(--tx3); margin-left:4px; }\n\/* Aliases used in old templates *\/\n.sd-stars { display:flex; align-items:center; gap:3px; margin-bottom:14px; }\n\n\/* \u2500\u2500\u2500 REVIEWS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-rvform { background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r2); padding:16px; margin-bottom:16px; }\n.sd-rv-item2 { background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r2); padding:14px; margin-bottom:12px; }\n.sd-rv-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }\n.sd-rv-av { width:36px; height:36px; border-radius:50%; background:var(--blue3); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; color:#fff; flex-shrink:0; }\n.sd-rv-name { font-size:14px; font-weight:700; color:#f1f5f9; }\n.sd-rv-date { font-size:12px; color:var(--tx3); }\n.sd-rv-stars { color:var(--amber); font-size:14px; margin-left:auto; }\n.sd-rv-body { font-size:14px; color:var(--tx2); line-height:1.65; }\n.sd-stars-inp { display:flex; gap:6px; margin-bottom:12px; }\n.sd-stars-inp span { font-size:28px; cursor:pointer; opacity:.3; transition:opacity .1s, transform .1s; user-select:none; }\n.sd-stars-inp span.on { opacity:1; transform:scale(1.1); }\n\n\/* \u2500\u2500\u2500 RELATED GAMES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-related { margin-top:6px; }\n.sd-related h2 { font-size:17px; font-weight:700; color:#f1f5f9; margin-bottom:14px; }\n.sd-related-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }\n.sd-rel-card { background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r2); overflow:hidden; cursor:pointer; transition:border-color .15s; }\n.sd-rel-card:hover { border-color:var(--blue); }\n.sd-rel-img { height:96px; overflow:hidden; background:var(--bg2); display:flex; align-items:center; justify-content:center; font-size:38px; position:relative; }\n.sd-rel-img img { width:100%; height:100%; object-fit:cover; display:block; }\n.sd-rel-body { padding:10px; }\n.sd-rel-title { font-size:13px; font-weight:700; color:#f1f5f9; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n.sd-rel-price { font-size:13px; font-weight:800; color:var(--blue); }\n\n\/* \u2500\u2500\u2500 TAGS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-tag {\n  display: inline-block; background: var(--bg3);\n  color: var(--tx3); font-size: 12px;\n  padding: 3px 10px; border-radius: var(--r3);\n  border: 1px solid var(--bdr); cursor: pointer;\n  transition: all .15s; margin: 3px 3px 3px 0;\n}\n.sd-tag:hover { border-color:var(--blue); color:var(--blue2); }\n\n\/* \u2500\u2500\u2500 SYSTEM REQ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-sysreq { display:grid; grid-template-columns:1fr 1fr; gap:14px; }\n.sd-sysbox { background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r2); padding:14px; }\n.sd-sysbox .lbl, .sd-sysbox .sys-lbl { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; margin-bottom:7px; color:var(--tx3); }\n.sd-sysbox p { font-size:13px; color:var(--tx2); line-height:1.6; margin:0; }\n\n\/* \u2500\u2500\u2500 LIGHTBOX \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-lightbox { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:99999; display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(8px); }\n.sd-lightbox img { max-width:90vw; max-height:86vh; border-radius:var(--r); object-fit:contain; }\n\n\/* \u2500\u2500\u2500 GIFT MODAL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-gift-overlay { position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:9999; display:flex; align-items:center; justify-content:center; backdrop-filter:blur(5px); }\n.sd-gift-modal { background:var(--bg2); border:1px solid var(--bdr2); border-radius:var(--r); padding:28px; width:100%; max-width:430px; margin:16px; box-shadow:var(--shadow); }\n.sd-gift-modal h3 { font-size:20px; font-weight:800; color:#fff; margin:0 0 5px; }\n.sd-gift-modal .sub { font-size:13px; color:var(--tx3); margin:0 0 18px; }\n\n\/* \u2500\u2500\u2500 LIBRARY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-lib-card { background:var(--bg2); border:1px solid #064e3b; border-radius:var(--r); overflow:hidden; }\n.sd-lib-cover { height:106px; background:var(--bg3); overflow:hidden; }\n.sd-lib-cover img { width:100%; height:100%; object-fit:cover; display:block; }\n.sd-lib-body { padding:12px; }\n\n\/* \u2500\u2500\u2500 ORDERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-order-card { background:var(--bg2); border:1px solid var(--bdr); border-radius:var(--r); padding:16px; margin-bottom:14px; }\n.sd-order-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid var(--bdr); }\n.sd-order-items-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }\n.sd-order-item-card { background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r2); padding:10px; text-align:center; }\n.sd-order-item-card img { width:100%; height:72px; object-fit:cover; border-radius:6px; margin-bottom:8px; display:block; }\n\n\/* Status pills *\/\n.sd-pill { display:inline-flex; align-items:center; padding:3px 10px; border-radius:var(--r3); font-size:12px; font-weight:700; }\n.sd-s-ok   { background:#022c22; color:var(--green); border:1px solid #065f46; }\n.sd-s-pend { background:#1c1000; color:var(--amber); border:1px solid #78350f; }\n.sd-s-fail { background:#2d0a0a; color:var(--red2);  border:1px solid #7f1d1d; }\n\/* Aliases *\/\n.sd-status { display:inline-flex; align-items:center; padding:3px 10px; border-radius:var(--r3); font-size:12px; font-weight:700; }\n\n\/* \u2500\u2500\u2500 ACCOUNT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-acc-head { display:flex; align-items:center; gap:18px; margin-bottom:26px; padding-bottom:22px; border-bottom:1px solid var(--bdr); }\n.sd-acc-avatar { width:68px; height:68px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--purple)); display:flex; align-items:center; justify-content:center; font-size:26px; font-weight:900; color:#fff; flex-shrink:0; }\n.sd-avatar {\n  width:68px; height:68px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--purple));\n  display:flex; align-items:center; justify-content:center; font-size:26px; font-weight:900; color:#fff; flex-shrink:0;\n  box-shadow: 0 0 0 4px rgba(59,130,246,.15), 0 8px 24px rgba(124,58,237,.25);\n}\n\n\/* \u2500\u2500\u2500 AUTH \/ LOGIN HERO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-auth-hero {\n  position: relative; text-align:center; padding:44px 20px 34px; margin-bottom:8px;\n  border-radius: var(--r3); overflow:hidden;\n  background: radial-gradient(circle at 30% 0%, rgba(59,130,246,.16), transparent 55%),\n              radial-gradient(circle at 80% 20%, rgba(124,58,237,.14), transparent 50%),\n              var(--bg2);\n  border: 1px solid var(--bdr);\n}\n.sd-auth-hero-ico { font-size:40px; margin-bottom:10px; display:inline-block; }\n.sd-auth-hero h1 { font-size:28px; font-weight:900; color:#fff; margin:0 0 8px; letter-spacing:-.5px; }\n.sd-auth-hero p { font-size:14px; color:var(--tx2); margin:0 auto; max-width:440px; }\n.sd-trust-row {\n  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;\n  margin-top:16px;\n}\n.sd-trust-pill {\n  display:inline-flex; align-items:center; gap:5px;\n  background: var(--bg3); border:1px solid var(--bdr2); color:var(--tx2);\n  font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:999px;\n}\n.sd-auth-card { position:relative; border-top:3px solid transparent; }\n.sd-auth-card--in  { border-top-color: var(--blue); }\n.sd-auth-card--reg { border-top-color: var(--green); }\n\n\/* Password field with a show\/hide eye *\/\n.sd-pw-wrap { position: relative; }\n.sd-pw-wrap .sd-in { padding-right: 44px; }\n.sd-pw-eye {\n  position: absolute; top: 11px; right: 8px;\n  width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;\n  background: transparent; border: 0; border-radius: 6px;\n  color: var(--tx3); cursor: pointer; font-size: 15px; line-height: 1;\n  transition: color .15s, background .15s;\n}\n.sd-pw-eye:hover { color: var(--tx); background: var(--bg4); }\n.sd-pw-eye.on { color: var(--blue2); }\n\n\/* Keyboard focus ring \u2014 visible for keyboard users, invisible for mouse. *\/\n.sd-fe :where(a, button, input, select, textarea):focus-visible {\n  outline: 2px solid var(--blue2); outline-offset: 2px; border-radius: 4px;\n}\n\n\/* \u2500\u2500\u2500 MOBILE STICKY BUY BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\/* On a phone the buy box sits far below the description, so the primary action\n   scrolls out of reach. This pins it to the bottom on small screens only. *\/\n.sd-buybar { display: none; }\n@media (max-width: 900px) {\n  .sd-buybar {\n    display: flex; align-items: center; gap: 12px;\n    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;\n    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));\n    background: rgba(13,17,23,.96); border-top: 1px solid var(--bdr);\n    backdrop-filter: blur(10px);\n  }\n  .sd-buybar-price { font-size: 18px; font-weight: 800; color: var(--blue2); white-space: nowrap; }\n  .sd-buybar .sd-btn { flex: 1; }\n  \/* Keep the bar from covering the end of the page. *\/\n  .sd-fe.has-buybar .sd-wrap { padding-bottom: 88px; }\n}\n\n\/* \u2500\u2500\u2500 EDITIONS \/ PRICE TIERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-ed-list { display: flex; flex-direction: column; gap: 8px; }\n.sd-ed {\n  display: block; position: relative; cursor: pointer;\n  background: var(--bg3); border: 1px solid var(--bdr); border-radius: var(--r2);\n  padding: 12px 14px; transition: border-color .15s, background .15s;\n}\n.sd-ed:hover { border-color: var(--bdr2); background: var(--bg4); }\n.sd-ed.active { border-color: var(--blue); background: rgba(59,130,246,.08); box-shadow: 0 0 0 1px var(--blue); }\n.sd-ed input { position: absolute; opacity: 0; pointer-events: none; }\n.sd-ed-body { display: flex; flex-direction: column; gap: 4px; }\n.sd-ed-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }\n.sd-ed-name  { font-size: 14px; font-weight: 800; color: #f1f5f9; }\n.sd-ed-price { font-size: 16px; font-weight: 900; color: var(--blue2); white-space: nowrap; }\n.sd-ed-desc  { font-size: 12.5px; color: var(--tx2); line-height: 1.5; }\n.sd-ed-meta  { font-size: 11px; color: var(--tx3); }\n\n\/* \u2500\u2500\u2500 PAY WHAT YOU WANT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-pwyw-box { background:var(--bg3); border:1px solid var(--bdr); border-radius:var(--r2); padding:14px; margin-bottom:0; }\n.sd-pwyw-label { font-size:12px; font-weight:800; color:#a78bfa; text-transform:uppercase; letter-spacing:.05em; margin-bottom:10px; }\n.sd-pwyw-presets { display:flex; gap:8px; flex-wrap:wrap; }\n.sd-pwyw-preset {\n  padding:7px 14px; border-radius:999px; border:1px solid var(--bdr2);\n  background:var(--bg2); color:var(--tx2); font-size:13px; font-weight:700;\n  cursor:pointer; font-family:inherit; transition:all .15s;\n}\n.sd-pwyw-preset:hover, .sd-pwyw-preset.active { background:var(--purple); border-color:var(--purple); color:#fff; }\n\n\/* \u2500\u2500\u2500 GUEST MODE BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-guest-bar {\n  position: sticky; top: 0; z-index: 40;\n  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;\n  background: linear-gradient(90deg, rgba(124,58,237,.16), rgba(59,130,246,.12));\n  border: 1px solid var(--bdr2); border-radius: var(--r2);\n  padding: 10px 16px; margin-bottom: 18px;\n  font-size: 13px; color: var(--tx2); backdrop-filter: blur(6px);\n}\n.sd-guest-bar strong { color: #fff; }\n.sd-guest-bar .sd-guest-time,\n.sd-guest-bar .sd-guest-dl { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }\n.sd-guest-bar .sd-guest-cta {\n  margin-left: auto; background: linear-gradient(135deg,var(--blue),var(--blue3));\n  color:#fff; padding:6px 14px; border-radius:999px; font-weight:700; font-size:12px;\n  text-decoration:none; white-space:nowrap;\n}\n.sd-guest-bar .sd-guest-cta:hover { filter:brightness(1.12); color:#fff; }\n@media (max-width: 560px) {\n  .sd-guest-bar { font-size: 12px; padding: 9px 12px; }\n  .sd-guest-bar .sd-guest-cta { margin-left: 0; width: 100%; text-align: center; }\n}\n\n\/* \u2500\u2500\u2500 SUCCESS PAGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.sd-success-box { text-align:center; padding:60px 20px; }\n.sd-success-icon { font-size:80px; margin-bottom:18px; animation:sdPop .5s ease; display:block; }\n@keyframes sdPop { 0%{transform:scale(.2);opacity:0} 70%{transform:scale(1.12)} 100%{transform:scale(1);opacity:1} }\n\n\/* \u2500\u2500\u2500 RESPONSIVE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n\/* Desktop 1100-1440px *\/\n@media (max-width: 1280px) {\n  .sd-wrap { padding: 0 24px 60px; }\n  .sd-games-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }\n}\n\n\/* Tablet landscape ~900-1100px *\/\n@media (max-width: 1100px) {\n  .sd-wrap { padding: 0 20px 56px; }\n  .sd-games-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; }\n  .sd-featured-strip { margin-bottom: 24px; }\n  .sd-fcrd { flex: 0 0 240px; }\n}\n\n\/* Tablet portrait ~700-900px \u2014 the two-column layouts stack here. *\/\n@media (max-width: 900px) {\n  .sd-wrap { padding: 0 18px 52px; }\n  .sd-detail-layout, .sd-det-grid { grid-template-columns: 1fr; }\n  .sd-detail-sidebar, .sd-det-sticky { position: static; }\n  .sd-checkout-grid { grid-template-columns: 1fr; }\n  .sd-games-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }\n}\n\n\/* Mobile large ~540-700px *\/\n@media (max-width: 680px) {\n  .sd-wrap { padding: 0 14px 48px; }\n  .sd-games-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }\n  .sd-page-header { padding: 22px 0 16px; margin-bottom: 20px; }\n  .sd-sysreq { grid-template-columns: 1fr; }\n  .sd-related-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }\n  .sd-featured-strip { gap: 10px; }\n  .sd-fcrd { flex: 0 0 200px; }\n  .sd-fcrd-img { height: 120px; }\n  .sd-filters-row { gap: 6px; }\n  .sd-genre-btn { padding: 7px 12px; }\n  .sd-gcard-body { padding: 11px; }\n  .sd-box { padding: 16px; }\n  .sd-checkout-grid { gap: 16px; }\n  .sd-acc-head { flex-direction: column; align-items: flex-start; }\n  .sd-auth-grid { grid-template-columns: 1fr !important; }\n  \/* Full-width tap targets \u2014 thumb-friendly, and they stop the price\/button\n     row from squeezing into an unreadable strip. *\/\n  .sd-gcard-footer { flex-direction: column; align-items: stretch; gap: 8px; }\n  .sd-gcard-footer .sd-add-btn { width: 100%; padding: 10px; }\n}\n\n\/* Mobile small < 420px \u2014 one column, nothing is allowed to shrink further. *\/\n@media (max-width: 420px) {\n  .sd-wrap { padding: 0 10px 40px; }\n  .sd-games-grid { grid-template-columns: 1fr; }\n  .sd-related-grid { grid-template-columns: 1fr; }\n  .sd-order-items-grid { grid-template-columns: 1fr; }\n  .sd-ci { gap: 10px; }\n  .sd-ct, .sd-ct-img, .sd-ct-ph { width: 44px; height: 44px; }\n}\n\n\/* SHORT screens (landscape phones, small laptops, split windows). Vertical\n   rhythm is what breaks here, not width \u2014 trim the tall blocks and unstick the\n   sidebar so it can never be taller than the screen it sits in. *\/\n@media (max-height: 620px) {\n  .sd-page-header { padding: 18px 0 14px; margin-bottom: 18px; }\n  .sd-det-cover, .sd-det-img { aspect-ratio: 21\/9; }\n  .sd-detail-sidebar, .sd-det-sticky { position: static; }\n  .sd-featured-strip { margin-bottom: 18px; }\n}\n\/* Tall enough to be sticky, but only if the sidebar actually fits. *\/\n@media (min-height: 621px) and (min-width: 901px) {\n  .sd-detail-sidebar, .sd-det-sticky {\n    position: sticky; top: 80px;\n    max-height: calc(100vh - 96px); overflow-y: auto;\n  }\n}\n\n\/* Respect the OS \"reduce motion\" setting. *\/\n@media (prefers-reduced-motion: reduce) {\n  .sd-fe, .sd-fe * { animation: none !important; transition: none !important; }\n  .sd-gcard:hover, .sd-fcrd:hover { transform: none; }\n}\n<\/style>\n    <script>\nvar SD={ajax:\"https:\\\/\\\/gerdygamingcz.com\\\/wp-admin\\\/admin-ajax.php\",nonce:\"afee9fc2c4\",shopUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=897\",cartUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=971\",checkoutUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=975\",libUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=1007\",accUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=965\",wishUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=987\",ordersUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=993\",engineUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=1018\",mapsUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/?page_id=1019\",homeUrl:\"https:\\\/\\\/gerdygamingcz.com\\\/\",loggedIn:false,ownedIds:[],cur:\"$\",curSuffix:false,wishedIds:[],guest:{\"enabled\":true,\"minutes_total\":60,\"downloads_total\":30,\"minutes_left\":60,\"seconds_left\":3600,\"downloads_left\":30,\"blocked\":false}};\n\/* \u2500\u2500 AJAX with auto-nonce-refresh \u2500\u2500 *\/\nfunction sdAjax(fd,cb){\n  fetch(SD.ajax,{method:'POST',body:fd})\n    .then(function(r){ if(r.status===403)throw 403; return r.json(); })\n    .then(function(d){\n      if(!d.success&&d.data&&d.data.nonce_error){\n        var f2=new FormData();f2.append('action','sd_refresh_nonce');\n        fetch(SD.ajax,{method:'POST',body:f2}).then(function(r){return r.json();}).then(function(n){\n          if(n.success)SD.nonce=n.data.nonce;\n          fd.set('nonce',SD.nonce);\n          fetch(SD.ajax,{method:'POST',body:fd}).then(function(r){return r.json();}).then(cb);\n        });\n      } else { cb(d); }\n    })\n    .catch(function(){\n      var f2=new FormData();f2.append('action','sd_refresh_nonce');\n      fetch(SD.ajax,{method:'POST',body:f2}).then(function(r){return r.json();}).then(function(n){\n        if(n.success)SD.nonce=n.data.nonce;\n        fd.set('nonce',SD.nonce);\n        fetch(SD.ajax,{method:'POST',body:fd}).then(function(r){return r.json();}).then(cb);\n      });\n    });\n}\n\n\/* \u2500\u2500 Toast \u2500\u2500 *\/\nfunction sdToast(msg,type){\n  var el=document.createElement('div');\n  el.className='sd-toast sd-t-'+(type||'ok');\n  el.textContent=msg;\n  document.body.appendChild(el);\n  setTimeout(function(){\n    el.style.cssText='opacity:0;transform:translateY(8px);transition:.25s';\n    setTimeout(function(){if(el.parentNode)el.remove();},280);\n  },3000);\n}\n\n\/* \u2500\u2500 Money formatting (matches the shop's currency setting) \u2500\u2500 *\/\nfunction sdPrice(n){n=(parseFloat(n)||0).toFixed(2);return SD.curSuffix?(n+' '+SD.cur):(SD.cur+n);}\n\n\/* \u2500\u2500 Show \/ hide a password field \u2500\u2500 *\/\nfunction sdTogglePw(id,btn){\n  var i=document.getElementById(id); if(!i)return;\n  var show=i.type==='password';\n  i.type=show?'text':'password';\n  if(btn){\n    btn.classList.toggle('on',show);\n    btn.setAttribute('aria-label',show?'Hide password':'Show password');\n  }\n  i.focus();\n}\n\n\/* \u2500\u2500 Cart \u2500\u2500 *\/\nfunction sdCart(){try{return JSON.parse(localStorage.getItem('sd_cart')||'[]');}catch(e){return[];}}\nfunction sdSaveCart(c){localStorage.setItem('sd_cart',JSON.stringify(c));sdBadge();}\nfunction sdAddToCart(id,title,price,cover,pwyw){\n  id=parseInt(id);\n  if(SD.ownedIds.indexOf(id)!==-1){sdToast(title+' is already in your library','warn');return;}\n  var c=sdCart();\n  var existing=c.find(function(x){return x.game_id===id;});\n  if(existing){\n    if(pwyw){existing.price=parseFloat(price)||0;existing.amount=existing.price;sdSaveCart(c);sdToast('Cart amount updated','ok');return;}\n    sdToast('Already in cart','warn');return;\n  }\n  var item={game_id:id,title:title,price:parseFloat(price)||0,cover:cover||''};\n  if(pwyw)item.amount=item.price;\n  c.push(item);\n  sdSaveCart(c);\n  sdToast(title+' added to cart \ud83d\uded2','ok');\n}\nfunction sdRemoveFromCart(id){sdSaveCart(sdCart().filter(function(x){return x.game_id!=id;}));}\n\n\/* \u2500\u2500 Editions \/ price tiers \u2500\u2500 *\/\nfunction sdEdPick(input){\n  var list=input.closest('.sd-ed-list'); if(!list)return;\n  list.querySelectorAll('.sd-ed').forEach(function(l){l.classList.remove('active');});\n  var lab=input.closest('.sd-ed'); if(lab)lab.classList.add('active');\n}\nfunction sdAddToCartEd(gid,title,cover,goToCart){\n  gid=parseInt(gid);\n  if(SD.ownedIds.indexOf(gid)!==-1){sdToast(title+' is already in your library','warn');return;}\n  var sel=document.querySelector('input[name=\"sd-ed-'+gid+'\"]:checked');\n  if(!sel){sdToast('Please choose an edition first','warn');return;}\n  var price=parseFloat(sel.dataset.price)||0;\n  var edId=parseInt(sel.value);\n  var edName=sel.dataset.name||'';\n  var label=title+(edName?' \u2014 '+edName:'');\n  var c=sdCart();\n  var ex=c.find(function(x){return x.game_id===gid;});\n  if(ex){\n    ex.edition_id=edId; ex.price=price; ex.title=label; ex.cover=cover||ex.cover;\n    sdSaveCart(c); sdToast('Edition updated to '+edName,'ok');\n  } else {\n    c.push({game_id:gid,title:label,price:price,cover:cover||'',edition_id:edId});\n    sdSaveCart(c); sdToast(label+' added to cart \ud83d\uded2','ok');\n  }\n  if(goToCart)setTimeout(function(){location=SD.cartUrl;},300);\n}\n\n\/* \u2500\u2500 Pay What You Want \u2500\u2500 *\/\nfunction sdPwywPick(gid,val,btn){\n  var inp=document.getElementById('sd-pwyw-amt-'+gid);\n  if(inp)inp.value=val;\n  if(btn&&btn.parentNode){\n    btn.parentNode.querySelectorAll('.sd-pwyw-preset').forEach(function(b){b.classList.remove('active');});\n    btn.classList.add('active');\n  }\n}\nfunction sdAddToCartPWYW(gid,title,cover,minAmount){\n  var inp=document.getElementById('sd-pwyw-amt-'+gid);\n  var amt=inp?parseFloat(inp.value):0;\n  if(isNaN(amt)||amt<0)amt=0;\n  minAmount=parseFloat(minAmount)||0;\n  if(amt<minAmount){\n    amt=minAmount;\n    if(inp)inp.value=amt;\n    sdToast('Minimum amount is '+sdPrice(minAmount),'warn');\n  }\n  sdAddToCart(gid,title,amt,cover,true);\n}\nfunction sdBadge(){\n  var n=sdCart().length;\n  document.querySelectorAll('.sd-cart-count').forEach(function(el){\n    el.textContent=n; el.style.display=n?'inline-flex':'none';\n  });\n}\n\n\/* \u2500\u2500 Require login before a (demo) download \u2500\u2500 *\/\nfunction sdRequireLogin(e){\n  if(!SD.loggedIn){\n    if(e&&e.preventDefault)e.preventDefault();\n    sdToast('Please sign in to download','warn');\n    setTimeout(function(){location=SD.accUrl;},800);\n    return false;\n  }\n  return true;\n}\n\n\/* \u2500\u2500 Claim a FREE product (instant, no checkout) \u2500\u2500 *\/\nfunction sdClaimFree(gid,btn){\n  if(!SD.loggedIn){\n    if(SD.guest&&SD.guest.enabled&&!SD.guest.blocked){ sdGuestClaim(gid,btn); return; }\n    var msg=(SD.guest&&SD.guest.enabled&&SD.guest.blocked)\n      ? 'Guest limit reached for today \u2014 sign in for unlimited access'\n      : 'Please sign in to get this free product';\n    sdToast(msg,'warn');\n    setTimeout(function(){location=SD.accUrl;},900);\n    return;\n  }\n  if(btn){btn.disabled=true;btn.dataset.t=btn.textContent;btn.textContent='\u23f3 Adding\u2026';}\n  var fd=new FormData();\n  fd.append('action','sd_claim_free');fd.append('nonce',SD.nonce);fd.append('game_id',gid);\n  sdAjax(fd,function(d){\n    if(d.success){\n      sdToast(d.data.message||'Added to your library!','ok');\n      SD.ownedIds.push(parseInt(gid));\n      setTimeout(function(){location=d.data.library;},700);\n    } else {\n      if(d.data&&d.data.need_login){\n        sdToast(d.data.message,'warn');\n        setTimeout(function(){location=(d.data.login_url||SD.accUrl);},900);\n      } else {\n        sdToast((d.data&&d.data.message)||'Error','err');\n        if(btn){btn.disabled=false;btn.textContent=btn.dataset.t||'\u2b07 Get it Free';}\n      }\n    }\n  });\n}\n\n\/* \u2500\u2500 Guest Mode: claim a free download without an account \u2500\u2500 *\/\nfunction sdGuestClaim(gid,btn){\n  if(btn){btn.disabled=true;btn.dataset.t=btn.textContent;btn.textContent='\u23f3 Preparing\u2026';}\n  var fd=new FormData();\n  fd.append('action','sd_guest_claim');fd.append('nonce',SD.nonce);fd.append('game_id',gid);\n  sdAjax(fd,function(d){\n    if(d.data&&d.data.guest){SD.guest=d.data.guest;sdGuestBarUpdate();}\n    if(d.success){\n      sdToast('Downloading\u2026 sign in next time to save it to your library!','ok');\n      window.location=d.data.url;\n      if(btn){btn.disabled=false;btn.textContent=btn.dataset.t||'\u2b07 Get it Free';}\n    } else {\n      sdToast((d.data&&d.data.message)||'Error','err');\n      if(d.data&&d.data.need_login){\n        setTimeout(function(){location=(d.data.login_url||SD.accUrl);},1400);\n      } else if(btn){\n        btn.disabled=false;btn.textContent=btn.dataset.t||'\u2b07 Get it Free';\n      }\n    }\n  });\n}\n\n\/* \u2500\u2500 Guest Mode bar (countdown of today's time\/downloads left) \u2500\u2500 *\/\nvar _sdGuestSecLeft=0,_sdGuestTimer=null;\nfunction sdGuestBar(){\n  if(SD.loggedIn||!SD.guest||!SD.guest.enabled)return;\n  var wrap=document.querySelector('.sd-wrap');\n  if(!wrap||document.querySelector('.sd-guest-bar'))return;\n  _sdGuestSecLeft=SD.guest.seconds_left||0;\n  var bar=document.createElement('div');\n  bar.className='sd-guest-bar';\n  bar.innerHTML='<span>\ud83c\udf9f\ufe0f <strong>Guest Mode<\/strong> \u2014 free downloads without an account<\/span>'\n    +'<span class=\"sd-guest-time\">\u23f1 <strong id=\"sd-guest-mins\">--:--<\/strong> free-download time left today<\/span>'\n    +'<span class=\"sd-guest-dl\">\u2b07 <strong id=\"sd-guest-dls\">'+SD.guest.downloads_left+'<\/strong>\/'+SD.guest.downloads_total+' downloads left<\/span>'\n    +'<a class=\"sd-guest-cta\" href=\"'+SD.accUrl+'\">Sign in for unlimited \u2192<\/a>';\n  wrap.insertBefore(bar,wrap.firstChild);\n  sdGuestTick();\n  if(_sdGuestTimer)clearInterval(_sdGuestTimer);\n  _sdGuestTimer=setInterval(sdGuestTick,1000);\n}\nfunction sdGuestTick(){\n  var el=document.getElementById('sd-guest-mins');\n  if(!el){if(_sdGuestTimer)clearInterval(_sdGuestTimer);return;}\n  if(_sdGuestSecLeft<=0){el.textContent='0:00';clearInterval(_sdGuestTimer);return;}\n  var m=Math.floor(_sdGuestSecLeft\/60),s=_sdGuestSecLeft%60;\n  el.textContent=m+':'+(s<10?'0':'')+s;\n  _sdGuestSecLeft--;\n}\nfunction sdGuestBarUpdate(){\n  if(!SD.guest)return;\n  _sdGuestSecLeft=SD.guest.seconds_left||0;\n  var dl=document.getElementById('sd-guest-dls');\n  if(dl)dl.textContent=SD.guest.downloads_left;\n  sdGuestTick();\n}\n\n\/* \u2500\u2500 Wishlist \u2500\u2500 *\/\nfunction sdToggleWish(gid,btn){\n  if(!SD.loggedIn){sdToast('Please sign in to use wishlist','warn');return;}\n  var fd=new FormData();\n  fd.append('action','sd_wishlist');fd.append('nonce',SD.nonce);fd.append('game_id',gid);\n  sdAjax(fd,function(d){\n    if(!d.success){sdToast((d.data&&d.data.message)||'Error','err');return;}\n    if(d.data.action==='added'){\n      btn.classList.add('on');btn.innerHTML='&#10084;&#65039;';\n      SD.wishedIds.push(parseInt(gid));sdToast('Added to wishlist','ok');\n    } else {\n      btn.classList.remove('on');btn.innerHTML='&#129293;';\n      SD.wishedIds=SD.wishedIds.filter(function(x){return x!=gid;});\n      sdToast('Removed from wishlist','warn');\n    }\n  });\n}\n\n\/* \u2500\u2500 Lightbox \u2500\u2500 *\/\nfunction sdLightbox(src){\n  var lb=document.createElement('div');lb.className='sd-lightbox';\n  var img=document.createElement('img');img.src=src;\n  lb.appendChild(img);\n  lb.onclick=function(){lb.remove();};\n  document.body.appendChild(lb);\n}\n\n\/* \u2500\u2500 Recently viewed \u2500\u2500 *\/\nfunction sdViewGame(id,title,cover){\n  var rv=[];try{rv=JSON.parse(localStorage.getItem('sd_rv')||'[]');}catch(e){}\n  rv=rv.filter(function(x){return x.id!=id;});\n  rv.unshift({id:id,title:title,cover:cover||''});\n  localStorage.setItem('sd_rv',JSON.stringify(rv.slice(0,8)));\n}\n\n\/* \u2500\u2500 Gift modal \u2500\u2500 *\/\nfunction sdGiftModal(gid,title,price){\n  var ov=document.createElement('div');ov.className='sd-gift-overlay';\n  var mo=document.createElement('div');mo.className='sd-gift-modal';\n  mo.innerHTML='<h3>&#127873; Gift this product<\/h3>'\n    +'<p class=\"sub\">Your friend will receive an instant download link by email.<\/p>'\n    +'<label class=\"sd-label\">Friend\\'s Email *<\/label>'\n    +'<input class=\"sd-input\" id=\"sdgEmail\" type=\"email\" placeholder=\"friend@email.com\" \/>'\n    +'<label class=\"sd-label\">Your Name<\/label>'\n    +'<input class=\"sd-input\" id=\"sdgName\" type=\"text\" placeholder=\"From: your name\" \/>'\n    +'<label class=\"sd-label\">Message (optional)<\/label>'\n    +'<input class=\"sd-input\" id=\"sdgMsg\" type=\"text\" placeholder=\"Happy Birthday! &#127881;\" \/>'\n    +'<label class=\"sd-label\">Your Email (receipt) *<\/label>'\n    +'<input class=\"sd-input\" id=\"sdgBuyer\" type=\"email\" placeholder=\"your@email.com\" \/>'\n    +'<div style=\"display:flex;gap:8px\">'\n    +'<button class=\"sd-btn sd-btn-gift sd-btn-full\" id=\"sdgBtn\" onclick=\"sdSendGift('+gid+','+price+')\">&#127873; Send Gift<\/button>'\n    +'<button class=\"sd-btn sd-btn-ghost\" onclick=\"this.closest(\\'.sd-gift-overlay\\').remove()\">Cancel<\/button>'\n    +'<\/div>'\n    +'<div id=\"sdgErr\" style=\"margin-top:8px;font-size:13px;color:#f87171\"><\/div>';\n  ov.appendChild(mo);ov.addEventListener('click',function(e){if(e.target===ov)ov.remove();});\n  document.body.appendChild(ov);\n  setTimeout(function(){var e=document.getElementById('sdgEmail');if(e)e.focus();},50);\n}\nfunction sdSendGift(gid,price){\n  var to=document.getElementById('sdgEmail').value.trim();\n  var nm=document.getElementById('sdgName').value.trim();\n  var mg=document.getElementById('sdgMsg').value.trim();\n  var by=document.getElementById('sdgBuyer').value.trim();\n  var er=document.getElementById('sdgErr');\n  var bt=document.getElementById('sdgBtn');\n  if(!to||!by){if(er)er.textContent='Please fill in all required fields.';return;}\n  if(bt){bt.disabled=true;bt.textContent='Sending...';}\n  var fd=new FormData();\n  fd.append('action','sd_gift_game');fd.append('nonce',SD.nonce);\n  fd.append('game_id',gid);fd.append('gift_to',to);\n  fd.append('gift_from_name',nm);fd.append('gift_msg',mg);fd.append('buyer_email',by);\n  sdAjax(fd,function(d){\n    if(d.success){var ov=document.querySelector('.sd-gift-overlay');if(ov)ov.remove();window.location=d.data.url;}\n    else{if(er)er.textContent=(d.data&&d.data.message)||'Error';if(bt){bt.disabled=false;bt.textContent='Send Gift';}}\n  });\n}\n\n\/* \u2500\u2500 Page fade on navigation \u2500\u2500 *\/\ndocument.addEventListener('DOMContentLoaded',function(){\n  sdBadge();\n  sdGuestBar();\n  if(!document.querySelector('.sd-demo-global')){\n    var n=document.createElement('div');\n    n.className='sd-demo-global';\n    n.textContent='Demo is free';\n    n.style.cssText='position:fixed;left:14px;bottom:14px;z-index:9999;background:#065f46;color:#ecfeff;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.28)';\n    document.body.appendChild(n);\n  }\n  document.addEventListener('click',function(e){\n    var a=e.target.closest('a[href]');\n    if(!a)return;\n    var h=a.getAttribute('href');\n    if(!h||h.charAt(0)==='#'||h.indexOf('javascript')===0||a.target==='_blank')return;\n    try{if(new URL(a.href).hostname!==location.hostname)return;}catch(x){return;}\n    var fe=document.querySelector('.sd-fe');\n    if(!fe)return;\n    e.preventDefault();var dest=a.href;\n    fe.classList.add('sd-leaving');\n    setTimeout(function(){location=dest;},200);\n  });\n});\n    <\/script>\n    <div class=\"sd-fe\"><div class=\"sd-wrap\">\n\n      <div class=\"sd-page-header\">\n        <div class=\"accent\"><\/div>\n        <h1>\ud83d\uded2 Shopping Cart<\/h1>\n      <\/div>\n\n      <div id=\"sd-cart-root\">\n        <p style=\"color:var(--tx3);text-align:center;padding:30px\">Loading\u2026<\/p>\n      <\/div>\n\n      <div style=\"margin-top:14px\">\n        <a href=\"https:\/\/gerdygamingcz.com\/?page_id=897\" class=\"sd-btn sd-btn-ghost sd-btn-sm\">\u2190 Continue Shopping<\/a>\n      <\/div>\n\n    <\/div><\/div>\n\n    <script>\n    function sdRenderCart() {\n      var cart = sdCart();\n      var el   = document.getElementById('sd-cart-root');\n      if (!cart.length) {\n        el.innerHTML = '<div class=\"sd-empty\"><div class=\"sd-empty-ico\">\ud83d\uded2<\/div>'\n          + '<p>Your cart is empty.<\/p>'\n          + '<a href=\"' + SD.shopUrl + '\" class=\"sd-btn sd-btn-primary\">Browse Products<\/a><\/div>';\n        return;\n      }\n      var total = cart.reduce(function(s,i){ return s + i.price; }, 0);\n      var rows  = cart.map(function(item) {\n        return '<div class=\"sd-ci\">'\n          + (item.cover\n              ? '<img decoding=\"async\" class=\"sd-ct\" src=\"' + item.cover + '\" alt=\"\" \/>'\n              : '<div class=\"sd-ct-ph\">\ud83d\udce6<\/div>')\n          + '<div style=\"flex:1\">'\n          +   '<div style=\"font-size:15px;font-weight:700;color:#f1f5f9\">' + item.title + '<\/div>'\n          +   '<div style=\"font-size:12px;color:var(--tx3);margin-top:2px\">Digital Download<\/div>'\n          + '<\/div>'\n          + '<span style=\"font-size:18px;font-weight:800;color:var(--blue);margin-right:12px\">' + sdPrice(item.price) + '<\/span>'\n          + '<button class=\"sd-btn sd-btn-danger sd-btn-sm\" onclick=\"sdRemoveFromCart(' + item.game_id + ');sdRenderCart()\">\u2715<\/button>'\n          + '<\/div>';\n      }).join('');\n      el.innerHTML = '<div class=\"sd-box\">' + rows\n        + '<div class=\"sd-cart-total\"><span>Total<\/span><span style=\"color:var(--blue)\">' + sdPrice(total) + '<\/span><\/div>'\n        + '<\/div>'\n        + '<div style=\"display:flex;gap:12px;flex-wrap:wrap\">'\n        + '<a href=\"' + SD.checkoutUrl + '\" class=\"sd-btn sd-btn-success\">Checkout \u2192<\/a>'\n        + '<button class=\"sd-btn sd-btn-ghost\" onclick=\"localStorage.removeItem(\\'sd_cart\\');sdBadge();sdRenderCart()\">Clear Cart<\/button>'\n        + '<\/div>';\n    }\n    document.addEventListener('DOMContentLoaded', sdRenderCart);\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-971","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/pages\/971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=971"}],"version-history":[{"count":3,"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/pages\/971\/revisions"}],"predecessor-version":[{"id":974,"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=\/wp\/v2\/pages\/971\/revisions\/974"}],"wp:attachment":[{"href":"https:\/\/gerdygamingcz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}