/* Fixed promotion: deliberately outside the chapter/content geometry. */
.survivors-badge {
  position: fixed;
  left: max(24px, env(safe-area-inset-left));
  bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 90;
  width: max-content;
  max-width: calc(100vw - 48px);
  isolation: isolate;
  transition: opacity .2s ease;
}
.survivors-badge[hidden] { display: none; }
.survivors-badge[data-footer-near] { opacity: 0; pointer-events: none; }
.survivors-badge[data-obscured] { visibility: hidden; pointer-events: none; }
.survivors-badge__frame {
  position: relative;
  animation: survivors-float 6s ease-in-out infinite;
  transition: scale .25s ease;
  transform-origin: bottom left;
}
.survivors-badge__link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 8px 24px 8px 8px;
  border: 1px solid #a78348;
  border-radius: 24px 8px 24px 8px;
  background: linear-gradient(125deg, #332416, #19130ef5 65%);
  box-shadow: inset 0 0 0 3px #08060480, 0 6px 24px #0009;
  color: var(--gold);
  text-decoration: none;
}
.survivors-badge__icon {
  position: relative;
  flex: 0 0 96px;
  width: 96px;
  height: 96px;
  border-radius: 18px;
  box-shadow: 0 0 0 1px #e8c77a99, 0 0 12px #e9a94333;
}
.survivors-badge__icon::after {
  content: '';
  position: absolute;
  inset: -3px;
  border: 1px solid #f5cc76;
  border-radius: inherit;
  pointer-events: none;
  animation: survivors-pulse 5s ease-in-out infinite;
}
.survivors-badge__icon img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
.survivors-badge__copy { display: grid; gap: 6px; }
.survivors-badge__copy strong {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.25;
}
.survivors-badge__copy small { color: #eee0c9; font-size: 13px; line-height: 1.4; }
.survivors-badge__close {
  position: absolute;
  top: -10px;
  right: -10px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #b49255;
  border-radius: 50%;
  background: #21180f;
  color: #f2dbac;
  font: 20px/1 'Segoe UI', sans-serif;
  cursor: pointer;
  box-shadow: 0 2px 6px #0009;
}
.survivors-badge__close:hover { background: #51391d; color: #fff5db; }
.presentation-page .survivors-badge__link:focus-visible, .presentation-page .survivors-badge__close:focus-visible {
  outline: 3px solid #fff0b6;
  outline-offset: 5px;
}
.survivors-badge:is(:hover, :focus-within) .survivors-badge__frame {
  animation-play-state: paused;
  scale: 1.035;
}
.survivors-badge:is(:hover, :focus-within) .survivors-badge__icon {
  box-shadow: 0 0 0 2px #ffe7a1, 0 0 23px #efbb6277;
}
.survivors-badge:is(:hover, :focus-within) .survivors-badge__icon::after {
  animation-play-state: paused;
  opacity: 1;
  box-shadow: 0 0 16px #edb95b77;
}
@keyframes survivors-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes survivors-pulse {
  0%, 35%, 100% { opacity: .25; box-shadow: 0 0 3px #eeb95122; }
  60% { opacity: .85; box-shadow: 0 0 17px 3px #eeb95166; }
}
@media (max-width: 600px) {
  .survivors-badge { left: max(16px, env(safe-area-inset-left)); bottom: max(18px, env(safe-area-inset-bottom)); }
  .survivors-badge__link { padding: 3px; border-radius: 50%; }
  .survivors-badge__icon { flex-basis: 60px; width: 60px; height: 60px; border-radius: 50%; }
  /* Keep the high-set logo inside the circular frame, including the tall A. */
  .survivors-badge__icon img { padding: 4px 1px; background: #302016; object-fit: contain; }
  .survivors-badge__copy { display: none; }
  .survivors-badge__close { top: -8px; right: -8px; }
}
@media (prefers-reduced-motion: reduce) {
  .survivors-badge__frame, .survivors-badge__icon::after { animation: none; }
  .survivors-badge, .survivors-badge__frame { transition: none; }
}
