/* Shared presentation for the extended collection. Base template styles stay in use. */
.demo-notice { position: relative; z-index: 3; padding: 12px 20px; text-align: center; font: 400 12px/1.5 var(--font-sans, var(--font-body, sans-serif)); letter-spacing: .04em; background: var(--bg-warm, #fff); color: var(--text-muted, #555); }
.demo-notice a { color: inherit; text-underline-offset: 3px; }
.demo-buy { position: fixed; bottom: max(22px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 9999; width: max-content; max-width: calc(100% - 32px); padding: 15px 26px; border: 1px solid var(--accent, #76945b); border-radius: 100px; background: var(--bg-warm, #fff8ec); color: var(--text-dark, #284333); box-shadow: 0 8px 32px #0002; font: 600 14px/1.4 var(--font-sans, var(--font-body, sans-serif)); text-align: center; text-decoration: none; }
.wedding-footer, .fun-footer, .vip-footer { padding-bottom: 130px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--accent, #76945b); outline-offset: 5px; }
.demo-static *, .demo-static *::before, .demo-static *::after { cursor: auto !important; animation: none !important; }
.demo-static .preloader, .demo-static .cursor, .demo-static .cursor-follower, .demo-static .tech-cursor, .demo-static .magic-cursor { display: none !important; }
.demo-static .reveal-text, .demo-static .st-reveal { transform: none; opacity: 1; }
.demo-static .img-reveal-mask { clip-path: none; }
@media (max-width: 600px) { .demo-notice { font-size: 11px; } }

/* Keep image bleed inside the arched masks throughout the parallax movement. */
.hero-image-mask .hero-img { position: relative; top: -15%; height: 140%; }
.dress-bg-wrap .dress-bg { position: relative; top: -20%; height: 150%; }
