.section-ornaments{position:absolute!important;z-index:1!important;inset:0;overflow:hidden;pointer-events:none}
.section-ornaments .ornament{position:absolute;display:block;max-width:none;object-fit:contain;filter:drop-shadow(0 10px 18px #000c)}

/* Slim jewelry-inspired side frame: decorative, but quieter than the florals. */
main>section:not(#sample-qr-checkin):before,main>footer:before{
  content:"";
  position:absolute;
  z-index:2;
  top:54px;
  right:13px;
  bottom:70px;
  left:13px;
  pointer-events:none;
  background:
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%) left top/8px 8px no-repeat,
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%) right top/8px 8px no-repeat,
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%) left bottom/8px 8px no-repeat,
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%) right bottom/8px 8px no-repeat,
    radial-gradient(circle,#f7dda2 0 1px,#936a2e 1.5px 2.5px,transparent 3px) left center/7px 25% no-repeat,
    radial-gradient(circle,#f7dda2 0 1px,#936a2e 1.5px 2.5px,transparent 3px) right center/7px 25% no-repeat,
    linear-gradient(180deg,transparent,#e8c77e 9%,#8c622a 47%,#e8c77e 91%,transparent) left 3px top/1px 100% no-repeat,
    linear-gradient(180deg,transparent,#e8c77e 9%,#8c622a 47%,#e8c77e 91%,transparent) right 3px top/1px 100% no-repeat,
    linear-gradient(180deg,transparent,#76501f 13%,#d9b56b99 50%,#76501f 87%,transparent) left 7px top/1px 100% no-repeat,
    linear-gradient(180deg,transparent,#76501f 13%,#d9b56b99 50%,#76501f 87%,transparent) right 7px top/1px 100% no-repeat;
  filter:drop-shadow(0 0 5px #d5ad5740);
  opacity:.88;
  animation:jewel-frame-lustre 6s ease-in-out infinite;
}
.section-ornaments .garland{left:4%;width:92%;animation:garland-float 6.5s ease-in-out infinite}
.section-ornaments .garland.top{top:-10px}
.section-ornaments .bottom-garland{left:6%;bottom:-16px;width:88%;transform:rotate(180deg);animation-name:garland-float-bottom}
.section-ornaments .side-vine{width:120px;opacity:.78}
.section-ornaments .side-vine.left{top:12%;left:-58px;animation:vine-sway-left 8s ease-in-out infinite}
.section-ornaments .side-vine.right{top:20%;right:-58px;animation:vine-sway-right 8.6s ease-in-out infinite}
.section-ornaments .side-vine.right.flip{transform:scaleX(-1);animation-name:vine-sway-flip}
.section-ornaments .bouquet{left:14%;bottom:-52px;width:72%;animation:bouquet-bloom 7s ease-in-out infinite}
.section-ornaments .bouquet.bottom-small{left:22%;bottom:-34px;width:56%;opacity:.88}
.section-ornaments .divider{left:17.5%;width:65%;filter:drop-shadow(0 7px 13px #000d);animation:divider-glint 4.5s ease-in-out infinite}
.section-ornaments .top-divider{top:8px}
.section-ornaments .bottom-divider{bottom:14px;transform:rotate(180deg);animation-name:divider-glint-bottom}
.opening .section-ornaments .top{top:-12px}
.opening .section-ornaments .bottom-small{bottom:-40px}
.vow .side-vine{top:10%;left:-65px;width:130px;opacity:.72}
.events .side-vine{top:28%;right:-58px;width:116px;opacity:.68}
.vow .bouquet,.events .bouquet,.gallery .bouquet,.gift .bouquet{bottom:-58px}
.gift .side-vine{width:112px;opacity:.64}
.gift .side-vine.left{top:12%;left:-57px}
.gift .side-vine.right{top:28%;right:-57px}
.rsvp .garland{top:-12px}
.rsvp .bouquet{bottom:-44px}
footer .side-vine{width:108px;opacity:.62}
footer .side-vine.left{top:12%;left:-58px}
footer .side-vine.right{top:20%;right:-58px}
footer .bottom-garland{bottom:-18px}

.royal-closing{isolation:isolate;background:#080305!important}
.royal-closing>.invitation-countdown{display:none!important}
.royal-closing .closing-photo{position:absolute!important;z-index:0!important;inset:0;overflow:hidden}
.royal-closing .closing-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:saturate(.55) contrast(1.12) brightness(.46);transform:scale(1.04);animation:closing-cinema 14s ease-in-out infinite alternate}
.royal-closing .closing-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#090305d9 0%,#16070ca3 34%,#090305c4 72%,#080305f5 100%),radial-gradient(circle at 50% 43%,transparent 0 16%,#080305b0 68%)}
.royal-closing .section-ornaments{z-index:2!important}
.royal-closing .top-divider{top:17px;left:18%;width:64%;opacity:.9}
.royal-closing .bottom-garland{left:3%;bottom:-13px;width:94%;opacity:.96}
.royal-closing .closing-card{position:relative;z-index:3;display:flex;width:100%;max-width:350px;flex-direction:column;align-items:center;padding:36px 24px 42px;border:1px solid #d5b26870;background:linear-gradient(145deg,#1005088c,#5d0d2736,#0b0406a6);box-shadow:inset 0 0 0 5px #0803058f,0 24px 65px #000a;backdrop-filter:blur(4px)}
.closing-monogram{display:flex;width:92px;height:92px;align-items:center;justify-content:center;gap:6px;margin-bottom:19px;border:1px solid #e5c67d;border-radius:50%;background:radial-gradient(circle,#6511288c,#100508d9 70%);box-shadow:0 0 0 5px #0b0406b8,0 0 0 6px #d7b36b69,0 0 38px #a9143c65;color:#fff1d4;font:500 28px Cormorant Garamond;animation:monogram-pulse 4s ease-in-out infinite}
.closing-monogram b{color:#dfbd73;font-size:14px;font-weight:500}
.royal-closing .eyebrow{margin-bottom:10px}
.royal-closing h2{margin:0;font-size:48px;text-shadow:0 7px 24px #000}
.royal-closing .closing-line{width:88px;height:1px;margin:17px 0;background:linear-gradient(90deg,transparent,#dfbd74,transparent)}
.royal-closing .closing-card p{max-width:280px;color:#d0bfb2;font-size:9px;line-height:1.8}
.royal-closing .closing-card small{margin-top:14px;color:#e3c57e;font-size:8px;letter-spacing:2.6px}
.royal-closing .closing-card>a{margin-top:19px;color:#b8a487;font-size:6px;letter-spacing:2.4px;text-decoration:none}

#sample-qr-checkin:before,#sample-qr-checkin:after{content:"";position:absolute;z-index:0;display:block;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:contain;transform:none;text-shadow:none;letter-spacing:normal}
#sample-qr-checkin{
  --jewel-rail-x:13px;
  overflow-y:hidden!important;
  background-image:
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%),
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%),
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%),
    linear-gradient(45deg,transparent 39%,#e7c67d 40% 60%,transparent 61%),
    radial-gradient(circle,#f7dda2 0 1px,#936a2e 1.5px 2.5px,transparent 3px),
    radial-gradient(circle,#f7dda2 0 1px,#936a2e 1.5px 2.5px,transparent 3px),
    linear-gradient(180deg,transparent,#e8c77e 9%,#8c622a 47%,#e8c77e 91%,transparent),
    linear-gradient(180deg,transparent,#e8c77e 9%,#8c622a 47%,#e8c77e 91%,transparent),
    linear-gradient(180deg,transparent,#76501f 13%,#d9b56b99 50%,#76501f 87%,transparent),
    linear-gradient(180deg,transparent,#76501f 13%,#d9b56b99 50%,#76501f 87%,transparent),
    radial-gradient(circle at 50% 45%,#510b1e44,transparent 42%),
    linear-gradient(150deg,#14070b,#080305 62%);
  background-position:
    left var(--jewel-rail-x) top 54px,right var(--jewel-rail-x) top 54px,
    left var(--jewel-rail-x) bottom 70px,right var(--jewel-rail-x) bottom 70px,
    left var(--jewel-rail-x) center,right var(--jewel-rail-x) center,
    left calc(var(--jewel-rail-x) + 3px) top 54px,right calc(var(--jewel-rail-x) + 3px) top 54px,
    left calc(var(--jewel-rail-x) + 7px) top 54px,right calc(var(--jewel-rail-x) + 7px) top 54px,
    center,center;
  background-size:
    8px 8px,8px 8px,8px 8px,8px 8px,7px 25%,7px 25%,
    1px calc(100% - 124px),1px calc(100% - 124px),1px calc(100% - 124px),1px calc(100% - 124px),
    auto,auto;
  background-repeat:no-repeat;
}
#sample-qr-checkin:before{top:8px;left:17.5%;width:65%;aspect-ratio:3/1;background-image:url('/images/ornaments/mawar-merah-tanda-cinta/divider.webp');filter:drop-shadow(0 7px 13px #000d);animation:divider-glint 4.5s ease-in-out infinite}
#sample-qr-checkin:after{top:auto;right:auto;left:14%;bottom:-58px;width:72%;aspect-ratio:3/2;background-image:url('/images/ornaments/mawar-merah-tanda-cinta/bouquet.webp');filter:drop-shadow(0 10px 18px #000c);animation:bouquet-bloom 7s ease-in-out infinite}
#sample-qr-checkin .sample-qr-content{z-index:3}
#sample-qr-checkin .sample-qr-eyebrow{margin-bottom:8px!important;font-size:8px!important;letter-spacing:2.4px!important}
#sample-qr-checkin h2{margin-bottom:8px!important;font-size:31px!important}
#sample-qr-checkin p{margin:7px 0!important;font-size:11px!important;line-height:1.55!important}
#sample-qr-checkin .sample-qr-name{margin-top:11px!important;font-size:15px!important}
#sample-qr-checkin img{width:min(100%,220px)!important;margin:13px auto!important;padding:8px!important;border-radius:13px!important}
#sample-qr-checkin .sample-qr-download{min-height:38px!important;padding:8px 18px!important;font-size:11px!important}
#sample-qr-checkin .sample-qr-note{margin-top:11px!important;font-size:9px!important;line-height:1.55!important}

.cover .cover-ornaments{z-index:1!important}
.cover .cover-ornaments .garland{top:-24px;left:5%;width:90%;opacity:.95}
.cover .cover-ornaments .side-vine{display:none}
.cover .cover-ornaments .side-vine.left{left:-55px}
.cover .cover-ornaments .side-vine.right{right:-55px}
.cover .cover-ornaments .bouquet{left:25%;bottom:-35px;width:50%;opacity:.82}
.cover-content{gap:0}
.cover-floral-crest{position:relative;width:185px;height:211px;margin:13px 0 3px}
.cover-floral-crest .crest-frame{position:absolute;z-index:2;inset:-18px -15px;width:215px;height:248px;object-fit:contain;filter:drop-shadow(0 12px 20px #000d);animation:crest-breathe 6s ease-in-out infinite}
.cover-floral-crest .portrait{z-index:1;inset:31px 30px 31px}
.cover-floral-crest .portrait img{filter:saturate(.82) brightness(1.06) contrast(1.04)}
.cover-floral-crest .portrait:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,transparent 68%,#18070c42);pointer-events:none}
.cover h1{margin:2px 0 0;font-size:46px}
.cover .date{margin-top:8px}
.cover .guest{margin:11px 0 10px}
.cover .demo-info{margin-top:6px}
.cover>.invitation-countdown{margin:7px 0 0}

@keyframes garland-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(7px) scale(1.018)}}
@keyframes garland-float-bottom{0%,100%{transform:rotate(180deg) translateY(0) scale(1)}50%{transform:rotate(180deg) translateY(7px) scale(1.018)}}
@keyframes vine-sway-left{0%,100%{transform:rotate(-1.5deg) translateY(0)}50%{transform:rotate(1.8deg) translateY(7px)}}
@keyframes vine-sway-right{0%,100%{transform:rotate(1.5deg) translateY(0)}50%{transform:rotate(-1.8deg) translateY(7px)}}
@keyframes vine-sway-flip{0%,100%{transform:scaleX(-1) rotate(-1.5deg) translateY(0)}50%{transform:scaleX(-1) rotate(1.8deg) translateY(7px)}}
@keyframes bouquet-bloom{0%,100%{transform:scale(1) translateY(0);filter:drop-shadow(0 10px 18px #000c)}50%{transform:scale(1.025) translateY(-5px);filter:drop-shadow(0 13px 22px #000e) drop-shadow(0 0 9px #c99e4a55)}}
@keyframes divider-glint{0%,100%{transform:translateY(0);filter:drop-shadow(0 7px 13px #000d)}50%{transform:translateY(4px);filter:drop-shadow(0 9px 15px #000e) drop-shadow(0 0 7px #e4c77b70)}}
@keyframes divider-glint-bottom{0%,100%{transform:rotate(180deg) translateY(0);filter:drop-shadow(0 7px 13px #000d)}50%{transform:rotate(180deg) translateY(4px);filter:drop-shadow(0 9px 15px #000e) drop-shadow(0 0 7px #e4c77b70)}}
@keyframes closing-cinema{to{transform:scale(1.1) translateY(-1.5%)}}
@keyframes jewel-frame-lustre{0%,100%{opacity:.68;filter:drop-shadow(0 0 3px #d5ad572e)}50%{opacity:1;filter:drop-shadow(0 0 7px #edcf8170)}}

@media(max-width:480px){
  main>section:not(#sample-qr-checkin):before,main>footer:before{right:10px;left:10px}
  #sample-qr-checkin{--jewel-rail-x:10px}
  .section-ornaments .garland{width:94%;left:3%}
  .section-ornaments .side-vine{width:116px}
  .section-ornaments .bouquet{width:74%;left:13%}
  .section-ornaments .divider{width:68%;left:16%}
  .cover .cover-ornaments .garland{left:4%;width:92%}
  .royal-closing .closing-card{width:100%}
  .royal-closing h2{font-size:42px}
  #sample-qr-checkin:before{left:16%;width:68%}
  #sample-qr-checkin:after{left:13%;width:74%}
}

@media(max-height:700px){
  main>section:not(#sample-qr-checkin):before,main>footer:before{top:38px;bottom:60px}
  #sample-qr-checkin{background-position:left var(--jewel-rail-x) top 38px,right var(--jewel-rail-x) top 38px,left var(--jewel-rail-x) bottom 60px,right var(--jewel-rail-x) bottom 60px,left var(--jewel-rail-x) center,right var(--jewel-rail-x) center,left calc(var(--jewel-rail-x) + 3px) top 38px,right calc(var(--jewel-rail-x) + 3px) top 38px,left calc(var(--jewel-rail-x) + 7px) top 38px,right calc(var(--jewel-rail-x) + 7px) top 38px,center,center;background-size:8px 8px,8px 8px,8px 8px,8px 8px,7px 25%,7px 25%,1px calc(100% - 98px),1px calc(100% - 98px),1px calc(100% - 98px),1px calc(100% - 98px),auto,auto}
  .section-ornaments .garland.top{top:-28px;width:82%;left:9%}
  .section-ornaments .bouquet{bottom:-62px;width:62%;left:19%}
  .section-ornaments .bouquet.bottom-small{bottom:-48px;width:48%;left:26%}
  .section-ornaments .side-vine{width:96px}
  .section-ornaments .divider{width:58%;left:21%}
  .section-ornaments .bottom-divider{bottom:7px}
  .cover .cover-ornaments .garland{top:-32px;width:78%;left:11%}
  .cover .cover-ornaments .side-vine{width:74px;opacity:.27}
  .cover .cover-ornaments .side-vine.left{left:-47px}
  .cover .cover-ornaments .side-vine.right{right:-47px}
  .cover .cover-ornaments .bouquet{bottom:-45px;width:42%;left:29%}
  .cover-floral-crest{width:118px;height:135px;margin:6px 0 2px}
  .cover-floral-crest .crest-frame{inset:-12px -10px;width:138px;height:159px}
  .cover-floral-crest .portrait{inset:20px 19px 20px}
  .cover h1{font-size:38px}
  .cover .date{margin-top:4px}
  .cover .guest{margin:6px 0}
  .cover .demo-info{display:none}
  .cover>.invitation-countdown{margin:3px 0 0}
  .royal-closing .top-divider{top:8px;width:54%;left:23%}
  .royal-closing .bottom-garland{bottom:-22px;width:88%;left:6%}
  .royal-closing .closing-card{width:100%;padding:22px 19px 25px}
  .closing-monogram{width:67px;height:67px;margin-bottom:11px;font-size:22px}
  .royal-closing .eyebrow{margin-bottom:6px}
  .royal-closing h2{font-size:39px}
  .royal-closing .closing-line{margin:11px 0}
  .royal-closing .closing-card small{margin-top:9px}
  .royal-closing .closing-card>a{margin-top:11px}
  #sample-qr-checkin:before{left:21%;width:58%}
  #sample-qr-checkin:after{left:19%;bottom:-62px;width:62%}
  #sample-qr-checkin h2{font-size:27px!important}
  #sample-qr-checkin p{font-size:10px!important}
  #sample-qr-checkin img{width:min(100%,180px)!important;margin:9px auto!important}
  #sample-qr-checkin .sample-qr-note{font-size:8px!important}
}

/* Desktop presentation: keep the editorial panel aligned with the invitation column. */
.desktop{inset:0 calc(460px + 7vw) 0 0;background:radial-gradient(circle at 63% 48%,#6b0d245e 0,transparent 34%),radial-gradient(circle at 34% 55%,#3f091653 0,transparent 32%),linear-gradient(120deg,#080305,#19070d 48%,#070304)}
.desktop:before{z-index:4;border-block:0;box-shadow:none;pointer-events:none}
.desktop:after{content:"";position:absolute;z-index:4;inset:24px 32px;border-inline:1px solid #d8b46b22;pointer-events:none}
.desktop-ornaments{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.desktop-garland{position:absolute;top:8px;left:50%;width:min(72%,680px);transform:translateX(-50%);filter:drop-shadow(0 16px 28px #000);animation:desktop-garland-breathe 8s ease-in-out infinite}
.desktop-bouquet{position:absolute;bottom:8px;left:50%;width:min(43%,430px);transform:translateX(-50%);filter:drop-shadow(0 -8px 24px #000);animation:desktop-bouquet-breathe 9s ease-in-out infinite}
.desktop-layout{position:absolute;z-index:2;inset:92px 58px 104px;display:grid;grid-template-columns:minmax(290px,380px) minmax(250px,350px);align-items:center;justify-content:center;gap:clamp(38px,4vw,90px);max-width:1050px;margin:auto}
.desktop-copy{position:relative;left:auto;bottom:auto;z-index:2;max-width:380px}
.desktop-portrait{position:relative;width:min(23vw,340px);aspect-ratio:5/6;justify-self:start;filter:drop-shadow(0 22px 36px #000)}
.desktop-portrait-photo{position:absolute;z-index:1;inset:15% 17% 15%;overflow:hidden;border:1px solid #d6b56e;border-radius:48% 48% 43% 43%;background:#17080c;box-shadow:inset 0 0 0 5px #0b0406,0 15px 32px #000}
.desktop-portrait-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%;filter:saturate(.72) contrast(1.06)}
.desktop-portrait-frame{position:absolute;z-index:2;inset:-5%;width:110%;height:110%;object-fit:contain;animation:crest-breathe 6s ease-in-out infinite}

@keyframes desktop-garland-breathe{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.018)}}
@keyframes desktop-bouquet-breathe{0%,100%{transform:translateX(-50%) translateY(0) scale(1)}50%{transform:translateX(-50%) translateY(-5px) scale(1.02)}}

@media(min-width:851px) and (max-width:1320px){
  .desktop-layout{inset:105px 48px 112px;display:flex;align-items:center;justify-content:center}
  .desktop-copy{max-width:340px;text-align:center}
  .desktop-copy p{margin-inline:auto}
  .desktop h2{font-size:50px}
  .desktop-portrait{display:none}
  .desktop-garland{top:8px;width:min(86%,520px)}
  .desktop-bouquet{bottom:8px;width:min(62%,330px)}
}

@media(prefers-reduced-motion:reduce){.section-ornaments .ornament,#sample-qr-checkin:before,#sample-qr-checkin:after,main>section:not(#sample-qr-checkin):before,main>footer:before,.desktop-garland,.desktop-bouquet,.desktop-portrait-frame{animation:none!important}}
