/* Adat Lampung -- Cover (from coverLampug.psd, 1080x1920). Mechanics ported from the GOLD Cover:
   cover-fit scaled scene, [data-mo] btRpIn-style entrance + independent idle (UA Motion Standard V1). */
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;background:#000}
body{font-family:'Montserrat',Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}
img{max-width:none}
.lp-app{position:relative;max-width:480px;min-height:100dvh;margin:0 auto;overflow:hidden;background:#efe6d2}
.lp-cover{position:relative;width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#efe6d2;--bwk:2.3;transition:opacity .8s cubic-bezier(.22,.61,.36,1),translate .8s cubic-bezier(.22,.61,.36,1)}
.lp-cover-scene{position:absolute;left:50%;top:50%;width:1080px;height:1920px;transform:translate(-50%,-50%);transform-origin:50% 50%;overflow:hidden}
.lp-l{position:absolute;display:block;max-width:none;user-select:none;-webkit-user-drag:none}
.lp-deco{pointer-events:none}
.lp-text{display:block;text-align:center;white-space:nowrap;line-height:1;text-rendering:geometricPrecision}
.lp-text span{display:inline-block}
.lp-gradient{pointer-events:none}
/* Corrected PSD typography (sizes = PSD font size x transform; tracking in 1/1000 em). Web stand-ins for
   the PSD's system fonts: Arimo (TamilSangamMN), Montserrat Light (Avenir Light), Bodoni Moda (Didot Bold);
   Cinzel Bold is the PSD font itself. Tracking is tuned so each ink width equals the PSD text. */
.lp-eyebrow{font-family:'Arimo',Arial,sans-serif;font-weight:400;font-size:36.95px;letter-spacing:.24em;color:#771613}
.lp-names{font-family:'Cinzel',Georgia,serif;font-weight:700;font-size:56.3px;letter-spacing:.28em;color:#512e17}
.lp-names span{transform:scaleX(.87)}
.lp-to{font-family:'Montserrat',Arial,sans-serif;font-weight:300;font-size:36.95px;letter-spacing:.073em;color:#000}
.lp-guest{font-family:'Bodoni Moda',Didot,'Times New Roman',serif;font-weight:700;font-size:56.1px;letter-spacing:.111em;color:#000}
.lp-guest span{transform:scaleX(.91)}
.lp-photo{overflow:hidden;border:5.07px solid #6e3f0d;border-radius:999px;background:#fff}
.lp-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%}
.lp-open{padding:0;border:1px solid #000;border-radius:999px;background:#512e17;color:#fff;cursor:pointer;transform-origin:50% 50%;box-shadow:none}
.lp-open-t{position:absolute;left:90px;top:33px;width:300px;height:24px;display:block;text-align:center;white-space:nowrap;line-height:1;font-family:'Arimo',Arial,sans-serif;font-weight:400;font-size:24.4px;letter-spacing:.0465em;color:#fff}
.lp-open-ico{position:absolute;display:block;max-width:none}
.lp-app.is-open .lp-cover{opacity:0;translate:0 -3%;pointer-events:none}

/* ---- Cover motion: entrance -> identity, then independent idle (decorative art only) ---- */
@keyframes lpRpIn{
  from{
    opacity:var(--rp-o,0);
    translate:calc(var(--rp-x,0px) * var(--bwk,3)) calc(var(--rp-y,0px) * var(--bwk,3));
    scale:var(--rp-sx,var(--rp-s,1)) var(--rp-sy,var(--rp-s,1));
  }
  to{opacity:1;translate:0 0;scale:1 1}
}
@keyframes lpRpLive{
  0%,100%{translate:0 0;rotate:0deg}
  30%{translate:var(--i-x,0px) var(--i-y,0px);rotate:var(--i-r,0deg)}
  60%{translate:calc(var(--i-x,0px) * .6) calc(var(--i-y,0px) * .6);rotate:calc(var(--i-r,0deg) * .4)}
}
@keyframes lpButtonIn{
  from{opacity:0}
  to{opacity:1}
}
.lp-cover [data-mo="rp-in"],.lp-cover [data-mo="rp-deco"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
}
.lp-cover [data-mo="rp-deco"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-cover [data-mo="rp-deco"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-open[data-mo="rp-in"]{animation-name:lpButtonIn}

@media (prefers-reduced-motion:reduce){
  [data-mo]{animation:none !important;opacity:1 !important;translate:none !important;scale:none !important;rotate:none !important}
  .lp-cover{transition:none}
}
.lp-nomo [data-mo]{animation:none !important;opacity:1 !important;translate:none !important;scale:none !important;rotate:none !important}
.lp-nomo .lp-cover{transition:none}

/* ---- Hero (heroLamoung.psd). Cover -> Hero lifecycle = the GOLD one (Batak/Sunda): .is-open, then .is-hero-active. ---- */
.lp-hero{display:none;position:relative;width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#efe6d2;--bwk:2.3}
.lp-app.is-hero-active .lp-cover{display:none}
.lp-app.is-hero-active .lp-hero{display:block}
.lp-hero-scene{position:absolute;left:50%;top:50%;width:1080px;height:1920px;transform:translate(-50%,-50%);transform-origin:50% 50%;overflow:hidden}
.lp-hero-init,.lp-hero-amp,.lp-hero-date{display:block;text-align:center;white-space:nowrap;line-height:1;text-rendering:geometricPrecision}
.lp-hero-init span,.lp-hero-amp span,.lp-hero-date span{display:inline-block}
.lp-hero-init{font-family:'Cinzel',Georgia,'Times New Roman',serif;font-weight:400;font-size:360.7px;color:#771613}
.lp-hero-init span{transform:scaleX(.87)}
.lp-hero-amp{font-family:'Gelasio',Cochin,Georgia,'Times New Roman',serif;font-weight:400;font-size:142.3px;color:#771613}
.lp-hero-amp span{transform:scaleX(.989)}
.lp-hero-date{font-family:'Gelasio',Georgia,'Times New Roman',serif;font-style:italic;font-weight:700;font-size:41px;letter-spacing:.195em;color:#5c4011}
.lp-hero [data-mo="rp-in"],.lp-hero [data-mo="rp-deco"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
}
.lp-hero [data-mo="rp-deco"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-hero [data-mo="rp-deco"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}

/* ---- Ayat (ayat.psd, 1080x1797). Mechanics ported from the GOLD Batak Ayat: width-scaled scene, [data-mo="ayat-in"] entrance,
   paused until setupReplay() plays it on viewport entry (replays on re-entry). ---- */
.lp-ayat{display:none;position:relative;width:100%;overflow:hidden;background:#9e8357;--bwk:2.3}
.lp-app.is-hero-active .lp-ayat{display:block}
.lp-ayat-scene{position:absolute;left:0;top:0;width:1080px;height:1797px;transform-origin:0 0;overflow:hidden}
.lp-ayat-photo{overflow:hidden;border-radius:64px 64px 0 0;background:#5f1c18}
.lp-ayat-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%}
.lp-ayat-initials{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Cinzel',Georgia,'Times New Roman',serif;font-weight:700;font-size:75px;line-height:1;color:#771613;text-rendering:geometricPrecision}
.lp-ayat-verse{display:flex;align-items:center;justify-content:center;text-align:center;font-family:'Mulish','Avenir Light',Arial,sans-serif;font-weight:400;font-size:34.43px;line-height:1.2;color:#000;white-space:normal;text-rendering:geometricPrecision}
.lp-ayat-verse-text{width:100%}
.lp-ayat-source{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Mulish','Avenir Light',Arial,sans-serif;font-weight:400;font-size:34.43px;line-height:1;color:#000;text-rendering:geometricPrecision}
.lp-ayat [data-mo="ayat-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-ayat.is-ayat-active [data-mo="ayat-in"]{animation-play-state:running}
.lp-ayat.lp-js-replay.is-ayat-active [data-mo="ayat-in"]{animation-play-state:paused}

/* ---- Acara (acara.psd, 1080x2859). Mechanics ported from the GOLD Batak Acara: width-scaled scene, [data-mo="acara-in"]
   entrance + independent idle on decorations, per-element replay via setupReplay() (idle-aware mode). ---- */
.lp-acara{display:none;position:relative;width:100%;overflow:hidden;background:#9e8a66;--bwk:2.3}
.lp-app.is-hero-active .lp-acara{display:block}
.lp-acara-scene{position:absolute;left:0;top:0;width:1080px;height:2859px;transform-origin:0 0;overflow:hidden}
.lp-acara-title,.lp-acara-dt,.lp-acara-venue,.lp-acara-address,.lp-acara-maps,.lp-acara-cd-label,.lp-acara-save{text-rendering:geometricPrecision}
.lp-acara-title{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Libre Caslon Text',Georgia,serif;font-weight:700;font-size:65.8px;line-height:1;color:#65120f}
.lp-acara-title[data-card="2"]{letter-spacing:.06em}
.lp-acara-dt{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;white-space:nowrap;gap:1px;font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:39.2px;line-height:1.2;color:#fff}
.lp-acara-divider{background:#fff}
.lp-acara-divider-2{background:#5d0303}
.lp-acara-venue{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;font-size:38.9px;line-height:1.15;color:#fff}
.lp-acara-address{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:39.7px;line-height:1.15;color:#fff}
.lp-acara-maps{display:flex;align-items:center;justify-content:center;border-radius:999px;background:#65120f;color:#fff;text-decoration:none;font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:32px;line-height:1}
.lp-acara-cd-label{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;font-size:39.5px;line-height:1;color:#fff}
.lp-acara-cd-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:0 6px 14px 0;border-radius:22px;background:#65120f;color:#fff}
.lp-acara-cd-box span{font-family:'Sorts Mill Goudy','Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:54px;line-height:1}
.lp-acara-cd-box em{font-style:normal;font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:19.5px;line-height:1;text-transform:uppercase}
.lp-acara-save{display:flex;align-items:center;justify-content:center;gap:36px;padding-right:14px;border-radius:999px;background:#65120f;color:#fff;text-decoration:none;font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;letter-spacing:.02em;font-size:40px;line-height:1}
.lp-acara [data-mo="acara-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-acara [data-mo="acara-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-acara [data-mo="acara-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-acara.is-acara-active [data-mo="acara-in"]{animation-play-state:running}
.lp-acara.lp-js-replay.is-acara-active [data-mo="acara-in"]{animation-play-state:paused}
.lp-acara.lp-js-replay.is-acara-active [data-mo="acara-in"][data-mo-idle]{animation-play-state:running}

/* ---- Pasangan (pasangan.psd, 1080x3370). Sits between Ayat and Acara. Same lifecycle family as Acara:
   [data-mo="pas-in"] entrance (+ idle on decorations), replay via setupReplay() (keepAll + reconcile). ---- */
.lp-pasangan{display:none;position:relative;width:100%;overflow:hidden;background:#ece3d1;--bwk:2.3}
.lp-app.is-hero-active .lp-pasangan{display:block}
.lp-pasangan-scene{position:absolute;left:0;top:0;width:1080px;height:3370px;transform-origin:0 0;overflow:hidden}
.lp-pas-greeting,.lp-pas-heading,.lp-pas-name,.lp-pas-intro,.lp-pas-parents,.lp-pas-ig{text-rendering:geometricPrecision}
.lp-pas-greeting{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Alex Brush','Snell Roundhand',cursive;font-weight:400;font-size:53.7px;line-height:1;color:#000}
.lp-pas-intro{display:flex;align-items:flex-start;justify-content:center;text-align:center;font-family:'Rokkitt','American Typewriter',Georgia,serif;font-weight:300;font-size:33px;line-height:41.25px;color:#000}
.lp-pas-intro-text{width:100%}
.lp-pas-heading{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:700;font-size:50px;letter-spacing:.102em;line-height:1;color:#2a2c31}
.lp-pas-photo{overflow:hidden;background:#d9ccb2;-webkit-mask:url(/templates/lampung/assets/pasangan-photo-mask.png?v=lp-pasangan-v1) center/100% 100% no-repeat;mask:url(/templates/lampung/assets/pasangan-photo-mask.png?v=lp-pasangan-v1) center/100% 100% no-repeat}
.lp-pas-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%}
.lp-pas-photo img:not([src]){display:none}
.lp-pas-frame{pointer-events:none}
.lp-pas-name{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Lora','Athelas',Georgia,serif;font-weight:700;font-size:49px;line-height:1;color:#6f0a0a}
.lp-pas-parents{display:flex;align-items:center;justify-content:center;text-align:center;font-family:'Mulish','Avenir Light',Arial,sans-serif;font-weight:400;font-size:25px;letter-spacing:.04em;line-height:29.5px;color:#000}
.lp-pas-parents-text{width:100%}
.lp-pas-ig{display:flex;align-items:center;justify-content:center;gap:21px;padding-bottom:5px;border-radius:999px;background:#771613;color:#fff;text-decoration:none;font-family:'Mulish','Avenir Light',Arial,sans-serif;font-weight:400;font-size:29px;letter-spacing:.04em;line-height:1}
.lp-pas-ig img{width:24px;height:26px;display:block;flex:none}
.lp-pas-ig[hidden]{display:none}
.lp-pasangan [data-mo="pas-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-pasangan [data-mo="pas-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-pasangan [data-mo="pas-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-pasangan.is-pasangan-active [data-mo="pas-in"]{animation-play-state:running}
.lp-pasangan.lp-js-replay.is-pasangan-active [data-mo="pas-in"]{animation-play-state:paused}
.lp-pasangan.lp-js-replay.is-pasangan-active [data-mo="pas-in"][data-mo-idle]{animation-play-state:running}

/* ---- Live Streaming (Live Streaming.psd, 1080x1480). Follows Acara. One flattened background image (no motion on its baked
   content); card + pill drawn in CSS from the PSD geometry/colours; same lifecycle family as Acara/Pasangan:
   [data-mo="lv-in"] entrance (+ idle on the separate art), replay via setupReplay() (keepAll + reconcile). ---- */
.lp-live{display:none;position:relative;width:100%;overflow:hidden;background:#ece3d1;--bwk:2.3}
.lp-app.is-hero-active .lp-live{display:block}
.lp-live-scene{position:absolute;left:0;top:0;width:1080px;height:1480px;transform-origin:0 0;overflow:hidden}
.lp-live-card{background:#771613;border-radius:50px}
.lp-live-title,.lp-live-desc,.lp-live-btn{text-rendering:geometricPrecision}
.lp-live-title{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;font-size:59px;line-height:1;color:#000}
.lp-live-desc{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-family:'Hind','Adobe Clean',Arial,sans-serif;font-weight:600;font-size:34.6px;line-height:42px;color:#fff}
.lp-live-btn{display:flex;align-items:center;justify-content:center;gap:19px;border-radius:999px;background:#9e8a66;color:#fff;text-decoration:none}
.lp-live-ico{width:45px;height:46px;display:block;flex:none}
svg.lp-live-ico{color:#fff}
.lp-live-btn-t{font-family:'Gelasio',Cochin,Georgia,serif;font-weight:400;font-size:35.2px;line-height:1;white-space:nowrap;color:#fff}
.lp-live [data-mo="lv-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-live [data-mo="lv-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-live [data-mo="lv-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-live.is-live-active [data-mo="lv-in"]{animation-play-state:running}
.lp-live.lp-js-replay.is-live-active [data-mo="lv-in"]{animation-play-state:paused}
.lp-live.lp-js-replay.is-live-active [data-mo="lv-in"][data-mo-idle]{animation-play-state:running}

/* ---- Galeri (Galeri.psd, 1080x1920). Follows Live Streaming. Flat colour ground and dots are CSS; photos are dynamic
   (canonical foto_galeri_1..8), two scroll-snap rows of 4 with 2 visible at a time -- the GOLD Galeri mechanism. Motion sits on the
   row WRAPPERS only (never on the scroll-snap track); same lifecycle family as Acara/Pasangan/Live (setupReplay keepAll + reconcile). ---- */
.lp-galeri{display:none;position:relative;width:100%;overflow:hidden;background:#9e8a66;--bwk:2.3}
.lp-app.is-hero-active .lp-galeri{display:block}
.lp-galeri-scene{position:absolute;left:0;top:0;width:1080px;height:1920px;transform-origin:0 0;overflow:hidden}
.lp-gal-bg{background:#9e8a66}
.lp-gal-h1,.lp-gal-h2,.lp-gal-sub{text-rendering:geometricPrecision;text-align:center;white-space:nowrap}
.lp-gal-h1,.lp-gal-h2{display:flex;align-items:center;justify-content:center;font-family:'Bodoni Moda',Didot,Georgia,serif;font-weight:700;color:#65120f;line-height:1}
.lp-gal-h1{font-size:51.3px;letter-spacing:.035em}
.lp-gal-h2{font-size:100.3px}
.lp-gal-sub{font-family:'Hind','Avenir',Arial,sans-serif;font-weight:600;font-size:39.5px;line-height:44px;color:#fff}
.lp-gal-row{overflow:hidden}
.lp-gal-track{display:flex;gap:17px;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.lp-gal-track::-webkit-scrollbar{display:none}
.lp-gal-slide{flex:0 0 460px;height:100%;scroll-snap-align:start;border-radius:25px;overflow:hidden;background:rgba(255,255,255,.06);cursor:zoom-in;-webkit-tap-highlight-color:transparent}
.lp-gal-slide[hidden]{display:none}
.lp-gal-slide:focus-visible{outline:3px solid #f2ece4;outline-offset:-3px}
.lp-gal-slide img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none}
.lp-gal-dots{display:flex;align-items:center;justify-content:center;gap:9px;pointer-events:none}
.lp-gal-dots span{display:block;width:10px;height:10px;border-radius:5px;background:#7f8593;flex:0 0 auto;transition:width .3s ease,background-color .3s ease}
.lp-gal-dots span.is-active{width:29px;background:#f2ece4}
/* Photo popup (lightbox): the GOLD popup, on <body> above every section. */
.lp-lb{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(36,10,8,.92);animation:lpLbIn .25s ease both;touch-action:none;overscroll-behavior:contain}
.lp-lb[hidden]{display:none}
.lp-lb-img{max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.45);user-select:none;-webkit-user-drag:none}
.lp-lb button{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:0;border-radius:50%;background:rgba(242,236,228,.16);color:#f2ece4;font:400 30px/1 'Mulish',sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent}
.lp-lb button[hidden]{display:none}
.lp-lb button:focus-visible{outline:2px solid #f2ece4;outline-offset:2px}
.lp-lb-x{top:max(14px,env(safe-area-inset-top));right:14px;font-size:34px}
.lp-lb-nav{top:50%;margin-top:-23px}
.lp-lb-prev{left:8px}
.lp-lb-next{right:8px}
.lp-lb-count{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:#f2ece4;font:500 15px/1 'Mulish',sans-serif;letter-spacing:.08em}
@keyframes lpLbIn{from{opacity:0}to{opacity:1}}
.lp-galeri [data-mo="gl-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-galeri.is-galeri-active [data-mo="gl-in"]{animation-play-state:running}
.lp-galeri.lp-js-replay.is-galeri-active [data-mo="gl-in"]{animation-play-state:paused}

/* ---- Video (Video.psd, 1882x2658). Follows Galeri. Flat colour ground, the 1878x1413 frame/stage and the play button are CSS;
   behaviour = the GOLD Video (URL validation, click-to-load player, removal when unusable). Motion only on the poster FRAME,
   texts and art; the stage/player never carries a motion. Same replay lifecycle as Acara/Pasangan/Live/Galeri. ---- */
.lp-video{display:none;position:relative;width:100%;overflow:hidden;background:#9e8a66;--bwk:2.3}
.lp-app.is-hero-active .lp-video{display:block}
.lp-video-scene{position:absolute;left:0;top:0;width:1882px;height:2658px;transform-origin:0 0;overflow:hidden}
.lp-vd-bg{background:#9e8a66}
.lp-vd-h1,.lp-vd-h2,.lp-vd-sub{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;line-height:1;text-rendering:geometricPrecision}
.lp-vd-h1{font-family:'Roboto Mono','Andale Mono',ui-monospace,Menlo,monospace;font-weight:500;font-size:73.5px;letter-spacing:.224em;color:#65120f}
.lp-vd-h2{font-family:'Gelasio','Cochin',Georgia,serif;font-weight:400;font-size:169.9px;letter-spacing:.095em;color:#65120f}
.lp-vd-sub{font-family:'Gelasio','Cochin',Georgia,serif;font-weight:400;font-size:54px;letter-spacing:.217em;color:#fff}
.lp-vd-frame{background:#000;overflow:hidden}
.lp-vd-stage{background:transparent}
.lp-vd-stage.is-playing{background:#000}
.lp-vd-poster{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.lp-vd-poster:focus-visible{outline:6px solid #f2ece4;outline-offset:-10px}
.lp-vd-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.lp-vd-thumb[hidden]{display:none}
.lp-vd-btn{position:absolute;left:832px;top:600px;width:210px;height:210px;border-radius:50%;background:rgba(155,149,135,.9)}
.lp-vd-btn svg{position:absolute;left:61px;top:55px;width:88px;height:100px;display:block}
.lp-vd-poster:active .lp-vd-btn{background:rgba(120,114,102,.94)}
.lp-vd-player{position:absolute;z-index:5;border:0;background:#000;display:block}
iframe.lp-vd-player{left:0;top:178px;width:100%;height:1056px}
video.lp-vd-player{left:0;top:0;width:100%;height:100%;object-fit:contain}
.lp-video [data-mo="vd-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-video [data-mo="vd-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-video [data-mo="vd-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-video.is-video-active [data-mo="vd-in"]{animation-play-state:running}
.lp-video.lp-js-replay.is-video-active [data-mo="vd-in"]{animation-play-state:paused}
.lp-video.lp-js-replay.is-video-active [data-mo="vd-in"][data-mo-idle]{animation-play-state:running}

/* ---- Love Story (love story.psd, 1080x2364). Follows Video. The landscape is ONE image drawn in two slices around a calm seam row so a long story can
   grow the section (the lower slice + everything below the seam moves down by the total growth; the gap is filled with that row's own colours).
   Cards / dots / timeline are CSS rebuilds of the PSD's raster Layer 2; texts are dynamic (love_story_1..4 + _tahun). Motion only on the texts and
   decorative art (the GOLD pattern); cards, dots and line are structural. ---- */
.lp-love{display:none;position:relative;width:100%;overflow:hidden;background:#f1ede6;--bwk:2.3}
.lp-app.is-hero-active .lp-love{display:block}
.lp-love-scene{position:absolute;left:0;top:0;width:1080px;height:2364px;transform-origin:0 0;overflow:hidden}
.lp-ls-bgtop,.lp-ls-bgbot{background-image:url(/templates/lampung/assets/lovestory-background.webp?v=lp-love-v1);background-repeat:no-repeat;background-size:1080px 2364px}
.lp-ls-bgtop{background-position:0 0}
.lp-ls-bgbot{background-position:0 -680px}
.lp-ls-line{background:#d2b87f}
.lp-ls-card{border-radius:28px;background:linear-gradient(180deg,#fffffe 0%,#f7f1e8 100%)}
.lp-ls-dot{border-radius:50%;background:radial-gradient(circle at 50% 50%,#701b22 0,#701b22 14.3px,#630710 14.3px,#630710 15.2px,#fffffd 15.2px,#fffffd 17.4px,#f7f1e8 17.4px,#f7f1e8 22.4px,#ccae6f 22.4px,#ccae6f 25.5px,rgba(204,174,111,0) 25.5px)}
.lp-ls-txt{display:flex;align-items:center;justify-content:center;text-rendering:geometricPrecision}
.lp-ls-in{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:7px 38px 0;box-sizing:border-box}
.lp-ls-year{font-family:'Open Sans',Arial,sans-serif;font-style:italic;font-weight:700;font-size:38px;line-height:38px;color:#3d352d;margin-bottom:29px}
.lp-ls-year:empty{display:none}
.lp-ls-body{font-family:'Gelasio','Cochin',Georgia,serif;font-weight:500;font-size:40.4px;line-height:66px;color:#3d352d;max-width:686px;overflow-wrap:break-word}
.lp-ls-eyebrow,.lp-ls-heading{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;line-height:1;text-rendering:geometricPrecision}
.lp-ls-eyebrow{font-family:'Gelasio','Cochin',Georgia,serif;font-weight:500;font-size:34.8px;letter-spacing:.513em;color:#fff}
.lp-ls-heading{font-family:'Hind','Adobe Clean',Arial,sans-serif;font-weight:600;font-size:114.5px;letter-spacing:.0674em;color:#771613}
.lp-love [data-mo="ls-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-love [data-mo="ls-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-love [data-mo="ls-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-love.is-love-active [data-mo="ls-in"]{animation-play-state:running}
.lp-love.lp-js-replay.is-love-active [data-mo="ls-in"]{animation-play-state:paused}
.lp-love.lp-js-replay.is-love-active [data-mo="ls-in"][data-mo-idle]{animation-play-state:running}

/* ---- RSVP (RSCV.psd, 1882x4542). Follows Love Story. PSD Layer 2 is a raster mock-up of the form (not shipped): the same rectangles are
   REAL controls. .lp-rs-w is a stable wrapper that only fades (script.js setupReplay, opt-in data-mo-focus); the control inside it
   (input / select / textarea / button) never carries a transform, opacity animation or idle. Type = the PSD's own faces: labels /
   placeholders / messages EB Garamond, SUBMIT and the wish-card name Cormorant Garamond, title Gelasio bold italic, "RSVP" and the
   description Arimo. Font sizes are scene px (>= 16 computed px), so iOS never zooms on focus. ---- */
.lp-rsvp{display:none;position:relative;width:100%;overflow:hidden;background:#cfccc2;--bwk:2.3}
.lp-app.is-hero-active .lp-rsvp{display:block}
.lp-rsvp-scene{position:absolute;left:0;top:0;width:1882px;height:4542px;transform-origin:0 0;overflow:hidden}
.lp-rs-bgm{background:url(/templates/lampung/assets/rsvp-ground-band.jpg?v=lp-rsvp-v1) 0 0/1882px 878px repeat-y}
#lpRsBgB.is-blend{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 140px);mask-image:linear-gradient(to bottom,transparent 0,#000 140px)}
.lp-rs-rsvp,.lp-rs-title{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap}
.lp-rs-rsvp{font-family:'Arimo','Arial',sans-serif;font-weight:400;font-size:138px;letter-spacing:13px;line-height:1;color:#000}
.lp-rs-title{font-family:'Gelasio','Georgia',serif;font-style:italic;font-weight:700;font-size:112px;letter-spacing:0.4px;line-height:1;color:#821300;text-shadow:1px 0 0 #000,-1px 0 0 #000,0 1px 0 #000,0 -1px 0 #000,1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}
.lp-rs-desc{
  display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;
  font-family:'Arimo','Arial',sans-serif;font-weight:400;font-size:64px;line-height:98px;color:#000;
  height:auto !important;min-height:196px;overflow-wrap:anywhere;
}
.lp-rs-label{
  display:block;box-sizing:border-box;white-space:nowrap;
  font-family:'EB Garamond','Cormorant Garamond',Georgia,serif;font-weight:600;font-size:53px;letter-spacing:1.3px;line-height:54px;color:#003b5c;
}
.lp-rs-w{box-sizing:border-box}
.lp-rs-label[hidden],.lp-rs-w[hidden]{display:none}
.lp-rs-ctl{
  display:block;width:100%;height:100%;box-sizing:border-box;margin:0;
  border:0;box-shadow:0 0 0 2px rgba(217,185,175,.6);border-radius:28px;background:#fff;
  font-family:'EB Garamond',Georgia,serif;font-weight:500;font-size:63.5px;line-height:1.2;color:#000204;
  padding:0 56px;-webkit-appearance:none;appearance:none;outline:none;
}
.lp-rs-ctl::placeholder{color:#5e5e5e;opacity:1}
.lp-rs-select{
  padding-left:73px;padding-right:150px;cursor:pointer;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='40' height='40'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;background-size:56.6px 56.6px;
}
.lp-rs-select:disabled{opacity:1}
.lp-rs-area{padding-top:54px;padding-bottom:40px;resize:none;line-height:1.3;overflow-y:auto}
.lp-rs-ctl:focus-visible{outline:6px solid #003b5c;outline-offset:3px}
.lp-rs-ctl[aria-invalid="true"]{box-shadow:0 0 0 5px #b3261e}
.lp-rs-subw{overflow:visible}
.lp-rs-submit{
  display:block;width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;border:0;border-radius:36px;
  background:#65120f;color:#fff;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
  font-family:'Cormorant Garamond','EB Garamond',Georgia,serif;font-weight:600;font-size:51px;letter-spacing:9.6px;text-transform:uppercase;text-align:center;
}
.lp-rs-submit:active{background:#4a0d0b}
.lp-rs-submit:disabled{cursor:default;opacity:.86}
.lp-rs-submit:focus-visible{outline:6px solid #f7f1e8;outline-offset:-14px}
.lp-rs-status{
  margin:0;padding:6px 24px;text-align:center;box-sizing:border-box;border-radius:26px;background:rgba(255,255,255,.92);
  font-family:'EB Garamond',Georgia,serif;font-weight:500;font-size:62px;line-height:74px;color:#7a1010;
}
.lp-rs-status:empty{display:none}
.lp-rs-status.is-ok{color:#14532d}
.lp-rs-card{box-sizing:border-box;background:#fff;border:0;box-shadow:0 0 0 3px rgba(229,211,165,.95);border-radius:32px}
.lp-rs-ctxt{display:flex;flex-direction:column;justify-content:flex-start;box-sizing:border-box;padding:0 69px}
.lp-rs-ctxt[hidden],.lp-rs-card[hidden]{display:none}
.lp-rs-cin{width:100%;margin-top:67px}
.lp-rs-cname{font-family:'Cormorant Garamond','EB Garamond',Georgia,serif;font-style:italic;font-weight:600;font-size:69px;line-height:1.1;color:#003458;overflow-wrap:anywhere;margin-bottom:28px}
.lp-rs-cmsg{font-family:'EB Garamond',Georgia,serif;font-weight:500;font-size:57.6px;line-height:76px;color:#3a2226;overflow-wrap:anywhere}
/* RSVP replay: identical mechanism to Acara..Love Story (script.js setupReplay). Text fades + rises 24px; wish cards are structural;
   every control wrapper only fades and is skipped while it holds the focus. */
.lp-rsvp [data-mo="rs-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-rsvp [data-mo="rs-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-rsvp [data-mo="rs-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-rsvp.is-rsvp-active [data-mo="rs-in"]{animation-play-state:running}
.lp-rsvp.lp-js-replay.is-rsvp-active [data-mo="rs-in"]{animation-play-state:paused}
.lp-rsvp.lp-js-replay.is-rsvp-active [data-mo="rs-in"][data-mo-idle]{animation-play-state:running}

/* ---- Hadiah (Hadiah.psd, 1882x3693). Follows RSVP. PSD Layer 1 / Layer 1 copy are raster mock-ups of the gift cards (not shipped): the same
   rectangles are CSS panels with live text (Poppins, the PSD's geometric sans). Motion: card panels are structural, texts rise 24px, art per
   UA Motion Standard V1; the SALIN pill lives inside the card text and never idles. ---- */
.lp-hadiah{display:none;position:relative;width:100%;overflow:hidden;background:#c3b8a6;--bwk:2.3}
.lp-app.is-hero-active .lp-hadiah{display:block}
.lp-hadiah-scene{position:absolute;left:0;top:0;width:1882px;height:3693px;transform-origin:0 0;overflow:hidden}
.lp-hd-bgm{object-fit:fill}
.lp-hd-desc{
  box-sizing:border-box;text-align:center;min-height:270px;
  font-family:'Poppins','Helvetica Neue',Arial,sans-serif;font-weight:300;font-size:61px;line-height:90px;letter-spacing:2.25px;color:#f4f0ee;
  overflow-wrap:anywhere;
}
.lp-hd-slot{min-height:822px;box-sizing:border-box;}
.lp-hd-bg{
  position:absolute;left:2px;top:2px;right:2px;bottom:2px;border-radius:40px;
  background:linear-gradient(165deg,#f7f7f2 0%,#f9f9f4 40%,#f0f0ec 70%,#dedede 100%);
}
.lp-hd-body{
  position:relative;box-sizing:border-box;min-height:822px;display:flex;flex-direction:column;
  padding:115px 83px 97px 82px;
  font-family:'Poppins','Helvetica Neue',Arial,sans-serif;color:#040404;
}
.lp-hd-top{display:flex;justify-content:space-between;align-items:flex-start;min-height:231px;box-sizing:border-box;padding-bottom:44px;}
.lp-hd-title{
  flex:1 1 auto;min-width:0;font-weight:600;font-size:52px;line-height:62px;overflow-wrap:anywhere;
}
.lp-hd-logo{flex:0 0 294px;height:86px;margin:-21px -34px 0 24px;display:flex;justify-content:flex-end;align-items:center;}
.lp-hd-logo:empty{display:none;}
.lp-hd-logo.is-text{height:auto;min-height:0;align-items:flex-start;overflow:hidden;}
.lp-hd-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;}
.lp-hd-logo-t{font-weight:600;font-size:40px;line-height:1.2;text-align:right;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;max-width:100%;}
.lp-hd-lab{font-weight:300;font-size:40.5px;line-height:46px;letter-spacing:1px;color:#111;}
.lp-hd-numlab{margin-top:0px;}
.lp-hd-mid{display:flex;justify-content:space-between;align-items:center;margin-top:6px;margin-bottom:64px;}
.lp-hd-num{flex:1 1 auto;min-width:0;font-weight:600;font-size:56px;line-height:70px;letter-spacing:12px;overflow-wrap:anywhere;}
.lp-hd-copy{
  position:relative;flex:0 0 308px;width:308px;height:103px;margin:0 3px 0 24px;top:-10px;padding:0;border:0;border-radius:103px;
  background:#65120f;color:#fff;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
  display:flex;align-items:center;justify-content:center;gap:26px;
  font-family:'Poppins','Helvetica Neue',Arial,sans-serif;font-weight:500;font-size:38px;line-height:1;letter-spacing:.02em;
}
/* the pill keeps the PSD size; its invisible hit area reaches ~44 CSS px on a phone */
.lp-hd-copy::after{content:"";position:absolute;left:-28px;right:-28px;top:-66px;bottom:-66px;}
.lp-hd-copy:active{background:#4a0d0b;}
.lp-hd-copy.is-done{background:#3f5d2a;}
.lp-hd-copy:focus-visible{outline:6px solid #fff;outline-offset:6px;}
.lp-hd-ico{flex:none;width:31px;height:auto;pointer-events:none;}
.lp-hd-copy-t{pointer-events:none;white-space:nowrap;}
.lp-hd-bot{display:flex;justify-content:space-between;align-items:flex-start;margin-top:auto;padding-top:0px;}
.lp-hd-col{flex:1 1 50%;min-width:0;}
.lp-hd-colr{text-align:right;flex:0 1 auto;max-width:48%;}
.lp-hd-holder,.lp-hd-date{font-weight:600;font-size:47px;line-height:58px;overflow-wrap:anywhere;}
.lp-hd-holder{margin-top:13px;}
.lp-hd-date{margin-top:13px;}
.lp-hd-slot[hidden],.lp-hd-lab[hidden],.lp-hd-holder[hidden],.lp-hd-date[hidden]{display:none;}

/* Hadiah replay: identical mechanism to Acara..RSVP (script.js setupReplay). */
.lp-hadiah [data-mo="hd-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1300ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-hadiah [data-mo="hd-in"][data-ua-role^="decorative"]{animation-timing-function:cubic-bezier(.25,.85,.3,1.15)}
.lp-hadiah [data-mo="hd-in"][data-mo-idle]{
  animation-name:lpRpIn,lpRpLive;
  animation-duration:var(--mo-dur,1400ms),var(--mo-i-dur,12000ms);
  animation-delay:var(--mo-d,0ms),calc(var(--mo-d,0ms) + var(--mo-dur,1400ms) + var(--mo-i-off,0ms));
  animation-timing-function:cubic-bezier(.25,.85,.3,1.15),ease-in-out;
  animation-iteration-count:1,infinite;
  animation-fill-mode:both,none;
}
.lp-hadiah.is-hadiah-active [data-mo="hd-in"]{animation-play-state:running}
.lp-hadiah.lp-js-replay.is-hadiah-active [data-mo="hd-in"]{animation-play-state:paused}
.lp-hadiah.lp-js-replay.is-hadiah-active [data-mo="hd-in"][data-mo-idle]{animation-play-state:running}

/* ---- Closing (Clousing.psd, 1882x3971). The last section. Ground #B2A287 = the PSD's Layer 5 panel; the photo (canonical bg_penutup,
   cover-cropped) sits in the top 3300px under a one-piece veil measured from the PSD's Gradient Fill (colour #B2A287, alpha .306 -> 1 by
   3150px). Text = live (Arimo like the PSD's Arial, Tinos italic like its Times); the footer (badge, two social links, music disc) is plain
   stable controls whose wrappers only fade. ---- */
.lp-closing{display:none;position:relative;width:100%;overflow:hidden;background:#b2a287;--bwk:2.3}
.lp-app.is-hero-active .lp-closing{display:block}
.lp-closing-scene{position:absolute;top:0;left:0;width:1882px;height:3971px;transform-origin:0 0}
.lp-cl-photo{overflow:hidden;background-color:#b2a287;}
.lp-cl-photo[hidden],.lp-cl-veil[hidden]{display:none;}
.lp-cl-img{position:absolute;inset:0;background-size:cover;background-position:50% 12%;background-repeat:no-repeat;}
.lp-cl-veil{height:3304px !important;background:linear-gradient(to bottom,rgba(178,162,135,0.306) 0px,rgba(178,162,135,0.36) 300px,rgba(178,162,135,0.419) 600px,rgba(178,162,135,0.485) 900px,rgba(178,162,135,0.554) 1200px,rgba(178,162,135,0.626) 1500px,rgba(178,162,135,0.701) 1800px,rgba(178,162,135,0.777) 2100px,rgba(178,162,135,0.852) 2400px,rgba(178,162,135,0.922) 2700px,rgba(178,162,135,0.985) 3000px,rgb(178,162,135) 3150px,rgb(178,162,135) 3304px);}
.lp-cl-body{position:absolute;left:0;top:0;width:1882px;height:3971px;pointer-events:none;}
.lp-cl-body .lp-cl-w,.lp-cl-body a,.lp-cl-body button{pointer-events:auto;}
.lp-cl-kata,.lp-cl-blessed,.lp-cl-names{margin:0;text-align:center;overflow-wrap:anywhere;}
.lp-cl-kata{
  box-sizing:border-box;min-height:224px;
  font-family:'Arimo','Helvetica Neue',Arial,sans-serif;font-weight:400;font-size:62.5px;line-height:112px;color:#000;
}
.lp-cl-blessed{
  font-family:'Arimo','Helvetica Neue',Arial,sans-serif;font-weight:400;font-size:55px;line-height:60px;color:#000;white-space:nowrap;
}
.lp-cl-names{
  display:block;box-sizing:border-box;min-height:133px;
  font-family:'Tinos','Times New Roman',Times,serif;font-style:italic;font-weight:400;font-size:133px;line-height:1;color:#940000;white-space:nowrap;
}
.lp-cl-names:empty{display:none;}
.lp-cl-w{box-sizing:border-box;}
.lp-cl-a{display:block;position:relative;width:100%;height:100%;-webkit-tap-highlight-color:transparent;}
.lp-cl-a img{display:block;width:100%;height:100%;pointer-events:none;}
/* invisible hit areas: the badge/icons are 28-37 CSS px on a phone; they reach ~40 without overlapping each other */
.lp-cl-a::after{content:"";position:absolute;left:-24px;right:-24px;top:-24px;bottom:-24px;border-radius:50%;}
.lp-cl-a:focus-visible{outline:4px solid #fff;outline-offset:6px;border-radius:50%;}
.lp-cl-music{
  position:relative;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;
  -webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
}
.lp-cl-music img{display:block;width:100%;height:100%;opacity:.72;transition:opacity .3s ease;pointer-events:none;}
.lp-cl-music.is-on img{opacity:1;}
.lp-cl-music::after{content:"";position:absolute;left:-40px;right:-40px;top:-40px;bottom:-40px;border-radius:50%;}
.lp-cl-music:focus-visible{outline:5px solid #fff;outline-offset:8px;}

/* Closing replay: identical mechanism to Acara..Hadiah (script.js setupReplay). Text fades + rises 24px; the photo and the footer wrappers only
   fade. No idle (the PSD has no ornament) and the music disc never moves. */
.lp-closing [data-mo="cl-in"]{
  animation-name:lpRpIn;
  animation-duration:var(--mo-dur,1200ms);
  animation-delay:var(--mo-d,0ms);
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
  animation-fill-mode:both;
  animation-play-state:paused;
}
.lp-closing.is-closing-active [data-mo="cl-in"]{animation-play-state:running}
.lp-closing.lp-js-replay.is-closing-active [data-mo="cl-in"]{animation-play-state:paused}
