/* ---------- Opening: logo drops over closed curtains, curtains open onto the video ---------- */

.cz-hero { position: relative; overflow: hidden; }

.cz-stage {
	position: absolute;
	inset: 0;
	z-index: 6;
	cursor: pointer;
	/* Whole opening is 3.9s; then the stage gets out of the way. */
	animation: cz-stage-off 0s linear 3.9s forwards;
}
@keyframes cz-stage-off { to { visibility: hidden; pointer-events: none; } }

.cz-curtain {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 50.5%;
	/* Velvet folds: dark creases, lit ridges. */
	background:
		linear-gradient(180deg, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.45) 100%),
		repeating-linear-gradient(90deg, #4a0006 0, #7d0a14 2.2%, #b81d2a 4.4%, #d8323f 5.2%, #b81d2a 6%, #7d0a14 8.2%, #4a0006 10.4%);
	box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.55);
	will-change: transform;
}
.cz-curtain-l { left: 0; transform-origin: left center; animation: cz-open-l 1.5s cubic-bezier(0.65, 0, 0.25, 1) 2.2s forwards; }
.cz-curtain-r { right: 0; transform-origin: right center; animation: cz-open-r 1.5s cubic-bezier(0.65, 0, 0.25, 1) 2.2s forwards; }
@keyframes cz-open-l { 40% { transform: scaleX(0.72) skewY(1deg); } to { transform: translateX(-100%) scaleX(0.4); } }
@keyframes cz-open-r { 40% { transform: scaleX(0.72) skewY(-1deg); } to { transform: translateX(100%) scaleX(0.4); } }

/* Scalloped top drape with gold trim. */
.cz-valance {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 70px;
	background:
		radial-gradient(ellipse 50% 100% at 50% 0, #a3141f 98%, transparent 100%) 0 0 / 90px 70px repeat-x,
		linear-gradient(#5e0710, #5e0710) 0 0 / 100% 22px no-repeat;
	filter: drop-shadow(0 6px 6px rgba(0, 0, 0, 0.5));
	border-top: 6px solid #d9a93a;
	animation: cz-valance-up 0.9s ease-in 2.9s forwards;
}
@keyframes cz-valance-up { to { transform: translateY(-110%); } }

.cz-drop-logo {
	position: absolute;
	left: 50%;
	top: 40%;
	width: min(460px, 72%);
	height: auto;
	filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.6));
	transform: translate(-50%, -50%);
	animation:
		cz-logo-drop 1.1s cubic-bezier(0.2, 1.5, 0.4, 1) 0.15s both,
		cz-logo-out 0.7s ease-in 2.25s forwards;
}
@keyframes cz-logo-drop {
	from { transform: translate(-50%, -300%) rotate(-8deg); }
	to { transform: translate(-50%, -50%) rotate(0); }
}
@keyframes cz-logo-out { to { opacity: 0; transform: translate(-50%, -50%) scale(1.3); } }

/* Seen it this visit, clicked to skip, or motion turned off: no opening. */
.cz-intro-done .cz-stage { display: none; }

/* ---------- Sections animate in on scroll ---------- */

.cz-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s ease, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
	transition-delay: var(--cz-d, 0ms);
}
.wp-block-button.cz-reveal { transform: scale(0.82); }
.cz-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.cz-reveal { opacity: 1; transform: none; transition: none; }
}
