:root{
  --cream:#f8efe5;
  --paper:#fff8ef;
  --blush:#e7b4a8;
  --mist:#d5cec3;
  --gold:#a87831;
  --gold2:#d9b86d;
  --dark:#624824;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{
  font-family:'Cormorant Garamond',serif;color:var(--dark);
  background:
    radial-gradient(circle at 10% 34%,rgba(231,180,168,.58),transparent 29%),
    radial-gradient(circle at 90% 58%,rgba(190,183,171,.48),transparent 33%),
    linear-gradient(135deg,#fff8ef,#f2e4d6);
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.28;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.7' numOctaves='2' seed='4'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}
body:after{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(168,120,49,.35) 1px,transparent 1px);background-size:18px 18px;opacity:.12}
.invitation-wrap{height:100svh;width:100vw;display:grid;place-items:center;padding:clamp(10px,2vh,22px);position:relative;z-index:2;opacity:0;transform:scale(.96)}
.invite-card{width:min(720px,96vw);height:min(940px,96svh);position:relative;overflow:hidden;text-align:center;background:rgba(255,248,239,.84);border:1px solid rgba(168,120,49,.42);box-shadow:0 24px 80px rgba(96,65,29,.22),inset 0 0 95px rgba(255,255,255,.72);border-radius:6px;backdrop-filter:blur(5px)}
.card-border{position:absolute;inset:15px;border:1px solid rgba(168,120,49,.26);pointer-events:none}.content{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(26px,4vh,44px) clamp(24px,5vw,58px) clamp(86px,10vh,110px);gap:min(1.05vh,10px)}
.small-caps,.homecoming,.of,.parents,.date-box,.venue,.blessing{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.18em}.small-caps{font-size:clamp(10px,1.55vh,14px);line-height:1.55;margin:0}.top-text{margin-top:4px}.mini-lotus{width:70px;height:34px;margin:clamp(4px,.8vh,10px) auto;background:var(--lotus) center/contain no-repeat;transform:rotate(180deg);opacity:.96}.homecoming{font-size:clamp(18px,2.8vh,27px);font-weight:500;letter-spacing:.22em;margin:.2vh 0 0}.of{font-size:clamp(10px,1.5vh,13px);font-weight:600;margin:0}.name{font-family:'Great Vibes',cursive;font-weight:400;font-size:clamp(58px,9.5vh,96px);line-height:.9;letter-spacing:0;margin:.4vh 0;color:var(--gold);text-shadow:0 2px 0 #f6dfaa,0 15px 28px rgba(95,61,17,.18)}.parents{font-size:clamp(9px,1.55vh,13px);line-height:1.45;margin:0}.parents strong{font-weight:500;letter-spacing:.16em}.and-line{display:flex;align-items:center;gap:14px;justify-content:center;margin:clamp(5px,1.1vh,12px) 0;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(10px,1.55vh,13px)}.and-line span{width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.and-line b{font-weight:500}.date-box{width:min(500px,86%);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:clamp(7px,1.25vh,13px) 12px;margin:clamp(8px,1.4vh,18px) auto clamp(5px,.9vh,10px)}.date-box strong{display:block;font-size:clamp(13px,2.05vh,19px);font-weight:500;letter-spacing:.16em}.date-box em{display:block;font-style:normal;font-size:clamp(10px,1.7vh,15px);margin-top:clamp(7px,1vh,12px);letter-spacing:.17em}.venue strong{display:block;font-size:clamp(12px,1.85vh,17px);font-weight:500;letter-spacing:.16em}.venue span{display:block;font-size:clamp(10px,1.55vh,13px);margin-top:5px;letter-spacing:.2em}.blessing{font-size:clamp(8.5px,1.35vh,12px);line-height:1.55;margin:clamp(10px,1.6vh,18px) 0 0;letter-spacing:.14em}.corner-lotus{position:absolute;background:var(--lotus) center/contain no-repeat;width:clamp(180px,31vw,300px);height:clamp(180px,31vw,300px);opacity:.5;z-index:2;filter:drop-shadow(0 16px 25px rgba(136,88,23,.12))}.top-right{right:-55px;top:-28px;transform:rotate(5deg)}.bottom-left{left:-65px;bottom:46px;transform:rotate(188deg)}.lotus-border{position:absolute;left:15px;right:15px;bottom:12px;height:clamp(55px,8.5vh,88px);z-index:5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 90' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23a87831' stroke-width='1.55'%3E%3Cpath d='M50 85 C35 55 35 35 50 10 C65 35 65 55 50 85Z'/%3E%3Cpath d='M50 85 C25 65 15 45 18 20 C40 38 50 58 50 85Z'/%3E%3Cpath d='M50 85 C75 65 85 45 82 20 C60 38 50 58 50 85Z'/%3E%3Cpath d='M0 85H100'/%3E%3C/svg%3E");background-size:clamp(70px,10vh,100px) 100%;background-repeat:repeat-x;background-position:bottom}.petal-layer,.sparkle-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:7}.fall-petal{position:absolute;width:15px;height:25px;border:1px solid rgba(168,120,49,.45);border-radius:75% 0 75% 0;background:rgba(255,245,236,.6);box-shadow:inset 0 0 12px rgba(231,180,168,.35);opacity:.74}.sparkle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--gold2);opacity:.45}.intro{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:radial-gradient(circle,#fffaf2 0%,#f7eadc 60%,#ead7c5 100%);transition:opacity .8s ease,visibility .8s ease}.intro.hide{opacity:0;visibility:hidden}.intro-glow{position:absolute;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(217,184,109,.38),transparent 68%);filter:blur(3px)}.intro-title{position:absolute;bottom:11vh;text-align:center;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.24em;color:var(--gold);opacity:0;transform:translateY(18px)}.intro-title span{display:block;font-size:clamp(13px,2vh,18px);font-weight:500}.intro-title small{display:block;margin-top:10px;font-size:clamp(8px,1.2vh,11px);letter-spacing:.28em;color:rgba(98,72,36,.72)}
.intro:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;border:1px solid rgba(168,120,49,.18);box-shadow:0 0 0 18px rgba(217,184,109,.05),inset 0 0 55px rgba(217,184,109,.12);opacity:0;transform:scale(.45)}
.intro:after{content:"";position:absolute;width:1px;height:54vh;background:linear-gradient(transparent,rgba(168,120,49,.38),transparent);opacity:0;transform:rotate(52deg)}.bloom-lotus{position:relative;width:250px;height:250px;filter:drop-shadow(0 22px 30px rgba(135,89,24,.18))}.bloom-lotus .petal{position:absolute;left:50%;bottom:26px;width:70px;height:170px;margin-left:-35px;border:2px solid var(--gold);border-radius:80% 80% 55% 55%;background:linear-gradient(180deg,rgba(255,250,243,.9),rgba(232,180,168,.16));transform-origin:50% 100%;opacity:0}.bloom-lotus .heart{position:absolute;left:50%;bottom:20px;width:30px;height:30px;margin-left:-15px;border-radius:50%;background:radial-gradient(circle,var(--gold2),var(--gold));opacity:0}.bloom-lotus .p1{transform:scale(.1) rotate(0deg)}.bloom-lotus .p2{transform:scale(.1) rotate(-22deg)}.bloom-lotus .p3{transform:scale(.1) rotate(22deg)}.bloom-lotus .p4{transform:scale(.1) rotate(-45deg)}.bloom-lotus .p5{transform:scale(.1) rotate(45deg)}.bloom-lotus .p6{transform:scale(.1) rotate(-68deg)}.bloom-lotus .p7{transform:scale(.1) rotate(68deg)}.bloom-lotus .p8{transform:scale(.1) rotate(-88deg)}.bloom-lotus .p9{transform:scale(.1) rotate(88deg)}
:root{--lotus:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23a87831' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M150 248 C130 195 130 145 150 80 C170 145 170 195 150 248Z'/%3E%3Cpath d='M150 248 C105 205 83 155 84 86 C128 130 150 184 150 248Z'/%3E%3Cpath d='M150 248 C195 205 217 155 216 86 C172 130 150 184 150 248Z'/%3E%3Cpath d='M150 248 C88 225 45 188 25 122 C88 140 132 185 150 248Z'/%3E%3Cpath d='M150 248 C212 225 255 188 275 122 C212 140 168 185 150 248Z'/%3E%3Cpath d='M150 248 C108 246 70 236 35 208 C82 197 123 211 150 248Z'/%3E%3Cpath d='M150 248 C192 246 230 236 265 208 C218 197 177 211 150 248Z'/%3E%3Cpath d='M150 248 C145 185 115 139 72 103' opacity='.55'/%3E%3Cpath d='M150 248 C155 185 185 139 228 103' opacity='.55'/%3E%3Ccircle cx='150' cy='252' r='7' fill='%23d9b86d' stroke='none'/%3E%3C/svg%3E")}
@media(max-height:760px){.invite-card{width:min(640px,96vw)}.content{gap:0}.name{font-size:clamp(38px,7.5vh,68px)}.mini-lotus{height:28px;margin:3px auto}.and-line{margin:4px 0}.date-box{margin:6px auto 3px}.blessing{margin-top:7px}.corner-lotus{width:190px;height:190px}.lotus-border{height:56px}}
@media(max-width:520px){.invite-card{height:96svh;width:94vw}.content{padding-left:18px;padding-right:18px}.name{letter-spacing:.08em}.small-caps,.parents,.date-box,.venue,.blessing{letter-spacing:.1em}.and-line span{width:48px}.corner-lotus{width:165px;height:165px}.top-right{right:-58px}.bottom-left{left:-62px}}
.rsvp-open{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.2em;border:1px solid rgba(168,120,49,.72);background:linear-gradient(135deg,rgba(255,250,242,.85),rgba(217,184,109,.18));color:var(--gold);padding:clamp(8px,1.2vh,12px) 26px;border-radius:999px;margin:clamp(7px,1.2vh,14px) 0 0;cursor:pointer;font-size:clamp(10px,1.5vh,13px);box-shadow:0 8px 26px rgba(110,75,25,.12),inset 0 0 18px rgba(255,255,255,.72);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.rsvp-open:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(110,75,25,.18),inset 0 0 22px rgba(255,255,255,.8);background:linear-gradient(135deg,#fffaf2,rgba(217,184,109,.28))}.rsvp-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s ease}.rsvp-modal.show{opacity:1;visibility:visible;pointer-events:auto}.rsvp-backdrop{position:absolute;inset:0;background:rgba(55,35,17,.34);backdrop-filter:blur(6px)}.rsvp-panel{position:relative;width:min(420px,88vw);background:rgba(255,248,239,.96);border:1px solid rgba(168,120,49,.44);border-radius:10px;padding:34px 30px 28px;text-align:center;color:var(--dark);box-shadow:0 28px 90px rgba(62,38,14,.32),inset 0 0 60px rgba(255,255,255,.75);transform:translateY(24px) scale(.96);transition:transform .38s ease}.rsvp-modal.show .rsvp-panel{transform:translateY(0) scale(1)}.rsvp-close{position:absolute;top:11px;right:14px;border:0;background:transparent;color:var(--gold);font-size:28px;line-height:1;cursor:pointer}.rsvp-lotus{width:72px;height:52px;margin:0 auto 8px;background:var(--lotus) center/contain no-repeat;opacity:.86}.rsvp-panel h2{font-family:Cinzel,serif;color:var(--gold);font-weight:400;letter-spacing:.24em;margin:0;text-transform:uppercase;font-size:28px}.rsvp-subtitle{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.16em;font-size:10px;margin:9px 0 22px;color:rgba(98,72,36,.78)}#rsvpForm label{display:block;text-align:left;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.14em;font-size:10px;margin:0 0 8px;color:var(--dark)}#guestName{width:100%;border:1px solid rgba(168,120,49,.38);background:rgba(255,255,255,.58);border-radius:999px;padding:13px 16px;font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--dark);outline:none;margin-bottom:17px}#guestName:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,184,109,.18)}.attending-group{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 19px}.choice{margin:0!important}.choice input{position:absolute;opacity:0}.choice span{display:block;border:1px solid rgba(168,120,49,.42);border-radius:999px;padding:11px 8px;font-family:Cinzel,serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:rgba(255,255,255,.42);transition:all .22s ease}.choice input:checked+span{background:linear-gradient(135deg,rgba(168,120,49,.92),rgba(217,184,109,.85));color:#fff8ef;border-color:transparent;box-shadow:0 8px 22px rgba(116,76,23,.18)}.rsvp-submit{width:100%;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.2em;border:0;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#fff8ef;padding:13px 16px;border-radius:999px;cursor:pointer;box-shadow:0 12px 32px rgba(128,82,21,.22)}.rsvp-status{min-height:20px;margin:13px 0 0;font-size:15px;color:var(--gold)}@media(max-height:760px){.rsvp-open{padding:7px 22px;margin-top:5px}.rsvp-panel{padding:26px 24px 22px}.rsvp-lotus{height:42px}.rsvp-panel h2{font-size:23px}.rsvp-subtitle{margin-bottom:15px}#guestName{padding:10px 14px;margin-bottom:12px}.attending-group{margin-bottom:14px}.rsvp-submit{padding:11px 14px}}


/* ===== Merged latest intro + RSVP with earlier card ===== */
:root{--rose:#e8b8ad;--rose2:#f6d8cf;--ink:#684b2b;--muted:#967650;--shadow:0 28px 90px rgba(89,55,25,.28)}
.stage{position:relative;width:100vw;height:100svh;min-height:560px;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.ambient{position:absolute;inset:0;background:radial-gradient(circle at 20% 22%,rgba(255,255,255,.78),transparent 25%),radial-gradient(circle at 82% 70%,rgba(236,175,164,.42),transparent 31%),linear-gradient(130deg,rgba(255,244,225,.92),rgba(237,199,190,.82));z-index:-5}
.ambient:after{content:"";position:absolute;inset:-30%;background-image:radial-gradient(rgba(184,135,55,.22) 1px,transparent 1px);background-size:34px 34px;animation:dust 18s linear infinite;opacity:.38}
.aurora{position:absolute;border-radius:999px;filter:blur(38px);opacity:.35;z-index:-4}.aurora-one{width:50vmax;height:36vmax;background:#fff4cf;left:-10vmax;top:-5vmax;animation:drift 16s ease-in-out infinite alternate}.aurora-two{width:44vmax;height:36vmax;background:#e4a29b;right:-8vmax;bottom:-10vmax;animation:drift 19s ease-in-out infinite alternate-reverse}
.invitation-wrap{visibility:hidden;pointer-events:none;}
.invitation-wrap.visible{visibility:visible;pointer-events:auto;animation:cardReveal 1.35s cubic-bezier(.19,1,.22,1) forwards;}
.invite-card{transform:translateY(44px) scale(.94)}
.invitation-wrap.visible .invite-card{animation:cardInnerReveal 1.35s cubic-bezier(.19,1,.22,1) forwards}
.mini-lotus-card{width:70px;height:34px;margin:clamp(4px,.8vh,10px) auto;background:var(--lotus) center/contain no-repeat;transform:rotate(0deg);opacity:.96}
.rsvp-strip-old{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:clamp(8px,1.25vh,14px) 0 0}.rsvp-strip-old p{margin:0;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(8.5px,1.35vh,12px);color:var(--dark)}
.rsvp-button,.submit,.admin-actions button{border:0;border-radius:999px;background:linear-gradient(135deg,#926322,#d7b468 48%,#91611f);color:white;padding:10px 25px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px;box-shadow:0 10px 22px rgba(120,80,30,.25);cursor:pointer;font-family:Cinzel,serif}.rsvp-button:hover,.submit:hover,.admin-actions button:hover{filter:brightness(1.05);transform:translateY(-1px)}
@keyframes cardInnerReveal{to{transform:translateY(0) scale(1)}}

.opening{position:absolute;inset:0;display:grid;place-items:center;z-index:10;pointer-events:auto}.opening.exiting{animation:openingExit 1.1s ease forwards}.opening-glow{position:absolute;width:62vmin;height:62vmin;border-radius:50%;background:radial-gradient(circle,rgba(255,249,220,.85),rgba(228,181,149,.22) 58%,transparent 72%);animation:pulse 2.6s ease-in-out infinite}.bloom{width:min(74vmin,430px);height:auto;filter:drop-shadow(0 22px 40px rgba(130,76,35,.22));overflow:visible;transform:translateY(-26px)}.lotus-stem path{stroke-dasharray:520;stroke-dashoffset:520;animation:draw 1.2s ease .25s forwards}.gold-mandala>*{stroke-dasharray:1500;stroke-dashoffset:1500;animation:draw 2.2s ease 1.05s forwards}.petal{opacity:0;transform-box:fill-box;transform-origin:50% 92%;animation:bloomPetal 1.6s cubic-bezier(.19,1,.22,1) forwards}.p1{animation-delay:.75s}.p2{animation-delay:.9s;transform:rotate(14deg) scale(.12)}.p3{animation-delay:.9s;transform:rotate(-14deg) scale(.12)}.p4{animation-delay:1.08s;transform:rotate(28deg) scale(.08)}.p5{animation-delay:1.08s;transform:rotate(-28deg) scale(.08)}.p6{animation-delay:1.22s;transform:rotate(45deg) scale(.08)}.p7{animation-delay:1.22s;transform:rotate(-45deg) scale(.08)}.p8{animation-delay:1.38s}.lotus-leaves path{opacity:0;animation:leafIn 1.2s ease 1.3s forwards}.enter-card-button{position:absolute;bottom:10.8svh;padding:11px 34px;border:1px solid rgba(168,120,49,.66);border-radius:999px;background:linear-gradient(135deg,rgba(255,252,247,.95),rgba(226,197,144,.34));color:#7f5729;font-family:Cinzel,serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;box-shadow:0 14px 36px rgba(96,65,29,.18), inset 0 0 16px rgba(255,255,255,.82);cursor:pointer;opacity:0;transform:translateY(18px) scale(.96);pointer-events:none;transition:transform .35s ease, box-shadow .35s ease, opacity .35s ease}.opening.ready .enter-card-button{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.enter-card-button:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 17px 40px rgba(96,65,29,.22), inset 0 0 16px rgba(255,255,255,.9)}.opening-title{position:absolute;bottom:20svh;font-family:Great Vibes,cursive;font-size:clamp(42px,8vmin,72px);color:#714724;opacity:0;animation:titleIn 1.1s ease 2.3s forwards}.petal-field{position:absolute;inset:0;pointer-events:none;z-index:6}.falling-petal{position:absolute;top:-10vh;width:var(--w);height:calc(var(--w)*1.65);border-radius:70% 30% 70% 30%;background:radial-gradient(circle at 35% 25%,#fff7ee 0 22%,#efc4bb 45%,#d39288 100%);opacity:var(--o);filter:blur(var(--b));animation:fall var(--d) linear var(--delay) infinite;transform:translate3d(var(--x),-12vh,0) rotate(var(--r))}.falling-petal:after{content:"";position:absolute;left:48%;top:10%;bottom:12%;border-left:1px solid rgba(180,118,112,.32)}.modal{position:absolute;inset:0;display:grid;place-items:center;z-index:20;opacity:0;pointer-events:none;transition:.35s ease}.modal.open{opacity:1;pointer-events:auto}.modal-backdrop{position:absolute;inset:0;background:rgba(64,41,25,.33);backdrop-filter:blur(8px)}.rsvp-card{position:relative;width:min(88vw,410px);border-radius:26px;background:linear-gradient(145deg,#fff9f0,#f4dfd4);border:1px solid rgba(184,135,55,.45);box-shadow:0 30px 90px rgba(50,28,18,.35);padding:28px;transform:translateY(36px) scale(.96);transition:.45s cubic-bezier(.19,1,.22,1);color:var(--ink)}.modal.open .rsvp-card{transform:translateY(0) scale(1)}.close{position:absolute;right:16px;top:10px;background:transparent;border:0;font-size:32px;color:#9b7443;cursor:pointer}.mini-lotus{width:74px;height:42px;margin:0 auto 6px;position:relative}.mini-lotus span{position:absolute;left:50%;bottom:0;width:28px;height:42px;border:1px solid var(--gold);background:#f7d0c7;border-radius:80% 20% 80% 20%;transform-origin:50% 100%;animation:miniBloom .9s ease both}.mini-lotus span:nth-child(1){transform:translateX(-50%) rotate(0deg)}.mini-lotus span:nth-child(2){transform:translateX(-50%) rotate(-42deg);animation-delay:.08s}.mini-lotus span:nth-child(3){transform:translateX(-50%) rotate(42deg);animation-delay:.16s}.rsvp-card h2{margin:0;font-family:Great Vibes,cursive;font-size:52px;font-weight:400;text-align:center;color:#714724}.modal-note{text-align:center;margin:0 0 18px;font-family:Cormorant Garamond,serif;font-size:18px;color:#8a673c}.rsvp-card label{display:block;margin:12px 0 8px;font-size:13px;font-weight:600;color:#7b5b33}.rsvp-card input[type=text]{width:100%;border:0;border-bottom:1px solid rgba(184,135,55,.58);background:rgba(255,255,255,.36);padding:12px 10px;border-radius:12px 12px 0 0;color:#58391d;outline:none}.rsvp-card fieldset{border:0;margin:18px 0;padding:0}.rsvp-card legend{font-size:13px;font-weight:600;margin-bottom:10px;color:#7b5b33}.choice{display:flex!important;align-items:center;gap:10px;margin:10px 0!important;padding:12px 14px;border:1px solid rgba(184,135,55,.32);border-radius:15px;background:rgba(255,250,242,.56);font-family:Cormorant Garamond,serif;font-size:20px!important;font-weight:600!important}.choice input{accent-color:#b88737}.submit{display:block;width:100%;padding:13px 20px}.form-status{text-align:center;min-height:22px;margin:13px 0 0;font-family:Cormorant Garamond,serif;font-size:18px;color:#6b4625}.admin{position:absolute;inset:20px;z-index:25;background:rgba(255,248,238,.96);border:1px solid rgba(184,135,55,.42);border-radius:24px;padding:24px;box-shadow:var(--shadow);display:none;color:var(--ink);overflow:auto}.admin.open{display:block}.admin h2{font-family:Cormorant Garamond,serif;font-size:36px;margin:0 0 16px}.admin-close{position:absolute}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats div{border:1px solid rgba(184,135,55,.3);border-radius:16px;padding:16px;text-align:center;background:#fff8ef}.stats strong{display:block;font-family:Cormorant Garamond,serif;font-size:34px}.stats span{text-transform:uppercase;font-size:11px;letter-spacing:.12em}.admin-actions{margin:16px 0;display:flex;gap:10px}.table-wrap{max-height:46vh;overflow:auto}table{width:100%;border-collapse:collapse;background:#fffaf1}th,td{padding:10px;border-bottom:1px solid rgba(184,135,55,.2);text-align:left}.admin-help{font-size:12px;color:#8a673c}@keyframes dust{to{transform:translate(34px,34px)}}@keyframes drift{to{transform:translate(6vmax,4vmax) scale(1.08)}}@keyframes cardReveal{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes openingExit{to{opacity:0;transform:scale(1.06);visibility:hidden}}@keyframes pulse{50%{transform:scale(1.06);opacity:.72}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes bloomPetal{0%{opacity:0;transform:rotate(0) scale(.05)}68%{opacity:1}100%{opacity:1;transform:rotate(0) scale(1)}}@keyframes leafIn{to{opacity:1}}@keyframes titleIn{to{opacity:1;transform:translateY(-8px)}}@keyframes foil{0%,46%{transform:translateX(-130%)}70%,100%{transform:translateX(130%)}}@keyframes fall{0%{transform:translate3d(var(--x),-12vh,0) rotate(var(--r))}50%{transform:translate3d(calc(var(--x) + var(--sway)),50vh,0) rotate(calc(var(--r) + 180deg))}100%{transform:translate3d(calc(var(--x) - var(--sway)),112vh,0) rotate(calc(var(--r) + 360deg))}}@keyframes miniBloom{from{opacity:0;scale:.15}to{opacity:1;scale:1}}@media(max-width:520px){.stage{min-height:520px}.invite-card{width:94vw;height:90svh;border-radius:22px;padding:12px}.card-inner{padding:24px 18px 18px}.corner-flower{width:118px;height:118px}.countdown{gap:5px}.countdown div{border-radius:12px;padding:6px 2px}.rsvp-strip{gap:8px}.rsvp-button{padding:9px 18px}.intro{max-width:300px}.bloom{transform:translateY(-20px)}.opening-title{bottom:22svh}.enter-card-button{bottom:11.8svh;padding:9px 26px;font-size:10px}}@media(max-height:650px){.invite-card{height:94svh}.card-inner{padding-top:18px}.divider{margin:8px 0}.countdown{margin-bottom:8px}.venue{margin-top:6px!important}h1{font-size:clamp(44px,8svh,64px)}.bloom{transform:translateY(-16px)}.opening-title{bottom:20.8svh}.enter-card-button{bottom:10.2svh}}


/* RSVP moved to the bottom of the invitation card */
.bottom-rsvp,
.rsvp-strip-old.bottom-rsvp{
  margin-top: clamp(14px, 2.2vh, 28px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1.2vh, 14px);
}
.rsvp-strip-old.bottom-rsvp p{
  margin: 0;
  font-family: Cinzel, serif;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: clamp(8.5px, 1.35vh, 12px);
  color: var(--dark);
}
.rsvp-strip-old.bottom-rsvp .rsvp-button{
  padding: 11px 34px;
}
@media(max-height:760px){
  .bottom-rsvp,
  .rsvp-strip-old.bottom-rsvp{
    margin-top: 10px;
    gap: 8px;
  }
  .rsvp-strip-old.bottom-rsvp .rsvp-button{
    padding: 8px 26px;
  }
}


/* ===== Readability spacing polish: no text removed ===== */
.content{
  justify-content: center;
  gap: clamp(5px, .82vh, 9px);
  padding-top: clamp(30px, 4.4vh, 48px);
  padding-bottom: clamp(82px, 9.2vh, 104px);
}
.small-caps{line-height:1.72;}
.mini-lotus-card{
  width: clamp(46px, 6.8vh, 64px);
  height: clamp(21px, 3.2vh, 30px);
  margin: clamp(6px, 1vh, 11px) auto clamp(4px, .75vh, 8px);
  transform: rotate(0deg);
}
.homecoming{
  margin-top: clamp(3px, .55vh, 7px);
  margin-bottom: clamp(2px, .35vh, 5px);
}
.of{margin-bottom: clamp(2px, .35vh, 5px);}
.name{
  margin: clamp(3px, .55vh, 7px) 0 clamp(4px, .7vh, 8px);
  line-height:.96;
}
.parents{
  line-height:1.58;
  margin-bottom: clamp(3px, .5vh, 6px);
}
.and-line{
  margin: clamp(3px, .55vh, 8px) 0 clamp(4px, .65vh, 9px);
}
.soft-lotus-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(8px, 1.3vh, 14px);
  width:min(260px, 64%);
  margin: clamp(3px, .55vh, 7px) auto clamp(2px, .35vh, 5px);
  opacity:.72;
}
.soft-lotus-divider span{
  height:1px;
  flex:1;
  background:linear-gradient(90deg, transparent, rgba(168,120,49,.62), transparent);
}
.soft-lotus-divider i,
.tiny-lotus-mark{
  display:block;
  width: clamp(24px, 3.6vh, 34px);
  height: clamp(14px, 2.1vh, 20px);
  background:var(--lotus) center/contain no-repeat;
  transform:rotate(180deg);
  opacity:.86;
  flex:0 0 auto;
}
.date-divider{
  margin-top: clamp(6px, .9vh, 11px);
  margin-bottom: clamp(6px, .9vh, 11px);
}
.date-box{
  margin-top: clamp(5px, .9vh, 10px);
  margin-bottom: clamp(5px, .9vh, 10px);
  padding-top: clamp(8px, 1.25vh, 13px);
  padding-bottom: clamp(8px, 1.25vh, 13px);
}
.venue{
  margin-top: clamp(3px, .55vh, 7px);
  margin-bottom: clamp(4px, .65vh, 8px);
}
.tiny-lotus-mark{
  margin: clamp(5px, .8vh, 10px) auto clamp(4px, .65vh, 8px);
}
.blessing{
  margin-top: clamp(4px, .7vh, 8px);
  margin-bottom: 0;
  line-height:1.7;
}
.bottom-rsvp,
.rsvp-strip-old.bottom-rsvp{
  margin-top: clamp(12px, 1.8vh, 22px);
  gap: clamp(7px, 1vh, 11px);
}

@media(max-height:760px){
  .content{
    gap: clamp(2px, .45vh, 5px);
    padding-top: 22px;
    padding-bottom: 70px;
  }
  .small-caps{line-height:1.45;}
  .mini-lotus-card{height:22px;margin:3px auto 2px;}
  .name{font-size:clamp(34px, 6.6vh, 62px);margin:2px 0 40px;}
  .parents{line-height:1.35;font-size:clamp(8px,1.25vh,11px);margin-top:8px;}
  .soft-lotus-divider{margin:2px auto; width:min(210px,58%);}
  .soft-lotus-divider i,.tiny-lotus-mark{width:22px;height:13px;}
  .date-divider{margin:3px auto;}
  .date-box{padding:6px 10px;margin:4px auto;}
  .blessing{line-height:1.38;margin-top:3px;}
  .bottom-rsvp,.rsvp-strip-old.bottom-rsvp{margin-top:7px;gap:5px;}
  .rsvp-strip-old.bottom-rsvp .rsvp-button{padding:7px 22px;}
}

@media(max-width:520px){
  .content{
    padding-left:20px;
    padding-right:20px;
    gap: clamp(3px, .62vh, 7px);
  }
  .soft-lotus-divider{width:min(220px,70%);}
}


/* RSVP polish: use the same lotus style as the opening animation and remove option boxes */
.rsvp-bloom{
  display:block;
  width:92px;
  height:92px;
  margin: -4px auto 4px;
  filter: drop-shadow(0 10px 18px rgba(130,76,35,.16));
  overflow: visible;
}
.rsvp-bloom .rsvp-lotus-stem path{
  stroke-dasharray:520;
  stroke-dashoffset:520;
}
.rsvp-bloom .rsvp-gold-mandala>*{
  stroke-dasharray:1500;
  stroke-dashoffset:1500;
}
.rsvp-bloom .rsvp-petal{
  opacity:0;
  transform-box:fill-box;
  transform-origin:50% 92%;
}
.modal.open .rsvp-bloom .rsvp-lotus-stem path{animation:draw .85s ease .05s forwards;}
.modal.open .rsvp-bloom .rsvp-gold-mandala>*{animation:draw 1.25s ease .45s forwards;}
.modal.open .rsvp-bloom .rsvp-petal{animation:rsvpBloomPetal 1.05s cubic-bezier(.19,1,.22,1) forwards;}
.modal.open .rsvp-bloom .rp1{animation-delay:.28s;}
.modal.open .rsvp-bloom .rp2,.modal.open .rsvp-bloom .rp3{animation-delay:.38s;}
.modal.open .rsvp-bloom .rp4,.modal.open .rsvp-bloom .rp5{animation-delay:.50s;}
.modal.open .rsvp-bloom .rp6,.modal.open .rsvp-bloom .rp7{animation-delay:.62s;}
.modal.open .rsvp-bloom .rp8{animation-delay:.72s;}
@keyframes rsvpBloomPetal{
  0%{opacity:0;transform:scale(.05)}
  68%{opacity:1}
  100%{opacity:1;transform:scale(1)}
}

/* Clean RSVP choices: no unwanted square backgrounds */
.rsvp-card fieldset{
  margin:18px 0 20px;
}
.rsvp-card .choice{
  position:relative;
  display:flex!important;
  align-items:center;
  gap:12px;
  margin:9px 0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-family:Cormorant Garamond,serif;
  font-size:20px!important;
  font-weight:600!important;
  color:#6b4625;
  cursor:pointer;
}
.rsvp-card .choice input{
  position:static!important;
  opacity:1!important;
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:0;
  border:1.5px solid rgba(184,135,55,.72);
  border-radius:50%;
  background:transparent;
  box-shadow:inset 0 0 0 4px rgba(255,249,240,.9);
}
.rsvp-card .choice input:checked{
  background:linear-gradient(135deg,#926322,#d7b468 48%,#91611f);
  box-shadow:inset 0 0 0 4px #fff8ef, 0 0 0 3px rgba(217,184,109,.16);
}
.rsvp-card .choice span{
  display:inline!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font-family:Cormorant Garamond,serif!important;
  font-size:20px!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
@media(max-height:760px){
  .rsvp-bloom{width:76px;height:76px;margin-top:-8px;}
}


/* Elegant background music control */
.music-toggle{
  position:fixed;
  top:calc(16px + env(safe-area-inset-top));
  right:calc(16px + env(safe-area-inset-right));
  z-index:30;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(168,120,49,.42);
  border-radius:999px;
  padding:9px 14px;
  background:rgba(255,248,239,.74);
  color:var(--gold);
  font-family:Cinzel,serif;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  box-shadow:0 12px 34px rgba(96,65,29,.14), inset 0 0 18px rgba(255,255,255,.72);
  backdrop-filter:blur(8px);
  cursor:pointer;
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.music-toggle:hover{transform:translateY(-1px);background:rgba(255,248,239,.92);box-shadow:0 16px 40px rgba(96,65,29,.18), inset 0 0 20px rgba(255,255,255,.82)}
.music-toggle .music-icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(168,120,49,.92),rgba(217,184,109,.88));
  color:#fff8ef;
  font-size:15px;
  line-height:1;
  box-shadow:0 6px 16px rgba(120,80,30,.18);
}
.music-toggle.playing .music-icon{animation:musicPulse 1.8s ease-in-out infinite;}
@keyframes musicPulse{50%{transform:scale(1.08);filter:brightness(1.08)}}
@media(max-width:520px){
  .music-toggle{top:12px;right:12px;padding:8px 10px;font-size:9px;gap:6px;}
  .music-toggle .music-icon{width:20px;height:20px;font-size:13px;}
}
@media(max-height:650px){
  .music-toggle .music-text{display:none;}
  .music-toggle{padding:8px;}
}



/* Mobile overflow fix: keep all invitation text inside the card */
@media (max-width: 520px) {
  .invite-card {
    height: 96svh;
  }

  .content {
    padding: 22px 16px 62px;

@supports (height: 100dvh) {
  html, body {
    min-height: 100dvh;
  }

  .stage {
    min-height: 100dvh;
  }

  .invitation-wrap {
    height: 100dvh;
  }

  .invite-card {
    height: min(940px, 96dvh);
  }
}

@media (max-width: 520px) {
  .invitation-wrap {
    padding: 8px;
  }

  .invite-card {
    width: min(92vw, 720px);
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px);
  }

  .content {
    padding: 16px 14px 48px;
    gap: 2px;
  }

  .small-caps {
    font-size: clamp(9px, 2.4vw, 11px);
    line-height: 1.25;
    letter-spacing: .09em;
    text-wrap: balance;
  }

  .homecoming {
    font-size: clamp(15px, 4.8vw, 21px);
    letter-spacing: .16em;
    text-wrap: balance;
  }

  .name {
    font-size: clamp(44px, 13vw, 68px);
    line-height: .88;
    margin: 2px 0 3px;
  }

  .parents {
    font-size: clamp(8px, 2.2vw, 10px);
    line-height: 1.25;
    letter-spacing: .1em;
  }

  .and-line {
    margin: 2px 0 5px;
    gap: 8px;
  }

  .and-line span {
    width: 38px;
  }

  .date-box {
    width: min(94%, 500px);
    margin: 4px auto;
    padding: 6px 8px;
  }

  .date-box strong {
    font-size: clamp(11px, 3.1vw, 15px);
  }

  .date-box em {
    font-size: clamp(8px, 2.5vw, 11px);
    margin-top: 5px;
  }

  .venue strong {
    font-size: clamp(10px, 3.2vw, 14px);
    letter-spacing: .12em;
  }

  .blessing {
    font-size: clamp(8px, 2.2vw, 10px);
    line-height: 1.35;
    margin-top: 4px;
    text-wrap: balance;
  }

  .bottom-rsvp,
  .rsvp-strip-old.bottom-rsvp {
    margin-top: 6px;
    gap: 6px;
  }

  .rsvp-strip-old.bottom-rsvp .rsvp-button {
    padding: 8px 24px;
  }

  .corner-lotus {
    width: 135px;
    height: 135px;
  }

  .top-right {
    right: -50px;
    top: -18px;
  }

  .bottom-left {
    left: -52px;
    bottom: 36px;
  }

  .lotus-border {
    height: 46px;
    background-size: 60px 52px;
  }
}

@media (max-width: 390px) {
  .content {
    padding: 14px 12px 42px;
    gap: 1px;
  }

  .small-caps {
    font-size: clamp(8px, 2.2vw, 10px);
    line-height: 1.18;
  }

  .homecoming {
    font-size: clamp(14px, 4.2vw, 18px);
  }

  .name {
    font-size: clamp(40px, 12vw, 60px);
  }

  .parents,
  .date-box em,
  .venue strong,
  .venue span,
  .blessing,
  .rsvp-strip-old.bottom-rsvp p {
    font-size: clamp(8px, 2.1vw, 10px);
  }

  .date-box strong {
    font-size: clamp(10px, 3vw, 13px);
  }

  .rsvp-strip-old.bottom-rsvp .rsvp-button {
    padding: 7px 20px;
  }

  .corner-lotus {
    width: 120px;
    height: 120px;
  }

  .lotus-border {
    height: 42px;
    background-size: 56px 48px;
  }
}
    gap: 4px;
  }

  .small-caps,
  .homecoming,
  .of,
  .parents,
  .date-box,
  .venue,
  .blessing {
    letter-spacing: 0.08em;
  }

  .name {
    font-family:'Great Vibes', cursive;
    font-size: clamp(54px, 15vw, 76px);
    letter-spacing: 0;
    line-height: 0.9;
    overflow-wrap: normal;
  }

  .parents,
  .parents strong,
  .blessing,
  .venue strong,
  .venue span,
  .date-box strong,
  .date-box em {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .and-line {
    gap: 8px;
  }

  .and-line span {
    width: 34px;
  }

  .date-box {
    width: min(96%, 500px);
    padding-left: 8px;
    padding-right: 8px;
  }
}

@media (max-width: 390px) {
  .content {
    padding: 18px 14px 58px;
    gap: 3px;
  }

  .small-caps {
    font-size: clamp(9px, 2.5vw, 11px);
  }

  .homecoming {
    font-size: clamp(16px, 5.3vw, 22px);
  }

  .name {
    font-size: clamp(48px, 15vw, 66px);
  }

  .parents {
    font-size: clamp(8px, 2.3vw, 10.5px);
    line-height: 1.38;
  }

  .date-box strong {
    font-size: clamp(11px, 3.5vw, 15px);
  }

  .date-box em {
    font-size: clamp(8px, 2.4vw, 11px);
  }

  .date-box em,
  .venue strong,
  .venue span,
  .blessing,
  .rsvp-strip-old.bottom-rsvp p {
    font-size: clamp(8px, 2.4vw, 11px);
  }
}

@media (max-height: 760px) and (max-width: 520px) {
  .invite-card {
    height: 98svh;
  }

  .content {
    padding-top: 16px;
    padding-bottom: 52px;
    gap: 2px;
  }

  .mini-lotus-card,
  .soft-lotus-divider,
  .tiny-lotus-mark {
    margin-top: 2px;
    margin-bottom: 2px;
  }

  .bottom-rsvp,
  .rsvp-strip-old.bottom-rsvp {
    margin-top: 5px;
  }
}

/* Keep equal outer spacing above and below the card on mobile */
@media (max-width: 520px) {
  .invitation-wrap {
    --mobile-card-gap: 12px;
    padding-top: var(--mobile-card-gap);
    padding-bottom: var(--mobile-card-gap);
    padding-left: 8px;
    padding-right: 8px;
  }

  .invite-card {
    height: calc(100svh - (var(--mobile-card-gap) * 2));
    max-height: calc(100svh - (var(--mobile-card-gap) * 2));
    width: min(94vw, 720px);
  }
}

@media (max-width: 520px) and (max-height: 760px) {
  .invitation-wrap {
    --mobile-card-gap: 10px;
  }

  .invite-card {
    height: calc(100svh - (var(--mobile-card-gap) * 2));
    max-height: calc(100svh - (var(--mobile-card-gap) * 2));
  }
}


/* Final name font override: match redesigned card */
.name{
  font-family:'Great Vibes', cursive !important;
  font-weight:400;
  font-size:clamp(58px,9.5vh,96px);
  line-height:.9;
  letter-spacing:0 !important;
}

@media (max-width:520px){
  .name{
    font-family:'Great Vibes', cursive !important;
    font-size:clamp(54px,15vw,76px) !important;
    line-height:.9;
    letter-spacing:0 !important;
    overflow-wrap:normal;
  }
}

@media (max-width:390px){
  .name{
    font-size:clamp(48px,15vw,66px) !important;
  }
}

/* ===== Elegant horizontal lotus vine breaker above blessing ===== */
.lotus-vine-breaker{
  position:relative;
  width:min(420px,82%);
  height:clamp(38px,5.1vh,58px);
  margin:clamp(8px,1.15vh,14px) auto clamp(4px,.65vh,8px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:.94;
}

.lotus-vine-svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.lotus-vine-svg .vine-line{
  fill:none;
  stroke:rgba(168,120,49,.74);
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.lotus-vine-svg .vine-line-soft{
  stroke:rgba(168,120,49,.36);
  stroke-width:1;
}

.lotus-vine-svg .vine-leaves path{
  fill:rgba(255,248,239,.52);
  stroke:rgba(168,120,49,.58);
  stroke-width:1.15;
  stroke-linejoin:round;
}

.lotus-vine-svg .lotus-centre{
  filter:drop-shadow(0 7px 10px rgba(120,80,30,.13));
}

.lotus-vine-svg .lotus-petal-svg{
  fill:url(#none);
  fill:rgba(247,208,199,.42);
  stroke:rgba(168,120,49,.82);
  stroke-width:1.35;
  stroke-linejoin:round;
}

.lotus-vine-svg .p-mid{
  fill:rgba(255,246,236,.68);
}

.lotus-vine-svg .lotus-base-svg{
  fill:none;
  stroke:rgba(168,120,49,.78);
  stroke-width:1.25;
  stroke-linecap:round;
}

.lotus-vine-svg .vine-dot{
  fill:rgba(217,184,109,.85);
  stroke:rgba(168,120,49,.42);
  stroke-width:.7;
}

@media(max-height:760px){
  .lotus-vine-breaker{
    width:min(340px,76%);
    height:34px;
    margin:3px auto 2px;
  }

  .lotus-vine-svg .vine-line{
    stroke-width:1.25;
  }

  .lotus-vine-svg .vine-leaves path{
    stroke-width:1;
  }
}

@media(max-width:390px){
  .lotus-vine-breaker{
    width:min(300px,82%);
    height:32px;
  }
}


/* Icon-only music button */
.music-toggle{
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  gap: 0 !important;
}

/* Hide text label */
.music-toggle .music-text{
  display: none !important;
}

/* Base icon circle */
.music-toggle .music-icon{
  width: 28px !important;
  height: 28px !important;
  display: block !important;
  border-radius: 50% !important;
  font-size: 0 !important;
  position: relative;
}

/* Music playing icon */
.music-toggle .music-icon::before{
  content: "♪";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -53%);
  font-size: 18px;
  line-height: 1;
  font-family: Arial, sans-serif;
}

/* Paused / muted icon */
.music-toggle.paused .music-icon::before{
  content: "♪";
  font-size: 17px;
}

.music-toggle.paused .music-icon::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 22px;
  height: 2px;
  background: #fff8ef;
  transform: translate(-50%, -50%) rotate(-35deg);
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(168,120,49,.15);
}

/* Optional: make paused icon look softer */
.music-toggle.paused .music-icon{
  background: rgba(168,120,49,.38) !important;
  opacity: .85;
}

@media(max-width:520px){
  .music-toggle{
    width: 40px !important;
    height: 40px !important;
  }

  .music-toggle .music-icon{
    width: 25px !important;
    height: 25px !important;
  }

  .music-toggle .music-icon::before{
    font-size: 15px;
  }

  .music-toggle.paused .music-icon::after{
    width: 20px;
  }
}

/* Final mobile layout override for Chrome mobile viewport widths */
@media (max-width: 600px) {
  .invitation-wrap {
    padding: 10px 8px;
  }

  .invite-card {
    width: min(94vw, 720px);
    height: calc(100svh - 20px);
    max-height: calc(100svh - 20px);
  }

  .content {
    justify-content: flex-start;
    padding: 16px 12px 38px;
    gap: 1px;
  }

  .small-caps {
    font-size: clamp(8px, 2.1vw, 10px);
    line-height: 1.15;
    letter-spacing: .08em;
    text-wrap: balance;
  }

  .homecoming {
    font-size: clamp(14px, 4.2vw, 19px);
    letter-spacing: .14em;
    text-wrap: balance;
  }

  .name {
    font-size: clamp(38px, 11.5vw, 58px);
    line-height: .86;
  }

  .parents {
    font-size: clamp(7px, 2vw, 9px);
    line-height: 1.15;
  }

  .date-box {
    width: min(94%, 500px);
    margin: 2px auto;
    padding: 5px 8px;
  }

  .date-box strong {
    font-size: clamp(10px, 3vw, 13px);
  }

  .date-box em {
    font-size: clamp(8px, 2.2vw, 10px);
    margin-top: 4px;
  }

  .venue strong {
    font-size: clamp(9px, 2.9vw, 12px);
    letter-spacing: .12em;
  }

  .venue span {
    font-size: clamp(8px, 2.1vw, 10px);
    letter-spacing: .16em;
  }

  .blessing {
    font-size: clamp(7px, 2vw, 9px);
    line-height: 1.2;
    margin-top: 2px;
  }

  .bottom-rsvp,
  .rsvp-strip-old.bottom-rsvp {
    margin-top: 2px;
  }

  .rsvp-strip-old.bottom-rsvp .rsvp-button {
    padding: 7px 20px;
  }

  .corner-lotus,
  .lotus-border {
    display: block;
  }

  .corner-lotus {
    width: 110px;
    height: 110px;
    opacity: .34;
  }

  .top-right {
    right: -34px;
    top: -8px;
  }

  .bottom-left {
    left: -34px;
    bottom: 22px;
  }

  .lotus-border {
    height: 32px;
    background-size: 44px 100%;
  }
}

/* Final opening button style: lotus-vine inspired */
.enter-card-button{
  position: absolute;
  bottom: 10.8svh;
  min-width: 230px;
  padding: 11px 36px 11px 66px;
  border: 1px solid rgba(168,120,49,.72);
  border-radius: 999px;
  background:
    radial-gradient(circle at 20% 50%, rgba(255,246,236,.9), rgba(247,208,199,.45) 55%, transparent 62%),
    linear-gradient(135deg, rgba(255,252,247,.98), rgba(226,197,144,.34));
  color: #7b5328;
  font-family: Cinzel, serif;
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
  box-shadow:
    0 14px 34px rgba(96,65,29,.2),
    inset 0 0 0 1px rgba(255,255,255,.72),
    inset 0 0 16px rgba(255,255,255,.72);
  cursor: pointer;
  opacity: 0;
  transform: translateY(18px) scale(.96);
  pointer-events: none;
  transition: transform .35s ease, box-shadow .35s ease, opacity .35s ease, filter .35s ease;
}

.opening.ready .enter-card-button{
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.enter-card-button::before{
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 34px;
  height: 20px;
  transform: translateY(-50%);
  background: var(--lotus) center/contain no-repeat;
  opacity: .95;
  filter: drop-shadow(0 3px 6px rgba(120,80,30,.16));
}

.enter-card-button::after{
  content: "";
  position: absolute;
  left: 58px;
  right: 16px;
  top: 50%;
  height: 1px;
  transform: translateY(11px);
  background: linear-gradient(90deg, rgba(168,120,49,.58), rgba(168,120,49,.1));
  opacity: .9;
}

.enter-card-button:hover{
  transform: translateY(-1px) scale(1.01);
  filter: brightness(1.03);
  box-shadow:
    0 18px 42px rgba(96,65,29,.24),
    inset 0 0 0 1px rgba(255,255,255,.82),
    inset 0 0 20px rgba(255,255,255,.84);
}

@media(max-width:520px){
  .enter-card-button{
    bottom: 11.8svh;
    min-width: 190px;
    padding: 10px 30px 10px 58px;
    font-size: 10px;
    letter-spacing: .2em;
  }

  .enter-card-button::before{
    left: 14px;
    width: 30px;
    height: 18px;
  }

  .enter-card-button::after{
    left: 52px;
    right: 14px;
  }
}

@media(max-height:650px){
  .enter-card-button{
    bottom: 10.2svh;
    padding-top: 9px;
    padding-bottom: 9px;
  }
}

/* Final opening CTA override: circular lotus button */
.enter-card-button{
  position: absolute;
  bottom: 10.8svh;
  width: auto;
  height: auto;
  min-width: 0;
  padding: 6px 10px;
  border: 0;
  border-radius: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: transparent;
  color: #7b5328;
  font-family: Cinzel, serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  line-height: 1;
  text-transform: uppercase;
  box-shadow: none;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
  cursor: pointer;
  opacity: 0;
  transform: translateY(18px) scale(.96);
  pointer-events: none;
  transition: transform .35s ease, box-shadow .35s ease, opacity .35s ease, filter .35s ease;
}

.opening.ready .enter-card-button{
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.enter-card-button::before{
  content: "";
  width: 34px;
  height: 22px;
  background: var(--lotus) center/contain no-repeat;
  filter: drop-shadow(0 2px 4px rgba(120,80,30,.14));
}

.enter-card-button::after{
  content: none;
}

.enter-card-button:hover{
  transform: translateY(-1px) scale(1.015);
  filter: brightness(1.03);
}

@media(max-width:520px){
  .enter-card-button{
    bottom: 11.8svh;
    padding: 5px 8px;
    gap: 5px;
    font-size: 10px;
    letter-spacing: .16em;
  }

  .enter-card-button::before{
    width: 30px;
    height: 19px;
  }
}

@media(max-height:650px){
  .enter-card-button{
    bottom: 10.2svh;
    padding: 4px 7px;
    gap: 4px;
    font-size: 9px;
  }

  .enter-card-button::before{
    width: 27px;
    height: 17px;
  }
}

/* ===== Open CTA with natural flower vines ===== */
.enter-card-button{
  position:absolute;
  bottom:10.8svh;
  min-width:0;
  min-height:0;
  padding:22px 34px 13px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#765026;
  font-family:Cinzel,serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.34em;
  line-height:1;
  text-transform:uppercase;
  box-shadow:none!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.75),
    0 8px 18px rgba(108,68,23,.22);
  cursor:pointer;
  opacity:0;
  transform:translateY(18px) scale(.96);
  pointer-events:none;
  overflow:visible;
  transition:transform .18s ease, opacity .18s ease, filter .18s ease, letter-spacing .18s ease;
}

.opening.ready .enter-card-button{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}

.enter-card-button::before{
  content:"";
  position:absolute;
  left:50%;
  top:-18px;
  width:180px;
  height:42px;
  transform:translateX(-50%);
  opacity:.95;
  pointer-events:none;
  filter:drop-shadow(0 4px 8px rgba(116,74,25,.14));
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 70' fill='none' stroke='%23a87831' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg opacity='.92'%3E%3Cpath d='M22 45 C38 46 49 38 59 28 C66 22 74 20 86 24' stroke-width='1.7'/%3E%3Cpath d='M278 45 C262 46 251 38 241 28 C234 22 226 20 214 24' stroke-width='1.7'/%3E%3Cpath d='M44 39 C39 31 39 24 46 18' stroke-width='1.25' opacity='.72'/%3E%3Cpath d='M256 39 C261 31 261 24 254 18' stroke-width='1.25' opacity='.72'/%3E%3Cpath d='M64 30 C61 20 66 13 76 10' stroke-width='1.2' opacity='.68'/%3E%3Cpath d='M236 30 C239 20 234 13 224 10' stroke-width='1.2' opacity='.68'/%3E%3Cpath d='M77 25 C70 21 65 19 60 22 C66 29 73 31 77 25Z' fill='%23e9c1b6' stroke-width='1.1'/%3E%3Cpath d='M226 25 C233 21 238 19 243 22 C237 29 230 31 226 25Z' fill='%23e9c1b6' stroke-width='1.1'/%3E%3Cpath d='M52 20 C47 16 43 15 39 17 C43 23 48 24 52 20Z' fill='%23e9c1b6' stroke-width='.95' opacity='.92'/%3E%3Cpath d='M251 20 C256 16 260 15 264 17 C260 23 255 24 251 20Z' fill='%23e9c1b6' stroke-width='.95' opacity='.92'/%3E%3Cpath d='M89 31 C96 29 104 29 111 32' stroke-width='1.3' opacity='.66'/%3E%3Cpath d='M211 31 C204 29 196 29 189 32' stroke-width='1.3' opacity='.66'/%3E%3Cpath d='M150 47 C138 34 135 22 142 10 C149 18 152 31 150 47Z' fill='%23f3c9bb' stroke-width='1.35'/%3E%3Cpath d='M150 47 C162 34 165 22 158 10 C151 18 148 31 150 47Z' fill='%23f3c9bb' stroke-width='1.35'/%3E%3Cpath d='M150 47 C143 30 144 18 150 7 C156 18 157 30 150 47Z' fill='%23fff2e7' stroke-width='1.35'/%3E%3Cpath d='M136 48 C142 44 158 44 164 48' stroke-width='1.45'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}

.enter-card-button::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:2px;
  width:118px;
  height:16px;
  transform:translateX(-50%);
  background:
    radial-gradient(ellipse at center, rgba(217,184,109,.42) 0 18%, rgba(244,215,201,.28) 40%, transparent 72%),
    linear-gradient(90deg, transparent, rgba(168,120,49,.36), transparent);
  background-size:100% 100%, 100% 1px;
  background-position:center, center 53%;
  background-repeat:no-repeat;
  opacity:.68;
  pointer-events:none;
}

.enter-card-button:hover,
.enter-card-button:focus-visible{
  transform:translateY(-2px) scale(1.02);
  filter:brightness(1.05);
  letter-spacing:.38em;
  outline:none;
}

.enter-card-button:active{
  transform:translateY(0) scale(.99);
}

@media(max-width:520px){
  .enter-card-button{
    bottom:11.8svh;
    padding:20px 26px 12px;
    font-size:11px;
    letter-spacing:.30em;
  }

  .enter-card-button::before{
    top:-16px;
    width:150px;
    height:36px;
  }

  .enter-card-button::after{
    width:102px;
    height:14px;
  }
}

@media(max-height:650px){
  .enter-card-button{
    bottom:10.2svh;
    padding:18px 24px 10px;
    font-size:10px;
  }

  .enter-card-button::before{
    top:-14px;
    width:138px;
    height:32px;
  }
}


/* Final loading-name position tuning */
.opening-title{
  bottom:18svh;
}

@media(max-width:520px){
  .opening-title{
    bottom:20svh;
  }
}

@media(max-height:650px){
  .opening-title{
    bottom:17svh;
  }
}

/* ===== Refined natural lotus vines projecting from the lotus ===== */
.enter-card-button::before{
  content:"";
  position:absolute;
  left:50%;
  top:-19px;
  width:190px;
  height:46px;
  transform:translateX(-50%);
  opacity:.97;
  pointer-events:none;
  filter:drop-shadow(0 4px 8px rgba(116,74,25,.14));
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20320%2080%27%20fill%3D%27none%27%20stroke%3D%27%23a87831%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%0A%20%20%3Cg%20opacity%3D%27.96%27%3E%0A%20%20%20%20%3Cpath%20d%3D%27M160%2050%20C146%2037%20142%2024%20149%2011%20C156%2020%20160%2033%20160%2050Z%27%20fill%3D%27%23f3c9bb%27%20stroke-width%3D%271.4%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M160%2050%20C174%2037%20178%2024%20171%2011%20C164%2020%20160%2033%20160%2050Z%27%20fill%3D%27%23f3c9bb%27%20stroke-width%3D%271.4%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M160%2050%20C152%2032%20153%2019%20160%208%20C167%2019%20168%2032%20160%2050Z%27%20fill%3D%27%23fff3ea%27%20stroke-width%3D%271.4%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M146%2051%20C152%2047%20168%2047%20174%2051%27%20stroke-width%3D%271.5%27%2F%3E%0A%0A%20%20%20%20%3Cpath%20d%3D%27M153%2047%20C139%2043%20125%2036%20111%2026%20C98%2017%2083%2014%2066%2018%27%20stroke-width%3D%271.7%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M167%2047%20C181%2043%20195%2036%20209%2026%20C222%2017%20237%2014%20254%2018%27%20stroke-width%3D%271.7%27%2F%3E%0A%0A%20%20%20%20%3Cpath%20d%3D%27M130%2033%20C124%2024%20124%2017%20131%2012%27%20stroke-width%3D%271.2%27%20opacity%3D%27.7%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M190%2033%20C196%2024%20196%2017%20189%2012%27%20stroke-width%3D%271.2%27%20opacity%3D%27.7%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M110%2027%20C103%2019%20102%2012%20107%207%27%20stroke-width%3D%271.1%27%20opacity%3D%27.62%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M210%2027%20C217%2019%20218%2012%20213%207%27%20stroke-width%3D%271.1%27%20opacity%3D%27.62%27%2F%3E%0A%0A%20%20%20%20%3Cpath%20d%3D%27M136%2030%20C128%2024%20122%2022%20117%2025%20C123%2033%20131%2035%20136%2030Z%27%20fill%3D%27%23e9c1b6%27%20stroke-width%3D%271.05%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M184%2030%20C192%2024%20198%2022%20203%2025%20C197%2033%20189%2035%20184%2030Z%27%20fill%3D%27%23e9c1b6%27%20stroke-width%3D%271.05%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M116%2022%20C108%2018%20102%2017%2098%2020%20C103%2027%20111%2028%20116%2022Z%27%20fill%3D%27%23d9cfa9%27%20stroke-width%3D%271.0%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M204%2022%20C212%2018%20218%2017%20222%2020%20C217%2027%20209%2028%20204%2022Z%27%20fill%3D%27%23d9cfa9%27%20stroke-width%3D%271.0%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M92%2018%20C85%2014%2080%2014%2076%2017%20C80%2023%2087%2024%2092%2018Z%27%20fill%3D%27%23e9c1b6%27%20stroke-width%3D%27.95%27%20opacity%3D%27.9%27%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%27M228%2018%20C235%2014%20240%2014%20244%2017%20C240%2023%20233%2024%20228%2018Z%27%20fill%3D%27%23e9c1b6%27%20stroke-width%3D%27.95%27%20opacity%3D%27.9%27%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E") center/contain no-repeat;
}

@media(max-width:520px){
  .enter-card-button::before{
    top:-17px;
    width:162px;
    height:40px;
  }
}

@media(max-height:650px){
  .enter-card-button::before{
    top:-14px;
    width:148px;
    height:36px;
  }
}