/* Photographic ceremonies. All rules stop at the events boundary: the lotus
   invitation and the garden's later chapters keep their own composition. */
#invitation-page[data-rituals] #events[data-event-cinema]{background:#18221c}
#invitation-page[data-rituals] #events[data-event-cinema] .celebration-heading{padding:82px 24px 112px;margin-bottom:-90px;background:linear-gradient(#dcece8 0%,#dcece8 64%,#dcece800 100%)}
#invitation-page[data-rituals] #events[data-event-cinema] .celebration-heading h2{color:#203d37}
#invitation-page[data-rituals] #events[data-event-cinema] .celebration-heading p{color:#53685c}
#invitation-page[data-rituals] #events[data-event-cinema] .ritual-events-stage{height:calc(100 * var(--neel-scene-vh,1svh));min-height:520px;background:#18221c}
#invitation-page[data-rituals] #events[data-event-cinema] .ritual-events-stage::before,
#invitation-page[data-rituals] #events[data-event-cinema] .ritual-events-stage::after,
#invitation-page[data-rituals] #events[data-event-cinema] .ritual-event-atmosphere{display:none}
#invitation-page[data-rituals] #events[data-event-cinema] .ritual-events-stage .ritual-canvas{position:absolute;inset:0;width:100%;height:100%;min-height:0;transform:none;opacity:1}
#events[data-event-cinema] .ritual-film-stage{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:#18221c}
#events[data-event-cinema] .ritual-film-shot{position:absolute;inset:0;opacity:0;overflow:hidden;background:#18221c}
#events[data-event-cinema] .ritual-film-shot.is-current{opacity:1}
#events[data-event-cinema] .ritual-film-camera{position:absolute;inset:0;transform-origin:var(--film-focus,50% 40%);will-change:transform}
#events[data-event-cinema] .ritual-film-poster,
#events[data-event-cinema] .ritual-film-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--film-focus,50% 40%);transform:scale(1.025);transform-origin:50% 40%;filter:var(--film-grade,none);backface-visibility:hidden}
#events[data-event-cinema] .ritual-film-video{opacity:0;transition:opacity 500ms ease}
#events[data-event-cinema] .ritual-film-video.is-ready{opacity:1}
/* The darkness belongs to the photographic exposure, leaving hands and faces
   clear above while the live details sit in the lower part of the frame. */
