/* v4.6.3 Elite Bosses, Boss Rush & Exclusive Rewards. */
.boss-bestiary-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}
.boss-card {
  --boss-accent:#00ff9d;
  --boss-secondary:#65eaff;
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--boss-accent) 44%,transparent);
  border-radius:16px;
  padding:12px;
  background:
    radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--boss-accent) 18%,transparent),transparent 46%),
    linear-gradient(160deg,rgba(12,18,24,.96),rgba(2,5,8,.98));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 34px rgba(0,0,0,.32);
}
.boss-card::after {
  content:"";
  position:absolute;
  inset:auto -20% -38% 34%;
  height:120px;
  background:radial-gradient(circle,color-mix(in srgb,var(--boss-accent) 18%,transparent),transparent 66%);
  pointer-events:none;
}
.boss-card.unknown { opacity:.68; filter:saturate(.52); }
.boss-card-head { display:flex;gap:10px;align-items:center;margin:8px 0; }
.boss-card strong { display:block;color:#fff;text-transform:uppercase;letter-spacing:.08em; }
.boss-card small { display:block;color:var(--boss-accent);margin-top:2px; }
.boss-card p,.boss-card ol { font-size:.62rem;line-height:1.48;color:#cfd7df; }
.boss-weak-point { border-left:2px solid var(--boss-accent);padding-left:9px; }
.boss-phase-list { padding-left:18px;margin:9px 0;display:grid;gap:6px; }
.boss-phase-list li strong { font-size:.58rem; }
.boss-phase-list li small { color:#8f9ba5;font-size:.55rem;line-height:1.35; }
.boss-card-foot { display:flex;flex-wrap:wrap;gap:6px;position:relative;z-index:1; }
.boss-card-foot span { border:1px solid rgba(255,255,255,.10);border-radius:999px;padding:3px 7px;font-size:.52rem;text-transform:uppercase;letter-spacing:.06em; }
.boss-archive-portrait {
  position:relative;
  height:98px;
  border-radius:12px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--boss-accent) 13%,transparent),transparent 70%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 18px),
    #05080b;
  border:1px solid rgba(255,255,255,.08);
}
.boss-archive-aura { position:absolute;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--boss-accent) 34%,transparent),transparent 66%);animation:bossArchivePulse 2.4s ease-in-out infinite alternate; }
.boss-archive-icon { position:relative;z-index:1;width:50px;height:50px;display:grid;place-items:center;border-radius:16px;color:#fff;border:1px solid var(--boss-accent);background:color-mix(in srgb,var(--boss-accent) 18%,#020508);box-shadow:0 0 26px color-mix(in srgb,var(--boss-accent) 48%,transparent);font-size:1.25rem;font-weight:800; }
.boss-card-serpent .boss-archive-icon { border-radius:50% 12px 50% 12px;transform:rotate(12deg); }
.boss-card-phantom .boss-archive-icon { clip-path:polygon(50% 0,90% 30%,76% 100%,50% 78%,24% 100%,10% 30%);border-radius:0; }
.boss-card-golem .boss-archive-icon { border-radius:4px;box-shadow:-24px 16px 0 -14px color-mix(in srgb,var(--boss-accent) 60%,transparent),24px 16px 0 -14px color-mix(in srgb,var(--boss-accent) 60%,transparent),0 0 26px color-mix(in srgb,var(--boss-accent) 48%,transparent); }
.boss-card-warden .boss-archive-icon { border-radius:50%;outline:4px dashed color-mix(in srgb,var(--boss-accent) 55%,transparent);outline-offset:6px; }

.boss-encounter-hud {
  --boss-accent:#ff5a5a;
  --boss-secondary:#ffb56b;
  position:absolute;
  top:8px;
  left:50%;
  z-index:13;
  width:min(92%,470px);
  transform:translate(-50%,-14px);
  opacity:0;
  pointer-events:none;
  display:grid;
  grid-template-columns:1fr auto;
  gap:5px 12px;
  padding:9px 12px 10px;
  border:1px solid color-mix(in srgb,var(--boss-accent) 52%,transparent);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(2,5,8,.92),color-mix(in srgb,var(--boss-accent) 9%,rgba(2,5,8,.94)));
  box-shadow:0 12px 34px rgba(0,0,0,.48),0 0 22px color-mix(in srgb,var(--boss-accent) 18%,transparent);
  backdrop-filter:blur(10px);
  transition:opacity .18s ease,transform .18s ease;
}
.boss-encounter-hud.show { opacity:1;transform:translate(-50%,0); }
.boss-hud-copy { min-width:0; }
.boss-hud-kicker { display:block;color:var(--boss-accent);font-size:.48rem;letter-spacing:.18em;text-transform:uppercase; }
.boss-hud-copy strong { display:block;color:#fff;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.boss-hud-copy small { display:block;color:#a9b4be;font-size:.52rem;margin-top:1px; }
.boss-hud-status { display:flex;align-items:center;gap:8px;color:#fff;font-size:.58rem; }
.boss-phase-pips { display:flex;gap:4px; }
.boss-phase-pips i { width:8px;height:8px;border-radius:50%;border:1px solid color-mix(in srgb,var(--boss-accent) 56%,transparent);background:rgba(255,255,255,.05);box-shadow:0 0 0 transparent; }
.boss-phase-pips i.active { background:var(--boss-accent);box-shadow:0 0 10px color-mix(in srgb,var(--boss-accent) 72%,transparent); }
.boss-hud-health { grid-column:1/-1;height:7px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08); }
.boss-hud-health span { display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--boss-accent),var(--boss-secondary));box-shadow:0 0 14px color-mix(in srgb,var(--boss-accent) 58%,transparent);transition:width .14s linear;position:relative;overflow:hidden; }
.boss-hud-health span::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);transform:translateX(-120%);animation:bossHudShimmer 2.4s ease-in-out infinite; }
@keyframes bossHudShimmer { 0%,70%{transform:translateX(-120%)} 100%{transform:translateX(120%)} }
body.reduced-motion .boss-hud-health span::after { animation:none!important; }
.boss-encounter-hud p { grid-column:1/-1;margin:0;color:#d8e1e7;font-size:.52rem;line-height:1.32;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }

.boss-intro-card {
  --boss-accent:#ff5a5a;
  --boss-secondary:#ffb56b;
  position:absolute;
  z-index:22;
  left:50%;
  top:42%;
  width:min(88%,430px);
  transform:translate(-50%,-50%) scale(.88);
  opacity:0;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:14px;
  padding:15px 17px;
  border:1px solid color-mix(in srgb,var(--boss-accent) 68%,transparent);
  border-radius:16px;
  background:
    linear-gradient(100deg,color-mix(in srgb,var(--boss-accent) 16%,rgba(2,5,8,.96)),rgba(2,5,8,.97)),
    #020508;
  box-shadow:0 24px 65px rgba(0,0,0,.72),0 0 38px color-mix(in srgb,var(--boss-accent) 30%,transparent);
  transition:opacity .2s ease,transform .25s cubic-bezier(.2,.85,.2,1.15);
}
.boss-intro-card.show { opacity:1;transform:translate(-50%,-50%) scale(1); }
.boss-intro-card::before { content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--boss-secondary) 12%,transparent),transparent);transform:translateX(-100%);animation:bossIntroSweep 1.1s ease-out; }
.boss-intro-icon { position:relative;z-index:1;flex:0 0 58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;font-size:1.5rem;font-weight:900;border:1px solid var(--boss-accent);background:color-mix(in srgb,var(--boss-accent) 20%,#020508);box-shadow:0 0 28px color-mix(in srgb,var(--boss-accent) 45%,transparent); }
.boss-intro-copy { position:relative;z-index:1;min-width:0; }
.boss-intro-copy small { display:block;color:var(--boss-accent);font-size:.50rem;letter-spacing:.18em;text-transform:uppercase; }
.boss-intro-copy strong { display:block;color:#fff;font-size:1rem;line-height:1.06;text-transform:uppercase;letter-spacing:.08em; }
.boss-intro-copy span { display:block;color:var(--boss-secondary);font-size:.66rem;margin-top:3px; }
.boss-intro-copy em { display:block;color:#9aa6af;font-size:.52rem;letter-spacing:.08em;margin-top:7px;font-style:normal;text-transform:uppercase; }
.boss-intro-card.phase .boss-intro-icon { border-radius:50%; }
.boss-intro-card.defeated { --boss-accent:#00ff9d!important;--boss-secondary:#8dffd7!important; }

.boss-state-indicator.show { animation:bossStatusPulse 1s ease-in-out infinite alternate; }
body.boss-encounter-active .arcade-stage-glow { opacity:1;filter:saturate(1.2); }
body.boss-encounter-active .arcade-canvas-wrap::after { content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border:1px solid color-mix(in srgb,var(--active-boss-accent,#ff5a5a) 38%,transparent);box-shadow:inset 0 0 38px color-mix(in srgb,var(--active-boss-accent,#ff5a5a) 12%,transparent); }

@keyframes bossStatusPulse { from{transform:scale(1)} to{transform:scale(1.045)} }
@keyframes bossArchivePulse { from{transform:scale(.94);opacity:.72} to{transform:scale(1.12);opacity:1} }
@keyframes bossIntroSweep { to{transform:translateX(100%)} }

@media (max-width:620px) {
  .boss-encounter-hud { top:6px;width:94%;padding:7px 9px 8px;gap:4px 8px; }
  .boss-hud-copy strong { font-size:.66rem; }
  .boss-hud-copy small,.boss-encounter-hud p { font-size:.46rem; }
  .boss-hud-kicker { font-size:.42rem; }
  .boss-intro-card { top:38%;width:92%;padding:12px 13px;gap:11px; }
  .boss-intro-icon { flex-basis:48px;height:48px;font-size:1.2rem;border-radius:14px; }
  .boss-intro-copy strong { font-size:.82rem; }
  .boss-intro-copy span { font-size:.58rem; }
  .boss-bestiary-grid { grid-template-columns:1fr; }
}
body.reduced-motion .boss-state-indicator.show,
body.reduced-motion .boss-archive-aura,
body.reduced-motion .boss-intro-card::before { animation:none!important; }


/* v4.6.3 elite / rush presentation */
.boss-archive-summary{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:11px 13px;border:1px solid rgba(255,77,240,.34);border-radius:12px;background:linear-gradient(100deg,rgba(255,77,240,.08),rgba(255,229,111,.05));font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}
.boss-archive-summary strong{color:#fff}.boss-archive-summary span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 8px;color:#d8c9e2}
.boss-elite-stamp{position:absolute;right:7px;top:7px;padding:3px 6px;border:1px solid #ff4df0;border-radius:999px;background:rgba(8,2,10,.82);color:#ffe56f;font-size:.46rem;letter-spacing:.08em;box-shadow:0 0 15px rgba(255,77,240,.34)}
.boss-card.elite-mastered{border-color:rgba(255,77,240,.72);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 0 24px rgba(255,77,240,.13)}
body.elite-boss-active .boss-encounter-hud{border-color:#ff4df0;box-shadow:0 12px 34px rgba(0,0,0,.48),0 0 32px rgba(255,77,240,.30)}
body.elite-boss-active .boss-hud-kicker::before{content:"ELITE // ";color:#ffe56f}
body.elite-boss-active .arcade-canvas-wrap::after{border-color:rgba(255,77,240,.58);box-shadow:inset 0 0 58px rgba(255,77,240,.17)}
.mode-btn-boss-rush{border-color:rgba(255,77,240,.42)!important}.mode-btn-boss-rush.active{color:#ffe56f!important;border-color:#ff4df0!important;box-shadow:0 0 18px rgba(255,77,240,.22)}
.mode-duo-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:3px;border:1px solid rgba(255,77,240,.38);border-radius:999px;background:rgba(6,2,10,.88);overflow:hidden;min-width:min(100%,320px)}
.mode-duo-toggle .mode-duo-btn{position:relative;z-index:1;border:none!important;border-radius:999px!important;background:transparent!important;box-shadow:none!important;padding:8px 10px;font-size:.58rem;letter-spacing:.06em;color:#b8a8c4}
.mode-duo-toggle .mode-duo-btn.active{color:#ffe56f!important;text-shadow:0 0 10px rgba(255,77,240,.35)}
.mode-duo-thumb{position:absolute;top:3px;left:3px;width:calc(50% - 3px);height:calc(100% - 6px);border-radius:999px;background:linear-gradient(180deg,rgba(255,77,240,.28),rgba(255,229,111,.12));border:1px solid rgba(255,77,240,.55);box-shadow:0 0 16px rgba(255,77,240,.22);transition:transform .18s ease;pointer-events:none}
.mode-duo-toggle[data-active="boss-rush"] .mode-duo-thumb{transform:translateX(calc(100% + 3px))}
body.mode-boss-rush .runway-hud{display:none!important}
body.mode-survival .runway-hud{display:none!important}

/* 2026-08-01 -- root-cause fix for Boss Rush's encounter card staying
   visible over Runway. The rule above only ever hid Runway's own HUD
   when Boss Rush is active -- there was no symmetric rule hiding Boss
   Rush's encounter UI outside Boss Rush, so a card left in its .show
   state from a prior Boss Rush run (position:absolute, opacity/
   pointer-events toggled only, never display:none) stayed fully rendered
   and interactive on top of Runway regardless of whatever mode-switch JS
   did or didn't clean up. This is authoritative over that JS state:
   display:none removes it from layout flow and neutralizes any lingering
   opacity/transform/pointer-events, no matter which mode the encounter
   card's .show class was left in.
   Scoped to Runway only, NOT Survival -- confirmed in arcade.js
   (updateBossEncounterHud/bossHudKicker) that Survival mode has its own
   real boss encounters and legitimately uses this same card (labeled
   "BOSS ENCOUNTER" there, vs "BOSS RUSH N/M" in Boss Rush) -- hiding it
   in Survival would have broken that real feature, not fixed a bug. */
body.mode-runway .boss-encounter-hud,
body.mode-runway .boss-intro-card {
  display:none!important;
}

/* v4.6.4 boss archive mobile performance guard. */
.player-hub-panel[hidden] .boss-archive-aura{animation-play-state:paused!important}
@media(max-width:760px),(pointer:coarse){.boss-archive-aura{animation:none!important}.boss-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important}.boss-card::after{display:none}}

/* v4.6.5 iPhone boss-intro compositor guard. The encounter keeps running. */
@media (max-width:760px),(pointer:coarse) {
  .boss-intro-card,
  .boss-intro-card.compact {
    top:72px;
    width:min(88%,360px);
    gap:8px;
    padding:8px 10px;
    border-radius:11px;
    border-color:var(--boss-accent);
    background:rgba(2,5,8,.96);
    box-shadow:0 9px 24px rgba(0,0,0,.66);
    transform:translate(-50%,-8px);
    transition:opacity .12s linear,transform .12s linear;
    contain:layout paint;
    will-change:auto;
  }
  .boss-intro-card.show,
  .boss-intro-card.compact.show { transform:translate(-50%,0); }
  .boss-intro-card::before { display:none!important;animation:none!important; }
  .boss-intro-icon {
    flex:0 0 34px;
    height:34px;
    border-radius:9px;
    font-size:.86rem;
    box-shadow:none;
    background:rgba(12,16,20,.96);
  }
  .boss-intro-copy small{font-size:.40rem;letter-spacing:.12em}
  .boss-intro-copy strong{font-size:.66rem;line-height:1.1}
  .boss-intro-copy span{font-size:.48rem;margin-top:2px}
  .boss-intro-copy em{display:none}
}


/* v4.6.7 boss-arrival hardening. Touch devices and Boss Rush never composite
   a separate incoming card; the persistent health HUD identifies the boss. */
@media (max-width:760px),(pointer:coarse) {
  .boss-intro-card { display:none!important; }
  .boss-encounter-hud {
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    transition:none!important;
    box-shadow:0 5px 12px rgba(0,0,0,.42)!important;
    background:#02070a!important;
    border-color:rgba(255,255,255,.24)!important;
  }
  body.boss-encounter-active .arcade-stage-glow { filter:none!important; }
  body.boss-encounter-active .arcade-canvas-wrap::after { display:none!important; }
}
body.mode-boss-rush .boss-intro-card { display:none!important; }


/* v4.6.7 visible encounter presentation. The arrival chip appears briefly,
   while this compact encounter tab stays visible until the boss is defeated. */
.boss-encounter-hud {
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  border-width:2px;
  background:rgba(2,7,10,.97);
}
.boss-hud-icon {
  grid-row:1;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  font-size:1rem;
  font-weight:900;
  border:1px solid var(--boss-accent);
  background:color-mix(in srgb,var(--boss-accent) 22%,#02070a);
  box-shadow:0 0 16px color-mix(in srgb,var(--boss-accent) 35%,transparent);
}
.boss-hud-health,.boss-encounter-hud p { grid-column:1/-1; }
body.boss-encounter-active .boss-encounter-hud.show {
  box-shadow:0 8px 22px rgba(0,0,0,.68),0 0 22px color-mix(in srgb,var(--boss-accent) 24%,transparent);
}

/* Re-enable a low-cost arrival chip on phones and Boss Rush. It never pauses
   gameplay, never returns for phase changes, and clears before the fight starts. */
@media (max-width:760px),(pointer:coarse) {
  .boss-intro-card,
  body.mode-boss-rush .boss-intro-card {
    display:flex!important;
    top:86px!important;
    width:min(84%,330px)!important;
    padding:7px 9px!important;
    gap:8px!important;
    border-radius:10px!important;
    background:#02070a!important;
    box-shadow:0 7px 18px rgba(0,0,0,.72)!important;
    transition:opacity .10s linear,transform .10s linear!important;
    contain:layout paint;
  }
  .boss-intro-card::before { display:none!important; }
  .boss-hud-icon { width:29px;height:29px;border-radius:8px;font-size:.82rem;box-shadow:none; }
  .boss-encounter-hud { width:96%;padding:6px 8px 7px;gap:3px 7px; }
  .boss-hud-health { height:8px; }
  .boss-encounter-hud p { color:#fff;font-weight:700; }
}

body.mode-boss-rush .boss-intro-card { display:flex!important; }


/* v4.6.8 extended Boss Rush progress. */
.boss-rush-progress{
  grid-column:1/-1;
  position:relative;
  height:13px;
  overflow:hidden;
  border:1px solid rgba(255,77,240,.42);
  border-radius:999px;
  background:rgba(255,255,255,.055);
}
.boss-rush-progress>span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,#ff4df0,#ffe56f);
  box-shadow:0 0 14px rgba(255,77,240,.42);
  transition:width .2s ease;
}
.boss-rush-progress>strong{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:.45rem;
  letter-spacing:.08em;
  text-shadow:0 1px 3px #000;
}
body.mode-boss-rush .boss-encounter-hud{border-color:rgba(255,77,240,.72)}
@media(max-width:760px),(pointer:coarse){
  .boss-rush-progress{height:12px}
  .boss-rush-progress>strong{font-size:.40rem}
}
