/* SyokBox V2.43: Tic Tac Win premium popup and playable customer game. */
.tic-tac-premium-sheet .premium-offer-image {
  width: 100%;
  height: auto;
  aspect-ratio: 1.36 / 1;
  object-fit: cover;
  object-position: center;
}

.tic-tac-result-card {
  display: flex;
  min-height: calc(100svh - 24px);
  flex-direction: column;
  overflow: hidden;
}

.tic-tac-game {
  display: grid;
  width: 100%;
  margin: auto 0;
  justify-items: center;
  text-align: center;
}

.tic-tac-kicker {
  display: inline-flex;
  margin: 8px 0 12px;
  padding: 7px 13px;
  border-radius: 7px;
  background: #214dcc;
  color: #fff;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .08em;
}

.tic-tac-game h2 {
  margin: 0;
  color: #172a5e;
  font-size: clamp(27px, 7vw, 36px);
  font-weight: 800;
  letter-spacing: -.03em;
}

.tic-tac-sub {
  max-width: 330px;
  margin: 7px 0 12px;
  color: #74819a;
  font-size: 13px;
  line-height: 1.55;
}

.tic-tac-o { color: #ef4f58; }

.tic-tac-turn {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 8px;
  margin-bottom: 13px;
  padding: 6px 12px;
  border: 1px solid #e4e9f3;
  border-radius: 999px;
  color: #42516a;
  background: #fff;
  font-size: 12px;
  font-weight: 650;
  box-shadow: 0 3px 12px rgba(23,42,94,.06);
}

.tic-tac-turn-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ef4f58;
  box-shadow: 0 0 0 4px rgba(239,79,88,.12);
}

