.opening { overflow: hidden; }
.opening-curtain { position: absolute; top: 0; bottom: 0; z-index: 4; width: 50%; overflow: hidden; visibility: hidden; opacity: 0; background: #241917; transition: transform 2.4s cubic-bezier(.65,0,.2,1), opacity .12s ease, visibility 0s linear .12s; will-change: transform; }
.opening-curtain img { display: block; width: 100%; height: 100%; object-fit: cover; filter: contrast(1.04) brightness(.78) saturate(.92); }
.curtain-left img { object-position: 78% center; }
.opening-curtain::after { content: ""; position: absolute; inset: 0; width: auto; background: linear-gradient(90deg,rgba(10,7,6,.45),rgba(16,10,9,.1) 52%,rgba(10,7,6,.45)); box-shadow: inset 0 0 48px rgba(0,0,0,.36); }
.curtain-left { left: 0; }.curtain-right { right: 0; }
.curtain-left::before,.curtain-right::before { content: ""; position: absolute; z-index: 1; top: 0; bottom: 0; width: 1px; background: linear-gradient(180deg,transparent,rgba(255,247,229,.8),transparent); box-shadow: 0 0 14px rgba(255,247,229,.55); }
.curtain-left::before { right: 0; }.curtain-right::before { left: 0; }
.opening-content { z-index: 2; }.sparkles,.floaters { z-index: 1; }
.opening.is-open .opening-curtain { visibility: visible; opacity: 1; transition-delay: 0s; }
.opening.is-open .curtain-left { transform: translateX(-100%); }.opening.is-open .curtain-right { transform: translateX(100%); }
.opening.is-open { transition: opacity .25s ease 2.35s, visibility 0s linear 2.6s; }
@media (prefers-reduced-motion: reduce) { .opening-curtain { transition-duration: .01ms; }.opening.is-open { transition-delay: 0s; } }
