 
:root {
  /* Layout */
  --ad-maxw: 1240px;
  --ad-pad:  40px;

  /* Color */
  --ad-bg:         #ffffff;
  --ad-bg-elev:    #f5f7fa;
  --ad-ink:        #101b2b;
  --ad-ink-soft:   #4D5965;
  --ad-ink-mute:   #5E6B78;
  --ad-rule-soft:  #e2e7ee;
  --ad-rule-input: #7E8C9A;

  /* Type */
  --ad-font-mono:  "IBM Plex Mono", ui-monospace, monospace;
  --ad-font-serif: "Source Serif 4", Georgia, serif;
}

.wrap { max-width: var(--ad-maxw); margin: 0 auto; padding: 0 var(--ad-pad); }

/* ============================================================
   AD SLOTS — house / programmatic placeholders
   ============================================================ */
  .ad-row { padding: 0; }
  .ad-slot {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    width: 100%; margin: 10px auto; text-align: center;
  }
  .ad-inline { margin: 24px auto; }

  .ad-slot.ad--billboard {
    margin-block: 0; padding-block: 16px;
  }

  .ad-row--end .ad-slot,
  .ad-slot.ad-row--end,
  .post-footer + .ad-row .ad-slot,
  .post-footer + .ad-slot {
    border-top: 1px solid var(--ad-rule-soft);
    margin-top: 0; padding-top: 28px;
  }

  .ad-slot-label {
    font-family: var(--ad-font-mono); font-size: 10px; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--ad-ink-mute);
  }

  .ad-fill {
    width: 100%;
    display: flex; align-items: center; justify-content: center;
    min-height: 90px;
    background:
      repeating-linear-gradient(45deg, color-mix(in oklab, var(--ad-ink) 4%, transparent) 0 1px, transparent 1px 9px),
      var(--ad-bg-elev);
    border: 1px dashed var(--ad-rule-input);
    color: var(--ad-ink-mute);
    font-family: var(--ad-font-mono); font-size: 12px; letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .ad--leaderboard .ad-fill { max-width: 970px; min-height: 90px; }
  .ad--billboard  .ad-fill { max-width: 970px; min-height: 250px; }
  .ad--rect       .ad-fill { max-width: 300px; min-height: 250px; }
  .ad--listband   .ad-fill { max-width: 728px; min-height: 90px; }
  @media (max-width: 900px) {
    .ad--billboard .ad-fill { max-width: 728px; min-height: 90px; }
  }
  @media (max-width: 600px) {
    .ad--leaderboard .ad-fill { min-height: 100px; }
    .ad--billboard  .ad-fill { max-width: 320px; min-height: 250px; }
    .ad--listband   .ad-fill { max-width: 300px; min-height: 250px; }
  }
