/* ================================================================
   Guild Story Experience 25A5
   Hall of Relics · War Room signal-lost · Ledger death · Formation V2
   ================================================================ */

/* —— Hall of Relics (legacy chassis — superseded by hall-relics-stitch-27a.css) —— */
#hall-of-fame.np-hall-of-relics:not(.np-hall-relics-27a) {
  background:
    radial-gradient(ellipse 55% 45% at 50% 12%, rgba(90, 55, 18, 0.28), transparent 72%),
    linear-gradient(180deg, #08070b 0%, #0c0a0f 55%, #09080c 100%);
  padding: 5.5rem 1.25rem 6.5rem;
  color: #efe6d4;
}
#hall-of-fame.np-hall-of-relics:not(.np-hall-relics-27a) .container { max-width: 1120px; }

#hall-of-fame:not(.np-hall-relics-27a) .np-relics__head { text-align: center; max-width: 720px; margin: 0 auto 2.5rem; }
#hall-of-fame:not(.np-hall-relics-27a) .np-relics__eyebrow {
  margin: 0 0 0.65rem;
  font-family: monospace;
  font-size: 0.68rem;
  letter-spacing: 0.28em;
  color: #c9b07a;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relics__title {
  margin: 0;
  font-family: var(--font-display, 'Cinzel Decorative', serif);
  font-size: clamp(1.55rem, 3.2vw, 2.35rem);
  letter-spacing: 0.04em;
  color: #f3ebdc;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relics__sub {
  margin: 0.85rem auto 0;
  max-width: 38rem;
  color: #9a9080;
  font-size: 0.95rem;
  line-height: 1.5;
}

#hall-of-fame:not(.np-hall-relics-27a) .np-relics__hall {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relics__niche.is-throne {
  transform: scale(1.12);
  z-index: 2;
  transform-origin: center bottom;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relics__empty {
  text-align: center;
  color: #8f8678;
  padding: 2rem;
}