#events[data-event-cinema] .ritual-film-stage::after{content:'';position:absolute;z-index:2147483646;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,15,11,.12) 0%,transparent 23%,rgba(8,13,10,.08) 38%,rgba(8,13,10,.55) 62%,rgba(8,13,10,.84) 100%),linear-gradient(90deg,rgba(5,10,7,.26),transparent 74%)}
#events[data-event-cinema] [data-film-kind="mehendi"]{--film-focus:67% 50%;--film-grade:saturate(.92) contrast(1.025)}
#events[data-event-cinema] [data-film-kind="haldi"]{--film-focus:49% 50%;--film-grade:saturate(.94) contrast(1.02)}
#events[data-event-cinema] [data-film-kind="sangeet"]{--film-focus:48% 50%;--film-grade:saturate(.9) contrast(1.035)}
#events[data-event-cinema] [data-film-kind="wedding"]{--film-focus:60% 50%;--film-grade:saturate(.91) contrast(1.035)}
#events[data-event-cinema] [data-film-kind="reception"]{--film-focus:38% 50%;--film-grade:saturate(.84) contrast(1.025)}
#events[data-event-cinema] [data-film-kind="vidaai"]{--film-focus:65% 50%;--film-grade:saturate(.82) contrast(1.015)}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]){--ritual-ink:#fff8e9;--ritual-muted:#eee6d7;--ritual-gold:#e3ca9b}
/* The shared film already owns the poster while loading. Keep that duplicate
   out of caption measurements before the first frame as well as afterwards. */
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony:not([data-custom-art="true"]) .ceremony-art{display:none}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ritual-event-steps{margin-top:calc(-1*max(520px,calc(100 * var(--neel-scene-vh,1svh))))}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) #events-list::after{content:'';position:absolute;inset:auto 0 -1px;height:140px;z-index:3;pointer-events:none;background:linear-gradient(transparent,#faf4e8)}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type]{min-height:calc(132 * var(--neel-scene-vh,1svh));padding:max(250px,calc(calc(100 * var(--neel-scene-vh,1svh)) - 390px)) max(42px,calc((100vw - 1160px)/2)) calc(30 * var(--neel-scene-vh,1svh));pointer-events:none}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy{position:sticky;top:max(250px,calc(calc(100 * var(--neel-scene-vh,1svh)) - 390px));transform:none;opacity:var(--ritual-copy-opacity,1);will-change:opacity;max-width:630px;width:100%;margin:0;text-align:left;padding:0;background:none;text-shadow:0 2px 18px #0008;pointer-events:auto}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-active="false"] .ceremony-copy{pointer-events:none}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy h3{font:400 clamp(54px,6.5vw,88px)/1.08 var(--font-display);letter-spacing:-.035em;margin:0 0 16px;color:#fff8e9}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-date,
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-time{font:400 16px/1.5 var(--font-body);color:#f5e7d2}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-venue{font:400 22px/1.35 var(--font-display);color:#fff8e9;margin:9px 0 12px}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-description{max-width:510px;margin:0 0 10px;font:400 16px/1.5 var(--font-body);color:#eee6d7}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-attire{max-width:510px;font:400 14px/1.5 var(--font-body);color:#eee6d7;margin:0 0 4px}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-map{color:#f5deb5;min-height:44px;font-size:15px;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
#events[data-event-cinema] .ceremony-map:focus-visible{outline:2px solid currentColor;outline-offset:5px}
/* A single title reveal follows the arriving shot, then leaves the live text
   still for reading. Its timing is independent of wheel or touch velocity. */
#events[data-event-cinema]{--film-text-play:paused}
#events[data-event-cinema][data-ritual-state="entered"]{--film-text-play:running}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-active="true"][data-film-reading="pinned"]:not([data-custom-art="true"]) .ceremony-copy>:is(h3,p,a){animation:ritual-film-details 900ms cubic-bezier(.22,.61,.36,1) 240ms both;animation-play-state:var(--film-text-play)}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-active="true"][data-film-reading="pinned"]:not([data-custom-art="true"]) .ceremony-copy>h3{animation-name:ritual-film-title;animation-duration:1150ms;animation-delay:90ms}
#invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-ritual-active="true"] .ceremony-copy>.ceremony-venue{animation-delay:340ms}
#invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-ritual-active="true"] .ceremony-copy>:is(.ceremony-description,.ceremony-attire){animation-delay:420ms}
#invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-ritual-active="true"] .ceremony-copy>.ceremony-map{animation-delay:480ms}
#invitation-page[data-rituals] #events[data-event-cinema] .ceremony:focus-within .ceremony-copy>:is(h3,p,a){animation:none!important}
@keyframes ritual-film-title{from{opacity:0;transform:translate3d(0,16px,0);clip-path:inset(0 -12% 100% -12%)}55%{opacity:1}to{opacity:1;transform:none;clip-path:inset(0 -12% -12% -12%)}}
@keyframes ritual-film-details{from{opacity:0;transform:translate3d(0,7px,0)}to{opacity:1;transform:none}}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-custom-art="true"]{padding-top:calc(18 * var(--neel-scene-vh,1svh));min-height:calc(140 * var(--neel-scene-vh,1svh))}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-custom-art="true"] .ceremony-copy{top:calc(14 * var(--neel-scene-vh,1svh));max-width:580px}
#invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-custom-art="true"] .ceremony-art{height:calc(32 * var(--neel-scene-vh,1svh));min-height:180px;max-height:330px;max-width:580px;border-radius:0;margin-bottom:25px}
/* Still reading mode also uses the ritual photograph, without concealing or
   rebuilding a user's event photograph. No film is fetched in this mode. */
