:root {
  --gg-blue:#55c8ff;
  --gg-blue2:#0b6fa8;
  --gg-gold:#f1c66a;
  --gg-purple:#b66cff;
  --gg-ink:#06101a;
  --gg-panel:rgba(3,12,22,.86);
  --gg-border:rgba(94,205,255,.35);
}

.giveaway-games-app, .gg-hof-standalone {
  box-sizing:border-box;
  max-width:1920px;
  margin:0 auto;
  color:#e8f7ff;
  font-family:Georgia, 'Times New Roman', serif;
}
.giveaway-games-app *, .gg-hof-standalone * { box-sizing:border-box; }
.giveaway-games-app button, .giveaway-games-app input { font-family:inherit; }

.gg-app-shell {
  position:relative;
  width:100%;
  min-height:760px;
  padding:16px;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(99,205,255,.22);
  background:#020812 center/cover no-repeat;
  box-shadow:0 20px 80px rgba(0,0,0,.55), inset 0 0 90px rgba(0,194,255,.08);
}
.gg-app-shell:before {
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,5,10,.7), rgba(0,9,18,.25) 30%, rgba(0,6,12,.5) 70%, rgba(0,5,10,.82));
  pointer-events:none;
}
.gg-app-inner { position:relative; z-index:2; }
.gg-header {
  display:flex; align-items:center; justify-content:center;
  min-height:76px; margin-bottom:12px;
  border:1px solid rgba(220,190,120,.2);
  background:linear-gradient(90deg, rgba(15,12,10,.85), rgba(26,20,12,.75), rgba(15,12,10,.85));
  border-radius:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#e6d19b;
  text-shadow:0 0 12px rgba(255,220,120,.4);
}
.gg-header h1 { margin:0; font-size:clamp(28px,4vw,56px); line-height:1; }

