/* v1.9.5 — constrain AI turn light to the player seat and present claimed point cards in a true viewport-centred spotlight. */

/* The chat bubble layer intentionally allows overflow. Keep the AI orbit itself inside the seat. */
.opponent-seat.thinking{
  isolation:isolate;
  overflow:visible!important;
}
.opponent-seat.thinking:after{
  content:"";
  position:absolute;
  inset:0!important;
  z-index:1!important;
  padding:2px;
  border-radius:inherit!important;
  pointer-events:none;
  background:conic-gradient(from 0deg,transparent 0 18%,rgba(255,222,145,.92) 25%,rgba(226,164,73,.34) 34%,transparent 43% 100%)!important;
  animation:aiSeatOrbit 2.35s linear infinite!important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  filter:drop-shadow(0 0 5px rgba(240,187,86,.5));
}
.opponent-seat.thinking>*{position:relative;z-index:2}
@keyframes aiSeatOrbit{to{transform:rotate(360deg)}}

/* Claimed point card: full-screen, unclipped stage. */
.ai-action-replay.table-action-broadcast.point-action-broadcast{
  position:fixed!important;
  z-index:1500!important;
  inset:0!important;
  top:0!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  transform:none!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  animation:pointSpotlightOverlayIn .3s cubic-bezier(.2,.85,.2,1) forwards!important;
}
.ai-action-replay.table-action-broadcast.point-action-broadcast.leaving{
  animation:pointSpotlightOverlayOut .58s ease forwards!important;
}
.point-spotlight-scrim{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 45%,rgba(205,151,66,.18),transparent 32%),
    rgba(4,3,3,.74);
  backdrop-filter:blur(3px);
}
.point-spotlight-stage{
  position:relative;
  z-index:2;
  min-width:min(360px,86vw);
  max-width:min(520px,92vw);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  overflow:visible;
  transform-origin:center;
}
.point-spotlight-card-wrap{
  position:relative;
  display:grid;
  place-items:center;
  overflow:visible;
}
.point-spotlight-card-wrap:before{
  content:"";
  position:absolute;
  width:175%;
  aspect-ratio:1;
  border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(232,187,95,.16) 0 7deg,transparent 7deg 18deg);
  animation:pointRaysRotate 12s linear infinite;
  pointer-events:none;
}
.point-action-broadcast .broadcast-point-card{
  position:relative!important;
  z-index:2;
  width:clamp(138px,15vw,190px)!important;
  height:calc(clamp(138px,15vw,190px) * 1.34)!important;
  min-height:0!important;
  max-height:none!important;
  padding:11px!important;
  display:grid!important;
  grid-template-rows:62% 38%!important;
  gap:0!important;
  overflow:hidden!important;
  border:2px solid #80603d!important;
  border-radius:12px!important;
  background:linear-gradient(165deg,#eadcbc,#c4a77a 64%,#866445)!important;
  color:#291a11!important;
  box-shadow:0 30px 78px rgba(0,0,0,.9),0 0 48px rgba(231,188,99,.6),inset 0 1px rgba(255,255,255,.45)!important;
  animation:pointCardHeroIn .5s cubic-bezier(.16,.9,.25,1.18) both;
}
.point-action-broadcast .broadcast-point-card .point-cost-top{
  position:static!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:10px 4px 6px!important;
  overflow:hidden!important;
  border:0!important;
  border-bottom:1px solid rgba(76,52,35,.4)!important;
  border-radius:0!important;
  background:transparent!important;
}
.point-action-broadcast .broadcast-point-card .point-cost-row{display:flex!important;gap:7px!important}
.point-action-broadcast .broadcast-point-card .point-cost-cube{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  border-radius:5px!important;
  box-shadow:inset 0 3px 4px rgba(255,255,255,.5),0 3px 5px rgba(0,0,0,.45)!important;
}
.point-action-broadcast .broadcast-point-score{
  min-height:0!important;
  margin:0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  background:linear-gradient(180deg,rgba(110,78,49,.08),rgba(95,63,39,.2))!important;
}
.point-action-broadcast .broadcast-point-score .point-value{
  font:900 clamp(40px,4.8vw,58px)/1 Georgia,serif!important;
  color:#4b2b1b!important;
  text-shadow:0 1px #f4dfbc!important;
}
.point-action-broadcast .broadcast-point-score .point-unit{font-size:11px!important;color:#604a37!important}
.point-spotlight-copy{
  position:relative;
  z-index:3;
  min-width:min(330px,82vw);
  max-width:min(480px,88vw);
  padding:10px 18px;
  border:1px solid rgba(211,164,84,.65);
  border-radius:14px;
  background:rgba(14,12,10,.94);
  box-shadow:0 18px 44px rgba(0,0,0,.72),inset 0 1px rgba(255,255,255,.05);
  color:#ead7b4;
  text-align:center;
}
.point-spotlight-copy>small{display:block;margin-bottom:4px;color:#b99054;font-size:8px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.point-spotlight-copy h4{margin:0!important;color:#f5d99c!important;font:800 clamp(15px,2vw,20px)/1.2 Georgia,"Noto Serif SC",serif!important}
.point-spotlight-copy .ai-change{margin-top:7px}
.point-spotlight-copy .ai-change-row{justify-content:center;overflow:visible}
.point-spotlight-copy .broadcast-reward{justify-content:center;margin-top:8px}
.broadcast-source-flying{opacity:0!important}
@keyframes pointSpotlightOverlayIn{from{opacity:0}to{opacity:1}}
@keyframes pointSpotlightOverlayOut{to{opacity:0}}
@keyframes pointCardHeroIn{from{opacity:0;transform:translateY(20px) scale(.72) rotate(-2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes pointRaysRotate{to{transform:rotate(360deg)}}

@media (orientation:landscape) and (max-height:560px){
  .point-spotlight-stage{gap:7px;transform:translateY(-1vh)}
  .point-action-broadcast .broadcast-point-card{
    width:clamp(106px,23vh,132px)!important;
    height:calc(clamp(106px,23vh,132px) * 1.34)!important;
    padding:7px!important;
    border-radius:9px!important;
  }
  .point-action-broadcast .broadcast-point-card .point-cost-top{gap:5px!important;padding:7px 3px 4px!important}
  .point-action-broadcast .broadcast-point-card .point-cost-row{gap:5px!important}
  .point-action-broadcast .broadcast-point-card .point-cost-cube{width:17px!important;height:17px!important;min-width:17px!important;border-radius:3px!important}
  .point-action-broadcast .broadcast-point-score .point-value{font-size:34px!important}
  .point-action-broadcast .broadcast-point-score .point-unit{font-size:8px!important}
  .point-spotlight-copy{min-width:min(270px,75vw);padding:6px 12px;border-radius:10px}
  .point-spotlight-copy h4{font-size:12px!important}
  .point-spotlight-copy .ai-change{display:none}
  .point-spotlight-copy .broadcast-reward{margin-top:4px}
}
@media (prefers-reduced-motion:reduce){
  .opponent-seat.thinking:after,.point-spotlight-card-wrap:before,.point-action-broadcast .broadcast-point-card{animation:none!important}
}
