/* =========================================================
   Bottom promo bar — landscape media only, pinned to viewport
   Renamed away from "ad-*" naming on purpose: generic ad-blocker
   filter lists match class/id/file names containing "ad", and will
   silently strip first-party content that uses them.
   ========================================================= */
.promo-banner{
  position:fixed;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:200;
  width:100%;
  max-width:980px;
  margin:0 auto .6rem;
  border-radius:14px;
  overflow:hidden;
  background:var(--surface, #0f192e);
  border:1px solid var(--surface-border, rgba(140,170,255,0.14));
  box-shadow:0 18px 44px -14px rgba(0,0,0,0.55);
}
.promo-banner[hidden],
.promo-banner.is-empty,
.promo-banner.is-dismissed{ display:none; }

/* fixed, short, wide bar — landscape media only, never cropped tall */
.promo-banner-frame{
  position:relative;
  width:100%;
  height:clamp(64px, 11vw, 96px);
  background:linear-gradient(160deg, var(--surface,#0f192e), var(--surface-2,#142140));
  display:flex;
  align-items:center;
  justify-content:center;
}
@media (max-width:560px){
  .promo-banner{ max-width:100%; border-radius:0; margin-bottom:0; }
  .promo-banner-frame{ height:64px; }
}
@media (min-width:1600px){
  .promo-banner-frame{ height:104px; }
}

.promo-banner-frame img,
.promo-banner-frame video{
  width:100%;
  height:100%;
  object-fit:cover; /* fill the bar edge-to-edge (crops overflow instead of leaving empty space) */
  object-position:center;
  display:block;
}

.promo-banner-link{ position:absolute; inset:0; display:block; }

.promo-banner-tag{
  position:absolute; top:.4rem; left:.55rem; z-index:2;
  font-family:var(--f-mono,'JetBrains Mono',monospace);
  font-size:.6rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-2,#8996b8);
  background:rgba(6,10,22,0.55);
  padding:.2em .55em;
  border-radius:999px;
  pointer-events:none;
}

.promo-banner-close{
  position:absolute; top:.35rem; right:.4rem; z-index:3;
  width:26px; height:26px; border-radius:50%;
  background:rgba(6,10,22,0.6); border:1px solid rgba(255,255,255,0.16);
  color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:.85rem; line-height:1;
}
.promo-banner-close:hover{ background:rgba(6,10,22,0.85); }

.promo-banner-mute{
  position:absolute; bottom:.4rem; right:.4rem; z-index:2;
  width:26px; height:26px; border-radius:50%;
  background:rgba(6,10,22,0.6); border:1px solid rgba(255,255,255,0.16);
  color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:.8rem;
}

/* keep page content from being permanently hidden behind the fixed bar */
body.has-promo-banner{ padding-bottom:clamp(72px, 12vw, 116px); }