.gg-layout {
  display:grid;
  grid-template-columns:240px minmax(540px,1fr) 320px;
  gap:14px;
}
.gg-panel {
  background:var(--gg-panel);
  border:1px solid var(--gg-border);
  border-radius:14px;
  box-shadow:inset 0 0 30px rgba(0,160,255,.08), 0 8px 24px rgba(0,0,0,.35);
  backdrop-filter:blur(2px);
}
.gg-left, .gg-right { padding:14px; }
.gg-left h2, .gg-right h2, .gg-card-stage h2 {
  margin:0 0 10px; text-transform:uppercase; letter-spacing:.14em; color:#c7edff;
  text-shadow:0 0 10px rgba(70,190,255,.5); font-size:18px;
}
.gg-workflow-item {
  display:grid; grid-template-columns:42px 1fr; gap:10px; align-items:center;
  padding:12px 8px; border-bottom:1px solid rgba(110,205,255,.1);
  color:#d8eaf4;
}
.gg-workflow-item strong { display:block; font-size:15px; letter-spacing:.08em; text-transform:uppercase; color:#fff; }
.gg-workflow-item span { display:block; font-size:12px; color:#9fc3d3; margin-top:2px; }
.gg-workflow-icon {
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(220,190,120,.35); background:rgba(255,255,255,.04); color:var(--gg-gold);
}
.gg-workflow-item.active { background:linear-gradient(90deg, rgba(0,127,255,.28), transparent); border-left:3px solid var(--gg-blue); }
.gg-one-fate { margin-top:16px; padding:14px; text-align:center; color:#48c7ff; text-transform:uppercase; letter-spacing:.12em; }

.gg-stage { min-height:620px; }
.gg-card-stage {
  position:relative;
  min-height:620px;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(74,194,255,.22);
  background:#07101b;
  padding:16px;
}
.gg-stage-bg {
  position:absolute; inset:0; background:center/cover no-repeat; opacity:.72;
}
.gg-stage-vignette { position:absolute; inset:0; background:radial-gradient(circle at 50% 42%, rgba(0,20,40,.02), rgba(0,0,0,.75) 78%); }
.gg-stage-content { position:relative; z-index:2; min-height:588px; display:flex; flex-direction:column; }
.gg-game-title { text-align:center; }
.gg-title-logo { max-width:min(560px,80%); height:auto; margin:0 auto -18px; display:block; filter:drop-shadow(0 0 18px rgba(80,180,255,.45)); }
.gg-subtitle { margin:0 0 8px; color:#dbe8ee; font-size:15px; }
.gg-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.gg-round-pills { display:flex; gap:8px; justify-content:center; margin-top:8px; }
.gg-round-pill { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.24); color:#cad9e4; background:rgba(0,0,0,.45); }
.gg-round-pill.active { background:radial-gradient(circle, #138bd0, #06365b); color:#fff; box-shadow:0 0 18px rgba(61,184,255,.55); }
.gg-round-pill.done { border-color:rgba(116,255,135,.5); color:#80ff91; }

.gg-table-wrap { position:relative; flex:1; display:flex; align-items:center; justify-content:center; min-height:360px; }
.gg-table { position:absolute; width:min(86%,820px); max-height:86%; object-fit:contain; opacity:.95; filter:drop-shadow(0 20px 28px rgba(0,0,0,.6)); }
.gg-dealer-hand { position:absolute; left:4%; top:20%; width:180px; transform:rotate(-10deg); opacity:.72; pointer-events:none; filter:drop-shadow(0 14px 18px rgba(0,0,0,.65)); }
.gg-cards { position:relative; display:flex; gap:clamp(18px,4vw,48px); justify-content:center; align-items:center; z-index:3; margin-top:32px; }
.gg-card-btn { position:relative; width:clamp(112px,16vw,156px); aspect-ratio:2/3; border:0; padding:0; background:transparent; cursor:pointer; transform-style:preserve-3d; transition:transform .25s ease, filter .25s ease; }
.gg-card-btn:not(:disabled):hover { transform:translateY(-8px) scale(1.03); filter:drop-shadow(0 0 18px rgba(83,199,255,.7)); }
.gg-card-btn:disabled { cursor:default; }
.gg-card-shadow, .gg-card-highlight, .gg-card-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.gg-card-shadow { transform:translateY(11px) scale(1.05); opacity:.55; }
.gg-card-highlight { opacity:0; pointer-events:none; transform:scale(1.08); transition:opacity .2s ease; }
.gg-card-btn:not(:disabled):hover .gg-card-highlight { opacity:.92; }
.gg-card-img { transition:transform .42s ease; filter:drop-shadow(0 8px 13px rgba(0,0,0,.72)); }
.gg-card-btn.revealed .gg-card-img { animation:ggReveal .42s ease both; }
@keyframes ggReveal { 0%{transform:rotateY(0) scale(.96)} 45%{transform:rotateY(88deg) scale(1.08)} 100%{transform:rotateY(0) scale(1)} }
.gg-shuffling .gg-card-btn:nth-child(1){animation:ggShuffle1 .9s ease-in-out infinite alternate}
.gg-shuffling .gg-card-btn:nth-child(2){animation:ggShuffle2 .9s ease-in-out infinite alternate}
.gg-shuffling .gg-card-btn:nth-child(3){animation:ggShuffle3 .9s ease-in-out infinite alternate}
@keyframes ggShuffle1{from{transform:translateX(0) rotate(-2deg)}to{transform:translateX(60px) rotate(7deg)}}
@keyframes ggShuffle2{from{transform:translateY(0) rotate(2deg)}to{transform:translateY(-22px) rotate(-8deg)}}
@keyframes ggShuffle3{from{transform:translateX(0) rotate(2deg)}to{transform:translateX(-60px) rotate(-7deg)}}

.gg-instruction { position:relative; z-index:4; margin:0 auto 8px; width:min(760px,92%); text-align:center; padding:20px 24px; }
.gg-instruction img { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; opacity:.95; }
.gg-instruction span { position:relative; z-index:2; letter-spacing:.08em; text-transform:uppercase; color:#f7eacb; text-shadow:0 0 12px #000; font-size:16px; }
.gg-game-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:auto; padding:8px 18px; color:#9bdfff; letter-spacing:.08em; text-transform:uppercase; }
.gg-actions { display:flex; gap:12px; justify-content:center; margin:8px 0 0; }
.gg-image-btn { position:relative; display:inline-grid; place-items:center; min-width:190px; min-height:58px; border:0; background:transparent; color:#fff; text-transform:uppercase; letter-spacing:.12em; font-weight:bold; cursor:pointer; text-shadow:0 2px 8px #000; }
.gg-image-btn img { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; pointer-events:none; }
.gg-image-btn span { position:relative; z-index:2; }
.gg-image-btn:disabled { opacity:.55; cursor:not-allowed; }

.gg-right-card { padding:14px; margin-bottom:12px; }
.gg-user-lines p { margin:5px 0; color:#d7eaf4; }
.gg-progress-block { margin:10px 0; padding:12px; border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.035); border-radius:10px; }
.gg-progress-block strong { display:block; margin-bottom:8px; color:#75ff96; text-transform:uppercase; letter-spacing:.08em; font-size:13px; }
.gg-mini-rounds { display:flex; gap:12px; }
.gg-mini-rounds span { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.28); color:#fff; }
.gg-mini-rounds span.done { color:#72ff90; border-color:#72ff90; box-shadow:0 0 12px rgba(114,255,144,.4); }
.gg-score-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gg-score-box { padding:13px; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:rgba(0,0,0,.28); }
.gg-score-box span { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#dbeaf3; }
.gg-score-box strong { display:block; margin-top:4px; font-size:28px; color:var(--gg-gold); }
.gg-hof-preview table, .gg-hof-standalone table { width:100%; border-collapse:collapse; }
.gg-hof-preview th, .gg-hof-preview td, .gg-hof-standalone th, .gg-hof-standalone td { padding:9px 7px; border-bottom:1px solid rgba(255,255,255,.08); text-align:left; }
.gg-hof-preview th, .gg-hof-standalone th { color:#d5e8f2; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.gg-hof-preview td:last-child, .gg-hof-standalone td:last-child { color:var(--gg-gold); font-weight:bold; text-align:right; }

.gg-bottom { display:grid; grid-template-columns:1fr 420px; gap:14px; margin-top:14px; }
.gg-journey, .gg-prize { padding:16px; min-height:88px; display:flex; align-items:center; justify-content:center; }
.gg-journey { gap:22px; color:#c7dce8; text-transform:uppercase; letter-spacing:.08em; }
.gg-journey span { opacity:.85; }
.gg-journey .active { color:var(--gg-blue); text-shadow:0 0 12px rgba(67,194,255,.6); }
.gg-prize { justify-content:space-between; }
.gg-prize span { color:#8fdfff; text-transform:uppercase; letter-spacing:.1em; }
.gg-prize strong { color:#e8dfc8; font-size:34px; }

.gg-login-screen, .gg-enter-screen, .gg-complete-screen {
  min-height:560px; display:grid; place-items:center; padding:28px;
}
.gg-form-card, .gg-complete-card {
  width:min(620px,94%); padding:24px; text-align:center; border:1px solid rgba(98,205,255,.28); border-radius:16px; background:rgba(2,10,20,.84); box-shadow:0 0 45px rgba(0,166,255,.12);
}
.gg-form-card h2, .gg-complete-card h2 { margin:0 0 8px; font-size:30px; letter-spacing:.12em; text-transform:uppercase; color:#d9f4ff; }
.gg-form-card p { color:#b9ced8; }
.gg-form-grid { display:grid; gap:12px; margin:18px auto; text-align:left; }
.gg-form-grid label { display:grid; gap:6px; font-weight:bold; color:#d8ebf6; }
.gg-form-grid input { width:100%; padding:13px 14px; border-radius:8px; border:1px solid rgba(103,214,255,.28); background:rgba(0,0,0,.35); color:#fff; }
.gg-form-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.gg-text-btn { border:1px solid rgba(104,206,255,.35); border-radius:10px; background:linear-gradient(#0a5790,#063152); color:#fff; padding:12px 22px; cursor:pointer; text-transform:uppercase; letter-spacing:.08em; font-weight:bold; }
.gg-text-btn.secondary { background:rgba(0,0,0,.25); }
.gg-message { min-height:24px; margin-top:10px; color:#ffd77b; }
.gg-error { color:#ff8c8c; }
.gg-success { color:#8cff9b; }

.gg-modal-backdrop { position:absolute; inset:0; z-index:10; display:grid; place-items:center; background:rgba(0,0,0,.58); backdrop-filter:blur(2px); }
.gg-result-popup { position:relative; width:min(620px,90%); aspect-ratio:1/1; display:grid; place-items:center; text-align:center; padding:80px; }
.gg-result-popup > img.gg-popup-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.gg-result-popup .gg-vfx { position:absolute; width:80%; height:80%; object-fit:contain; opacity:.8; pointer-events:none; animation:ggPulse 1.4s ease infinite alternate; }
@keyframes ggPulse { from{transform:scale(.96); opacity:.65} to{transform:scale(1.05); opacity:.95} }
.gg-popup-content { position:relative; z-index:2; max-width:70%; }
.gg-popup-content h2 { margin:0 0 8px; text-transform:uppercase; letter-spacing:.12em; color:#fff; font-size:28px; text-shadow:0 0 15px #000; }
.gg-popup-content p { margin:8px 0 18px; color:#f3e2bf; }

.gg-hof-standalone { padding:20px; background:linear-gradient(180deg,#06111d,#02070d); border:1px solid rgba(91,206,255,.25); border-radius:16px; }
.gg-hof-standalone h2 { margin:0; text-align:center; text-transform:uppercase; letter-spacing:.14em; color:#d8f2ff; }
.gg-hof-sub { text-align:center; color:#e7c66f; text-transform:uppercase; letter-spacing:.1em; }

@media (max-width: 1120px) {
  .gg-layout { grid-template-columns:1fr; }
  .gg-left { order:2; }
  .gg-right { order:3; }
  .gg-bottom { grid-template-columns:1fr; }
  .gg-workflow-item { grid-template-columns:36px 1fr; }
}
@media (max-width: 720px) {
  .gg-app-shell { padding:8px; border-radius:0; }
  .gg-header { min-height:56px; }
  .gg-stage, .gg-card-stage { min-height:680px; }
  .gg-stage-content { min-height:650px; }
  .gg-title-row { flex-direction:column; align-items:center; }
  .gg-cards { gap:8px; margin-top:26px; }
  .gg-card-btn { width:30vw; max-width:118px; }
  .gg-dealer-hand { width:120px; left:-10px; top:26%; }
  .gg-table { width:112%; opacity:.82; }
  .gg-game-footer { flex-direction:column; font-size:12px; }
  .gg-actions { flex-direction:column; align-items:center; }
  .gg-image-btn { min-width:220px; }
  .gg-bottom { display:none; }
  .gg-form-card, .gg-complete-card { padding:18px; }
}


/* v0.1.1 — clearer Enter Arena start flow */
.gg-enter-stage-fixed {
  min-height:660px;
  display:grid;
  place-items:center;
  padding:32px;
}
.gg-enter-stage-fixed .gg-stage-bg { opacity:.46; }
.gg-enter-stage-fixed .gg-stage-vignette {
  background:radial-gradient(circle at 50% 42%, rgba(0,20,40,.05), rgba(0,0,0,.62) 70%, rgba(0,0,0,.88));
}
.gg-start-card {
  position:relative;
  z-index:5;
  width:min(680px,96%);
  padding:26px 28px 30px;
  text-align:center;
  border:1px solid rgba(104,218,255,.58);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(3,12,24,.96), rgba(2,8,16,.94));
  box-shadow:0 0 0 1px rgba(255,255,255,.04), 0 0 48px rgba(0,180,255,.22), inset 0 0 45px rgba(0,110,190,.10);
}
.gg-start-badge {
  display:inline-block;
  margin:0 auto 10px;
  padding:7px 14px;
  border:1px solid rgba(241,198,106,.55);
  border-radius:999px;
  color:#f1c66a;
  background:rgba(0,0,0,.38);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:12px;
  font-weight:bold;
}
.gg-start-logo {
  max-width:min(430px,78%);
  margin:0 auto -6px;
}
.gg-start-card h2 {
  margin:8px 0 6px;
  color:#e9f8ff;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:clamp(26px,3vw,38px);
  text-shadow:0 0 18px rgba(84,200,255,.55);
}
.gg-start-help {
  max-width:560px;
  margin:0 auto 16px;
  color:#d2e8f3;
  line-height:1.5;
  font-size:15px;
}
.gg-start-fields {
  max-width:540px;
}
.gg-start-fields label {
  color:#f2fbff;
  font-size:15px;
  text-shadow:0 1px 0 #000;
}
.gg-start-fields input {
  min-height:48px;
  border:1px solid rgba(108,218,255,.48);
  background:rgba(0,5,12,.72);
  box-shadow:inset 0 0 16px rgba(0,0,0,.55);
  font-size:16px;
}
.gg-optional {
  color:#8ecfe9;
  font-size:12px;
  font-weight:normal;
  margin-left:4px;
}
.gg-big-start-btn {
  width:min(540px,100%);
  min-height:74px;
  border:1px solid rgba(112,225,255,.85);
  border-radius:14px;
  color:#fff;
  background:linear-gradient(180deg,#14aee8,#076da8 50%,#043d66);
  box-shadow:0 10px 0 rgba(0,0,0,.35), 0 0 28px rgba(55,201,255,.45), inset 0 0 22px rgba(255,255,255,.16);
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:bold;
  display:grid;
  place-items:center;
  gap:4px;
  transition:transform .14s ease, filter .14s ease;
}
.gg-big-start-btn:hover { transform:translateY(-2px); filter:brightness(1.12); }
.gg-big-start-btn:active { transform:translateY(3px); box-shadow:0 5px 0 rgba(0,0,0,.38), 0 0 22px rgba(55,201,255,.35); }
.gg-big-start-btn span { font-size:22px; }
.gg-big-start-btn small { font-family:Georgia,'Times New Roman',serif; letter-spacing:.08em; font-size:12px; color:#dff7ff; }
.gg-start-warning {
  color:#ffd77b;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:12px;
}
@media (max-width:720px) {
  .gg-enter-stage-fixed { padding:18px 10px; min-height:650px; }
  .gg-start-card { padding:18px 14px 22px; }
  .gg-start-logo { max-width:86%; }
  .gg-big-start-btn { min-height:68px; }
}

/* v0.1.2 — Direwolf Cards gameplay + layout fixes */
.gg-table-wrap {
  min-height: 390px;
  overflow: hidden;
}
.gg-table {
  width: min(76%, 740px);
  max-height: 82%;
}
.gg-cards {
  width: min(62%, 560px);
  gap: clamp(10px, 1.8vw, 22px);
  margin-top: 18px;
}
.gg-card-btn {
  width: clamp(96px, 12.2vw, 128px);
}
.gg-card-btn:not(:disabled):hover {
  transform: translateY(-6px) scale(1.02);
}
.gg-card-btn.gg-card-preview,
.gg-card-btn.gg-card-selected {
  filter: drop-shadow(0 0 18px rgba(98, 203, 255, 0.75));
}
.gg-card-btn.gg-card-preview .gg-card-highlight,
.gg-card-btn.gg-card-selected .gg-card-highlight {
  opacity: .95;
}
.gg-dealer-hand {
  left: 13%;
  top: 48%;
  width: 170px;
  transform: translate(-50%, -50%) rotate(-18deg);
  transition: left .28s ease, top .28s ease, transform .28s ease, opacity .28s ease, filter .28s ease;
  opacity: .58;
}
.gg-dealer-hand.gg-hand-active {
  opacity: .9;
  filter: drop-shadow(0 18px 24px rgba(0,0,0,.7));
}
.gg-dealer-hand.gg-hand-shuffling {
  animation: ggDealerFidget .4s ease-in-out infinite alternate;
}
@keyframes ggDealerFidget {
  from { transform: translate(-50%, -50%) rotate(-14deg) scale(1); }
  to   { transform: translate(-50%, -50%) rotate(-22deg) scale(1.02); }
}
.gg-shuffling .gg-card-btn:nth-child(1),
.gg-shuffling .gg-card-btn:nth-child(2),
.gg-shuffling .gg-card-btn:nth-child(3) {
  animation-duration: .42s;
}
.gg-instruction {
  width: min(700px, 90%);
}
.gg-instruction span {
  font-size: 15px;
}
.gg-game-footer {
  padding: 8px 28px;
}

@media (max-width: 720px) {
  .gg-table {
    width: min(96%, 620px);
  }
  .gg-cards {
    width: min(86%, 420px);
    gap: 8px;
    margin-top: 26px;
  }
  .gg-card-btn {
    width: min(28vw, 110px);
  }
  .gg-dealer-hand {
    width: 112px;
  }
}

/* v0.1.3 — clarity, test reset, responsive cleanup */
.gg-layout {
  grid-template-columns: 220px minmax(0, 1fr) 280px;
}
.gg-right-card,
.gg-progress-block,
.gg-score-box,
.gg-form-card,
.gg-complete-card,
.gg-start-card,
.gg-popup-content,
.gg-instruction span,
.gg-user-lines p,
.gg-progress-block strong {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.gg-right-card h2,
.gg-left h2,
.gg-workflow-item strong {
  line-height: 1.2;
}
.gg-progress-block strong {
  line-height: 1.35;
  font-size: 12px;
}
.gg-mini-rounds {
  gap: 8px;
  flex-wrap: wrap;
}
.gg-mini-rounds span {
  width: 28px;
  height: 28px;
  font-size: 14px;
}
.gg-side-note {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: #9ed6ef;
  font-size: 12px;
  line-height: 1.45;
}
.gg-full-btn {
  width: 100%;
}
.gg-test-tools p {
  margin: 0 0 12px;
  color: #b7d4e5;
  font-size: 13px;
  line-height: 1.45;
}

.gg-card-stage {
  padding: 14px;
}
.gg-stage-content {
  min-height: 600px;
}
.gg-title-row {
  gap: 10px;
  align-items: center;
}
.gg-title-row > div:first-child,
.gg-title-row > div:last-child {
  min-width: 120px;
}
.gg-subtitle {
  font-size: 16px;
  color: #eff7ff;
  text-shadow: 0 1px 10px rgba(0,0,0,.9);
}
.gg-table-wrap {
  min-height: 400px;
}
.gg-table {
  width: min(78%, 740px);
}
.gg-cards {
  width: min(62%, 560px);
  gap: clamp(10px, 1.8vw, 22px);
  margin-top: 20px;
}
.gg-card-btn {
  width: clamp(96px, 12.5vw, 126px);
}
.gg-card-btn:not(:disabled):hover {
  transform: translateY(-6px) scale(1.02);
}
.gg-instruction {
  width: min(720px, 92%);
  margin-top: 10px;
}
.gg-instruction span {
  display: block;
  line-height: 1.35;
  font-size: clamp(14px, 1.2vw, 17px);
}
.gg-game-footer {
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  text-align: center;
  padding: 10px 16px;
}
.gg-actions {
  flex-wrap: wrap;
}

.gg-result-popup {
  width: min(640px, 96%);
  padding: 70px 72px;
}
.gg-popup-content {
  max-width: 78%;
}
.gg-popup-round {
  display: inline-block;
  margin-bottom: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.42);
  border: 1px solid rgba(255,255,255,.22);
  color: #d8f2ff;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .14em;
}
.gg-popup-content h2 {
  line-height: 1.15;
}
.gg-popup-content p {
  line-height: 1.45;
  font-size: 15px;
}
.gg-popup-scoreline {
  margin: 0 0 16px;
  color: #ffd978;
  font-size: 18px;
  font-weight: bold;
  text-shadow: 0 0 12px rgba(0,0,0,.9);
}

.gg-complete-card-strong {
  width: min(660px, 96%);
  background: linear-gradient(180deg, rgba(3,12,24,.97), rgba(2,8,16,.96));
  border: 1px solid rgba(103,214,255,.36);
  box-shadow: 0 0 0 1px rgba(255,255,255,.04), 0 0 55px rgba(0,170,255,.15);
}
.gg-complete-badge {
  display: inline-block;
  margin-bottom: 10px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1px solid rgba(241,198,106,.46);
  background: rgba(0,0,0,.32);
  color: #f1c66a;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 12px;
}
.gg-complete-hero {
  width: min(420px, 100%);
  display: block;
  margin: -24px auto -6px;
  pointer-events: none;
}
.gg-complete-lead {
  color: #f2f8ff;
  font-size: 18px;
  margin: 0 0 10px;
}
.gg-final-score {
  margin: 8px auto 12px;
  font-size: clamp(30px, 5vw, 52px);
  font-weight: bold;
  line-height: 1;
  color: #f1c66a;
  text-shadow: 0 0 18px rgba(241,198,106,.25);
}
.gg-complete-sub {
  color: #c1d8e7;
  line-height: 1.5;
}

@media (max-width: 1360px) {
  .gg-layout {
    grid-template-columns: 200px minmax(0,1fr) 260px;
  }
  .gg-header h1 {
    font-size: clamp(26px, 3.5vw, 48px);
  }
}

@media (max-width: 1120px) {
  .gg-layout {
    grid-template-columns: 1fr;
  }
  .gg-stage {
    order: 1;
  }
  .gg-left {
    order: 2;
  }
  .gg-right {
    order: 3;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
  }
  .gg-right-card {
    margin-bottom: 0;
  }
  .gg-test-tools {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .gg-app-shell {
    padding: 10px;
    border-radius: 14px;
  }
  .gg-right {
    grid-template-columns: 1fr;
  }
  .gg-title-row {
    flex-direction: column;
  }
  .gg-title-row > div:first-child,
  .gg-title-row > div:last-child {
    min-width: 0;
  }
  .gg-table-wrap {
    min-height: 360px;
  }
  .gg-table {
    width: min(96%, 620px);
    opacity: .88;
  }
  .gg-cards {
    width: min(84%, 420px);
    gap: 8px;
    margin-top: 26px;
  }
  .gg-card-btn {
    width: min(27vw, 110px);
  }
  .gg-dealer-hand {
    width: 118px;
  }
  .gg-result-popup {
    padding: 54px 34px;
  }
  .gg-popup-content {
    max-width: 82%;
  }
}

@media (max-width: 720px) {
  .gg-app-shell {
    padding: 8px;
    border-radius: 0;
    min-height: auto;
  }
  .gg-header {
    min-height: 54px;
    margin-bottom: 8px;
  }
  .gg-header h1 {
    font-size: 28px;
    letter-spacing: .08em;
  }
  .gg-stage,
  .gg-card-stage {
    min-height: auto;
  }
  .gg-stage-content {
    min-height: auto;
  }
  .gg-card-stage,
  .gg-login-screen,
  .gg-enter-screen,
  .gg-complete-screen {
    padding: 12px;
  }
  .gg-table-wrap {
    min-height: 320px;
  }
  .gg-cards {
    width: min(92%, 360px);
    gap: 6px;
    margin-top: 26px;
  }
  .gg-card-btn {
    width: min(29vw, 96px);
  }
  .gg-dealer-hand {
    width: 96px;
  }
  .gg-instruction {
    width: 96%;
    padding: 18px 16px;
  }
  .gg-instruction span {
    font-size: 13px;
    letter-spacing: .05em;
  }
  .gg-game-footer {
    font-size: 12px;
    gap: 8px 16px;
  }
  .gg-actions {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .gg-image-btn {
    width: min(280px, 100%);
    min-width: 0;
  }
  .gg-bottom {
    display: none;
  }
  .gg-form-card,
  .gg-complete-card,
  .gg-start-card {
    width: 100%;
    padding: 18px 16px;
  }
  .gg-form-card h2,
  .gg-complete-card h2,
  .gg-start-card h2 {
    font-size: 24px;
  }
  .gg-popup-content h2 {
    font-size: 22px;
  }
  .gg-popup-content p {
    font-size: 14px;
  }
  .gg-popup-scoreline {
    font-size: 16px;
  }
}

/* Mobile wide / 16:9 friendly layout */
@media (max-width: 720px) and (orientation: landscape) {
  .gg-layout {
    gap: 8px;
  }
  .gg-card-stage {
    min-height: 56vw;
  }
  .gg-table-wrap {
    min-height: 220px;
  }
  .gg-title-logo {
    max-width: min(360px, 64%);
  }
  .gg-left,
  .gg-right {
    padding: 10px;
  }
  .gg-workflow-item {
    padding: 8px 6px;
  }
}


/* v0.1.4 — sharper text, gold direwolf swap, gentle tracking */
.gg-game-kicker,
.gg-round-title {
  color:#e7cf8a;
  text-transform:uppercase;
  letter-spacing:.12em;
  text-align:center;
  text-shadow:0 1px 6px rgba(0,0,0,.85);
}
.gg-title-logo {
  max-width:min(620px,84%);
  margin:0 auto -10px;
  filter:drop-shadow(0 0 12px rgba(80,180,255,.30));
}
.gg-subtitle {
  font-size:17px;
  color:#f4fbff;
  text-shadow:0 1px 2px rgba(0,0,0,.95), 0 0 10px rgba(0,0,0,.75);
}
.gg-table-wrap {
  min-height:430px;
}
.gg-table {
  width:min(82%,780px);
  opacity:.98;
}
.gg-cards {
  position:relative;
  width:min(66%, 620px);
  height:min(34vw, 360px);
  min-height:280px;
  margin-top:18px;
  z-index:4;
}
.gg-card-btn {
  position:absolute;
  top:50%; left:50%;
  width:clamp(104px, 12.2vw, 132px);
  aspect-ratio:2/3;
  transform:translate(-50%,-50%);
  transition: transform .72s cubic-bezier(.22,.8,.2,1), filter .22s ease;
  will-change:transform;
}
.gg-card-pos-0 { transform:translate(calc(-50% - 145px), -50%) rotate(-4deg); }
.gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
.gg-card-pos-2 { transform:translate(calc(-50% + 145px), -50%) rotate(4deg); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 145px), calc(-50% - 8px)) rotate(-4deg) scale(1.02); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 8px)) rotate(0deg) scale(1.02); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 145px), calc(-50% - 8px)) rotate(4deg) scale(1.02); }
.gg-card-btn.gg-card-preview,
.gg-card-btn.gg-card-selected { filter:drop-shadow(0 0 22px rgba(255,206,94,.45)) drop-shadow(0 0 18px rgba(98,203,255,.55)); }
.gg-card-shadow { opacity:.48; transform:translateY(16px) scale(1.08); }
.gg-card-img { filter:drop-shadow(0 10px 18px rgba(0,0,0,.80)); }
.gg-shuffling .gg-card-btn { transition-duration:.9s; }
.gg-choose-hint .gg-card-btn.gg-hint-pulse:not(:disabled) { animation:ggHintPulse 1.1s ease-in-out infinite; }
.gg-choose-hint .gg-card-btn.gg-hint-pulse:nth-child(2) { animation-delay:.12s; }
.gg-choose-hint .gg-card-btn.gg-hint-pulse:nth-child(3) { animation-delay:.24s; }
@keyframes ggHintPulse {
  0%,100% { filter:drop-shadow(0 0 0 rgba(83,199,255,0)); }
  50% { filter:drop-shadow(0 0 14px rgba(83,199,255,.65)); }
}
.gg-dealer-hand {
  left:84%;
  top:40%;
  width:160px;
  opacity:.68;
}
.gg-dealer-hand.gg-hand-active {
  opacity:.93;
}
.gg-dealer-hand.gg-hand-shuffling {
  animation:ggDealerFidget .5s ease-in-out infinite alternate;
}
.gg-instruction {
  width:min(720px, 94%);
}
.gg-instruction span {
  color:#fff0c9;
  font-size:17px;
  line-height:1.38;
  text-shadow:0 1px 1px rgba(0,0,0,.98), 0 0 14px rgba(0,0,0,.88);
}
.gg-complete-screen .gg-stage-vignette { background:radial-gradient(circle at 50% 42%, rgba(0,20,40,.06), rgba(0,0,0,.82) 72%, rgba(0,0,0,.92)); }
.gg-complete-card-strong {
  background:linear-gradient(180deg, rgba(4,12,22,.99), rgba(3,10,18,.985));
  border:1px solid rgba(115,220,255,.48);
  box-shadow:0 0 0 1px rgba(255,255,255,.05), 0 0 65px rgba(0,125,210,.20);
}
.gg-complete-card-strong * {
  text-shadow:0 1px 1px rgba(0,0,0,.95);
}
.gg-complete-card-strong .gg-complete-hero {
  width:min(460px, 100%);
  margin:-18px auto 4px;
}
.gg-complete-card-strong h2,
.gg-complete-card-strong .gg-complete-lead,
.gg-complete-card-strong .gg-complete-sub,
.gg-complete-card-strong .gg-final-score,
.gg-popup-content,
.gg-popup-content * {
  filter:none;
}
.gg-result-popup {
  background:rgba(2,6,12,.12);
}
.gg-popup-content {
  background:rgba(0,0,0,.34);
  border-radius:18px;
  padding:14px 18px 18px;
}
.gg-popup-content h2,
.gg-popup-content p,
.gg-popup-scoreline,
.gg-popup-round {
  text-shadow:0 1px 1px rgba(0,0,0,.98), 0 0 12px rgba(0,0,0,.9);
}

@media (max-width: 900px) {
  .gg-cards {
    width:min(86%, 450px);
    min-height:240px;
    height:260px;
  }
  .gg-card-pos-0 { transform:translate(calc(-50% - 112px), -50%) rotate(-4deg); }
  .gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
  .gg-card-pos-2 { transform:translate(calc(-50% + 112px), -50%) rotate(4deg); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 112px), calc(-50% - 8px)) rotate(-4deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 8px)) rotate(0deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 112px), calc(-50% - 8px)) rotate(4deg) scale(1.02); }
}
@media (max-width: 720px) {
  .gg-title-logo { max-width:min(420px, 90%); }
  .gg-subtitle { font-size:14px; }
  .gg-table-wrap { min-height:350px; }
  .gg-cards {
    width:min(92%, 360px);
    min-height:220px;
    height:230px;
  }
  .gg-card-btn { width:min(28vw, 102px); }
  .gg-card-pos-0 { transform:translate(calc(-50% - 86px), -50%) rotate(-4deg); }
  .gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
  .gg-card-pos-2 { transform:translate(calc(-50% + 86px), -50%) rotate(4deg); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 86px), calc(-50% - 6px)) rotate(-4deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 6px)) rotate(0deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 86px), calc(-50% - 6px)) rotate(4deg) scale(1.02); }
  .gg-dealer-hand { width:108px; left:86%; top:38%; }
  .gg-instruction span { font-size:14px; }
}


/* v0.1.5 — calmer shuffle, remove hand, sharper titles */
.gg-header {
  background:linear-gradient(180deg, rgba(21,14,8,.94), rgba(14,10,7,.96));
  border:1px solid rgba(230,196,114,.34);
  box-shadow:inset 0 0 20px rgba(255,190,60,.08), 0 10px 30px rgba(0,0,0,.35);
}
.gg-header h1 {
  color:#f0d79a;
  font-weight:700;
  text-shadow:0 2px 1px rgba(0,0,0,.95), 0 0 14px rgba(255,210,120,.30), 0 0 2px rgba(255,255,255,.16);
  letter-spacing:.05em;
}
.gg-title-row {
  align-items:center;
}
.gg-title-logo.gg-play-logo {
  max-width:min(360px, 54vw);
  margin:0 auto 6px;
  filter:drop-shadow(0 0 16px rgba(0,0,0,.55));
}
.gg-start-logo {
  max-width:min(460px, 86%);
}
.gg-subtitle {
  font-size:16px;
  color:#fbfcfe;
  text-shadow:0 1px 3px rgba(0,0,0,.96);
  max-width:640px;
  margin:0 auto;
}
.gg-table-wrap {
  min-height:390px;
}
.gg-cards {
  width:min(72%, 660px);
  height:300px;
  margin-top:12px;
}
.gg-card-btn {
  width:clamp(98px, 11vw, 122px);
  transition: transform 1.35s cubic-bezier(.25,.7,.18,1), filter .22s ease;
}
.gg-card-pos-0 { transform:translate(calc(-50% - 132px), -50%) rotate(-3deg); }
.gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
.gg-card-pos-2 { transform:translate(calc(-50% + 132px), -50%) rotate(3deg); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 132px), calc(-50% - 8px)) rotate(-3deg) scale(1.02); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 8px)) rotate(0deg) scale(1.02); }
.gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 132px), calc(-50% - 8px)) rotate(3deg) scale(1.02); }
.gg-table-wrap .gg-dealer-hand { display:none !important; }
.gg-instruction,
.gg-popup-content,
.gg-complete-card,
.gg-complete-card-strong {
  backdrop-filter:none;
}
.gg-instruction {
  width:min(760px, 96%);
}
.gg-instruction span {
  color:#fff3ca;
  font-size:18px;
  text-shadow:0 1px 2px rgba(0,0,0,.98), 0 0 10px rgba(0,0,0,.9);
}
.gg-game-footer,
.gg-game-footer span {
  color:#f5f8fb;
  text-shadow:0 1px 2px rgba(0,0,0,.95);
}
.gg-complete-screen .gg-stage-vignette {
  background:radial-gradient(circle at 50% 42%, rgba(0,0,0,.22), rgba(0,0,0,.86) 76%, rgba(0,0,0,.94));
}
.gg-complete-card-strong {
  max-width:720px;
  background:linear-gradient(180deg, rgba(4,12,22,.97), rgba(3,9,16,.98));
  border:1px solid rgba(120,220,255,.56);
  box-shadow:0 0 0 1px rgba(255,255,255,.06), 0 20px 70px rgba(0,0,0,.55);
  padding:24px 26px 28px;
}
.gg-complete-card-strong .gg-complete-hero {
  max-width:min(430px, 92%);
  margin:0 auto 6px;
}
.gg-complete-badge,
.gg-complete-card-strong h2,
.gg-complete-card-strong .gg-complete-lead,
.gg-complete-card-strong .gg-complete-sub,
.gg-complete-card-strong .gg-final-score {
  color:#ffffff;
  text-shadow:0 1px 2px rgba(0,0,0,.98), 0 0 12px rgba(0,0,0,.8);
}
.gg-complete-badge {
  color:#f0d99a;
  letter-spacing:.12em;
}
.gg-complete-card-strong h2 {
  font-size:36px;
  margin-top:8px;
}
.gg-complete-card-strong .gg-complete-lead,
.gg-complete-card-strong .gg-complete-sub {
  font-size:18px;
  line-height:1.45;
}
.gg-complete-card-strong .gg-final-score {
  font-size:64px;
  color:#f3cf79;
  line-height:1;
  margin:10px 0 12px;
}
.gg-popup-content {
  background:linear-gradient(180deg, rgba(4,12,22,.84), rgba(2,9,16,.88));
  border:1px solid rgba(120,220,255,.35);
}
.gg-popup-content h2,
.gg-popup-content p,
.gg-popup-scoreline,
.gg-popup-round {
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.98), 0 0 10px rgba(0,0,0,.85);
}
@media (max-width: 900px) {
  .gg-title-logo.gg-play-logo { max-width:min(300px, 68vw); }
  .gg-cards { width:min(84%, 500px); height:270px; }
  .gg-card-pos-0 { transform:translate(calc(-50% - 108px), -50%) rotate(-3deg); }
  .gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
  .gg-card-pos-2 { transform:translate(calc(-50% + 108px), -50%) rotate(3deg); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 108px), calc(-50% - 8px)) rotate(-3deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 8px)) rotate(0deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 108px), calc(-50% - 8px)) rotate(3deg) scale(1.02); }
}
@media (max-width: 720px) {
  .gg-header h1 { font-size:clamp(26px, 8vw, 40px); }
  .gg-title-row { gap:8px; align-items:flex-start; }
  .gg-title-logo.gg-play-logo { max-width:min(250px, 72vw); }
  .gg-subtitle { font-size:15px; }
  .gg-cards { width:min(92%, 360px); height:220px; }
  .gg-card-btn { width:min(27vw, 96px); }
  .gg-card-pos-0 { transform:translate(calc(-50% - 78px), -50%) rotate(-2deg); }
  .gg-card-pos-1 { transform:translate(-50%, -50%) rotate(0deg); }
  .gg-card-pos-2 { transform:translate(calc(-50% + 78px), -50%) rotate(2deg); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-0 { transform:translate(calc(-50% - 78px), calc(-50% - 6px)) rotate(-2deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-1 { transform:translate(-50%, calc(-50% - 6px)) rotate(0deg) scale(1.02); }
  .gg-card-btn:not(:disabled):hover.gg-card-pos-2 { transform:translate(calc(-50% + 78px), calc(-50% - 6px)) rotate(2deg) scale(1.02); }
  .gg-instruction span { font-size:15px; }
  .gg-complete-card-strong { padding:18px; }
  .gg-complete-card-strong h2 { font-size:28px; }
  .gg-complete-card-strong .gg-final-score { font-size:44px; }
}


/* v0.1.6 — updated direwolf logo, clearer buttons, pulse focus */
.gg-title-logo.gg-play-logo {
  max-width:min(430px, 62vw);
}
.gg-start-logo {
  max-width:min(520px, 92%);
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.55));
}
.gg-game-title {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.gg-stage-content {
  padding-bottom:18px;
}
.gg-subtitle {
  margin-top:6px;
  max-width:620px;
  font-size:16px;
  line-height:1.4;
}
.gg-actions.gg-actions-clear {
  margin-top:16px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:26px;
  flex-wrap:wrap;
}
.gg-image-btn.gg-primary-action {
  min-width:230px;
  min-height:66px;
}
.gg-image-btn.gg-secondary-action {
  min-width:170px;
  min-height:58px;
  opacity:.96;
}
.gg-image-btn span {
  font-size:20px;
  letter-spacing:.08em;
  text-shadow:0 2px 8px rgba(0,0,0,.98), 0 0 10px rgba(0,0,0,.75);
}
.gg-image-btn.gg-secondary-action span {
  font-size:18px;
}
.gg-attention-pulse {
  animation: ggAttentionPulse 1.25s ease-in-out infinite;
}
@keyframes ggAttentionPulse {
  0%,100% { transform:translateY(0) scale(1); filter:drop-shadow(0 0 0 rgba(84,201,255,0)); }
  50% { transform:translateY(-1px) scale(1.035); filter:drop-shadow(0 0 16px rgba(84,201,255,.55)) drop-shadow(0 0 24px rgba(241,207,120,.28)); }
}
.gg-game-footer {
  margin-top:8px;
  padding:10px 18px 6px;
  row-gap:8px;
  flex-wrap:wrap;
  justify-content:center;
}
.gg-game-footer span {
  white-space:nowrap;
}
.gg-round-title {
  margin-bottom:6px;
}
@media (max-width: 900px) {
  .gg-title-logo.gg-play-logo { max-width:min(360px, 74vw); }
}
@media (max-width: 720px) {
  .gg-title-logo.gg-play-logo { max-width:min(290px, 78vw); }
  .gg-start-logo { max-width:min(360px, 94%); }
  .gg-actions.gg-actions-clear { gap:14px; }
  .gg-image-btn.gg-primary-action { min-width:210px; min-height:62px; }
  .gg-image-btn.gg-secondary-action { min-width:150px; min-height:54px; }
  .gg-image-btn span { font-size:18px; }
  .gg-image-btn.gg-secondary-action span { font-size:16px; }
}


/* v0.1.7 — calmer hover and step-by-step shuffle */
.gg-cards {
  --slot0-x:-145px;
  --slot1-x:0px;
  --slot2-x:145px;
  --mid01-x:-72px;
  --mid12-x:72px;
  --lift-y:-58px;
}
.gg-cards .gg-card-btn {
  transform:translate(calc(-50% + var(--gg-x, 0px)), calc(-50% + var(--gg-y, 0px) + var(--gg-hover, 0px))) rotate(var(--gg-rot, 0deg)) scale(var(--gg-scale, 1)) !important;
  z-index:var(--gg-z, 2);
  transition:transform .54s cubic-bezier(.22,.78,.26,1), filter .20s ease, opacity .20s ease !important;
}
.gg-cards .gg-card-btn:not(:disabled):hover {
  --gg-hover:-3px;
  --gg-scale:1.0;
  filter:drop-shadow(0 0 10px rgba(83,199,255,.28)) drop-shadow(0 0 16px rgba(83,199,255,.20));
}
.gg-cards .gg-card-shadow {
  opacity:.38;
  transform:translateY(14px) scale(1.04);
}
.gg-cards .gg-card-highlight {
  opacity:0;
  transform:scale(1.015);
  transition:opacity .16s ease;
  filter:saturate(.72) brightness(.92);
}
.gg-cards .gg-card-btn:not(:disabled):hover .gg-card-highlight {
  opacity:.26;
}
.gg-cards .gg-card-btn.gg-card-preview .gg-card-highlight,
.gg-cards .gg-card-btn.gg-card-selected .gg-card-highlight {
  opacity:.38;
}
.gg-shuffling .gg-card-btn {
  transition-duration:.54s !important;
}
.gg-choose-hint .gg-card-btn.gg-hint-pulse:not(:disabled) {
  animation:ggHintPulseSoft 1.1s ease-in-out infinite;
}
@keyframes ggHintPulseSoft {
  0%,100% { filter:drop-shadow(0 0 0 rgba(83,199,255,0)); }
  50% { filter:drop-shadow(0 0 10px rgba(83,199,255,.38)) drop-shadow(0 0 16px rgba(83,199,255,.16)); }
}
@media (max-width: 1180px) {
  .gg-cards {
    --slot0-x:-132px;
    --slot1-x:0px;
    --slot2-x:132px;
    --mid01-x:-66px;
    --mid12-x:66px;
    --lift-y:-54px;
  }
}
@media (max-width: 900px) {
  .gg-cards {
    --slot0-x:-108px;
    --slot1-x:0px;
    --slot2-x:108px;
    --mid01-x:-54px;
    --mid12-x:54px;
    --lift-y:-48px;
  }
}
@media (max-width: 640px) {
  .gg-cards {
    --slot0-x:-78px;
    --slot1-x:0px;
    --slot2-x:78px;
    --mid01-x:-39px;
    --mid12-x:39px;
    --lift-y:-40px;
  }
  .gg-cards .gg-card-btn:not(:disabled):hover {
    --gg-hover:-2px;
  }
}


/* v0.2.0 — Wheel of Dead prototype */
.gg-wheel2-screen { min-height: 760px; }
.gg-wheel-title { margin:0; text-transform:uppercase; letter-spacing:.12em; font-size:32px; color:#e7f5ff; }
.gg-wheel-board { display:grid; gap:16px; justify-items:center; padding-top:10px; }
.gg-wheel-arena-wrap { width:min(100%, 640px); display:grid; place-items:center; }
.gg-wheel-arena { position:relative; width:min(100%, 560px); aspect-ratio:1/1; }
.gg-wheel-frame, .gg-wheel-spinner-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.gg-wheel-score-ring { position:absolute; inset:15.5%; border-radius:50%; pointer-events:none; z-index:2; }
.gg-wheel-score-tag { position:absolute; transform:translate(-50%, -50%); min-width:46px; padding:4px 8px; border-radius:999px; border:1px solid rgba(240,215,144,.55); background:rgba(6,10,18,.68); color:#f5ddb0; font-size:13px; font-weight:700; letter-spacing:.06em; text-align:center; text-shadow:0 1px 6px #000; box-shadow:0 0 18px rgba(0,0,0,.35); }
.gg-wheel-spinner { position:absolute; left:50%; top:50.2%; width:77.8%; aspect-ratio:543 / 623; height:auto; transform:translate(-50%,-50%); transform-origin:center center; z-index:3; }
.gg-wheel-spinner-img { filter:drop-shadow(0 10px 14px rgba(0,0,0,.38)); }
.gg-wheel-target { position:absolute; inset:15.5%; border:0; background:transparent; cursor:crosshair; border-radius:50%; z-index:4; }
.gg-wheel-target.is-live { box-shadow:0 0 0 1px rgba(111,221,255,.2), 0 0 32px rgba(63,180,255,.18) inset; }
.gg-wheel-caption { max-width:720px; text-align:center; color:#f4e6ba; font-size:18px; line-height:1.4; text-shadow:0 2px 8px #000; }
.gg-wheel-actions .gg-image-btn { min-width: 180px; }
.gg-wheel-finish { padding:14px 18px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(0,0,0,.35); text-align:center; }
.gg-wheel-finish h3 { margin:0 0 6px; color:#9be1ff; text-transform:uppercase; letter-spacing:.12em; }
.gg-tomato-splat { position:absolute; width:68px; height:68px; margin:-34px 0 0 -34px; border-radius:50%; display:grid; place-items:center; pointer-events:none; background:radial-gradient(circle at 35% 35%, rgba(255,159,120,.98), rgba(200,22,22,.95) 48%, rgba(110,0,0,.92) 72%, rgba(65,0,0,.82) 100%); box-shadow:0 0 18px rgba(255,60,30,.45), inset 0 0 14px rgba(255,220,190,.28); }
.gg-tomato-splat::before, .gg-tomato-splat::after { content:''; position:absolute; border-radius:50%; background:inherit; }
.gg-tomato-splat::before { width:20px; height:20px; left:-6px; top:12px; }
.gg-tomato-splat::after { width:16px; height:16px; right:-5px; bottom:10px; }
.gg-tomato-splat span { position:relative; z-index:2; font-size:15px; font-weight:900; letter-spacing:.08em; color:#fff4d6; text-shadow:0 2px 6px rgba(0,0,0,.75); }
.gg-tomato-splat.is-points { background:radial-gradient(circle at 35% 35%, rgba(255,229,164,.98), rgba(255,110,64,.96) 45%, rgba(173,20,20,.95) 72%, rgba(80,0,0,.84) 100%); }
.gg-tomato-splat.is-dead { background:radial-gradient(circle at 35% 35%, rgba(255,129,100,.98), rgba(210,35,35,.95) 48%, rgba(98,0,0,.9) 75%, rgba(58,0,0,.8) 100%); }
.gg-tomato-splat { position:absolute; width:64px; height:64px; margin:-32px 0 0 -32px; border-radius:44% 56% 50% 50%; background:radial-gradient(circle at 40% 35%, #ffb2a0 0 12%, #ff6536 16%, #ba1911 52%, rgba(92,8,5,.96) 76%, rgba(92,8,5,0) 78%); box-shadow:0 0 16px rgba(255,85,45,.55); pointer-events:none; }
.gg-tomato-splat::before, .gg-tomato-splat::after { content:''; position:absolute; background:radial-gradient(circle, #ff6b43 25%, rgba(150,16,9,.9) 70%, rgba(150,16,9,0) 72%); border-radius:50%; }
.gg-tomato-splat::before { width:24px; height:24px; left:-10px; top:8px; }
.gg-tomato-splat::after { width:20px; height:20px; right:-8px; bottom:8px; }
.gg-tomato-splat span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font-weight:bold; color:#fff5cf; font-size:14px; text-shadow:0 0 8px #000; }
@media (max-width: 720px) {
  .gg-wheel2-screen { min-height: 680px; }
  .gg-wheel-title { font-size: 24px; }
  .gg-wheel-caption { font-size: 15px; padding: 0 10px; }
  .gg-wheel-arena { width:min(100%, 420px); }
  .gg-wheel-score-tag { min-width:38px; font-size:11px; padding:3px 6px; }
  .gg-wheel-actions { flex-direction:column; align-items:center; }
}


/* v0.2.1 — direct Game 2 testing */
.gg-test-game2-btn,
.gg-test-game2-inline {
  margin-top:10px;
  background:linear-gradient(180deg, rgba(90,195,255,.95), rgba(13,92,142,.96));
  border-color:rgba(155,230,255,.72);
  color:#06121a;
  text-shadow:none;
  box-shadow:0 0 18px rgba(65,190,255,.18);
}
.gg-test-game2-inline {
  width:100%;
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
}
.gg-test-game2-btn:hover,
.gg-test-game2-inline:hover {
  filter:brightness(1.08);
}


/* v0.3.0 - Wheel of Dead / Wheel of Fortune prototypes */
.gg-wheel-board { gap: 14px; }
.gg-bet-row {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:4px 0 2px;
}
.gg-bet-label {
  color:#f2d89a;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:13px;
}
.gg-bet-btn {
  min-width:68px;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(116,212,255,.45);
  background:rgba(3,11,20,.82);
  color:#dbf6ff;
  font-weight:bold;
  letter-spacing:.08em;
  cursor:pointer;
  box-shadow:inset 0 0 14px rgba(0,125,215,.12);
}
.gg-bet-btn.active {
  color:#04101a;
  background:linear-gradient(180deg, #6de2ff, #2b9fd3);
  border-color:rgba(255,255,255,.55);
  box-shadow:0 0 18px rgba(99,211,255,.36), inset 0 0 14px rgba(255,255,255,.45);
}
.gg-bet-btn:disabled { opacity:.55; cursor:not-allowed; }
.gg-wheel-arena {
  width:min(100%, 600px);
  aspect-ratio:1/1.05;
}
.gg-wheel-frame {
  z-index:1;
}
.gg-wheel-rotor {
  position:absolute;
  left:50%;
  top:53.2%;
  width:71.8%;
  aspect-ratio:543/623;
  transform:translate(-50%, -50%);
  transform-origin:center center;
  z-index:2;
}
.gg-wheel-spinner-img {
  inset:0;
  z-index:2;
}
.gg-wheel-score-ring-live {
  position:absolute;
  inset:8%;
  z-index:3;
  pointer-events:none;
}
.gg-wheel-score-tag {
  min-width:54px;
  padding:5px 8px;
  font-size:14px;
  background:rgba(7,10,18,.82);
  box-shadow:0 0 12px rgba(0,0,0,.45), inset 0 0 10px rgba(54,160,255,.08);
}
.gg-wheel-score-tag.wide { min-width:64px; font-size:12px; }
.gg-wheel-pointer {
  position:absolute;
  left:50%;
  top:-2.5%;
  width:92px;
  transform:translateX(-50%);
  z-index:5;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.55));
}
.gg-wheel-caption {
  max-width:780px;
  padding:0 12px;
}
.gg-wheel-helper {
  color:#9fd2e4;
  font-size:14px;
  text-align:center;
  max-width:780px;
  line-height:1.4;
}
.gg-wheel-result-card {
  position:absolute;
  left:50%;
  bottom:4%;
  transform:translateX(-50%);
  min-width:230px;
  padding:12px 16px;
  border-radius:16px;
  border:1px solid rgba(118,214,255,.3);
  background:rgba(2,8,16,.86);
  text-align:center;
  z-index:6;
  box-shadow:0 10px 24px rgba(0,0,0,.38);
}
.gg-wheel-result-card strong {
  display:block;
  margin-bottom:4px;
  color:#f6ddb0;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.gg-wheel-result-card span {
  display:block;
  color:#e7f5ff;
  font-size:13px;
}
.gg-wheel-result-card.positive { box-shadow:0 10px 24px rgba(0,0,0,.38), 0 0 22px rgba(99,217,255,.18); }
.gg-wheel-result-card.negative { box-shadow:0 10px 24px rgba(0,0,0,.38), 0 0 22px rgba(255,110,110,.18); }
.gg-wheel-actions { flex-wrap:wrap; }
.gg-wheel-actions .gg-image-btn { min-width: 180px; }
@media (max-width: 720px) {
  .gg-wheel-arena { width:min(100%, 430px); }
  .gg-wheel-rotor { width:73%; top:53.4%; }
  .gg-wheel-pointer { width:74px; top:0; }
  .gg-wheel-score-tag { min-width:42px; font-size:11px; padding:3px 5px; }
  .gg-wheel-score-tag.wide { min-width:50px; font-size:10px; }
  .gg-wheel-result-card { min-width:190px; bottom:7%; }
}

/* v0.4.0 — Copy Cat Fortune slot machine */
.gg-slot-stage {
  overflow:hidden;
}
.gg-slot-vignette {
  background:radial-gradient(circle at 50% 24%, rgba(36,139,255,.12), rgba(0,0,0,.52) 58%, rgba(0,0,0,.82));
}
.gg-slot-screen {
  position:relative;
  z-index:2;
  padding:18px;
  color:#eefaff;
}
.gg-slot-topbar {
  display:grid;
  grid-template-columns:minmax(150px,220px) 1fr minmax(150px,220px);
  gap:14px;
  align-items:stretch;
  margin-bottom:14px;
}
.gg-slot-topbar > div,
.gg-slot-feature,
.gg-jackpot-panel,
.gg-slot-controls,
.gg-slot-foot,
.gg-slot-status {
  border:1px solid rgba(123,218,255,.28);
  background:linear-gradient(180deg, rgba(4,16,28,.86), rgba(2,9,18,.82));
  border-radius:14px;
  box-shadow:inset 0 0 20px rgba(65,186,255,.08), 0 12px 32px rgba(0,0,0,.28);
}
.gg-slot-title {
  text-align:center;
  padding:12px 18px;
}
.gg-slot-title h2 {
  margin:0;
  font-size:clamp(28px, 4vw, 56px);
  color:#ffd675;
  text-transform:uppercase;
  letter-spacing:.08em;
  text-shadow:0 3px 0 #251406, 0 0 18px rgba(255,204,74,.38), 0 0 32px rgba(36,185,255,.24);
}
.gg-slot-title p {
  margin:5px 0 0;
  color:#d6f7ff;
  font-size:15px;
}
.gg-slot-level,
.gg-slot-bonus {
  padding:12px;
}
.gg-slot-level strong,
.gg-slot-bonus strong {
  display:block;
  color:#fff5bf;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:14px;
}
.gg-slot-level span,
.gg-slot-bonus span {
  display:block;
  color:#80e8ff;
  margin-top:5px;
  font-weight:700;
}
.gg-slot-level div {
  height:9px;
  margin-top:8px;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  overflow:hidden;
}
.gg-slot-level div i {
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #32d5ff, #8cff57, #ffd95b);
  box-shadow:0 0 12px rgba(127,255,140,.5);
}
.gg-slot-main {
  display:grid;
  grid-template-columns:minmax(160px,220px) 1fr minmax(170px,230px);
  gap:14px;
  align-items:stretch;
}
.gg-slot-feature {
  padding:14px;
  text-align:center;
}
.gg-slot-feature h3,
.gg-jackpot-panel h3 {
  margin:0 0 10px;
  color:#ffe081;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:17px;
}
.gg-slot-feature img {
  max-width:145px;
  width:80%;
  filter:drop-shadow(0 0 20px rgba(0,190,255,.35));
}
.gg-slot-feature p {
  margin:8px 0;
  color:#fff;
  font-weight:700;
}
.gg-slot-feature small {
  color:#b7eaff;
  line-height:1.45;
}
.gg-jackpot-panel {
  padding:12px;
}
.gg-jackpot-panel h3 {
  font-size:24px;
  color:#ffd059;
  text-shadow:0 0 15px rgba(255,210,80,.4);
}
.gg-jackpot-panel div {
  margin:8px 0;
  padding:9px 10px;
  border-radius:10px;
  background:rgba(0,0,0,.32);
  border:1px solid rgba(255,255,255,.1);
}
.gg-jackpot-panel span {
  display:block;
  color:#9be8ff;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}
.gg-jackpot-panel strong {
  display:block;
  color:#fff2be;
  font-size:25px;
  letter-spacing:.04em;
}
.gg-slot-reels {
  display:grid;
  grid-template-columns:repeat(5, minmax(82px, 1fr));
  gap:10px;
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(245,203,96,.28);
  background:linear-gradient(180deg, rgba(16,14,25,.92), rgba(3,9,20,.95));
  box-shadow:inset 0 0 35px rgba(36,164,255,.12), 0 18px 45px rgba(0,0,0,.45);
}
.gg-slot-reel {
  display:grid;
  grid-template-rows:repeat(3, minmax(96px, 1fr));
  gap:9px;
}
.gg-slot-cell {
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
  min-height:100px;
  border-radius:14px;
  border:1px solid rgba(190,112,255,.38);
  background:radial-gradient(circle at 50% 40%, rgba(45,255,132,.16), rgba(45,20,80,.2) 52%, rgba(0,0,0,.72));
  box-shadow:inset 0 0 18px rgba(180,82,255,.22), 0 0 10px rgba(180,82,255,.12);
}
.gg-slot-cell img {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.04);
}
.gg-slot-cell.special img {
  object-fit:contain;
  padding:6px;
  transform:scale(1);
}
.gg-slot-cell span {
  position:absolute;
  left:50%;
  bottom:4px;
  transform:translateX(-50%);
  padding:2px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.62);
  color:#fff6ce;
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-shadow:0 1px 4px #000;
  white-space:nowrap;
}
.gg-slot-cell.hit {
  border-color:#ffdf72;
  box-shadow:0 0 22px rgba(255,222,92,.5), inset 0 0 22px rgba(255,225,80,.2);
  animation:ggSlotHit .85s ease-in-out infinite alternate;
}
@keyframes ggSlotHit {
  from { transform:scale(1); }
  to { transform:scale(1.025); }
}
.gg-slot-reels.spinning .gg-slot-cell img {
  animation:ggReelShake .16s linear infinite;
  filter:blur(1px) brightness(1.18);
}
@keyframes ggReelShake {
  0% { transform:translateY(-3px) scale(1.08); }
  50% { transform:translateY(3px) scale(1.08); }
  100% { transform:translateY(-3px) scale(1.08); }
}
.gg-slot-status {
  margin:14px auto 10px;
  padding:10px 14px;
  max-width:900px;
  color:#fff3c3;
  text-align:center;
  font-weight:700;
  line-height:1.35;
}
.gg-slot-controls {
  display:grid;
  grid-template-columns:minmax(130px,180px) 1fr minmax(110px,150px) minmax(130px,180px);
  gap:12px;
  align-items:center;
  padding:10px 12px;
}
.gg-slot-score span,
.gg-slot-bets span {
  display:block;
  color:#bdefff;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}
.gg-slot-score strong {
  display:block;
  color:#fff0bc;
  font-size:28px;
}
.gg-slot-bets {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.gg-slot-bets span {
  width:100%;
  text-align:center;
}
.gg-slot-spin {
  width:112px;
  height:112px;
  border-radius:50%;
  border:3px solid rgba(255,230,122,.65);
  background:radial-gradient(circle at 42% 35%, #91ff65, #38b80b 55%, #176500 100%);
  color:white;
  font-weight:900;
  letter-spacing:.08em;
  text-shadow:0 2px 8px #063000;
  box-shadow:0 0 24px rgba(100,255,60,.42), inset 0 0 18px rgba(255,255,255,.22);
  cursor:pointer;
}
.gg-slot-spin:disabled {
  opacity:.58;
  cursor:not-allowed;
}
.gg-slot-spin.spinning {
  animation:ggSpinButton .55s linear infinite;
}
@keyframes ggSpinButton { to { transform:rotate(360deg); } }
.gg-slot-foot {
  margin-top:10px;
  padding:9px 12px;
  display:flex;
  justify-content:center;
  gap:26px;
  flex-wrap:wrap;
  color:#bceeff;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}
.gg-slot-popup {
  position:absolute;
  inset:0;
  z-index:20;
  display:grid;
  place-items:center;
  background:rgba(0,0,0,.58);
  padding:18px;
}
.gg-slot-popup-card {
  width:min(520px, 94%);
  padding:24px;
  border-radius:22px;
  border:1px solid rgba(146,224,255,.45);
  background:linear-gradient(180deg, rgba(7,23,44,.96), rgba(12,6,28,.96));
  text-align:center;
  box-shadow:0 25px 80px rgba(0,0,0,.55), 0 0 40px rgba(75,205,255,.18);
}
.gg-slot-popup-card h2 {
  margin:0 0 8px;
  color:#ffdd78;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.gg-chest-icon {
  font-size:74px;
  filter:drop-shadow(0 0 20px rgba(255,220,60,.55));
}
.gg-scratch-grid {
  margin:18px auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  max-width:330px;
}
.gg-scratch-grid span {
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(135deg, #bfc7ce, #5e6670);
  color:#15202a;
  font-size:36px;
  font-weight:900;
  box-shadow:inset 0 0 18px rgba(255,255,255,.3);
}
.gg-scratch-grid.revealed span {
  background:radial-gradient(circle, rgba(70,255,180,.22), rgba(56,22,90,.7));
  color:#fff;
  text-shadow:0 0 10px rgba(120,255,220,.5);
}
.gg-scratch-reward {
  display:block;
  margin:12px 0;
  color:#8cff80;
  font-size:24px;
  text-transform:uppercase;
}
.gg-slot-finish {
  margin-top:14px;
}
@media (max-width: 980px) {
  .gg-slot-topbar,
  .gg-slot-main,
  .gg-slot-controls {
    grid-template-columns:1fr;
  }
  .gg-slot-feature,
  .gg-jackpot-panel {
    max-width:none;
  }
  .gg-jackpot-panel {
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:8px;
  }
  .gg-jackpot-panel h3 {
    grid-column:1/-1;
  }
}
@media (max-width: 720px) {
  .gg-slot-screen { padding:10px; }
  .gg-slot-reels { gap:6px; padding:8px; }
  .gg-slot-reel { gap:6px; grid-template-rows:repeat(3, minmax(70px, 1fr)); }
  .gg-slot-cell { min-height:72px; border-radius:10px; }
  .gg-slot-cell span { font-size:9px; padding:1px 5px; }
  .gg-jackpot-panel { grid-template-columns:repeat(2, 1fr); }
  .gg-jackpot-panel strong { font-size:20px; }
  .gg-slot-spin { width:96px; height:96px; margin:auto; }
  .gg-slot-foot { gap:10px; font-size:10px; }
}

/* v0.4.1 — Copy Cat Fortune template alignment, paylines, reel-roll animation */
.gg-slot-template-shell {
  padding: 10px 12px 18px;
}
.gg-slot-vignette {
  background: radial-gradient(circle at 50% 18%, rgba(76,171,255,.24), rgba(15,26,62,.26) 38%, rgba(0,0,0,.68) 76%, rgba(0,0,0,.82));
}
.gg-slot-topbar-template {
  grid-template-columns: minmax(250px, 370px) 1fr minmax(270px, 380px);
  gap: 14px;
}
.gg-slot-top-left,
.gg-slot-top-right {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.gg-slot-level-badge,
.gg-slot-mini-chest,
.gg-slot-goal {
  border: 1px solid rgba(255,214,104,.4);
  background: linear-gradient(180deg, rgba(17,31,73,.9), rgba(6,12,28,.9));
  border-radius: 16px;
  box-shadow: inset 0 0 18px rgba(68,181,255,.14), 0 10px 30px rgba(0,0,0,.28);
}
.gg-slot-level-badge {
  width: 78px;
  min-width: 78px;
  display: grid;
  place-items: center;
}
.gg-slot-level-badge strong {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 3px solid rgba(255,232,138,.72);
  color: #fff3bf;
  font-size: 28px;
  text-shadow: 0 2px 8px rgba(0,0,0,.55);
  background: radial-gradient(circle at 50% 35%, #306ef1, #123584 65%, #0c1838);
}
.gg-slot-mini-chest {
  min-width: 98px;
  padding: 8px 10px;
  display: grid;
  place-items: center;
  text-align: center;
}
.gg-slot-mini-chest img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  filter: drop-shadow(0 0 10px rgba(255,212,92,.35));
}
.gg-slot-mini-chest span {
  display: block;
  color: #ffe08b;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  margin-top: 4px;
}
.gg-slot-title {
  min-height: 92px;
  justify-content: center;
}
.gg-slot-title h2 {
  letter-spacing: .04em;
}
.gg-slot-goal {
  flex: 1 1 auto;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.gg-slot-goal img {
  width: 60px;
  height: 60px;
  object-fit: contain;
  filter: drop-shadow(0 0 16px rgba(72,214,255,.3));
}
.gg-slot-goal strong,
.gg-slot-goal span {
  display: block;
}
.gg-slot-goal strong {
  color: #fff4c7;
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: .08em;
}
.gg-slot-goal span {
  color: #98ecff;
  font-size: 13px;
}
.gg-slot-main-template {
  grid-template-columns: minmax(190px, 240px) 1fr minmax(190px, 220px);
  gap: 16px;
  align-items: stretch;
}
.gg-slot-feature-template {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 10px;
  padding: 0 0 16px;
  overflow: hidden;
}
.gg-slot-feature-banner {
  padding: 10px 12px;
  color: #ffde78;
  font-size: 16px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
  background: linear-gradient(180deg, rgba(21,48,111,.95), rgba(11,20,58,.95));
  border-bottom: 1px solid rgba(255,214,104,.35);
}
.gg-slot-feature-template img {
  width: 78%;
  max-width: 150px;
  margin: 4px auto 0;
}
.gg-slot-feature-copy {
  padding: 0 14px;
}
.gg-slot-feature-copy p {
  font-size: 15px;
  line-height: 1.35;
}
.gg-slot-machine-wrap {
  display: flex;
  align-items: stretch;
}
.gg-slot-machine-frame {
  position: relative;
  width: 100%;
  padding: 18px 16px;
  border-radius: 20px;
  border: 1px solid rgba(247,204,94,.52);
  background: linear-gradient(180deg, rgba(14,22,56,.84), rgba(8,16,34,.92));
  box-shadow: inset 0 0 32px rgba(65,190,255,.1), 0 18px 42px rgba(0,0,0,.36);
}
.gg-slot-reels {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, minmax(92px, 1fr));
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.gg-slot-reel {
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(255,206,86,.34);
  background: linear-gradient(180deg, rgba(7,18,55,.92), rgba(6,12,32,.96));
  box-shadow: inset 0 0 22px rgba(0,0,0,.35), inset 0 0 24px rgba(23,109,255,.12);
}
.gg-slot-reel-track {
  display: grid;
  grid-template-rows: repeat(3, minmax(108px, 1fr));
  gap: 10px;
  padding: 8px;
}
.gg-slot-reels.spinning .gg-slot-reel-track {
  animation: ggSlotReelRoll .48s linear infinite;
}
.gg-slot-reels.spinning .gg-slot-reel[data-col="1"] .gg-slot-reel-track { animation-duration: .42s; }
.gg-slot-reels.spinning .gg-slot-reel[data-col="2"] .gg-slot-reel-track { animation-duration: .38s; }
.gg-slot-reels.spinning .gg-slot-reel[data-col="3"] .gg-slot-reel-track { animation-duration: .44s; }
.gg-slot-reels.spinning .gg-slot-reel[data-col="4"] .gg-slot-reel-track { animation-duration: .52s; }
@keyframes ggSlotReelRoll {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
.gg-slot-cell {
  min-height: 112px;
  border-radius: 12px;
  border: 1px solid rgba(190,112,255,.28);
  background: radial-gradient(circle at 50% 38%, rgba(37,236,255,.1), rgba(48,28,122,.26) 54%, rgba(0,0,0,.78));
}
.gg-slot-cell img {
  width: 86%;
  height: 86%;
  object-fit: contain;
  object-position: center center;
  padding: 6px;
  transform: none;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.28));
}
.gg-slot-cell.special img {
  width: 88%;
  height: 88%;
  padding: 4px;
}
.gg-slot-cell span {
  bottom: 6px;
}
.gg-slot-winlines {
  position: absolute;
  inset: 18px 16px;
  z-index: 4;
  pointer-events: none;
}
.gg-slot-winlines svg {
  width: 100%;
  height: 100%;
}
.gg-payline-glow,
.gg-payline-core {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.gg-payline-glow {
  stroke: var(--line-color);
  stroke-width: 14;
  opacity: .28;
  filter: drop-shadow(0 0 10px var(--line-color));
}
.gg-payline-core {
  stroke: var(--line-color);
  stroke-width: 5;
  stroke-dasharray: 12 8;
  animation: ggPaylineFlow 1.1s linear infinite;
}
.gg-payline text {
  fill: #fff6c9;
  font-size: 18px;
  font-weight: 900;
  text-anchor: middle;
  paint-order: stroke;
  stroke: rgba(0,0,0,.62);
  stroke-width: 3px;
  letter-spacing: .03em;
}
@keyframes ggPaylineFlow {
  to { stroke-dashoffset: -20; }
}
.gg-slot-cell.hit {
  border-color: rgba(255,226,101,.8);
  box-shadow: 0 0 18px rgba(255,226,101,.38), inset 0 0 18px rgba(255,226,101,.18);
}
.gg-jackpot-panel-template {
  padding-top: 10px;
}
.gg-jackpot-medal {
  width: 66px;
  height: 66px;
  margin: 0 auto 6px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 35%, #ffe67b, #d3911a 72%, #8b5110);
  color: #593100;
  font-size: 34px;
  box-shadow: 0 0 20px rgba(255,198,69,.36);
}
.gg-jackpot-panel-template > div {
  margin: 10px 0;
}
.gg-jackpot-panel-template > div.grand { box-shadow: inset 0 0 18px rgba(255,130,42,.18); }
.gg-jackpot-panel-template > div.major { box-shadow: inset 0 0 18px rgba(218,90,255,.18); }
.gg-jackpot-panel-template > div.minor { box-shadow: inset 0 0 18px rgba(80,190,255,.18); }
.gg-jackpot-panel-template > div.mini { box-shadow: inset 0 0 18px rgba(92,255,116,.18); }
.gg-slot-controls-template {
  grid-template-columns: 56px minmax(130px,170px) 1fr minmax(110px,130px) minmax(130px,170px) 56px;
}
.gg-slot-icon-btn {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 1px solid rgba(255,214,104,.45);
  background: linear-gradient(180deg, rgba(17,31,73,.95), rgba(6,12,28,.95));
  color: #ffe084;
  font-size: 26px;
  box-shadow: inset 0 0 18px rgba(68,181,255,.12), 0 8px 22px rgba(0,0,0,.24);
}
.gg-slot-foot-template {
  justify-content: space-between;
  padding-left: 18px;
  padding-right: 18px;
}
@media (max-width: 1180px) {
  .gg-slot-topbar-template,
  .gg-slot-main-template,
  .gg-slot-controls-template {
    grid-template-columns: 1fr;
  }
  .gg-slot-top-left,
  .gg-slot-top-right {
    justify-content: center;
  }
  .gg-slot-top-right {
    flex-wrap: wrap;
  }
  .gg-slot-goal {
    max-width: 340px;
  }
  .gg-slot-controls-template {
    justify-items: center;
  }
  .gg-slot-icon-btn {
    display: none;
  }
  .gg-slot-foot-template {
    justify-content: center;
  }
}
@media (max-width: 720px) {
  .gg-slot-template-shell { padding: 8px; }
  .gg-slot-top-left,
  .gg-slot-top-right {
    flex-wrap: wrap;
  }
  .gg-slot-level-badge {
    width: 68px;
    min-width: 68px;
  }
  .gg-slot-level-badge strong {
    width: 48px;
    height: 48px;
    font-size: 24px;
  }
  .gg-slot-machine-frame {
    padding: 12px 10px;
  }
  .gg-slot-reels {
    gap: 6px;
  }
  .gg-slot-reel-track {
    gap: 6px;
    padding: 5px;
    grid-template-rows: repeat(3, minmax(72px, 1fr));
  }
  .gg-slot-cell {
    min-height: 74px;
  }
  .gg-slot-winlines {
    inset: 12px 10px;
  }
  .gg-payline text {
    font-size: 12px;
    stroke-width: 2px;
  }
}


/* v0.4.2 — desktop full-screen Copy Cat Fortune template + refreshed login/logo */
.gg-app-shell.gg-shell-slot3 {
  padding: 14px;
}
.gg-app-shell.gg-shell-slot3 .gg-layout {
  grid-template-columns: 220px minmax(980px, 1fr) 290px;
}
.gg-app-shell.gg-shell-slot3 .gg-stage,
.gg-app-shell.gg-shell-slot3 .gg-card-stage {
  min-height: 860px;
}
.gg-shell-enter .gg-start-card {
  width: min(760px, 96%);
}
.gg-shell-enter .gg-start-logo {
  max-width: min(620px, 92%);
  margin-bottom: 2px;
}

.gg-slot-template-mode {
  padding: 8px 10px 12px;
}
.gg-slot-template-canvas {
  position: relative;
  width: min(100%, 1240px);
  aspect-ratio: 1672 / 940;
  margin: 0 auto;
}
.gg-slot-template-art {
  position: absolute;
  inset: 0;
  border-radius: 18px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.gg-slot-template-art.desktop {
  background-image: url('../img/copycat_template_desktop.png');
}
.gg-slot-template-art.mobile {
  display: none;
  background-image: url('../img/copycat_template_mobile.png');
}
.gg-slot-overlay {
  position: absolute;
  z-index: 2;
}
.gg-slot-level-group {
  left: 1.0%;
  top: 3.4%;
  width: 24.5%;
  display: grid;
  grid-template-columns: 62px 1fr 88px;
  gap: 8px;
  align-items: stretch;
}
.gg-slot-level-box,
.gg-slot-bonus-box,
.gg-slot-goal,
.gg-slot-feature-copy-box,
.gg-slot-jackpots-template > div {
  background: rgba(0, 6, 18, 0);
  border: 0;
  box-shadow: none;
}
.gg-slot-level-badge,
.gg-slot-mini-chest,
.gg-slot-level-box,
.gg-slot-bonus-box,
.gg-slot-goal {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.gg-slot-level-badge {
  width: 62px;
  min-width: 62px;
}
.gg-slot-level-badge strong {
  width: 52px;
  height: 52px;
  font-size: 24px;
}
.gg-slot-level-box {
  padding: 4px 0;
}
.gg-slot-level-box strong,
.gg-slot-bonus-box strong {
  font-size: 12px;
  letter-spacing: .06em;
}
.gg-slot-level-box span,
.gg-slot-bonus-box span {
  font-size: 11px;
}
.gg-slot-mini-chest {
  min-width: 0;
  padding: 3px 0 0;
}
.gg-slot-mini-chest img {
  width: 44px;
  height: 44px;
}
.gg-slot-mini-chest span {
  font-size: 9px;
  line-height: 1.15;
}
.gg-slot-top-goal {
  right: 3.5%;
  top: 3.0%;
  width: 24.8%;
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: 8px;
  align-items: stretch;
}
.gg-slot-bonus-box,
.gg-slot-goal {
  padding: 6px 6px;
}
.gg-slot-bonus-box {
  text-align: center;
}
.gg-slot-goal {
  gap: 6px;
  grid-template-columns: 44px 1fr;
}
.gg-slot-goal img {
  width: 42px;
  height: 42px;
}
.gg-slot-goal strong { font-size: 11px; line-height: 1.05; }
.gg-slot-goal span { font-size: 10px; line-height: 1.1; }
.gg-slot-feature-copy-box {
  left: 2.2%;
  top: 61.6%;
  width: 14.2%;
  min-height: 18%;
  text-align: center;
  padding: 0 6px;
  overflow: hidden;
}
.gg-slot-feature-copy-box h3 {
  margin: 0 0 4px;
  color: #ffdd7d;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .06em;
}
.gg-slot-feature-copy-box p {
  margin: 0 0 4px;
  color: #fff6d5;
  font-size: 10px;
  line-height: 1.15;
  font-weight: 700;
}
.gg-slot-feature-copy-box small {
  display: block;
  color: #d0ecff;
  font-size: 9px;
  line-height: 1.12;
}
.gg-slot-machine-wrap-template {
  left: 21.1%;
  top: 18.3%;
  width: 55.2%;
  height: 60.6%;
}
.gg-slot-machine-template-frame {
  width: 100%;
  height: 100%;
  padding: 18px 12px 14px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.gg-slot-machine-template-frame .gg-slot-reels {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.gg-slot-machine-template-frame .gg-slot-reel {
  height: 100%;
  display: flex;
  align-items: stretch;
}
.gg-slot-machine-template-frame .gg-slot-reel-track {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  gap: 8px;
  padding: 6px;
  box-sizing: border-box;
}
.gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track {
  height: 200%;
}
.gg-slot-machine-template-frame .gg-slot-cell {
  min-height: 0;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gg-slot-machine-template-frame .gg-slot-cell img {
  width: 94%;
  height: 94%;
}
.gg-slot-machine-template-frame .gg-slot-cell span {
  display: none;
}
.gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 18px 12px 14px;
}
.gg-slot-jackpots-template {
  right: 3.35%;
  top: 25.7%;
  width: 14.3%;
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  gap: 2.6%;
  height: 58.8%;
}
.gg-slot-jackpots-template > div {
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 0 8px;
  text-align: center;
}
.gg-slot-jackpots-template span {
  display: block;
  color: #fff2bf;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: 11px;
  text-shadow: 0 2px 6px rgba(0,0,0,.75);
}
.gg-slot-jackpots-template strong {
  display: block;
  color: #fff7d9;
  font-size: clamp(18px, 1.55vw, 28px);
  text-shadow: 0 2px 10px rgba(0,0,0,.78);
}
.gg-slot-status {
  max-width: 1120px;
  margin-top: 8px;
  padding: 8px 12px;
  font-size: 14px;
  line-height: 1.2;
}
.gg-slot-controls-template {
  max-width: 1080px;
  margin: 0 auto;
  gap: 10px;
}
.gg-slot-foot-template {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  font-size: 12px;
  gap: 10px;
}

@media (max-width: 1680px) {
  .gg-app-shell.gg-shell-slot3 .gg-layout {
    grid-template-columns: 200px minmax(860px, 1fr) 270px;
  }
}
@media (max-width: 1420px) {
  .gg-app-shell.gg-shell-slot3 .gg-layout {
    grid-template-columns: 1fr;
  }
  .gg-app-shell.gg-shell-slot3 .gg-stage,
  .gg-app-shell.gg-shell-slot3 .gg-card-stage {
    min-height: 860px;
  }
  .gg-slot-template-canvas {
    width: min(100%, 1120px);
  }
}
@media (max-width: 980px) {
  .gg-shell-enter .gg-start-logo {
    max-width: 92%;
  }
  .gg-slot-template-canvas {
    width: 128%;
    max-width: none;
    margin-left: -14%;
    aspect-ratio: 1312 / 940;
  }
  .gg-slot-template-art.desktop { display: none; }
  .gg-slot-template-art.mobile {
    display: block;
    background-size: cover;
  }
  .gg-slot-level-group {
    width: 33%;
    grid-template-columns: 54px 1fr 76px;
    gap: 6px;
  }
  .gg-slot-level-badge,
  .gg-slot-level-badge strong { width: 48px; height: 48px; min-width: 48px; font-size: 22px; }
  .gg-slot-top-goal {
    width: 35%;
    gap: 6px;
  }
  .gg-slot-goal img { width: 44px; height: 44px; }
  .gg-slot-feature-copy-box {
    left: 1.6%;
    width: 18.8%;
    top: 60.6%;
  }
  .gg-slot-feature-copy-box h3 { font-size: 13px; }
  .gg-slot-feature-copy-box p { font-size: 10px; }
  .gg-slot-feature-copy-box small { font-size: 8.8px; line-height: 1.2; }
  .gg-slot-machine-wrap-template {
    left: 19.1%;
    width: 60.5%;
    top: 18.2%;
    height: 66.5%;
  }
  .gg-slot-machine-template-frame .gg-slot-cell img { width: 88%; height: 88%; }
  .gg-slot-machine-template-frame {
    padding: 16px 10px 12px;
  }
  .gg-slot-machine-template-frame .gg-slot-reels {
    gap: 6px;
  }
  .gg-slot-machine-template-frame .gg-slot-reel-track {
    gap: 6px;
    padding: 5px;
  }
  .gg-slot-machine-template-frame .gg-slot-cell span { font-size: 8px; }
  .gg-slot-machine-template-frame .gg-slot-winlines { inset: 16px 10px 12px; }
  .gg-slot-jackpots-template {
    right: 1.7%;
    width: 17.9%;
    top: 25.8%;
    height: 54.6%;
  }
  .gg-slot-jackpots-template span { font-size: 10px; }
  .gg-slot-jackpots-template strong { font-size: 16px; }
}
@media (max-width: 720px) {
  .gg-slot-template-mode { padding: 8px 6px 14px; }
  .gg-slot-status { font-size: 13px; }
  .gg-slot-controls-template { gap: 8px; }
}


.gg-slot-machine-template-frame .gg-slot-reel { position: relative; }
.gg-slot-machine-template-frame .gg-slot-reel::before,
.gg-slot-machine-template-frame .gg-slot-reel::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 18px;
  z-index: 2;
  pointer-events: none;
}
.gg-slot-machine-template-frame .gg-slot-reel::before {
  top: 0;
  background: linear-gradient(180deg, rgba(5,10,28,.92), rgba(5,10,28,0));
}
.gg-slot-machine-template-frame .gg-slot-reel::after {
  bottom: 0;
  background: linear-gradient(0deg, rgba(5,10,28,.92), rgba(5,10,28,0));
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel-track {
  animation: ggSlotReelRoll .34s linear infinite;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-cell img {
  filter: blur(.45px) brightness(1.08) drop-shadow(0 6px 10px rgba(0,0,0,.28));
}
@keyframes ggSlotReelRoll {
  from { transform: translateY(0); }
  to { transform: translateY(-66.8%); }
}


/* v0.4.4 — slot template fit + reel visibility fix */
.gg-app-shell.gg-shell-slot3 .gg-layout {
  grid-template-columns: 190px minmax(0,1fr) 250px;
}
.gg-slot-template-canvas {
  width: min(100%, 980px);
}
.gg-slot-level-group {
  width: 22%;
  grid-template-columns: 54px 1fr 72px;
  gap: 6px;
}
.gg-slot-level-badge,
.gg-slot-level-badge strong {
  width: 48px;
  height: 48px;
  min-width: 48px;
  font-size: 22px;
}
.gg-slot-level-box strong,
.gg-slot-bonus-box strong {
  font-size: 11px;
}
.gg-slot-level-box span,
.gg-slot-bonus-box span {
  font-size: 10px;
}
.gg-slot-mini-chest img {
  width: 38px;
  height: 38px;
}
.gg-slot-mini-chest span {
  font-size: 8px;
}
.gg-slot-top-goal {
  width: 20.5%;
  gap: 6px;
}
.gg-slot-goal {
  grid-template-columns: 36px 1fr;
}
.gg-slot-goal img {
  width: 34px;
  height: 34px;
}
.gg-slot-goal strong {
  font-size: 10px;
}
.gg-slot-goal span {
  font-size: 9px;
}
.gg-slot-feature-copy-box {
  left: 2.2%;
  top: 61.2%;
  width: 12.8%;
  min-height: 17%;
}
.gg-slot-feature-copy-box h3 {
  font-size: 11px;
  margin-bottom: 3px;
}
.gg-slot-feature-copy-box p {
  font-size: 9px;
  margin-bottom: 3px;
}
.gg-slot-feature-copy-box small {
  font-size: 7.8px;
  line-height: 1.08;
}
.gg-slot-machine-wrap-template {
  left: 22.6%;
  top: 18.9%;
  width: 52.4%;
  height: 55.6%;
}
.gg-slot-machine-template-frame {
  padding: 12px 10px 10px;
}
.gg-slot-machine-template-frame .gg-slot-reels {
  gap: 6px;
}
.gg-slot-machine-template-frame .gg-slot-reel {
  display: block;
}
.gg-slot-machine-template-frame .gg-slot-reel-track {
  display: grid;
  grid-template-rows: repeat(3, minmax(0,1fr));
  grid-auto-rows: minmax(0,1fr);
  align-content: stretch;
  gap: 6px;
  padding: 6px;
  height: 100%;
}
.gg-slot-machine-template-frame .gg-slot-cell {
  display: grid;
  place-items: center;
  min-height: 0;
}
.gg-slot-machine-template-frame .gg-slot-cell img {
  width: 84%;
  height: 84%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
}
.gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 12px 10px 10px;
}
.gg-slot-jackpots-template {
  right: 2.9%;
  top: 25.2%;
  width: 13%;
  height: 55.7%;
}
.gg-slot-jackpots-template span {
  font-size: 10px;
}
.gg-slot-jackpots-template strong {
  font-size: clamp(16px, 1.35vw, 24px);
}
.gg-slot-status,
.gg-slot-controls-template,
.gg-slot-foot-template {
  max-width: 980px;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel-track {
  grid-template-rows: repeat(6, minmax(0,1fr));
  grid-auto-rows: minmax(0,1fr);
  animation: ggSlotReelRollTemplate .45s linear infinite;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="1"] .gg-slot-reel-track { animation-duration: .41s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="2"] .gg-slot-reel-track { animation-duration: .37s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="3"] .gg-slot-reel-track { animation-duration: .43s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="4"] .gg-slot-reel-track { animation-duration: .48s; }
@keyframes ggSlotReelRollTemplate {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
@media (max-width: 1420px) {
  .gg-slot-template-canvas { width: min(100%, 900px); }
  .gg-slot-feature-copy-box { width: 12.5%; }
  .gg-slot-jackpots-template { width: 13.4%; }
}


/* v0.4.5 — restore larger desktop template while keeping clearer reel spin */
.gg-app-shell.gg-shell-slot3 .gg-layout {
  grid-template-columns: 220px minmax(980px, 1fr) 290px;
}
.gg-slot-template-canvas {
  width: min(100%, 1240px);
}
.gg-slot-level-group {
  width: 24.5%;
  grid-template-columns: 62px 1fr 88px;
  gap: 8px;
}
.gg-slot-level-badge,
.gg-slot-level-badge strong {
  width: 52px;
  height: 52px;
  min-width: 52px;
  font-size: 24px;
}
.gg-slot-level-box strong,
.gg-slot-bonus-box strong {
  font-size: 12px;
}
.gg-slot-level-box span,
.gg-slot-bonus-box span {
  font-size: 11px;
}
.gg-slot-mini-chest img {
  width: 44px;
  height: 44px;
}
.gg-slot-mini-chest span {
  font-size: 9px;
}
.gg-slot-top-goal {
  width: 24.8%;
  gap: 8px;
}
.gg-slot-goal {
  grid-template-columns: 44px 1fr;
}
.gg-slot-goal img {
  width: 42px;
  height: 42px;
}
.gg-slot-goal strong {
  font-size: 11px;
}
.gg-slot-goal span {
  font-size: 10px;
}
.gg-slot-feature-copy-box {
  left: 2.2%;
  top: 61.6%;
  width: 14.2%;
  min-height: 18%;
}
.gg-slot-feature-copy-box h3 {
  font-size: 13px;
  margin-bottom: 4px;
}
.gg-slot-feature-copy-box p {
  font-size: 10px;
  margin-bottom: 4px;
}
.gg-slot-feature-copy-box small {
  font-size: 9px;
  line-height: 1.12;
}
.gg-slot-machine-wrap-template {
  left: 21.1%;
  top: 18.3%;
  width: 55.2%;
  height: 60.6%;
}
.gg-slot-machine-template-frame {
  padding: 18px 12px 14px;
}
.gg-slot-machine-template-frame .gg-slot-reels {
  gap: 8px;
}
.gg-slot-machine-template-frame .gg-slot-reel {
  display: block;
}
.gg-slot-machine-template-frame .gg-slot-reel-track {
  display: grid;
  grid-template-rows: repeat(3, minmax(0,1fr));
  grid-auto-rows: minmax(0,1fr);
  align-content: stretch;
  gap: 8px;
  padding: 6px;
  height: 100%;
}
.gg-slot-machine-template-frame .gg-slot-cell {
  display: grid;
  place-items: center;
  min-height: 0;
}
.gg-slot-machine-template-frame .gg-slot-cell img {
  width: 92%;
  height: 92%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
}
.gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 18px 12px 14px;
}
.gg-slot-jackpots-template {
  right: 3.35%;
  top: 25.7%;
  width: 14.3%;
  height: 58.8%;
}
.gg-slot-jackpots-template span {
  font-size: 11px;
}
.gg-slot-jackpots-template strong {
  font-size: clamp(18px, 1.55vw, 28px);
}
.gg-slot-status,
.gg-slot-controls-template,
.gg-slot-foot-template {
  max-width: 1240px;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel-track {
  grid-template-rows: repeat(6, minmax(0,1fr));
  grid-auto-rows: minmax(0,1fr);
  animation: ggSlotReelRollTemplateLarge .45s linear infinite;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="1"] .gg-slot-reel-track { animation-duration: .41s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="2"] .gg-slot-reel-track { animation-duration: .37s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="3"] .gg-slot-reel-track { animation-duration: .43s; }
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel[data-col="4"] .gg-slot-reel-track { animation-duration: .48s; }
@keyframes ggSlotReelRollTemplateLarge {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
@media (max-width: 1680px) {
  .gg-app-shell.gg-shell-slot3 .gg-layout {
    grid-template-columns: 200px minmax(860px, 1fr) 270px;
  }
}
@media (max-width: 1420px) {
  .gg-slot-template-canvas {
    width: min(100%, 1120px);
  }
}


/* v0.4.6 — restore larger desktop fit, clearer template reels, cache-bust updated graphics */
.gg-app-shell.gg-shell-slot3 .gg-layout {
  grid-template-columns: 210px minmax(1000px, 1fr) 280px;
  gap: 12px;
}
.gg-app-shell.gg-shell-slot3 .gg-stage,
.gg-app-shell.gg-shell-slot3 .gg-card-stage {
  min-height: 800px;
}
.gg-slot-template-mode {
  padding: 6px 8px 10px;
}
.gg-slot-template-canvas {
  width: min(100%, 1280px);
}
.gg-slot-level-group {
  left: 1.1%;
  top: 2.6%;
  width: 24.8%;
}
.gg-slot-top-goal {
  right: 3.3%;
  top: 2.4%;
  width: 24.9%;
}
.gg-slot-feature-copy-box {
  left: 2.15%;
  top: 60.2%;
  width: 14.2%;
  min-height: 18.5%;
}
.gg-slot-machine-wrap-template {
  left: 20.95%;
  top: 18.0%;
  width: 55.4%;
  height: 60.1%;
}
.gg-slot-machine-template-frame {
  padding: 14px 10px 12px;
}
.gg-slot-machine-template-frame .gg-slot-reels {
  gap: 10px;
}
.gg-slot-machine-template-frame .gg-slot-reel-track {
  display: grid;
  grid-template-rows: repeat(3, minmax(94px, 1fr));
  grid-auto-rows: minmax(94px, 1fr);
  align-content: stretch;
  gap: 10px;
  padding: 8px;
  height: 100%;
}
.gg-slot-machine-template-frame .gg-slot-cell {
  display: grid;
  place-items: center;
}
.gg-slot-machine-template-frame .gg-slot-cell img {
  width: 88%;
  height: 88%;
}
.gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 14px 10px 12px;
}
.gg-slot-jackpots-template {
  right: 3.32%;
  top: 25.6%;
  width: 14.25%;
  height: 58.9%;
}
.gg-slot-status {
  max-width: 1240px;
  margin-top: 6px;
  padding: 8px 12px;
}
.gg-slot-controls-template,
.gg-slot-foot-template {
  max-width: 1240px;
}
.gg-slot-controls-template {
  margin-top: 6px;
}
.gg-slot-foot-template {
  margin-top: 6px;
}
.gg-slot-template-mode .gg-slot-reels.spinning .gg-slot-reel-track {
  grid-template-rows: repeat(6, minmax(94px, 1fr));
  grid-auto-rows: minmax(94px, 1fr);
  animation: ggSlotReelRollTemplateLargeV46 .45s linear infinite;
}
@keyframes ggSlotReelRollTemplateLargeV46 {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}
@media (max-width: 1680px) {
  .gg-app-shell.gg-shell-slot3 .gg-layout {
    grid-template-columns: 195px minmax(900px, 1fr) 260px;
  }
  .gg-slot-template-canvas {
    width: min(100%, 1220px);
  }
}
@media (max-width: 1420px) {
  .gg-app-shell.gg-shell-slot3 .gg-layout {
    grid-template-columns: 1fr;
  }
  .gg-slot-template-canvas {
    width: min(100%, 1140px);
  }
}


/* v0.4.8 — separate PC/mobile shortcode modes for Copy Cat Fortune */
.gg-shortcode-pc .gg-slot-template-art.desktop,
.gg-shortcode-auto .gg-slot-template-art.desktop {
  display: block !important;
  background-image: url('../img/copycat_template_desktop.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.gg-shortcode-pc .gg-slot-template-art.mobile,
.gg-shortcode-auto .gg-slot-template-art.mobile {
  display: none !important;
}
.gg-shortcode-mobile .gg-slot-template-art.desktop {
  display: none !important;
}
.gg-shortcode-mobile .gg-slot-template-art.mobile {
  display: block !important;
  background-image: url('../img/copycat_template_mobile.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.gg-shortcode-pc .gg-layout.gg-shell-slot3,
.gg-shortcode-auto .gg-layout.gg-shell-slot3 {
  grid-template-columns: 210px minmax(1000px, 1fr) 280px !important;
  gap: 12px !important;
}
.gg-shortcode-pc .gg-slot-template-canvas,
.gg-shortcode-auto .gg-slot-template-canvas {
  width: min(100%, 1280px) !important;
  aspect-ratio: 1672 / 941 !important;
  margin: 0 auto !important;
}
.gg-shortcode-pc .gg-slot-machine-wrap-template,
.gg-shortcode-auto .gg-slot-machine-wrap-template {
  left: 20.93% !important;
  top: 21.79% !important;
  width: 56.22% !important;
  height: 65.89% !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame,
.gg-shortcode-auto .gg-slot-machine-template-frame {
  padding: 16px 14px 14px !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reels,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-reels {
  gap: 14px !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reel-track,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-reel-track {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  gap: 14px !important;
  padding: 10px !important;
  box-sizing: border-box !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track {
  height: 200% !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-cell,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-cell {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-cell img,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-cell img {
  width: 82% !important;
  height: 82% !important;
  object-fit: contain !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-winlines,
.gg-shortcode-auto .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 16px 14px 14px !important;
}
.gg-shortcode-mobile .gg-app-inner {
  max-width: 980px !important;
}
.gg-shortcode-mobile .gg-layout.gg-shell-slot3 {
  grid-template-columns: 1fr !important;
}
.gg-shortcode-mobile .gg-layout.gg-shell-slot3 .gg-sidebar-left,
.gg-shortcode-mobile .gg-layout.gg-shell-slot3 .gg-sidebar-right,
.gg-shortcode-mobile .gg-bottom-journey {
  display: none !important;
}
.gg-shortcode-mobile .gg-stage,
.gg-shortcode-mobile .gg-card-stage {
  min-height: auto !important;
}
.gg-shortcode-mobile .gg-slot-template-canvas {
  width: min(100%, 941px) !important;
  aspect-ratio: 941 / 1672 !important;
  margin: 0 auto !important;
}
.gg-shortcode-mobile .gg-slot-machine-wrap-template {
  left: 26.04% !important;
  top: 25.12% !important;
  width: 47.82% !important;
  height: 31.10% !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame {
  padding: 10px 8px 10px !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reels {
  gap: 6px !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reel-track {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  gap: 6px !important;
  padding: 5px !important;
  box-sizing: border-box !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track {
  height: 200% !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-cell {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-cell img {
  width: 76% !important;
  height: 76% !important;
  object-fit: contain !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 10px 8px 10px !important;
}
.gg-shortcode-mobile .gg-slot-status,
.gg-shortcode-mobile .gg-slot-controls-template,
.gg-shortcode-mobile .gg-slot-foot-template {
  max-width: 941px !important;
}

/* v0.4.9 — new PC/mobile templates + reel fit + scratchcard template */
.gg-shortcode-pc.gg-shell-slot3 .gg-app-inner,
.gg-shortcode-pc .gg-app-inner {
  max-width: 1760px !important;
}
.gg-shortcode-pc .gg-layout.gg-shell-slot3 {
  grid-template-columns: 1fr !important;
  gap: 0 !important;
}
.gg-shortcode-pc .gg-layout.gg-shell-slot3 .gg-sidebar-left,
.gg-shortcode-pc .gg-layout.gg-shell-slot3 .gg-sidebar-right,
.gg-shortcode-pc.gg-shell-slot3 .gg-bottom-journey {
  display: none !important;
}
.gg-shortcode-pc .gg-stage {
  width: 100% !important;
  max-width: none !important;
}
.gg-shortcode-pc .gg-card-stage {
  min-height: auto !important;
}
.gg-shortcode-pc .gg-slot-template-canvas {
  width: min(100%, 1672px) !important;
  aspect-ratio: 1672 / 941 !important;
  margin: 0 auto !important;
}
.gg-shortcode-pc .gg-slot-template-art.desktop {
  background-image: url('../img/copycat_template_desktop.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.gg-shortcode-pc .gg-slot-machine-wrap-template {
  left: 18.65% !important;   /* x 312 on 1672 */
  top: 21.35% !important;    /* y 201 on 941 */
  width: 59.20% !important;  /* w 990 on 1672 */
  height: 60.60% !important; /* h 570 on 941 */
}
.gg-shortcode-pc .gg-slot-machine-template-frame {
  padding: 18px 16px 18px !important;
  overflow: hidden !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reels {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
  height: 100% !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reel {
  display: block !important;
  overflow: hidden !important;
  height: 100% !important;
  border-radius: 16px !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reel-track {
  display: grid !important;
  grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: minmax(0, 1fr) !important;
  gap: 14px !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track {
  grid-template-rows: repeat(6, minmax(0, 1fr)) !important;
  height: 200% !important;
  animation: ggSlotReelRollTemplateV49 .45s linear infinite !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-cell {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-cell img {
  width: 76% !important;
  height: 76% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 18px 16px 18px !important;
}
@keyframes ggSlotReelRollTemplateV49 {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

.gg-shortcode-mobile .gg-slot-template-canvas {
  width: min(100%, 941px) !important;
  aspect-ratio: 941 / 1672 !important;
  margin: 0 auto !important;
}
.gg-shortcode-mobile .gg-slot-template-art.mobile {
  background-image: url('../img/copycat_template_mobile.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.gg-shortcode-mobile .gg-slot-machine-wrap-template {
  left: 24.55% !important;   /* x 231 on 941 */
  top: 25.95% !important;    /* y 434 on 1672 */
  width: 51.00% !important;  /* w 480 on 941 */
  height: 38.30% !important; /* h 640 on 1672 */
}
.gg-shortcode-mobile .gg-slot-machine-template-frame {
  padding: 10px 8px 10px !important;
  overflow: hidden !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reels {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 6px !important;
  width: 100% !important;
  height: 100% !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reel {
  display: block !important;
  overflow: hidden !important;
  height: 100% !important;
  border-radius: 10px !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reel-track {
  display: grid !important;
  grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: minmax(0, 1fr) !important;
  gap: 7px !important;
  padding: 6px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reels.spinning .gg-slot-reel-track {
  grid-template-rows: repeat(6, minmax(0, 1fr)) !important;
  height: 200% !important;
  animation: ggSlotReelRollTemplateV49 .45s linear infinite !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-cell {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-cell img {
  width: 70% !important;
  height: 70% !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: 10px 8px 10px !important;
}

/* Scratchcard bonus popup using uploaded scratch-card art */
.gg-slot-popup-card.scratch {
  position: relative !important;
  width: min(540px, 94vw) !important;
  aspect-ratio: 1024 / 1536 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 18px !important;
  background-image: url('../img/scratch_card_template.png') !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  background-position: center !important;
  box-shadow: 0 25px 90px rgba(0,0,0,.68), 0 0 42px rgba(164,74,255,.22) !important;
  overflow: hidden !important;
}
.gg-slot-popup-card.scratch h2,
.gg-slot-popup-card.scratch > p {
  display: none !important;
}
.gg-slot-popup-card.scratch .gg-scratch-grid {
  position: absolute !important;
  left: 17.5% !important;
  top: 35.0% !important;
  width: 65.0% !important;
  height: 31.0% !important;
  max-width: none !important;
  margin: 0 !important;
  gap: 5.5% !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  grid-template-rows: repeat(3, 1fr) !important;
}
.gg-slot-popup-card.scratch .gg-scratch-grid span {
  border-radius: 9px !important;
  font-size: clamp(22px, 4vw, 36px) !important;
  background: linear-gradient(135deg, rgba(245,245,255,.86), rgba(145,145,165,.86)) !important;
  box-shadow: inset 0 0 18px rgba(255,255,255,.38), 0 0 16px rgba(165,90,255,.16) !important;
}
.gg-slot-popup-card.scratch .gg-scratch-grid.revealed span {
  background: radial-gradient(circle, rgba(130,255,190,.7), rgba(56,22,90,.75)) !important;
}
.gg-slot-popup-card.scratch .gg-text-btn {
  position: absolute !important;
  left: 26% !important;
  bottom: 5.8% !important;
  width: 48% !important;
  min-height: 42px !important;
  z-index: 2 !important;
}
.gg-slot-popup-card.scratch .gg-scratch-reward {
  position: absolute !important;
  left: 15% !important;
  bottom: 12.5% !important;
  width: 70% !important;
  margin: 0 !important;
  font-size: clamp(18px, 3vw, 28px) !important;
  z-index: 2 !important;
}

/* v0.5.0 — Backend Atlas Crop Editor variables */
.gg-shortcode-pc .gg-slot-template-canvas {
  width: min(100%, var(--gg-pc-template-max-width, 1672px)) !important;
  aspect-ratio: var(--gg-pc-aspect, 1672 / 941) !important;
}
.gg-shortcode-pc .gg-slot-machine-wrap-template {
  left: var(--gg-pc-reel-left, 20.93%) !important;
  top: var(--gg-pc-reel-top, 21.79%) !important;
  width: var(--gg-pc-reel-width, 56.22%) !important;
  height: var(--gg-pc-reel-height, 65.89%) !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame {
  padding: var(--gg-pc-frame-padding, 16px 14px 14px 14px) !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reels,
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-reel-track {
  gap: var(--gg-pc-reel-gap, 14px) !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-cell img {
  width: var(--gg-pc-symbol-scale, 82%) !important;
  height: var(--gg-pc-symbol-scale, 82%) !important;
}
.gg-shortcode-pc .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: var(--gg-pc-frame-padding, 16px 14px 14px 14px) !important;
}
.gg-shortcode-mobile .gg-slot-template-canvas {
  width: min(100%, var(--gg-mobile-template-max-width, 941px)) !important;
  aspect-ratio: var(--gg-mobile-aspect, 941 / 1672) !important;
}
.gg-shortcode-mobile .gg-slot-machine-wrap-template {
  left: var(--gg-mobile-reel-left, 26.04%) !important;
  top: var(--gg-mobile-reel-top, 25.12%) !important;
  width: var(--gg-mobile-reel-width, 47.82%) !important;
  height: var(--gg-mobile-reel-height, 31.10%) !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame {
  padding: var(--gg-mobile-frame-padding, 10px 8px 10px 8px) !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reels,
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-reel-track {
  gap: var(--gg-mobile-reel-gap, 6px) !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-cell img {
  width: var(--gg-mobile-symbol-scale, 70%) !important;
  height: var(--gg-mobile-symbol-scale, 70%) !important;
}
.gg-shortcode-mobile .gg-slot-machine-template-frame .gg-slot-winlines {
  inset: var(--gg-mobile-frame-padding, 10px 8px 10px 8px) !important;
}

/* v0.5.2 — shortcode guard + adjustable overlay boxes */
.giveaway-games-app-mobile .gg-shortcode-mobile .gg-slot-template-art.desktop,
.gg-shortcode-mobile .gg-slot-template-art.desktop {
  display: none !important;
}
.giveaway-games-app-mobile .gg-shortcode-mobile .gg-slot-template-art.mobile,
.gg-shortcode-mobile .gg-slot-template-art.mobile {
  display: block !important;
  background-image: url('../img/copycat_template_mobile.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.giveaway-games-app-pc .gg-shortcode-pc .gg-slot-template-art.mobile,
.gg-shortcode-pc .gg-slot-template-art.mobile {
  display: none !important;
}
.giveaway-games-app-pc .gg-shortcode-pc .gg-slot-template-art.desktop,
.gg-shortcode-pc .gg-slot-template-art.desktop {
  display: block !important;
  background-image: url('../img/copycat_template_desktop.png') !important;
  background-size: contain !important;
  background-position: center !important;
}
.gg-shortcode-pc .gg-slot-level-group {
  left: var(--gg-pc-level-left, 1.4%) !important;
  top: var(--gg-pc-level-top, 2.3%) !important;
  width: var(--gg-pc-level-width, 18.5%) !important;
  height: var(--gg-pc-level-height, 14.8%) !important;
}
.gg-shortcode-pc .gg-slot-top-goal {
  left: var(--gg-pc-top_goal-left, 70.5%) !important;
  top: var(--gg-pc-top_goal-top, 2.6%) !important;
  width: var(--gg-pc-top_goal-width, 22.7%) !important;
  height: var(--gg-pc-top_goal-height, 11.2%) !important;
}
.gg-shortcode-pc .gg-slot-feature-copy-box {
  left: var(--gg-pc-feature-left, 1.4%) !important;
  top: var(--gg-pc-feature-top, 27.6%) !important;
  width: var(--gg-pc-feature-width, 15%) !important;
  height: var(--gg-pc-feature-height, 55.3%) !important;
}
.gg-shortcode-pc .gg-slot-jackpots-template {
  left: var(--gg-pc-jackpot-left, 81.9%) !important;
  top: var(--gg-pc-jackpot-top, 22.8%) !important;
  width: var(--gg-pc-jackpot-width, 15%) !important;
  height: var(--gg-pc-jackpot-height, 55.8%) !important;
  right: auto !important;
}
.gg-shortcode-mobile .gg-slot-level-group {
  left: var(--gg-mobile-level-left, 1.9%) !important;
  top: var(--gg-mobile-level-top, 1.8%) !important;
  width: var(--gg-mobile-level-width, 24.4%) !important;
  height: var(--gg-mobile-level-height, 12.6%) !important;
}
.gg-shortcode-mobile .gg-slot-top-goal {
  left: var(--gg-mobile-top_goal-left, 26.6%) !important;
  top: var(--gg-mobile-top_goal-top, 25.7%) !important;
  width: var(--gg-mobile-top_goal-width, 69.1%) !important;
  height: var(--gg-mobile-top_goal-height, 12.6%) !important;
  right: auto !important;
}
.gg-shortcode-mobile .gg-slot-feature-copy-box {
  left: var(--gg-mobile-feature-left, 2.1%) !important;
  top: var(--gg-mobile-feature-top, 38.9%) !important;
  width: var(--gg-mobile-feature-width, 26%) !important;
  height: var(--gg-mobile-feature-height, 45.5%) !important;
}
.gg-shortcode-mobile .gg-slot-jackpots-template {
  left: var(--gg-mobile-jackpot-left, 80.8%) !important;
  top: var(--gg-mobile-jackpot-top, 32%) !important;
  width: var(--gg-mobile-jackpot-width, 17%) !important;
  height: var(--gg-mobile-jackpot-height, 37.1%) !important;
  right: auto !important;
}
/* fallback: if old [giveaway_games] is used on narrow screens, show mobile template instead of desktop */
@media (max-width: 820px) {
  .gg-shortcode-auto .gg-slot-template-canvas {
    width: min(100%, var(--gg-mobile-template-max-width, 941px)) !important;
    aspect-ratio: var(--gg-mobile-aspect, 941 / 1672) !important;
  }
  .gg-shortcode-auto .gg-slot-template-art.desktop { display: none !important; }
  .gg-shortcode-auto .gg-slot-template-art.mobile {
    display: block !important;
    background-image: url('../img/copycat_template_mobile.png') !important;
    background-size: contain !important;
    background-position: center !important;
  }
  .gg-shortcode-auto .gg-slot-machine-wrap-template {
    left: var(--gg-mobile-reel-left, 26.04%) !important;
    top: var(--gg-mobile-reel-top, 43.66%) !important;
    width: var(--gg-mobile-reel-width, 63.76%) !important;
    height: var(--gg-mobile-reel-height, 41.87%) !important;
  }
}
