:root {
  --spatial-gold: 255, 211, 112;
  --spatial-violet: 199, 86, 255;
}

.stq-spatial-flight {
  position: fixed !important;
  z-index: 10050 !important;
  margin: 0 !important;
  pointer-events: none !important;
  transform-origin: 0 0 !important;
  contain: layout paint style;
  will-change: transform, opacity;
  overflow: hidden;
  filter: drop-shadow(0 14px 24px rgba(0, 0, 0, .55));
}

.stq-spatial-flight.spatial-rival-flight {
  box-shadow: 0 0 0 1px rgba(var(--spatial-gold), .72), 0 0 34px rgba(var(--spatial-violet), .24);
}

.stq-spatial-flight.spatial-card-flight,
.stq-spatial-flight.spatial-sequence-flight {
  filter: drop-shadow(0 18px 20px rgba(0, 0, 0, .66)) drop-shadow(0 0 8px rgba(var(--spatial-gold), .28));
}

.stq-spatial-flight.spatial-queen-flight {
  filter: drop-shadow(0 0 18px rgba(var(--spatial-gold), .72)) drop-shadow(0 12px 20px rgba(0, 0, 0, .72));
}
.stq-spatial-flight.spatial-guard-flight {
  z-index: 10058 !important;
  filter: drop-shadow(0 0 12px rgba(244, 218, 138, .78)) drop-shadow(0 10px 18px rgba(0, 0, 0, .7));
}
.stq-spatial-flight.spatial-destroyed-queen {
  z-index: 10056 !important;
  transform-origin: 50% 72% !important;
  filter: drop-shadow(0 0 12px rgba(214, 146, 55, .5));
}
.stq-spatial-flight.spatial-final-queen-flight {
  filter: drop-shadow(0 0 25px rgba(var(--spatial-gold), .9)) drop-shadow(0 14px 24px rgba(var(--spatial-violet), .44));
}

.spatial-destination { opacity: .34 !important; }
.spatial-arrived { animation: spatial-settle 260ms cubic-bezier(.2,.78,.2,1); }

@keyframes spatial-settle {
  0% { transform: scale(.94); filter: brightness(1.35); }
  58% { transform: scale(1.025); }
  100% { transform: scale(1); filter: brightness(1); }
}

.card { --material-x: 50%; --material-y: 35%; }
.card > .stq-material-light {
  position: absolute;
  inset: 1px;
  z-index: 8;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(circle at var(--material-x) var(--material-y), rgba(255,255,255,.3) 0 4%, rgba(255,223,145,.13) 16%, transparent 42%),
    linear-gradient(112deg, transparent 30%, rgba(255,236,181,.09) 45%, transparent 59%);
  box-shadow: inset 0 0 0 1px rgba(255,220,132,.11);
  mix-blend-mode: screen;
  transition: opacity 110ms ease-out;
}
.card.material-lit > .stq-material-light,
.card:focus-visible > .stq-material-light { opacity: .55; }

.stq-spatial-directional-light {
  position: fixed;
  z-index: 10040;
  height: 3px;
  pointer-events: none;
  transform-origin: 0 50%;
  background: linear-gradient(90deg, transparent, rgba(var(--spatial-violet), .46), rgba(var(--spatial-gold), .92));
  box-shadow: 0 0 14px rgba(var(--spatial-gold), .55);
}
.stq-spatial-directional-light.spatial-king-threat-light {
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(177, 48, 72, .72), rgba(255, 205, 108, .88));
  box-shadow: 0 0 16px rgba(177, 48, 72, .48);
}
.stq-spatial-directional-light.spatial-destroy-light {
  height: 5px;
  background: linear-gradient(90deg, transparent, rgba(255, 205, 108, .9) 62%, rgba(100, 19, 36, .95));
  box-shadow: 0 0 20px rgba(184, 62, 48, .6);
}
.stq-spatial-directional-light.spatial-sever-light {
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(61, 222, 154, .42), rgba(171, 255, 203, .96));
  box-shadow: 0 0 13px rgba(54, 211, 135, .58);
}
.stq-spatial-directional-light.spatial-final-light,
.stq-spatial-directional-light.spatial-conquest-light {
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(var(--spatial-violet), .56), rgba(255, 232, 155, .98));
  box-shadow: 0 0 22px rgba(var(--spatial-gold), .68);
}

