/*
  Real arena skins: every upgrade and boss encounter swaps the whole physical
  table.  No particle layer is needed to communicate progression.
*/
.camp-stage-fx,
.arena-wrap .arena-sky {
  display: none !important;
}

.arena-wrap,
.arena-wrap.camp-tier-1,
.arena-wrap.camp-tier-2,
.arena-wrap.camp-tier-3,
.arena-wrap.camp-tier-4 {
  isolation: isolate;
  background-color: #171015;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.arena-wrap:not(.boss-encounter)[data-camp-arena="tier-1"] {
  background-image: url("assets/tavern-table-arena.png") !important;
  box-shadow: 0 12px 0 #191016, 0 22px 40px rgba(0, 0, 0, .58), inset 0 0 0 2px rgba(111, 239, 214, .34) !important;
}

.arena-wrap:not(.boss-encounter)[data-camp-arena="tier-2"] {
  background-image: url("assets/camp-cozy-lodge-arena.png") !important;
  box-shadow: 0 12px 0 #17100e, 0 22px 42px rgba(0, 0, 0, .62), inset 0 0 0 2px rgba(126, 224, 142, .46) !important;
}

.arena-wrap:not(.boss-encounter)[data-camp-arena="tier-3"] {
  background-image: url("assets/camp-trail-lodge-arena.png") !important;
  box-shadow: 0 12px 0 #120d18, 0 24px 47px rgba(0, 0, 0, .66), inset 0 0 0 2px rgba(152, 142, 255, .56) !important;
}

.arena-wrap:not(.boss-encounter)[data-camp-arena="tier-4"] {
  background-image: url("assets/camp-crown-citadel-arena.png") !important;
  box-shadow: 0 12px 0 #1b0e0d, 0 25px 50px rgba(0, 0, 0, .7), inset 0 0 0 3px rgba(255, 212, 116, .68) !important;
}

.arena-wrap::before,
.arena-wrap.camp-tier-3::before,
.arena-wrap.boss-encounter::before {
  z-index: 1;
  background: linear-gradient(180deg, rgba(5, 3, 7, .11), transparent 30%, transparent 64%, rgba(4, 2, 5, .2)) !important;
  mix-blend-mode: normal !important;
  animation: none !important;
}

.arena-wrap .arena::before,
.arena-wrap .duel-ribbon::before {
  display: none !important;
}

.arena-wrap .enemy-board,
.arena-wrap .player-board {
  border: 0;
  background: transparent;
}

.arena-wrap .battle-banner {
  z-index: 8;
  text-shadow: none;
}

