.j-casino {
  --casino-ink: #123b39;
  --casino-dark: #102e2d;
  --casino-gold: #edcb81;
  --casino-paper: #fff9e9;
  overflow: hidden;
  border: 1px solid #b5af8e;
  border-radius: 16px;
  background: var(--casino-paper);
  color: var(--casino-ink);
  box-shadow: 0 4px 0 #d4dacd;
}
.j-casino-header,
.j-casino-reward {
  color: var(--casino-paper);
  background:
    radial-gradient(ellipse at 22% 22%, #317266b3, transparent 65%),
    repeating-linear-gradient(135deg, #f6daa20e 0 1px, transparent 1px 13px),
    var(--casino-dark);
  border-bottom: 3px solid #c8a358;
}
.j-casino-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(10px, 2vw, 17px);
  padding: clamp(14px, 3vw, 25px);
}
.j-casino-crest,
.j-casino-seal {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid #ebc978a8;
  border-radius: 50%;
  background: #153e3b;
  color: var(--casino-gold);
  box-shadow: inset 0 0 0 3px #153e3b, inset 0 0 0 4px #ebc9784d;
}
.j-casino-crest .icon,
.j-casino-seal .icon { width: 24px; height: 24px; }
.j-casino h1 {
  margin: 3px 0 0;
  color: inherit;
  font-size: clamp(22px, 4vw, 36px);
  line-height: 1.1;
}
.j-casino-kicker,
.j-casino-free {
  color: var(--casino-gold);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.j-casino-free {
  padding: 5px 9px;
  border: 1px solid #ebc97885;
  border-radius: 99px;
}
.j-casino-body { padding: clamp(13px, 3vw, 24px); }
.j-casino-body h2 {
  margin: 0 0 12px;
  font-size: clamp(16px, 2.5vw, 21px);
}
.j-casino-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(8px, 2vw, 15px);
}
.j-casino-prize,
.j-casino-surprise {
  min-width: 0;
  border: 1px solid #bdcbb9;
  color: var(--casino-ink);
  cursor: pointer;
  transition: background-color 160ms, border-color 160ms, box-shadow 160ms, transform 160ms;
}
.j-casino-prize {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: clamp(6px, 1.5vw, 11px);
  border-radius: 12px;
  background: #fffefa;
  box-shadow: 0 3px 0 #d7decd;
}
.j-casino-display {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: 100%;
  height: clamp(77px, 16vw, 136px);
  overflow: hidden;
  border-radius: 8px;
  background: radial-gradient(ellipse at 50% 58%, #e6efda, #edf3e6 70%);
}
.j-casino-display::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(78%, 135px);
  height: 18%;
  bottom: 11%;
  border-radius: 50%;
  background: #8caa9338;
}
.j-casino-display .sprite {
  width: clamp(65px, 14vw, 116px);
  height: clamp(65px, 14vw, 116px);
  object-fit: contain;
  filter: drop-shadow(0 3px 1px #193d2929);
  transition: transform 180ms ease-out;
}
.j-casino-prize > strong {
  font-size: clamp(15px, 2.5vw, 20px);
  overflow-wrap: anywhere;
}
.j-casino-types {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4px;
}
.j-casino-types .type { padding: 3px 6px; font-size: 10px; line-height: 1.3; }
.j-casino-pick {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: auto;
  padding-top: 4px;
  font-size: 12px;
  font-weight: 750;
}
.j-casino-pick .icon { width: 14px; height: 14px; }
.j-casino-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0;
  color: #5c6754;
  font-size: 12px;
}
.j-casino-divider::before,
.j-casino-divider::after { content: ""; height: 1px; flex: 1; background: #ddd6ba; }
.j-casino-surprise {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  width: 100%;
  min-height: 58px;
  align-items: center;
  gap: 11px;
  padding: 9px 12px;
  border-color: #d7b768;
  border-radius: 10px;
  background: #f8ebc4;
  text-align: left;
}
.j-casino-surprise strong,
.j-casino-surprise small { display: block; }
.j-casino-surprise strong { font-size: 15px; }
.j-casino-surprise small { margin-top: 2px; color: #4c594b; font-size: 12px; }
.j-casino-surprise > .icon { width: 18px; height: 18px; }
.j-casino-chips {
  display: grid;
  grid-template-columns: repeat(2, 12px);
  gap: 3px;
  padding: 6px;
  border-radius: 7px;
  background: #1f5149;
}
.j-casino-chips i {
  width: 12px;
  height: 12px;
  border: 1px solid var(--casino-gold);
  border-radius: 50%;
  background: radial-gradient(circle, var(--casino-gold) 0 2px, transparent 2.5px);
}
.j-casino-prize:focus-visible,
.j-casino-surprise:focus-visible {
  border-color: #43776a;
  outline: 3px solid #23645b;
  outline-offset: 2px;
}
.j-casino button:disabled { cursor: default; opacity: .58; }
@media (hover: hover) {
  .j-casino-prize:hover:not(:disabled) {
    transform: translateY(-2px);
    border-color: #43776a;
    box-shadow: 0 5px 0 #c7d5c3;
  }
  .j-casino-prize:hover:not(:disabled) .sprite { transform: translateY(-3px) scale(1.04); }
  .j-casino-surprise:hover:not(:disabled) { background: #f4dfa7; border-color: #ad863b; }
}
.j-casino-prize:active:not(:disabled),
.j-casino-surprise:active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
.j-casino-reward {
  display: grid;
  grid-template-columns: minmax(116px, .95fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(12px, 3vw, 26px);
  padding: clamp(12px, 3vw, 26px);
}
.j-casino-reward .j-casino-display {
  height: clamp(124px, 25vw, 212px);
  border: 1px solid #eacb755e;
  background: radial-gradient(ellipse at center, #5f9780, #22564c 70%);
}
.j-casino-reward .j-casino-display::after { background: #10383185; }
.j-casino-reward .sprite {
  display: block;
  width: clamp(96px, 21vw, 181px);
  height: clamp(96px, 21vw, 181px);
}
.j-casino-reward h1 { overflow-wrap: anywhere; }
.j-casino-reward h1:focus { outline: none; }
.j-casino-reward .j-casino-types { justify-content: flex-start; margin-top: 9px; }
.j-casino-level { font-size: 12px; font-weight: 700; }
.j-casino-destination {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 12px;
  color: #fae4b4;
  font-size: 13px;
}
.j-casino-destination .icon { width: 16px; height: 16px; flex-shrink: 0; }
.j-casino-seal {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 58px;
  height: 58px;
  transform: translate(-50%, -50%);
  opacity: 0;
  pointer-events: none;
}
.j-casino-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
  padding: clamp(10px, 2.5vw, 18px);
}
.j-casino-actions .j-button { min-height: 44px; font-size: 13px; }
.j-casino-actions .j-button.primary {
  background: #225b50;
  border-color: #17473e;
  color: white;
  box-shadow: 0 3px 0 #123e35;
}
.j-casino-actions .j-button.primary:hover { background: #17473e; box-shadow: 0 4px 0 #123e35; }
@keyframes casino-offer-in {
  from { opacity: .55; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes casino-prize-reveal {
  from { opacity: 0; transform: translateY(12px) scale(.86); }
  65% { opacity: 1; transform: translateY(-4px) scale(1.045); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes casino-reward-copy {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes casino-seal-turn {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.65) rotateY(70deg); }
  30%, 57% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotateY(0); }
  100% { opacity: 0; transform: translate(-50%, -58%) scale(1.18) rotateY(-55deg); }
}
@media (prefers-reduced-motion: no-preference) {
  .j-casino-offers .j-casino-prize { animation: casino-offer-in 240ms ease-out backwards; }
  .j-casino-offers .j-casino-prize:nth-child(2) { animation-delay: 55ms; }
  .j-casino-reveal-choice .j-casino-reward-pokemon { animation: casino-prize-reveal 360ms ease-out both; }
  .j-casino-reveal-surprise .j-casino-reward-pokemon { animation: casino-prize-reveal 400ms 240ms ease-out both; }
  .j-casino-reveal-surprise .j-casino-seal { animation: casino-seal-turn 390ms ease-out both; }
  .j-casino-reveal-surprise .j-casino-reward-copy { animation: casino-reward-copy 250ms 240ms ease-out both; }
}
@media (prefers-reduced-motion: reduce) {
  .j-casino .j-casino-prize,
  .j-casino .j-casino-surprise,
  .j-casino .j-casino-display .sprite { transform: none; }
}
@media (max-width: 480px) {
  .j-casino-crest { width: 34px; height: 34px; }
  .j-casino-crest .icon { width: 18px; height: 18px; }
  .j-casino-free { padding: 3px 5px; letter-spacing: .04em; font-size: 10px; }
  .j-casino-actions > button { flex: 1; justify-content: center; }
}
