/* ==========================================================================
   Core Web Vitals layer (loaded after theme.css). CSS only, no JS.
   - CLS: reserved height for ad slots, metric-matched fallback fonts
   - INP/LCP: content-visibility for blocks below the first screen
   ========================================================================== */

/* Ad slots: space is reserved before the ad network fills them; unfilled AdSense slots collapse. */
.home-ads .ad-slot{min-height:250px}
.ad-slot--story-top{min-height:250px}
.widget--ad{min-height:250px}
.ad-slot:has(ins.adsbygoogle[data-ad-status="unfilled"]){display:none}
ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}

/* Below the first screen: skip rendering work until the block is near the viewport. */
.site-footer{content-visibility:auto;contain-intrinsic-size:auto 28rem}
.related-box{content-visibility:auto;contain-intrinsic-size:auto 40rem}
.home-block~.home-block{content-visibility:auto;contain-intrinsic-size:auto 36rem}

/* Fallback faces matched to the web fonts (size-adjust and vertical metrics from the font files): no jump when the font swaps in. */
@font-face{font-family:'Onest Fallback';src:local('Arial'),local('Liberation Sans'),local('Helvetica');size-adjust:106.2%;ascent-override:91.3%;descent-override:28.7%;line-gap-override:0%}
@font-face{font-family:'Unbounded Fallback';src:local('Arial'),local('Liberation Sans'),local('Helvetica');size-adjust:136.4%;ascent-override:72.9%;descent-override:18%;line-gap-override:0%}
:root{
  --font-display:'Unbounded','Unbounded Fallback','Onest',system-ui,sans-serif;
  --font-body:'Onest','Onest Fallback',system-ui,'Segoe UI',Roboto,sans-serif;
}