.arena-wrap.camp-tier-2 .battle-banner {
  border-color: #c9f4af;
  background: linear-gradient(#e5ffd6, #78c892);
  color: #17422f;
  box-shadow: 0 4px 0 #234a35, 0 0 15px rgba(117, 222, 141, .3);
}

.arena-wrap.camp-tier-3 .battle-banner {
  top: 9px;
  border-color: #e1d4ff;
  background: linear-gradient(#5d4d99, #282045);
  color: #fff3d6;
  box-shadow: 0 4px 0 #1d1638, 0 0 15px rgba(148, 120, 255, .36);
}

.arena-wrap.camp-tier-4 .battle-banner {
  border-color: #ffe6a1;
  background: linear-gradient(#a76a35, #432123);
  color: #fff3d5;
  box-shadow: 0 4px 0 #2d1214, 0 0 16px rgba(255, 185, 82, .38);
}

/* A boss gets a dedicated tavern, not a recoloured camp board. */
.arena-wrap.boss-encounter {
  height: clamp(580px, 43vw, 680px) !important;
  border: 3px solid color-mix(in srgb, var(--boss-c) 72%, #25141e) !important;
  border-radius: 28px;
  box-shadow: 0 14px 0 #110a10, 0 27px 58px rgba(0, 0, 0, .76), 0 0 30px color-mix(in srgb, var(--boss-a) 28%, transparent), inset 0 0 0 2px rgba(255, 241, 196, .16) !important;
}

.arena-wrap.boss-encounter[data-boss-arena="thornmaw"] {
  --boss-a: #7fc66e !important;
  --boss-b: #173c2d !important;
  --boss-c: #d5ee9b !important;
  background-image: url("assets/boss-thornmaw-arena.png") !important;
}

.arena-wrap.boss-encounter[data-boss-arena="veyra"] {
  --boss-a: #df6470 !important;
  --boss-b: #481b31 !important;
  --boss-c: #ffd29a !important;
  background-image: url("assets/boss-veyra-arena.png") !important;
}

.arena-wrap.boss-encounter[data-boss-arena="lunara"] {
  --boss-a: #968cf4 !important;
  --boss-b: #29204f !important;
  --boss-c: #f2dcff !important;
  background-image: url("assets/boss-lunara-arena.png") !important;
}

.arena-wrap.boss-encounter[data-boss-arena="pyraxis"] {
  --boss-a: #f0873f !important;
  --boss-b: #4c1a1e !important;
  --boss-c: #ffe39a !important;
  background-image: url("assets/boss-pyraxis-arena.png") !important;
}

.arena-wrap.boss-encounter[data-boss-arena="archon-null"] {
  --boss-a: #a88cf0 !important;
  --boss-b: #171a4a !important;
  --boss-c: #e8f4ff !important;
  background-image: url("assets/boss-archon-null-arena.png") !important;
}

.arena-wrap.boss-encounter .arena {
  padding: 63px 10% 34px;
  grid-template-rows: minmax(285px, 1.45fr) 26px minmax(155px, .78fr);
}

.arena-wrap.boss-encounter .battle-banner {
  top: 11px;
  border-color: var(--boss-c);
  background: linear-gradient(180deg, color-mix(in srgb, var(--boss-b) 72%, #26131d), #1a1019);
  box-shadow: 0 4px 0 #10080f, 0 0 18px color-mix(in srgb, var(--boss-a) 38%, transparent);
  color: #fff1ca;
}

.arena-wrap.boss-encounter .enemy-side-label {
  top: 33px;
  color: #fff0cc;
}

.arena-wrap.boss-encounter .duel-ribbon span {
  padding: 3px 13px;
  border-color: color-mix(in srgb, var(--boss-c) 62%, transparent);
  background: color-mix(in srgb, var(--boss-b) 74%, #160c16);
  color: #fff2d1;
}

.enemy-board.boss-board {
  grid-template-columns: minmax(0, 1fr) !important;
  place-items: center;
  align-content: center;
  overflow: visible;
}

.enemy-board.boss-board .boss-field {
  display: grid;
  width: min(560px, 100%);
  height: 290px;
  place-items: center;
  overflow: visible;
  background: transparent;
}

.boss-dais {
  position: absolute;
  z-index: 0;
  width: min(600px, 112%);
  height: 88%;
  border: 2px solid color-mix(in srgb, var(--boss-c) 48%, transparent);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, color-mix(in srgb, var(--boss-b) 46%, transparent), transparent 68%);
  box-shadow: 0 14px 36px rgba(0, 0, 0, .62), inset 0 0 0 1px rgba(255, 246, 210, .12);
}

/* The boss atlas contains tall illustrations.  This frame retains that tall ratio. */
.enemy-board .boss-card,
.enemy-board .boss-card.boss-card--5 {
  --boss-a: #7fc66e;
  --boss-b: #173c2d;
  --boss-c: #d5ee9b;
  z-index: 2;
  display: block;
  width: min(530px, 100%) !important;
  min-width: 0;
  height: 278px !important;
  margin: 0;
  transform: none;
  border: 3px solid var(--boss-c) !important;
  border-radius: 22px;
  background: linear-gradient(125deg, color-mix(in srgb, var(--boss-b) 82%, #0d0b15), #17101a 76%) !important;
  box-shadow: 0 7px 0 #110914, 0 20px 33px rgba(0, 0, 0, .64), 0 0 22px color-mix(in srgb, var(--boss-a) 38%, transparent) !important;
  overflow: visible;
  isolation: isolate;
  animation: none !important;
}

.enemy-board .boss-card::before {
  z-index: -1;
  inset: 5px;
  border: 1px solid color-mix(in srgb, var(--boss-c) 48%, transparent);
  border-radius: 15px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--boss-b) 28%, transparent), transparent 64%), linear-gradient(145deg, rgba(255, 255, 255, .08), transparent 42%) !important;
  box-shadow: inset 0 0 22px rgba(0, 0, 0, .28);
}

.enemy-board .boss-card::after {
  display: none;
}

.enemy-board .boss-card--1 { --boss-a: #7fc66e !important; --boss-b: #173c2d !important; --boss-c: #d5ee9b !important; }
.enemy-board .boss-card--2 { --boss-a: #df6470 !important; --boss-b: #481b31 !important; --boss-c: #ffd29a !important; }
.enemy-board .boss-card--3 { --boss-a: #968cf4 !important; --boss-b: #29204f !important; --boss-c: #f2dcff !important; }
.enemy-board .boss-card--4 { --boss-a: #f0873f !important; --boss-b: #4c1a1e !important; --boss-c: #ffe39a !important; }
.enemy-board .boss-card--5 { --boss-a: #a88cf0 !important; --boss-b: #171a4a !important; --boss-c: #e8f4ff !important; }

.enemy-board .boss-card .card-level {
  z-index: 8;
  top: -13px;
  left: -12px;
  width: 37px;
  height: 37px;
  border-color: var(--boss-c);
  background: radial-gradient(circle at 35% 28%, #fff7bf, var(--boss-c) 46%, var(--boss-b) 75%);
  box-shadow: 0 3px 0 #25111f, 0 0 13px color-mix(in srgb, var(--boss-a) 64%, transparent);
  color: #3d1d2b;
  font-size: 15px;
}

.boss-art-frame {
  position: absolute;
  z-index: 3;
  top: 11px;
  bottom: 11px;
  left: 12px;
  width: 108px;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--boss-c) 74%, #fff3cc);
  border-radius: 13px;
  background: #0e0a12;
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .38), 0 4px 10px rgba(0, 0, 0, .45), 0 0 16px color-mix(in srgb, var(--boss-a) 32%, transparent);
}

.boss-art-frame .boss-portrait {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
  background-image: url("assets/bosses-arcane-atlas.png") !important;
  background-repeat: no-repeat !important;
  background-size: 500% auto !important;
  background-position: 0 50%;
  filter: saturate(1.15) contrast(1.08) !important;
  animation: none !important;
}

.boss-art-frame .boss-portrait::after {
  display: none;
}

.boss-card--1 .boss-portrait { background-position: 0 50% !important; }
.boss-card--2 .boss-portrait { background-position: 25% 50% !important; }
.boss-card--3 .boss-portrait { background-position: 50% 50% !important; }
.boss-card--4 .boss-portrait { background-position: 75% 50% !important; }
.boss-card--5 .boss-portrait { background-position: 100% 50% !important; }

.boss-art-crest {
  position: absolute;
  z-index: 2;
  right: 6px;
  bottom: 6px;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid var(--boss-c);
  border-radius: 50%;
  background: color-mix(in srgb, var(--boss-b) 76%, #100912);
  box-shadow: 0 2px 0 #120713, 0 0 9px color-mix(in srgb, var(--boss-a) 56%, transparent);
  color: #fff4ca;
  font-size: 13px;
}

.boss-copy {
  position: absolute;
  z-index: 4;
  top: 24px;
  right: 20px;
  bottom: 50px;
  left: 138px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}

.boss-kicker {
  color: color-mix(in srgb, var(--boss-c) 82%, #fff2c1);
  font-size: 8px;
  font-weight: 1000;
  letter-spacing: 1.7px;
  text-shadow: 0 1px #130914;
}

.enemy-board .boss-card .boss-copy .critter-name {
  position: static;
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #fff0ca;
  font-family: "Cinzel", Georgia, serif;
  font-size: clamp(16px, 1.55vw, 22px);
  font-weight: 800;
  line-height: 1.12;
  text-align: left;
  text-overflow: clip;
  text-shadow: 0 2px #1d0e1d;
  white-space: normal;
}

.boss-title {
  display: block;
  margin-top: 3px;
  color: color-mix(in srgb, var(--boss-c) 68%, #e6caaf);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: uppercase;
}

.boss-power {
  display: flex;
  width: 100%;
  gap: 8px;
  margin-top: auto;
  padding: 7px 9px;
  border: 1px solid color-mix(in srgb, var(--boss-c) 36%, transparent);
  border-radius: 9px;
  background: rgba(7, 5, 11, .38);
  box-shadow: inset 0 1px 0 rgba(255, 246, 211, .07);
}

.boss-power > i {
  display: grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--boss-c) 50%, transparent);
  border-radius: 7px;
  background: color-mix(in srgb, var(--boss-b) 72%, #130913);
  color: #fff0c4;
  font-size: 14px;
  font-style: normal;
}

.boss-power > span { min-width: 0; }
.boss-power b,
.boss-power small { display: block; }
.boss-power b { color: #fff1ca; font-size: 10px; line-height: 1.05; }
.boss-power small { margin-top: 2px; overflow: hidden; color: #d5c1ba; font-size: 8px; font-weight: 800; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }

.boss-card .boss-phase {
  z-index: 7;
  top: 11px;
  right: 15px;
  padding: 4px 7px;
  border-color: color-mix(in srgb, var(--boss-c) 72%, transparent);
  border-radius: 7px;
  background: rgba(16, 8, 16, .72);
  box-shadow: 0 2px 0 #160a14;
  color: #fff1c8;
  font-size: 7px;
}

.boss-card .boss-health {
  z-index: 7;
  right: 51px;
  bottom: 17px;
  left: 139px;
  height: 11px;
  border-color: color-mix(in srgb, var(--boss-c) 60%, #f7dfab);
  background: #190c17;
  box-shadow: 0 1px 0 #090509, inset 0 1px 3px rgba(0, 0, 0, .55);
}

.boss-card .boss-health > i { background: linear-gradient(90deg, var(--boss-a), #ffd487, #fff3bd); box-shadow: 0 0 9px color-mix(in srgb, var(--boss-a) 70%, transparent); }

.enemy-board .boss-card .stat {
  z-index: 8;
  bottom: 2px;
  min-width: 42px;
  height: 42px;
  border-color: var(--boss-c);
  box-shadow: 0 3px 0 #130a13, 0 0 10px color-mix(in srgb, var(--boss-a) 32%, transparent);
  font-size: 21px;
}

.enemy-board .boss-card .attack { left: -16px; background: linear-gradient(#f6a57a, #a5374c); }
.enemy-board .boss-card .heart { right: -16px; background: linear-gradient(#e9848b, #6e2039); }

/* The held relic is an artifact, not a browser-cloned button. */
.relic-drag-ghost {
  position: fixed;
  z-index: 120;
  width: 96px;
  height: 108px;
  display: grid;
  place-items: center;
  pointer-events: none;
  isolation: isolate;
  transform: translate(-50%, -66%) rotate(8deg);
  filter: drop-shadow(0 14px 12px rgba(5, 2, 10, .72));
  will-change: left, top, transform;
}

.relic-drag-ghost::before {
  content: "";
  position: absolute;
  inset: 12px 13px 24px;
  border: 2px solid color-mix(in srgb, var(--relic-glow) 70%, #fff1a7);
  border-radius: 48% 52% 45% 55%;
  background: radial-gradient(circle at 34% 26%, #fff8c7 0 7%, color-mix(in srgb, var(--relic-glow) 58%, #d88242) 28%, #241426 72%);
  box-shadow: inset 0 0 0 3px rgba(255, 244, 187, .19), 0 0 22px color-mix(in srgb, var(--relic-glow) 72%, transparent);
  transform: rotate(-8deg);
}

.relic-drag-ghost__halo {
  position: absolute;
  inset: 2px 4px 18px;
  border: 1px solid color-mix(in srgb, var(--relic-glow) 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 19px color-mix(in srgb, var(--relic-glow) 54%, transparent);
  animation: relic-drag-halo 1.1s ease-in-out infinite alternate;
}

.relic-drag-ghost__art {
  position: relative;
  z-index: 2;
  display: grid;
  width: 54px;
  height: 59px;
  place-items: center;
  color: #fff7cf;
  font-size: 36px;
  line-height: 1;
  text-shadow: 0 3px #3e1a2f, 0 0 13px var(--relic-glow);
  transform: rotate(-8deg);
}

.relic-drag-ghost__name {
  position: absolute;
  z-index: 3;
  right: -20px;
  bottom: 0;
  left: -20px;
  overflow: hidden;
  padding: 3px 5px;
  border: 1px solid color-mix(in srgb, var(--relic-glow) 64%, #fff0b0);
  border-radius: 6px;
  background: rgba(25, 11, 29, .9);
  box-shadow: 0 2px 0 #120914;
  color: #fff1cf;
  font-size: 7px;
  font-weight: 1000;
  letter-spacing: .45px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.relic-drag-ghost__spark {
  position: absolute;
  z-index: 3;
  color: #fff2ae;
  font-size: 14px;
  text-shadow: 0 0 9px var(--relic-glow);
  animation: relic-drag-spark .85s ease-in-out infinite alternate;
}

.relic-drag-ghost__spark--a { top: 9px; right: 9px; }
.relic-drag-ghost__spark--b { bottom: 24px; left: 7px; animation-delay: -.42s; }

body.relic-drag-active,
body.relic-drag-active * {
  user-select: none !important;
  -webkit-user-select: none !important;
}

body.relic-drag-active [data-relic-target="true"] {
  outline: 1px solid rgba(255, 225, 133, .42);
  outline-offset: 3px;
  transition: outline-color .12s, outline-width .12s, filter .12s, transform .12s;
}

body.relic-drag-active [data-relic-target="true"].relic-drop-target {
  outline: 3px solid #fff1a6;
  outline-offset: 5px;
  filter: brightness(1.15) drop-shadow(0 0 14px rgba(255, 211, 93, .72));
  transform: translateY(-5px) scale(1.035) !important;
  animation: none !important;
}

.relic-equip-pop {
  animation: relic-equip-pop .62s cubic-bezier(.18, .85, .32, 1.15) both !important;
}

@keyframes relic-drag-halo { to { transform: scale(1.12) rotate(12deg); opacity: .48; } }
@keyframes relic-drag-spark { to { transform: translateY(-5px) scale(1.28); opacity: .45; } }
@keyframes relic-equip-pop {
  0% { filter: brightness(1) drop-shadow(0 0 0 transparent); }
  38% { transform: translateY(-8px) scale(1.075); filter: brightness(1.28) drop-shadow(0 0 18px rgba(255, 221, 111, .96)); }
  100% { filter: brightness(1) drop-shadow(0 0 0 transparent); }
}

@media (max-width: 1050px) {
  .arena-wrap.boss-encounter { height: 580px !important; }
  .enemy-board.boss-board .boss-field { width: min(500px, 100%); }
  .enemy-board .boss-card { width: min(490px, 100%) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .relic-drag-ghost__halo,
  .relic-drag-ghost__spark,
  .relic-equip-pop {
    animation: none !important;
  }
}