.spatial-king-threatening { animation: spatial-king-threat 520ms ease-out both; }
.spatial-king-targeted { box-shadow: inset 0 0 0 1px rgba(190, 58, 76, .78), 0 0 15px rgba(190, 58, 76, .24) !important; }
.spatial-guard-intercepting { filter: brightness(1.2) drop-shadow(0 0 9px rgba(255, 220, 128, .55)); }
.spatial-guard-cancelled { animation: spatial-guard-cancel 330ms cubic-bezier(.2,.78,.2,1) both; }
.spatial-guard-collision { animation: spatial-guard-collision 330ms cubic-bezier(.2,.78,.2,1) both; }
@keyframes spatial-king-threat {
  0% { transform: translateY(0); filter: brightness(1); }
  55% { transform: translateY(-5px); filter: brightness(1.3) drop-shadow(0 0 10px rgba(190,58,76,.55)); }
  100% { transform: translateY(-2px); filter: brightness(1.12); }
}
@keyframes spatial-guard-cancel {
  0% { transform: translateX(0) rotate(0); filter: brightness(1.3); }
  38% { transform: translateX(7px) rotate(1.5deg); filter: brightness(.72) saturate(.55); }
  100% { transform: translateX(0) rotate(0); filter: brightness(.88) saturate(.7); }
}
@keyframes spatial-guard-collision {
  0% { transform: translateX(0) scale(1); }
  42% { transform: translateX(-5px) scale(1.035); filter: brightness(1.5); }
  100% { transform: translateX(0) scale(1); filter: brightness(1); }
}

.spatial-destroy-authority { animation: spatial-destroy-authority 700ms cubic-bezier(.16,.75,.2,1) both; }
.spatial-destroy-targeted { box-shadow: inset 0 0 16px rgba(141, 34, 44, .24) !important; }
.spatial-destroy-impact { animation: spatial-destroy-local-impact 470ms ease-out both; }
@keyframes spatial-destroy-authority {
  0% { transform: translateY(0) scale(1); filter: brightness(1); }
  35% { transform: translateY(-7px) scale(1.04); filter: brightness(1.38) contrast(1.08); }
  100% { transform: translateY(0) scale(1); filter: brightness(1); }
}
@keyframes spatial-destroy-local-impact {
  0% { transform: translateX(0); filter: brightness(1); }
  25% { transform: translateX(-3px); filter: brightness(1.34); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); filter: brightness(1); }
}

.spatial-sever-source { filter: brightness(1.2) drop-shadow(0 0 8px rgba(70, 223, 145, .4)); }
.spatial-sever-target { box-shadow: inset 0 0 0 1px rgba(86, 231, 159, .55) !important; }
.spatial-sever-cut { animation: spatial-sever-resource 430ms cubic-bezier(.18,.72,.2,1) both; }
.stq-spatial-sever-slash {
  position: fixed;
  z-index: 10060;
  width: 88px;
  height: 3px;
  pointer-events: none;
  transform-origin: 50% 50%;
  background: linear-gradient(90deg, transparent, rgba(198,255,220,.98), rgba(44,210,132,.85), transparent);
  box-shadow: 0 0 12px rgba(54, 211, 135, .7);
}
@keyframes spatial-sever-resource {
  0% { transform: scale(1); filter: brightness(1); }
  38% { transform: scale(.9,1.08); filter: brightness(1.65); }
  100% { transform: scale(1); filter: brightness(1); }
}

.spatial-throne-anticipating {
  animation: spatial-throne-anticipate 570ms cubic-bezier(.2,.7,.2,1) both;
}
.spatial-throne-landing {
  animation: spatial-throne-land 410ms cubic-bezier(.16,.82,.24,1) both;
}
.spatial-court-impact {
  animation: spatial-court-impact 560ms ease-out both;
}
.spatial-final-throne { filter: brightness(1.28) drop-shadow(0 0 18px rgba(var(--spatial-gold), .64)); }
.spatial-final-court-response { animation: spatial-final-court-response 900ms cubic-bezier(.18,.75,.2,1) both; }
.spatial-final-victory { animation: spatial-final-board-response 900ms ease-out both; }
.stq-spatial-final-crown {
  position: fixed;
  z-index: 10062;
  pointer-events: none;
  color: rgb(var(--spatial-gold));
  font: 700 42px Georgia, serif;
  text-shadow: 0 0 18px rgba(var(--spatial-gold), .72), 0 4px 10px rgba(0,0,0,.7);
}
@keyframes spatial-final-court-response {
  0% { box-shadow: inset 0 0 0 rgba(var(--spatial-gold), 0); }
  35% { box-shadow: inset 0 0 54px rgba(var(--spatial-gold), .28), 0 0 26px rgba(var(--spatial-violet), .26); }
  100% { box-shadow: inset 0 0 0 rgba(var(--spatial-gold), 0); }
}
@keyframes spatial-final-board-response {
  0% { filter: brightness(1); }
  32% { filter: brightness(1.1); }
  100% { filter: brightness(1); }
}

