/* GLOBAL CARD */
.card{
  background: rgba(12,16,22,.86);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 0 35px rgba(127,255,226,.15);
}

/* =========================
   FRONT PAGE - HERO IMAGE
   ========================= */

.front-full{
  position: relative;
  overflow: hidden;
  padding: 0; /* overrides .card padding so image can fill */
}

.front-image{
  height: 360px;
  background: url("frontpage.webp") center / cover no-repeat;
}

.front-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;      /* bottom */
  justify-content: flex-start;/* left */
}

/* FULL-WIDTH TEXT BAR */
.front-copy-wrap{
  width: 100%;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.92),
    rgba(0,0,0,.75),
    rgba(0,0,0,.35),
    rgba(0,0,0,0)
  );
  padding: 26px 30px;
}

.front-copy{
  margin: 0;
  width: 100%;
  max-width: none;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 400;
  color: #ffffff;
  text-align: left;
  text-shadow: 0 2px 10px rgba(0,0,0,.8);
}

/* OPTIONAL (only needed if you use these elsewhere) */
.front-full .kicker{
  font-family: monospace;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(233,255,249,.72);
  margin: 0 0 10px;
}

.front-full .headline{
  font-size: 46px;
  line-height: 1.05;
  margin: 0 0 12px;
  color: #e9fff9;
}

.front-full .lede{
  font-size: 18px;
  line-height: 1.65;
  color: rgba(233,255,249,.78);
  max-width: 55ch;
  margin: 0;
}

/* Mobile */
@media (max-width: 900px){
  .front-image{ height: 260px; }
  .front-full .headline{ font-size: 34px; }
}

/* =========================
   TRANSMISSION PAGE STYLES
   ========================= */

.transmission{
  max-width: 720px;
  padding: 3rem 2rem;
  color: #e6f7f3;
  font-family: Georgia, "Times New Roman", serif;
}

.transmission .log{
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.7rem;
  letter-spacing: 2px;
  color: #7fffe2;
  margin-bottom: 1.5rem;
}

.transmission h2{
  font-size: 2rem;
  margin: 0 0 1rem;
}

.transmission .status{
  font-size: 1rem;
  color: #b8d6d0;
  margin-bottom: 2rem;
}

.fragment{
  border-left: 2px solid #3fd3ff;
  padding-left: 1.5rem;
}

.fragment-title{
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
  color: #3fd3ff;
  margin-bottom: 0.75rem;
}

.fragment-text{
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 1rem;
}

.open{
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.85rem;
  color: #ff4fd8;
  text-decoration: none;
}

.open:hover{
  text-decoration: underline;
}

/* =========================
   SIGNAL STATUS DOT
   ========================= */

.signal-dot{
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 10px;
  border-radius: 50%;
  background: #ff4fd8;
  box-shadow:
    0 0 6px rgba(255,79,216,.9),
    0 0 14px rgba(255,79,216,.6),
    0 0 26px rgba(255,79,216,.35);
  animation: signalPulse 1.4s infinite ease-in-out;
  vertical-align: middle;
}

@keyframes signalPulse{
  0%, 100% {
    opacity: .3;
    transform: scale(.95);
  }
  40% {
    opacity: 1;
    transform: scale(1.1);
  }
  60% {
    opacity: .7;
    transform: scale(1.0);
  }
}
