/* Individual celebration scenes, joined by overlapping feathered artwork. */
.cinematic-header .site-header{background:linear-gradient(180deg,#111d19b0,transparent);backdrop-filter:none;color:#fff5e7}
.cinematic-header .brand small{color:#f4f0ddaa}
.cinematic-header .nav .nav-rsvp{border-color:#f2efda66}
.cinematic-header .nav{--nav-underline:#e1c89f}
.cinematic-header .nav.open{--nav-underline:currentColor;background:#f5f3eb;color:#253b33}
.cinematic-header .nav.open .nav-rsvp{border-color:#aab59c}

.celebration-journey{--chapter-header-height:92px;--preview-bar-height:0px;position:relative;margin-top:calc(-1 * (var(--chapter-header-height) + var(--preview-bar-height)))}
[data-local-preview] .celebration-journey{--preview-bar-height:33px}
.event-jump-shell{position:absolute;z-index:15;top:calc(var(--chapter-header-height) + var(--preview-bar-height) + 14px);right:6vw;bottom:0;pointer-events:none}
.event-jump.moment-chapters{position:sticky;top:max(26px,env(safe-area-inset-top));right:auto;left:auto;pointer-events:none}
.event-jump .chapter-caption{white-space:nowrap;text-shadow:0 1px 7px #1d170c80}
.event-jump .chapter-link{pointer-events:auto;background:color-mix(in srgb,var(--moment-bg) 46%,transparent)}
.event-jump .chapter-link:hover,.event-jump .chapter-link.current{background:color-mix(in srgb,var(--moment-bg) 73%,transparent)}
.event-jump .chapter-link:focus-visible{outline:2px solid var(--moment-accent);outline-offset:2px}
.event-jump.tone-ceremony .chapter-link{background:color-mix(in srgb,#fff1db 72%,transparent)}
.event-jump.tone-ceremony .chapter-link:hover,.event-jump.tone-ceremony .chapter-link.current{background:#f5dfc2eb;color:#69462e}
.event-jump.tone-ceremony .chapter-caption{color:#fff4e5;opacity:.86;text-shadow:0 1px 6px #21130ed6}
.celebration-frames{--stage-height:max(440px,100svh);--scene-travel:132svh;--scene-overlap:60svh;--still-overlap:clamp(55px,13svh,120px);background:#16221a;isolation:isolate}
.celebration-frame{position:relative;--entry:1;--mix:1;--copy:1;--art-x:60%;min-height:calc(var(--stage-height) + var(--scene-travel));color:var(--moment-ink,#fff5e7);pointer-events:none}
.celebration-frame+.celebration-frame{margin-top:calc(-1 * var(--scene-overlap))}
.celebration-stage{position:sticky;top:0;height:var(--stage-height);display:grid;grid-template-rows:1fr;align-items:stretch;isolation:isolate;pointer-events:none}
.celebration-stage .moment-art{pointer-events:none;background:var(--moment-bg,#17251e);container-type:size}
.celebration-frame+.celebration-frame .moment-art{
  opacity:var(--mix);
  /* The oval wash and feather lift the arriving artwork off its rectangular edge. */
  mask-image:linear-gradient(180deg,transparent,#000 calc((1 - var(--entry))*45%)),radial-gradient(ellipse 160% 95% at 80% 110%,#000 calc(30% + var(--entry)*110%),transparent calc(65% + var(--entry)*110%));
  mask-composite:intersect;
}
@supports not (mask-composite:intersect){
  .celebration-frame+.celebration-frame .moment-art{mask-image:linear-gradient(180deg,transparent,#000 calc((1 - var(--entry))*45%))}
}
.celebration-frame .moment-image{inset:0;width:100%;height:100%;object-position:var(--art-x) center;clip-path:none!important;transform:none!important;will-change:auto;opacity:1}
/* Cover the exact same area as the 3:2 still. Only the effect layers respond to scroll. */
.celebration-effect{--effect:var(--scene-progress,0);position:absolute;z-index:1;top:50%;left:var(--art-x);width:100%;height:100%;width:max(100%,150cqh);height:max(100%,66.6667cqw);transform:translate(calc(-1 * var(--art-x)),-50%);pointer-events:none;mix-blend-mode:screen}
.celebration-effect.mehendi-drawing {
  --drawing-progress:clamp(0,calc(var(--effect) * 1.22),1);
  mix-blend-mode:normal;
}
.mehendi-finish{opacity:clamp(0,calc((var(--drawing-progress) - .77) * 12),1)}
.mehendi-drawing-stroke {
  --draw:clamp(0,calc((var(--drawing-progress) - var(--stroke-start)) / var(--stroke-duration)),1);
  opacity:min(calc(70 * var(--draw)),1);
  stroke-dasharray:1 1;
  stroke-dashoffset:calc(1 - var(--draw));
}
.mehendi-still-note{display:none}
.celebration-frames.is-still .mehendi-draw-instruction{display:none}
.celebration-frames.is-still .mehendi-still-note{display:inline}
.effect-thread{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--effect))}
.effect-pigment{transform-box:fill-box;transform-origin:center;transform:translateY(calc(-105px * var(--effect))) scale(calc(.42 + .86 * var(--effect)));opacity:calc(.08 + .83 * var(--effect))}
.effect-filaments{stroke:#ffe4a0;stroke-width:1.2;opacity:.59}
.effect-dust{fill:#fff1b6}
.effect-dust circle{transform:translate(calc(var(--drift) * var(--effect)),calc(var(--rise) * var(--effect)));opacity:calc(.1 + .72 * var(--effect))}
.effect-sheen{transform:translateY(calc(72px - 401px * var(--effect)));opacity:clamp(0,calc(4 * var(--effect)),.92)}
.effect-hem{stroke:#fff1c8;stroke-width:1.35;opacity:.74}
.tone-pellikuturu .effect-hem{stroke:#ffcfbc}
.celebration-frame.tone-sangeeth{--moment-bg:#200d1c;--moment-ink:#fff4e9;--moment-accent:#f6bf8c}
.effect-spotlight{--cue:clamp(0,calc((var(--effect) - var(--beam-delay)) * 1.35),1);transform-origin:0 0;transform:rotate(calc(var(--beam-start) + var(--beam-sweep) * var(--cue)));opacity:calc(.06 + .78 * var(--cue))}
.effect-dance-floor{opacity:calc(.06 + .62 * var(--effect))}
.tone-ceremony .celebration-effect{mix-blend-mode:normal}
.effect-ocean-texture{opacity:clamp(0,calc(var(--effect)*12),1)}
.effect-sunset-light{opacity:calc(.04 + .6 * var(--effect));mix-blend-mode:screen}
.effect-sunset-glints{fill:none;stroke-width:1.25;stroke-linecap:round;mix-blend-mode:screen}
.effect-sunset-glints path{--crest:clamp(0,calc((var(--effect) - var(--glint))*1.7),1);transform:translateY(calc(var(--glint-travel)*var(--crest)));opacity:min(calc(5*var(--crest)),calc(2*(1 - var(--crest))),.78)}
.effect-mandap-petal{--fall:clamp(0,calc((var(--effect) - var(--petal-start))*1.54),1);transform-origin:0 0;transform:translate(calc(var(--petal-drift)*var(--fall)),calc(var(--petal-fall)*var(--fall))) rotate(calc(var(--petal-tilt) + 122deg*var(--fall)));opacity:min(calc(9*var(--fall)),calc(5*(1 - var(--fall))),.95)}
.effect-reflection{opacity:calc(.13 + .49 * var(--effect))}
.effect-ripples{fill:none;stroke:#fff2c1;stroke-width:.95}
.effect-ripples ellipse{--wave:clamp(0,calc(var(--effect) * 1.32 - var(--delay)),1);rx:calc(5px + 76px * var(--wave));ry:calc(1.5px + 26px * var(--wave));opacity:min(calc(4 * var(--wave)),calc(1.8 * (1 - var(--wave))),.85)}
.celebration-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,color-mix(in srgb,var(--moment-bg,#16221a) 93%,transparent),color-mix(in srgb,var(--moment-bg,#16221a) 50%,transparent) 43%,transparent 77%),linear-gradient(0deg,#10171264,transparent 34%)}
.celebration-frame.tone-ceremony .celebration-shade{background:linear-gradient(90deg,#f5e8dbeb,#f5e8dbc9 28%,#f5e8db5c 43%,transparent 61%)}
.celebration-frame.tone-mehendi .celebration-shade{background:linear-gradient(90deg,#111b11c2,#111b115c 35%,transparent 62%),linear-gradient(180deg,#111911a6,transparent 28%,transparent 78%,#0d150e55)}
.celebration-frame:last-child .moment-art:after{content:'';position:absolute;inset:auto 0 0;height:var(--still-overlap);z-index:3;background:linear-gradient(transparent,var(--paper));opacity:var(--outro,0)}
.celebration-frame-content{position:relative;z-index:4;width:min(1400px,88%);margin:0 auto;padding:115px 0 90px;display:grid;align-content:center;opacity:var(--copy);pointer-events:none}
.celebration-frame-content:focus-within{opacity:1}
.celebration-frame-content a,.celebration-frame-content button{pointer-events:auto}
.celebration-frames:not(.is-still) .copy-obscured .celebration-frame-content:not(:focus-within) :is(a,button){pointer-events:none}
.celebration-title{min-width:0;max-width:65%}
.celebration-number{display:flex;gap:12px;align-items:center;letter-spacing:.19em;font-size:10px;color:var(--moment-accent,#e5cba4);margin-bottom:14px}
.celebration-number:before{content:'';width:26px;height:1px;background:currentColor}
.celebration-title .moment-name{margin:0;font-size:clamp(56px,7.8vw,114px);line-height:1.02;letter-spacing:-.058em;text-wrap:balance}
.celebration-title .moment-name>span{color:var(--moment-accent,#e5cba4)}
.celebration-title p{margin:17px 0 0;font-size:clamp(13px,1.15vw,16px);line-height:1.6;max-width:31ch}
.celebration-next,.celebration-tools>a{display:inline-flex;align-items:center;gap:10px;padding:8px 2px;min-height:44px;background:none;border:0;color:inherit;font-size:12px}
.celebration-next{margin-top:12px;border-bottom:1px solid color-mix(in srgb,currentColor 50%,transparent)}
.celebration-tools{position:absolute;bottom:calc(78px + env(safe-area-inset-bottom));right:0;display:flex;flex-wrap:wrap;gap:4px 18px}
.celebration-next:hover,.celebration-tools>a:hover{text-decoration:underline;text-underline-offset:4px}
.celebration-frames.is-still .celebration-frame{min-height:var(--stage-height)}
.celebration-frames.is-still .celebration-stage{position:relative}
.celebration-frames.is-still .celebration-frame+.celebration-frame{margin-top:calc(-1 * var(--still-overlap))}
.celebration-frames.is-still .celebration-frame+.celebration-frame .moment-art{opacity:1;mask-image:linear-gradient(180deg,transparent,#000 var(--still-overlap))}
.celebration-frames.is-still .celebration-frame-content{opacity:1}
.celebration-frames.is-still .celebration-effect{display:none}
.celebration-frames.is-still .mehendi-drawing{display:block}
.celebration-frames.is-still .mehendi-finish{opacity:1}
.celebration-frames.is-still .celebration-frame:last-child .moment-art:after{opacity:1}

.journey-static-outro{text-align:center;padding:25px 0 64px}
.journey-static-outro h2{font-size:clamp(48px,6vw,85px);line-height:1.05;letter-spacing:-.06em;margin:16px 0}
.journey-static-outro h2 em{font-weight:400;color:#647657}
.journey-static-outro>p{font-size:13px;color:#5c6d53;margin-bottom:25px}
.journey-finish{padding-top:30px;padding-bottom:10px}
.story-contents{border-block:1px solid #d4dbca;scroll-margin-top:18px}
.story-contents>summary{display:flex;justify-content:space-between;align-items:center;min-height:62px;font-family:Georgia,serif;font-size:23px;letter-spacing:-.025em;cursor:pointer;list-style:none}
.story-contents>summary::-webkit-details-marker{display:none}
.story-contents>summary>span{font-size:20px;color:#627453}
.story-contents[open]>summary>span{transform:rotate(45deg)}
.story-contents .journey-index{padding:12px 0 25px}
.story-closing-note{font-size:11px;color:#596650;margin-top:24px;line-height:1.8}

/* Material tones also appear on registry, RSVP, and index cards. */
.tone-pellikoduku{--moment-bg:#0d2115;--moment-ink:#fff6df;--moment-accent:#dab78c}
.tone-pellikuturu{--moment-bg:#3b1427;--moment-ink:#fff1e3;--moment-accent:#eeb7ae}
.journey-index{grid-template-columns:repeat(4,minmax(0,1fr))}
.journey-index-link:last-child{grid-column:span 2}
@media(max-width:1100px){.journey-index{grid-template-columns:repeat(3,minmax(0,1fr))}.journey-index-link:last-child{grid-column:1/-1}}
@media(max-width:760px){
  .celebration-journey{--chapter-header-height:80px}
  .event-jump-shell{top:calc(var(--chapter-header-height) + var(--preview-bar-height) + 9px);left:max(9px,env(safe-area-inset-left));right:max(9px,env(safe-area-inset-right))}
  .event-jump.moment-chapters{width:min(326px,100%);top:max(18px,env(safe-area-inset-top))}
  .event-jump .chapter-links{width:100%;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
  .event-jump .chapter-link{width:100%}
  body:has(.nav.open) .event-jump-shell{visibility:hidden}
  .celebration-frames{--stage-height:max(440px,100svh);--scene-travel:103svh;--scene-overlap:54svh}
  .celebration-frame-content{width:86%;padding:130px 0 100px}
  .celebration-title{max-width:100%}
  .celebration-title .moment-name{font-size:clamp(40px,11vw,72px)}
  .celebration-number{font-size:9px;margin-bottom:10px}
  .celebration-title p{margin-top:12px}
  .celebration-next{margin-top:8px}
  .celebration-frame{--art-x:57%}
  .celebration-frame.tone-mehendi{--art-x:77%}
  .celebration-frame.tone-mehendi .celebration-frame-content{align-content:end;padding-bottom:max(55px,11svh)}
  .celebration-frame.tone-sangeeth{--art-x:79%}
  .celebration-frame.tone-ceremony{--art-x:76%}
  .celebration-frame.tone-vratam{--art-x:74%}
  .celebration-tools{gap:4px 14px;bottom:calc(76px + env(safe-area-inset-bottom))}
  .celebration-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--moment-bg) 87%,transparent),color-mix(in srgb,var(--moment-bg) 43%,transparent) 75%,transparent),linear-gradient(0deg,#111b1580,transparent 40%)}
  .celebration-frame.tone-mehendi .celebration-shade{background:linear-gradient(180deg,#0d170eb8,transparent 28%,transparent 52%,#0d170ead 77%,#0d170ef0)}
  .celebration-frame.tone-ceremony .celebration-shade{background:linear-gradient(90deg,#f5e8dbd1,#f5e8db63 65%,transparent)}
  .journey-static-outro{padding:24px 0 43px}
  .journey-index{grid-template-columns:repeat(2,minmax(0,1fr))}
  .story-contents>summary{font-size:22px}
}
@media(prefers-reduced-motion:reduce){
  .celebration-effect:not(.mehendi-drawing),.mehendi-draw-instruction{display:none}
  .mehendi-finish{opacity:1}
  .mehendi-still-note{display:inline}
}
