/* Van Sarovar: the painting stays visible; the central mist holds the copy. */
.scene[data-theme=van-sarovar]:after{background:linear-gradient(transparent 7%,#e6eadb16 18%,#e6eadb10 43%,transparent 53%)}
.scene[data-theme=van-sarovar].scene--night:after{background:linear-gradient(transparent,#14222c1c 30%,transparent 55%)}
.scene[data-theme=van-sarovar] .copy{left:16%;width:68%;top:10.5%;text-shadow:0 1px 2px #f1ecd83d}
.scene[data-theme=van-sarovar] .eyebrow{font-size:calc(1.9 * var(--u));letter-spacing:.16em;text-wrap:balance}
.scene[data-theme=van-sarovar] .couple-names{font-size:calc(9.5 * var(--u));line-height:1.2}
.scene[data-theme=van-sarovar] .location{font-size:calc(4 * var(--u))}
.scene[data-theme=van-sarovar].event .copy{top:11%}
.scene[data-theme=van-sarovar].event .script{font-size:calc(10 * var(--u));line-height:1.4;text-wrap:balance}
.scene[data-theme=van-sarovar] .event-date{font-size:calc(2.6 * var(--u));letter-spacing:.035em}
.scene[data-theme=van-sarovar] .event-time{font-size:calc(6.5 * var(--u))}
.scene[data-theme=van-sarovar] .event-note{white-space:pre-line;font-size:calc(3.45 * var(--u));line-height:1.5;text-wrap:balance}
.scene[data-theme=van-sarovar].scene--night{color:#f9e8c7;--ink:#f9e8c7;--accent:#e6c59a}
.scene[data-theme=van-sarovar].scene--night .copy{text-shadow:0 1px 3px #13222d99}
.scene[data-theme=van-sarovar][data-scene=family] .copy{top:11%}
.scene[data-theme=van-sarovar][data-scene=family] .script{font-size:calc(8.4 * var(--u))}
.scene[data-theme=van-sarovar] .family-block h3{font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.05em;font-size:calc(5.6 * var(--u))}
.scene[data-theme=van-sarovar][data-scene=closing] .copy{top:11.5%;left:23%;width:54%;color:#263c2c;text-shadow:0 1px 2px #f5f2dc,0 0 9px #f5f2dcd9}
.scene[data-theme=van-sarovar][data-scene=closing] .script{font-size:calc(9.1 * var(--u));line-height:1.4;color:#80502f;white-space:nowrap;margin-left:-9%;margin-right:-9%}
.scene[data-theme=van-sarovar] .closing-copy{font-size:calc(4.25 * var(--u));font-weight:600;line-height:1.42;text-wrap:balance}
.scene[data-theme=van-sarovar] .families{font-size:calc(4.1 * var(--u));font-weight:600;letter-spacing:.025em;text-wrap:balance}
.scene[data-theme=van-sarovar] .pendant{width:12%;height:12%;top:3%;right:2%}
.scene[data-theme=van-sarovar] .pendant-left{left:2%}
.scene[data-theme=van-sarovar] .actor{left:28%;width:44%;height:31%;bottom:16%;filter:drop-shadow(0 2px 2px #2f382433)}
.scene[data-theme=van-sarovar][data-scene=cover] .actor{left:29%;width:42%;height:29%;bottom:14%}
.scene[data-theme=van-sarovar][data-scene=closing] .actor{left:30%;width:40%;height:28%;bottom:19%}
.scene[data-theme=van-sarovar] .prop-left{left:3%;width:17%;height:17%;bottom:16%}
.scene[data-theme=van-sarovar] .prop-right{right:3%;width:17%;height:17%;bottom:16%}
.scene[data-theme=van-sarovar][data-effect=haldi] .actor{width:58%;left:21%;height:27%;bottom:16%}
.scene[data-theme=van-sarovar].has-mehendi-hands .actor{left:44%;width:47%;height:27%;bottom:16%}
.scene[data-theme=van-sarovar] .mehendi-hands{left:11%;width:25%;height:22%;bottom:17%;background:none}
.scene[data-theme=van-sarovar][data-scene=family] .lotus-opening{left:37%;width:26%;height:18%;bottom:28%}
.scene[data-theme=van-sarovar][data-scene=family] .prop-left,.scene[data-theme=van-sarovar][data-scene=family] .prop-right{bottom:18%;width:18%;height:21%}
.forest-vow-flowers{opacity:1;transform:none;width:48%;left:26%;height:11%;bottom:46%;z-index:4}
.scene[data-theme=van-sarovar][data-effect=forest-vows] .actor{width:40%;left:30%;height:29%;bottom:15%}
.forest-vow-ring{position:absolute;left:27%;width:46%;height:4%;bottom:14%;border:1px solid #e7c388;border-radius:50%;opacity:0;pointer-events:none;z-index:7}
.forest-mist{position:absolute;left:-10%;width:120%;height:15%;bottom:34%;z-index:2;pointer-events:none;opacity:.3;background:radial-gradient(ellipse,#eef4e5a0,transparent 70%);animation:forest-mist-drift 13s ease-in-out infinite}
.forest-firefly{position:absolute;width:calc(1.15 * var(--u));height:calc(1.15 * var(--u));border-radius:50%;background:#fff4b6;box-shadow:0 0 calc(2 * var(--u)) calc(.6 * var(--u)) #ffdc8899,0 0 calc(4 * var(--u)) #eac86688;z-index:8;pointer-events:none;opacity:0;animation:forest-mote 14s ease-in-out infinite}
.scene[data-theme=van-sarovar][data-scene=family] .lotus-opening>.sprite{animation:forest-lotus-breathe 6s ease-in-out infinite;transform-origin:center bottom}
.scene[data-theme=van-sarovar].is-acting .lotus-opening>.sprite{animation:none}
.scene[hidden] .forest-mist,.scene[hidden] .forest-firefly{animation-play-state:paused}
@keyframes forest-mote{0%,100%{opacity:.18;transform:translate(0,0) scale(.75)}20%,65%{opacity:1;transform:translate(calc(var(--drift) * .4),-2.5cqw) scale(1)}85%{opacity:.35;transform:translate(var(--drift),-6cqw) scale(.8)}}
@keyframes forest-mist-drift{0%,100%{transform:translateX(-3%);opacity:.2}50%{transform:translateX(3%);opacity:.4}}
@keyframes forest-lotus-breathe{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.08);transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.forest-firefly{opacity:.3}.forest-mist{opacity:.2}}

.forest-water-glint{position:absolute;left:25%;width:50%;height:2%;bottom:27%;z-index:3;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#ebefe94d 4px,transparent 6px);opacity:.2;animation:forest-water 8s ease-in-out infinite}
.scene[hidden] .forest-water-glint{animation-play-state:paused}
@keyframes forest-water{0%,100%{transform:scaleX(.9);opacity:.12}50%{transform:scaleX(1.04);opacity:.3}}
/* Each ritual has a resting gesture as well as its larger tap response. */
.scene[data-theme=van-sarovar][data-effect=haldi]:not(.is-acting) .prop-left>.sprite{animation:forest-bowl-rock 6.2s ease-in-out infinite;transform-origin:center bottom}
.scene[data-theme=van-sarovar]:not(.is-acting) .mehendi-hands>.sprite{animation:forest-hands-rest 5.8s ease-in-out infinite;transform-origin:center bottom}
.scene[data-theme=van-sarovar]:not(.is-acting) .forest-vow-flowers>.sprite{animation:forest-flower-sway 7s ease-in-out infinite;transform-origin:center top}
@keyframes forest-bowl-rock{0%,100%{transform:rotate(-1.2deg);filter:brightness(1)}50%{transform:rotate(1.2deg);filter:brightness(1.08)}}
@keyframes forest-hands-rest{0%,100%{transform:rotate(-1deg) scale(1)}50%{transform:rotate(1deg) scale(1.018)}}
@keyframes forest-flower-sway{0%,100%{transform:rotate(-1.3deg)}50%{transform:rotate(1.3deg)}}

/* Soft forest mist clears foliage behind the closing words without a panel edge. */
.scene[data-theme=van-sarovar][data-scene=closing]:after{background:radial-gradient(ellipse 36% 22% at 50% 25%,#ecf0e4c9 0%,#ecf0e466 68%,transparent 100%)}

/* Hyperiux GlowingText arrival, adapted to the invitation's connected lettering.
   Keep the settled ink fully opaque so the painting never reduces readability. */
.scene[data-theme=van-sarovar] .copy.glow-reveal{--title-glow-soft:#f4d4a680;--title-glow-hard:#fceac9e6}
.scene[data-theme=van-sarovar].scene--night .copy.glow-reveal{--title-glow-soft:#ffdc9480;--title-glow-hard:#ffeac6e6}
.scene[data-theme=van-sarovar] .copy.glow-reveal.text-writing>.ink-block{animation:none}
.scene[data-theme=van-sarovar] .copy.glow-reveal.text-writing .ink-g{display:inline;animation:forest-title-glow 500ms ease-out calc(var(--text-delay,200ms) + var(--letter,0)*45ms) both}
@keyframes forest-title-glow{
 0%{opacity:0;text-shadow:none}
 55%{opacity:1;text-shadow:0 0 7px var(--title-glow-hard),0 0 18px var(--title-glow-soft),0 0 34px var(--title-glow-soft)}
 100%{opacity:1;text-shadow:inherit}
}
@media(prefers-reduced-motion:reduce){.scene[data-theme=van-sarovar] .copy.glow-reveal.text-writing .ink-g{animation:none;opacity:1}}

/* Family words sit in the central clearing, with gently diffused daylight. */
.scene[data-theme=van-sarovar][data-scene=family] .copy{left:21%;width:58%;top:10%;color:#233b2c;text-shadow:0 1px 2px #f4f1de,0 0 8px #f4f1ded9}
.scene[data-theme=van-sarovar][data-scene=family] .script{color:#80502f;font-size:calc(7.5 * var(--u));line-height:1.4;text-wrap:balance}
.scene[data-theme=van-sarovar][data-scene=family] .family-copy{font-size:calc(3.8 * var(--u));font-weight:600;text-wrap:balance}
.scene[data-theme=van-sarovar][data-scene=family] .family-block p{font-size:calc(3.85 * var(--u));font-weight:600;text-wrap:balance}
.scene[data-theme=van-sarovar][data-scene=family] .family-block h3{font-weight:600}
.scene[data-theme=van-sarovar][data-scene=family]:after{background:radial-gradient(ellipse 39% 28% at 50% 27%,#ecf0e4e0 0%,#ecf0e488 65%,transparent 100%)}
.forest-canopy{position:absolute;inset:0;z-index:2;pointer-events:none;transform-origin:50% 5%;animation:forest-leaf-breeze 10s ease-in-out infinite;will-change:transform}
.forest-canopy-left{mask-image:linear-gradient(90deg,#000 0%,#000 10%,transparent 29%);clip-path:polygon(0 0,31% 0,24% 69%,0 76%)}
.forest-canopy-right{mask-image:linear-gradient(270deg,#000 0%,#000 10%,transparent 29%);clip-path:polygon(70% 0,100% 0,100% 76%,77% 69%);animation-delay:-4s;animation-direction:reverse}
@keyframes forest-leaf-breeze{0%,100%{transform:rotate(-.22deg) translateX(-.12%)}50%{transform:rotate(.22deg) translateX(.12%)}}
.scene[data-theme=van-sarovar] .pendant .sprite{animation:forest-lamp-flicker 4.7s ease-in-out infinite}
.forest-lantern-glow{position:absolute;left:23%;top:30%;width:54%;height:38%;pointer-events:none;z-index:2;background:radial-gradient(ellipse,#ffe49a77,transparent 70%);mix-blend-mode:screen;animation:forest-lamp-flicker 3.7s ease-in-out infinite}
@keyframes forest-lamp-flicker{0%,100%{filter:brightness(1);opacity:.92}18%{filter:brightness(1.12);opacity:1}23%{filter:brightness(.95);opacity:.88}29%,65%{filter:brightness(1.08);opacity:1}72%{filter:brightness(.98);opacity:.93}}
.forest-bird{position:absolute;width:10%;height:6%;pointer-events:none;z-index:5;opacity:0;filter:drop-shadow(0 1px 1px #24362b33)}
.forest-bird .sprite{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;animation:dove-frame-up .8s linear infinite}
.forest-bird .dove-wings-down{animation-name:dove-frame-down}
@keyframes dove-frame-up{0%,44%{opacity:1}50%,94%{opacity:0}100%{opacity:1}}
@keyframes dove-frame-down{0%,44%{opacity:0}50%,94%{opacity:1}100%{opacity:0}}
.forest-bird-idle{left:-12%;bottom:24%;width:7%;height:6%;animation:forest-bird-crossing 19s linear 2s infinite}

@keyframes forest-bird-crossing{0%,54%{opacity:0;transform:translate(0,0) scale(.7)}58%{opacity:.8}72%{opacity:.8;transform:translate(62cqw,-9cqw) scale(.9)}84%,100%{opacity:0;transform:translate(125cqw,-18cqw) scale(.65)}}
.forest-welcome-flowers{position:absolute;bottom:29%;width:22%;height:24%;z-index:4;opacity:0;pointer-events:none}
.forest-welcome-flowers-left{left:5%}.forest-welcome-flowers-right{right:5%}
.forest-welcome-glow{position:absolute;bottom:16%;width:26%;height:26%;z-index:3;opacity:0;pointer-events:none;background:radial-gradient(ellipse,#ffdf8f99,transparent 68%)}
.forest-welcome-left{left:0}.forest-welcome-right{right:0}
.scene[hidden] .forest-canopy,.scene[hidden] .forest-bird,.scene[hidden] .forest-bird .sprite,.scene[hidden] .forest-lantern-glow{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.forest-canopy,.forest-bird,.forest-bird .sprite,.forest-lantern-glow,.scene[data-theme=van-sarovar] .pendant .sprite{animation:none}.forest-bird-idle{display:none}}

/* Rose petals alternate crimson and pink; title colours remain independent. */
.scene[data-theme=van-sarovar] .falling-petal,.scene[data-theme=van-sarovar] .particle--petal{background:#db3058;box-shadow:inset 0 1px 2px #ffc8db99}
.scene[data-theme=van-sarovar] .falling-petal:nth-child(even),.scene[data-theme=van-sarovar] .particle--petal:nth-child(even){background:#f185ad}
@media(prefers-reduced-motion:reduce){.forest-bird .dove-wings-up{opacity:1}.forest-bird .dove-wings-down{opacity:0}.forest-firefly{opacity:.65}}

.scene[data-theme=van-sarovar][data-effect=mehendi] .forest-bird-idle{bottom:46%}

.scene[data-theme=van-sarovar][data-scene=closing] .forest-bird-idle{bottom:46%}

/* The Mehendi copy uses the same diffused mist and settled ink as the family page. */
.scene[data-theme=van-sarovar][data-effect=mehendi] .copy{color:#233b2c;text-shadow:0 1px 2px #f4f1de,0 0 8px #f4f1ded9}
.scene[data-theme=van-sarovar][data-effect=mehendi] .script{color:#80502f}
.scene[data-theme=van-sarovar][data-effect=mehendi] .event-date,.scene[data-theme=van-sarovar][data-effect=mehendi] .event-note{font-weight:600}
.scene[data-theme=van-sarovar][data-effect=mehendi]:after{background:radial-gradient(ellipse 39% 25% at 50% 25%,#ecf0e4d9 0%,#ecf0e480 65%,transparent 100%)}
