/* ── The Fallen — memorial page ─────────────────────────────────────────────
   Calm and restrained. Deploy143 codex surfaces (var(--cx-surface), gold hairlines,
   Cinzel / EB Garamond) with everything turned a step quieter: desaturated
   portraits that warm on hover, thin rules instead of ornament, muted status
   hues, generous space. No glow, no tombstones — the people are the focus. */

.fallen-page .page-description{max-width:640px}

.fallen-rule{display:flex;align-items:center;gap:14px;margin:6px 0 24px;color:color-mix(in srgb,var(--cx-accent) 55%,transparent);font-size:11px}
.fallen-rule::before,.fallen-rule::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--cx-accent) 25%,transparent),transparent)}

.fallen-toolbar{display:flex;align-items:center;gap:14px;justify-content:flex-end;margin:0 0 10px}
.fallen-toolbar-note{color:var(--cx-text-dim);font-size:12px;font-style:italic;font-family:"EB Garamond",serif}
.fallen-status{min-height:18px;margin:0 0 12px;font-size:13px;color:var(--cx-text-dim);font-style:italic;font-family:"EB Garamond",serif;text-align:right}
.fallen-status.ok{color:var(--cx-success);font-style:normal}
.fallen-status.err{color:var(--cx-danger);font-style:normal}

.fallen-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;align-items:start}
.fallen-loading{grid-column:1/-1;color:var(--cx-text-dim);font-family:"EB Garamond",serif;font-style:italic;padding:26px 0;text-align:center}

