/* GameRun rebuild compensation layer.
   Live Squarespace JS computes some styles per viewport; the captured DOM froze
   them at 1440px. These rules restore viewport-relative behavior. */

/* imageFluid blocks: container height comes from the fluid-engine grid cell,
   not the frozen pixel value measured at capture time. The chain must pass
   100% down through the block's padding box. Fill-mode roots take the full
   cell; contain-fit roots size from the image's native aspect ratio (their
   frozen inline vars are 1440-computed) — gr-runtime recomputes the exact
   per-viewport values for data-is-image-stretched="false" roots. */
.fe-block .sqs-block-website-component.sqs-block-image { height: 100%; box-sizing: border-box; }
.fe-block .sqs-block-website-component.sqs-block-image > .sqs-block-content { height: 100%; }
.fluid-image-component-root:not(.image-component-container-fit) {
  --image-component-container-height: 100% !important;
  height: 100%;
}
.fluid-image-component-root.image-component-container-fit {
  --image-component-container-height: unset !important;
  height: 100%;
}
.fluid-image-component-root.image-component-container-fit .fluid-image-container {
  height: auto !important;
  aspect-ratio: var(--image-component-native-aspect-ratio);
}

/* shape blocks: drawn by gr-runtime from data attributes (their visitor.js
   is not loadable standalone); the captured svg path is degenerate. */
.sqs-shape-block-container[data-gr-shape] svg.sqs-shape { display: none; }

/* in-view image animations (Squarespace animation engine equivalent) */
.gr-anim [data-animation-role="image"] { opacity: 0; }
.gr-anim [data-animation-role="image"].gr-anim-in { opacity: 1; transition: opacity 0.9s ease; }

/* classic video blocks: poster img geometry was frozen at 1440 by platform JS */
.sqs-video-wrapper .sqs-video-overlay { opacity: 1; }
.sqs-video-wrapper .sqs-video-overlay img {
  position: absolute !important;
  left: 0 !important; top: 0 !important;
  width: 100% !important; height: 100% !important;
  object-fit: cover;
}

/* live has a 36px horizontal overflow on blog post pages (item-pagination
   icon pokes past the viewport); clip it — zero visible-pixel change. */
html, body { overflow-x: clip; }

/* Layout immunity: body is display:flex (live); siteWrapper must never be
   squeezed by stray third-party body-level elements (e.g. a chat widget
   that injects DOM before its own stylesheet loads). Live computes 100%. */
#siteWrapper { width: 100%; flex-shrink: 0; }

/* Audit Batch 1, change 5: on narrow viewports the prev/next article links
   at the foot of blog posts render side by side and their titles overlap
   into unreadable text (live does the same). Stack them full-width instead,
   keeping both chevrons visible and the links functional. */
@media (max-width: 600px) {
  .item-pagination.item-pagination--prev-next {
    flex-direction: column;
    gap: 18px;
  }
  .item-pagination--prev-next .item-pagination-link {
    width: 100%;
    max-width: 100%;
  }
  .item-pagination--prev-next .pagination-title-wrapper,
  .item-pagination--prev-next .item-pagination-title {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
  }
}

/* ---- Audit changes 27-30 (Sept 2026 batch) ---- */
/* Change 28 (baseball hero, phone): the paragraph block is authored to start
   inside the heading's last grid row, so "AI" and "Built for players..."
   collide; the dark card also sits closer than the text line pitch. Push the
   paragraph below the heading and open up the card gap. Same defect exists on
   the live capture; fixed by audit request. */
@media (max-width: 767px) {
  .fe-block-3dfb6e8d830406edca5c { margin-top: 34px; margin-bottom: 18px; }
}
/* Change 30b (affiliate-program hero, phone): heading line 3 overlaps the
   paragraph, the paragraph runs into the first button, and the three buttons
   nearly touch. All shared grid rows in the authored mobile layout. */
@media (max-width: 767px) {
  .fe-block-9666bd3ffd46ca66ad25 { margin-top: 41px; margin-bottom: 62px; }
  .fe-block-f7969bbe41153e7168b0 { margin-top: 5px; }
  .fe-block-f2986af1f81b160dab85 { margin-top: 5px; }
}
