/* Text-led fade geometry: dimensions inherit the actual responsive copy box. */
.story-bleed-layout[data-overlay-ink]{overflow:hidden}
.story-bleed-layout[data-overlay-resolved=black]{--overlay-ink:#000}.story-bleed-layout[data-overlay-resolved=white]{--overlay-ink:#fff}
html body.page-project-detail #project-story [data-overlay-resolved] :is(.story-copy,.story-text-frame){color:var(--overlay-ink)!important;mix-blend-mode:normal!important}
html body.page-project-detail #project-story .story-bleed-layout[data-overlay-ink]:not([data-overlay-ink=auto]) :is(h2,h3,p,span,a,strong,em,li,.story-copy__body,.story-eyebrow){color:inherit!important;text-shadow:none!important}
.story-bleed-layout[data-overlay-ink]::after{display:none!important}
.story-bleed-layout[data-overlay-ink] :is(.story-bleed-copy,.story-text-frame){z-index:3!important}
.story-bleed-layout[data-overlay-ink=white] :is(.story-copy,.story-text-frame),.story-bleed-layout[data-overlay-resolved=white] :is(.story-copy,.story-text-frame){color:#fff!important;mix-blend-mode:normal!important}
.story-bleed-layout[data-overlay-ink=black] :is(.story-copy,.story-text-frame),.story-bleed-layout[data-overlay-resolved=black] :is(.story-copy,.story-text-frame){color:#000!important;mix-blend-mode:normal!important}
.story-bleed-layout[data-overlay-ink=inverse]:not([data-overlay-resolved]) :is(.story-bleed-copy,.story-text-frame){color:#fff!important;mix-blend-mode:difference!important}
.story-bleed-layout[data-overlay-ink]:not([data-overlay-ink=auto]) :is(h2,h3,p,.story-copy__body,.story-eyebrow){color:inherit!important;text-shadow:none!important}
.story-bleed-layout[data-overlay-fade]:not([data-overlay-fade=none]) :is(.story-bleed-copy,.story-text-frame)::before{content:'';position:absolute;pointer-events:none;z-index:-1;inset:-2em;background:radial-gradient(ellipse,rgba(0,0,0,var(--overlay-fade-alpha,.55)) 30%,transparent 75%)}
.story-bleed-layout[data-overlay-fade=top] :is(.story-bleed-copy,.story-text-frame)::before{inset:-100vh -100vw -3em;background:linear-gradient(to bottom,rgba(0,0,0,var(--overlay-fade-alpha,.55)) calc(100% - 5em),transparent)}
.story-bleed-layout[data-overlay-fade=bottom] :is(.story-bleed-copy,.story-text-frame)::before{inset:-3em -100vw -100vh;background:linear-gradient(to top,rgba(0,0,0,var(--overlay-fade-alpha,.55)) calc(100% - 5em),transparent)}
.story-bleed-layout[data-overlay-fade=left] :is(.story-bleed-copy,.story-text-frame)::before{inset:-100vh -3em -100vh -100vw;background:linear-gradient(to right,rgba(0,0,0,var(--overlay-fade-alpha,.55)) calc(100% - 5em),transparent)}
.story-bleed-layout[data-overlay-fade=right] :is(.story-bleed-copy,.story-text-frame)::before{inset:-100vh -100vw -100vh -3em;background:linear-gradient(to left,rgba(0,0,0,var(--overlay-fade-alpha,.55)) calc(100% - 5em),transparent)}
.story-bleed-layout[data-overlay-fade=top_left] :is(.story-bleed-copy,.story-text-frame)::before{background:radial-gradient(ellipse at top left,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 85%)}
.story-bleed-layout[data-overlay-fade=top_right] :is(.story-bleed-copy,.story-text-frame)::before{background:radial-gradient(ellipse at top right,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 85%)}
.story-bleed-layout[data-overlay-fade=bottom_left] :is(.story-bleed-copy,.story-text-frame)::before{background:radial-gradient(ellipse at bottom left,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 85%)}
.story-bleed-layout[data-overlay-fade=bottom_right] :is(.story-bleed-copy,.story-text-frame)::before{background:radial-gradient(ellipse at bottom right,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 85%)}
/* A composition-level fade also works when the text itself is a scrollable frame. */
.story-bleed-layout[data-overlay-fade] :is(.story-bleed-copy,.story-text-frame)::before{display:none!important}
.story-bleed-layout[data-overlay-fade]::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse var(--overlay-copy-w,50vw) var(--overlay-copy-h,30vh) at var(--overlay-copy-cx,50%) var(--overlay-copy-cy,80%),rgba(0,0,0,var(--overlay-fade-alpha,.55)) 30%,transparent 100%)}
.story-bleed-layout[data-overlay-fade=none]::before{display:none!important}
.story-bleed-layout[data-overlay-fade=top]::before{background:linear-gradient(to bottom,rgba(0,0,0,var(--overlay-fade-alpha,.55)) max(0px,calc(var(--overlay-copy-bottom,50vh) - 20px)),transparent calc(var(--overlay-copy-bottom,50vh) + 64px))}
.story-bleed-layout[data-overlay-fade=bottom]::before{background:linear-gradient(to top,rgba(0,0,0,var(--overlay-fade-alpha,.55)) max(0px,calc(100% - var(--overlay-copy-y,50vh) - 20px)),transparent calc(100% - var(--overlay-copy-y,50vh) + 64px))}
.story-bleed-layout[data-overlay-fade=left]::before{background:linear-gradient(to right,rgba(0,0,0,var(--overlay-fade-alpha,.55)) max(0px,calc(var(--overlay-copy-right,50vw) - 20px)),transparent calc(var(--overlay-copy-right,50vw) + 64px))}
.story-bleed-layout[data-overlay-fade=right]::before{background:linear-gradient(to left,rgba(0,0,0,var(--overlay-fade-alpha,.55)) max(0px,calc(100% - var(--overlay-copy-x,50vw) - 20px)),transparent calc(100% - var(--overlay-copy-x,50vw) + 64px))}
.story-bleed-layout[data-overlay-fade=top_left]::before{background:radial-gradient(ellipse farthest-side at top left,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 100%);right:max(0px,calc(100% - var(--overlay-copy-right,50%) - 80px));bottom:max(0px,calc(100% - var(--overlay-copy-bottom,50%) - 80px))}
.story-bleed-layout[data-overlay-fade=top_right]::before{background:radial-gradient(ellipse farthest-side at top right,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 100%);left:max(0px,calc(var(--overlay-copy-x,50%) - 80px));bottom:max(0px,calc(100% - var(--overlay-copy-bottom,50%) - 80px))}
.story-bleed-layout[data-overlay-fade=bottom_left]::before{background:radial-gradient(ellipse farthest-side at bottom left,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 100%);right:max(0px,calc(100% - var(--overlay-copy-right,50%) - 80px));top:max(0px,calc(var(--overlay-copy-y,50%) - 80px))}
.story-bleed-layout[data-overlay-fade=bottom_right]::before{background:radial-gradient(ellipse farthest-side at bottom right,rgba(0,0,0,var(--overlay-fade-alpha,.55)),transparent 100%);left:max(0px,calc(var(--overlay-copy-x,50%) - 80px));top:max(0px,calc(var(--overlay-copy-y,50%) - 80px))}