/* ---- memorial cards ---- */
.fallen-slot{display:flex;flex-direction:column;min-width:0}
.fallen-card{display:flex;flex-direction:column;width:100%;text-align:center;background:var(--cx-surface);border:1px solid color-mix(in srgb,var(--cx-accent) 14%,transparent);border-radius:12px;overflow:hidden;cursor:pointer;padding:0;font-family:"EB Garamond",Georgia,serif;color:var(--cx-text);transition:transform .18s,border-color .18s,box-shadow .18s}
.fallen-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--cx-accent) 38%,transparent);box-shadow:0 12px 30px rgba(0,0,0,.45)}
.fallen-card.open{border-color:color-mix(in srgb,var(--cx-accent) 50%,transparent)}
.fallen-media{position:relative;aspect-ratio:3/4;overflow:hidden}
.fallen-por{position:absolute;inset:0;background-size:cover;background-position:center top;filter:saturate(.62) brightness(.92);transition:filter .35s}
.fallen-card:hover .fallen-por,.fallen-card.open .fallen-por{filter:saturate(.9) brightness(1)}
.fallen-por.ph{display:grid;place-items:center;font-family:Cinzel,serif;font-size:52px;color:var(--cx-text-faint);background:radial-gradient(circle at 50% 32%,var(--cx-surface-3),var(--cx-field))}
.fallen-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,color-mix(in srgb,var(--cx-field) 62%,transparent) 84%,var(--cx-surface))}
.fallen-st{position:absolute;left:0;right:0;bottom:8px;z-index:2;font-family:Cinzel,serif;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--fst,var(--cx-accent))}
.fallen-st::before,.fallen-st::after{content:"—";opacity:.45;margin:0 7px}
.fallen-st.inline{position:static;text-align:left;margin-top:7px}
.fallen-st.inline::before{margin-left:0}
.st-dead{--fst:var(--cx-accent)}          /* ash */
.st-missing{--fst:#9fb4ea}       /* cool indigo */
.st-retired{--fst:var(--cx-success)}       /* sage */
.st-sacrificed{--fst:var(--cx-danger)}    /* dim rose */
.st-departed{--fst:#b6aed0}      /* dusk violet */

.fallen-body{padding:13px 16px 16px;display:flex;flex-direction:column;gap:4px}
.fallen-name{font-family:Cinzel,serif;font-size:18px;color:var(--cx-accent);line-height:1.15}
.fallen-player{font-size:12.5px;font-style:italic;color:var(--cx-text-dim)}
.fallen-lineage{font-size:13.5px;color:var(--cx-text-soft);letter-spacing:.02em}
.fallen-era{font-size:11.5px;color:var(--cx-text-dim);letter-spacing:.06em;text-transform:uppercase;font-family:Cinzel,serif;margin-top:2px}
.fallen-epitaph{font-size:14.5px;font-style:italic;color:var(--cx-text-soft);line-height:1.55;margin-top:8px;padding-top:9px;border-top:1px solid color-mix(in srgb,var(--cx-accent) 10%,transparent)}

/* ---- admin controls (only rendered for the DM) ---- */
.fallen-admin-row{display:flex;justify-content:center;gap:6px;margin-top:7px}
.fallen-admin-row button{background:none;border:1px solid color-mix(in srgb,var(--cx-accent) 22%,transparent);color:var(--cx-text-dim);border-radius:7px;width:30px;height:26px;font-size:12px;cursor:pointer;line-height:1}
.fallen-admin-row button:hover{color:var(--cx-accent);border-color:color-mix(in srgb,var(--cx-accent) 50%,transparent)}
.fallen-admin-row button.danger:hover{color:var(--cx-danger);border-color:color-mix(in srgb,var(--cx-danger) 50%,transparent)}
.fallen-admin-row button:disabled{opacity:.25;cursor:default}

/* ---- expanded tribute ---- */
.fallen-tribute{grid-column:1/-1;position:relative;background:var(--cx-surface);border:1px solid color-mix(in srgb,var(--cx-accent) 22%,transparent);border-radius:12px;padding:24px 28px;font-family:"EB Garamond",Georgia,serif}
.fallen-tribute-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--cx-text-faint);font-size:15px;cursor:pointer}
.fallen-tribute-close:hover{color:var(--cx-accent)}
.fallen-tribute-head{display:flex;gap:20px;align-items:center;margin-bottom:6px}
.fallen-tribute-por{width:88px;height:110px;flex:none;border-radius:10px;background-size:cover;background-position:center top;border:1px solid color-mix(in srgb,var(--cx-accent) 25%,transparent);filter:saturate(.85)}
.fallen-tribute-name{font-family:Cinzel,serif;font-size:26px;color:var(--cx-accent);line-height:1.1}
.fallen-tribute-sub{color:var(--cx-text-soft);font-size:14px;font-style:italic;margin-top:4px}
.fallen-sec{margin-top:18px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--cx-accent) 10%,transparent)}
.fallen-sec-h{font-family:Cinzel,serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--cx-accent-deep);margin-bottom:7px}
.fallen-sec-t{color:var(--cx-text-soft);font-size:16px;line-height:1.7;white-space:pre-wrap}
.fallen-lastwords{margin-top:20px;padding:16px 22px;text-align:center;font-size:18px;font-style:italic;color:var(--cx-text);line-height:1.6;border-top:1px solid color-mix(in srgb,var(--cx-accent) 10%,transparent);border-bottom:1px solid color-mix(in srgb,var(--cx-accent) 10%,transparent)}
.fallen-lastwords span{display:block;margin-top:7px;font-size:12px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;font-family:Cinzel,serif;color:var(--cx-text-dim)}

/* ---- empty state ---- */
.fallen-empty{grid-column:1/-1;text-align:center;padding:56px 24px;background:var(--cx-surface);border:1px dashed color-mix(in srgb,var(--cx-accent) 20%,transparent);border-radius:12px}
.fallen-empty-mark{color:color-mix(in srgb,var(--cx-accent) 50%,transparent);font-size:14px;margin-bottom:14px}
.fallen-empty-line{font-family:Cinzel,serif;font-size:19px;color:var(--cx-text-soft);letter-spacing:.03em}
.fallen-empty-sub{font-family:"EB Garamond",serif;font-style:italic;color:var(--cx-text-dim);font-size:15px;margin-top:8px;max-width:460px;margin-left:auto;margin-right:auto;line-height:1.6}

/* ---- edit modal grid ---- */
.fallen-modal-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.fallen-f{margin-bottom:10px}
.fallen-f label{display:block;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--cx-text-dim);margin-bottom:4px;font-family:"EB Garamond",serif}

@media (max-width:800px){
  .fallen-gallery{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
  .fallen-tribute{padding:18px 16px}
  .fallen-tribute-head{gap:14px}
  .fallen-tribute-por{width:68px;height:86px}
  .fallen-tribute-name{font-size:21px}
  .fallen-modal-2col{grid-template-columns:1fr}
  .fallen-toolbar{justify-content:flex-start}
  .fallen-status{text-align:left}
  .fallen-admin-row button{width:36px;height:32px}
}
