:root {
  --app-header-height: 74px;
  --navy: #07192f;
  --blue: #0a2850;
  --panel: #102f58e8;
  --panel2: #163b69;
  --cyan: #32d5ff;
  --gold: #ffd45c;
  --gem: #e86dff;
  --green: #48e0a4;
  --red: #ff6577;
  --text: #f7fbff;
  --muted: #a9bfd9;
  --line: #ffffff1b;
  --shadow: 0 22px 60px #0007;
  --radius: 22px;
  font-family: Inter, ui-rounded, "Segoe UI", system-ui, sans-serif;
  color: var(--text);
  background: var(--navy);
  color-scheme: dark;
}
/* Slot viewport rules are declared with the global layout variables so compact
   landscape remains measurable even when its header and controls overlay. */
.slot-game-header{grid-row:1}.slot-reel-frame{grid-row:2}.slot-controls{grid-row:3}body.slot-playing{padding-bottom:0!important}
@media(orientation:landscape) and (max-height:600px){.slot-page,#slot-renderer-root{height:calc(100dvh - var(--app-header-height))!important;min-height:0!important}.professional-slot{min-height:0!important}.slot-reel-frame{height:calc(100% - 98px)!important;margin-top:42px;align-self:start!important}}
@media(max-width:650px) and (orientation:portrait){.slot-page,#slot-renderer-root{height:calc(100dvh - var(--app-header-height))!important}}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  min-height: 100%;
  overflow-x: hidden;
}
body {
  background:
    radial-gradient(circle at 15% 0, #164c79 0, transparent 32rem),
    radial-gradient(circle at 90% 15%, #59237355 0, transparent 34rem),
    linear-gradient(150deg, #061426, #07192f 58%, #0b2340);
  font-size: 16px;
}
.ambient {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: -1;
}
.ambient i {
  position: absolute;
  width: 26rem;
  height: 26rem;
  border: 1px solid #45dbff15;
  border-radius: 50%;
  animation: drift 18s ease-in-out infinite;
}
.ambient i:nth-child(1) {
  left: -12rem;
  top: 30%;
}
.ambient i:nth-child(2) {
  right: -8rem;
  top: -10rem;
  animation-delay: -5s;
}
.ambient i:nth-child(3) {
  right: 20%;
  bottom: -18rem;
  animation-delay: -11s;
}
@keyframes drift {
  50% {
    transform: translate3d(3rem, -2rem, 0) scale(1.14);
  }
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: inherit;
}
button {
  cursor: pointer;
}
.skip-link {
  position: fixed;
  left: 1rem;
  top: -4rem;
  background: #fff;
  color: #000;
  padding: 0.8rem;
  z-index: 100;
}
.skip-link:focus {
  top: 1rem;
}
.topbar {
  height: 74px;
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 10px max(18px, env(safe-area-inset-left));
  background: #06162bea;
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(20px);
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: max-content;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  overflow:hidden;
  background:#071936;
  box-shadow:0 0 22px #ffd45c4d,0 0 0 1px #ffd76e80;
}
.brand-mark img{width:100%;height:100%;object-fit:contain;transform:scale(1.18)}
.brand strong,
.brand small {
  display: block;
  line-height: 1;
}
.brand strong {
  font-size: 1.1rem;
}
.brand small {
  color: var(--cyan);
  font-size: 0.67rem;
  letter-spacing: 0.18em;
  margin-top: 0.3rem;
}
.topbar nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
}
.topbar nav a {
  padding: 0.7rem 0.85rem;
  color: var(--muted);
  font-weight: 700;
  border-radius: 12px;
}
.topbar nav a:hover,
.topbar nav a.active {
  background: #fff1;
  color: #fff;
}
.balances {
  display: flex;
  gap: 0.5rem;
  margin-left: auto;
}
.balance-pill {
  min-width: 94px;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff08;
}
.balance-pill small,
.balance-pill strong {
  display: block;
}
.balance-pill small {
  font-size: 0.65rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.balance-pill strong {
  font-size: 0.92rem;
}
.balance-pill.gc strong {
  color: var(--gold);
}
.balance-pill.gems strong {
  color: var(--gem);
}
.mobile-menu,
.mobile-tabs {
  display: none;
}
.icon-button {
  border: 1px solid var(--line);
  color: #fff;
  background: #fff0;
  border-radius: 12px;
  padding: 0.65rem;
}
.page {
  width: min(1500px, 100%);
  margin: auto;
  padding: clamp(18px, 3vw, 44px);
}
.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--cyan);
  font-size: 0.72rem;
  font-weight: 900;
}
.page h1 {
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 0.95;
  margin: 0.35rem 0;
}
.page-heading p {
  color: var(--muted);
  max-width: 45rem;
  margin: 0.6rem 0;
}
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  gap: 1rem;
  padding: clamp(20px, 4vw, 54px);
  min-height: 310px;
  align-items: center;
  border: 1px solid #ffffff20;
  border-radius: 30px;
  background:
    linear-gradient(120deg, #0e4e7cd9, #192c65d9 52%, #5d246ec7),
    radial-gradient(circle at 75% 25%, #ffce5a66, transparent 18rem);
  box-shadow: var(--shadow);
  overflow: hidden;
  position: relative;
}
.hero:after {
  content: "B I N G O";
  position: absolute;
  right: -1rem;
  bottom: -2rem;
  color: #ffffff0d;
  font-size: clamp(5rem, 15vw, 13rem);
  font-weight: 1000;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.hero h1 {
  max-width: 800px;
}
.hero p {
  max-width: 680px;
  color: #d3e3f2;
  font-size: 1.08rem;
}
.hero-actions {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
}
.jackpot-orb {
  position: relative;
  z-index: 1;
  aspect-ratio: 1;
  max-width: 270px;
  margin: auto;
  display: grid;
  place-items: center;
  text-align: center;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 25%, #fff9, transparent 10%),
    radial-gradient(circle, #9a34ba, #431553 65%, #1e0b26);
  border: 5px solid #f5baff;
  box-shadow:
    0 0 0 12px #e86dff1f,
    0 0 80px #e86dff66;
}
.jackpot-orb small,
.jackpot-orb strong {
  display: block;
}
.jackpot-orb strong {
  font-size: 2.2rem;
}
.filters {
  display: flex;
  gap: 0.55rem;
  overflow: auto;
  padding: 1.5rem 0 0.6rem;
  scrollbar-width: none;
}
.filter {
  white-space: nowrap;
  border: 1px solid var(--line);
  background: #fff08;
  color: var(--muted);
  padding: 0.65rem 1rem;
  border-radius: 999px;
  font-weight: 800;
}
.filter.active {
  background: var(--cyan);
  color: #032034;
  border-color: var(--cyan);
}
.room-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.room-card {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  border: 1px solid #ffffff22;
  border-radius: var(--radius);
  background: linear-gradient(155deg, #1a4e7f, #112d53 55%, #30194e);
  box-shadow: 0 14px 38px #0004;
  transition:
    transform 0.2s,
    border-color 0.2s;
}
.room-card:hover {
  transform: translateY(-4px);
  border-color: #43d9ff88;
}
.room-art {
  height: 130px;
  background:
    radial-gradient(circle at 70% 25%, #ffe47c99, transparent 6rem),
    linear-gradient(130deg, #126b9e, #34246e);
  position: relative;
}
.room-art:after {
  content: "BINGO";
  position: absolute;
  right: 0.8rem;
  bottom: -0.25rem;
  font-size: 3.5rem;
  font-weight: 1000;
  color: #ffffff20;
}
.room-mode {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: #05162ccc;
  font-size: 0.72rem;
  font-weight: 900;
}
.room-mode.GEMS {
  color: #ffafff;
}
.room-mode.GC {
  color: #ffe690;
}
.favorite {
  position: absolute;
  right: 0.7rem;
  top: 0.65rem;
  z-index: 2;
  border: 0;
  background: #07192fcc;
  color: #fff;
  border-radius: 50%;
  width: 38px;
  height: 38px;
  font-size: 1.2rem;
}
.favorite.on {
  color: var(--gold);
}
.room-body {
  padding: 1rem;
}
.room-title {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.5rem;
}
.room-title h2 {
  font-size: 1.25rem;
  margin: 0;
}
.live {
  color: var(--green);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}
.room-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
  margin: 1rem 0;
}
.stat {
  background: #020b174a;
  border: 1px solid #ffffff10;
  border-radius: 12px;
  padding: 0.65rem;
}
.stat small {
  display: block;
  color: var(--muted);
  font-size: 0.67rem;
  text-transform: uppercase;
}
.stat strong {
  font-size: 0.92rem;
}
.card-actions {
  display: flex;
  gap: 0.55rem;
}
.button,
button.primary,
button.secondary,
button.danger {
  border: 0;
  border-radius: 13px;
  padding: 0.8rem 1.05rem;
  font-weight: 900;
  color: #041421;
  background: linear-gradient(135deg, var(--cyan), #8eeaff);
  box-shadow: 0 8px 20px #31d4ff2b;
}
.button.secondary,
button.secondary {
  color: #fff;
  background: #ffffff12;
  border: 1px solid var(--line);
  box-shadow: none;
}
.button.gold {
  background: linear-gradient(135deg, var(--gold), #ff9a45);
}
button.danger {
  color: #fff;
  background: #9f2941;
}
button.small,
.small {
  padding: 0.55rem 0.75rem;
  font-size: 0.8rem;
}
button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: 0 14px 40px #0003;
}
.auth-card {
  width: min(460px, calc(100vw - 2rem));
  padding: 1.3rem;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}
.field {
  display: grid;
  gap: 0.35rem;
}
.field.wide {
  grid-column: 1/-1;
}
.field label {
  font-size: 0.76rem;
  color: var(--muted);
  font-weight: 800;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 46px;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  border: 1px solid #ffffff24;
  background: #06162db8;
  color: #fff;
  outline: none;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px #32d5ff20;
}
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: #020813d9;
  backdrop-filter: blur(8px);
}
.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.modal-head h2 {
  margin: 0.2rem 0;
}
.close {
  border: 0;
  background: #fff1;
  color: #fff;
  border-radius: 50%;
  width: 38px;
  height: 38px;
}
.game-page {
  width: 100%;
  max-width: 1700px;
  margin: auto;
  padding: clamp(10px, 2vw, 28px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 1rem;
}
.game-stage {
  min-width: 0;
}
.game-hud {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.65rem;
  margin-bottom: 0.7rem;
}
.hud-box {
  min-height: 76px;
  padding: 0.65rem 1rem;
  border-radius: 16px;
  background: #0c2c52e8;
  border: 1px solid var(--line);
  display: grid;
  align-content: center;
}
.hud-box:nth-child(3) {
  text-align: right;
}
.hud-box small {
  color: var(--muted);
  font-weight: 800;
}
.current-ball {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: radial-gradient(
    circle at 35% 25%,
    #fff,
    #62d8ff 35%,
    #0875bc 70%
  );
  color: #042241;
  font-weight: 1000;
  font-size: 1.8rem;
  box-shadow: 0 0 36px #32d5ff80;
}
.recent-balls {
  display: flex;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem;
}
.mini-ball {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff1;
  border: 1px solid var(--line);
  font-size: 0.76rem;
  font-weight: 900;
}
.cards-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0;
}
.cards-toolbar > div {
  display: grid;
  gap: 0.25rem;
}
.daub-mode {
  width: fit-content;
  border-radius: 999px;
  padding: 0.24rem 0.55rem;
  font-size: 0.7rem;
  font-weight: 900;
}
.daub-mode.automatic {
  color: #9effd4;
  background: #0e7c5c44;
  border: 1px solid #34e1a277;
}
.daub-mode.manual {
  color: #ffe5a2;
  background: #8a5d1644;
  border: 1px solid #ffcc6077;
}
.bingo-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 230px));
  gap: 0.8rem;
  align-items: start;
  justify-content: start;
}
.bingo-card {
  width: 100%;
  max-width: 230px;
  background: #f7fbff;
  border-radius: 16px;
  padding: 0.45rem;
  box-shadow: 0 12px 30px #0006;
  color: #05162b;
  overflow: hidden;
}
.card-label {
  display: flex;
  justify-content: space-between;
  color: #bdeeff;
  background: #093765;
  margin: -0.45rem -0.45rem 0.4rem;
  padding: 0.45rem 0.65rem;
  font-weight: 900;
}
.bingo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
  background: #06213a;
}
.bingo-letter,
.bingo-cell {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  font-weight: 1000;
}
.bingo-letter {
  aspect-ratio: auto;
  min-height: 25px;
  color: #fff;
  background: #126aa3;
  font-size: 1rem;
}
.bingo-cell {
  position: relative;
  background: #fff;
  color: #05162b;
  border: 0;
  border-radius: 0;
  padding: 0;
  font-family: inherit;
  font-size: clamp(0.82rem, 1.4vw, 1.15rem);
  cursor: default;
}
button.bingo-cell {
  cursor: pointer;
}
button.bingo-cell:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
  z-index: 3;
}
.bingo-cell.called:after {
  content: "";
  position: absolute;
  inset: 12%;
  border-radius: 50%;
  background: var(--daub-color, #e9416b);
  opacity: .72;
  box-shadow: 0 0 0 3px #ffffff55;
}
.bingo-cell.called span {
  position: relative;
  z-index: 1;
  color: #fff;
  text-shadow: 0 1px 2px #000;
}
.bingo-cell.new:after {
  animation: daub 0.55s cubic-bezier(0.2, 1.4, 0.5, 1);
}
.bingo-cell.win {
  background: #fff0a9;
  box-shadow: inset 0 0 0 4px #ffb300;
}

.bingo-cell.one-away-target {
  overflow: visible;
  border-color: #ffe45c;
  box-shadow: inset 0 0 0 2px #ffcf29, 0 0 13px #ffcf29b8;
  animation: one-away-target-glow 1.25s ease-in-out infinite;
}
.one-away-icon {
  position: absolute;
  z-index: 4;
  top: -7%;
  right: -5%;
  display: grid;
  place-items: center;
  width: clamp(15px, 1.5vw, 22px);
  height: clamp(15px, 1.5vw, 22px);
  border: 1px solid #fff5a6;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff176, #ff9d00);
  color: #321300;
  font-size: clamp(.56rem, .85vw, .78rem);
  font-style: normal;
  line-height: 1;
  pointer-events: none;
  box-shadow: 0 2px 8px #0008, 0 0 12px #ffd83d;
}
@keyframes one-away-target-glow {
  50% { filter: brightness(1.16); box-shadow: inset 0 0 0 2px #fff4a3, 0 0 19px #ffcf29e8; }
}
@media (prefers-reduced-motion: reduce) {
  .bingo-cell.one-away-target { animation: none; }
}
.prize-rule {
  margin: -0.3rem 0 0.8rem;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
}
.purchase-card-form {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}
.purchase-stepper {
  display: grid;
  grid-template-columns: 54px minmax(90px, 1fr) 54px;
  gap: 0.55rem;
}
.purchase-stepper input {
  width: 100%;
  min-height: 58px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #06162d;
  color: #fff;
  text-align: center;
  font-size: 1.45rem;
  font-weight: 1000;
}
.quantity-button,
.quantity-choice {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #10375f;
  color: #fff;
  font-weight: 1000;
}
.quantity-button {
  font-size: 1.6rem;
}
.quantity-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.quantity-choice {
  min-width: 46px;
  min-height: 42px;
}
.quantity-choice.active {
  color: #081425;
  background: var(--gold);
  border-color: #fff0a2;
}
.purchase-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.55rem 1rem;
  align-items: center;
  padding: 0.85rem;
  border-radius: 14px;
  background: #06162d99;
}
.purchase-summary strong {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
}
@keyframes daub {
  from {
    transform: scale(2);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
.card-badge {
  position: absolute;
  right: 0.25rem;
  top: 0.25rem;
  z-index: 2;
  background: #07192f;
  color: #fff;
  border-radius: 999px;
  padding: 0.2rem 0.38rem;
  font-size: 0.55rem;
}
.game-side {
  display: grid;
  align-content: start;
  gap: 0.8rem;
}
.side-panel {
  padding: 1rem;
}
.side-panel h3 {
  margin: 0.1rem 0 0.8rem;
}
.pattern-preview {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  width: 120px;
}
.pattern-preview i {
  aspect-ratio: 1;
  background: #fff1;
  border-radius: 3px;
}
.pattern-preview i.on {
  background: var(--gold);
}
.chat-list {
  height: 330px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.chat-message {
  padding: 0.55rem 0.65rem;
  background: #fff08;
  border-radius: 12px;
}
.chat-message strong {
  color: var(--cyan);
  font-size: 0.76rem;
}
.chat-message .chat-author {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
  max-width: 70%;
  vertical-align: middle;
}
.chat-message .chat-author span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chat-message .chat-author img {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  object-fit: contain;
  filter: drop-shadow(0 1px 3px #0009);
}
.chat-message p {
  margin: 0;
  word-break: break-word;
}
.chat-message .chat-copy {
  margin-left: 0.35rem;
  vertical-align: middle;
}
.chat-form {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.6rem;
}
.chat-form input {
  min-width: 0;
  flex: 1;
}
.status-strip {
  padding: 0.55rem;
  text-align: center;
  border-radius: 12px;
  background: #fff1;
  color: var(--muted);
  font-weight: 800;
}
.winner-banner {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  background: radial-gradient(circle, #6d2c84ee, #07192ff5 70%);
  text-align: center;
}
.winner-banner h2 {
  font-size: clamp(3rem, 10vw, 8rem);
  margin: 0;
  color: var(--gold);
  text-shadow: 0 0 45px #ffd45c;
}
.account-grid,
.admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
}
.metric {
  padding: 1rem;
}
.metric small {
  color: var(--muted);
  display: block;
}
.metric strong {
  display: block;
  font-size: 1.8rem;
  margin-top: 0.2rem;
}
.ledger {
  width: 100%;
  border-collapse: collapse;
}
.ledger th,
.ledger td {
  text-align: left;
  padding: 0.7rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.84rem;
}
.ledger th {
  color: var(--muted);
}
.table-wrap {
  overflow: auto;
}
.admin-shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 1rem;
}
.admin-nav {
  padding: 0.65rem;
  align-self: start;
  position: sticky;
  top: 90px;
}
.admin-nav button {
  width: 100%;
  text-align: left;
  background: transparent;
  color: var(--muted);
  border: 0;
  border-radius: 10px;
  padding: 0.7rem;
  font-weight: 800;
}
.admin-nav button.active {
  background: #fff1;
  color: #fff;
}
.admin-content {
  min-width: 0;
}
.room-editor {
  padding: 1rem;
}
.page-loading {
  min-height: 70vh;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 1rem;
  color: var(--muted);
}
.ball-loader {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--cyan);
  color: #03213b;
  font-size: 1.6rem;
  font-weight: 1000;
  animation: pulse 1s infinite;
}
@keyframes pulse {
  50% {
    transform: scale(0.9);
    box-shadow: 0 0 0 20px #32d5ff00;
  }
}
#toast-root {
  position: fixed;
  right: 1rem;
  top: 88px;
  z-index: 100;
  display: grid;
  gap: 0.5rem;
}
.toast {
  max-width: 360px;
  padding: 0.8rem 1rem;
  border-radius: 12px;
  background: #11335b;
  border: 1px solid #ffffff22;
  box-shadow: var(--shadow);
}
.toast.error {
  border-color: var(--red);
}
.empty {
  padding: 3rem;
  text-align: center;
  color: var(--muted);
}
.hidden,
[hidden] {
  display: none !important;
}
@media (max-width: 850px) {
  :root {
    --app-header-height: 64px;
  }
  body {
    padding-bottom: 66px;
  }
  .topbar {
    height: 64px;
  }
  .brand span:last-child {
    display: none;
  }
  .topbar nav {
    display: none;
    position: absolute;
    right: 1rem;
    top: 62px;
    flex-direction: column;
    align-items: stretch;
    background: #07192ff5;
    padding: 0.65rem;
    border: 1px solid var(--line);
    border-radius: 16px;
  }
  .topbar nav.open {
    display: flex;
  }
  .mobile-menu {
    display: block;
    margin-left: 0.2rem;
  }
  .mobile-tabs {
    position: fixed;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    padding: 6px 8px max(6px, env(safe-area-inset-bottom));
    background: #06162bf4;
    border-top: 1px solid var(--line);
    backdrop-filter: blur(18px);
  }
  .mobile-tabs a {
    display: grid;
    place-items: center;
    gap: 1px;
    color: var(--muted);
    font-size: 0.65rem;
    font-weight: 800;
  }
  .mobile-tabs span {
    font-size: 1.1rem;
  }
  .balances {
    margin-left: auto;
  }
  .balance-pill {
    min-width: 76px;
    padding: 0.35rem 0.5rem;
  }
  .page {
    padding: 16px;
  }
  .hero {
    grid-template-columns: 1fr;
    min-height: 370px;
  }
  .jackpot-orb {
    width: 180px;
  }
  .game-page {
    grid-template-columns: 1fr;
    padding: 8px;
  }
  .game-side {
    grid-template-columns: 1fr;
  }
  .chat-list {
    height: 220px;
  }
  .bingo-cards {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0.6rem;
  }
  .bingo-card {
    min-width: min(210px, 72vw);
    max-width: min(210px, 72vw);
    scroll-snap-align: center;
  }
  .game-hud {
    grid-template-columns: 1fr 76px 1fr;
  }
  .current-ball {
    width: 76px;
    height: 76px;
  }
  .hud-box {
    padding: 0.5rem;
    font-size: 0.78rem;
  }
  .admin-shell {
    grid-template-columns: 1fr;
  }
  .admin-nav {
    position: static;
    display: flex;
    overflow: auto;
  }
  .admin-nav button {
    min-width: max-content;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .field.wide {
    grid-column: auto;
  }
  .page-heading {
    align-items: start;
    flex-direction: column;
  }
  .ledger th:nth-child(4),
  .ledger td:nth-child(4) {
    display: none;
  }
}
@media (max-width: 460px) {
  .balance-pill {
    min-width: 64px;
  }
  .balance-pill small {
    display: none;
  }
  .brand-mark {
    width: 42px;
    height: 42px;
  }
  .room-grid {
    grid-template-columns: 1fr;
  }
  .game-hud {
    gap: 0.3rem;
  }
  .hud-box {
    min-height: 64px;
  }
  .current-ball {
    width: 68px;
    height: 68px;
  }
  .bingo-cell {
    font-size: 1.15rem;
  }
  .page h1 {
    font-size: 2.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
/* Compatibility styles retained for previously issued interactive card links. */
[data-dauber-style="star"] .bingo-cell.called:after {
  clip-path: polygon(
    50% 0,
    61% 35%,
    98% 35%,
    68% 57%,
    79% 95%,
    50% 72%,
    21% 95%,
    32% 57%,
    2% 35%,
    39% 35%
  );
}
[data-dauber-style="diamond"] .bingo-cell.called:after,
[data-dauber-style="diamond"] .winner-daub { border-radius:12%;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%) }
[data-dauber-style="heart"] .bingo-cell.called:after,
[data-dauber-style="heart"] .winner-daub { border-radius:0;clip-path:polygon(50% 92%,8% 50%,4% 28%,13% 10%,31% 5%,50% 22%,69% 5%,87% 10%,96% 28%,92% 50%) }
[data-dauber-style="star"] .winner-daub { clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 95%,50% 72%,21% 95%,32% 57%,2% 35%,39% 35%) }
.winner-mini-grid span{position:relative;overflow:hidden}.winner-mini-grid span em{position:relative;z-index:2;font-style:normal}.winner-daub{position:absolute;z-index:1;inset:12%;border-radius:50%;background:var(--daub-color,#e9416b);opacity:.7;box-shadow:0 0 0 2px #fff7}
.dauber-customizer{padding:1rem;border:1px solid #ffffff2b;border-radius:14px}.dauber-customizer legend{padding:0 .45rem;color:#ffe169;font-weight:1000}.dauber-customizer>p{margin:.1rem 0 .8rem;color:var(--muted)}.dauber-shape-options,.dauber-color-options{display:flex;flex-wrap:wrap;gap:.55rem}.dauber-shape-options label{display:flex;align-items:center;gap:.35rem;padding:.42rem .6rem;border:1px solid #ffffff2b;border-radius:12px;background:#071a34;cursor:pointer}.dauber-shape-options input,.dauber-color-options input{position:absolute;opacity:0;pointer-events:none}.dauber-shape-options label:has(input:checked),.dauber-color-options label:has(input:checked){outline:3px solid #ffe063;outline-offset:2px}.dauber-shape-options span{width:25px;height:25px;border-radius:50%;background:var(--preview-daub)}.dauber-shape-options [data-dauber-preview="star"]{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 95%,50% 72%,21% 95%,32% 57%,2% 35%,39% 35%)}.dauber-shape-options [data-dauber-preview="diamond"]{border-radius:10%;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.dauber-shape-options [data-dauber-preview="heart"]{border-radius:0;clip-path:polygon(50% 92%,8% 50%,4% 28%,13% 10%,31% 5%,50% 22%,69% 5%,87% 10%,96% 28%,92% 50%)}.dauber-color-options{margin-top:.85rem}.dauber-color-options label{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;cursor:pointer}.dauber-color-options span{width:28px;height:28px;border:2px solid #fff9;border-radius:50%;background:var(--swatch);box-shadow:0 3px 8px #0008}
.play-card-sheet.giant-sheet {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}
.account-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.inline-form {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  flex-wrap: wrap;
}
.inline-form input {
  flex: 1;
  min-width: 160px;
  min-height: 46px;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  border: 1px solid #ffffff24;
  background: #06162db8;
  color: #fff;
}
.ledger code {
  white-space: normal;
  overflow-wrap: anywhere;
  color: #c8e9ff;
}
.admin-content .empty {
  min-height: 280px;
}
@media (max-width: 700px) {
  .account-panels {
    grid-template-columns: 1fr;
  }
}
.field-label {
  font-size: 0.76rem;
  color: var(--muted);
  font-weight: 800;
}
.pattern-maker {
  width: min(320px, 100%);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
}
.pattern-maker label {
  aspect-ratio: 1;
  position: relative;
}
.pattern-maker input {
  position: absolute;
  opacity: 0;
}
.pattern-maker span {
  height: 100%;
  display: grid;
  place-items: center;
  border: 1px solid #ffffff2b;
  border-radius: 8px;
  background: #06162d;
  color: var(--muted);
  font-size: 0.6rem;
  font-weight: 900;
}
.pattern-maker input:checked + span {
  background: linear-gradient(135deg, var(--gold), #ff944d);
  color: #16100a;
  border-color: #fff5b3;
  box-shadow: 0 0 18px #ffd45c55;
}
.bingo-card.one-away {
  outline: 4px solid var(--gold);
  box-shadow: 0 0 32px #ffd45c77;
}
.bingo-card.two-away {
  outline: 3px solid #65dfff88;
}
.option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.65rem;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #06162d66;
}
.option-grid label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text);
}

/* Online lobby, currency, package, reward-wheel, and jackpot presentation. */
.currency-icon {
  width: 1.35em;
  height: 1.35em;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  vertical-align: -0.2em;
  font-size: 0.82em;
  font-weight: 1000;
  line-height: 1;
  filter: drop-shadow(0 2px 4px #0008);
}
.gc-icon {
  border-radius: 50%;
  color: #7b4300;
  border: 2px solid #fff3a2;
  background: radial-gradient(circle at 35% 28%, #fff8a8 0 12%, #ffd83f 14% 45%, #ed9a09 70%, #8a4b00 100%);
  box-shadow: inset 0 0 0 2px #b56b00, 0 0 9px #ffc92870;
}
.gem-icon {
  transform: rotate(45deg) scale(.78);
  border-radius: 25% 45% 25% 45%;
  color: #fff;
  border: 2px solid #d7ffff;
  background: linear-gradient(135deg, #baffff, #20e5c3 38%, #087e8b 70%, #083b66);
  box-shadow: inset 3px 3px 6px #fff9, 0 0 10px #45ffe59c;
}
.gem-icon i { transform: rotate(-45deg); font-style: normal; font-size: .72em; }
.free-icon { border-radius: 50%; background:#765cff; color:#fff; }
.balance-pill { display:flex; align-items:center; gap:.45rem; }
.balance-pill .currency-icon { width:2rem; height:2rem; }
.balance-pill span { display:grid; }
.jackpot-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(145px,1fr));
  gap:.7rem;
  margin:0 0 1rem;
}
.jackpot-chip {
  min-height:58px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:.55rem;
  padding:.48rem .85rem;
  border:1px solid #ffffff52;
  border-radius:999px;
  background:linear-gradient(135deg,#ff248f,#8b0bd4);
  box-shadow:0 8px 25px #0006,inset 0 1px #fff7;
}
.jackpot-chip > span { grid-row:1/3; }
.jackpot-chip .currency-icon { width:2rem;height:2rem; }
.jackpot-chip small { font-weight:1000;letter-spacing:.12em; }
.jackpot-chip strong { font-size:1.05rem;white-space:nowrap; }
.jackpot-chip.minor { background:linear-gradient(135deg,#be28fc,#4d35cc); }
.jackpot-chip.major { background:linear-gradient(135deg,#ff4e74,#d10c86); }
.jackpot-chip.grand { background:linear-gradient(135deg,#ffb51b,#dd246f); }
.visual-hero {
  min-height:430px;
  overflow:hidden;
  isolation:isolate;
  background:radial-gradient(circle at 78% 48%,#702ce877 0 12%,transparent 35%),linear-gradient(120deg,#06203f,#13104e 52%,#5b1375);
}
.visual-hero:before {
  content:""; position:absolute; inset:0; z-index:-1; opacity:.28;
  background-image:radial-gradient(circle,#fff 1px,transparent 1.5px); background-size:26px 26px;
  mask-image:linear-gradient(90deg,transparent 20%,#000);
}
.hero-copy { position:relative;z-index:2;max-width:620px; }
.hero-copy h1 em { color:var(--gold);font-style:normal;text-shadow:0 0 30px #ffc62c5c; }
.hero-showpiece { position:relative;min-height:340px; }
.hero-ball { position:absolute;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font:1000 2.8rem/1 sans-serif;color:#fff;border:7px solid #ffffffd8;box-shadow:0 15px 30px #0009,inset 0 -14px 24px #0005;animation:hero-float 4s ease-in-out infinite; }
.hero-ball.b{left:4%;top:9%;background:#1674ef}.hero-ball.i{left:31%;top:2%;background:#e64f6c;animation-delay:-.7s}.hero-ball.n{right:20%;top:18%;background:#7b55e9;animation-delay:-1.4s}.hero-ball.g{left:18%;top:39%;background:#17aa73;animation-delay:-2.1s}.hero-ball.o{right:2%;top:44%;background:#f3b216;animation-delay:-2.8s}
@keyframes hero-float{50%{transform:translateY(-12px) rotate(4deg)}}
.next-game-card { position:absolute;z-index:2;left:7%;right:3%;bottom:3%;padding:1rem 1.2rem;border-radius:20px;border:1px solid #ffffff50;background:#061326db;backdrop-filter:blur(12px);box-shadow:0 18px 40px #0008;display:grid;text-align:center; }
.next-game-card small { color:#bfefff;font-weight:800; }.next-game-card strong { font-size:clamp(1.8rem,4vw,3.5rem);color:#fff;font-variant-numeric:tabular-nums; }.next-game-card span { color:var(--muted);font-size:.78rem; }
.trust-row { display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.2rem;color:#b7dff7;font-size:.78rem;font-weight:800; }
.section-title { display:flex;justify-content:space-between;align-items:end;margin:1.7rem 0 .5rem; }.section-title h2{margin:.15rem 0;font-size:2rem;}
.visual-grid { grid-template-columns:repeat(auto-fill,minmax(265px,1fr)); }
.visual-room .room-art { min-height:230px;background-size:cover;background-position:center;position:relative;background-color:hsl(var(--room-hue) 65% 35%);background-image:radial-gradient(circle at 50% 30%,hsl(var(--room-hue) 90% 70%),transparent 35%),linear-gradient(160deg,hsl(var(--room-hue) 80% 42%),#071326 75%); }
.room-art-balls { display:flex;align-items:center;justify-content:center;height:100%;gap:-4px; }
.room-art-balls i { width:48px;height:48px;margin-left:-5px;border-radius:50%;display:grid;place-items:center;background:#f6f9ff;color:#0d1732;border:4px solid #e7c34c;font-style:normal;font-weight:1000;box-shadow:0 8px 18px #0008;transform:rotate(calc((var(--i,0) - 2)*4deg)); }
.room-countdown { position:absolute;inset:auto .8rem .8rem;display:grid;padding:.55rem .7rem;border-radius:12px;background:#07101be8;border:1px solid #ffffff3b;text-align:center; }
.room-countdown small{font-size:.62rem;letter-spacing:.12em;color:#9bdfff;font-weight:900}.room-countdown strong{font-size:1.45rem;font-variant-numeric:tabular-nums;}
.room-mode { display:flex;align-items:center;gap:.35rem; }
.room-start-clock { margin-bottom:.7rem;padding:.55rem 1rem;border-radius:15px;background:linear-gradient(90deg,#101a45,#3b1762);border:1px solid #ffffff38;display:flex;justify-content:space-between;align-items:center; }
.room-start-clock small{font-weight:900;letter-spacing:.14em;color:#aeeeff}.room-start-clock strong{font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--gold)}
.package-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:1rem 0; }
.package-card { position:relative;padding:1.2rem;text-align:center;overflow:hidden;border-color:color-mix(in srgb,var(--package-color,#1fd3ff),white 22%); }
.package-card.featured{transform:translateY(-4px);box-shadow:0 15px 42px color-mix(in srgb,var(--package-color),transparent 65%)}
.package-ribbon{font-size:.67rem;font-weight:1000;letter-spacing:.14em;color:var(--package-color)}
.package-value{display:flex;justify-content:center;gap:1rem;margin:1rem 0}.package-value>div{display:grid;place-items:center}.package-value .currency-icon{width:2.6rem;height:2.6rem}.package-value strong{font-size:1.45rem}.package-value small{color:var(--muted)}
.package-price{font-size:2rem;font-weight:1000;color:#fff}.code-redeemer{padding:1.2rem;display:grid;grid-template-columns:1fr minmax(300px,.8fr);gap:1rem;align-items:center}.padded{padding:1rem}.top-gap{margin-top:1rem}
.reward-stage{padding:clamp(1rem,4vw,3rem);display:grid;grid-template-columns:minmax(300px,520px) 1fr;align-items:center;gap:clamp(1rem,5vw,4rem);overflow:hidden}.wheel-wrap{position:relative;aspect-ratio:1;display:grid;place-items:center}.daily-wheel{width:90%;aspect-ratio:1;border-radius:50%;border:12px solid #ffe784;box-shadow:0 0 0 6px #8b5200,0 25px 60px #0009,inset 0 0 35px #0008;position:relative;transition:transform 2.1s cubic-bezier(.12,.72,.13,1)}.daily-wheel.spinning{transform:rotate(var(--spin))}.wheel-hub{position:absolute;width:24%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff9b0,#d98b00);border:5px solid #fff0a1;color:#622e00;font-size:2rem;font-weight:1000;box-shadow:0 8px 20px #0008}.wheel-pointer{position:absolute;z-index:4;top:-1%;font-size:2.8rem;color:#fff3a0;filter:drop-shadow(0 4px 3px #000)}.reward-copy h2{font-size:clamp(2rem,4vw,3.7rem);margin:.3rem 0}.reward-countdown{display:block;font-size:clamp(2rem,5vw,4.5rem);font-variant-numeric:tabular-nums;color:var(--gold);margin:.5rem 0 1rem}.wheel-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:1.2rem}.wheel-legend span{display:flex;align-items:center;gap:.4rem;padding:.45rem .6rem;background:#ffffff0c;border-radius:10px;color:#dcedfa;font-size:.78rem}
.jackpot-editor{border:1px solid var(--line);border-radius:14px;padding:1rem}.jackpot-editor legend{font-weight:1000;color:var(--gem);padding:0 .5rem}.jackpot-tier-row{display:grid;grid-template-columns:1fr repeat(3,minmax(100px,1fr));gap:.6rem;align-items:end;padding:.7rem 0;border-top:1px solid #ffffff17}.jackpot-tier-row label{display:grid;gap:.3rem;font-size:.72rem;color:var(--muted)}.jackpot-tier-row label:first-child{display:flex;align-items:center;color:#fff;font-weight:1000;padding-bottom:.65rem}
@media(max-width:900px){.jackpot-strip{grid-template-columns:repeat(2,1fr)}.visual-hero{grid-template-columns:1fr;min-height:auto}.hero-showpiece{min-height:310px}.reward-stage{grid-template-columns:1fr}.wheel-wrap{max-width:480px;width:100%;margin:auto}.code-redeemer{grid-template-columns:1fr}.jackpot-tier-row{grid-template-columns:1fr 1fr}.mobile-tabs{grid-template-columns:repeat(5,1fr)}}
@media(max-width:560px){.jackpot-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.jackpot-chip{min-width:160px;scroll-snap-align:start}.visual-hero{padding:1.1rem}.hero-showpiece{min-height:255px}.hero-ball{width:65px;height:65px;font-size:1.8rem;border-width:4px}.visual-grid{grid-template-columns:1fr}.wheel-legend{grid-template-columns:1fr}.jackpot-tier-row{grid-template-columns:1fr}.room-start-clock strong{font-size:1.1rem}}
.audio-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#020714d9;backdrop-filter:blur(10px)}.audio-gate .panel{width:min(430px,100%);padding:2rem;text-align:center;border-color:#ffe16e70;box-shadow:0 0 80px #5d35ef66}.audio-symbol{width:88px;height:88px;margin:auto;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--gold),#ff6f4e);color:#281300;font-size:3rem;font-weight:1000;box-shadow:0 0 35px #ffd43b70}.audio-gate h2{font-size:2rem;margin:.8rem 0 .25rem}
.next-pattern {
  border-color: rgba(255, 212, 72, 0.7);
  color: #ffe37a;
  font-weight: 800;
  text-transform: capitalize;
}

/* Lucky Squares package storefront. */
.store-hero{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);align-items:center;gap:1.5rem;padding:clamp(1.4rem,4vw,3.2rem);border:1px solid #ffffff35;border-radius:28px;background:radial-gradient(circle at 82% 42%,#ffce3b52 0 13%,transparent 31%),linear-gradient(120deg,#071d3b,#27216a 52%,#9e176f);box-shadow:0 22px 60px #0007,inset 0 1px #fff4}
.store-hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background-image:radial-gradient(circle,#fff 1px,transparent 1.5px);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent 18%,#000)}
.store-hero h1{font-size:clamp(2.35rem,5.8vw,5rem);line-height:.94;margin:.45rem 0 1rem}.store-hero h1 em{font-style:normal;color:var(--gold);text-shadow:0 0 32px #ffc63870}.store-hero p{max-width:760px;color:#d8eaff}
.store-hero-coins{position:relative;min-height:210px}.store-hero-coins .currency-icon{position:absolute;width:clamp(88px,10vw,145px);height:clamp(88px,10vw,145px);font-size:3.3rem;animation:store-coin-float 4.6s ease-in-out infinite}.store-hero-coins .currency-icon:nth-child(1){left:8%;top:27%;z-index:2}.store-hero-coins .currency-icon:nth-child(2){right:4%;top:2%;animation-delay:-1.6s}.store-hero-coins .currency-icon:nth-child(3){right:12%;bottom:0;animation-delay:-3.1s}
@keyframes store-coin-float{50%{transform:translateY(-12px) rotate(5deg)}}
.package-section-title{margin-top:2rem}.package-grid{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));align-items:stretch}.featured-packages{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.package-offer{--package-color:#1fd3ff;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:450px;padding:0;border:1px solid color-mix(in srgb,var(--package-color),white 40%);border-radius:22px;overflow:hidden;text-align:center;background:#f8fbff;color:#07182f;box-shadow:0 16px 38px #0007,inset 0 1px #fff4;transform-origin:50% 85%;transition:box-shadow .25s ease,filter .25s ease}
.package-offer:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(150deg,#fff8,transparent 45%)}
.package-offer:hover,.package-offer:focus-within{animation:package-showcase-wiggle .72s ease-in-out;filter:saturate(1.12) brightness(1.06);box-shadow:0 22px 54px color-mix(in srgb,var(--package-color),transparent 62%),inset 0 1px #fff7}
@keyframes package-showcase-wiggle{0%,100%{transform:rotate(0) translateY(0)}25%{transform:rotate(-1.1deg) translateY(-5px)}60%{transform:rotate(.9deg) translateY(-5px)}}
.featured-offer{min-height:475px}.offer-flag{position:absolute;z-index:4;left:-7px;right:22%;top:18px;padding:.55rem 1rem;border-radius:0 10px 10px 0;background:linear-gradient(90deg,#6845ff,var(--package-color));color:#fff;font-size:.72rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 7px 18px #0007}
.package-art{height:185px;background-position:center;background-size:cover;border-bottom:4px solid var(--package-color)}
.coin-showcase{position:relative;height:142px;margin:1.35rem auto .25rem;width:170px}.coin-showcase i,.coin-showcase span{position:absolute;width:92px;height:92px;border-radius:50%;border:5px solid #fff3a2;background:radial-gradient(circle at 35% 28%,#fff8a8 0 12%,#ffd83f 14% 45%,#ed9a09 70%,#8a4b00 100%);box-shadow:inset 0 0 0 3px #b56b00,0 12px 24px #0008}.coin-showcase i:nth-child(1){left:5px;top:30px}.coin-showcase i:nth-child(2){right:4px;top:5px}.coin-showcase i:nth-child(3){right:17px;bottom:0}.coin-showcase span{z-index:2;left:39px;top:14px;display:grid;place-items:center;color:#7b4300;font-size:2.7rem;font-weight:1000}
.package-copy{padding:1rem 1rem .45rem}.package-copy h2{margin:.15rem 0 0;font-size:clamp(2.3rem,4vw,3.8rem);line-height:1;color:#07182f;text-shadow:none}.package-copy>strong{font-size:1.08rem;color:#173452}.package-copy p{min-height:2.7em;margin:.65rem 0;color:#45617b;font-size:.82rem}.package-ribbon{color:#8b3ac7;font-weight:900}
.package-bonus{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:auto;padding:.75rem;background:linear-gradient(90deg,#0e9f45,#16bd54);border-top:1px solid #ffffff55;color:#fff}.package-bonus .currency-icon{width:2.25rem;height:2.25rem}.package-bonus span{display:grid;text-align:left}.package-bonus small{color:#e8fff0;font-size:.63rem;text-transform:uppercase;letter-spacing:.07em}.package-bonus strong{color:#fff}.package-bonus.no-bonus{opacity:.9}
.package-buy{display:block;margin:.8rem 1rem 1rem;padding:.78rem 1rem;border-radius:999px;background:linear-gradient(90deg,#ff245e,#ff476f);color:#fff;font-weight:1000;text-decoration:none;box-shadow:0 8px 20px #0004}.package-buy:hover{filter:brightness(1.1)}.package-buy.disabled{background:#9ba9b8;cursor:not-allowed;box-shadow:none}
.code-redeemer{scroll-margin-top:100px;margin-top:2rem;background:linear-gradient(135deg,#081d39e8,#1b164be8)}

/* Lucky Squares Daily Wheel and exact-odds editor. */
.reward-banner{text-align:center;margin:0 auto 1.2rem;max-width:850px}.reward-banner h1{font-size:clamp(2.6rem,6vw,5.5rem);line-height:1;margin:.3rem 0;background:linear-gradient(90deg,#ffe46c,#fff,#5dffe3);background-clip:text;color:transparent;text-shadow:0 12px 34px #0005}
.lucky-wheel-stage{position:relative;isolation:isolate;background:radial-gradient(circle at 25% 46%,#ec1f686b,transparent 39%),linear-gradient(135deg,#120b3f,#072451 62%,#15113b)}.lucky-wheel-stage:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;background-image:linear-gradient(45deg,transparent 45%,#fff 46% 48%,transparent 49%);background-size:34px 34px}
.wheel-wrap{padding:4%}.daily-wheel{width:92%;border:14px solid #ffc52d;box-shadow:0 0 0 5px #783b00,0 0 0 9px #ffeb79,0 28px 70px #000a,inset 0 0 42px #0009}.daily-wheel:before{content:"";position:absolute;inset:3%;border:4px solid #ffe987;border-radius:50%;pointer-events:none}.wheel-lights{position:absolute;inset:-9px;border-radius:50%;background:repeating-conic-gradient(#fff7ad 0 2deg,transparent 2deg 22.5deg);mask:radial-gradient(circle,transparent 0 91%,#000 92% 100%);filter:drop-shadow(0 0 6px #fff3a0)}
.daily-wheel .wheel-wedge-label{position:absolute;z-index:2;left:50%;top:50%;width:39%;height:48px;display:flex;align-items:center;justify-content:center;padding-left:7%;transform-origin:0 50%;transform:rotate(calc((var(--i) + .5)*1turn/var(--count))) translateY(-50%);color:#fff;text-shadow:0 2px 4px #000;font-weight:1000}.daily-wheel .wheel-wedge-label em{width:100%;display:grid;gap:.14rem;font-style:normal;font-size:clamp(.47rem,.91vw,.74rem);line-height:1.05;text-align:center}.daily-wheel .wheel-wedge-label em b{display:flex;align-items:center;justify-content:center;gap:.22rem;white-space:nowrap}.daily-wheel .wheel-wedge-label .currency-icon{position:static!important;display:inline-grid!important;flex:0 0 1.05rem;width:1.05rem!important;height:1.05rem!important;transform:none!important;font-size:.52rem!important;border-width:1px!important}.daily-wheel .wheel-wedge-label .gem-icon img{width:78%;height:78%}
.wheel-hub{z-index:5;width:25%;background:radial-gradient(circle,#fff77a 0 24%,#ffcb18 26% 49%,#d8184e 51% 75%,#7b0d31 100%);border:7px solid #ffdc5b;color:#fff;line-height:1;box-shadow:0 10px 28px #0009,0 0 24px #ffc82a99}.wheel-hub span{font-size:clamp(2rem,5vw,4.7rem);color:#fff86f;text-shadow:0 3px #9a1d00}.wheel-hub small{position:absolute;bottom:14%;font-size:clamp(.35rem,.7vw,.65rem);letter-spacing:.08em}.wheel-crown{position:absolute;z-index:7;top:-1%;left:50%;translate:-50% 0;width:18%;aspect-ratio:1.35;display:grid;place-items:center;border-radius:45% 45% 22% 22%;background:linear-gradient(#fff37a,#e99300);border:4px solid #814200;color:#dc174f;font-size:2.2rem;filter:drop-shadow(0 8px 5px #0007)}.wheel-pointer{z-index:8;top:7%;color:#ff3567;text-shadow:0 3px #7a102d;filter:drop-shadow(0 5px 3px #0009)}
.wheel-spin-button{min-width:min(320px,100%);font-size:1.05rem}.wheel-legend span{border:1px solid #ffffff1f;background:#06162d99}.wheel-legend b{font-size:.76rem}
.wheel-editor-heading,.wheel-wedge-editor{display:grid;grid-template-columns:.55fr 1fr 1fr 1.1fr auto;gap:.55rem;align-items:center}.wheel-editor-heading{padding:.45rem .3rem;color:#a9c8df;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.wheel-wedge-editor{padding:.55rem 0;border-top:1px solid #ffffff18}.wheel-wedge-editor>strong{color:#ffe579}.wheel-wedge-editor label{display:grid;gap:.22rem;color:#afcadf;font-size:.68rem}.wheel-wedge-editor label:last-of-type{grid-template-columns:1fr auto;align-items:end}.wheel-wedge-editor input,.wheel-wedge-editor select{min-width:0;width:100%}.wheel-editor-total{margin:.65rem 0;font-size:1rem}.wheel-editor-total strong{color:#71ffbc}.wheel-editor-total strong.invalid{color:#ff6c78}

@media(max-width:760px){.store-hero{grid-template-columns:1fr}.store-hero-coins{min-height:150px}.store-hero-coins .currency-icon{width:90px;height:90px}.package-grid,.featured-packages{grid-template-columns:1fr}.package-offer,.featured-offer{min-height:390px}.wheel-wedge-label em{font-size:.48rem}.wheel-wedge-label .currency-icon{display:none}.wheel-crown{top:2%}.wheel-editor-heading{display:none}.wheel-wedge-editor{grid-template-columns:1fr 1fr}.wheel-wedge-editor>button{grid-column:span 2}}
@media(prefers-reduced-motion:reduce){.package-offer:hover,.package-offer:focus-within{animation:none;transform:translateY(-3px)}.store-hero-coins .currency-icon{animation:none}}

/* Administration storage pools and live capacity meters. */
.storage-heading{align-items:center;margin:0 0 1rem}.storage-heading h2{margin:.15rem 0}.storage-heading p{max-width:850px;margin:.25rem 0;color:var(--muted)}
.storage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.storage-summary>div{display:grid;gap:.15rem;padding:.85rem;border:1px solid #ffffff20;border-radius:14px;background:linear-gradient(145deg,#082140cc,#111c43cc)}.storage-summary strong{font-size:1.25rem;color:#fff}.storage-summary span{font-size:.72rem;color:var(--muted)}
.storage-pools{display:grid;gap:1rem}.storage-pool{padding:1rem;border:1px solid #ffffff24;border-radius:18px;background:#06162c80}.storage-pool>header{display:flex;justify-content:space-between;gap:1rem;align-items:start}.storage-pool h3{margin:0;color:#fff}.storage-pool p{margin:.25rem 0;color:var(--muted);font-size:.78rem}.storage-pool>header>strong{color:#ffe06b;white-space:nowrap}
.storage-meter,.mini-storage-meter{overflow:hidden;border-radius:999px;background:#020b18;box-shadow:inset 0 1px 5px #000}.storage-meter{height:13px;margin:.7rem 0;border:1px solid #ffffff1c}.storage-meter i,.mini-storage-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16c5aa,#62d6ff 58%,#ffd151);box-shadow:0 0 14px #31d7d0;transition:width .45s ease}.storage-pool-totals{display:flex;gap:1.2rem;flex-wrap:wrap;margin:.55rem 0 1rem;color:var(--muted);font-size:.76rem}.storage-pool-totals b{color:#fff}.storage-table{min-width:900px}.storage-state{display:inline-flex;padding:.22rem .5rem;border-radius:999px;background:#53708a40;text-transform:capitalize;font-size:.68rem;font-weight:900}.storage-state.active{background:#16bd6450;color:#aaffcf}.storage-state.standby{background:#f5b52c38;color:#ffe39b}.storage-state.sealed{background:#f2495f38;color:#ffabb5}.database-usage{display:grid;gap:.25rem;min-width:100px}.database-usage>span{font-size:.7rem;color:#d8ebff}.mini-storage-meter{height:6px}.admin-loading{min-height:150px;display:grid;place-items:center;align-content:center;gap:.55rem;color:var(--muted)}
.jackpot-site-form legend{display:flex;align-items:center;gap:.45rem}.jackpot-site-form legend .currency-icon{width:1.7rem;height:1.7rem}.jackpot-emblem.gem-bank{border-color:#c9ffff;background:radial-gradient(circle at 34% 25%,#fff 0 8%,#54ebe2 12% 34%,#6853e7 66%,#2b176d);box-shadow:0 0 14px #55ffe8,0 0 30px #725cffaa,inset 0 1px #fff}.jackpot-emblem.gem-bank:after{content:"◆";position:absolute;right:-.2rem;bottom:-.15rem;color:#e7ffff;font-size:.55rem;filter:drop-shadow(0 0 5px #fff)}.jackpot-emblem.gc-bank{box-shadow:0 0 18px #ffcc4f88,inset 0 1px #fff8}
.report-currency{display:inline-flex;align-items:center;gap:.4rem;font-weight:850}.report-currency .currency-icon{width:1.45rem;height:1.45rem;font-size:.66rem}.currency-metric{grid-template-columns:auto 1fr;align-items:center}.currency-metric .currency-icon{grid-row:1/3;width:2.6rem;height:2.6rem;margin-right:.5rem}.currency-metric small,.currency-metric strong{text-align:left}.currency-metric.gems{border-color:#71f5e360}.currency-metric.gc{border-color:#ffd45c60}
@media(max-width:900px){.storage-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.storage-heading,.storage-pool>header{align-items:stretch;flex-direction:column}.storage-summary{grid-template-columns:1fr}.storage-pool{padding:.75rem}}

/* Keep the lobby balls in their unmistakable B-I-N-G-O reading order. */
.hero-showpiece{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:.35rem;padding-top:1rem}
.hero-showpiece .hero-ball{position:relative;inset:auto!important;justify-self:center;margin:0;animation-delay:calc(var(--ball-order,0)*-.7s)}
.hero-showpiece .hero-ball.b{--ball-order:0}.hero-showpiece .hero-ball.i{--ball-order:1}.hero-showpiece .hero-ball.n{--ball-order:2}.hero-showpiece .hero-ball.g{--ball-order:3}.hero-showpiece .hero-ball.o{--ball-order:4}
@media(max-width:560px){.hero-showpiece{gap:.12rem;padding-top:.4rem}.hero-showpiece .hero-ball{width:min(58px,17vw);height:min(58px,17vw);font-size:1.65rem}}

/* Professional Slot renderer (Phase 6). Game-specific artwork is supplied by
   a validated immutable R2 manifest; this reusable layer owns presentation only. */
body.slot-playing{overflow:hidden;background:#020812}.slot-playing .ambient,.slot-playing .mobile-tabs{display:none}.slot-playing #app-main{padding:0;max-width:none}.slot-page,#slot-renderer-root{width:100%;height:calc(100dvh - var(--app-header-height));min-height:0}.professional-slot{--slot-bg:#07152d;--slot-panel:#0b2344;--slot-accent:#ffcf3f;--slot-secondary:#34e6ca;--slot-text:#fff;position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--slot-bg);color:var(--slot-text);font-variant-numeric:tabular-nums;touch-action:manipulation}.slot-backdrop{position:absolute;z-index:-3;inset:-3%;background-image:linear-gradient(180deg,#0207132e,#020713a6),var(--slot-background);background-position:center;background-size:cover;filter:saturate(1.08);transform:scale(1.03);animation:slot-backdrop-breathe 12s ease-in-out infinite alternate}.professional-slot:after{content:"";position:absolute;z-index:-2;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 36%,transparent 20%,#01040dc2 100%),linear-gradient(90deg,#0008,transparent 18% 82%,#0008)}@keyframes slot-backdrop-breathe{to{transform:scale(1.065) translate3d(0,-.8%,0)}}
.slot-game-header{z-index:8;display:flex;align-items:center;gap:.55rem;min-height:54px;padding:.35rem max(.55rem,env(safe-area-inset-right)) .35rem max(.55rem,env(safe-area-inset-left));border-bottom:1px solid #ffffff2b;background:linear-gradient(90deg,#020711e8,var(--slot-panel),#020711e8);box-shadow:0 8px 26px #0008;backdrop-filter:blur(14px)}.slot-home,.slot-icon-control{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid #ffffff42;border-radius:11px;background:#050c19c7;color:#fff;font-size:1.15rem;font-weight:900;text-decoration:none;box-shadow:inset 0 1px #fff3}.slot-home:hover,.slot-icon-control:hover,.slot-home:focus-visible,.slot-icon-control:focus-visible{border-color:var(--slot-secondary);box-shadow:0 0 15px color-mix(in srgb,var(--slot-secondary),transparent 45%)}.slot-game-logo{width:auto;height:43px;max-width:220px;object-fit:contain;filter:drop-shadow(0 4px 6px #000)}.slot-header-copy{display:grid;min-width:0;margin-right:auto;line-height:1.05}.slot-header-copy strong{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.slot-header-copy small{overflow:hidden;color:#d1dfeb;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.slot-icon-control{padding:0;cursor:pointer;font-size:.72rem}
.slot-message{position:absolute;z-index:12;top:62px;left:50%;max-width:min(82vw,620px);padding:.34rem .8rem;border:1px solid #ffffff2b;border-radius:999px;background:#020816c9;color:#eaf8ff;font-size:.65rem;font-weight:900;text-align:center;transform:translateX(-50%);box-shadow:0 7px 20px #0008;backdrop-filter:blur(10px)}.slot-reel-frame{position:relative;align-self:center;justify-self:center;width:min(76vw,1050px);height:min(67vh,700px);max-height:calc(100% - 16px);padding:clamp(12px,2.1vw,32px);filter:drop-shadow(0 28px 35px #000b)}.slot-reel-frame:before{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;border-radius:clamp(18px,2vw,34px);background-image:var(--slot-frame);background-position:center;background-size:100% 100%;filter:drop-shadow(0 0 16px color-mix(in srgb,var(--slot-accent),transparent 45%))}.slot-reels{position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--slot-reels),minmax(0,1fr));gap:clamp(2px,.32vw,7px);width:100%;height:100%;padding:clamp(7px,1.2vw,18px);overflow:hidden;border:2px solid color-mix(in srgb,var(--slot-accent),#fff 20%);border-radius:clamp(12px,1.4vw,24px);background:linear-gradient(180deg,#ffffffeb,#b9d7f2e8);box-shadow:inset 0 0 28px #020b1f8f}.slot-reel{position:relative;height:100%;overflow:hidden;border-inline:1px solid #1e36544f;background:linear-gradient(90deg,#0711200f,#fff8,#07112018);contain:layout paint}.slot-reel:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0005,transparent 9% 91%,#0005);box-shadow:inset 0 0 12px #0005}.slot-reel-track{display:flex;flex-direction:column;width:100%;height:auto;will-change:transform,filter}.slot-symbol{position:relative;display:grid;place-items:center;flex:0 0 var(--slot-cell-height,100px);width:100%;height:var(--slot-cell-height,100px);min-height:0;padding:clamp(2px,.45vw,8px);transform:translateZ(0)}.slot-symbol img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px #0006);transform:scale(.94);transition:filter .2s,transform .2s}.slot-symbol.premium img{filter:drop-shadow(0 4px 5px #0007) drop-shadow(0 0 7px var(--slot-accent))}.slot-symbol.winning img{z-index:2;filter:drop-shadow(0 0 7px #fff) drop-shadow(0 0 16px var(--slot-accent));transform:scale(1.07);animation:slot-symbol-win .62s ease-in-out infinite alternate}.slot-reel.pending .slot-reel-track{animation:slot-reel-pending .48s linear infinite}.slot-reel.anticipating{box-shadow:inset 0 0 22px var(--slot-accent);animation:slot-anticipation .42s ease-in-out infinite alternate}@keyframes slot-reel-pending{to{transform:translate3d(0,calc(-1 * var(--slot-cell-height,100px)),0)}}@keyframes slot-symbol-win{to{transform:scale(1.13) translateY(-2px)}}@keyframes slot-anticipation{to{filter:brightness(1.22)}}
.slot-win-banner{position:absolute;z-index:20;top:44%;left:50%;display:grid;place-items:center;min-width:min(500px,84vw);padding:1rem 2rem;border:3px solid #fff4a8;border-radius:25px;background:radial-gradient(circle at 50% 0,#ffef90,#e37b00 45%,#5c1600);color:#fff;opacity:0;pointer-events:none;text-align:center;text-shadow:0 3px 0 #6b1800,0 0 13px #fff;transform:translate(-50%,-50%) scale(.5) rotate(-4deg);box-shadow:0 0 0 7px #ffb92766,0 18px 70px #000d}.slot-win-banner.show{opacity:1;animation:slot-win-enter .5s cubic-bezier(.14,1.35,.3,1) both}.slot-win-banner small{font-size:clamp(1.1rem,3vw,2.2rem);font-weight:1000;letter-spacing:.08em}.slot-win-banner strong{display:flex;align-items:center;gap:.5rem;font-size:clamp(1.7rem,5vw,4.4rem)}.slot-win-banner.mega-win,.slot-win-banner.epic-win,.slot-win-banner.jackpot{background:radial-gradient(circle at 50% 0,#fff,#f543ce 42%,#36106d);box-shadow:0 0 0 7px #fb86ff75,0 0 60px #db5dff,0 18px 70px #000d}.slot-win-banner.jackpot{background:radial-gradient(circle at 50% 0,#fffde1,#ffc72f 35%,#a51e10 70%);box-shadow:0 0 0 8px #fff19d91,0 0 80px #ffcf31,0 18px 70px #000d}@keyframes slot-win-enter{to{transform:translate(-50%,-50%) scale(1) rotate(0)}}
.slot-controls{z-index:9;display:grid;grid-template-columns:minmax(130px,1fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(125px,.65fr);align-items:center;gap:.65rem;padding:.48rem max(.7rem,env(safe-area-inset-right)) max(.48rem,env(safe-area-inset-bottom)) max(.7rem,env(safe-area-inset-left));border-top:1px solid #ffffff30;background:linear-gradient(90deg,#030712f2,var(--slot-panel),#030712f2);box-shadow:0 -8px 28px #0009;backdrop-filter:blur(16px)}.slot-controls label,.slot-balance{display:grid;gap:.12rem}.slot-controls small,.slot-balance small{color:#bdd1df;font-size:.54rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.slot-controls select{width:100%;min-height:40px;padding:.42rem .65rem;border:1px solid #ffffff38;border-radius:11px;background:#020a17d9;color:#fff;font-weight:900}.slot-balance strong{display:flex;align-items:center;gap:.4rem;font-size:1.05rem}.slot-spin-button{display:grid;place-items:center;min-height:58px;padding:.35rem .7rem;border:3px solid #eeffb2;border-radius:999px;background:radial-gradient(circle at 50% 12%,#d9ff6e,#36bd22 55%,#08710d);color:#061400;cursor:pointer;font-weight:1000;box-shadow:inset 0 -6px 9px #084f1c99,0 0 18px #5dff4c91;text-shadow:0 1px #fff8}.slot-spin-button span{font-size:1.25rem;line-height:1}.slot-spin-button small{color:#092806;font-size:.48rem}.slot-spin-button:hover,.slot-spin-button:focus-visible{filter:brightness(1.15);transform:scale(1.025)}.slot-spin-button:disabled{cursor:not-allowed;filter:grayscale(.8);opacity:.48;transform:none}
.slot-bonus-panel{position:absolute;z-index:14;right:max(1rem,env(safe-area-inset-right));top:76px;display:grid;place-items:center;min-width:135px;padding:.65rem;border:2px solid #fff19e;border-radius:17px;background-image:linear-gradient(145deg,#8e2616dc,#3b0b4de8),var(--slot-bonus-background);background-position:center;background-size:cover;box-shadow:0 0 25px #ffba52a3}.slot-bonus-panel[hidden]{display:none}.slot-bonus-panel span{color:#ffe486;font-size:.62rem;font-weight:1000;letter-spacing:.08em}.slot-bonus-panel strong{font-size:2rem}.slot-bonus-panel small{min-height:1em;color:#ffdbe7;font-size:.55rem}.slot-bonus-panel .button{margin-top:.35rem;padding:.4rem .6rem;font-size:.62rem}.professional-slot.bonus-active .slot-backdrop{background-image:linear-gradient(180deg,#19011d36,#05010ba6),var(--slot-background)}
.slot-pick-stage{position:absolute;z-index:16;inset:clamp(58px,9vh,84px) clamp(10px,8vw,130px) clamp(74px,12vh,104px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:.6rem;padding:clamp(.7rem,2vw,1.4rem);border:2px solid #ffe985;border-radius:28px;background-image:linear-gradient(145deg,#050a23c9,#36145bd9),var(--slot-bonus-background);background-position:center;background-size:cover;box-shadow:0 0 50px #7adfff75,inset 0 0 45px #3c1a6f99;backdrop-filter:blur(7px)}.slot-pick-stage[hidden]{display:none}.slot-pick-heading{display:grid;place-items:center;text-align:center}.slot-pick-heading small{color:#7ff4ff;font-weight:1000;letter-spacing:.14em}.slot-pick-heading strong{font-size:clamp(1.25rem,3vw,2.4rem);color:#fff5c1;text-shadow:0 0 16px #8eeeff}.slot-pick-heading span{color:#d8e8ff;font-weight:800}.slot-pick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.35rem,1vw,.8rem);min-height:0}.slot-star-lantern{position:relative;display:grid;place-items:center;align-content:center;gap:.2rem;min-height:0;border:2px solid #ffe186;border-radius:22px;background:radial-gradient(circle at 50% 30%,#fff8a0,#7a3ed8 24%,#0b1b53 68%,#030819);color:#fff3b1;cursor:pointer;box-shadow:inset 0 0 22px #86eaff4f,0 5px 18px #0008;transition:transform .18s,filter .18s,box-shadow .18s}.slot-star-lantern:before,.slot-star-lantern:after{content:"";position:absolute;inset:9%;border:1px solid #8ef3ff68;border-radius:16px;transform:rotate(3deg)}.slot-star-lantern:after{transform:rotate(-3deg)}.slot-star-lantern i{z-index:1;font-style:normal;font-size:clamp(1.5rem,5vh,3.2rem);filter:drop-shadow(0 0 12px #fff)}.slot-star-lantern span{z-index:1;font-size:clamp(.55rem,1.2vw,.78rem);font-weight:1000;letter-spacing:.07em;text-transform:uppercase}.slot-star-lantern:not(:disabled):hover,.slot-star-lantern:not(:disabled):focus-visible{transform:translateY(-4px) scale(1.025);filter:brightness(1.22);box-shadow:inset 0 0 30px #86eaff88,0 0 25px #ffd95f88}.slot-star-lantern.opened{opacity:.35;filter:grayscale(.65)}.slot-star-lantern.revealed{opacity:1;background:radial-gradient(circle,#fffbd0,#ffc02e 25%,#b62e9b 66%,#32125f);animation:slot-lantern-reveal .7s ease both}.slot-star-lantern.revealed span{font-size:clamp(.65rem,1.4vw,.95rem)}@keyframes slot-lantern-reveal{50%{transform:scale(1.12);box-shadow:0 0 55px #fff29e}}
.slot-effects{position:absolute;z-index:19;inset:0;overflow:hidden;pointer-events:none}.slot-particle{position:absolute;top:-4%;left:var(--x);width:13px;height:19px;border-radius:4px;background:linear-gradient(145deg,#fff9a6,#ffad12 55%,#b13c00);animation:slot-particle-fall 1.9s var(--delay) cubic-bezier(.22,.65,.36,1) both;box-shadow:0 0 8px #fff89e}.slot-particle[data-effect="coins"]{width:18px;height:18px;border:3px solid #fff3a5;border-radius:50%;background:#f6b800;box-shadow:inset 0 0 0 3px #9c5f00,0 0 13px #ffd94f}.slot-particle[data-effect="fire"]{border-radius:80% 15% 55% 45%;background:linear-gradient(#fff27a,#ff7b00 55%,#b50000);filter:drop-shadow(0 0 7px #ff4800)}.slot-particle[data-effect="lightning"]{width:14px;height:27px;border-radius:0;background:#fff26a;clip-path:polygon(55% 0,100% 0,68% 40%,100% 40%,25% 100%,42% 55%,0 55%);filter:drop-shadow(0 0 8px #72e8ff)}.slot-particle[data-effect="magic"],.slot-particle[data-effect="sparkles"]{width:16px;height:16px;border-radius:0;background:#fff;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%)}.slot-particle[data-effect="confetti"]{width:9px;height:22px;border-radius:1px}.slot-particle[data-effect="snow"]{width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 0 12px #c9f4ff}.slot-particle[data-effect="smoke"]{width:28px;height:28px;border-radius:50%;background:#cbd2ddaa;filter:blur(3px);box-shadow:0 0 10px #fff5}@keyframes slot-particle-fall{to{transform:translate3d(var(--drift),105vh,0) rotate(620deg);opacity:.1}}
.slot-loading{position:absolute;z-index:30;inset:0;display:grid;place-content:center;justify-items:center;gap:.9rem;background:linear-gradient(145deg,var(--slot-bg),#02050e);transition:opacity .3s}.slot-loading.done{opacity:0}.slot-loading img{width:min(58vw,420px);height:min(30vh,220px);object-fit:contain;filter:drop-shadow(0 10px 16px #000)}.slot-loading strong{font-size:clamp(1rem,2.4vw,1.5rem)}.slot-loading-meter{width:min(68vw,460px);height:9px;overflow:hidden;border:1px solid #ffffff42;border-radius:99px;background:#0008}.slot-loading-meter i{display:block;width:45%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--slot-secondary),var(--slot-accent));animation:slot-loading 1s ease-in-out infinite alternate}@keyframes slot-loading{to{width:100%}}
.professional-slot[data-effects="off"] .slot-backdrop,.professional-slot[data-effects="off"] .slot-symbol.winning img,.professional-slot[data-effects="off"] .slot-reel.anticipating{animation:none}.professional-slot[data-effects="off"] .slot-backdrop{transform:none}.professional-slot[data-effects="reduced"] .slot-backdrop{animation-duration:24s}
@media(max-width:900px){.slot-game-header{min-height:47px;padding-block:.22rem}.slot-game-logo{height:36px;max-width:150px}.slot-header-copy{display:none}.slot-message{top:51px;font-size:.55rem}.slot-reel-frame{width:min(94vw,940px);height:min(68vh,620px);padding:12px}.slot-controls{grid-template-columns:1fr .72fr .72fr 110px;gap:.35rem;padding:.32rem .45rem}.slot-controls select{min-height:35px;padding:.25rem .4rem;font-size:.67rem}.slot-balance strong{font-size:.78rem}.slot-spin-button{min-height:50px}.slot-bonus-panel{top:55px;right:.5rem;min-width:105px;padding:.35rem}.slot-bonus-panel strong{font-size:1.35rem}}
@media(max-width:650px) and (orientation:portrait){.slot-page,#slot-renderer-root{height:calc(100dvh - 58px)}.professional-slot{grid-template-rows:auto minmax(0,1fr) auto}.slot-game-header{gap:.3rem}.slot-game-logo{max-width:112px}.slot-icon-control,.slot-home{width:34px;height:34px}.slot-message{max-width:70vw}.slot-reel-frame{width:98vw;height:min(57vh,620px);padding:9px}.slot-reels{padding:5px;gap:1px}.slot-symbol{padding:1px}.slot-controls{grid-template-columns:1fr 1fr 86px;gap:.25rem}.slot-balance{grid-column:1/-1;display:flex;justify-content:center;gap:.45rem}.slot-spin-button{grid-column:3;grid-row:1/3;min-height:68px}.slot-controls label{min-width:0}.slot-win-banner{padding:.7rem 1rem}.slot-bonus-panel{top:50px}}
@media(max-width:650px) and (orientation:portrait){.slot-backdrop{background-image:linear-gradient(180deg,#0207132e,#020713a6),var(--slot-background-mobile)}}
@media(max-width:650px) and (orientation:portrait){.slot-pick-stage{inset:54px 6px 94px;padding:.55rem;border-radius:18px}.slot-pick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.slot-star-lantern{border-radius:13px}.slot-pick-heading strong{font-size:1.18rem}.slot-pick-heading small{font-size:.52rem}}
@media(orientation:landscape) and (max-height:600px){.slot-page,#slot-renderer-root{height:calc(100dvh - 50px);min-height:300px}.slot-game-header{position:absolute;top:0;left:0;right:0;min-height:42px;background:linear-gradient(180deg,#020711e8,transparent);border:0;box-shadow:none}.slot-game-logo{height:34px}.slot-header-copy{display:none}.slot-message{top:7px;max-width:45vw}.slot-reel-frame{width:min(79vw,1040px);height:calc(100% - 55px);padding:10px}.slot-controls{position:absolute;right:0;bottom:0;left:0;grid-template-columns:1fr .7fr .7fr 105px;padding:.26rem .45rem;background:linear-gradient(0deg,#020711f2,#071329d9)}.slot-controls select{min-height:32px}.slot-spin-button{min-height:45px}.slot-bonus-panel{top:45px}.slot-home,.slot-icon-control{width:32px;height:32px}.slot-symbol{padding:2px}}
@media(orientation:landscape) and (max-height:600px){.slot-pick-stage{inset:43px 8vw 54px;padding:.45rem}.slot-pick-heading{position:absolute;top:.35rem;left:50%;transform:translateX(-50%);z-index:2}.slot-pick-heading small{display:none}.slot-pick-heading strong{font-size:1rem}.slot-pick-heading span{font-size:.58rem}.slot-pick-grid{padding-top:35px;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem}.slot-star-lantern{border-radius:12px}.slot-star-lantern i{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){.slot-backdrop,.slot-reel.pending .slot-reel-track,.slot-symbol.winning img,.slot-reel.anticipating,.slot-particle,.slot-loading-meter i{animation:none!important}.slot-win-banner.show{animation:none;transform:translate(-50%,-50%) scale(1)}}

/* Professional Slots Phase 8: responsive discovery lobby. */
.slot-lobby-page{width:min(1500px,100%);margin-inline:auto}.slot-lobby-hero{--game-accent:#ffd76b;--game-secondary:#59dfff;position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(360px,43vw,610px);overflow:hidden;border:1px solid color-mix(in srgb,var(--game-accent),transparent 58%);border-radius:30px;background:linear-gradient(135deg,#07122f,#251052);box-shadow:0 26px 70px #02081799,0 0 42px color-mix(in srgb,var(--game-secondary),transparent 78%)}.slot-hero-art{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:slot-hero-drift 14s ease-in-out infinite alternate}.slot-hero-vignette{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#030716f7 0,#050919db 37%,#0509194d 66%,#0307169c),linear-gradient(0deg,#030716ed 0,transparent 48%),radial-gradient(circle at 75% 30%,transparent 10%,#05091958 70%)}@keyframes slot-hero-drift{to{transform:scale(1.035) translate3d(-.4%,-.5%,0)}}.slot-hero-copy{display:grid;align-content:end;gap:.68rem;width:min(650px,70%);padding:clamp(1.3rem,4vw,4rem);text-shadow:0 3px 15px #000}.slot-hero-logo{width:min(420px,75%);max-height:140px;object-fit:contain;object-position:left center;filter:drop-shadow(0 9px 14px #000)}.slot-hero-copy h1{margin:0;color:#fff;font-size:clamp(2rem,4.8vw,4.8rem);line-height:.93;letter-spacing:-.045em}.slot-hero-copy p{max-width:600px;margin:0;color:#e7f1ff;font-size:clamp(.88rem,1.4vw,1.15rem);font-weight:700;line-height:1.5}.slot-hero-features,.slot-card-badges,.slot-card-currencies{display:flex;flex-wrap:wrap;gap:.38rem}.slot-hero-features span,.slot-currency-tag,.slot-discovery-badge{display:inline-flex;align-items:center;gap:.28rem;padding:.34rem .62rem;border:1px solid #ffffff35;border-radius:999px;background:#030818c9;color:#eff8ff;font-size:.7rem;font-weight:1000;box-shadow:inset 0 1px #fff2;backdrop-filter:blur(9px)}.slot-hero-features span:first-child{border-color:color-mix(in srgb,var(--game-accent),#fff 20%);color:#fff4b5}.slot-hero-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.slot-hero-actions .button{min-width:210px;background:linear-gradient(135deg,var(--game-accent),#ff8c24);color:#1c0d00;box-shadow:0 0 22px color-mix(in srgb,var(--game-accent),transparent 55%)}.slot-safe-play{color:#bad0e5;font-size:.68rem;font-weight:850}.slot-hero-pages{position:absolute;right:1.1rem;bottom:1rem;display:flex;gap:.4rem}.slot-hero-pages button{width:10px;height:10px;padding:0;border:1px solid #fff9;border-radius:99px;background:#ffffff42;cursor:pointer;box-shadow:0 2px 8px #000}.slot-hero-pages button.active{width:30px;background:var(--game-accent)}.slot-lobby-hero.art-unavailable{background:radial-gradient(circle at 75% 20%,var(--game-secondary),transparent 22%),radial-gradient(circle at 65% 75%,var(--game-accent),transparent 25%),linear-gradient(135deg,#07122f,#251052)}
.slot-resume-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.9rem 1.1rem;border:1px solid #ffdf7080;border-radius:18px;background:linear-gradient(105deg,#1a114bea,#6a2146e8);box-shadow:0 10px 28px #0006}.slot-resume-banner div{display:grid;gap:.2rem}.slot-resume-banner strong{color:#fff5b0;font-size:1.08rem}.slot-resume-banner small{color:#d8e8ff}.slot-resume-banner .button{flex:0 0 auto}
.slot-discovery-controls{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:.8rem 1rem;margin-top:1rem;padding:1rem;border-color:#5bdcff35;background:linear-gradient(135deg,#07182df2,#11143bef)}.slot-search-field{position:relative;display:grid;gap:.28rem}.slot-search-field label,.slot-select-row label{color:#bcd2e7;font-size:.62rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.slot-search-field span{position:absolute;left:.78rem;bottom:.68rem;pointer-events:none}.slot-search-field input{height:46px;padding-left:2.35rem;border:1px solid #ffffff30;border-radius:13px;background:#020918d9;color:#fff;font-size:.88rem;font-weight:800}.slot-search-field input:focus{border-color:#59dfff;outline:3px solid #59dfff30}.slot-filter-row{display:flex;align-items:end;gap:.38rem;overflow-x:auto;scrollbar-width:none}.slot-filter-row::-webkit-scrollbar{display:none}.slot-filter{min-height:42px;padding:.48rem .78rem;border:1px solid #ffffff28;border-radius:12px;background:#071022d6;color:#d8e7f6;cursor:pointer;font-size:.7rem;font-weight:1000;white-space:nowrap}.slot-filter.active{border-color:#ffe070;background:linear-gradient(135deg,#ffe070,#ff9e2c);color:#170c00;box-shadow:0 0 18px #ffc54245}.slot-select-row{grid-column:1/-1;display:flex;align-items:end;gap:.7rem}.slot-select-row label{display:grid;gap:.26rem}.slot-select-row select{min-width:180px;min-height:40px;border:1px solid #ffffff2c;border-radius:11px;background:#020918;color:#fff;font-weight:800}.slot-select-row>[data-slot-result-count]{margin-left:auto;padding:.42rem .7rem;border-radius:999px;background:#ffffff0d;color:#a8bfd5;font-size:.7rem;font-weight:900}
.slot-library-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:2rem .2rem .9rem}.slot-library-heading h2{margin:.12rem 0 0;color:#fff;font-size:clamp(1.55rem,3vw,2.5rem)}.slot-library-heading p{max-width:560px;margin:0;color:#9fb6cd;font-size:.72rem;text-align:right}.slot-lobby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,1.4vw,1.3rem)}.slot-lobby-card{--game-accent:#ffd76b;--game-secondary:#59dfff;position:relative;display:grid;grid-template-rows:auto 1fr;min-width:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--game-secondary),transparent 70%);border-radius:22px;background:linear-gradient(160deg,#0c1d38,#080d20 65%);box-shadow:0 14px 34px #0006;transition:transform .22s ease,border-color .22s,box-shadow .22s}.slot-lobby-card:hover,.slot-lobby-card:focus-within{z-index:2;border-color:color-mix(in srgb,var(--game-accent),#fff 15%);transform:translateY(-7px);box-shadow:0 22px 45px #0009,0 0 26px color-mix(in srgb,var(--game-secondary),transparent 78%)}.slot-card-art{position:relative;isolation:isolate;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(circle at 60% 25%,var(--game-secondary),transparent 25%),linear-gradient(135deg,#172657,#361c50)}.slot-card-art>img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .3s}.slot-lobby-card:hover .slot-card-art>img{transform:scale(1.045);filter:saturate(1.1) contrast(1.03)}.slot-card-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,#040817e8),linear-gradient(90deg,#0003,transparent 45%)}.slot-favorite{position:absolute;z-index:3;top:.6rem;right:.6rem;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #fff6;border-radius:50%;background:#020817c7;color:#fff;cursor:pointer;font-size:1.25rem;box-shadow:0 5px 12px #0007;backdrop-filter:blur(8px)}.slot-favorite.on{border-color:#ffe176;color:#ffe176;text-shadow:0 0 12px #ffd82e}.slot-card-badges{position:absolute;z-index:2;bottom:.6rem;left:.6rem;right:3rem}.slot-discovery-badge{padding:.25rem .48rem;font-size:.57rem}.slot-discovery-badge.featured{border-color:#ffe176;color:#ffe8a0}.slot-discovery-badge.new{border-color:#66f3d2;color:#9effe8}.slot-card-body{display:grid;grid-template-rows:auto auto auto auto 1fr;gap:.62rem;padding:.85rem}.slot-card-logo{display:flex;align-items:center;gap:.65rem;min-width:0}.slot-card-logo>img{width:75px;height:46px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 4px 6px #000)}.slot-card-logo>div{display:grid;min-width:0}.slot-card-logo strong{overflow:hidden;color:#fff;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.slot-card-logo small{overflow:hidden;color:var(--game-secondary);font-size:.61rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.slot-card-body>p{display:-webkit-box;min-height:2.7em;margin:0;overflow:hidden;color:#afc3d8;font-size:.7rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.slot-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.slot-card-meta>span{display:grid;gap:.1rem;padding:.45rem .55rem;border:1px solid #ffffff19;border-radius:10px;background:#02081570}.slot-card-meta small{color:#849db5;font-size:.5rem;font-weight:900;text-transform:uppercase}.slot-card-meta b{display:flex;align-items:center;gap:.25rem;color:#eef7ff;font-size:.69rem}.slot-card-currencies{align-content:start}.slot-currency-tag{padding:.24rem .45rem;font-size:.55rem}.slot-currency-tag.gc{border-color:#ffd34b66}.slot-currency-tag.gems{border-color:#5feaff66}.slot-play-now{align-self:end;display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:.1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--game-accent),#fff 8%),color-mix(in srgb,var(--game-accent),#ff6a00 48%));color:#160b00;box-shadow:0 7px 18px color-mix(in srgb,var(--game-accent),transparent 70%)}.slot-play-now b{font-size:.9rem}.slot-empty{grid-column:1/-1;min-height:240px}.slot-lobby-skeleton{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.slot-lobby-skeleton i{height:320px;border-radius:24px;background:linear-gradient(100deg,#0a1730 20%,#16345b 42%,#0a1730 64%);background-size:300% 100%;animation:slot-skeleton 1.4s infinite}.slot-lobby-skeleton i:first-child{grid-column:1/-1;height:480px}.slot-lobby-skeleton p{grid-column:1/-1;color:#afc4d8;text-align:center}@keyframes slot-skeleton{to{background-position:-150% 0}}
@media(max-width:1050px){.slot-lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-lobby-hero{min-height:440px}.slot-hero-copy{width:76%;padding:2rem}.slot-discovery-controls{grid-template-columns:1fr}.slot-filter-row{align-items:center}.slot-select-row{grid-column:1}}
@media(max-width:650px){.slot-lobby-page{padding-inline:.45rem}.slot-lobby-hero{min-height:470px;border-radius:20px}.slot-hero-art{object-position:62% center}.slot-hero-vignette{background:linear-gradient(0deg,#030716f9 0,#030716d9 56%,#03071642),linear-gradient(90deg,#0307168a,transparent)}.slot-hero-copy{width:100%;padding:1.1rem}.slot-hero-logo{width:62%;max-height:92px}.slot-hero-copy h1{font-size:2rem}.slot-hero-copy p{font-size:.76rem}.slot-hero-features{max-height:62px;overflow:hidden}.slot-safe-play{display:none}.slot-hero-actions .button{width:100%;min-width:0}.slot-resume-banner{align-items:stretch;flex-direction:column}.slot-discovery-controls{padding:.7rem}.slot-select-row{display:grid;grid-template-columns:1fr 1fr}.slot-select-row select{width:100%;min-width:0}.slot-select-row>[data-slot-result-count]{grid-column:1/-1;justify-self:end}.slot-library-heading{align-items:start;flex-direction:column;margin-top:1.3rem}.slot-library-heading p{text-align:left}.slot-lobby-grid{grid-template-columns:1fr}.slot-card-art{aspect-ratio:16/9}.slot-card-body{padding:.75rem}.slot-lobby-skeleton{grid-template-columns:1fr}.slot-lobby-skeleton i:first-child{height:430px}}
@media(orientation:landscape) and (max-height:650px){.slot-lobby-hero{min-height:calc(100dvh - 110px)}.slot-hero-copy{width:58%;padding:1.2rem 1.8rem}.slot-hero-logo{max-height:70px}.slot-hero-copy h1{font-size:2rem}.slot-hero-copy p{font-size:.68rem}.slot-hero-features span{font-size:.57rem}.slot-lobby-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.slot-card-art{aspect-ratio:16/8.5}}
@media(prefers-reduced-motion:reduce){.slot-hero-art,.slot-lobby-skeleton i{animation:none}.slot-lobby-card{transition:none}.slot-lobby-card:hover{transform:none}}

/* Clear automatic-room setup, package artwork selection, and shared jackpots. */
.room-editor{padding:1.15rem;margin-bottom:1.25rem}.room-editor-intro{padding:1rem;border-radius:16px;background:linear-gradient(125deg,#123f70,#241f68)}.room-editor-intro h2{margin:.25rem 0}.room-section-title{display:flex;align-items:center;gap:.65rem;margin:.65rem 0 0;padding:.7rem 0;border-bottom:1px solid #ffffff24}.room-section-title span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--gold);color:#1a2100}.compact-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}.compact-options label{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.15rem .65rem;align-items:center;padding:.75rem;border:1px solid #ffffff20;border-radius:12px;background:#061a3580}.compact-options label input{grid-row:1/3;width:1.25rem;height:1.25rem}.compact-options label span,.compact-options>label{color:#fff;font-weight:850}.compact-options label small{color:var(--muted);font-weight:500}.pattern-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:.45rem}.pattern-choice-grid label{display:flex;align-items:center;gap:.45rem;min-height:46px;padding:.55rem .7rem;border:1px solid #ffffff20;border-radius:10px;background:#071a34}.pattern-choice-grid input{width:1.15rem;height:1.15rem}.room-contribution-row{grid-template-columns:minmax(130px,.7fr) minmax(220px,1.3fr)}
.package-art-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:.6rem}.package-art-picker label{position:relative;cursor:pointer}.package-art-picker input{position:absolute;inset:.4rem auto auto .4rem;z-index:2;width:1.1rem;height:1.1rem}.package-art-picker img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border:3px solid transparent;border-radius:10px}.package-art-picker input:checked+img{border-color:var(--gold);box-shadow:0 0 18px #ffd53888}.package-art-picker label span{position:absolute;right:.35rem;bottom:.3rem;padding:.1rem .35rem;border-radius:6px;background:#031225dd;color:#fff;font-size:.7rem}
.jackpot-site-form{display:grid;gap:.55rem}.jackpot-site-heading,.jackpot-site-row{display:grid;grid-template-columns:.6fr .8fr repeat(3,1fr);gap:.55rem;align-items:center}.jackpot-site-heading{padding:.5rem;color:var(--muted);font-size:.72rem;text-transform:uppercase}.jackpot-site-row{padding:.65rem;border-top:1px solid #ffffff1c}.switch-label{display:flex;align-items:center;gap:.35rem}.promo-created{margin-top:1rem;font-size:1.05rem}.promo-created code{user-select:all;color:var(--gold)}
.room-jackpot-bar{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-bottom:.25rem}.room-jackpot{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:.4rem;padding:.55rem .75rem;border:1px solid #ff6fd366;border-radius:12px;background:linear-gradient(100deg,#650752d9,#17115ede);box-shadow:inset 0 1px #fff3,0 5px 18px #0005}.room-jackpot small{color:#ffd7f6;font-weight:1000}.room-jackpot strong{text-align:right;color:#fff;font-size:1.15rem}.room-jackpot span{color:#7dffe4;font-size:.72rem}.room-jackpot.inactive{opacity:.45;filter:grayscale(.6)}
@media(max-width:760px){.jackpot-site-heading{display:none}.jackpot-site-row{grid-template-columns:1fr 1fr}.jackpot-site-row strong{grid-column:1/-1}.room-jackpot-bar{grid-template-columns:repeat(2,1fr)}.room-jackpot{grid-template-columns:auto 1fr}.room-jackpot span{display:none}}

/* 1.0 commercial polish: compact store, legible wheel, dual jackpots, and operations screens. */
.gem-icon{transform:none;border:0;background:none;box-shadow:none;border-radius:0;overflow:visible}.gem-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 7px #50ffe599)}
.package-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.featured-packages{grid-template-columns:repeat(3,minmax(0,1fr))}.package-offer,.featured-offer{min-height:385px}.package-art{height:145px}.package-copy{padding:.75rem .8rem .3rem}.package-copy h2{font-size:clamp(1.75rem,2.7vw,2.65rem)}.package-copy p{min-height:2.2em;margin:.45rem 0}.package-price{font-size:1.65rem}.package-bonus{padding:.58rem}.package-buy{margin:.65rem .8rem .8rem;padding:.65rem}
.wheel-wedge-label{width:37%;height:58px;padding:0;justify-content:center;transform-origin:0 50%;transform:rotate(calc((var(--i) + .5)*1turn/var(--count))) translateX(42%)}.wheel-wedge-label em{width:100%;max-width:none;transform:rotate(calc((var(--i) + .5)*-1turn/var(--count)));text-align:center;font-size:clamp(.48rem,.86vw,.72rem);line-height:1.1}.wheel-wedge-label em b{display:block;white-space:nowrap}.daily-wheel{overflow:hidden}
.jackpot-showcase{position:relative;margin-bottom:1.15rem;padding:.8rem;border:1px solid #ffffff40;border-radius:22px;background:radial-gradient(circle at 50% -30%,#ffdb5770,transparent 48%),linear-gradient(120deg,#111c50,#4b1268 52%,#101d4c);box-shadow:0 18px 45px #0008,inset 0 1px #fff5;overflow:hidden}.jackpot-showcase:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 28%,#ffffff1d 43%,transparent 58%);animation:jackpot-shine 6s linear infinite}.jackpot-showcase-heading{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;margin:0 .25rem .7rem}.jackpot-showcase-heading strong{display:block;font-size:1.35rem}.jackpot-currency-pills{display:flex;gap:.35rem}.jackpot-currency-pills button{display:flex;align-items:center;gap:.3rem;padding:.45rem .7rem;border:1px solid #ffffff35;border-radius:999px;background:#06152a;color:#cde4f5}.jackpot-currency-pills button.active{background:linear-gradient(90deg,#1caeaa,#5844e8);color:#fff;box-shadow:0 0 20px #37ffe655}.jackpot-showcase .jackpot-strip{position:relative;z-index:1;display:none;margin:0}.jackpot-showcase .jackpot-strip.active{display:grid;animation:jackpot-panel-in .45s ease}.jackpot-chip{grid-template-columns:auto 1fr;padding:.6rem .78rem;border-radius:16px;min-height:74px}.jackpot-chip>div{display:grid}.jackpot-chip .jackpot-emblem,.room-jackpot .jackpot-emblem,.jackpot-emblem{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:1.35rem;color:#fff5a0;background:radial-gradient(circle,#ff638c,#9c0d7c 62%,#4d074f);border:2px solid #ffd86b;box-shadow:0 0 18px #ff5bc7aa,inset 0 1px #fff8}.jackpot-emblem.minor{background:radial-gradient(circle,#7aeaff,#493bd0 66%,#171074)}.jackpot-emblem.major{background:radial-gradient(circle,#ff9d68,#d5147d 66%,#690047)}.jackpot-emblem.grand{background:radial-gradient(circle,#fff289,#e89a08 62%,#8c4100);box-shadow:0 0 24px #ffd638bb}.jackpot-chip span{font-size:.65rem;color:#dcfff7}.jackpot-chip strong{font-size:1.25rem}
.room-jackpot-showcase{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.55fr) 1.45fr;gap:.8rem;align-items:center;padding:.7rem .85rem;margin-bottom:.35rem;border:1px solid #ffffff38;border-radius:18px;background:radial-gradient(circle at 90% 20%,#ffcb503b,transparent 32%),linear-gradient(100deg,#061a3a,#24104d);box-shadow:0 10px 30px #0007,inset 0 1px #fff4}.room-jackpot-heading{display:grid}.room-jackpot-heading>span{font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:#80ebff;font-weight:900}.room-jackpot-heading strong{font-size:1.25rem}.room-jackpot-heading small{color:#9db8cf}.room-jackpot-showcase .room-jackpot-bar{display:none;margin:0}.room-jackpot-showcase .room-jackpot-bar.active{display:grid;animation:jackpot-panel-in .45s ease}.room-jackpot{grid-template-columns:auto 1fr;padding:.48rem .55rem;border-radius:14px}.room-jackpot>div{display:grid}.room-jackpot strong{text-align:left}.room-jackpot .jackpot-emblem{width:2rem;height:2rem;font-size:1rem}.room-jackpot.minor{border-color:#6bdfff80;background:linear-gradient(100deg,#103472,#17115e)}.room-jackpot.major{border-color:#ff588d88;background:linear-gradient(100deg,#781044,#3b115e)}.room-jackpot.grand{border-color:#ffcf5688;background:linear-gradient(100deg,#7f4108,#4d1458)}
.report-grid,.redemption-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.report-summary,.wallet-summary{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}.wallet-summary span,.identity-pill{padding:.4rem .65rem;border:1px solid #ffffff28;border-radius:999px;background:#06162d}.identity-pill.verified{border-color:#60efb0;color:#8fffc7}.identity-pill.pending{border-color:#ffe06d;color:#ffe892}.player-profile-editor{margin:1rem 0}.redemption-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.redemption-card{overflow:hidden}.redemption-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.redemption-card-body{padding:1rem}.redemption-hero{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem;border:1px solid #ffffff38;border-radius:20px;background:linear-gradient(120deg,#162150,#491760)}.redemption-balance{display:flex;align-items:center;gap:.6rem}.redemption-balance .currency-icon{width:3.2rem;height:3.2rem}.redemption-balance span{display:grid}.redemption-tabs{display:flex;gap:.5rem;overflow-x:auto;margin:1rem 0}.redemption-tabs a{padding:.5rem .8rem;border:1px solid var(--category-color,#4dffe0);border-radius:999px;color:#fff;text-decoration:none;background:#07172f}.important-banner{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:1rem 0;padding:.8rem 1rem;border:1px solid #ffe56f70;border-radius:14px;background:#4d3b0c88}.redemption-item-image{width:100%;aspect-ratio:16/10;object-fit:cover;background:#09203e}.redemption-item-placeholder{display:grid;place-items:center;width:100%;aspect-ratio:16/10;font-size:4rem;background:linear-gradient(135deg,#0e3c5e,#4d1d75)}
@keyframes jackpot-shine{from{transform:translateX(-120%)}to{transform:translateX(120%)}}@keyframes jackpot-panel-in{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.package-grid,.featured-packages{grid-template-columns:repeat(2,minmax(0,1fr))}.room-jackpot-showcase{grid-template-columns:1fr}.report-grid,.redemption-admin-grid{grid-template-columns:1fr}}
@media(max-width:650px){.package-grid,.featured-packages{grid-template-columns:1fr}.package-offer,.featured-offer{min-height:360px}.jackpot-showcase-heading{align-items:flex-start;gap:.6rem;flex-direction:column}.jackpot-currency-pills{width:100%}.jackpot-currency-pills button{flex:1;justify-content:center}.room-jackpot-showcase{padding:.6rem}.room-jackpot-showcase .room-jackpot-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.redemption-hero{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.jackpot-showcase:after{animation:none}.jackpot-showcase .jackpot-strip.active,.room-jackpot-showcase .room-jackpot-bar.active{animation:none}}
/* Live lobby pulse: at-a-glance activity with a premium broadcast feel. */
.lobby-pulse{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.8rem;align-items:stretch;margin:1rem 0 2rem;padding:.75rem;border:1px solid #7afce33b;border-radius:20px;background:linear-gradient(110deg,#061b38e8,#112c58e8 58%,#261958e8);box-shadow:0 18px 50px #02091665,inset 0 1px #ffffff17}.lobby-pulse>div{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.65rem .8rem;border-right:1px solid #ffffff18}.lobby-pulse>div i{display:grid;place-items:center;flex:0 0 2.2rem;height:2.2rem;border-radius:50%;font-style:normal;color:#07162d;background:linear-gradient(145deg,#78ffe1,#32cda9);box-shadow:0 0 22px #42e9be66}.lobby-pulse>div:first-child i{color:#fff;background:linear-gradient(145deg,#ff4d84,#e81e5a);box-shadow:0 0 22px #ff397866;animation:lobby-live-pulse 1.8s ease-in-out infinite}.lobby-pulse span{display:grid;min-width:0}.lobby-pulse small{color:#aabbd7;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.lobby-pulse strong{overflow:hidden;color:#fff;font-size:clamp(.95rem,1.5vw,1.2rem);white-space:nowrap;text-overflow:ellipsis}.lobby-pulse>a{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border-radius:14px;color:#07162d;font-weight:900;text-decoration:none;background:linear-gradient(135deg,#ffd95b,#ffad30);box-shadow:0 7px 20px #ffb42f38}.lobby-pulse>a:hover{filter:brightness(1.08);transform:translateY(-1px)}.lobby-pulse>a b{font-size:1.3rem}@keyframes lobby-live-pulse{50%{box-shadow:0 0 30px #ff3978aa;transform:scale(1.06)}}
.empty{display:grid;gap:.35rem;place-items:center;min-height:150px;padding:2rem;text-align:center}.empty strong{font-size:1.15rem}.empty span{color:var(--muted)}
@media(max-width:900px){.lobby-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby-pulse>a{grid-column:1/-1}.lobby-pulse>div:nth-child(3){border-right:0}}
@media(max-width:600px){.lobby-pulse{grid-template-columns:1fr 1fr}.lobby-pulse>div{border-right:0}.lobby-pulse>div:nth-child(3){grid-column:1/-1;border-top:1px solid #ffffff16}.lobby-pulse>a{grid-column:1/-1}.lobby-pulse strong{font-size:.9rem}.lobby-pulse small{font-size:.62rem}}
@media(prefers-reduced-motion:reduce){.lobby-pulse>div:first-child i{animation:none}}

/* Room eligibility banners, manual Bingo claims, and dense responsive cards. */
.room-badges{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.42rem;align-items:center;margin:.1rem 0 .55rem}.room-badge{display:inline-flex;align-items:center;min-height:28px;padding:.3rem .62rem;border:1px solid #ffffff54;border-radius:999px;color:#fff;font-size:.68rem;font-weight:1000;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 5px 14px #0006,inset 0 1px #fff4}.room-badge.jackpot-mini{background:linear-gradient(120deg,#d82c75,#8d126c)}.room-badge.jackpot-minor{background:linear-gradient(120deg,#256bd7,#4335b8)}.room-badge.jackpot-major{background:linear-gradient(120deg,#e74664,#b40f73)}.room-badge.jackpot-grand{background:linear-gradient(120deg,#e6a216,#9e4810);box-shadow:0 0 18px #ffc93c66}.room-badge.manual,.room-badge.daub-manual{background:linear-gradient(120deg,#cc6f14,#77400b)}.room-badge.daub-auto{background:linear-gradient(120deg,#087c74,#0d4f83)}.room-badge.daub-auto:before{content:"✓";margin-right:.32rem;color:#8fffe9}.room-badge.daub-manual:before{content:"●";margin-right:.32rem;color:#ffe488}.room-badge.daub-both{background:linear-gradient(120deg,#6549c7,#bd2777)}.room-badge.daub-both:before{content:"↔";margin-right:.32rem;color:#fff0a3}.room-badge.live-host{background:linear-gradient(120deg,#dc244e,#78173c)}.room-badge.live-host:before{content:"●";margin-right:.35rem;color:#fff;animation:lobby-live-pulse 1.8s ease-in-out infinite}.call-bingo-button{margin-left:.45rem;padding:.3rem .65rem;border:1px solid #fff4;border-radius:999px;background:linear-gradient(120deg,#ffca35,#ff7b29);color:#331600;font-weight:1000}.call-bingo-button:disabled{opacity:.45}.public-winning-cards{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}.public-winning-card{width:min(230px,75vw);padding:.5rem;border-radius:14px;background:#f7fbff;color:#07182f;box-shadow:0 15px 38px #0008}.winner-mini-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-top:.35rem}.winner-mini-grid>*{display:grid;place-items:center;aspect-ratio:1;background:#eaf2f8;font-size:.78rem}.winner-mini-grid>b{aspect-ratio:auto;min-height:22px;background:#126aa3;color:#fff}.winner-mini-grid .win{background:#ffd953;box-shadow:inset 0 0 0 2px #e58700;font-weight:1000}
@media(min-width:1400px){.game-page{max-width:1920px}.bingo-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem}.bingo-card{max-width:none}.card-label{font-size:.72rem}}
@media(min-width:701px) and (max-width:1100px){.bingo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.bingo-card{min-width:0;max-width:none}.game-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}}
@media(max-width:700px){.game-page{max-width:100vw;overflow-x:hidden}.bingo-cards{padding:.2rem 12vw .8rem;scroll-padding-inline:12vw}.bingo-card{min-width:76vw;max-width:76vw}.bingo-cell{font-size:clamp(.92rem,4.7vw,1.25rem)}.cards-toolbar{align-items:flex-start}.daub-mode{line-height:1.45}.call-bingo-button{display:block;margin:.35rem 0 0}.room-badges{margin-inline:.25rem}}
.room-badge.practice{background:linear-gradient(120deg,#315b9e,#24325e)}
.redemption-art-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.redemption-art-picker button{overflow:hidden;padding:0;border:2px solid #ffffff24;border-radius:12px;background:#06172e;color:#fff;cursor:pointer}.redemption-art-picker button:hover,.redemption-art-picker button:focus-visible{border-color:#4dffe0;transform:translateY(-2px)}.redemption-art-picker img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.redemption-art-picker span{display:block;padding:.4rem;font-weight:800}@media(max-width:850px){.redemption-art-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Wheel labels are generated from the configured rewards and rotate with each
   wedge, like lettering printed directly on a physical prize wheel. */
.daily-wheel>.wheel-wedge-label{left:50%;top:50%;width:43%;height:64px;transform-origin:0 50%;transform:rotate(calc((var(--i) + .5)*1turn/var(--count))) translateX(24%) translateY(-50%);display:flex;align-items:center;justify-content:center;padding:0 .25rem}.daily-wheel>.wheel-wedge-label em{width:86%;display:grid;gap:.14rem;transform:none;font-size:clamp(.46rem,.76vw,.69rem);line-height:1.02;text-align:center}.daily-wheel>.wheel-wedge-label em b{display:flex;align-items:center;justify-content:center;gap:.2rem;white-space:nowrap}.daily-wheel>.wheel-wedge-label em b:after{display:none!important}
@media(max-width:760px){.daily-wheel>.wheel-wedge-label{width:42%;height:50px;transform:rotate(calc((var(--i) + .5)*1turn/var(--count))) translateX(18%) translateY(-50%)}.daily-wheel>.wheel-wedge-label em{font-size:.42rem}.daily-wheel>.wheel-wedge-label .currency-icon{display:none!important}}

/* The configured reward wheel is drawn as one responsive SVG. Each prize group
   shares the exact center angle of its sector, so labels cannot drift into an
   adjacent wedge when the administrator changes the number of spaces. */
.daily-wheel{background:#13295f;isolation:isolate}
.daily-wheel-svg{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:50%;overflow:hidden}
.daily-wheel-sector{stroke:#ffe47a;stroke-width:2.2;stroke-linejoin:round}
.daily-wheel-prize{pointer-events:none}
.wheel-svg-prize-text{fill:#fff;font-family:inherit;font-weight:1000;dominant-baseline:middle;letter-spacing:-.02em}
.wheel-svg-coin{fill:#ffc928;stroke:#fff09a;stroke-width:1.5}
.wheel-svg-gem{fill:#42e6ef;stroke:#d9ffff;stroke-width:1.25}
.wheel-svg-icon-letter{fill:#704000;font-family:inherit;font-weight:1000;text-anchor:middle;dominant-baseline:middle}
.daily-wheel-inner-ring{fill:#a70c4c;stroke:#ffe26b;stroke-width:5}
.daily-wheel-outer-ring{fill:none;stroke:#fff1a0;stroke-width:4;pointer-events:none}
.daily-wheel .wheel-lights{z-index:3;pointer-events:none}
.wheel-hub{z-index:5}
@media(max-width:760px){.daily-wheel-sector{stroke-width:2.8}.daily-wheel-outer-ring{stroke-width:5}.daily-wheel-inner-ring{stroke-width:6}}

/* Compact player chrome: balances, store access, and room-eligible jackpots
   share one horizontal ribbon without consuming card-area height. */
.balances{align-items:center;min-width:0;overflow-x:auto;scrollbar-width:none}
.balances::-webkit-scrollbar{display:none}
.add-credits-button{flex:0 0 auto;display:grid;place-items:center;min-height:42px;padding:.48rem .76rem;border-radius:13px;background:linear-gradient(135deg,#ffd75b,#ff8f38);color:#251300;font-size:.76rem;font-weight:1000;box-shadow:0 0 18px #ffc94c45}
.topbar-jackpot{flex:0 0 auto;display:flex;align-items:center;gap:.3rem;min-height:42px;padding:.3rem .42rem;border:1px solid #ffffff32;border-radius:13px;background:#111b48;color:#fff;box-shadow:inset 0 1px #fff4}
.topbar-jackpot>i{width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#ff78ba,#86136c);border:1px solid #ffe68a;color:#fff5a0;font-style:normal;box-shadow:0 0 10px #ff64b977}
.topbar-jackpot>span{display:grid;line-height:1}.topbar-jackpot small{text-transform:uppercase;font-size:.52rem;letter-spacing:.06em;color:#b8d1e7}.topbar-jackpot strong{font-size:.7rem;color:#fff}.topbar-jackpot>.currency-icon{width:1.15rem;height:1.15rem;font-size:.5rem}
.topbar-jackpot.minor>i{background:radial-gradient(circle,#72ecff,#3829ba)}.topbar-jackpot.major>i{background:radial-gradient(circle,#ff9c6a,#c80e76)}.topbar-jackpot.mega>i{background:radial-gradient(circle,#bafaff,#703cff 58%,#26135f);box-shadow:0 0 15px #78eaff}.topbar-jackpot.grand>i{background:radial-gradient(circle,#fff5a5,#dc8a07 62%,#773200);box-shadow:0 0 16px #ffd43d}
@media(max-width:850px){.balances{gap:.3rem}.add-credits-button{padding:.42rem .55rem;font-size:.66rem}.topbar-jackpot{padding:.25rem}.topbar-jackpot>span{display:none}.topbar-jackpot>.currency-icon{display:none}.topbar-jackpot>i{width:1.55rem;height:1.55rem}}
@media(max-width:460px){.balances{max-width:calc(100vw - 112px)}.add-credits-button{min-height:38px}.topbar-jackpot{min-height:38px}}

/* Standard 75-ball colors and a single compact ten-call history row. */
.current-ball.ball-b,.mini-ball.ball-b{background:radial-gradient(circle at 35% 25%,#9ed8ff,#1271df 40%,#064692 76%);color:#fff;border-color:#7fc8ff}
.current-ball.ball-i,.mini-ball.ball-i{background:radial-gradient(circle at 35% 25%,#ffc0c8,#e6384c 40%,#981629 76%);color:#fff;border-color:#ff9eaa}
.current-ball.ball-n,.mini-ball.ball-n{background:radial-gradient(circle at 35% 25%,#fff,#edf1f6 46%,#b9c5d4 82%);color:#111b2c;border-color:#fff}
.current-ball.ball-g,.mini-ball.ball-g{background:radial-gradient(circle at 35% 25%,#aaffd7,#18a867 42%,#07603c 78%);color:#fff;border-color:#79efb6}
.current-ball.ball-o,.mini-ball.ball-o{background:radial-gradient(circle at 35% 25%,#fff6a0,#f3be13 45%,#b26b00 82%);color:#241600;border-color:#ffe978}
.recent-balls{justify-content:flex-start;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;white-space:nowrap;min-height:48px;padding:.35rem .15rem}.recent-balls::-webkit-scrollbar{display:none}.mini-ball{flex:0 0 38px;width:38px;height:38px;border-width:2px;box-shadow:0 3px 10px #0006}.current-ball{border:3px solid #9edfff}

/* Bingo notices remain visible without blocking cards or pausing play. */
.winner-banner{inset:84px auto auto 50%;transform:translateX(-50%);width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 110px);display:block;overflow:auto;padding:1rem 1.2rem;border:2px solid #ffd75d;border-radius:20px;background:radial-gradient(circle at 50% 0,#713286f5,#081a35fa 72%);box-shadow:0 20px 65px #000c,0 0 28px #f8c84c55;text-align:center}.winner-banner h2{font-size:clamp(2rem,6vw,4rem)}.winner-banner p{margin:.25rem 0 .65rem}.winner-close{position:absolute;right:.55rem;top:.45rem;width:2rem;height:2rem;border:1px solid #fff5;border-radius:50%;background:#07172d;color:#fff;font-size:1.35rem}.winner-actions{display:flex;justify-content:center;gap:.45rem;flex-wrap:wrap}.public-winning-cards[hidden]{display:none!important}.room-notice-stack{position:fixed;z-index:48;top:84px;right:12px;display:grid;gap:.45rem;width:min(420px,calc(100vw - 24px));pointer-events:none}.room-notice{padding:.7rem .85rem;border:1px solid #ffffff36;border-radius:13px;background:#0a2847f5;box-shadow:0 12px 35px #0009;font-weight:850;animation:room-notice-in .25s ease}.room-notice.bad-bingo{border-color:#ffb85d;color:#ffe4b8;background:#4b290df2}@keyframes room-notice-in{from{opacity:0;transform:translateY(-8px)}}
.room-start-clock.waiting strong{font-size:clamp(.8rem,1.3vw,1.05rem);color:#ffe081}

/* Five-tier progressive styling: Mega sits between Major and Grand. */
.jackpot-chip.mega{background:linear-gradient(135deg,#5144e9,#ab2bde)}
.jackpot-emblem.mega{background:radial-gradient(circle,#c8fbff,#7440ec 62%,#29135f);box-shadow:0 0 23px #7deaffaa}
.room-jackpot.mega{border-color:#a879ff88;background:linear-gradient(100deg,#3e228c,#5f176f)}
.room-badge.jackpot-mega{background:linear-gradient(120deg,#574ae5,#a21bb0);box-shadow:0 0 18px #7deaff55}
.jackpot-strip,.room-jackpot-bar{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.jackpot-strip,.room-jackpot-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Gem jackpot emblems use an upgraded crystalline glow while GC banks keep
   the classic metallic treatment. */
[data-lobby-jackpot^="GEMS-"] .jackpot-emblem,[data-room-jackpot^="GEMS-"] .jackpot-emblem{border-color:#b9fff7;box-shadow:0 0 12px #55ffe8,0 0 28px #785cffaa,inset 0 1px #fff;background:radial-gradient(circle at 34% 25%,#f4ffff 0 8%,#50e9e1 12% 33%,#6952e9 65%,#2c176d 100%)}[data-lobby-jackpot^="GEMS-"] .jackpot-emblem:after,[data-room-jackpot^="GEMS-"] .jackpot-emblem:after{content:"◆";position:absolute;margin:.85rem 0 0 1.05rem;padding:.08rem;color:#d9fffb;font-size:.52rem;filter:drop-shadow(0 0 4px #fff)}.jackpot-emblem{position:relative}

/* Embedded live hosts and unmistakable jackpot currency marks. */
.jackpot-chip strong,.room-jackpot strong{display:flex;align-items:center;gap:.35rem}.jackpot-chip strong .currency-icon{width:1.3rem;height:1.3rem;flex:0 0 1.3rem}.room-jackpot strong .currency-icon{width:1.05rem;height:1.05rem;flex:0 0 1.05rem}.live-host-stage{margin-bottom:.8rem;padding:.7rem;border:1px solid #ff5d8f66;border-radius:18px;background:linear-gradient(130deg,#0b1839e8,#3b0e52e8);box-shadow:0 10px 28px #0007,inset 0 1px #fff3;overflow:hidden}.live-host-heading{display:flex;align-items:center;gap:.7rem;margin-bottom:.55rem}.live-host-heading strong{flex:1;font-size:1rem}.live-host-heading a{color:#8ffff0;font-size:.75rem;font-weight:900}.live-host-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:13px;overflow:hidden;background:#02060e}.live-host-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.live-host-stage.external>div{text-align:center;padding:1rem}.live-host-stage.external h2{margin:.55rem 0 .2rem}.live-host-stage.external p{margin:.2rem 0 .75rem;color:var(--muted)}
@media(max-width:600px){.live-host-stage{padding:.45rem;border-radius:14px}.live-host-heading{gap:.4rem}.live-host-heading strong{font-size:.82rem}.live-host-heading a{font-size:.65rem}.live-host-frame{border-radius:10px}}

/* Player and staff support ticket workspaces. */
.support-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.65fr);gap:1rem;align-items:start}.ticket-list{display:grid;gap:.55rem}.ticket-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.8rem;border:1px solid #ffffff22;border-radius:13px;background:#071a34;color:#fff}.ticket-row:hover,.ticket-row.unread{border-color:#53efda;background:#0c2850}.ticket-row.unread{box-shadow:0 0 18px #39e8cf35}.ticket-row>div{display:grid;gap:.2rem;min-width:0}.ticket-row small{color:var(--muted);white-space:normal}.ticket-state{padding:.3rem .5rem;border-radius:999px;background:#173a61;color:#bcd7ec;font-size:.65rem;font-weight:1000;white-space:nowrap}.ticket-state.waiting_for_staff,.ticket-state.open{background:#6f330d;color:#ffe2a8}.ticket-state.waiting_for_player,.ticket-state.resolved{background:#075f55;color:#bcfff5}.ticket-thread{display:grid;gap:.7rem;padding:1rem;max-height:66vh;overflow:auto}.ticket-message{width:min(88%,760px);padding:.75rem .9rem;border-radius:16px;background:#102b50}.ticket-message.staff{justify-self:start;border:1px solid #4ce8d266}.ticket-message.player{justify-self:end;background:#40215f;border:1px solid #d06bff55}.ticket-message header{display:flex;justify-content:space-between;gap:.6rem}.ticket-message header span{color:var(--muted);font-size:.7rem}.ticket-message p{margin:.45rem 0 0;line-height:1.5}.ticket-summary{position:sticky;top:86px}.ticket-summary dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem .7rem}.ticket-summary dt{color:var(--muted)}.ticket-summary dd{margin:0;text-align:right;font-weight:800}.ticket-summary textarea{min-height:130px;margin:.35rem 0 .6rem}.ticket-admin-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:1rem}.staff-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:.4rem}.staff-permission-grid label{display:flex;align-items:center;gap:.4rem;padding:.45rem;border:1px solid #ffffff18;border-radius:9px}
.ticket-row[type="button"],button.ticket-row{width:100%;font:inherit;text-align:left;cursor:pointer}.admin-ticket-detail{scroll-margin-top:90px}.admin-ticket-detail .support-layout{margin-top:.8rem}.staff-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1rem}.staff-permission-card{display:grid;gap:.9rem}.staff-permission-card h3{margin:0}.staff-permission-card p{margin:.2rem 0;color:var(--muted)}.permission-grid,.role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.75rem;border:1px solid #ffffff20;border-radius:12px}.permission-grid legend,.role-options legend{padding:0 .35rem;color:#9feadd;font-weight:900}.permission-option,.role-options label{display:flex;align-items:flex-start;gap:.45rem;padding:.45rem;border-radius:8px;background:#ffffff08;font-size:.78rem}.permission-option input,.role-options input{margin-top:.1rem;flex:0 0 auto}
.permission-option,.role-options label{position:relative;min-height:48px;align-items:center;padding:.6rem .7rem;border:1px solid #ffffff1d;background:#071b36;color:#eaf7ff;line-height:1.25}.permission-option:hover,.role-options label:hover{border-color:#56dfcf;background:#0b294c}.permission-option:has(input:checked),.role-options label:has(input:checked){border-color:#63f2d7;background:linear-gradient(120deg,#0b594f88,#173f7188);box-shadow:inset 0 0 0 1px #63f2d733}.permission-grid input[type="checkbox"],.role-options input[type="checkbox"],.field.permission-grid input[type="checkbox"]{appearance:none;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:0!important;padding:0!important;border:2px solid #7796ae!important;border-radius:6px!important;background:#031226!important}.permission-grid input[type="checkbox"]:checked,.role-options input[type="checkbox"]:checked{border-color:#70ffe2!important;background:linear-gradient(145deg,#39e1c0,#2094c2)!important}.permission-grid input[type="checkbox"]:checked:after,.role-options input[type="checkbox"]:checked:after{content:"✓";display:grid;place-items:center;width:100%;height:100%;color:#04152a;font-size:16px;font-weight:1000}
@media(max-width:900px){.support-layout,.ticket-admin-grid{grid-template-columns:1fr}.ticket-summary{position:static}.mobile-tabs{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}}

/* Installed-app chrome and touch-landscape navigation. The manifest requests
   true fullscreen; the first intentional tap also requests the Fullscreen API
   on platforms that expose it. iOS may retain its protected system indicator. */
.topbar-lobby{display:none;flex:0 0 auto;padding:.55rem .7rem;border:1px solid #ffffff2b;border-radius:11px;color:#fff;font-size:.72rem;font-weight:900;background:#102b50}
@media(max-width:850px){.topbar-lobby{display:inline-flex}}
@media (hover:none) and (pointer:coarse) and (max-width:1400px){
  body{padding-bottom:66px}
  .topbar{height:64px;gap:.28rem;padding-inline:max(6px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-right))}
  .brand span:last-child{display:none}
  .topbar-lobby{display:inline-flex}
  .topbar nav{display:none;position:absolute;right:max(8px,env(safe-area-inset-right));top:62px;max-height:calc(100dvh - 76px);overflow:auto;flex-direction:column;align-items:stretch;min-width:190px;margin:0;padding:.65rem;border:1px solid var(--line);border-radius:16px;background:#07192ff8;box-shadow:0 18px 45px #000b}
  .topbar nav.open{display:flex}
  .topbar nav .nav-lobby{display:none}
  .mobile-menu{display:block;flex:0 0 40px;margin-left:.1rem}
  .balances{flex:1 1 auto;min-width:0;margin-left:0;justify-content:flex-end;overflow:visible}
  .balance-pill{min-width:50px;padding:.26rem .32rem}
  .balance-pill small{display:none}
  .balance-pill strong{font-size:.62rem;white-space:nowrap}
  .balance-pill .currency-icon{width:1.35rem;height:1.35rem}
  .level-pill,.vip-pill{min-height:38px;padding:.16rem}
  .level-pill img,.vip-pill img{width:31px;height:31px}
  .level-pill span,.vip-pill span{display:none}
  .add-credits-button{min-width:54px;min-height:38px;padding:.32rem .4rem;font-size:.58rem;white-space:nowrap}
  .topbar-jackpot{display:none}
  .mobile-tabs{position:fixed;display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));left:0;right:0;bottom:0;z-index:40;padding:6px 8px max(6px,env(safe-area-inset-bottom));background:#06162bf4;border-top:1px solid var(--line);backdrop-filter:blur(18px)}
}
@media(max-width:560px){
  .topbar-lobby{padding:.45rem .48rem;font-size:.62rem}
  .balances{gap:.18rem}
  .balance-pill{min-width:45px;padding:.2rem}
  .balance-pill strong{font-size:.55rem}
  .level-pill img,.vip-pill img{width:28px;height:28px}
  .level-pill,.vip-pill{min-height:34px}
  .add-credits-button{min-width:48px;font-size:.53rem}
}

/* Jackpot values always remain inside their cards, including seven-figure
   balances on iPhone landscape. */
.jackpot-chip,.room-jackpot,.jackpot-chip>div,.room-jackpot>div{min-width:0}
.jackpot-chip,.room-jackpot{container-type:inline-size}
.jackpot-chip strong,.room-jackpot strong{min-width:0;max-width:100%;overflow:hidden}
.jackpot-chip strong b,.room-jackpot strong b{display:block;min-width:0;max-width:100%;overflow:hidden;font-size:clamp(.6rem,7cqi,1.05rem);line-height:1.05;letter-spacing:-.055em;white-space:nowrap;font-variant-numeric:tabular-nums}
.jackpot-chip strong .currency-icon,.room-jackpot strong .currency-icon{flex-shrink:0}
@media(max-width:600px){
  .jackpot-chip{min-width:150px;padding:.5rem}
  .jackpot-chip .jackpot-emblem{width:2.15rem;height:2.15rem}
  .jackpot-chip strong b,.room-jackpot strong b{font-size:.72rem}
  .room-jackpot{padding:.42rem;gap:.24rem}
}

/* Bonus cabinets are viewport-bound. They preserve the normal reel window and
   keep every pick/respin control visible without page or cabinet scrollbars. */
body.skill-playing{overflow:hidden}
.skill-feature-page{box-sizing:border-box;height:calc(100dvh - 70px);min-height:0!important;overflow:hidden;padding-bottom:6px!important}
.skill-feature-page .skill-cabinet{box-sizing:border-box;max-height:calc(100dvh - 82px);overflow:hidden}
.skill-feature-page .skill-pick-cabinet{height:calc(100dvh - 86px);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;align-content:stretch}
.skill-feature-page .skill-pick-board{box-sizing:border-box;width:min(100%,1400px);height:100%;min-height:0;max-height:none;margin:4px auto;grid-auto-rows:minmax(0,1fr);overflow:hidden}
.skill-feature-page .skill-pick-object{width:100%;height:100%;min-height:0;aspect-ratio:auto;overflow:hidden}
.skill-feature-page .skill-pick-cover{width:92%;height:92%;max-width:100%;max-height:100%;aspect-ratio:auto;overflow:hidden}
.skill-feature-page .skill-pick-cover img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.skill-feature-page .skill-pick-prize{inset:2px;display:grid;grid-template-rows:minmax(0,1fr) auto;place-content:stretch;align-items:center;min-width:0;min-height:0;overflow:hidden}
.skill-feature-page .skill-pick-prize img{display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain}
.skill-feature-page .skill-pick-prize small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skill-feature-page .skill-pick-status,.skill-feature-page .skill-pick-cabinet .status-strip,.skill-feature-page .skill-pick-winner{margin:4px auto;padding:5px}
.skill-feature-page .skill-expanding-cabinet{height:calc(100dvh - 86px);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}
.skill-feature-page .skill-expanding-board{box-sizing:border-box;width:min(100%,520px);height:100%;min-height:0;max-height:none;aspect-ratio:auto;margin:4px auto;grid-template-rows:repeat(6,minmax(0,1fr));overflow:hidden}
.skill-feature-page .skill-expanding-status{margin:3px auto}
.skill-feature-page .skill-expanding-spin{margin:4px auto;padding:7px}
.skill-feature-page .skill-free-cabinet{height:calc(100dvh - 86px);min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}
.skill-feature-page .skill-free-cabinet .skill-reels{align-self:center;height:auto;min-height:0;margin:4px 0;overflow:hidden}
.skill-feature-page .skill-free-cabinet .skill-reel{--skill-cell-height:clamp(64px,10.5dvh,104px);height:calc(var(--skill-cell-height) + var(--skill-cell-height) + var(--skill-cell-height) + 6px);min-height:0;overflow:hidden}
.skill-feature-page .skill-free-cabinet .skill-symbol{height:var(--skill-cell-height);min-height:var(--skill-cell-height)}
.skill-bonus-ready{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 12px;padding:8px 12px;border:1px solid #ffe17a80;border-radius:14px;background:#07142dde}
.skill-bonus-ready strong{color:#ffe17a}.skill-bonus-ready span{color:#bed5ec;font-size:.72rem}.skill-bonus-ready .button{grid-column:2;grid-row:1/3;min-width:190px}

/* Currency icons reserve their own space in dynamic paytable values. */
.premium-skill-page .aurora-paytable-item .skill-paytable-value{display:grid;grid-template-columns:minmax(0,1fr) 10px;align-items:center;gap:2px;min-width:0;overflow:hidden;white-space:nowrap}
.premium-skill-page .aurora-paytable-item .skill-paytable-value>i{display:grid;place-items:center;width:10px;height:10px;min-width:0;font-style:normal;overflow:hidden}
.premium-skill-page .aurora-paytable-item .skill-paytable-value .currency-icon{position:static!important;width:9px!important;height:9px!important;max-width:9px;max-height:9px;margin:0!important;transform:none!important}
.premium-skill-page .aurora-paytable-item .skill-paytable-value .gem-icon img{width:100%;height:100%;transform:none}
.premium-skill-page .aurora-paytable-item .skill-paytable-value>b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:inherit;line-height:1.05}

@media(max-width:700px){
  .skill-feature-page{height:calc(100dvh - 54px);padding:0!important}
  .skill-feature-page .skill-cabinet,.skill-feature-page .skill-pick-cabinet,.skill-feature-page .skill-expanding-cabinet{height:calc(100dvh - 54px);max-height:calc(100dvh - 54px);margin:0}
  .skill-feature-page .skill-pick-board{grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}
  .skill-feature-page .skill-pick-object{border-radius:6px;padding:1px}
  .skill-feature-page .skill-pick-counts{margin:2px 0}
  .skill-feature-page .skill-feature-banner{margin:2px 0;padding:4px}
  .skill-feature-page .aurora-title{margin-bottom:2px}
  .skill-feature-page .skill-expanding-board{width:min(100%,390px);gap:2px;padding:3px}
  .skill-bonus-ready{padding:5px 7px}.skill-bonus-ready .button{min-width:150px;padding:8px}
  .premium-skill-page .aurora-paytable-item .skill-paytable-value{grid-template-columns:minmax(0,1fr) 8px;gap:1px;font-size:clamp(.34rem,1.45vw,.48rem)}
  .premium-skill-page .aurora-paytable-item .skill-paytable-value>i,.premium-skill-page .aurora-paytable-item .skill-paytable-value .currency-icon{width:8px!important;height:8px!important;max-width:8px;max-height:8px}
}

/* Every dauber choice has a visual sample in both Account and the in-room
   picker. The same shapes are used on cards and public winning cards. */
[data-dauber-style="square"] .bingo-cell.called:after,
[data-dauber-style="square"] .winner-daub,
[data-dauber-preview="square"]{border-radius:14%!important;clip-path:none}
[data-dauber-style="clover"] .bingo-cell.called:after,
[data-dauber-style="clover"] .winner-daub,
[data-dauber-preview="clover"]{border-radius:0!important;clip-path:polygon(50% 12%,61% 2%,75% 5%,84% 16%,85% 29%,98% 39%,100% 54%,91% 65%,78% 67%,75% 82%,63% 95%,49% 88%,40% 98%,25% 94%,17% 82%,19% 68%,5% 63%,0 49%,6% 36%,20% 31%,18% 17%,29% 5%,43% 4%)}
[data-dauber-style="lightning"] .bingo-cell.called:after,
[data-dauber-style="lightning"] .winner-daub,
[data-dauber-preview="lightning"]{border-radius:0!important;clip-path:polygon(56% 0,20% 53%,45% 53%,32% 100%,82% 39%,56% 39%)}
[data-dauber-style="flower"] .bingo-cell.called:after,
[data-dauber-style="flower"] .winner-daub,
[data-dauber-preview="flower"]{border-radius:0!important;clip-path:polygon(50% 0,61% 25%,85% 15%,75% 39%,100% 50%,75% 61%,85% 85%,61% 75%,50% 100%,39% 75%,15% 85%,25% 61%,0 50%,25% 39%,15% 15%,39% 25%)}
.dauber-shapes label{cursor:pointer}
.dauber-shapes input{position:absolute;opacity:0;pointer-events:none}
.dauber-shapes label>span{display:flex;align-items:center;gap:.45rem;min-width:108px;padding:.42rem .58rem;border:1px solid #ffffff38;border-radius:10px;background:#0b2443}
.dauber-shapes label>span>i{display:block;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--preview-daub,#e9416b);box-shadow:0 2px 7px #0008}
.dauber-shapes label>span>b{font-size:.72rem}
.dauber-shapes input:checked+span{border-color:#71ffe4;background:#195771;color:#fff;outline:2px solid #71ffe455}
.dauber-shape-options [data-dauber-preview="square"]{border-radius:14%}

/* High-visibility Bingo claim: wider and brighter, but no taller than the
   existing compact toolbar. */
.call-bingo-button{min-width:104px;min-height:32px;margin-left:.38rem;padding:.25rem .78rem;border:2px solid #ffe881;border-radius:10px;background:linear-gradient(135deg,#ffe15b,#ff8b25 55%,#ef416b);color:#271100;font-size:.72rem;letter-spacing:.035em;text-transform:uppercase;box-shadow:0 4px 12px #0008,inset 0 1px #fff9}
.call-bingo-button:not(:disabled):hover{filter:brightness(1.1);transform:translateY(-1px)}
.call-bingo-button:disabled{border-color:#ffffff35;background:#20334b;color:#9fb0c1;box-shadow:none}
.call-bingo-button.ready{border-color:#fff;background:linear-gradient(110deg,#ffe75d,#ff9b24 50%,#ef315f);box-shadow:0 0 0 0 #ffe65f99;animation:bingo-ready-glow .8s ease-in-out infinite alternate}
@media(min-width:701px) and (max-width:1400px){.call-bingo-button{min-width:96px;min-height:30px;padding:.2rem .58rem;font-size:.66rem}}

/* Weekly Match-Three prizes use the same icon-amount order everywhere and
   remain readable inside both compact tiles and the winner panel. */
.weekly-pick-tile.revealed>span{display:grid!important;grid-template-columns:1fr!important;place-items:center;gap:.14rem!important;width:100%;font-size:inherit!important}
.weekly-prize-amount{display:flex!important;align-items:center;justify-content:center;gap:.22rem;min-width:0;white-space:nowrap}
.weekly-prize-amount b{font-size:.64rem;letter-spacing:-.02em}
.weekly-prize-plus{display:block;color:#693800;font-size:.65rem;font-style:normal;font-weight:1000;line-height:1}
.weekly-prize-panel .weekly-prize-amount b,.weekly-winner .weekly-prize-amount b{font-size:.78rem}
.level-additional{display:block;margin-top:.2rem;color:#8fb1d3;font-size:.68rem;white-space:nowrap}
[data-lobby-jackpot^="GEMS-"] .jackpot-emblem:after,[data-room-jackpot^="GEMS-"] .jackpot-emblem:after{content:"\25C6"}
.permission-grid input[type="checkbox"]:checked:after,.role-options input[type="checkbox"]:checked:after{content:"\2713"}
.weekly-match-list>div>span{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.25rem;min-width:0}
.weekly-match-list .weekly-prize-plus{color:#ffe06b;text-align:center}
.weekly-winner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.weekly-winner>strong{grid-column:1/-1}
@media(max-width:500px){.weekly-prize-amount b{font-size:.56rem}.weekly-pick-tile .currency-icon{width:.9rem;height:.9rem}.weekly-match-list>div{display:grid;grid-template-columns:1fr auto}.weekly-match-list>div>span{grid-template-columns:1fr}.weekly-match-list .weekly-prize-plus{display:none}}
@media(max-width:560px){.ticket-row{grid-template-columns:1fr auto}.ticket-state{grid-column:1/-1;justify-self:start}.ticket-message{width:95%}.staff-permission-grid,.permission-grid,.role-options{grid-template-columns:1fr}.mobile-tabs a{font-size:.57rem}}

/* Device-specific game layouts. Phones use a dense two-card grid, tablets
   hold six cards in three columns, and desktop cards remain compact. */
@media(min-width:701px) and (max-width:1180px){
  .game-page{grid-template-columns:1fr;max-width:1100px;padding:10px}
  .bingo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;overflow:visible;padding:0}
  .bingo-card{min-width:0;max-width:none;padding:.38rem;border-radius:13px}
  .card-label{margin:-.38rem -.38rem .32rem;padding:.38rem .48rem;font-size:.67rem}
  .game-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
}
@media(max-width:700px){
  html,body,#app{max-width:100%;overflow-x:hidden}
  .game-page{display:block;width:100%;max-width:100%;padding:7px;overflow-x:hidden}
  .game-hud{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:.35rem;margin-bottom:.35rem}
  .hud-box{min-height:62px;padding:.38rem .42rem;border-radius:11px;font-size:.7rem;line-height:1.18}
  .hud-box strong{overflow-wrap:anywhere}
  .current-ball{width:64px;height:64px;font-size:1.35rem}
  .recent-balls{min-height:37px;gap:.28rem;padding:.2rem 0}
  .mini-ball{flex-basis:31px;width:31px;height:31px;font-size:.6rem}
  .room-start-clock{padding:.42rem .55rem;margin-bottom:.35rem}
  .cards-toolbar{padding:.38rem 0;align-items:flex-start;font-size:.76rem}
  .bingo-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;padding:0;overflow:visible;scroll-snap-type:none}
  .bingo-card{min-width:0;max-width:none;width:100%;padding:.28rem;border-radius:10px;scroll-snap-align:none}
  .card-label{margin:-.28rem -.28rem .23rem;padding:.28rem .32rem;font-size:.53rem;line-height:1.1}
  .bingo-grid{gap:1px}
  .bingo-letter{min-height:18px;font-size:clamp(.58rem,2.9vw,.8rem)}
  .bingo-cell{min-height:0;font-size:clamp(.65rem,3.25vw,.9rem);touch-action:manipulation}
  .bingo-cell.called:after{inset:8%}
  .game-side{display:grid;grid-template-columns:1fr;gap:.55rem;margin-top:.7rem}
  .side-panel{padding:.7rem}
  .chat-list{height:180px}
  .winner-banner{top:68px;width:calc(100vw - 14px);max-height:calc(100vh - 78px);padding:.75rem}
  .winner-banner h2{font-size:1.8rem}
  .public-winning-card{width:min(190px,82vw)}
}
@media(max-width:350px){
  .bingo-cards{grid-template-columns:1fr}
  .bingo-card{max-width:220px;margin-inline:auto}
}
@media(min-width:600px) and (max-height:520px) and (orientation:landscape){
  .bingo-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.game-review-detail{scroll-margin-top:90px}.game-review-detail details{margin-top:1rem;padding:.75rem;border:1px solid #ffffff24;border-radius:12px;background:#031124}.game-review-detail summary{cursor:pointer;color:#8fffe7;font-weight:900}.game-review-json{max-height:520px;overflow:auto;padding:.75rem;border-radius:10px;background:#010914;color:#d7efff;font-size:.7rem;white-space:pre-wrap;overflow-wrap:anywhere}.identity-status.rejected,.identity-pill.rejected{border-color:#ff8a93;color:#ffd1d5;background:#651d2840}
.slot-math-table{min-width:1120px}.slot-math-table td{min-width:150px;vertical-align:top}.slot-math-table td:nth-child(4),.slot-math-table td:nth-child(5){min-width:260px}.slot-math-table td>small,.slot-math-table td>b{display:block;margin:.3rem 0}.slot-math-table .inline-form{display:grid;grid-template-columns:1fr 1.35fr auto;gap:.35rem;margin-top:.65rem}.slot-math-table .inline-form input,.slot-math-table .inline-form select{min-width:0}.governance-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.governance-actions small{flex-basis:100%;color:#ffe892}.slot-math-table .mini-storage-meter{margin:.35rem 0;height:8px}

/* Consistent five-tier jackpot identity and compact lobby-card eligibility. */
.room-jackpot-flags{position:absolute;z-index:4;top:.58rem;left:9.2rem;right:3.25rem;display:flex;justify-content:flex-end;gap:.28rem;overflow:hidden}.room-jackpot-flags .room-badge{min-height:27px;padding:.22rem .48rem .22rem .25rem;white-space:nowrap;backdrop-filter:blur(8px)}.room-jackpot-flags .jackpot-emblem{width:1.35rem;height:1.35rem;margin-right:.28rem;border-width:1px;font-size:.72rem;box-shadow:0 0 10px currentColor}.room-badge.jackpot-mini,.jackpot-chip.mini{background:linear-gradient(135deg,#48e49a,#0c7950)}.room-badge.jackpot-minor,.jackpot-chip.minor{background:linear-gradient(135deg,#58b9ff,#214eb1)}.room-badge.jackpot-major,.jackpot-chip.major{background:linear-gradient(135deg,#c987ff,#641c9f)}.room-badge.jackpot-mega,.jackpot-chip.mega{background:linear-gradient(135deg,#ff6876,#a80832)}.room-badge.jackpot-grand,.jackpot-chip.grand{background:linear-gradient(135deg,#ffe67c,#b96c05)}.jackpot-emblem.mini,.topbar-jackpot.mini>i{background:radial-gradient(circle at 35% 25%,#caffdf,#27c17b 46%,#07583a)}.jackpot-emblem.minor,.topbar-jackpot.minor>i{background:radial-gradient(circle at 35% 25%,#d7f3ff,#459cf2 46%,#17317e)}.jackpot-emblem.major,.topbar-jackpot.major>i{background:radial-gradient(circle at 35% 25%,#f0d4ff,#a456de 46%,#491171)}.jackpot-emblem.mega,.topbar-jackpot.mega>i{background:radial-gradient(circle at 35% 25%,#ffd4d9,#ed3856 46%,#7c0826)}.jackpot-emblem.grand,.topbar-jackpot.grand>i{background:radial-gradient(circle at 35% 25%,#fff8b8,#e5a515 48%,#824500)}
.gem-icon img{display:block;width:78%;height:78%;object-fit:contain;transform:rotate(-45deg) scale(1.22)}.wheel-legend .gem-icon{overflow:visible}.wheel-hub span{transform:translateY(-13%)}.wheel-hub small{left:10%;right:10%;bottom:14%;font-size:clamp(.42rem,.78vw,.7rem);line-height:.86;text-align:center;color:#fff;text-shadow:0 2px 3px #5c091f,0 0 4px #000;font-weight:1000;letter-spacing:.035em}.admin-copy-editor{padding:.8rem;border:1px solid #ffffff25;border-radius:14px;background:#06172e}.admin-copy-editor>fieldset{margin-top:.8rem;padding:.8rem;border:1px solid #ffffff24;border-radius:12px}.admin-copy-editor legend{padding:0 .45rem;color:#7fffe6;font-weight:900}
@media(max-width:760px){.room-jackpot-flags{top:2.85rem;left:.65rem;right:.65rem;justify-content:flex-start;overflow-x:auto}.room-jackpot-flags .room-badge{font-size:.58rem}.visual-room .room-art{min-height:245px}}

/* Daily/weekly reward switcher and server-authoritative 24-tile bonus game. */
.reward-tabs{display:flex;justify-content:center;gap:.45rem;margin:0 auto 1rem;padding:.35rem;width:max-content;max-width:100%;border:1px solid #ffffff2e;border-radius:999px;background:#07152fd9}.reward-tabs button{padding:.62rem 1rem;border:0;border-radius:999px;background:transparent;color:#b8cce0;font-weight:900}.reward-tabs button.active{background:linear-gradient(100deg,#e21f59,#5f3fe4);color:#fff;box-shadow:0 0 22px #de3b8e66}.weekly-reward-banner{padding-inline:0!important;border:0!important;background:transparent!important;box-shadow:none!important}.weekly-reward-banner:before,.weekly-reward-banner:after{display:none!important}.weekly-pick-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);gap:1rem}.weekly-pick-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;padding:1rem;background:radial-gradient(circle at 50% 35%,#6146d755,transparent 45%),#06162e}.weekly-pick-tile{min-height:92px;padding:.35rem;border:2px solid #ffdc6170;border-radius:14px;background:linear-gradient(145deg,#263f89,#541d75);color:#fff;box-shadow:inset 0 1px #fff5,0 8px 18px #0006;transition:transform .18s,filter .18s}.weekly-pick-tile:not(:disabled):hover{transform:translateY(-3px) rotate(-1deg);filter:brightness(1.2)}.weekly-pick-tile>i{display:block;color:#ffe35c;font-size:2rem;font-style:normal;text-shadow:0 0 14px #ffcc33}.weekly-pick-tile>small{display:block;color:#c7dbef}.weekly-pick-tile.revealed{background:linear-gradient(145deg,#fff4b3,#dc9f12);color:#2b1600;animation:weekly-reveal .35s ease}.weekly-pick-tile.revealed>span{display:grid;grid-template-columns:auto 1fr;align-items:center;justify-content:center;gap:.1rem .22rem;font-size:.59rem}.weekly-pick-tile .currency-icon{width:1.05rem;height:1.05rem}.weekly-prize-panel{padding:1rem}.weekly-match-list{display:grid;gap:.45rem;margin:.8rem 0}.weekly-match-list>div{display:flex;justify-content:space-between;align-items:center;gap:.4rem;padding:.45rem;border:1px solid #ffffff20;border-radius:10px;background:#06152d}.weekly-match-list span{display:flex;align-items:center;gap:.22rem;font-size:.68rem}.weekly-match-list .currency-icon{width:1.1rem;height:1.1rem}.weekly-match-list>div>b{white-space:nowrap;color:#ffe14e;letter-spacing:.08em}.weekly-winner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.45rem;padding:1rem;border:2px solid #ffdf62;border-radius:16px;background:linear-gradient(135deg,#ca2061,#4920a2);box-shadow:0 0 30px #ffcb3c66}.weekly-winner>strong{flex-basis:100%;text-align:center;color:#ffed78;letter-spacing:.18em}.weekly-winner .currency-icon{width:1.7rem;height:1.7rem}@keyframes weekly-reveal{from{transform:rotateY(90deg) scale(.8)}to{transform:none}}
@media(max-width:850px){.weekly-pick-layout{grid-template-columns:1fr}.weekly-pick-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.weekly-pick-tile{min-height:76px}.weekly-prize-panel{order:-1}.weekly-match-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.weekly-pick-board{padding:.55rem}.weekly-pick-tile{min-height:68px;border-radius:10px}.weekly-match-list{grid-template-columns:1fr}.reward-tabs{width:100%}.reward-tabs button{flex:1;padding:.55rem .35rem;font-size:.72rem}}
.jackpot-qualification-field,.jackpot-chance-field{display:grid;gap:.2rem;color:#a9c2d8;font-size:.67rem}.jackpot-qualification-field{grid-column:2/4}.jackpot-chance-field{grid-column:4/6}.jackpot-chance-field input{max-width:150px}@media(max-width:760px){.jackpot-qualification-field,.jackpot-chance-field{grid-column:1/-1}.jackpot-chance-field input{max-width:none}}

/* Install guidance for touchscreen players. The native browser prompt is used
   when available; iPadOS receives the exact Safari Add-to-Home-Screen steps. */
.install-app-prompt{position:fixed;z-index:90;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(74px + env(safe-area-inset-bottom));display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:.7rem;max-width:900px;margin:auto;padding:.7rem .8rem;border:1px solid #80ffe07d;border-radius:18px;background:linear-gradient(120deg,#071b38f7,#162e68f7 55%,#4b1a67f7);box-shadow:0 18px 55px #000c,0 0 24px #3cffd839;backdrop-filter:blur(18px)}.install-app-prompt>img{width:52px;height:52px;object-fit:contain}.install-app-prompt>div{display:grid;gap:.16rem}.install-app-prompt strong{font-size:.92rem}.install-app-prompt span{color:#bfd5e8;font-size:.72rem;line-height:1.35}.install-dismiss{width:30px;height:30px;padding:0;border:1px solid #ffffff35;border-radius:50%;background:#ffffff0d;color:#fff;font-size:1.1rem}.install-help-dialog{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:18px;background:#020b18c7;backdrop-filter:blur(8px)}.install-help-dialog>div,.install-help-dialog>ol,.install-help-dialog>button{width:min(480px,100%)}.install-help-dialog>div{display:flex;align-items:center;gap:.7rem;padding:1rem 1rem 0;border-radius:20px 20px 0 0;background:#0a2346}.install-help-dialog>div img{width:64px;height:64px}.install-help-dialog>div span{display:grid}.install-help-dialog>div small{color:#74ffe3;font-weight:900;letter-spacing:.08em}.install-help-dialog>div strong{font-size:1.25rem}.install-help-dialog>ol{margin:0;padding:1rem 1.4rem 1rem 2.7rem;background:#0a2346;line-height:1.65}.install-help-dialog>button{border-radius:0 0 20px 20px}@media(max-width:560px){.install-app-prompt{grid-template-columns:42px minmax(0,1fr) auto;gap:.5rem}.install-app-prompt>img{width:42px;height:42px}.install-app-prompt>div span{display:none}.install-app-prompt>[data-install]{padding:.5rem;font-size:.64rem}.install-dismiss{position:absolute;right:-5px;top:-9px;background:#17294b}}

/* Player level presentation. */
.level-pill{flex:0 0 auto;display:flex;align-items:center;gap:.3rem;min-height:42px;padding:.25rem .45rem;border:1px solid #ffe26a66;border-radius:13px;background:linear-gradient(135deg,#301767,#0b4a6c);color:#fff;box-shadow:0 0 16px #8966ff44}.level-pill img{width:33px;height:33px}.level-pill span{display:grid;line-height:1}.level-pill small{color:#bcd4e8;font-size:.52rem;text-transform:uppercase}.level-pill strong{font-size:.75rem}.account-level-card{display:flex;align-items:center;gap:.75rem;min-width:min(100%,340px);padding:.65rem .8rem;border:1px solid #ffe06d55;border-radius:16px;background:linear-gradient(135deg,#1a164a,#0a4561)}.account-level-card>img{width:76px;height:76px}.account-level-card>div{display:grid;gap:.18rem;flex:1}.account-level-card small{color:#76ffe6;font-weight:900;letter-spacing:.08em}.account-level-card strong{font-size:1.25rem}.account-level-card span{font-size:.68rem;color:#c3d8e8}.account-level-card i{height:7px;border-radius:999px;background:#020d20;overflow:hidden}.account-level-card i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38e8c4,#ffd54f)}.level-table-wrap{max-height:610px}.admin-level-badge{width:48px;height:48px;vertical-align:middle;margin-right:.5rem}.level-table td:first-child{min-width:160px}.level-table input{min-width:130px}.level-admin-toolbar{display:flex;align-items:end;gap:.5rem;margin:.7rem 0}.level-admin-toolbar label{display:grid;gap:.25rem}.level-admin-toolbar input{width:130px}

/* Clear package ordering and audit pagination. */
.package-order-list{display:grid;gap:.4rem}.package-order-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.55rem .65rem;border:1px solid #ffffff1f;border-radius:11px;background:#06172f}.package-order-list article>b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#19476a;color:#9fffe8}.package-order-list article>span{display:grid}.package-order-list small{color:var(--muted)}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-top:.8rem}.package-bonus em{color:#eafff1;font-size:.61rem;font-style:normal}

/* Premium room-list balls and a compact, non-clipped jackpot flag. */
.room-art-balls{perspective:500px;gap:0!important}.room-art-balls i{position:relative;overflow:hidden;width:52px;height:52px;margin-left:-7px;border:3px solid #ffffffcc;color:#fff;text-shadow:0 2px 3px #0008;box-shadow:0 10px 22px #0009,inset 0 2px 5px #fff9;animation:room-ball-float 3.4s ease-in-out infinite}.room-art-balls i:after{content:"";position:absolute;left:20%;top:10%;width:35%;height:22%;border-radius:50%;background:#fff9;transform:rotate(-25deg)}.room-art-balls i:nth-child(1){--i:0;background:radial-gradient(circle at 32% 25%,#9dd8ff,#1471dc 42%,#053f91);animation-delay:-.2s}.room-art-balls i:nth-child(2){--i:1;background:radial-gradient(circle at 32% 25%,#ffc1ca,#df304a 42%,#8d1327);animation-delay:-.55s}.room-art-balls i:nth-child(3){--i:2;background:radial-gradient(circle at 32% 25%,#fff,#e8edf4 48%,#aebcca);color:#172032;text-shadow:none;animation-delay:-.9s}.room-art-balls i:nth-child(4){--i:3;background:radial-gradient(circle at 32% 25%,#a8ffd7,#16a463 43%,#065d39);animation-delay:-1.25s}.room-art-balls i:nth-child(5){--i:4;background:radial-gradient(circle at 32% 25%,#fff6a0,#f0ba12 44%,#ab6600);color:#231500;text-shadow:none;animation-delay:-1.6s}@keyframes room-ball-float{0%,100%{transform:rotate(calc((var(--i) - 2)*4deg)) translateY(0)}50%{transform:rotate(calc((var(--i) - 2)*4deg)) translateY(-7px)}}.room-jackpot-flags{left:auto!important;right:3.2rem!important;max-width:calc(100% - 11rem);justify-content:flex-end!important}.room-jackpot-flags .jackpot-eligible{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-badge.jackpot-eligible{background:linear-gradient(120deg,#174d9b,#8d1a9d 60%,#c68a16);border-color:#ffe47c;box-shadow:0 0 16px #c85cff66}

/* Keep Add Credits visible in iPad portrait and other compact tablet chrome. */
.balance-pill.gc{order:1}.balance-pill.gems{order:2}.level-pill{order:3}.vip-pill{order:4}.add-credits-button{order:5}.topbar-jackpot{order:6}.vip-pill{flex:0 0 auto;display:flex;align-items:center;gap:.3rem;min-height:42px;padding:.25rem .45rem;border:1px solid #d9c7ff70;border-radius:13px;background:linear-gradient(135deg,#3f1b59,#163e73);color:#fff;box-shadow:0 0 16px #b37aff3d}.vip-pill img{width:33px;height:33px}.vip-pill span{display:grid;line-height:1}.vip-pill small{color:#e5d7ff;font-size:.52rem;text-transform:uppercase}.vip-pill strong{font-size:.7rem;text-transform:capitalize}@media(max-width:850px){.topbar{gap:.35rem;padding-inline:max(6px,env(safe-area-inset-left))}.balances{flex:1;max-width:none;gap:.3rem}.balance-pill{min-width:64px}.balance-pill small{display:none}.balance-pill strong{font-size:.7rem;white-space:nowrap}.balance-pill .currency-icon{width:1.35rem;height:1.35rem}.level-pill span,.vip-pill span{display:none}.level-pill,.vip-pill{padding:.18rem;min-height:37px}.level-pill img,.vip-pill img{width:29px;height:29px}.add-credits-button{min-width:62px;white-space:nowrap}.topbar-jackpot{display:none}.brand>span{display:none}}@media(max-width:520px){.balance-pill{min-width:51px;padding:.25rem}.balance-pill strong{font-size:.58rem}.add-credits-button{min-width:50px;padding:.32rem .36rem;font-size:.56rem}.brand-mark{width:38px;height:38px}.topbar{gap:.2rem}}
.daub-mode.mixed{display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap}.daub-mode.mixed small{flex-basis:100%}.daub-choice{display:inline-flex;padding:2px;border:1px solid #ffffff38;border-radius:999px;background:#05152c}.daub-choice button{padding:.25rem .48rem;border:0;border-radius:999px;background:transparent;color:#bcd1e4;font-size:.62rem;font-weight:900}.daub-choice button.active{background:linear-gradient(110deg,#39dfc5,#4179dc);color:#031627}

/* iPad/tablet manual-daub layout: six compact cards (3 x 2) with the current
   called ball held visibly at the top of the play area. */
@media(min-width:701px) and (max-width:1400px){.game-page{display:block;max-width:100%;padding:7px 10px}.game-stage{max-width:1180px;margin-inline:auto}.game-hud{position:sticky;z-index:18;top:64px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.4rem;margin-bottom:.25rem;padding:.25rem;border-radius:13px;background:#06162bf2;box-shadow:0 8px 22px #0007}.hud-box{min-height:56px;padding:.35rem .55rem;border-radius:11px}.hud-box small{font-size:.6rem}.hud-box strong{font-size:.72rem}.current-ball{width:64px;height:64px;font-size:1.35rem}.recent-balls{min-height:34px;justify-content:center;gap:.22rem;padding:.18rem}.mini-ball{flex:0 0 30px;width:30px;height:30px;font-size:.58rem}.room-start-clock{margin-bottom:.25rem;padding:.35rem .6rem}.room-start-clock strong{font-size:.9rem}.cards-toolbar{padding:.25rem 0;font-size:.72rem}.daub-mode{padding:.16rem .4rem;font-size:.61rem}.call-bingo-button{padding:.28rem .45rem;font-size:.62rem}.bingo-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.bingo-card{max-width:none;padding:.24rem;border-radius:10px}.card-label{margin:-.24rem -.24rem .2rem;padding:.25rem .35rem;font-size:.55rem}.bingo-grid{gap:1px}.bingo-letter{min-height:17px;font-size:.68rem}.bingo-cell{font-size:clamp(.68rem,2vw,.9rem)}.game-side{max-width:1180px;margin:.7rem auto 0}.manual-daub .bingo-cell.called:after{inset:8%}}
@media (orientation:landscape) and (min-width:800px) and (max-width:1400px){.game-stage{max-width:100%}.bingo-cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:.28rem}.bingo-card{padding:.18rem;border-radius:8px}.card-label{margin:-.18rem -.18rem .15rem;padding:.2rem .24rem;font-size:.48rem}.bingo-letter{min-height:14px;font-size:.58rem}.bingo-cell{font-size:clamp(.55rem,1.25vw,.76rem)}.cards-toolbar{min-height:42px}.game-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}}
@media(min-width:701px) and (max-width:900px) and (orientation:portrait){.game-page{padding-inline:5px}.game-stage{max-width:100%}.bingo-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.22rem}.bingo-card{padding:.16rem;border-radius:8px}.card-label{margin:-.16rem -.16rem .14rem;padding:.18rem .22rem;font-size:.47rem}.bingo-letter{min-height:14px;font-size:.58rem}.bingo-cell{font-size:clamp(.55rem,1.62vw,.76rem)}.cards-toolbar{gap:.25rem;min-height:42px}.daub-mode{font-size:.54rem}.game-side{display:none}}
@media(prefers-reduced-motion:reduce){.room-art-balls i{animation:none}}

/* Server-authoritative upcoming column colors. Exact future numbers never
   leave the room engine; only these three color hints are rendered. */
.ball-call-center{display:flex;align-items:center;justify-content:center;gap:.55rem}.future-call-preview{display:grid;gap:.18rem;min-width:94px;padding:.42rem .5rem;border:1px solid #ffffff2d;border-radius:13px;background:linear-gradient(145deg,#07162e,#172958);box-shadow:inset 0 1px #fff3}.future-call-preview>small{color:#81f4e2;font-size:.52rem;font-weight:1000;letter-spacing:.1em}.future-call-preview>span{color:#b7cde0;font-size:.57rem;white-space:nowrap}.future-call-preview>span b{color:#ffe16a;font-variant-numeric:tabular-nums}.future-ball-track{display:flex;align-items:center;gap:.22rem;min-height:23px}.future-ball-color{display:block;width:21px;height:21px;border:2px solid #fff9;border-radius:50%;box-shadow:0 3px 8px #0008,inset 0 1px 3px #fff9}.future-ball-color.ball-b{background:radial-gradient(circle at 32% 25%,#9ed9ff,#1470d8 45%,#06408f)}.future-ball-color.ball-i{background:radial-gradient(circle at 32% 25%,#ffc0c8,#df324a 45%,#8f1326)}.future-ball-color.ball-n{background:radial-gradient(circle at 32% 25%,#fff,#e5eaf0 48%,#aebbc8)}.future-ball-color.ball-g{background:radial-gradient(circle at 32% 25%,#a9ffd7,#16a362 45%,#075d3a)}.future-ball-color.ball-o{background:radial-gradient(circle at 32% 25%,#fff5a0,#efba13 45%,#a86600)}.future-ball-waiting{font-size:.58rem;color:#8da8bf}.future-ball-track.rolling .future-ball-color{animation:future-ball-roll .55s cubic-bezier(.16,.75,.3,1) both;animation-delay:calc(var(--future-index)*.09s)}@keyframes future-ball-roll{from{opacity:0;transform:translateX(32px) rotate(220deg) scale(.55)}to{opacity:1;transform:none}}@media(max-width:850px){.ball-call-center{gap:.3rem}.future-call-preview{min-width:78px;padding:.28rem .35rem}.future-ball-color{width:17px;height:17px}.future-call-preview>small{font-size:.45rem}.future-call-preview>span{font-size:.49rem}}@media(max-width:430px){.future-call-preview{min-width:65px}.future-ball-color{width:14px;height:14px}.future-call-preview>span{white-space:normal;line-height:1.05}}@media(prefers-reduced-motion:reduce){.future-ball-track.rolling .future-ball-color{animation:none}}
.wheel-editor-total .invalid{color:#ff8792}
.referral-share-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.copy-value{display:grid;gap:.2rem}.copy-value small{overflow-wrap:anywhere;color:#9fb8ce}.admin-vip-badge{width:46px;height:46px;margin-right:.45rem;vertical-align:middle}.vip-tier-table input{min-width:110px;max-width:170px}.account-vip-card{border-color:#d8b8ff70;background:linear-gradient(135deg,#351445,#143f69)}.route-loading:after{content:"";position:fixed;z-index:200;top:0;left:0;height:3px;width:38%;background:linear-gradient(90deg,#32e8cf,#ffd84a,#e64179);box-shadow:0 0 12px #4affdf;animation:route-progress .9s ease-in-out infinite alternate}@keyframes route-progress{to{transform:translateX(165%)}}
.package-vip-bonus{display:flex;align-items:center;gap:.45rem;margin:.38rem .55rem;padding:.38rem .5rem;border:1px solid #edd0ff66;border-radius:12px;background:linear-gradient(100deg,#30114ddd,#123660dd);color:#fff}.package-vip-bonus img{width:34px;height:34px}.package-vip-bonus span{display:grid;min-width:0}.package-vip-bonus small{font-size:.58rem;letter-spacing:.07em;color:#e6c5ff}.package-vip-bonus strong{font-size:.72rem}

/* Compact live room controls and game facts. */
.room-live-metrics{display:flex;align-items:center;gap:.3rem;margin-top:.22rem;flex-wrap:wrap}.room-live-metrics b{display:inline-flex;align-items:center;gap:.18rem;padding:.18rem .36rem;border:1px solid #ffffff28;border-radius:999px;background:#020d1f8f;color:#bfe8ff;font-size:.54rem;white-space:nowrap}.room-live-metrics .currency-icon{width:.9rem;height:.9rem}.call-bingo-button,.change-dauber-button{margin-left:.3rem;padding:.28rem .52rem;border:1px solid #ffffff42;border-radius:999px;background:#102c50;color:#fff;font-size:.62rem;font-weight:1000}.call-bingo-button.ready{border-color:#fff078;background:linear-gradient(110deg,#f2c514,#e43d63);color:#1c0e00;box-shadow:0 0 0 0 #ffe65f99;animation:bingo-ready-glow .8s ease-in-out infinite alternate}.change-dauber-button{background:#174064;color:#9fffe6}@keyframes bingo-ready-glow{to{box-shadow:0 0 18px 6px #ffe65f99;filter:brightness(1.2);transform:scale(1.035)}}.dauber-customizer{display:grid;gap:1rem}.dauber-customizer fieldset{padding:.8rem;border:1px solid #ffffff30;border-radius:14px}.dauber-colors,.dauber-shapes{display:flex;flex-wrap:wrap;gap:.5rem}.dauber-colors label{cursor:pointer}.dauber-colors input{position:absolute;opacity:0}.dauber-colors i{display:block;width:38px;height:38px;border:3px solid #ffffff85;border-radius:50%;background:var(--choice-color);box-shadow:0 4px 10px #0008}.dauber-colors input:checked+i{outline:3px solid #71ffe4;outline-offset:3px}.dauber-shapes label span{display:block;padding:.5rem .7rem;border:1px solid #ffffff38;border-radius:10px;background:#0b2443}.dauber-shapes input:checked+span{border-color:#71ffe4;background:#195771;color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.call-bingo-button.ready{animation:none;box-shadow:0 0 14px #ffe65f99}}
/* Phase 9 protected Slot catalog and publication manager */
.slot-manager-grid{display:grid;gap:1rem}.slot-manager-game{padding:1rem;overflow:hidden}.slot-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.slot-manager-header h3{margin:.2rem 0}.slot-manager-header p{margin:.25rem 0;max-width:68ch}.slot-manager-state,.slot-release-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.slot-manager-state{justify-content:flex-end}.slot-metadata-editor{border:1px solid rgba(130,188,255,.25);border-radius:.8rem;padding:.7rem;margin:.75rem 0}.slot-metadata-editor summary{cursor:pointer;font-weight:800}.slot-version-table td{vertical-align:top;min-width:8rem}.slot-version-table td:last-child{min-width:13rem}.slot-version-table small{display:block;margin-top:.35rem;line-height:1.45}.slot-preview-host{position:relative;margin-top:1rem;scroll-margin-top:1rem}.slot-preview-card{position:relative;border:2px solid var(--slot-preview-accent);border-radius:1rem;padding:.75rem;background:var(--slot-preview-bg);color:#fff;box-shadow:0 1.2rem 3rem rgba(0,0,0,.35)}.slot-preview-close{position:absolute;right:1rem;top:1rem;z-index:3}.slot-preview-scene{min-height:420px;border-radius:.75rem;background-size:cover;background-position:center;display:grid;grid-template-rows:auto 1fr;padding:1rem;overflow:hidden}.slot-preview-brand{display:flex;gap:1rem;align-items:center;padding-right:8rem}.slot-preview-brand img{width:min(220px,30vw);max-height:95px;object-fit:contain}.slot-preview-reels{align-self:center;justify-self:center;width:min(820px,95%);padding:4rem 7%;display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;background-size:100% 100%;background-repeat:no-repeat;background-position:center}.slot-preview-reels div{min-height:82px;display:grid;place-items:center;background:rgba(255,255,255,.86);border-radius:.55rem;color:#07152d}.slot-preview-reels img{width:62px;height:62px;object-fit:contain}.slot-preview-reels strong{font-size:.7rem}.slot-preview-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.slot-preview-facts>span{padding:.35rem .65rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.25)}
.slot-release-guide{width:100%;margin-top:.65rem;border:1px solid rgba(91,178,255,.35);border-radius:.75rem;background:rgba(2,18,43,.5);overflow:hidden}.slot-release-guide summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;cursor:pointer;color:#d9eeff;font-weight:850}.slot-release-guide summary span:last-child{font-size:.72rem;color:#8dc9ff;white-space:nowrap}.slot-release-checklist{display:grid;gap:.4rem;padding:.2rem .7rem .75rem}.slot-release-step{display:grid;grid-template-columns:1.75rem 1fr;align-items:start;gap:.55rem;padding:.5rem;border:1px solid rgba(255,255,255,.09);border-radius:.6rem;background:rgba(2,12,28,.55)}.slot-release-step i{display:grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;background:#2a3b55;color:#dce9f8;font-style:normal;font-weight:900}.slot-release-step strong,.slot-release-step small{display:block}.slot-release-step small{margin-top:.12rem!important;color:#a9bdd3}.slot-release-step.done{border-color:rgba(39,213,145,.3)}.slot-release-step.done i{background:#19a974;color:#fff}.slot-release-step.active{border-color:rgba(255,201,61,.5);box-shadow:inset 0 0 0 1px rgba(255,201,61,.12)}.slot-release-step.active i{background:#e6a91f;color:#13223a}.slot-guide-next{padding:.75rem;border-top:1px solid rgba(91,178,255,.25);background:rgba(8,38,75,.62)}.slot-guide-next>.eyebrow{display:block;margin-bottom:.45rem}.slot-guide-attention{display:grid;gap:.35rem;color:#ffe5a2}.slot-guide-attention span{font-size:.78rem;line-height:1.4;color:#d5e2f1}
.slot-admin-tabs{position:sticky;top:.5rem;z-index:12;display:flex;gap:.65rem;align-items:center;padding:.7rem;margin-bottom:1rem;background:rgba(5,22,52,.96);backdrop-filter:blur(14px)}.slot-admin-tabs button{flex:1;min-height:2.75rem}.slot-active-tests{display:grid;gap:.65rem;margin-bottom:1rem;padding:.9rem;border:1px solid rgba(255,190,74,.45);border-radius:16px;background:rgba(255,171,41,.08)}.slot-active-tests article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center}.slot-active-tests small{display:block;color:var(--muted);margin:.2rem 0}.slot-archived-versions{margin:1rem 0 0;padding:.8rem 1rem;border:1px solid rgba(148,163,184,.28);border-radius:14px;background:rgba(3,14,34,.34)}.slot-archived-versions summary{cursor:pointer;font-weight:800}.slot-archived-versions p,.slot-archived-versions ul{color:var(--muted)}
@media(max-width:780px){.slot-manager-header{display:block}.slot-manager-state{justify-content:flex-start;margin-top:.65rem}.slot-preview-scene{min-height:330px}.slot-preview-brand{display:block;padding-right:5rem}.slot-preview-reels{padding:3rem 8%;gap:.3rem}.slot-preview-reels div{min-height:58px}.slot-preview-reels img{width:42px;height:42px}}
[data-slot-subpage][hidden],[data-slot-previous-version][hidden]{display:none!important}
@media(max-width:720px){.slot-admin-tabs{display:grid;position:static}.slot-active-tests article{grid-template-columns:1fr}}

/* Phase 9 Skill Game test laboratory. Generated previews are deliberately
   compact and visually separate from production/player cabinets. */
.skill-test-laboratory{border-color:#8b6eff66;background:radial-gradient(circle at 85% 0,#7136c833,transparent 34%),var(--panel)}.skill-test-history{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:.8rem}.skill-test-result{padding:.8rem;border:1px solid #8adfff38;border-radius:15px;background:#04162dcf;box-shadow:inset 0 1px #fff1}.skill-test-result>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.skill-test-result>header div{display:grid;gap:.15rem}.skill-test-result>header small{color:var(--muted);font-size:.67rem}.skill-test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:.7rem auto;width:min(100%,270px);padding:5px;border:1px solid #ffd86970;border-radius:11px;background:#020916}.skill-test-grid span{display:grid;place-items:center;min-height:38px;padding:.15rem;border:1px solid #7edfff24;border-radius:6px;background:linear-gradient(145deg,#183568,#421d69);font-size:.65rem;font-weight:900;overflow:hidden}.skill-test-grid span:nth-child(n+4):nth-child(-n+6){border-color:#ffda6c;background:linear-gradient(145deg,#7c4517,#4f1d5f)}.skill-test-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.skill-test-facts span{display:grid;padding:.38rem;border:1px solid #ffffff18;border-radius:8px;color:#95b8d2;font-size:.58rem}.skill-test-facts b{color:#fff;font-size:.68rem}.skill-test-result details{margin-top:.55rem}.skill-test-result summary{cursor:pointer;color:#8fffe7;font-size:.7rem;font-weight:900}.skill-test-result code{display:block;margin:.45rem 0;color:#b9ccdf;font-size:.58rem;overflow-wrap:anywhere}.skill-test-result pre{max-height:280px;overflow:auto;padding:.55rem;border-radius:8px;background:#010817;color:#d8eeff;font-size:.58rem;white-space:pre-wrap;overflow-wrap:anywhere}
.skill-simulation-report{margin-top:.6rem}.skill-simulation-report>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer}.skill-simulation-report>summary span{color:var(--muted);font-size:.7rem}.skill-multiplier-distribution{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.skill-multiplier-distribution>strong{width:100%}.skill-multiplier-distribution span{padding:.32rem .5rem;border:1px solid #ffffff24;border-radius:999px;background:#06172f;font-size:.65rem}

/* Phase 10: special Slot symbols stay unmistakable even while spinning. */
.slot-special-symbol:after{content:"";position:absolute;z-index:1;inset:7%;pointer-events:none;border:2px solid #fff8;border-radius:18%;box-shadow:0 0 9px #fff8,0 0 18px var(--slot-accent);animation:slot-special-pulse 1.15s ease-in-out infinite alternate}.slot-special-symbol.free-games:after{border-color:#7eeaff;box-shadow:0 0 9px #fff,0 0 22px #2bbdff}.slot-special-symbol.bonus:after{border-color:#ffe778;box-shadow:0 0 9px #fff,0 0 22px #a65cff}.slot-special-symbol-label{position:absolute;z-index:3;right:7%;bottom:5%;left:7%;overflow:hidden;padding:.08em .16em;border:1px solid #fff9;border-radius:.35em;background:#06122ddd;color:#fff;font-size:clamp(.38rem,.72vw,.72rem);font-weight:1000;line-height:1.05;letter-spacing:.04em;text-align:center;text-overflow:ellipsis;text-shadow:0 1px 2px #000,0 0 5px #000;white-space:nowrap;box-shadow:0 2px 8px #0008}.slot-special-symbol.free-games .slot-special-symbol-label{background:linear-gradient(90deg,#06347ee8,#087eb9e8)}.slot-special-symbol.bonus .slot-special-symbol-label{background:linear-gradient(90deg,#35156fe8,#7b247ee8)}@keyframes slot-special-pulse{to{opacity:.62;transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.slot-special-symbol:after{animation:none!important}}
/* Skill Games foundation: cabinet proportions stay stable instead of stretching
   across ultrawide displays. Production themes replace only the artwork layer. */
.skill-lobby-page{max-width:1500px;margin:auto}.skill-lobby-hero{padding:clamp(28px,5vw,74px);border:1px solid #7357d9;border-radius:30px;background:radial-gradient(circle at 80% 20%,#7049d066,transparent 38%),linear-gradient(135deg,#111c46,#30165b);box-shadow:0 24px 70px #05081588}.skill-lobby-hero h1{font-size:clamp(2.2rem,6vw,5.4rem);max-width:850px;margin:.2em 0}.skill-lobby-hero p{max-width:760px;font-size:clamp(1rem,1.7vw,1.35rem)}.skill-lobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px;margin-top:24px}.skill-lobby-card{overflow:hidden;padding:0}.skill-lobby-card>div:last-child{padding:20px}.skill-card-art{position:relative;min-height:210px;background:linear-gradient(145deg,#16346b,#691ea3);display:flex;align-items:flex-start;padding:16px;overflow:hidden}.skill-card-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.skill-card-art span{position:relative;z-index:1}.skill-card-art span,.skill-feature-row span{background:#07132dd9;border:1px solid #79e4ff66;border-radius:999px;padding:7px 11px;font-weight:800}.skill-feature-row{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.skill-feature-row span{font-size:.75rem}.skill-game-page{max-width:1280px;margin:auto}.skill-cabinet{max-width:min(94vw,780px);margin:14px auto;padding:clamp(12px,2vw,22px);background:radial-gradient(circle at top,#392978,#0a1029 60%);border:3px solid #e2b64b;box-shadow:0 0 0 6px #39236a,0 30px 90px #000b}.skill-cabinet>header{text-align:center}.skill-cabinet h1{font-size:clamp(2rem,6vw,4.6rem);margin:.05em}.skill-jackpots{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}.skill-jackpots span{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1px 5px;font-size:clamp(.58rem,1.6vw,.9rem);font-weight:900;padding:7px;border-radius:10px;background:linear-gradient(#4a347d,#160d34);border:1px solid #f7cf66;color:#ffe486;box-shadow:inset 0 0 13px #fff1,0 3px 10px #0007}.skill-jackpots span i{grid-row:1/3;font-size:1.2rem;font-style:normal}.skill-jackpots span small{text-transform:uppercase;letter-spacing:.08em}.skill-jackpots span b{white-space:nowrap;font-size:clamp(.6rem,1.4vw,.82rem)}.skill-jackpots span.mini{border-color:#36e77e}.skill-jackpots span.minor{border-color:#43a9ff}.skill-jackpots span.major{border-color:#bc75ff}.skill-jackpots span.mega{border-color:#ff5268}.skill-jackpots span.grand{border-color:#ffd65a}.skill-jackpots.none{display:block}.skill-jackpots.none span{display:block}.skill-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:15px 0;background:#030817;padding:8px;border:2px solid #f0c964;border-radius:16px}.skill-reel{display:grid;grid-template-rows:repeat(3,minmax(75px,16vh));gap:4px}.skill-symbol{display:grid;place-items:center;text-align:center;padding:6px;border-radius:10px;background:linear-gradient(145deg,#182d60,#431c69);border:1px solid #73d7ff44;overflow:hidden}.skill-symbol.payline{border:3px solid #ffdc5c;box-shadow:inset 0 0 20px #ffb30033,0 0 14px #ffcc4066}.skill-symbol span{font-weight:950;font-size:clamp(.75rem,2vw,1.15rem);text-transform:capitalize}.skill-moves{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.skill-result{display:flex;justify-content:space-around;gap:12px;padding:12px}.skill-result span{display:grid;text-align:center}.skill-ready{padding:clamp(25px,7vw,70px) 10%;display:grid;gap:15px;text-align:center}.skill-ready label{display:grid;gap:6px;text-align:left}.skill-spin{font-size:1.5rem;min-height:64px}.skill-foundation-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.skill-foundation-checklist span{padding:12px;border-radius:12px;border:1px solid var(--line);background:#071a35}.skill-foundation-checklist .done::before{content:"✓ ";color:var(--green)}.skill-foundation-checklist .pending::before{content:"○ ";color:var(--gold)}.skill-jackpot-editor{margin-top:10px}.skill-jackpot-editor>summary{cursor:pointer;display:flex;align-items:center;gap:10px}.skill-jackpot-editor form{grid-template-columns:1fr}.skill-jackpot-currency{border:1px solid var(--line);border-radius:14px;padding:14px}.skill-jackpot-currency>legend{font-weight:900}.skill-jackpot-config-grid{display:grid;gap:8px}.skill-jackpot-config-row{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(140px,.7fr) minmax(230px,1.4fr);gap:10px;align-items:end;padding:9px;border-radius:10px;background:#06172f}.skill-jackpot-config-row>span{display:grid;gap:4px}.skill-jackpot-config-row>span:first-child{display:flex;align-items:center;align-self:center}@media(max-width:700px){.skill-jackpots{grid-template-columns:repeat(5,minmax(0,1fr))}.skill-jackpots span{display:block;padding:5px 2px}.skill-jackpots span i{display:block}.skill-jackpots span b{display:block;overflow:hidden;text-overflow:ellipsis}.skill-cabinet{max-width:100%;margin:8px auto}.skill-reel{grid-template-rows:repeat(3,minmax(62px,14vh))}.skill-moves{grid-template-columns:repeat(2,1fr)}.skill-moves .secondary:last-child{grid-column:1/-1}.skill-jackpot-config-row{grid-template-columns:1fr}}

/* Phase 10 portrait benchmark: Aurora Crown. The cabinet remains portrait at
   every width while the full-page scene is free to crop around it. */
.aurora-skill-page{box-sizing:border-box;max-width:none;width:100%;min-height:calc(100dvh - 70px);padding:12px clamp(8px,2vw,24px) 36px;background-image:linear-gradient(#02081744,#020817aa),var(--skill-theme-background);background-position:center;background-size:cover;background-attachment:fixed;isolation:isolate}.aurora-skill-page::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 15% 25%,#72e8ff24,transparent 28%),radial-gradient(circle at 85% 70%,#8e67ff2e,transparent 30%);animation:aurora-page-glow 9s ease-in-out infinite alternate}.aurora-skill-page .skill-lobby-back{position:sticky;top:8px;z-index:20;display:table;margin:0 0 -40px 8px;background:#06152ee8;backdrop-filter:blur(12px)}.aurora-skill-page .skill-cabinet{position:relative;box-sizing:border-box;width:min(100%,620px);max-width:620px;margin:8px auto 0;padding:clamp(9px,1.5vw,16px);overflow:hidden;background:linear-gradient(180deg,#071127f4,#0b1742f2 36%,#090f28f8);border:2px solid #f4d17c;border-radius:28px;box-shadow:0 0 0 5px #4f3a86,0 0 55px #72e8ff3d,0 36px 100px #000e}.aurora-skill-page .skill-cabinet::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:25px;background:linear-gradient(110deg,transparent 25%,#fff1 45%,transparent 60%);transform:translateX(-130%);animation:aurora-cabinet-sheen 8s ease-in-out infinite}.aurora-title{position:relative;display:grid;justify-items:center;line-height:.8;margin:0 auto 8px;padding-top:6px;text-transform:uppercase;filter:drop-shadow(0 5px 10px #000)}.aurora-title small{order:3;margin-top:8px;color:#9feeff;font-size:clamp(.55rem,1.4vw,.72rem);letter-spacing:.15em;line-height:1.2}.aurora-title strong{font-family:Georgia,serif;font-size:clamp(2rem,8vw,4rem);letter-spacing:.08em;color:#d8fbff;text-shadow:0 0 7px #72e8ff,0 3px 0 #246389}.aurora-title b{font-family:Georgia,serif;font-size:clamp(1.5rem,6vw,3.05rem);letter-spacing:.18em;color:#f8d986;text-shadow:0 0 8px #966cff,0 3px 0 #5f3f85}.aurora-skill-page .skill-jackpots{position:relative;z-index:2;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.aurora-skill-page .skill-jackpots span{min-width:0;padding:5px 3px;background:linear-gradient(180deg,#1c2758e8,#080d25ed);box-shadow:inset 0 0 12px #fff1,0 0 12px currentColor}.aurora-skill-page .skill-jackpots span i{display:block;grid-row:auto}.aurora-skill-page .skill-jackpots span b{display:block;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.5rem,1.5vw,.68rem)}.aurora-paytable{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:7px}.aurora-paytable-item{position:relative;display:grid;grid-template-columns:clamp(24px,6vw,43px) 1fr;align-items:center;min-width:0;padding:3px;border:1px solid #72e8ff58;border-radius:8px;background:#040b1bd9;box-shadow:inset 0 0 12px #734dba2b}.aurora-paytable-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px}.aurora-paytable-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff1af;font-weight:900;font-size:clamp(.45rem,1.45vw,.68rem)}.aurora-paytable-item small{position:absolute;right:3px;bottom:1px;color:#8defff;font-size:.48rem;font-weight:900}.aurora-skill-page .skill-reels{position:relative;z-index:2;margin:8px 0;padding:5px;gap:4px;border:3px solid #eacb78;border-radius:14px;background:linear-gradient(#020718,#07142d);box-shadow:inset 0 0 35px #72e8ff24,0 0 20px #8d66ff49}.aurora-skill-page .skill-reel{grid-template-rows:repeat(3,clamp(90px,15.2vh,146px));gap:3px}.aurora-skill-page .skill-symbol{position:relative;padding:0;border:1px solid #72e8ff40;border-radius:8px;background:radial-gradient(circle,#183d6d,#071128 70%)}.aurora-skill-page .skill-symbol img{width:100%;height:100%;object-fit:cover}.aurora-skill-page .skill-symbol>span{position:absolute;left:4px;right:4px;bottom:3px;padding:2px;border-radius:4px;background:#030817c7;color:#dffcff;font-size:clamp(.43rem,1.3vw,.66rem);line-height:1.05}.aurora-skill-page .skill-symbol.payline{border:3px solid #ffe58e;box-shadow:inset 0 0 22px #ffd85a39,0 0 14px #72e8ff96}.skill-payline-rule{position:absolute;left:1px;right:1px;top:50%;z-index:4;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,#fff0a9 8%,#fff0a9 92%,transparent);box-shadow:0 0 10px #ffe277;opacity:.75}.skill-special-label{position:absolute;top:3px;left:50%;z-index:5;transform:translateX(-50%);white-space:nowrap;padding:2px 5px;border:1px solid #ffed96;border-radius:999px;background:#5d287be8;color:#fff6ad;font-size:clamp(.42rem,1.2vw,.62rem);letter-spacing:.06em;box-shadow:0 0 10px #d884ff}.aurora-skill-page .skill-result{position:relative;z-index:2;margin:5px 0;padding:8px;border:1px solid #72e8ff54;border-radius:12px;background:#03091ce3;color:#dffcff}.aurora-skill-page .skill-result b{color:#ffe298;font-size:1.15rem}.skill-decision{position:relative;z-index:2;display:grid;gap:5px;text-align:center}.skill-decision>strong{color:#ffe298;text-transform:uppercase;letter-spacing:.08em}.skill-decision>small{color:#c8d9ef}.aurora-skill-page .skill-moves{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.aurora-skill-page .skill-moves button{min-width:0;padding:8px 3px;font-size:clamp(.62rem,1.8vw,.85rem);background:linear-gradient(#206a8f,#11335e);border-color:#8df4ff}.aurora-skill-page .skill-moves button i{display:block;font-size:1.15rem;font-style:normal}.aurora-skill-page .skill-moves button.secondary{background:linear-gradient(#7f5c2e,#3c254e);border-color:#ffe195}.aurora-skill-page .skill-ready{position:relative;z-index:2;padding:12px 7%;gap:9px;border:1px solid #72e8ff44;border-radius:14px;background:#040b1bd9}.aurora-skill-page .skill-ready h2{margin:0;color:#ffe197;font-family:Georgia,serif}.skill-wager-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.aurora-skill-page .skill-spin{min-height:58px;border:2px solid #fff0a8;background:radial-gradient(circle at 50% 20%,#a7f5ff,#29719b 35%,#463483 72%);color:#fff;text-transform:uppercase;letter-spacing:.12em;box-shadow:0 0 22px #72e8ff6b}.skill-feature-banner{display:grid;gap:2px;margin:5px 0 7px;padding:7px;border:1px solid #9eeeff;border-radius:12px;background:linear-gradient(90deg,#143b65,#4f2d79,#143b65);box-shadow:0 0 18px #72e8ff4a}.skill-feature-banner b{color:#ffe29a;letter-spacing:.15em}.skill-feature-banner strong{font-size:clamp(1rem,3.6vw,1.45rem)}.aurora-skill-page .skill-pick-board{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.aurora-skill-page .skill-pick-object{aspect-ratio:1;padding:0;border:1px solid #8befff;border-radius:10px;background:radial-gradient(circle,#2f326b,#071127);box-shadow:inset 0 0 13px #9a70ff48}.aurora-skill-page .skill-pick-cover img{width:100%;height:100%;object-fit:cover;border-radius:8px}.aurora-skill-page .skill-pick-object:not(.revealed):hover{transform:translateY(-3px) scale(1.04);box-shadow:0 0 20px #83eaff}.aurora-skill-page .skill-pick-object.revealed .skill-pick-cover{display:none}.aurora-skill-page .skill-pick-prize b{font-size:1.1rem}.aurora-skill-page .skill-pick-prize small{display:block;font-size:.55rem}.skill-spinning .aurora-title,.skill-spinning .aurora-paytable{animation:aurora-pulse .55s ease-in-out infinite alternate}.skill-spinning .skill-spin{filter:saturate(.7);cursor:wait}@keyframes aurora-page-glow{to{opacity:.55;filter:hue-rotate(14deg)}}@keyframes aurora-cabinet-sheen{0%,72%{transform:translateX(-130%)}90%,100%{transform:translateX(130%)}}@keyframes aurora-pulse{to{filter:brightness(1.32) drop-shadow(0 0 12px #72e8ff)}}
@media(max-width:700px){.aurora-skill-page{padding:4px 0 24px;background-attachment:scroll}.aurora-skill-page .skill-lobby-back{position:fixed;top:6px;left:6px;width:34px;height:34px;margin:0;padding:0;display:grid;place-items:center;border-radius:50%;font-size:0;box-shadow:0 0 12px #72e8ff66}.aurora-skill-page .skill-lobby-back::after{content:"←";font-size:1rem}.aurora-skill-page .skill-cabinet{width:100%;margin:0;border-radius:0;border-left:0;border-right:0;padding:7px}.aurora-skill-page .skill-cabinet::before{border-radius:0}.aurora-title{padding-top:1px}.aurora-title small{display:none}.aurora-skill-page .skill-reel{grid-template-rows:repeat(3,clamp(78px,14.8vh,122px))}.aurora-paytable-item{grid-template-columns:clamp(20px,8vw,36px) 1fr}.aurora-skill-page .skill-pick-board{grid-template-columns:repeat(6,minmax(0,1fr))}.aurora-skill-page .skill-ready p{font-size:.68rem;margin:0}}
@media(min-width:701px) and (max-height:900px){.aurora-skill-page .skill-cabinet{width:min(95vw,520px)}.aurora-skill-page .skill-reel{grid-template-rows:repeat(3,112px)}.aurora-title strong{font-size:2.8rem}.aurora-title b{font-size:2.15rem}}
@media(prefers-reduced-motion:reduce){.aurora-skill-page::before,.aurora-skill-page .skill-cabinet::before,.skill-spinning .aurora-title,.skill-spinning .aurora-paytable{animation:none}}

/* Physical-cabinet pacing for Skill Games v2. The server supplies every final
   symbol; these effects only animate the authoritative state into view. */
.skill-reels-spinning .skill-reel:not(.settled){overflow:hidden;filter:saturate(1.2)}
.skill-reels-spinning .skill-reel:not(.settled) .skill-symbol{animation:none;filter:none}
.skill-reels-spinning .skill-reel.settled{animation:skill-reel-stop .28s cubic-bezier(.2,.9,.25,1.2)}
.skill-reels-move .skill-reel-raise{animation:skill-reel-raise .65s cubic-bezier(.2,.85,.25,1)}
.skill-reels-move .skill-reel-lower{animation:skill-reel-lower .65s cubic-bezier(.2,.85,.25,1)}
.skill-cabinet-message{position:relative;z-index:5;display:grid;justify-items:center;gap:3px;margin:7px 0;padding:9px;border:1px solid #8cefff;border-radius:12px;background:linear-gradient(90deg,#09284be8,#3b276be8,#09284be8);text-align:center;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 0 18px #72e8ff52}
.skill-cabinet-message strong{color:#ffe49a;font-size:clamp(.85rem,2.5vw,1.08rem)}
.skill-cabinet-message small{color:#d6eaff;font-size:.68rem}
.skill-reel-controls{position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:5px}
.skill-reel-control{display:grid;grid-template-rows:auto auto auto;gap:4px;text-align:center}
.skill-reel-control>b{padding:2px;color:#d8ecff;font-size:clamp(.52rem,1.5vw,.68rem);letter-spacing:.08em}
.aurora-skill-page .skill-reel-control button{min-width:0;min-height:42px;padding:5px 2px;border:2px solid #ffe398;border-radius:12px;background:linear-gradient(180deg,#a42d37,#5d1027);color:#fff6cf;text-transform:uppercase;font-size:clamp(.62rem,2vw,.82rem);box-shadow:inset 0 0 12px #fff2,0 0 12px #ff9b4260}
.aurora-skill-page .skill-reel-control .skill-lower{background:linear-gradient(180deg,#2275a2,#13355f);border-color:#8deeff;box-shadow:inset 0 0 12px #fff2,0 0 12px #72e8ff5c}
.skill-reel-control button i{display:block;font-size:1.1rem;font-style:normal;line-height:.8}
.skill-reel-control button:disabled{opacity:.25;filter:grayscale(1);box-shadow:none}
.skill-keep{margin:6px auto 0}
.aurora-skill-page .skill-spin{display:grid;place-items:center;gap:1px;border-radius:999px;min-height:72px;width:min(100%,260px);margin:auto}
.aurora-skill-page .skill-spin span{font-size:1.55rem;font-weight:950;line-height:1}
.aurora-skill-page .skill-spin small{font-size:.58rem;letter-spacing:.16em}
.skill-play-again{display:block;margin:7px auto 0;min-width:55%}
.skill-decision-reels{position:relative;z-index:4;display:grid;gap:3px;margin-top:5px;text-align:center}.skill-decision-reels>strong{color:#ffe298;font-size:.68rem;letter-spacing:.16em}.skill-decision-reels .skill-reels{margin:0}.skill-reel-action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0 7px}.skill-reel-action{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:35px;padding:4px;border:2px solid #ffe398;border-radius:13px;background:linear-gradient(180deg,#c73942,#671124);color:#fff5cd;font-weight:950;text-transform:uppercase;box-shadow:inset 0 1px #fff5,0 0 12px #ff8b4966}.skill-reel-action i{font-style:normal}.skill-lower-row .skill-reel-action{background:linear-gradient(180deg,#2588b8,#11365e);border-color:#8deeff;box-shadow:inset 0 1px #fff5,0 0 12px #72e8ff66}.skill-reel-action:disabled{opacity:.22;filter:grayscale(1);box-shadow:none}.skill-cabinet-message.compact{min-height:25px;margin:3px 0;padding:3px 8px}.skill-cabinet-message.compact.winner{border-color:#ffe277;background:linear-gradient(90deg,#6c2a12,#8d6517,#6c2a12);box-shadow:0 0 22px #ffd34d77}
.skill-decision-inactive>strong{opacity:.58}.skill-decision-inactive>.skill-reel-action-row{visibility:visible;pointer-events:none;opacity:.5}.skill-message-placeholder{visibility:hidden;pointer-events:none}
.skill-pick-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:5px 0}.skill-pick-counts span{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:2px;min-width:0;padding:2px 4px;border:1px solid #80eaff4f;border-radius:8px;background:#06142dcc}.skill-pick-counts img{width:26px;height:26px;object-fit:contain}.skill-pick-counts b{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#e9f8ff;font-size:.5rem}.skill-pick-counts small{color:#ffe17d;font-size:.58rem;font-weight:1000}.aurora-skill-page .skill-pick-board{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;width:100%;max-width:100%;margin:6px auto}.aurora-skill-page .skill-pick-object{width:100%;min-width:0;min-height:0;aspect-ratio:1;border-radius:8px}.aurora-skill-page .skill-pick-cover{width:88%;border:0;background:transparent}.aurora-skill-page .skill-pick-cover img{object-fit:contain}.aurora-skill-page .skill-pick-prize{inset:2px;place-content:stretch;align-items:center}.aurora-skill-page .skill-pick-prize img{width:100%;height:calc(100% - 13px);object-fit:contain}.aurora-skill-page .skill-pick-prize small{align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.43rem}.aurora-skill-page .skill-pick-status{gap:4px;margin:5px auto}.aurora-skill-page .skill-pick-status span{padding:5px}.aurora-skill-page .skill-pick-cabinet .status-strip{margin:5px auto;padding:6px}.skill-console-menu{grid-template-rows:repeat(3,minmax(0,1fr))}
@media(max-width:560px){.aurora-skill-page .skill-pick-board{grid-template-columns:repeat(6,minmax(0,1fr))}.aurora-skill-page .skill-pick-object{min-height:0}.skill-pick-counts{grid-template-columns:repeat(5,minmax(0,1fr))}.skill-pick-counts span{grid-template-columns:20px 1fr;padding:1px}.skill-pick-counts img{grid-row:1/3;width:20px;height:20px}.skill-pick-counts small{font-size:.48rem}}
.skill-control-deck{position:relative;z-index:6;display:grid;grid-template-columns:.72fr 1.2fr 1.15fr 1.25fr 76px;gap:5px;align-items:stretch;margin-top:5px;padding:7px;border:2px solid #e7c457;border-radius:18px;background:linear-gradient(180deg,#121522,#03040a);box-shadow:inset 0 2px #fff2,0 0 22px #000}.skill-console-menu{display:grid;gap:4px}.skill-console-button{display:grid;place-items:center;min-height:30px;padding:3px;border:2px solid #ffc35a;border-radius:999px;background:linear-gradient(#c52d39,#66131d);color:#fff1a6;font-size:.62rem;font-weight:950;text-decoration:none}.skill-console-meter{display:grid;place-items:center;align-content:center;min-width:0;padding:4px;border:2px solid #d3ad4e;border-radius:13px;background:linear-gradient(#36120d,#130705);text-align:center}.skill-console-meter small,.skill-console-meter span{color:#ffd86f;font-size:.52rem;font-weight:950;letter-spacing:.08em}.skill-console-meter strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#fff2b1;font-size:clamp(.72rem,2.2vw,1rem);white-space:nowrap}.skill-console-meter.win strong{font-size:clamp(.9rem,2.8vw,1.3rem)}.skill-console-wager{display:grid;grid-template-rows:auto auto auto;gap:3px}.skill-max-bet{min-height:25px;border:2px solid #ffc35a;border-radius:999px;background:linear-gradient(#d3333f,#6c131f);color:#fff4ae;font-size:.58rem;font-weight:950}.skill-bet-stepper{display:grid;grid-template-columns:30px 1fr 30px;min-height:31px}.skill-bet-stepper button{border:2px solid #eec759;background:#137fc1;color:#fff;font-size:1.05rem;font-weight:1000}.skill-bet-stepper button:first-child{border-radius:10px 0 0 10px}.skill-bet-stepper button:last-child{border-radius:0 10px 10px 0;background:#d82331}.skill-bet-stepper strong{display:grid;place-items:center;min-width:0;border-block:2px solid #eec759;background:#180706;color:#fff1a3;font-size:.68rem}.skill-currency-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.skill-currency-toggle button{min-width:0;padding:2px;border:1px solid #66809c;border-radius:6px;background:#0a1730;color:#aab9ca;font-size:.48rem;font-weight:900}.skill-currency-toggle button.selected{border-color:#ffe078;background:#553311;color:#fff4a6;box-shadow:0 0 8px #ffd24c55}.skill-console-spin{display:grid;place-items:center;align-content:center;aspect-ratio:1;border:4px solid #f7d36a;border-radius:50%;background:radial-gradient(circle at 38% 28%,#ff8a7e,#e01f2e 53%,#710b15);color:#fff;box-shadow:inset 0 0 0 4px #fff4,0 0 16px #ff525277}.skill-console-spin span{font-size:2.5rem;font-weight:1000;line-height:.7}.skill-console-spin small{font-size:.48rem;font-weight:950}.skill-control-deck button:disabled{opacity:.42;cursor:not-allowed}.skill-console-spin:not(:disabled):active,.skill-reel-action:not(:disabled):active{transform:scale(.94)}
@media(max-width:520px){.skill-control-deck{grid-template-columns:.62fr 1.18fr .9fr 1.32fr 64px;gap:3px;padding:4px}.skill-console-button{font-size:.5rem}.skill-console-meter small,.skill-console-meter span{font-size:.42rem}.skill-console-meter strong{font-size:.6rem}.skill-bet-stepper{grid-template-columns:25px 1fr 25px}.skill-bet-stepper strong{font-size:.56rem}.skill-console-spin span{font-size:2rem}.skill-reel-action{min-height:31px;font-size:.62rem}.skill-currency-toggle button{font-size:.4rem}}
.skill-cabinet:not(.skill-cabinet-spinning):not(.skill-cabinet-move) .skill-result [data-skill-win]{animation:skill-win-glow .9s ease-in-out 2 alternate}
@keyframes skill-reel-roll{0%{transform:translateY(-16%)}50%{transform:translateY(16%) scaleY(1.08)}100%{transform:translateY(-16%)}}
@keyframes skill-reel-stop{0%{transform:translateY(-12%)}65%{transform:translateY(4%)}100%{transform:translateY(0)}}
@keyframes skill-reel-raise{0%{transform:translateY(32%);filter:blur(4px)}100%{transform:translateY(0);filter:none}}
@keyframes skill-reel-lower{0%{transform:translateY(-32%);filter:blur(4px)}100%{transform:translateY(0);filter:none}}
@keyframes skill-win-glow{to{color:#fff7b0;text-shadow:0 0 7px #fff,0 0 18px #ffd65a;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.skill-reels-spinning .skill-reel:not(.settled) .skill-symbol,.skill-reels-spinning .skill-reel.settled,.skill-reels-move .skill-reel-raise,.skill-reels-move .skill-reel-lower,.skill-cabinet .skill-result [data-skill-win]{animation:none;filter:none}}
.skill-admin-game-title{display:flex;align-items:center;gap:10px;min-width:190px}.skill-admin-game-title img{width:54px;height:76px;object-fit:cover;border:1px solid #85e9ff;border-radius:8px;box-shadow:0 0 12px #72e8ff42}.skill-admin-game-title span{display:grid;gap:3px}
.skill-free-cabinet{background:radial-gradient(circle at 50% 8%,#7d3db8 0,#24135d 28%,#081027 72%);animation:skill-free-glow 2.2s ease-in-out infinite alternate}.skill-free-progress{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:8px auto;padding:9px 14px;width:max-content;max-width:100%;border:1px solid #ffe484;border-radius:999px;background:#060b22cc;box-shadow:0 0 22px #ffd85a55}.skill-free-progress strong{color:#ffe36b;font-size:clamp(1rem,3vw,1.5rem)}.skill-free-progress span{font-weight:800}.skill-autoplay{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;padding:12px 16px;border:1px solid #7fe7ff55;border-radius:14px;background:#06152dd9}.skill-autoplay .ball-loader{grid-row:1/3}.skill-autoplay small{color:#bcd2eb}.skill-retrigger{text-align:center;font-size:clamp(1.25rem,4vw,2.2rem);font-weight:1000;color:#ffe25f;text-shadow:0 0 14px #ff7a00;animation:skill-retrigger-pop .55s ease-out}@keyframes skill-free-glow{to{box-shadow:0 0 0 6px #4b2c88,0 0 60px #9c52ff66,0 30px 90px #000b}}@keyframes skill-retrigger-pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.skill-free-cabinet,.skill-retrigger{animation:none}}
/* Server-authoritative Match-3 Pick Bonus. Board size and object theme are game-specific. */
.skill-pick-cabinet{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 16%,#6849d8 0,#211754 42%,#070d27 100%);box-shadow:0 0 0 1px #d89cff55,0 25px 80px #000b,inset 0 1px #fff4}.skill-pick-cabinet:before{content:"";position:absolute;inset:-30%;pointer-events:none;background:conic-gradient(from 0deg,transparent,#d8a8ff16,transparent 30%,#ffe77c14,transparent 62%);animation:skill-pick-glow 14s linear infinite}.skill-pick-cabinet>*{position:relative;z-index:1}.skill-pick-cabinet header{text-align:center}.skill-pick-cabinet header p{max-width:720px;margin:.35rem auto;color:#d6d9f7}.skill-pick-board{display:grid;grid-template-columns:repeat(6,minmax(70px,1fr));gap:clamp(.45rem,1vw,.8rem);max-width:930px;margin:1rem auto}.skill-pick-object{position:relative;display:grid;place-items:center;min-height:clamp(82px,9vw,122px);padding:.35rem;border:2px solid #ffd86c;border-radius:18px;background:linear-gradient(145deg,#a95717,#4b160e 58%,#21090a);color:#fff;box-shadow:inset 0 2px #fff6,inset 0 -8px #0006,0 8px 18px #0008;cursor:pointer;overflow:hidden;transform-style:preserve-3d;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.skill-pick-object:not(:disabled):hover,.skill-pick-object:not(:disabled):focus-visible{transform:translateY(-5px) scale(1.035);filter:brightness(1.18);box-shadow:inset 0 2px #fff8,0 13px 30px #000b,0 0 25px #ffd65a88}.skill-pick-cover{display:grid;place-items:center;width:58%;aspect-ratio:1;border:2px solid #fff5;border-radius:15px;background:radial-gradient(circle,#ffdf58,#da6f0d 58%,#70220d);font-size:clamp(1.7rem,4vw,3.2rem);font-weight:1000;text-shadow:0 3px #74220b}.skill-pick-prize{position:absolute;inset:0;display:grid;place-content:center;gap:.2rem;opacity:0;transform:rotateY(90deg);text-align:center}.skill-pick-prize b{font-size:clamp(1.35rem,3vw,2.6rem)}.skill-pick-prize small{font-weight:1000;text-transform:uppercase}.skill-pick-object.revealed{background:radial-gradient(circle at 50% 30%,#4568cf,#1c1b5a 68%,#090d2e);border-color:#80f6ff;cursor:default;animation:skill-pick-reveal .55s cubic-bezier(.2,1.4,.25,1) both}.skill-pick-object.revealed .skill-pick-cover{opacity:0;transform:rotateY(-90deg)}.skill-pick-object.revealed .skill-pick-prize{opacity:1;transform:none}.skill-pick-object.winning{border-color:#fff0ae;background:radial-gradient(circle,#fff3a0,#ed6a19 45%,#8d124c);box-shadow:0 0 28px #ffd84e,inset 0 1px #fff}.skill-pick-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;max-width:720px;margin:1rem auto}.skill-pick-status span{display:grid;padding:.75rem;border:1px solid #ffffff38;border-radius:14px;background:#06142dbf;color:#9dc2de;text-align:center;font-size:.72rem;font-weight:900}.skill-pick-status b{color:#fff;font-size:1.2rem}.skill-pick-winner{display:grid;place-items:center;max-width:680px;margin:1rem auto;padding:1rem;border:2px solid #ffe27c;border-radius:20px;background:radial-gradient(circle,#ffdb6b,#d43e62 58%,#54116b);color:#fff;text-align:center;box-shadow:0 0 45px #ffbc4a99;animation:skill-pick-winner .65s cubic-bezier(.15,1.45,.3,1) both}.skill-pick-winner small{letter-spacing:.13em;font-weight:1000}.skill-pick-winner strong{font-size:clamp(2rem,6vw,4.4rem);text-shadow:0 4px #65124b}.skill-pick-winner span{font-size:1.35rem;font-weight:1000}.skill-pick-winner.jackpot{background:radial-gradient(circle,#fffbd3,#f2a20d 38%,#b1125e 75%);box-shadow:0 0 70px #ffe24c}.skill-pick-cabinet>.button{display:block;margin:1rem auto}.skill-pick-cabinet .status-strip{max-width:780px;margin:1rem auto}@keyframes skill-pick-glow{to{transform:rotate(360deg)}}@keyframes skill-pick-reveal{from{transform:rotateY(90deg) scale(.65);opacity:.2}to{transform:none;opacity:1}}@keyframes skill-pick-winner{from{transform:scale(.5) rotate(-5deg);opacity:0}to{transform:none;opacity:1}}
@media(max-width:850px){.skill-pick-board{grid-template-columns:repeat(6,minmax(54px,1fr))}.skill-pick-object{min-height:82px;border-radius:13px}.skill-pick-prize small{font-size:.65rem}}
@media(max-width:560px){.skill-pick-board{grid-template-columns:repeat(3,minmax(72px,1fr))}.skill-pick-status{grid-template-columns:1fr}.skill-pick-object{min-height:88px}}
.skill-expanding-cabinet{background:linear-gradient(180deg,#061525f5,#091221f7 45%,#03070df8);box-shadow:0 0 0 2px #f0a43c,0 25px 80px #000d,inset 0 0 50px #37d9df18}.skill-expanding-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(6,minmax(54px,1fr));gap:5px;width:min(100%,460px);aspect-ratio:3/5.2;margin:8px auto;padding:6px;border:3px solid #f4b357;border-radius:16px;background:linear-gradient(#06111de8,#0a1e30e8),repeating-linear-gradient(90deg,#fff0 0 32%,#fff2 33% 34%);box-shadow:inset 0 0 35px #000,0 0 24px #37d9df35}.skill-expanding-cell{position:relative;display:grid;place-items:center;min-width:0;overflow:hidden;border:1px solid #eeb96564;border-radius:9px;background:radial-gradient(circle,#183a4b,#07101b 72%)}.skill-expanding-cell i{width:18%;aspect-ratio:1;border-radius:50%;background:#2a607266;box-shadow:0 0 12px #4fe4ef44}.skill-expanding-cell img{position:absolute;width:92%;height:92%;object-fit:contain;filter:drop-shadow(0 0 8px #3fe8ff)}.skill-expanding-cell strong{position:relative;z-index:2;max-width:94%;padding:2px 5px;border:1px solid #ffd37588;border-radius:999px;background:#03101bd9;color:#fff5c0;font-size:clamp(.58rem,2vw,.86rem);line-height:1;white-space:nowrap;text-shadow:0 2px 3px #000}.skill-expanding-cell.just-landed{animation:skill-ball-land .7s cubic-bezier(.15,1.4,.25,1);border-color:#fff2a8;box-shadow:0 0 22px #55efff,inset 0 0 20px #ffd75a55}.skill-expanding-cell.locked{background:repeating-linear-gradient(135deg,#08101f,#08101f 8px,#17233a 8px,#17233a 16px);border-color:#64718c55}.skill-row-lock{color:#91a1bc;font-size:.62rem;font-weight:1000;letter-spacing:.06em}.skill-expanding-cell.grand{box-shadow:inset 0 0 25px #ffd84f,0 0 15px #ffd84f}.skill-expanding-cell.mega{box-shadow:inset 0 0 25px #ef5350,0 0 15px #ef5350}.skill-expanding-cell.major{box-shadow:inset 0 0 25px #b76cff,0 0 15px #b76cff}.skill-expanding-cell.minor{box-shadow:inset 0 0 25px #4b8fff}.skill-expanding-cell.mini{box-shadow:inset 0 0 25px #45d474}.skill-expanding-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:520px;margin:6px auto}.skill-expanding-status span{display:grid;padding:6px;border:1px solid #37d9df44;border-radius:9px;background:#020b14d9;color:#9cc6d4;text-align:center;font-size:.6rem;font-weight:900}.skill-expanding-status b{color:#fff2b2;font-size:.95rem}.skill-expanding-spin{display:grid;min-width:min(90%,330px);margin:8px auto;background:linear-gradient(#e76b31,#a42024);border-color:#ffd37c;box-shadow:0 0 20px #f29c45aa}.skill-expanding-spin span{font-size:1.15rem}.skill-expanding-spin small{font-size:.65rem}@keyframes skill-ball-land{from{transform:scale(.2) rotate(-25deg);opacity:0}65%{transform:scale(1.12) rotate(4deg)}to{transform:none;opacity:1}}@media(max-width:560px){.skill-expanding-board{width:min(100%,340px);gap:3px;padding:4px}.skill-expanding-cell{border-radius:6px}.skill-row-lock{font-size:.48rem}.skill-expanding-status span{padding:4px}}
.skill-expanding-cell.ball-scanning>i{opacity:0}.skill-ball-stream{position:absolute;z-index:3;inset:-250% 5%;display:grid;grid-template-rows:repeat(4,25%);place-items:center;pointer-events:none;animation:skill-ball-stream var(--ball-scan-speed,.55s) linear var(--ball-scan-delay,0s) infinite}.skill-ball-stream img{position:static;width:72%;height:72%;object-fit:contain;filter:drop-shadow(0 0 7px #7bf5ff)}.skill-ball-stream b{width:52%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff,#67edff 18%,#2776c9 58%,#102349);box-shadow:0 0 12px #6ff5ff}.skill-expanding-cell.ball-scanning{border-color:#82efff;box-shadow:inset 0 0 20px #46e6ff36,0 0 9px #46e6ff55}@keyframes skill-ball-stream{from{transform:translateY(0)}to{transform:translateY(50%)}}
@media(prefers-reduced-motion:reduce){.skill-pick-cabinet:before,.skill-pick-object.revealed,.skill-pick-winner{animation:none}.skill-pick-object{transition:none}}
.pick-bonus-designer{padding:1rem;border:1px solid #b78cff66;border-radius:16px;background:linear-gradient(145deg,#25144c88,#071b3988)}.pick-bonus-designer>p{color:var(--muted)}.pick-weight-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:.55rem;margin:.8rem 0}.pick-weight-grid label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.2rem .5rem;padding:.55rem;border:1px solid #ffffff24;border-radius:12px;background:#06162bbd}.pick-weight-grid input{grid-row:1/3;grid-column:2;width:110px}.pick-weight-grid small{color:#8faec6}@media(max-width:760px){.pick-weight-grid{grid-template-columns:1fr}.pick-weight-grid input{width:95px}}
/* Phase 11 game-selection titles and percentage-based Match-3 editor. */
.slot-card-art-name{position:absolute;z-index:2;right:3.3rem;bottom:2.15rem;left:.65rem;overflow:hidden;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.05rem,2vw,1.8rem);font-weight:1000;line-height:1;text-overflow:ellipsis;text-shadow:0 3px 3px #000,0 0 8px #000,0 0 18px var(--game-secondary);white-space:nowrap;letter-spacing:.02em}
.skill-card-art .skill-card-kind{position:relative;z-index:2}.skill-card-name{position:absolute;z-index:2;right:12px;bottom:12px;left:12px;display:grid;place-items:center;min-height:2.05em;color:var(--skill-title-color,#fff);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.25rem,2.4vw,2.35rem);font-weight:1000;line-height:.9;letter-spacing:.015em;text-align:center;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 3px 2px var(--skill-title-shadow,#071127),0 0 8px var(--skill-title-shadow,#071127),0 0 20px var(--skill-title-accent,#f4d17c)}
.skill-card-art:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#030919d9);pointer-events:none}.pick-percentage-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border:1px solid #ffffff25;border-radius:12px;background:#06172f}.pick-percentage-total strong{color:var(--gold)}.pick-percentage-total strong.valid{color:var(--green)}.pick-percentage-total strong.invalid{color:#ff8b8b}
.skill-release-grid{display:grid;gap:14px}.skill-release-thumb{display:block;width:120px;aspect-ratio:16/10;object-fit:cover;border:1px solid #ffffff35;border-radius:10px}.skill-release-actions{display:flex;flex-wrap:wrap;gap:6px}.skill-readiness-result{margin-top:8px}.skill-readiness-checks{display:grid;gap:5px}.skill-readiness-checks span{display:grid;gap:2px;padding:7px;border:1px solid #ffffff20;border-radius:8px;background:#06172f}.skill-readiness-checks span.passed{border-color:#4ae48b66}.skill-readiness-checks span.failed{border-color:#ff687866}.skill-readiness-checks small{color:var(--muted)}

/* Continuous GPU-composited Skill Game reels. The server still supplies every final symbol. */
.skill-reel{--skill-cell-height:clamp(75px,16vh,140px);position:relative;display:block;height:calc(var(--skill-cell-height) + var(--skill-cell-height) + var(--skill-cell-height) + 6px);overflow:hidden;contain:layout paint;isolation:isolate}
.skill-reel-track{display:grid;grid-auto-rows:var(--skill-cell-height);gap:3px;width:100%;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;transform-style:preserve-3d}
.skill-reel-track>.skill-symbol{box-sizing:border-box;min-height:0;transform:translateZ(0)}
.skill-reels-spinning .skill-reel:not(.settled) .skill-symbol{animation:none!important}
.skill-reel.rolling{box-shadow:inset 0 12px 18px -12px #000,inset 0 -12px 18px -12px #000}
.skill-reel.rolling:after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(#020817aa,transparent 15%,transparent 85%,#020817aa)}
.skill-reel.smooth-settled{animation:skill-smooth-land .16s ease-out}
.skill-reels-spinning .skill-reel.settled{animation:skill-smooth-land .16s ease-out!important;filter:none}
.skill-reel.move-awaiting{filter:brightness(1.12);box-shadow:0 0 14px #8deeff88}
@keyframes skill-smooth-land{0%{transform:translateY(-2px)}100%{transform:translateY(0)}}
.aurora-skill-page .skill-reel{--skill-cell-height:clamp(90px,15.2vh,146px);height:calc(var(--skill-cell-height) + var(--skill-cell-height) + var(--skill-cell-height) + 6px)}
@media(max-width:700px){.aurora-skill-page .skill-reel{--skill-cell-height:clamp(78px,14.8vh,122px)}}
@media(min-width:701px) and (max-height:900px){.aurora-skill-page .skill-reel{--skill-cell-height:112px}}

/* Premium Skill Game family: data-driven color treatment and a wider desktop
   cabinet. Reel artwork remains contained at its native aspect ratio. */
.premium-skill-page .skill-cabinet{border-color:var(--skill-gold);background:linear-gradient(180deg,color-mix(in srgb,var(--skill-dark) 94%,#000),color-mix(in srgb,var(--skill-dark) 82%,var(--skill-secondary)) 40%,color-mix(in srgb,var(--skill-dark) 96%,#000));box-shadow:0 0 0 5px color-mix(in srgb,var(--skill-secondary) 58%,#17203f),0 0 55px color-mix(in srgb,var(--skill-primary) 30%,transparent),0 36px 100px #000e}
.premium-skill-page .aurora-title strong{color:#f7fdff;text-shadow:0 0 8px var(--skill-primary),0 3px 0 color-mix(in srgb,var(--skill-primary) 42%,#071127)}
.premium-skill-page .aurora-title b{color:var(--skill-gold);text-shadow:0 0 9px var(--skill-accent),0 3px 0 color-mix(in srgb,var(--skill-secondary) 68%,#1b1025)}
.premium-skill-page .aurora-title small{color:color-mix(in srgb,var(--skill-primary) 75%,#fff)}
.premium-skill-page .skill-jackpots span,.premium-skill-page .aurora-paytable-item,.premium-skill-page .skill-result{border-color:color-mix(in srgb,var(--skill-primary) 48%,transparent)}
.premium-skill-page .skill-reels{border-color:var(--skill-gold);box-shadow:inset 0 0 35px color-mix(in srgb,var(--skill-primary) 16%,transparent),0 0 22px color-mix(in srgb,var(--skill-accent) 34%,transparent)}
.premium-skill-page .skill-symbol{background:radial-gradient(circle,color-mix(in srgb,var(--skill-primary) 18%,var(--skill-dark)),var(--skill-dark) 72%)}
.premium-skill-page .skill-symbol img,.premium-skill-page .aurora-paytable-item img{object-fit:contain}
.premium-skill-page .skill-feature-banner{border-color:var(--skill-primary);background:linear-gradient(90deg,color-mix(in srgb,var(--skill-dark) 78%,var(--skill-primary)),color-mix(in srgb,var(--skill-dark) 55%,var(--skill-secondary)),color-mix(in srgb,var(--skill-dark) 78%,var(--skill-primary)))}
.skill-theme-neon-rhythm-city::before{background:repeating-linear-gradient(105deg,transparent 0 12%,#20f6ff14 12.3% 12.5%,transparent 12.8% 25%),radial-gradient(circle at 80% 20%,#ff36d133,transparent 28%);animation-duration:5s}
.skill-theme-marigold-moon-festival::before{background:radial-gradient(circle at 18% 20%,#ffbd4438,transparent 24%),radial-gradient(circle at 84% 72%,#35d68a28,transparent 30%)}
.skill-theme-cosmic-confetti-gala::before{background:radial-gradient(circle at 15% 25%,#ff4c9b34,transparent 24%),radial-gradient(circle at 85% 70%,#755bff3b,transparent 30%),repeating-linear-gradient(35deg,transparent 0 18%,#fff1 18.2% 18.35%,transparent 18.6% 36%)}
.skill-theme-clockwork-prizeworks::before{background:repeating-radial-gradient(circle at 14% 30%,transparent 0 34px,#e7b95218 35px 37px,transparent 38px 72px),radial-gradient(circle at 84% 70%,#32d6cc24,transparent 30%)}
.skill-theme-stormcrest-valor::before{background:linear-gradient(118deg,transparent 0 47%,#aee8ff1f 47.4% 47.8%,transparent 48.2%),radial-gradient(circle at 85% 70%,#cf334a22,transparent 30%)}
.skill-theme-midnight-mile::before{background:linear-gradient(105deg,transparent 0 44%,#ff9d3b20 44.4% 44.8%,transparent 45.2%),radial-gradient(circle at 78% 18%,#8eefff20,transparent 22%),radial-gradient(circle at 18% 72%,#d64e2d25,transparent 30%);animation:midnight-mile-lights 7s ease-in-out infinite alternate}
@keyframes midnight-mile-lights{to{opacity:.58;filter:saturate(1.25) brightness(1.08)}}

/* Compact responsive Skill Game discovery: five cards on wide desktop and
   four on ordinary desktop without shrinking artwork or clipping titles. */
.skill-lobby-page{max-width:1680px}.skill-lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skill-lobby-card>div:last-child{padding:13px}.skill-card-art{min-height:170px;padding:11px}.skill-lobby-card h2{margin:.15rem 0;font-size:clamp(1rem,1.3vw,1.25rem)}.skill-lobby-card p{display:-webkit-box;min-height:2.6em;margin:.4rem 0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem}.skill-lobby-card .skill-feature-row{gap:4px;margin:9px 0}.skill-lobby-card .skill-feature-row span{padding:4px 7px;font-size:.62rem}.skill-lobby-card .button{width:100%;padding:.55rem .7rem}
@media(min-width:900px){.skill-lobby-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1400px){.skill-lobby-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:560px){.skill-lobby-grid{grid-template-columns:1fr}.skill-card-art{min-height:190px}}
@media(min-width:1100px) and (min-height:720px){
  body.skill-playing{overflow:hidden}
  .premium-skill-page{height:calc(100dvh - 70px);min-height:0;padding:6px 18px 8px;overflow:hidden}
  .premium-skill-page.skill-layout-expanded .skill-cabinet{width:min(92vw,980px);max-width:980px;margin:0 auto;padding:8px 14px;border-radius:24px}
  .premium-skill-page.skill-layout-expanded .aurora-title{grid-template-columns:auto auto;column-gap:14px;align-items:end;margin-bottom:3px}
  .premium-skill-page.skill-layout-expanded .aurora-title strong{font-size:clamp(2rem,3.2vw,3.25rem)}
  .premium-skill-page.skill-layout-expanded .aurora-title b{font-size:clamp(1.65rem,2.8vw,2.8rem)}
  .premium-skill-page.skill-layout-expanded .aurora-title small{grid-column:1/-1;order:3;margin-top:3px}
  .premium-skill-page.skill-layout-expanded .aurora-paytable{grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin-top:4px}
  .premium-skill-page.skill-layout-expanded .aurora-paytable-item{grid-template-columns:minmax(28px,46px) 1fr}
  .premium-skill-page.skill-layout-expanded .skill-reels{margin:5px auto;max-width:900px}
  .premium-skill-page.skill-layout-expanded .skill-reel{--skill-cell-height:clamp(98px,13.2vh,148px)}
  .premium-skill-page.skill-layout-expanded .skill-control-deck{max-width:920px;margin-inline:auto}
  .premium-skill-page.skill-layout-expanded .skill-pick-board{max-width:900px}
}
@media(prefers-reduced-motion:reduce){.skill-reel.smooth-settled{animation:none}}

/* Skill cabinet legibility and Midnight Mile production pass. Symbols are
   contained instead of cropped, prize values never collapse to ellipses, and
   the ten standard awards remain in two predictable rows at every size. */
.premium-skill-page .skill-symbol{display:flex;align-items:center;justify-content:center;line-height:0}
.premium-skill-page .skill-symbol img{position:absolute;inset:50% auto auto 50%;box-sizing:border-box;width:88%;height:88%;min-width:0;min-height:0;padding:0;object-fit:contain;object-position:50% 50%;transform:translate(calc(-50% + var(--skill-art-x,0%)),calc(-50% + var(--skill-art-y,0%)));transform-origin:center;filter:drop-shadow(0 4px 4px #0008)}
.premium-skill-page .skill-reels{width:100%}
.premium-skill-page .skill-symbol>span{display:none}
.premium-skill-page .aurora-paytable{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px}
.premium-skill-page .aurora-paytable-item{grid-template-columns:minmax(24px,42px) minmax(0,1fr);min-height:45px;padding:3px 4px}
.premium-skill-page .aurora-paytable-item img{box-sizing:border-box;width:100%;height:38px;aspect-ratio:auto;padding:1px;object-fit:contain}
.premium-skill-page .aurora-paytable-item span{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;line-height:1.02;font-size:clamp(.5rem,1.15vw,.72rem)}
.premium-skill-page .aurora-paytable-item small{font-size:clamp(.42rem,.75vw,.54rem)}
.premium-skill-page .skill-jackpots span i{display:grid;place-items:center;width:clamp(24px,3vw,39px);height:clamp(24px,3vw,39px)}
.premium-skill-page .skill-jackpots span i img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 6px currentColor)}
.premium-skill-page .skill-jackpots span b{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;line-height:1.02;font-size:clamp(.48rem,1vw,.7rem)}
.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="0"],.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="2"]{cursor:pointer}
.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="0"]:hover,.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="2"]:hover{filter:brightness(1.14);box-shadow:inset 0 0 18px #fff2,0 0 12px var(--skill-primary)}
.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="0"]:after,.skill-decision-reels:not(.skill-decision-inactive) .skill-symbol[data-symbol-row="2"]:after{content:attr(data-tap-label);position:absolute;right:4px;bottom:4px;color:#fff6bc;font-size:.48rem;font-weight:1000;text-shadow:0 1px 3px #000}

/* The generated Midnight Mile cutouts contain generous transparent margins.
   These symbol-specific masks exclude stray disconnected pixels outside each
   intended object without cropping the object itself. */
.skill-theme-midnight-mile .skill-symbol img{clip-path:none;object-position:50% 50%}

@media(min-width:1100px) and (min-height:720px){
  .premium-skill-page.skill-layout-expanded .skill-cabinet{width:min(calc(100vw - 52px),1540px);max-width:1540px}
  .premium-skill-page.skill-layout-expanded .skill-reels{max-width:1400px}
  .premium-skill-page.skill-layout-expanded .skill-control-deck{max-width:1420px}
  .premium-skill-page.skill-layout-expanded .skill-pick-board{max-width:1400px}
}
@media(min-width:1100px) and (min-height:720px) and (max-height:950px){
  .premium-skill-page.skill-layout-expanded .skill-cabinet{width:min(96vw,calc((100dvh - 60px)*1.05),1100px)}
  .premium-skill-page.skill-layout-expanded .skill-reel{--skill-cell-height:clamp(76px,10.5vh,100px)}
}
@media(max-width:600px){
  .premium-skill-page .aurora-paytable{gap:2px}
  .premium-skill-page .aurora-paytable-item{grid-template-columns:minmax(19px,29px) minmax(0,1fr);min-height:38px;padding:2px}
  .premium-skill-page .aurora-paytable-item img{height:30px}
  .premium-skill-page .aurora-paytable-item span{font-size:clamp(.42rem,2vw,.58rem)}
  .premium-skill-page .skill-jackpots span{padding:3px 1px}
  .premium-skill-page .skill-jackpots span i{width:25px;height:25px;margin:auto}
  .premium-skill-page .skill-jackpots span b{font-size:clamp(.4rem,1.85vw,.56rem)}
}

/* Keep maximum-bet awards readable on phones and tablets. These rules follow
   all cabinet breakpoints so no older ellipsis rule can override them. */
.premium-skill-page .aurora-paytable-item .skill-paytable-value{grid-template-columns:minmax(0,1fr) clamp(7px,1.2vw,10px);gap:1px}
.premium-skill-page .aurora-paytable-item .skill-paytable-value>b{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:nowrap;overflow-wrap:normal;font-size:clamp(.36rem,1.05vw,.64rem);font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.premium-skill-page .skill-jackpots span b{min-width:0;overflow:visible;text-overflow:clip;white-space:nowrap;overflow-wrap:normal;font-size:clamp(.4rem,.92vw,.68rem);font-variant-numeric:tabular-nums;letter-spacing:-.035em}
@media(max-width:900px){
  .premium-skill-page .aurora-paytable-item .skill-paytable-value>b{font-size:clamp(.34rem,1.28vw,.58rem)}
  .premium-skill-page .skill-jackpots span b{font-size:clamp(.36rem,1.22vw,.58rem)}
}

/* Stable, orientation-safe live Bingo controls. The current pattern remains
   beside Get Cards, while every card is allowed to shrink inside its grid
   track instead of retaining a stale pre-rotation width. */
.room-status-box{align-content:start}.hud-game-meta{display:flex;flex-wrap:wrap;gap:.18rem .42rem;margin-top:.18rem}.hud-game-meta small{color:#9fc7df!important;font-size:clamp(.46rem,.78vw,.58rem)!important;line-height:1.1}.cards-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.cards-toolbar-mode{min-width:0}.cards-toolbar-actions{position:relative;top:-.3rem;display:flex;align-items:center;justify-content:flex-end;gap:.45rem;min-width:0}.toolbar-pattern{display:flex;align-items:center;gap:.4rem;min-width:0;padding:.28rem .42rem;border:1px solid #6beedc55;border-radius:11px;background:linear-gradient(135deg,#07182f,#173d65);box-shadow:inset 0 1px #fff2}.toolbar-pattern .pattern-preview.compact{flex:0 0 auto;width:46px;gap:2px}.toolbar-pattern .pattern-preview.compact i{border-radius:2px}.toolbar-pattern>span{display:grid;min-width:0;line-height:1.05}.toolbar-pattern small{color:#79f5e3;font-size:.45rem;font-weight:1000;letter-spacing:.07em}.toolbar-pattern strong{max-width:16ch;overflow:hidden;color:#fff4b0;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.organize-cards-button{margin-left:.3rem;padding:.28rem .52rem;border:1px solid #7edfff66;border-radius:999px;background:#17325c;color:#d8f7ff;font-size:.62rem;font-weight:1000}.bingo-cards{width:100%;max-width:100%;box-sizing:border-box}.bingo-cards>*{min-width:0;max-width:100%;box-sizing:border-box}.bingo-card{min-width:0;max-width:100%;box-sizing:border-box}.bingo-grid{width:100%;min-width:0}.bingo-letter,.bingo-cell{min-width:0;overflow:hidden}.bingo-cell.one-away-target{overflow:visible}
@media(max-width:700px){.cards-toolbar{gap:.3rem}.cards-toolbar-actions{flex:0 0 auto;gap:.25rem}.toolbar-pattern{padding:.2rem .26rem}.toolbar-pattern .pattern-preview.compact{width:38px}.toolbar-pattern>span{display:none}.cards-toolbar-actions .button{padding:.5rem .55rem;font-size:.64rem}.organize-cards-button{padding:.22rem .4rem;font-size:.54rem}}
@media(orientation:landscape) and (max-height:600px){.bingo-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.3rem}.bingo-card{width:100%!important;min-width:0!important;max-width:none!important}.card-label{font-size:.48rem}.cards-toolbar{min-height:0!important}.toolbar-pattern .pattern-preview.compact{width:34px}}

/* Skill Games are a fixed gameplay surface. The cabinet is measured after
   every render and orientation change, then uniformly scaled only when it is
   necessary to keep every control inside the visible viewport. */
html.skill-playing-root,html.skill-playing-root body{width:100%;height:100%;overflow:hidden!important;overscroll-behavior:none}
body.skill-playing{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden!important;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none}
body.skill-playing .topbar{height:74px;position:relative;flex:0 0 74px}
body.skill-playing #app-main{width:100%;height:calc(100dvh - 74px);min-height:0;overflow:hidden!important}
body.skill-playing .mobile-tabs,body.skill-playing .install-app-prompt{display:none!important}
body.skill-playing .skill-game-page{position:relative;display:flex;align-items:flex-start;justify-content:center;width:100%;height:100%;min-height:0!important;max-height:100%;padding:4px!important;overflow:hidden!important;touch-action:none}
body.skill-playing .skill-game-page .skill-lobby-back{position:absolute;z-index:75;top:7px;left:max(7px,env(safe-area-inset-left));margin:0}
body.skill-playing .skill-cabinet{flex:0 0 auto;width:min(100%,1540px);max-width:calc(100vw - 8px);margin:0 auto!important;transform:scale(var(--skill-fit-scale,1));transform-origin:top center;will-change:transform;touch-action:none;-webkit-user-drag:none}
body.skill-playing .skill-cabinet img{pointer-events:none;-webkit-user-drag:none;user-select:none}
body.skill-playing .skill-cabinet button,body.skill-playing .skill-cabinet a{touch-action:manipulation}
@media(max-width:850px){body.skill-playing .topbar{height:64px;flex-basis:64px}body.skill-playing #app-main{height:calc(100dvh - 64px)}body.skill-playing .skill-game-page .skill-lobby-back{width:32px;height:32px;padding:0;font-size:0}body.skill-playing .skill-game-page .skill-lobby-back:after{content:"←";font-size:1rem}}
@media(orientation:landscape) and (max-height:700px){body.skill-playing .premium-skill-page .aurora-title small{display:none}body.skill-playing .premium-skill-page .aurora-title strong{font-size:clamp(1.2rem,4.2vh,2rem)}body.skill-playing .premium-skill-page .aurora-title b{font-size:clamp(1rem,3.6vh,1.7rem)}body.skill-playing .premium-skill-page .skill-reel{--skill-cell-height:clamp(54px,12.2vh,82px)}body.skill-playing .premium-skill-page .aurora-paytable-item{min-height:34px}body.skill-playing .skill-control-deck{margin-top:2px;padding:4px}}

/* Administrator-only, non-financial scenario launcher. It floats outside the
   cabinet flow so Test Mode never resizes the live game. */
.skill-qa-toolbar{position:fixed;z-index:90;right:12px;bottom:12px;display:grid;grid-template-columns:repeat(2,minmax(108px,1fr));gap:5px;width:min(310px,calc(100vw - 24px));padding:8px;border:1px solid #79e6ff88;border-radius:13px;background:#06152aee;box-shadow:0 12px 35px #000b;color:#fff;backdrop-filter:blur(9px)}
.skill-qa-toolbar strong,.skill-qa-toolbar span{grid-column:1/-1;text-align:center}.skill-qa-toolbar strong{color:#ffe071;font-size:.78rem;letter-spacing:.08em}.skill-qa-toolbar span{color:#b8d9eb;font-size:.63rem}.skill-qa-toolbar button{min-height:32px;padding:5px 7px;border:1px solid #4acff777;border-radius:8px;background:#123f66;color:#fff;font-size:.68rem;font-weight:900;cursor:pointer}.skill-qa-toolbar button:hover{background:#17618e}.skill-qa-toolbar .secondary{background:#44285d}
@media(max-width:700px){.skill-qa-toolbar{right:7px;bottom:7px;width:min(255px,calc(100vw - 14px));grid-template-columns:repeat(2,minmax(88px,1fr));opacity:.94}.skill-qa-toolbar span{display:none}.skill-qa-toolbar button{font-size:.6rem}}
.skill-spinning .aurora-title,.skill-spinning .aurora-paytable,.skill-cabinet-spinning .aurora-title,.skill-cabinet-spinning .aurora-paytable,.skill-cabinet-spinning .skill-jackpots{animation:none!important;filter:none!important;opacity:1!important}.skill-cabinet-spinning .currency-icon,.skill-cabinet-spinning .aurora-paytable img,.skill-cabinet-spinning .skill-jackpots img{animation:none!important;filter:none!important;opacity:1!important}
