.fxBack{
  position:fixed; inset:0; z-index:999;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
  background: rgba(0,0,0,.72);
  animation: fxFade .14s ease-out;
}
@keyframes fxFade{from{opacity:0}to{opacity:1}}

.fxCard{
  width:min(680px, 96vw);
  border-radius:22px;
  border:1px solid rgba(42,74,90,.95);
  background: linear-gradient(180deg, rgba(14,24,48,.96), rgba(7,11,20,.92));
  box-shadow: 0 22px 70px rgba(0,0,0,.65);
  overflow:hidden;
  animation: fxPop .18s ease-out;
}
@keyframes fxPop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}

.fxTop{
  display:flex;justify-content:space-between;align-items:center;
  gap:10px;
  padding:14px 14px 10px;
}
.fxTitle{font-weight:1000;color:#7dffb3;font-size:1.15rem}
.fxClose{
  border:1px solid rgba(42,74,90,.95);
  background: rgba(14,24,48,.8);
  color:#e8f0ff;
  border-radius:14px;
  padding:8px 10px;
  font-weight:900;
}

.fxMedia{padding:0 14px 14px;display:flex;justify-content:center}
.fxVideo{
  width:100%;
  max-height:52vh;
  border-radius:18px;
  border:1px solid rgba(42,74,90,.95);
  background: rgba(7,11,20,.55);
}
.fxImgWrap{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
}
.fxImg{
  width:100%;
  max-height:52vh;
  object-fit:contain;
  border-radius:18px;
  border:1px solid rgba(42,74,90,.95);
  background: rgba(7,11,20,.55);
}
.fxImgLabel{
  font-weight:1000;
  color:rgba(255,255,255,.92);
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(42,74,90,.95);
  background: rgba(14,24,48,.65);
}

.fxText{
  padding:0 14px 12px;
  color:#dbe8ff;
  line-height:1.35;
  font-size:1rem;
}
.fxHint{
  padding:10px 14px 14px;
  color:rgba(255,255,255,.65);
  font-weight:900;
  font-size:.85rem;
  text-align:center;
}