/* One page-wide coordinate system, only on audited solid-background surfaces. */
.plain-grid-host{position:relative;isolation:isolate}
.plain-grid-plane{--plain-grid-ink:rgba(255,255,255,.055);position:absolute;top:0;bottom:calc(-1 * var(--plain-grid-gap,0px));left:var(--plain-grid-left,0px);width:var(--plain-grid-width,100%);z-index:-1;pointer-events:none;user-select:none;overflow:hidden;visibility:hidden;background-image:linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink)),linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink)),linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink)),linear-gradient(to bottom,var(--plain-grid-ink) 1px,transparent 1px);background-size:1px 100%,1px 100%,1px 100%,100% 480px;background-position:25% 0,50% 0,75% 0,0 calc(var(--plain-grid-drift,0px) - var(--plain-grid-top,0px));background-repeat:no-repeat,no-repeat,no-repeat,repeat-y}
.plain-grid-plane::after{content:"";position:absolute;inset:0;background-image:linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px),linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px),linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px);background-size:4px 480px;background-position:25% calc(var(--plain-grid-drift,0px) - var(--plain-grid-top,0px) - 1.5px),50% calc(var(--plain-grid-drift,0px) - var(--plain-grid-top,0px) - 1.5px),75% calc(var(--plain-grid-drift,0px) - var(--plain-grid-top,0px) - 1.5px);background-repeat:repeat-y}
.plain-grid-ready>.plain-grid-plane{visibility:visible}
.plain-grid-ready>.services-brand-grid,.plain-grid-ready>.founder-section__grid{display:none}
.agency-grid-section.plain-grid-ready{background-image:none}
.services-section.has-service-backdrop>.plain-grid-plane{visibility:hidden}
@media(prefers-reduced-motion:reduce){.plain-grid-plane{--plain-grid-drift:0px}}
@media(forced-colors:active){.plain-grid-plane{display:none}}

/* This caption is a photographic overlay on desktop, but a plain panel on phones. */
.complex-section__content.plain-grid-host{position:absolute}
.complex-section__content>.plain-grid-plane{display:none}
@media(max-width:900px){.complex-section__content.plain-grid-host{position:relative}.complex-section__content>.plain-grid-plane{display:block}}
/* Homepage branding keeps its own nested legacy grid; replace it as well. */
.services-section.plain-grid-ready .services-brand-grid{display:none}
@media(forced-colors:active){.complex-section__content>.plain-grid-plane{display:none}}

/* Composited periodic drift: same grid coordinates, no animated background-position. */
.plain-grid-plane{background-image:linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink)),linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink)),linear-gradient(var(--plain-grid-ink),var(--plain-grid-ink));background-size:1px 100%,1px 100%,1px 100%;background-position:25% 0,50% 0,75% 0;background-repeat:no-repeat}
.plain-grid-plane::after{top:-480px;bottom:-480px;background-image:linear-gradient(to bottom,var(--plain-grid-ink) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px),linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px),linear-gradient(to bottom,rgba(255,255,255,.14) 4px,transparent 4px);background-size:100% 480px,4px 480px,4px 480px,4px 480px;background-position:0 calc(-1 * var(--plain-grid-top,0px)),25% calc(-1 * var(--plain-grid-top,0px) - 1.5px),50% calc(-1 * var(--plain-grid-top,0px) - 1.5px),75% calc(-1 * var(--plain-grid-top,0px) - 1.5px);transform:translateY(var(--plain-grid-phase,0px));will-change:auto}
@media(prefers-reduced-motion:reduce){.plain-grid-plane::after{transform:none;will-change:auto}}

/* Only nearby grids retain compositor layers; background tabs release them. */
.plain-grid-plane.is-grid-active::after{will-change:transform}
@media(prefers-reduced-motion:reduce){.plain-grid-plane.is-grid-active::after{will-change:auto}}