.tic-tac-turn-dot.bot { background: #2454d2; box-shadow: 0 0 0 4px rgba(36,84,210,.12); animation: ticTacPulse .8s ease-in-out infinite alternate; }
.tic-tac-turn-dot.won { background: #20a45a; box-shadow: 0 0 0 4px rgba(32,164,90,.13); }
.tic-tac-turn-dot.lost { background: #687690; box-shadow: 0 0 0 4px rgba(104,118,144,.13); }
.tic-tac-turn-dot.draw { background: #f3a62a; box-shadow: 0 0 0 4px rgba(243,166,42,.14); }

.tic-tac-board {
  position: relative;
  isolation: isolate;
  display: grid;
  width: min(78vw, 330px);
  aspect-ratio: 1;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.tic-tac-board::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(#2454d2,#2454d2) 33.333% center / 4px 96% no-repeat,
    linear-gradient(#2454d2,#2454d2) 66.667% center / 4px 96% no-repeat,
    linear-gradient(90deg,#2454d2,#2454d2) center 33.333% / 96% 4px no-repeat,
    linear-gradient(90deg,#2454d2,#2454d2) center 66.667% / 96% 4px no-repeat;
  border-radius: 999px;
  content: '';
  pointer-events: none;
  transform: rotate(-.2deg);
}

/* Merchant-selected board themes. Occupied cells always remain clean white. */
.tic-tac-board.modern_syokbox {
  gap: 8px;
  padding: 10px;
  border: 5px solid #2454d2;
  border-radius: 28px;
  background: #2454d2;
  box-shadow: inset 0 0 0 3px #8eabff, 0 12px 28px rgba(36,84,210,.16);
}
.tic-tac-board.modern_syokbox::before { display: none; }
.tic-tac-board.modern_syokbox .tic-tac-cell {
  border: 1px solid #dbe4fb;
  border-radius: 16px;
  background: #fff;
}

.tic-tac-board.floating_tiles {
  gap: 11px;
  background: transparent;
}
.tic-tac-board.floating_tiles::before { display: none; }
.tic-tac-board.floating_tiles .tic-tac-cell {
  border: 1px solid #e1e6f0;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(23,42,94,.10);
}
.tic-tac-board.modern_syokbox .tic-tac-cell:disabled,
.tic-tac-board.floating_tiles .tic-tac-cell:disabled,
.tic-tac-board.modern_syokbox .tic-tac-cell.is-winning,
.tic-tac-board.floating_tiles .tic-tac-cell.is-winning { background: #fff; opacity: 1; }

/* Tic Tac campaign configuration */
.tic-campaign-note {
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #f0b64f;
  border-radius: 10px;
  background: #fff;
  color: #6b4c10;
  font-size: 13px;
  line-height: 1.45;
}
.tic-board-picker { margin: 8px 0 22px; }
.tic-board-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.tic-board-option { position: relative; display: grid; gap: 8px; cursor: pointer; text-align: center; }
.tic-board-option > input { position: absolute; opacity: 0; pointer-events: none; }
.tic-board-option > strong { color: #53617a; font-size: 12px; }
.tic-board-option > input:checked ~ strong { color: #214dcc; }
.tic-board-preview {
  display: grid;
  aspect-ratio: 1;
  grid-template-columns: repeat(3,1fr);
  gap: 0;
  padding: 7px;
  border: 2px solid #dfe5f1;
  border-radius: 14px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.tic-board-option > input:checked + .tic-board-preview { border-color: #2454d2; box-shadow: 0 0 0 3px rgba(36,84,210,.10); }
.tic-board-preview i { display: grid; place-items: center; color: #2454d2; font-size: clamp(10px,3vw,18px); font-style: normal; font-weight: 800; }
.tic-board-preview.classic_pen { background: linear-gradient(#2454d2,#2454d2) 36% 50%/2px 84% no-repeat,linear-gradient(#2454d2,#2454d2) 64% 50%/2px 84% no-repeat,linear-gradient(90deg,#2454d2,#2454d2) 50% 36%/84% 2px no-repeat,linear-gradient(90deg,#2454d2,#2454d2) 50% 64%/84% 2px no-repeat,#fff; }
.tic-board-preview.modern_syokbox { gap: 3px; padding: 5px; border-width: 4px; background: #2454d2; }
.tic-board-preview.modern_syokbox i { border-radius: 5px; background: #fff; }
.tic-board-preview.floating_tiles { gap: 5px; border-color: transparent; }
.tic-board-preview.floating_tiles i { border: 1px solid #e1e6f0; border-radius: 6px; background: #fff; box-shadow: 0 3px 6px rgba(23,42,94,.10); }

@media (max-width: 430px) {
  .tic-board-options { gap: 7px; }
  .tic-board-option > strong { font-size: 10px; }
}

.tic-tac-cell {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .14s ease, background .2s ease;
}

.tic-tac-cell:disabled,
.tic-tac-cell[disabled],
.tic-tac-cell.is-winning {
  background: #fff;
  opacity: 1;
}

.tic-tac-cell:not(:disabled):active { transform: scale(.94); background: #fff; }

.tic-tac-piece {
  position: relative;
  z-index: 3;
  display: block;
  width: 58%;
  height: 58%;
  animation: ticTacPieceIn .24s cubic-bezier(.2,.8,.2,1.2) both;
}

.tic-tac-piece-o {
  border: clamp(6px, 1.9vw, 10px) solid #ef4f58;
  border-radius: 50%;
  box-shadow: none;
  transform: rotate(-4deg) scaleX(.96);
}

.tic-tac-piece-x::before,
.tic-tac-piece-x::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 118%;
  height: clamp(8px, 2.25vw, 12px);
  border-radius: 999px;
  background: #2454d2;
  box-shadow: none;
  content: '';
}

.tic-tac-piece-x::before { transform: translate(-50%,-50%) rotate(45deg); }
.tic-tac-piece-x::after { transform: translate(-50%,-50%) rotate(-45deg); }

.tic-tac-win-line {
  --tic-line-left: 0%;
  --tic-line-top: 0%;
  --tic-line-width: 0%;
  --tic-line-angle: 0deg;
  position: absolute;
  z-index: 4;
  top: var(--tic-line-top);
  left: var(--tic-line-left);
  display: none;
  width: var(--tic-line-width);
  height: 6px;
  border-radius: 999px;
  background: #ef4f58;
  box-shadow: none;
  transform: translateY(-50%) rotate(var(--tic-line-angle));
  transform-origin: left center;
}

.tic-tac-win-line[data-symbol="X"] { background: #2454d2; box-shadow: 0 2px 7px rgba(36,84,210,.25); }
.tic-tac-win-line.show { display: block; animation: ticTacLineIn .38s ease both; }

.tic-tac-legend {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 18px;
  color: #596880;
  font-size: 11px;
}

.tic-tac-legend span { display: inline-flex; align-items: center; gap: 7px; }
.tic-tac-legend i { display: grid; width: 24px; height: 24px; place-items: center; font-size: 18px; font-style: normal; font-weight: 850; }
.tic-tac-mini-o { color: #ef4f58; }
.tic-tac-mini-x { color: #2454d2; }

.tic-tac-note {
  margin: 13px 0 0;
  color: #74819a;
  font-size: 12px;
  line-height: 1.45;
}

.tic-tac-restart { margin-top: 14px; max-width: 330px; }
.tic-tac-result-card > .foot { margin-top: auto; }

@keyframes ticTacPieceIn { from { opacity: 0; transform: scale(.35) rotate(-12deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes ticTacLineIn { from { opacity: 0; width: 0; } to { opacity: 1; width: var(--tic-line-width); } }
@keyframes ticTacPulse { from { transform: scale(.84); opacity: .6; } to { transform: scale(1.12); opacity: 1; } }

@media (max-width: 760px) {
  .tic-tac-premium-sheet .premium-offer-image { height: auto; }
  .tic-tac-result-card { min-height: calc(100svh - 10px); padding-top: 17px; }
  .tic-tac-board { width: min(79vw, 320px); }
  .tic-tac-kicker { margin-top: 4px; }
}

@media (max-height: 710px) {
  .tic-tac-result-card .logo { max-height: 42px; }
  .tic-tac-kicker { margin: 3px 0 7px; padding: 5px 10px; }
  .tic-tac-game h2 { font-size: 25px; }
  .tic-tac-sub { margin: 4px 0 7px; font-size: 11px; }
  .tic-tac-turn { margin-bottom: 8px; }
  .tic-tac-board { width: min(68vw, 270px); }
  .tic-tac-legend { margin-top: 9px; }
  .tic-tac-note { margin-top: 7px; }
}