#invitation-page[data-rituals] #events[data-event-cinema][data-ritual-state="static"]{background:#edf1e6}
#invitation-page[data-rituals] #events[data-event-cinema][data-ritual-state="static"] .celebration-heading{margin-bottom:0;background:#dcece8}
#invitation-page[data-rituals] #events[data-event-cinema][data-ritual-state="static"] .ceremony-art img{object-fit:cover;mix-blend-mode:normal}
#invitation-page[data-rituals] #events[data-event-cinema][data-ritual-state="static"] .ceremony[data-ritual-type]{padding-top:38px}
@media(max-width:759px){
  #invitation-page[data-rituals] #events[data-event-cinema] .celebration-heading{padding:65px 25px 75px}
  #events[data-event-cinema] .ritual-film-stage::after{background:linear-gradient(180deg,rgba(8,13,10,.04),transparent 25%,rgba(8,13,10,.08) 35%,rgba(8,13,10,.7) 61%,rgba(8,13,10,.92) 100%)}
  #events[data-event-cinema] .ritual-film-poster,#events[data-event-cinema] .ritual-film-video{object-position:var(--film-mobile-focus,var(--film-focus,50% 35%));transform:scale(1.025)}
  #events[data-event-cinema] [data-film-kind="reception"] :is(.ritual-film-poster,.ritual-film-video){transform:scale(1.16);transform-origin:38% 100%}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type]{min-height:calc(135 * var(--neel-scene-vh,1svh));padding:max(205px,calc(calc(100 * var(--neel-scene-vh,1svh)) - 365px)) 27px calc(34 * var(--neel-scene-vh,1svh))}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy{top:max(205px,calc(calc(100 * var(--neel-scene-vh,1svh)) - 365px));max-width:480px;margin:0 auto;text-align:left}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy h3{font-size:clamp(44px,12vw,59px);margin-bottom:12px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-date,#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-time{font-size:14px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-venue{font-size:21px;margin:8px 0 10px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-description{font-size:14px;line-height:1.5;margin:0 0 8px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-attire{font-size:13px;line-height:1.45;margin:0 0 3px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony-map{font-size:14px}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-custom-art="true"]{padding-top:calc(12 * var(--neel-scene-vh,1svh));min-height:calc(145 * var(--neel-scene-vh,1svh))}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-custom-art="true"] .ceremony-copy{top:calc(12 * var(--neel-scene-vh,1svh))}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-custom-art="true"] .ceremony-art{height:calc(29 * var(--neel-scene-vh,1svh));min-height:145px;max-width:none;margin-bottom:20px}
}
@media(max-height:600px) and (min-width:760px){
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type]{padding-top:calc(20 * var(--neel-scene-vh,1svh));padding-left:52%;padding-right:35px;min-height:calc(155 * var(--neel-scene-vh,1svh))}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy{top:calc(20 * var(--neel-scene-vh,1svh))}
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type] .ceremony-copy h3{font-size:44px}
}
@media(prefers-reduced-motion:reduce){
  #events[data-event-cinema] .ritual-film-shot,#events[data-event-cinema] .ritual-film-video{transition:none}
  #events[data-event-cinema] .ritual-film-poster,#events[data-event-cinema] .ritual-film-video{transform:none}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony .ceremony-copy>:is(h3,p,a){animation:none!important}
}
/* Give the filmed hands room above the details. Long authored descriptions
   return to natural flow so every line remains reachable. */
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type]:not([data-custom-art="true"]){padding-top:var(--film-copy-top,calc(55 * var(--neel-scene-vh,1svh)));padding-bottom:0}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type]:not([data-custom-art="true"]) .ceremony-copy{top:var(--film-copy-top,calc(55 * var(--neel-scene-vh,1svh)))}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-film-reading="flow"] .ceremony-copy{position:relative;top:auto;transform:none;opacity:1}
/* Keep the selected short caption at its reading anchor even during a fast
   scroll jump. Its viewport position never needs a per-scroll translation. */
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type][data-film-reading="pinned"]:not([data-custom-art="true"]) .ceremony-copy{position:fixed;top:var(--film-copy-top,calc(55 * var(--neel-scene-vh,1svh)));left:max(42px,calc((100vw - 1160px)/2));right:auto;width:min(630px,calc(100vw - 2 * max(42px,calc((100vw - 1160px)/2))));margin:0;transform:none;visibility:visible}
#invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type][data-film-reading="pinned"]:not([data-custom-art="true"]):not([data-film-caption-visible="true"]) .ceremony-copy{visibility:hidden;pointer-events:none}
@media(max-width:759px){
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type][data-film-reading="pinned"]:not([data-custom-art="true"]) .ceremony-copy{left:max(27px,calc((100vw - 480px)/2));width:min(480px,calc(100vw - 54px))}
}
@media(max-height:600px) and (min-width:760px){
  #invitation-page[data-rituals] #events[data-event-cinema]:not([data-ritual-state="static"]) .ceremony[data-ritual-type][data-film-reading="pinned"]:not([data-custom-art="true"]) .ceremony-copy{left:52vw;width:min(630px,calc(48vw - 35px))}
}
@media print,(forced-colors:active){
  #events[data-event-cinema] .ritual-events-stage{display:none!important}
  #invitation-page[data-rituals] #events[data-event-cinema] .ritual-event-steps{margin-top:0}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-ritual-type]{min-height:0!important;padding:25px!important;break-inside:avoid}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony[data-ritual-type] .ceremony-copy{position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:100%!important;margin:0!important;transform:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;text-shadow:none;color:CanvasText}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony-copy :is(h3,p,a){color:CanvasText!important}
  #invitation-page[data-rituals] #events[data-event-cinema] .ceremony .ceremony-copy>:is(h3,p,a){animation:none!important}
}
