.overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.6);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 999;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    .overlay.show {
      opacity: 1;
      visibility: visible;
    }

    .banner-wrap {
      position: relative;
      width: min(420px, 92vw);
      overflow: hidden;
      border-radius: 20px;
      box-shadow: 0 10px 30px rgba(0,0,0,.35);
      background: #000;
      z-index: 1000;
      transform: scale(0.95);
      transition: transform 0.3s ease;
    }

    .overlay.show .banner-wrap {
      transform: scale(1);
    }

    .banner-img {
      display: block;
      width: 100%;
      height: auto;
      object-fit: cover;
    }

    .bottom-fade {
      position: absolute;
      left: 0; right: 0; bottom: 0;
      height: 35%;
      background: linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,0));
      pointer-events: none;
    }

    .cta-bar {
      position: absolute;
      left: var(--safe-gap);
      right: var(--safe-gap);
      bottom: var(--safe-gap);
      display: flex;
      gap: 12px;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
    }

    .btn {
      border: none;
      height: var(--btn-height);
      padding: 0 20px;
      border-radius: var(--btn-radius);
      font-size: var(--btn-font);
      font-weight: 700;
      cursor: pointer;
      transition: transform .05s ease, filter .2s ease, opacity .2s ease;
      white-space: nowrap;
    }

    .btn-primary {
      background: linear-gradient(180deg, #ffb14a, #ff6a00);
      color: #fff;
      box-shadow: 0 6px 20px rgba(255, 128, 0, .35);
    }

    .btn-secondary {
      background: rgba(255,255,255,.14);
      color: #fff;
      backdrop-filter: blur(6px);
      border: 1px solid rgba(255,255,255,.3);
    }

    .close-btn {
      position: absolute;
      top: 10px;
      right: 10px;
      background: rgba(0,0,0,0.5);
      border: none;
      color: #fff;
      font-size: 20px;
      width: 32px;
      height: 32px;
      border-radius: 50%;
      cursor: pointer;
      z-index: 1001;
    }