/* Additive controls preserve the accepted recipe's fluid width and placement. */
.ec-wide-header { display: none; }
.eca-enabled .ec-object:is([data-ec-variant="narrow"], [data-ec-variant="intermediate"]) { display: none; }
.eca-enabled .ec-group .ec-art .ec-object {
	transform: translate(var(--eca-active-x, var(--eca-x, 0px)), var(--eca-active-y, var(--eca-y, 0px)))
		rotate(calc(var(--ec-active-rotation, var(--ec-rotation, 0deg)) + var(--eca-active-rotation, var(--eca-rotation, 0deg))))
		scale(calc(var(--ec-scale, 1) * var(--eca-active-scale, var(--eca-scale, 1))))
		scaleX(var(--eca-active-mirror, var(--eca-mirror, 1)));
	opacity: var(--eca-active-opacity, var(--eca-opacity, 1));
	z-index: var(--eca-layer, 0);
}
/* Artwork keeps its content-relative geometry but shares the page paint layers. */
.eca-overflow .ec-opening { isolation: auto; }
.eca-overflow .ec-opening .ec-art { z-index: auto; }
.eca-overflow .ec-group .ec-art .ec-object { z-index: calc(3 + var(--eca-layer, 0)); }
.eca-overflow .site-frame { overflow: clip; }
.eca-overflow .site-footer { position: relative; z-index: 40; background: var(--ellery-paper); }
/* A per-image crop ends at the real footer, without reserving any layout space. */
.eca-enabled .ec-group .ec-art:has(.eca-footer-active) { clip-path: none; }
.eca-enabled .ec-art .eca-footer-clip {
	position: absolute; left: 0; width: 100%; margin: 0; padding: 0;
	/* Keep horizontal bleed in older Safari while cropping at the real footer. */
	overflow: visible; clip-path: inset(0 -100vw); pointer-events: none;
}
.eca-enabled .ec-group .ec-art .eca-footer-clip > .ec-object {
	/* Override the group's ID-scoped responsive recipe only in footer mode. */
	top: auto !important; bottom: 0; transform-origin: center bottom;
}
.eca-enabled .ec-art :is([data-ec-footer="1"], [data-ec-footer-intermediate="1"]):not(.eca-footer-ready) { visibility: hidden; }
/* These pilots retain the same header layering when mobile navigation takes over. */
@media (max-width: 48rem) {
	.eca-overflow.ellery-header-layers-ready .site-frame { isolation: isolate; }
	.eca-overflow.ellery-header-layers-ready .site-frame::before {
		content: ""; grid-area: 1 / 1; position: sticky; top: 0; z-index: -1;
		background: color-mix(in srgb, var(--ellery-paper) 68%, transparent); backdrop-filter: blur(8px);
		border-bottom: 1px solid var(--ellery-rule); pointer-events: none;
	}
	.eca-overflow.ellery-header-layers-ready .site-header { background: transparent; border-bottom-color: transparent; }
	.eca-overflow.ellery-header-layers-ready .site-header::before {
		content: ""; position: absolute; inset: 0 0 -1px; z-index: -1;
		background: color-mix(in srgb, var(--ellery-paper) 96%, #fff 4%);
		border-bottom: 1px solid var(--ellery-rule); opacity: var(--ellery-header-conceal, 0); pointer-events: none;
	}
	.eca-overflow .ellery-header-banner-underlay { display: block; grid-area: 1 / 1; align-self: start; position: sticky; top: 0; z-index: -1; pointer-events: none; }
	.eca-overflow .ellery-header-banner-underlay > .page-hero--sticky { width: 100%; max-width: none; margin: 0; }
	.eca-overflow.ellery-header-layers-ready .site-header > .page-hero--sticky { opacity: var(--ellery-header-conceal, 0); }
	.eca-overflow.ellery-header-layers-ready.has-mobile-navigation-open .site-header { background: var(--ellery-paper); }
}
@media (max-width: 48rem) and (prefers-reduced-motion: reduce) {
	.eca-overflow.ellery-header-layers-ready .site-header::before,
	.eca-overflow.ellery-header-layers-ready .site-header > .page-hero--sticky { opacity: 0; }
}