#hall-of-fame:not(.np-hall-relics-27a) .np-relic {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  min-height: 300px;
  padding: 1.25rem 0.9rem 1.4rem;
  isolation: isolate;
  border: none;
  background: transparent;
  transition: filter 180ms ease;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__forge {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.92;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--throne { clip-path: polygon(50% 0%, 92% 12%, 100% 38%, 88% 100%, 12% 100%, 0% 38%, 8% 12%); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--blade { clip-path: polygon(46% 0%, 54% 0%, 62% 72%, 72% 78%, 72% 100%, 28% 100%, 28% 78%, 38% 72%); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--hunter { clip-path: polygon(50% 0%, 88% 42%, 78% 100%, 22% 100%, 12% 42%); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--survivor { clip-path: polygon(12% 8%, 88% 8%, 94% 48%, 50% 100%, 6% 48%); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--ascendant { clip-path: polygon(38% 0%, 62% 0%, 70% 28%, 88% 28%, 88% 48%, 78% 48%, 78% 68%, 92% 68%, 92% 100%, 8% 100%, 8% 68%, 22% 68%, 22% 48%, 12% 48%, 12% 28%, 30% 28%); }

#hall-of-fame:not(.np-hall-relics-27a) .np-relic__forge::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(165deg, rgba(40, 34, 24, 0.95), rgba(8, 7, 10, 0.98));
  box-shadow: inset 0 0 0 1px rgba(180, 150, 80, 0.28);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--throne .np-relic__forge::before {
  background:
    radial-gradient(ellipse 60% 40% at 50% 18%, rgba(180, 120, 40, 0.28), transparent 70%),
    linear-gradient(165deg, rgba(48, 36, 16, 0.96), rgba(10, 8, 6, 0.98));
  box-shadow: inset 0 0 0 1px rgba(212, 168, 70, 0.5);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--blade .np-relic__forge::before {
  background: linear-gradient(180deg, rgba(28, 32, 40, 0.96), rgba(8, 10, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(140, 170, 200, 0.4);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--hunter .np-relic__forge::before {
  background: linear-gradient(180deg, rgba(28, 18, 12, 0.96), rgba(8, 6, 6, 0.98));
  box-shadow: inset 0 0 0 1px rgba(160, 90, 40, 0.4);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--survivor .np-relic__forge::before {
  background: linear-gradient(180deg, rgba(30, 26, 18, 0.96), rgba(8, 8, 8, 0.98));
  box-shadow: inset 0 0 0 1px rgba(150, 120, 70, 0.42);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--ascendant .np-relic__forge::before {
  background:
    linear-gradient(180deg, rgba(36, 30, 14, 0.95), rgba(8, 10, 12, 0.98));
  box-shadow: inset 0 0 0 1px rgba(120, 180, 160, 0.35);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__chassis {
  width: 100%;
  height: 100%;
  display: block;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__shape { fill: rgba(22, 20, 18, 0.9); stroke: rgba(180, 150, 90, 0.35); stroke-width: 1.2; }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__accent { fill: none; stroke: rgba(200, 170, 90, 0.45); stroke-width: 1.4; }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__jewel { fill: #8b1e2d; stroke: #e8c547; stroke-width: 1; }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__fang { fill: rgba(120, 30, 28, 0.55); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__rune { fill: none; stroke: rgba(180, 150, 70, 0.5); stroke-width: 1.2; }

#hall-of-fame:not(.np-hall-relics-27a) .np-relic--throne { box-shadow: inset 0 0 0 1px rgba(212, 168, 70, 0.45); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--throne .np-relic__shape { fill: rgba(28, 22, 12, 0.92); stroke: rgba(212, 168, 70, 0.55); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--blade .np-relic__shape { fill: rgba(16, 18, 22, 0.94); stroke: rgba(160, 175, 195, 0.45); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--blade .np-relic__accent { stroke: rgba(120, 170, 210, 0.55); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--hunter .np-relic__shape { fill: rgba(14, 12, 10, 0.94); stroke: rgba(160, 110, 50, 0.4); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--survivor .np-relic__shape { fill: rgba(16, 15, 12, 0.94); stroke: rgba(150, 120, 70, 0.42); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--ascendant .np-relic__shape { fill: rgba(18, 16, 10, 0.94); stroke: rgba(200, 160, 70, 0.4); }
#hall-of-fame:not(.np-hall-relics-27a) .np-relic--ascendant .np-relic__rune { stroke: rgba(120, 200, 180, 0.45); }

#hall-of-fame:not(.np-hall-relics-27a) .np-relic__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%;
  min-height: 250px;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__slot {
  margin: 0 0 0.55rem;
  font-family: monospace;
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #c9b07a;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__medallion {
  position: relative;
  width: 64px;
  height: 64px;
  margin: 0.25rem 0 0.65rem;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__medallion.is-empty {
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  box-shadow: inset 0 0 0 1px rgba(180, 150, 80, 0.25);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.55);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__ring {
  position: absolute;
  inset: -6px;
  width: calc(100% + 12px);
  height: calc(100% + 12px);
  object-fit: contain;
  pointer-events: none;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__name {
  margin: 0.15rem 0 0.35rem;
  font-family: var(--font-title, Cinzel, serif);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  color: #f3ebdc;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__metric {
  margin: 0;
  font-family: monospace;
  font-size: 0.78rem;
  color: #e8c547;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic__explain {
  margin: 0.7rem 0 0;
  font-size: 0.68rem;
  line-height: 1.4;
  color: #8f8678;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: opacity 140ms ease, max-height 140ms ease;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:hover,
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:focus-visible {
  outline: none;
  filter: brightness(1.1);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:hover .np-relic__forge::before,
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:focus-visible .np-relic__forge::before {
  box-shadow:
    inset 0 0 0 1px rgba(232, 197, 71, 0.55),
    0 0 24px rgba(180, 120, 40, 0.16);
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:hover .np-relic__explain,
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:focus-visible .np-relic__explain {
  opacity: 1;
  max-height: 5.5rem;
}
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:hover .np-relic__rune,
#hall-of-fame:not(.np-hall-relics-27a) .np-relic:focus-visible .np-relic__rune {
  stroke: rgba(220, 190, 90, 0.75);
}

@media (max-width: 980px) {
  #hall-of-fame:not(.np-hall-relics-27a) .np-relics__hall {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #hall-of-fame:not(.np-hall-relics-27a) .np-relics__niche.is-throne {
    grid-column: 2;
    grid-row: 1;
  }
}
@media (max-width: 700px) {
  #hall-of-fame:not(.np-hall-relics-27a) .np-relics__hall {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0.9rem;
    padding: 0.5rem 0.25rem 1rem;
    -webkit-overflow-scrolling: touch;
  }
  #hall-of-fame:not(.np-hall-relics-27a) .np-relics__niche {
    flex: 0 0 82%;
    scroll-snap-align: center;
  }
  #hall-of-fame:not(.np-hall-relics-27a) .np-relics__niche.is-throne {
    transform: scale(1.04);
    grid-column: auto;
    grid-row: auto;
  }
}

/* —— War Room signal lost —— */
.np-war-room__signal-lost {
  max-width: 520px;
  margin: 1.5rem auto 0;
  padding: 2.5rem 1.5rem 2.75rem;
  text-align: center;
  background:
    radial-gradient(ellipse 70% 50% at 50% 30%, rgba(80, 50, 20, 0.18), transparent 70%),
    linear-gradient(180deg, rgba(12, 10, 14, 0.9), rgba(8, 7, 10, 0.96));
  box-shadow: inset 0 0 0 1px rgba(160, 130, 70, 0.22);
}
.np-war-room__signal-glyph {
  position: relative;
  width: 88px;
  height: 88px;
  margin: 0 auto 1.25rem;
}
.np-war-room__signal-ring {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(200, 160, 70, 0.35);
  border-radius: 50%;
  animation: np-signal-breathe 3.6s ease-in-out infinite;
}
.np-war-room__signal-core {
  position: absolute;
  inset: 28%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200, 150, 60, 0.35), transparent 70%);
  opacity: 0.55;
  animation: np-signal-breathe 3.6s ease-in-out infinite reverse;
}
.np-war-room__signal-line {
  position: absolute;
  left: 50%;
  top: 100%;
  width: 1px;
  height: 36px;
  background: linear-gradient(180deg, rgba(200, 160, 70, 0.5), transparent);
  transform: translateX(-50%);
}
.np-war-room__signal-title {
  margin: 0 0 0.65rem;
  font-family: var(--font-title, Cinzel, serif);
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  color: #e8d8b0;
}
.np-war-room__signal-copy {
  margin: 0 auto;
  max-width: 26rem;
  color: #9a9080;
  font-size: 0.92rem;
  line-height: 1.5;
}
.np-war-room__signal-reconnect {
  margin: 1.25rem 0 0;
  font-family: monospace;
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  color: #c9b07a;
}
.np-war-room__signal-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 0.35rem;
  border-radius: 50%;
  background: #c9a227;
  animation: np-signal-pulse 1.4s steps(2, end) infinite;
}
.np-war-room__signal-last {
  margin: 1.1rem 0 0;
  font-size: 0.72rem;
  color: #7a7368;
  letter-spacing: 0.06em;
}
@keyframes np-signal-breathe {
  0%, 100% { opacity: 0.35; transform: scale(0.96); }
  50% { opacity: 0.7; transform: scale(1); }
}
@keyframes np-signal-pulse {
  0%, 100% { opacity: 0.25; }
  50% { opacity: 1; }
}

/* —— Ledger death accent —— */
.np-ledger__card.is-death {
  box-shadow: inset 0 0 0 1px rgba(140, 40, 40, 0.28);
}
.np-ledger__death-mark {
  position: absolute;
  top: 0.65rem;
  right: 0.75rem;
  width: 18px;
  height: 20px;
  background:
    linear-gradient(135deg, transparent 40%, rgba(140, 40, 40, 0.55) 41%, rgba(140, 40, 40, 0.55) 59%, transparent 60%),
    radial-gradient(ellipse at 50% 40%, rgba(40, 20, 20, 0.9), transparent 70%);
  clip-path: polygon(10% 0, 90% 0, 100% 55%, 50% 100%, 0 55%);
  opacity: 0.85;
  pointer-events: none;
}
.np-ledger__card { position: relative; }
.np-ledger__type.is-death {
  color: #c47878;
  border-color: rgba(140, 50, 50, 0.35);
}

/* —— Guild formation V2 —— */
.np-guild-formation-v2 .np-field__count {
  font-family: monospace;
  letter-spacing: 0.1em;
  color: #d4b56a;
}
.np-guild-formation-v2 .np-field__formation {
  position: relative;
  min-height: 420px;
  margin: 1.25rem auto 0;
  max-width: 920px;
  background:
    radial-gradient(ellipse 70% 55% at 50% 40%, rgba(40, 30, 16, 0.35), transparent 70%),
    linear-gradient(180deg, rgba(10, 9, 12, 0.4), rgba(6, 5, 8, 0.7));
  box-shadow: inset 0 0 0 1px rgba(140, 120, 70, 0.18);
}
.np-field__token {
  position: absolute;
  width: 34px;
  height: 34px;
  margin: -17px 0 0 -17px;
  text-decoration: none;
  color: inherit;
  z-index: 1;
}
.np-field__token-frame {
  position: relative;
  display: block;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  box-shadow:
    0 0 0 1px rgba(120, 110, 90, 0.45),
    inset 0 0 0 1px rgba(0, 0, 0, 0.5);
  overflow: hidden;
  background: #121014;
  transition: box-shadow 160ms ease, filter 160ms ease, transform 160ms ease;
}
.np-field__token-avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.np-field__token-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(145deg, #2a2418, #121014);
}
.np-field__token-ring {
  position: absolute;
  inset: -3px;
  width: calc(100% + 6px);
  height: calc(100% + 6px);
  object-fit: contain;
  pointer-events: none;
  opacity: 0.85;
}
.np-field__token.is-dim .np-field__token-frame {
  filter: grayscale(0.55) brightness(0.55);
  opacity: 0.72;
}
.np-field__token.is-hot .np-field__token-frame {
  box-shadow:
    0 0 0 1px rgba(212, 181, 106, 0.7),
    0 0 12px rgba(200, 150, 50, 0.28);
  filter: none;
  opacity: 1;
}
.np-field__token.is-flash .np-field__token-frame {
  animation: np-field-flash 700ms ease-out 1;
}
@keyframes np-field-flash {
  0% { box-shadow: 0 0 0 1px rgba(232, 197, 71, 0.95), 0 0 22px rgba(220, 170, 60, 0.55); transform: scale(1.15); }
  100% { box-shadow: 0 0 0 1px rgba(212, 181, 106, 0.7), 0 0 12px rgba(200, 150, 50, 0.28); transform: scale(1); }
}

.np-field__dossier {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%) translateY(4px);
  width: 200px;
  padding: 0.7rem 0.75rem;
  background: rgba(8, 7, 10, 0.96);
  box-shadow: inset 0 0 0 1px rgba(180, 150, 80, 0.28);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease, transform 120ms ease;
  z-index: 5;
  text-align: center;
}
.np-field__token:hover .np-field__dossier,
.np-field__token:focus .np-field__dossier,
.np-field__token:focus-visible .np-field__dossier {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
.np-field__dossier-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 0.25rem;
}
.np-field__dossier-name {
  font-family: var(--font-title, Cinzel, serif);
  font-size: 0.85rem;
  color: #f0e6d4;
}
.np-field__dossier-level,
.np-field__dossier span {
  font-size: 0.68rem;
  color: #9a9080;
}
.np-field__dossier-cta {
  margin-top: 0.35rem;
  font-family: monospace;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  color: #e8c547;
}
.np-field__legend-mark {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3a3834;
  box-shadow: inset 0 0 0 1px rgba(140, 130, 110, 0.4);
  vertical-align: middle;
}
.np-field__legend-mark.is-hot {
  background: #c9a227;
  box-shadow: 0 0 8px rgba(200, 150, 50, 0.35);
}

@media (max-width: 700px) {
  .np-guild-formation-v2 .np-field__formation {
    min-height: 360px;
  }
  .np-field__token {
    width: 28px;
    height: 28px;
    margin: -14px 0 0 -14px;
  }
  .np-field__token-frame {
    width: 28px;
    height: 28px;
  }
}

/* Hide legacy generic feat rectangles when relics present */
.np-hall-of-relics .np-feats__hall { display: none; }
.np-guild-formation-v2 .np-field__shield { display: none; }
