/* Enklawa — the measured containers (stage 0).
 *
 * Belongs to the PORTAL, not to the panel: no @import of css/tokens.css and no
 * dependency on css/site.css, so it can be dropped into the old 2007 site as it
 * stands.
 *
 * Selectors go through [data-unit] on purpose. A class called .ad-slot or
 * .banner would be hidden by cosmetic filter rules, taking whatever it carries
 * with it for exactly the readers stage 0 exists to count
 * (docs/ourprecious/spec.md §3).
 *
 * THIS FILE USED TO RESERVE SPACE. It does not any more — see the measurement
 * at the bottom before adding a min-height back.
 */

/*
 * WHAT IS DELIBERATELY NOT HERE: a generic `display` rule. A [data-unit] may
 * sit on an element the portal keeps hidden on purpose — the GOG creative is
 * rendered into every page and revealed only to readers with an adblocker. A
 * generic display rule has the same specificity as the class rule that hides it
 * and, loading later, would win: the affiliate banner would appear for
 * everybody, on every pageview. A measurement stylesheet must not be able to do
 * that.
 */

/* <ins> is inline by default, so the network's own tag is the one place that
   needs a display rule. Scoped to the element type rather than to [data-unit]
   so it can never reach a hidden container. */
ins[data-unit] {
  display: block;
}

/* Print: an ad slot is meaningless on paper and would leave a blank
   quarter-page in the middle of an article. */
@media print {
  [data-unit] {
    display: none;
  }
}

/*
 * ---------------------------------------------------------------------------
 * WHY THERE IS NO min-height HERE — measured on production 2026-09-04,
 * the day this file first shipped. Read this before putting one back.
 *
 * OptAd360 injects its own stylesheet at runtime, keyed on data-slot:
 *
 *   ins.staticpubads89354[data-slot="1"] { min-height: 325px }   slot 4 → 325px
 *   ins.staticpubads89354[data-slot="2"] { min-height: 225px }   slot 5 → 325px
 *   ins.staticpubads89354[data-slot="3"] { min-height: 225px }   slot 6 → 275px
 *                                                                slot 7 → 625px
 *
 * That selector is (0,2,1). Ours was (0,1,0). So the reservation in this file
 * had exactly two effects, and both were bad:
 *
 *   NO ADBLOCKER — their sheet loads and wins. Ours never applied. Worse, ours
 *   was TALLER than theirs (300 vs 225), so during the window before their
 *   sheet arrived the box was reserved at 300px and then shrank to 225px: a
 *   layout shift caused by the file meant to prevent one.
 *
 *   WITH AN ADBLOCKER — their script and sheet are blocked together, so ours
 *   became the only rule in play, and it reserved 300px for an <ins> that can
 *   never be filled. The reader saw a 300px hole, and then the GOG creative
 *   below it. Reported with a screenshot on 2026-09-04.
 *
 * Removing it restores what readers saw before stage 0: no reservation on the
 * network tag, our own creative sitting directly under the text.
 *
 * WHAT WE GIVE UP, HONESTLY: if OptAd360 ever stops shipping that stylesheet,
 * nothing reserves anything. Lighthouse mobile measured CLS 0.02 with their
 * sheet in place, so today they are doing the job.
 *
 * WHAT IS STILL BROKEN, AND IS A STAGE 1 JOB: the creative revealed to
 * adblocker readers goes from display:none to visible, which shifts the text
 * below it no matter what min-height sits on the <ins>. That shift predates
 * stage 0 (makemunne.js has always worked this way) and stage 0 will measure
 * it — filled minus seen on the -own keys. Fixing it means reserving on the
 * CONTAINER rather than on the tag, and doing that without naming
 * .cashflow-* — which is a design problem, not a one-line patch.
 *
 * Creative dimensions, for whoever solves it: banner 750x200, square 300x250.
 * The <picture> breakpoint is 750px everywhere except Subsite.Index.php, which
 * uses 1000px.
 * ---------------------------------------------------------------------------
 */