.campaign-result-card.spatial-court-conquest { overflow: hidden; }
.campaign-result-card.spatial-court-conquest::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 28%, rgba(255,220,126,.12) 48%, transparent 68%);
  transform: translateX(-110%);
  animation: spatial-conquest-sweep 980ms cubic-bezier(.2,.72,.18,1) both;
}
.spatial-boss-yielding { animation: spatial-boss-yield 720ms cubic-bezier(.2,.72,.18,1) both; }
.spatial-court-claim-title { animation: spatial-claim-title 560ms cubic-bezier(.18,.78,.2,1) both; }
.spatial-court-recognized { animation: spatial-court-recognized 620ms cubic-bezier(.18,.78,.2,1) both; }
.campaign-result-card.spatial-court-claimed-impact { box-shadow: inset 0 0 44px rgba(var(--spatial-gold), .1); }
@keyframes spatial-conquest-sweep { to { transform: translateX(110%); } }
@keyframes spatial-boss-yield {
  0% { transform: scale(1); filter: brightness(1); }
  45% { transform: scale(.98); filter: brightness(.7) saturate(.72); }
  100% { transform: scale(1); filter: brightness(.9) saturate(.84); }
}
@keyframes spatial-claim-title {
  0% { letter-spacing: .02em; text-shadow: none; }
  48% { letter-spacing: .075em; text-shadow: 0 0 18px rgba(var(--spatial-gold), .55); }
  100% { letter-spacing: .04em; text-shadow: none; }
}
@keyframes spatial-court-recognized {
  0% { transform: translateY(5px); filter: brightness(.85); }
  45% { transform: translateY(0); filter: brightness(1.3); }
  100% { transform: translateY(0); filter: brightness(1); }
}

@keyframes spatial-throne-anticipate {
  0% { filter: brightness(1); transform: scale(1); }
  70% { filter: brightness(1.32) drop-shadow(0 0 12px rgba(var(--spatial-gold), .42)); transform: scale(1.025); }
  100% { filter: brightness(1.48) drop-shadow(0 0 19px rgba(var(--spatial-gold), .62)); transform: scale(1.035); }
}
@keyframes spatial-throne-land {
  0% { transform: scale(.92); filter: brightness(1.65); }
  46% { transform: scale(1.065); filter: brightness(1.38); }
  100% { transform: scale(1); filter: brightness(1); }
}
@keyframes spatial-court-impact {
  0% { box-shadow: inset 0 0 0 rgba(var(--spatial-gold), 0); }
  24% { box-shadow: inset 0 0 38px rgba(var(--spatial-gold), .22), 0 0 22px rgba(var(--spatial-violet), .2); }
  100% { box-shadow: inset 0 0 0 rgba(var(--spatial-gold), 0); }
}

#stq-spatial-particle-pool {
  position: fixed;
  inset: 0;
  z-index: 10060;
  pointer-events: none;
  overflow: hidden;
}
#stq-spatial-particle-pool > i {
  position: absolute;
  width: 4px;
  height: 10px;
  border-radius: 50%;
  opacity: 0;
  background: linear-gradient(#fff4ba, #c48a24);
  box-shadow: 0 0 7px rgba(var(--spatial-gold), .65);
}

@media (prefers-reduced-motion: reduce) {
  .stq-spatial-flight, .stq-spatial-directional-light, .stq-spatial-transient, #stq-spatial-particle-pool { display: none !important; }
  .spatial-arrived, .spatial-throne-anticipating, .spatial-throne-landing, .spatial-court-impact, .spatial-king-threatening, .spatial-guard-cancelled, .spatial-guard-collision, .spatial-destroy-authority, .spatial-destroy-impact, .spatial-sever-cut, .spatial-final-court-response, .spatial-final-victory, .spatial-boss-yielding, .spatial-court-claim-title, .spatial-court-recognized { animation: none !important; }
  .card > .stq-material-light { display: none !important; }
}
body.reduce-motion .stq-spatial-flight,
body.reduce-motion .stq-spatial-directional-light,
body.reduce-motion .stq-spatial-transient,
body.reduce-motion #stq-spatial-particle-pool,
body.reduce-motion .card > .stq-material-light { display: none !important; }
body.reduced-glow .stq-spatial-directional-light,
body.reduced-glow #stq-spatial-particle-pool,
body.reduced-glow .stq-spatial-sever-slash,
body.reduced-glow .stq-spatial-final-crown,
body.high-contrast .stq-spatial-directional-light,
body.high-contrast #stq-spatial-particle-pool,
body.high-contrast .stq-spatial-sever-slash,
body.high-contrast .stq-spatial-final-crown,
body.reduced-flashing .stq-spatial-directional-light,
body.reduced-flashing #stq-spatial-particle-pool,
body.reduced-flashing .stq-spatial-sever-slash,
body.reduced-flashing .stq-spatial-final-crown { display: none !important; }
