diff --git a/index.html b/index.html index 96ecbd3a45..29570b67aa 100644 --- a/index.html +++ b/index.html @@ -18,12 +18,19 @@ transition: opacity 0.5s ease-out; } - /* iOS safe area support */ + /* iOS safe area support, plus reserved space for Playwire's "flex" + ad unit (a top banner injected as body's first child). Its + height is mirrored into --flex-ad-height by the script near + the end of
, so the nav bar is pushed below it instead + of being covered. */ body { - padding-top: env(safe-area-inset-top); + padding-top: calc( + env(safe-area-inset-top) + var(--flex-ad-height, 0px) + ); padding-right: env(safe-area-inset-right); padding-bottom: env(safe-area-inset-bottom); padding-left: env(safe-area-inset-left); + transition: padding-top 0.3s ease; } /* Prevent Playwire bottom rail from affecting flex layout, @@ -33,6 +40,20 @@ z-index: 150 !important; } + /* Prevent Playwire's "flex" ad unit (top banner) from being + treated as a flex item in body's flex-row layout. It's + injected as body's first child; the ad creative itself is + already position:fixed, but the wrapping container Playwire + adds is not, so — like bottom_rail above — it must be taken + out of flow or it shifts/clips the rest of the page under + body's overflow-hidden. */ + [id^="pw-oop-flex"] { + position: fixed !important; + top: 0; + left: 0; + width: 100%; + } + /* Google Funding Choices CCPA link override */ .fc-dns-link, .fc-ccpa-root, @@ -463,6 +484,44 @@ }); + +