/* Sakura Blossom theme — all theme-specific CSS in one file. */
/* =========================================================
   STAGE 10 — SAKURA BLOSSOM TEMPLATE
   ========================================================= */
.template-mini-sakura,.create-template-art.template-sakura{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 18% 14%,rgba(255,196,214,.38),transparent 28%),
    radial-gradient(circle at 86% 82%,rgba(255,210,222,.45),transparent 31%),
    linear-gradient(150deg,#fff9fa 0%,#fdeef3 50%,#fffaf8 100%)!important;
  color:#5a343e;
}
.template-mini-sakura:before,.template-mini-sakura:after,.create-template-art.template-sakura:before,.create-template-art.template-sakura:after{
  content:'✿  ✿  ✿';position:absolute;color:#e97d9f;letter-spacing:4px;font-size:18px;opacity:.75;transform:rotate(-18deg)
}
.template-mini-sakura:before,.create-template-art.template-sakura:before{left:-7px;top:8px}
.template-mini-sakura:after,.create-template-art.template-sakura:after{right:-13px;bottom:10px;transform:rotate(156deg)}
.create-template-art.template-sakura span,.template-mini-sakura b{font-family:'Great Vibes','Cormorant Garamond',cursive;color:#9e3156}
.sakura-mini-flowers{position:absolute!important;bottom:11px!important;right:10px;font:400 12px/1 serif!important;color:#e57b9d!important;letter-spacing:2px}
.create-template-grid{grid-template-columns:repeat(4,1fr)}

/* Builder live Sakura preview */
.live-invite.template-sakura{
  background:
    radial-gradient(circle at 50% 20%,rgba(255,255,255,.96),transparent 38%),
    linear-gradient(180deg,#fff9fa 0%,#fcebf1 48%,#fff9f7 100%)!important;
  color:#51313b;
}
.template-sakura .live-decor{display:none}
.template-sakura .live-eyebrow{color:#855363;letter-spacing:.18em}
.template-sakura .live-monogram{font-family:'Cormorant Garamond',serif;color:#b65a78}
.template-sakura h2{font-family:'Great Vibes','Cormorant Garamond',cursive!important;font-size:43px!important;line-height:.82!important;color:#a02f57;margin-top:13px}
.template-sakura h2 i{font-family:'Cormorant Garamond',serif;color:#b78754!important;font-size:15px!important;margin:4px 0}
.template-sakura .live-rule{background:linear-gradient(90deg,transparent,#c99b67,transparent)}
.template-sakura .live-rsvp{border-radius:999px;background:#b83f68;color:#fff;border-color:#b83f68;padding-inline:20px}
.template-sakura .live-story-preview{border-color:rgba(181,94,123,.25)}
.live-sakura-branch{display:none;position:absolute;width:155px;height:90px;pointer-events:none;z-index:0}
.template-sakura .live-sakura-branch{display:block}
.live-sakura-branch:before{content:'';position:absolute;width:150px;height:3px;border-radius:50%;background:#765142;left:0;top:30px;transform:rotate(22deg);transform-origin:left center;opacity:.72}
.live-sakura-branch i{position:absolute;width:15px;height:15px;background:radial-gradient(circle,#f8d0dc 0 18%,#f39ab5 20% 45%,#e26e95 47% 55%,transparent 58%);border-radius:50%;filter:drop-shadow(0 1px 1px rgba(100,30,55,.13))}
.live-sakura-branch i:nth-child(1){left:24px;top:23px}.live-sakura-branch i:nth-child(2){left:51px;top:35px}.live-sakura-branch i:nth-child(3){left:82px;top:35px}.live-sakura-branch i:nth-child(4){left:113px;top:49px}.live-sakura-branch i:nth-child(5){left:136px;top:52px}
.live-sakura-top{top:0;left:-9px;transform:rotate(-6deg)}.live-sakura-bottom{right:-7px;bottom:10px;transform:rotate(171deg)}

/* Public Sakura palette */
.public-template-sakura{
  --w-bg:#fff8fa;--w-paper:#fffdfc;--w-ink:#54343e;--w-muted:#815f68;--w-gold:#b98a58;--w-line:#edd1da;
  background:#fff8fa;
}
.public-template-sakura .guest-nav{background:rgba(255,250,251,.88);border-bottom-color:rgba(180,91,120,.14)}
.public-template-sakura .guest-brand{font-family:'Great Vibes','Cormorant Garamond',cursive;color:#a6365b;font-size:28px;letter-spacing:0}
.public-template-sakura .wedding-hero{
  background:
    radial-gradient(circle at 50% 23%,rgba(255,255,255,.98),rgba(255,246,249,.82) 45%,rgba(250,224,233,.72) 100%),
    #fff6f8;
  min-height:760px;isolation:isolate;overflow:hidden;
}
.public-template-sakura .wedding-hero.has-photo:before{opacity:.12;filter:saturate(.65) brightness(1.25)}
.public-template-sakura .wedding-hero-overlay{background:linear-gradient(180deg,rgba(255,250,251,.36),rgba(255,244,247,.76))}
.public-template-sakura .wedding-hero-content{z-index:4;max-width:820px}
.public-template-sakura .wedding-eyebrow,.public-template-sakura .section-kicker{color:#a35b72;letter-spacing:.22em}
.public-template-sakura .hero-monogram{color:#bd7189;border-color:#e6b3c3;background:rgba(255,255,255,.42)}
.public-template-sakura .wedding-hero h1{font-family:'Great Vibes','Cormorant Garamond',cursive;font-weight:400;color:#9f3156;letter-spacing:0;text-shadow:0 2px 0 rgba(255,255,255,.7)}
.public-template-sakura .wedding-hero h1 span{font-size:clamp(72px,9vw,132px);line-height:.72}
.public-template-sakura .wedding-hero h1 i{font-family:'Cormorant Garamond',serif;font-size:28px;color:#b98a58;margin:12px 0 7px}
.public-template-sakura .hero-intro{font-family:'Cormorant Garamond',serif;font-size:22px;line-height:1.7;color:#75535e}
.public-template-sakura .hero-date-line{color:#6b4551;border-color:#d9ae83}
.public-template-sakura .hero-venue{color:#8f3d5b}
.public-template-sakura .wedding-primary-btn{background:linear-gradient(135deg,#bf426d,#a83259);border-color:#a83259;border-radius:999px;box-shadow:0 12px 28px rgba(168,50,89,.18)}
.public-template-sakura .family-invitation{background:linear-gradient(180deg,#fff9fa,#fcecf2)}
.public-template-sakura .parents-grid>div{background:rgba(255,255,255,.55);border-color:#e7c4cf}
.public-template-sakura .parents-grid small{color:#a44a68}
.public-template-sakura .formal-invitation-message{color:#704f59;font-style:italic}
.public-template-sakura .countdown-section{background:#ad385f;color:#fff}
.public-template-sakura .countdown-section .section-kicker,.public-template-sakura .countdown-section h2{color:#fff}
.public-template-sakura .countdown-grid>div{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.28)}
.public-template-sakura .countdown-grid strong{color:#fff}
.public-template-sakura .gold-rule{background:linear-gradient(90deg,transparent,#c77b94,transparent)}
.public-template-sakura .story-section,.public-template-sakura .details-section{background:#fffaf9}
.public-template-sakura .wedding-gallery{background:#fceef3}
.public-template-sakura .wedding-events-list{border-color:#e8c5d0}.public-template-sakura .wedding-events-list article{border-color:#ead1d9}.public-template-sakura .event-time{color:#a43b60}
.public-template-sakura .rsvp-section{background:linear-gradient(145deg,#f8dfe8,#fff8f9 62%,#f3d9e3)}
.public-template-sakura .rsvp-card{border-color:#e8bdcb;box-shadow:0 30px 80px rgba(128,53,77,.11)}
.public-template-sakura .closing-section{background:#9f3156;color:#fff}.public-template-sakura .closing-section h2{font-family:'Great Vibes','Cormorant Garamond',cursive;font-size:64px}.public-template-sakura .closing-section a,.public-template-sakura .closing-section button{color:#fff;border-color:rgba(255,255,255,.45)}

/* Sakura branches built with CSS, with slow swaying motion */
.sakura-branch{position:absolute;width:420px;height:240px;pointer-events:none;z-index:3;transform-origin:0 50%;animation:sakuraSway 8s ease-in-out infinite alternate}
.sakura-branch>span{position:absolute;left:6px;top:112px;width:390px;height:12px;border-radius:70% 20% 70% 20%;background:linear-gradient(90deg,#5c3c34,#83564b 55%,#5d3b34);transform:rotate(18deg);box-shadow:0 1px 1px rgba(63,34,29,.15)}
.sakura-branch>span:before,.sakura-branch>span:after{content:'';position:absolute;width:160px;height:6px;border-radius:100%;background:#70483f;transform-origin:left center}
.sakura-branch>span:before{left:128px;top:-4px;transform:rotate(-34deg)}.sakura-branch>span:after{left:230px;top:6px;transform:rotate(34deg)}
.sakura-branch i{position:absolute;width:42px;height:42px;border-radius:50%;background:
 radial-gradient(circle at 50% 50%,#f8d84c 0 5%,#ef7b9e 7% 12%,transparent 13%),
 radial-gradient(ellipse at 50% 9%,#ffd8e3 0 24%,#f08eaa 25% 40%,transparent 41%),
 radial-gradient(ellipse at 91% 43%,#ffd8e3 0 24%,#ef8aaa 25% 40%,transparent 41%),
 radial-gradient(ellipse at 76% 88%,#ffd8e3 0 24%,#ed83a3 25% 40%,transparent 41%),
 radial-gradient(ellipse at 21% 88%,#ffd8e3 0 24%,#f091ad 25% 40%,transparent 41%),
 radial-gradient(ellipse at 8% 40%,#ffd8e3 0 24%,#ef89a7 25% 40%,transparent 41%);
 filter:drop-shadow(0 3px 4px rgba(145,66,91,.12));animation:blossomBreathe 4.7s ease-in-out infinite alternate}
.sakura-branch i:nth-of-type(1){left:32px;top:88px}.sakura-branch i:nth-of-type(2){left:106px;top:124px;transform:scale(.76)}.sakura-branch i:nth-of-type(3){left:174px;top:62px;transform:scale(1.12)}.sakura-branch i:nth-of-type(4){left:239px;top:132px;transform:scale(.88)}.sakura-branch i:nth-of-type(5){left:301px;top:76px;transform:scale(.72)}.sakura-branch i:nth-of-type(6){left:350px;top:138px;transform:scale(1.05)}
.hero-sakura-a{left:-82px;top:36px;transform:rotate(-10deg)}.hero-sakura-b{right:-95px;bottom:42px;transform:rotate(170deg);animation-delay:-3s}.opening-sakura{width:330px;height:190px;opacity:.88}.opening-sakura>span{width:300px;top:88px}.opening-sakura i{transform:scale(.76)}.opening-sakura-a{left:-110px;top:-14px;transform:rotate(-8deg)}.opening-sakura-b{right:-135px;bottom:-20px;transform:rotate(165deg);animation-delay:-2s}
.public-template-sakura .opening-card{overflow:hidden;background:linear-gradient(160deg,#fffdfd,#fcebf1);border-color:#e8b9c8;box-shadow:0 28px 75px rgba(130,45,75,.18)}
.public-template-sakura .opening-card h1{font-family:'Great Vibes','Cormorant Garamond',cursive;color:#9f3156;font-size:60px;font-weight:400}
.public-template-sakura .opening-monogram{border-color:#dda8b9;color:#b45575}.public-template-sakura .opening-button{background:#ab365e;border-radius:999px}

/* Sakura falling petals. Existing JS creates .petal nodes. */
.public-template-sakura .petal-layer{z-index:3}
.public-template-sakura .petal{width:15px;height:11px;border-radius:80% 10% 80% 15%;background:linear-gradient(135deg,#ffd5e1,#ed88a7);box-shadow:0 1px 2px rgba(129,45,72,.12)}
.public-template-sakura .petal:after{content:'';position:absolute;inset:2px 6px 2px 2px;border-left:1px solid rgba(181,80,112,.3);transform:rotate(22deg)}
@keyframes sakuraSway{0%{margin-top:-2px;rotate:-1.4deg}50%{margin-top:3px;rotate:1.3deg}100%{margin-top:-1px;rotate:-.4deg}}
@keyframes blossomBreathe{from{filter:drop-shadow(0 2px 3px rgba(145,66,91,.10));opacity:.86}to{filter:drop-shadow(0 4px 7px rgba(145,66,91,.17));opacity:1}}
@media(max-width:1050px){.create-template-grid{grid-template-columns:repeat(2,1fr)}.sakura-branch{width:330px;transform:scale(.8)}.hero-sakura-a{left:-120px}.hero-sakura-b{right:-140px}}
@media(max-width:800px){.public-template-sakura .wedding-hero{min-height:690px}.public-template-sakura .wedding-hero h1 span{font-size:clamp(58px,18vw,88px)}.public-template-sakura .hero-intro{font-size:18px}.hero-sakura-a{left:-160px;top:22px;transform:scale(.63) rotate(-12deg)}.hero-sakura-b{right:-170px;bottom:16px;transform:scale(.62) rotate(170deg)}.public-template-sakura .opening-card h1{font-size:49px}}
@media(max-width:560px){.create-template-grid{grid-template-columns:1fr}.template-sakura h2{font-size:39px!important}.sakura-branch{opacity:.8}.public-template-sakura .countdown-grid{gap:7px}}
@media(prefers-reduced-motion:reduce){.sakura-branch,.sakura-branch i{animation:none!important}}

/* =========================================================
   STAGE 11 — EXACT UPLOADED SAKURA ARTWORK
   Uses the user's uploaded watercolor cherry-blossom branches.
   No CSS-drawn flowers are used for the Sakura branch artwork.
   ========================================================= */
.template-mini-sakura,.create-template-art.template-sakura{
  background:
    linear-gradient(rgba(255,250,251,.80),rgba(255,247,249,.80)),
    url('assets/sakura-top-right-clean.webp') center/cover no-repeat!important;
}
.template-mini-sakura:before,.template-mini-sakura:after,
.create-template-art.template-sakura:before,.create-template-art.template-sakura:after{
  content:'';display:block;position:absolute;opacity:.92;letter-spacing:0;font-size:0;color:transparent;
  background-repeat:no-repeat;background-size:contain;pointer-events:none;
}
.template-mini-sakura:before,.create-template-art.template-sakura:before{
  width:70%;height:48%;right:-13%;top:-8%;left:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;transform:none;
}
.template-mini-sakura:after,.create-template-art.template-sakura:after{
  width:58%;height:42%;left:-9%;bottom:-6%;right:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:left bottom;transform:none;
}
.sakura-mini-flowers{display:none!important}

/* Builder preview: use the exact watercolor branches instead of geometric flowers. */
.live-sakura-branch{display:none;position:absolute;pointer-events:none;z-index:0;background-repeat:no-repeat;background-size:contain;filter:drop-shadow(0 3px 5px rgba(114,52,72,.08))}
.template-sakura .live-sakura-branch{display:block}
.live-sakura-branch:before,.live-sakura-branch>i{display:none!important;content:none!important}
.live-sakura-top{width:185px;height:128px;right:-26px;top:-18px;left:auto;background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;transform-origin:100% 0;animation:sakuraArtSwayRight 9s ease-in-out infinite alternate}
.live-sakura-bottom{width:160px;height:110px;left:-24px;bottom:-10px;right:auto;background-image:url('assets/sakura-top-right-clean.webp');background-position:left bottom;transform-origin:0 100%;animation:sakuraArtSwayLeft 10s ease-in-out infinite alternate}

/* Public Sakura branches: exact uploaded branch artwork. */
.sakura-branch{
  position:absolute;pointer-events:none;z-index:3;background-repeat:no-repeat;background-size:contain;
  filter:drop-shadow(0 7px 12px rgba(115,50,70,.08));will-change:transform;
}
.sakura-branch>span,.sakura-branch>i{display:none!important}
.hero-sakura-a{
  width:min(37vw,390px);aspect-ratio:390/268;height:auto;left:-18px;bottom:-12px;top:auto;right:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:left bottom;
  transform-origin:0 100%;animation:sakuraArtSwayLeft 10.5s ease-in-out infinite alternate;
}
.hero-sakura-b{
  width:min(47vw,535px);aspect-ratio:535/370;height:auto;right:-18px;top:-12px;left:auto;bottom:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;
  transform-origin:100% 0;animation:sakuraArtSwayRight 9.5s ease-in-out infinite alternate;
}
.opening-sakura-a{
  width:250px;aspect-ratio:390/268;height:auto;left:-78px;bottom:-46px;top:auto;right:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:left bottom;
  transform-origin:0 100%;animation:sakuraArtSwayLeft 11s ease-in-out infinite alternate;
}
.opening-sakura-b{
  width:315px;aspect-ratio:535/370;height:auto;right:-98px;top:-52px;left:auto;bottom:auto;
  background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;
  transform-origin:100% 0;animation:sakuraArtSwayRight 10s ease-in-out infinite alternate;
}
@keyframes sakuraArtSwayRight{
  0%{transform:rotate(-.7deg) translate3d(0,0,0)}
  50%{transform:rotate(.8deg) translate3d(-2px,3px,0)}
  100%{transform:rotate(-.25deg) translate3d(1px,-1px,0)}
}
@keyframes sakuraArtSwayLeft{
  0%{transform:rotate(.55deg) translate3d(0,0,0)}
  50%{transform:rotate(-.75deg) translate3d(2px,-2px,0)}
  100%{transform:rotate(.2deg) translate3d(-1px,1px,0)}
}

/* A softer background lets the watercolor artwork remain the visual focus. */
.public-template-sakura .wedding-hero{
  background:
    radial-gradient(circle at 50% 28%,rgba(255,255,255,.99),rgba(255,248,250,.94) 52%,rgba(250,229,236,.82) 100%),
    #fff8fa;
}
.public-template-sakura .opening-card{background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(255,242,247,.97))}

@media(max-width:1050px){
  .hero-sakura-a{width:min(42vw,350px);left:-54px;bottom:-8px}
  .hero-sakura-b{width:min(52vw,470px);right:-70px;top:-10px}
}
@media(max-width:800px){
  .hero-sakura-a{width:245px;left:-92px;bottom:-8px}
  .hero-sakura-b{width:330px;right:-116px;top:-8px}
  .opening-sakura-a{width:215px;left:-86px;bottom:-50px}
  .opening-sakura-b{width:270px;right:-112px;top:-58px}
}
@media(max-width:560px){
  .hero-sakura-a{width:205px;left:-98px;bottom:4px;opacity:.92}
  .hero-sakura-b{width:270px;right:-116px;top:0;opacity:.94}
  .live-sakura-top{width:145px;right:-34px}.live-sakura-bottom{width:125px;left:-30px}
}
@media(prefers-reduced-motion:reduce){
  .hero-sakura-a,.hero-sakura-b,.opening-sakura-a,.opening-sakura-b,.live-sakura-top,.live-sakura-bottom{animation:none!important}
}

/* =========================================================
   STAGE 12 — EXACT SAKURA ARTWORK / DEPLOYMENT-SAFE OVERRIDES
   ========================================================= */
.template-mini-sakura,.create-template-art.template-sakura{
  background:linear-gradient(rgba(255,250,251,.82),rgba(255,247,249,.84)),url('assets/sakura-top-right-clean.webp') center/cover no-repeat!important;
}
.template-mini-sakura:before,.create-template-art.template-sakura:before{
  width:72%!important;height:50%!important;right:-14%!important;top:-8%!important;left:auto!important;
  background:url('assets/sakura-top-right-clean.webp') right top/contain no-repeat!important;
  transform:none!important;
}
.template-mini-sakura:after,.create-template-art.template-sakura:after{
  width:58%!important;height:44%!important;left:-8%!important;bottom:-7%!important;right:auto!important;
  background:url('assets/sakura-top-right-clean.webp') left bottom/contain no-repeat!important;
  transform:none!important;
}
.live-sakura-branch:before,.live-sakura-branch>i{display:none!important;content:none!important}
.live-sakura-top{width:190px!important;height:136px!important;right:-27px!important;top:-20px!important;left:auto!important;background:url('assets/sakura-top-right-clean.webp') right top/contain no-repeat!important;transform-origin:100% 0!important;animation:sakuraExactBuilderRight 9s ease-in-out infinite alternate!important}
.live-sakura-bottom{width:162px!important;height:115px!important;left:-25px!important;bottom:-12px!important;right:auto!important;background:url('assets/sakura-top-right-clean.webp') left bottom/contain no-repeat!important;transform-origin:0 100%!important;animation:sakuraExactBuilderLeft 10s ease-in-out infinite alternate!important}
@keyframes sakuraExactBuilderRight{0%{transform:rotate(-.5deg)}50%{transform:rotate(.7deg) translate(-1px,2px)}100%{transform:rotate(-.15deg)}}
@keyframes sakuraExactBuilderLeft{0%{transform:rotate(.4deg)}50%{transform:rotate(-.65deg) translate(1px,-1px)}100%{transform:rotate(.1deg)}}

/* =========================================================
   STAGE 13 — CLEAN EXACT SAKURA BRANCHES + TYPOGRAPHY FIX
   ========================================================= */
.template-mini-sakura:before,.create-template-art.template-sakura:before{
  background-image:url('assets/sakura-top-right-clean.webp')!important;
  width:76%!important;height:55%!important;right:-8%!important;top:-5%!important;
}
.template-mini-sakura:after,.create-template-art.template-sakura:after{
  background-image:url('assets/sakura-top-right-clean.webp')!important;
  width:62%!important;height:48%!important;left:-5%!important;bottom:-5%!important;
}
.live-sakura-top{background-image:url('assets/sakura-top-right-clean.webp')!important;width:205px!important;height:150px!important;right:-30px!important;top:-18px!important}
.live-sakura-bottom{background-image:url('assets/sakura-bottom-left-clean.webp')!important;width:175px!important;height:126px!important;left:-26px!important;bottom:-10px!important}
.template-sakura .live-monogram{display:none!important}
.template-sakura h2{margin-top:24px!important;line-height:.9!important}


/* Stage 14 - elegant family lineage presentation */
.family-invitation{padding-top:84px;padding-bottom:84px}
.family-invitation-inner{width:min(980px,92vw)}
.family-couple-line{display:grid;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);align-items:start;gap:18px;margin:8px auto 0}
.family-person{text-align:center;min-width:0;padding:8px 22px}
.family-person h3{font:500 clamp(44px,5vw,68px)/1 'Cormorant Garamond',serif;font-style:italic;color:#7d231f;margin:0 0 48px;letter-spacing:.01em}
.family-person strong{display:block;font:600 18px/1.25 'Cormorant Garamond',serif;color:#40352c;margin-bottom:9px}
.family-person p{margin:0;font:400 20px/1.45 'Cormorant Garamond',serif;color:#806f5d}
.family-ampersand{font:500 52px/1 'Cormorant Garamond',serif;font-style:italic;color:#a78b2d;padding-top:3px;text-align:center}
.family-invitation .formal-invitation-message{margin-top:48px;padding-top:34px;border-top:1px solid rgba(167,139,45,.28)}
.public-template-sakura .family-invitation{background:linear-gradient(180deg,#fff9fa 0%,#fdf0f4 100%)}
.public-template-sakura .family-person h3{color:#9f2d55}
.public-template-sakura .family-person strong{color:#4f3d43}
.public-template-sakura .family-person p{color:#8b6873}
.public-template-sakura .family-ampersand{color:#b39242}
.public-template-sakura .family-invitation .formal-invitation-message{border-top-color:rgba(179,146,66,.26)}
@media(max-width:760px){
 .family-invitation{padding-top:64px;padding-bottom:64px}
 .family-couple-line{grid-template-columns:1fr;gap:0}
 .family-person{padding:6px 12px}
 .family-person h3{font-size:48px;margin-bottom:22px}
 .family-person strong{font-size:17px}
 .family-person p{font-size:19px}
 .family-ampersand{font-size:38px;padding:18px 0 12px}
 .family-person-two{margin-top:0}
 .family-invitation .formal-invitation-message{margin-top:36px;padding-top:28px}
}

/* Stage 16 Sakura completion */
.public-template-sakura .sakura-message-only{padding-top:72px;padding-bottom:72px;background:rgba(255,249,250,.94)}
.public-template-sakura .sakura-message-only .formal-invitation-message{margin:0 auto;padding:0;border:0;max-width:760px}
.public-template-sakura main>section:not(.wedding-hero){position:relative;z-index:4}
.public-template-sakura .wedding-hero{z-index:4}
.public-template-sakura .guest-nav{z-index:100}
@media(max-width:560px){.public-template-sakura .sakura-message-only{padding-top:54px;padding-bottom:54px}}


/* =========================================================
   STAGE 18 — SAKURA ART BEHIND ALL INVITATION OBJECTS
   ========================================================= */
.public-template-sakura{isolation:isolate}
.public-template-sakura .sakura-fixed-frame{z-index:0!important}
.public-template-sakura main{position:relative!important;z-index:1!important}
.public-template-sakura main>section{position:relative!important;z-index:auto!important}
.public-template-sakura .wedding-hero-content,
.public-template-sakura .hero-scroll,
.public-template-sakura .family-invitation-inner,
.public-template-sakura .countdown-section>.section-ornament,
.public-template-sakura .countdown-section>.section-kicker,
.public-template-sakura .countdown-section>h2,
.public-template-sakura .countdown-section>.countdown-grid,
.public-template-sakura .story-section>.section-inner,
.public-template-sakura .wedding-gallery>.section-inner,
.public-template-sakura .details-section>.section-inner,
.public-template-sakura .rsvp-section>.rsvp-card,
.public-template-sakura .closing-section>*{position:relative!important;z-index:2!important}
.public-template-sakura .wedding-hero-overlay,
.public-template-sakura .petal-layer,
.public-template-sakura .hero-ornament{z-index:1!important}
.public-template-sakura .guest-nav{z-index:100!important}

/* Keep cards/text fully readable when a fixed branch passes behind them. */
.public-template-sakura .countdown-grid,
.public-template-sakura .rsvp-card,
.public-template-sakura .details-grid article,
.public-template-sakura .wedding-events,
.public-template-sakura .story-copy,
.public-template-sakura .center-heading{isolation:isolate}

/* =========================================================
   STAGE 19 — SAKURA HERO FRONT LAYER / STATIONARY ARTWORK
   Artwork stays only in the white hero area, does not scroll
   across later sections, and is intentionally above hero objects.
   ========================================================= */
.public-template-sakura .sakura-fixed-frame{display:none!important}
.public-template-sakura .wedding-hero{position:relative!important;overflow:hidden!important;isolation:isolate!important}
.public-template-sakura .sakura-art-hero-left,.public-template-sakura .sakura-art-hero-right{display:block!important;z-index:30!important;animation:none!important;transform:none!important;pointer-events:none!important}



/* Stage 13: exact watercolor Sakura artwork, clean corner crops and collision-free hero typography. */
.public-template-sakura .sakura-branch,.public-template-sakura .hero-sakura,.public-template-sakura .opening-sakura{display:none!important}
.public-template-sakura .sakura-art{position:absolute!important;display:block!important;pointer-events:none!important;z-index:2!important;background-repeat:no-repeat!important;background-size:contain!important;filter:drop-shadow(0 8px 14px rgba(91,39,55,.09));will-change:transform}
.public-template-sakura .wedding-hero-content{position:relative!important;z-index:5!important;padding-top:18px}
.public-template-sakura .hero-monogram{display:none!important}
.public-template-sakura .wedding-hero h1{margin-top:22px!important;margin-bottom:24px!important}
.public-template-sakura .wedding-hero h1 span{display:block!important;line-height:.82!important}
.public-template-sakura .wedding-hero h1 i{display:block!important;line-height:1!important;margin:13px 0 10px!important}
.public-template-sakura .sakura-art-hero-right{width:min(46vw,600px);aspect-ratio:510/380;right:-5px;top:8px;background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;transform-origin:100% 0;animation:sakuraExactRight13 11s ease-in-out infinite alternate}
.public-template-sakura .sakura-art-hero-left{width:min(34vw,410px);aspect-ratio:353/253;left:-4px;bottom:0;background-image:url('assets/sakura-bottom-left-clean.webp');background-position:left bottom;transform-origin:0 100%;animation:sakuraExactLeft13 12s ease-in-out infinite alternate}
.public-template-sakura .sakura-art-opening-right{width:350px;aspect-ratio:510/380;right:-76px;top:-42px;background-image:url('assets/sakura-top-right-clean.webp');background-position:right top;transform-origin:100% 0;animation:sakuraExactRight13 11.5s ease-in-out infinite alternate}
.public-template-sakura .sakura-art-opening-left{width:250px;aspect-ratio:353/253;left:-58px;bottom:-34px;background-image:url('assets/sakura-bottom-left-clean.webp');background-position:left bottom;transform-origin:0 100%;animation:sakuraExactLeft13 12.5s ease-in-out infinite alternate}
@keyframes sakuraExactRight13{0%{transform:rotate(-.35deg) translate3d(0,0,0)}50%{transform:rotate(.5deg) translate3d(-2px,2px,0)}100%{transform:rotate(-.1deg) translate3d(1px,-1px,0)}}
@keyframes sakuraExactLeft13{0%{transform:rotate(.3deg) translate3d(0,0,0)}50%{transform:rotate(-.48deg) translate3d(2px,-2px,0)}100%{transform:rotate(.1deg) translate3d(-1px,1px,0)}}
@media(max-width:1050px){.public-template-sakura .sakura-art-hero-right{width:500px;right:-95px}.public-template-sakura .sakura-art-hero-left{width:330px;left:-70px}}
@media(max-width:800px){.public-template-sakura .wedding-hero-content{padding-top:34px}.public-template-sakura .wedding-hero h1{margin-top:18px!important}.public-template-sakura .sakura-art-hero-right{width:340px;right:-118px;top:18px}.public-template-sakura .sakura-art-hero-left{width:245px;left:-82px;bottom:2px}.public-template-sakura .sakura-art-opening-right{width:275px;right:-104px}.public-template-sakura .sakura-art-opening-left{width:210px;left:-78px}}
@media(max-width:560px){.public-template-sakura .wedding-hero h1 span{line-height:.88!important}.public-template-sakura .sakura-art-hero-right{width:285px;right:-122px;top:24px}.public-template-sakura .sakura-art-hero-left{width:210px;left:-88px;bottom:8px}}
/* Stage 20: smaller Sakura corner artwork with gentle natural motion in the white hero area. */
.public-template-sakura{isolation:auto!important}
.public-template-sakura .sakura-fixed-frame{display:none!important}
.public-template-sakura .sakura-art-hero-left,
.public-template-sakura .sakura-art-hero-right{
  display:block!important;
  position:absolute!important;
  pointer-events:none!important;
  z-index:30!important;
  animation:none!important;
  transform:none!important;
  will-change:transform!important;
  filter:drop-shadow(0 7px 12px rgba(91,39,55,.08));
}
.public-template-sakura .wedding-hero{
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.public-template-sakura .wedding-hero-overlay{z-index:1!important}
.public-template-sakura .petal-layer{z-index:3!important}
.public-template-sakura .hero-ornament{z-index:4!important}
.public-template-sakura .wedding-hero-content{position:relative!important;z-index:10!important;padding-top:48px!important}
.public-template-sakura .hero-scroll{position:relative!important;z-index:10!important}
.public-template-sakura .sakura-art-hero-right{
  width:min(34vw,520px)!important;
  aspect-ratio:510/380!important;
  right:-22px!important;
  top:8px!important;
  left:auto!important;
  bottom:auto!important;
  background-image:url('assets/sakura-top-right-clean.webp')!important;
  background-position:right top!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  transform-origin:100% 0!important;
  animation:sakuraHeroRightMotion21 6.5s ease-in-out infinite alternate!important;
}
.public-template-sakura .sakura-art-hero-left{
  width:min(31vw,440px)!important;
  aspect-ratio:353/253!important;
  left:-3px!important;
  bottom:-2px!important;
  right:auto!important;
  top:auto!important;
  background-image:url('assets/sakura-bottom-left-clean.webp')!important;
  background-position:left bottom!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  transform-origin:0 100%!important;
  animation:sakuraHeroLeftMotion21 7.5s ease-in-out infinite alternate!important;
}
@keyframes sakuraHeroRightMotion21{
  0%{transform:rotate(-1.6deg) translate3d(0,0,0) scale(1)}
  50%{transform:rotate(1.7deg) translate3d(-10px,7px,0) scale(1.012)}
  100%{transform:rotate(-0.55deg) translate3d(4px,-4px,0) scale(1.004)}
}
@keyframes sakuraHeroLeftMotion21{
  0%{transform:rotate(1.1deg) translate3d(0,0,0) scale(1)}
  50%{transform:rotate(-1.45deg) translate3d(8px,-6px,0) scale(1.01)}
  100%{transform:rotate(0.35deg) translate3d(-4px,3px,0) scale(1.003)}
}
.public-template-sakura .wedding-eyebrow{display:block!important;position:relative!important;z-index:12!important;margin:0 0 34px!important;line-height:1.5!important}
.public-template-sakura .wedding-hero h1{margin:0 0 34px!important;position:relative!important;z-index:12!important}
.public-template-sakura .wedding-hero h1 span{line-height:.9!important;padding:.03em 0!important}
.public-template-sakura .wedding-hero h1 i{line-height:1!important;margin:18px 0 12px!important}
.public-template-sakura .hero-intro,.public-template-sakura .hero-date-line,.public-template-sakura .hero-venue,.public-template-sakura .wedding-primary-btn{position:relative!important;z-index:12!important}
@media(max-width:900px){
 .public-template-sakura .sakura-art-hero-right{width:390px!important;right:-120px!important;top:18px!important;opacity:.92}
 .public-template-sakura .sakura-art-hero-left{width:330px!important;left:-115px!important;bottom:-8px!important;opacity:.92}
 .public-template-sakura .wedding-eyebrow{margin-bottom:28px!important}
}
@media(max-width:560px){
 .public-template-sakura .sakura-art-hero-right{width:275px!important;right:-112px!important;top:24px!important;opacity:.84}
 .public-template-sakura .sakura-art-hero-left{width:245px!important;left:-100px!important;bottom:-4px!important;opacity:.84}
 .public-template-sakura .wedding-hero-content{padding-top:58px!important}
 .public-template-sakura .wedding-eyebrow{margin-bottom:24px!important}
 .public-template-sakura .wedding-hero h1{margin-bottom:28px!important}
}


/* Stage 21: force visible branch motion after all legacy Sakura rules. */
.public-template-sakura .sakura-art-hero-right{animation:sakuraHeroRightMotion21 6.5s ease-in-out infinite alternate!important;transform-origin:100% 0!important}
.public-template-sakura .sakura-art-hero-left{animation:sakuraHeroLeftMotion21 7.5s ease-in-out infinite alternate!important;transform-origin:0 100%!important}

/* Stage 22: animate an inner artwork layer so legacy !important transforms on the
   outer positioning containers cannot block the visible branch movement. */
.public-template-sakura .sakura-art-hero-left,
.public-template-sakura .sakura-art-hero-right{
  background-image:none!important;
  animation:none!important;
  transform:none!important;
  overflow:visible!important;
}
.public-template-sakura .sakura-motion-layer{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  background-repeat:no-repeat;
  background-size:contain;
  will-change:transform;
  backface-visibility:hidden;
}
.public-template-sakura .sakura-art-hero-right .sakura-motion-layer{
  background-image:url('assets/sakura-top-right-clean.webp');
  background-position:right top;
  transform-origin:100% 0;
  animation:sakuraInnerRight22 16s ease-in-out infinite alternate;
}
.public-template-sakura .sakura-art-hero-left .sakura-motion-layer{
  background-image:url('assets/sakura-bottom-left-clean.webp');
  background-position:left bottom;
  transform-origin:0 100%;
  animation:sakuraInnerLeft22 18s ease-in-out infinite alternate;
}
@keyframes sakuraInnerRight22{
  0%{transform:rotate(-2.2deg) translate3d(0,0,0) scale(1)}
  50%{transform:rotate(2.4deg) translate3d(-13px,8px,0) scale(1.018)}
  100%{transform:rotate(-.7deg) translate3d(6px,-5px,0) scale(1.006)}
}
@keyframes sakuraInnerLeft22{
  0%{transform:rotate(1.7deg) translate3d(0,0,0) scale(1)}
  50%{transform:rotate(-2deg) translate3d(10px,-7px,0) scale(1.014)}
  100%{transform:rotate(.55deg) translate3d(-5px,4px,0) scale(1.004)}
}
@media(prefers-reduced-motion:reduce){
  .public-template-sakura .sakura-motion-layer{animation-duration:12s!important;animation-iteration-count:infinite!important}
}

/* Stage 24: hero CTA/scroll spacing + clearer wedding date/time. */
.public-template-sakura .hero-date-line{
  font-size:16px!important;
  line-height:1.35!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  gap:12px!important;
  margin-top:3px!important;
}
.public-template-sakura .hero-date-line b{
  font-size:15px!important;
  line-height:1!important;
}
.public-template-sakura .hero-venue{
  font-size:12px!important;
  line-height:1.4!important;
  font-weight:600!important;
  letter-spacing:.16em!important;
  margin:10px 0 24px!important;
}
.public-template-sakura .wedding-primary-btn{
  margin-bottom:58px!important;
}
.public-template-sakura .hero-scroll{
  position:absolute!important;
  left:50%!important;
  bottom:18px!important;
  transform:translateX(-50%)!important;
  z-index:20!important;
  width:max-content!important;
  margin:0!important;
  color:#b66b83!important;
  opacity:.82!important;
  line-height:1.2!important;
}
.public-template-sakura .hero-scroll span{
  display:block!important;
  font-size:9px!important;
  letter-spacing:.16em!important;
}
.public-template-sakura .hero-scroll b{
  display:block!important;
  margin-top:5px!important;
  font-size:18px!important;
  line-height:1!important;
}
@media(max-width:800px){
  .public-template-sakura .hero-date-line{font-size:15px!important;gap:9px!important}
  .public-template-sakura .hero-venue{font-size:11px!important}
  .public-template-sakura .wedding-primary-btn{margin-bottom:62px!important}
  .public-template-sakura .hero-scroll{bottom:14px!important}
}
@media(max-width:480px){
  .public-template-sakura .hero-date-line{font-size:14px!important;letter-spacing:.09em!important}
  .public-template-sakura .hero-venue{font-size:10px!important;letter-spacing:.13em!important}
}



/* Organized Sakura editor card artwork */
.template-mini-sakura,.create-template-art.template-sakura{position:relative;overflow:hidden;background:linear-gradient(150deg,#fff9fa 0%,#fdeef3 50%,#fffaf8 100%)!important;color:#5a343e}
.template-mini-sakura:before,.create-template-art.template-sakura:before{content:"";position:absolute;left:-10px;top:-5px;width:118px;height:105px;background:url('assets/sakura-top-right-clean.webp') right top/contain no-repeat;opacity:.62;transform:scaleX(-1)}
.template-mini-sakura:after,.create-template-art.template-sakura:after{content:"";position:absolute;right:-14px;bottom:-8px;width:118px;height:100px;background:url('assets/sakura-bottom-left-clean.webp') left bottom/contain no-repeat;opacity:.66;transform:scaleX(-1)}
.create-template-art.template-sakura span,.template-mini-sakura b{position:relative;z-index:2;font-family:'Great Vibes','Cormorant Garamond',cursive;color:#9e3156}
.create-template-art.template-sakura small,.template-mini-sakura small{position:relative;z-index:2}
.design-preview-sakura{background:radial-gradient(circle at 50% 42%,#fffefd,#fae9ef 64%,#f3d9e2)}
