@import "https://fonts.googleapis.com/css2?family=Bad+Script&family=Calligraffitti&display=swap";
:root{--black:#010302;--emerald-950:#020806;--emerald-900:#03140d;--emerald-800:#062417;--emerald-700:#0b5132;--gold-50:#fff6c9;--gold-200:#f0d98a;--gold-400:#d7ad42;--gold-700:#8d5f16;--rose-gold:#d09a72;--cream:#fff9e8;--mist:#fff9e8ad;--line:#f0d98a38;--glass:#020c086b;--danger:#ff7078;--ok:#71edb1}*{box-sizing:border-box}html,body{min-width:0;color:var(--cream);background:var(--black);margin:0;font-family:Cormorant Garamond,Georgia,serif;overflow-x:clip}button,input,textarea{font:inherit}button{cursor:pointer}input,textarea{width:100%;min-width:0;color:var(--cream);background:linear-gradient(#ffffff0e,#00000029),#0008056b;border:1px solid #fff6c92e;border-radius:8px;outline:none;padding:.9rem .95rem;transition:border-color .18s,box-shadow .18s,background .18s,transform .18s}textarea{resize:vertical;min-height:82px}input::placeholder,textarea::placeholder{color:#fff9e857}input:focus,textarea:focus{background:#000805ad;border-color:#f0d98ac7;transform:translateY(-1px);box-shadow:0 0 0 4px #d7ad421f,0 0 28px #d7ad4229}label{color:#fff6c9d1;letter-spacing:.18em;text-transform:uppercase;gap:.42rem;font-family:Cinzel,Georgia,serif;font-size:.64rem;font-weight:700;display:grid}.invite-shell,.admin-shell,.verify-shell,.center-stage{min-height:100svh;position:relative;overflow-x:clip}.invite-shell{isolation:isolate;scroll-snap-type:y mandatory;scroll-behavior:smooth;background:radial-gradient(circle at 50% -12%,#f0d98a3d,#0000 24rem),radial-gradient(circle at 14% 22%,#11804e38,#0000 22rem),radial-gradient(circle at 88% 72%,#d7ad4214,#0000 20rem),linear-gradient(145deg,#010302,#03140d 52%,#061d13);height:100svh;padding:0;overflow-y:auto}.visual-atmosphere,.velvet-folds,.emerald-vignette,.shimmer-veil,.luxury-ornaments,.champagne-bubbles,.foil-confetti,.sparkler-embers,.party-pops,.age-numeral{pointer-events:none;position:absolute;inset:0}.site-backdrop{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.visual-atmosphere{z-index:0;overflow:hidden}main,.invite-shell,.admin-shell,.verify-shell{z-index:2;position:relative}.party-pops{z-index:4}.royal-sweep,.royal-glow,.luxury-sparkle-grid{pointer-events:none;position:absolute;inset:0}.royal-sweep{mix-blend-mode:screen;filter:blur(4px);background:radial-gradient(circle,#fff6c957,#0000 34%),linear-gradient(120deg,#0000 0 38%,#fff6c938 46%,#0000 56% 100%)}.royal-glow{mix-blend-mode:screen;filter:blur(8px);background:radial-gradient(circle at 50% 48%,#d7ad425c,#0000 26%),radial-gradient(circle at 22% 26%,#71edb129,#0000 18%),radial-gradient(circle at 78% 74%,#f0d98a29,#0000 20%)}.light-ribbons{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.light-ribbon{filter:blur(18px);mix-blend-mode:screen;background:linear-gradient(90deg,#0000 0 28%,#fff6c92e 46%,#fff6c985 50%,#fff6c92e 54%,#0000 72% 100%);border-radius:999px;width:120vw;height:18vh;position:absolute;top:50%;left:50%}.light-ribbon-a{margin-top:-34vh;margin-left:-56vw}.light-ribbon-b{margin-top:-2vh;margin-left:-18vw}.light-ribbon-c{margin-top:26vh;margin-left:-52vw}.luxury-sparkle-grid{z-index:6}.luxury-sparkle{left:var(--x);top:var(--y);color:#fff6c9d1;text-shadow:0 0 18px #f0d98a7a;position:absolute}.luxury-sparkle svg{filter:drop-shadow(0 0 10px #f0d98a73);display:block}.velvet-folds{opacity:.32;background:repeating-linear-gradient(102deg,#ffffff0e 0 1px,#0000 1px 42px),linear-gradient(90deg,#0000003d,#0000 34%,#0003),radial-gradient(circle at 74% 18%,#f0d98a24,#0000 17rem)}.emerald-vignette{background:radial-gradient(#0000 0 38%,#0000006b 100%),linear-gradient(#00000014,#0000007a)}.shimmer-veil{mix-blend-mode:screen;background:linear-gradient(105deg,#0000 0 34%,#fff6c92e 45%,#fff6c90d 54%,#0000 68% 100%);width:170%;left:-35%}.age-numeral{color:#f0d98a0d;text-shadow:0 0 80px #f0d98a14;place-items:center;font-family:Cormorant Garamond,Georgia,serif;font-size:min(62vw,44rem);font-weight:700;line-height:1;display:grid}.luxury-ornaments span,.champagne-bubbles span,.foil-confetti span,.sparkler-embers span,.party-pops span,.corner-garden,.corner-garden:before,.corner-garden:after{display:block;position:absolute}.luxury-ornaments span{left:var(--x);width:var(--size);height:calc(var(--size) * 1.18);opacity:0;animation:ornamentFloat var(--dur) ease-in-out infinite;animation-delay:var(--delay);background:radial-gradient(circle at 32% 24%,#ffffffb8,#0000 16%),linear-gradient(145deg,#fff6c947,#d7ad421a 46%,#04372242);border:1px solid #fff6c92e;border-radius:48% 48% 54% 54%;bottom:-12vh;box-shadow:0 0 26px #f0d98a1f,inset 0 -12px 22px #00000029}.luxury-ornaments span:after{content:"";background:linear-gradient(#0000,#fff6c947);width:1px;height:44px;position:absolute;bottom:-38px;left:50%}.champagne-bubbles span{left:var(--x);width:var(--size);height:var(--size);opacity:0;animation:bubbleRise var(--dur) ease-in infinite;animation-delay:var(--delay);background:radial-gradient(circle at 34% 30%,#fff,#f0d98a6b 42%,#0000 68%);border:1px solid #fff6c9d1;border-radius:50%;bottom:-8vh;box-shadow:0 0 22px #f0d98a7a}.foil-confetti span{left:var(--x);width:var(--w);opacity:1;height:4px;transform-style:preserve-3d;animation:foilFall var(--dur) linear infinite;animation-delay:var(--delay);background:linear-gradient(90deg,#fff6c9,#d7ad42,#d09a72);border-radius:1px;top:-12vh;box-shadow:0 0 18px #f0d98a80}.foil-confetti span:nth-child(3n){background:linear-gradient(135deg,#fff6c9,#aeb8b1,#d7ad42);width:6px;height:10px}.foil-confetti span:nth-child(4n){clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:10px;height:10px}.sparkler-embers span{left:var(--x);top:var(--y);opacity:0;width:12px;height:12px;animation:emberFlicker var(--dur) ease-in-out infinite;animation-delay:var(--delay)}.sparkler-embers span:before,.sparkler-embers span:after{content:"";background:var(--gold-50);border-radius:999px;position:absolute;inset:4px 0;box-shadow:0 0 22px #fff6c9,0 0 40px #d7ad4294}.sparkler-embers span:after{transform:rotate(90deg)}.party-pops span{transform-origin:50%;mix-blend-mode:screen}.party-pop.balloon{background:radial-gradient(circle at 30% 26%,#fffffff0,#f0d98a38 28%,#083521b8 80%);border:1px solid #fff6c95c;border-radius:50% 50% 46% 46%;width:28px;height:36px;box-shadow:0 0 20px #f0d98a47}.party-pop.balloon:after{content:"";background:#fff6c966;width:1px;height:16px;position:absolute;bottom:-12px;left:50%}.party-pop.paper{clip-path:polygon(50% 0,63% 30%,100% 50%,63% 70%,50% 100%,37% 70%,0 50%,37% 30%);background:linear-gradient(135deg,#fff6c9,#d7ad42 60%,#d09a72);border-radius:50%;width:20px;height:20px;box-shadow:0 0 24px #f0d98a6b}.panel{scroll-snap-align:start;place-items:center;min-height:100svh;padding:clamp(.72rem,2.6vw,2rem);display:grid}.panel-invite,.panel-rsvp{z-index:2;position:relative}.glass-invitation,.rsvp-plaque,.invitation-card{-webkit-backdrop-filter:blur(20px)saturate(1.04);backdrop-filter:blur(20px)saturate(1.04);background:linear-gradient(120deg,#ffffff02,#0000 18%,#ffffff01 44%,#0000 72%),linear-gradient(160deg,#03140d05,#01050305 58%,#081d1305);border:1px solid #fff6c914;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 30px 100px #0000000d,inset 0 1px #ffffff0f,inset 0 0 44px #f0d98a05}.glass-invitation:before,.rsvp-plaque:before,.invitation-card:before{content:"";pointer-events:none;border:1px solid #f0d98a0f;border-radius:6px;position:absolute;inset:10px}.glass-invitation:after,.rsvp-plaque:after,.invitation-card:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff0f,#0000);height:55%;animation:6.4s ease-in-out infinite glassSweep;position:absolute;inset:-40% -80% auto;rotate:-14deg}.glass-invitation,.rsvp-plaque{width:min(100%,1100px);min-height:calc(100svh - clamp(1.44rem,5.2vw,4rem))}.glass-invitation{text-align:center;place-items:center;padding:clamp(1.2rem,3.2vw,2.6rem) clamp(1rem,4vw,2.4rem);display:grid}.rsvp-plaque{align-content:center;place-items:center;gap:.85rem;padding:clamp(1rem,3vw,1.35rem);display:grid}.floral-corners{pointer-events:none;position:absolute;inset:0}.floral-corner{opacity:.92;filter:drop-shadow(0 0 10px #f0d98a29);background:radial-gradient(circle,#f0d98afa 0 16%,#0000 17%),radial-gradient(circle at 50% 18%,#f0d98ad1 0 11%,#0000 12%),radial-gradient(circle at 82%,#f0d98ad1 0 11%,#0000 12%),radial-gradient(circle at 50% 82%,#f0d98ad1 0 11%,#0000 12%),radial-gradient(circle at 18%,#f0d98ad1 0 11%,#0000 12%),radial-gradient(circle at 30% 30%,#ffffff8c 0 6%,#0000 7%);width:48px;height:48px;position:absolute}.floral-corner:before,.floral-corner:after{content:"";border:1px solid #f0d98a3d;border-radius:50%;position:absolute;inset:10px}.floral-corner:after{background:radial-gradient(circle,#fff6c9d9 0 26%,#0000 27%);border-width:0;inset:18px}.floral-corner-1{top:8px;left:8px}.floral-corner-2{top:8px;right:8px;transform:rotate(90deg)}.floral-corner-3{bottom:8px;left:8px;transform:rotate(-90deg)}.floral-corner-4{bottom:8px;right:8px;transform:rotate(180deg)}.crest,.card-crest{aspect-ratio:1;width:clamp(5.9rem,12vw,7.8rem);color:var(--gold-50);letter-spacing:.08em;background:radial-gradient(circle,#f0d98a24,#0000002e 56%,#0000 57%),radial-gradient(circle,#010c08cc,#0000006b);border:1px solid #f0d98a6b;border-radius:50%;place-items:center;margin-top:1.2rem;font-family:Cinzel,Georgia,serif;font-size:clamp(1.1rem,3vw,1.55rem);font-weight:700;display:grid;position:relative;box-shadow:inset 0 0 0 6px #f0d98a0f,inset 0 0 0 12px #f0d98a0a,0 0 32px #f0d98a1a}.crest:before,.card-crest:before,.crest:after,.card-crest:after{content:"✦";color:#f0d98ab8;font-size:.8rem;position:absolute}.crest:before,.card-crest:before{transform:translateY(-3.95rem)}.crest:after,.card-crest:after{transform:translateY(3.95rem)}.microline,.card-small,.card-host,.honour-line,.card-footer,.event-lines,.rsvp-title,.card-meta,.for-line,.card-for,.scroll-hint,.card-invite-line{text-transform:uppercase;letter-spacing:.14em;font-family:Cinzel,Georgia,serif}.microline,.card-small{color:var(--gold-200);margin:1rem 0 .25rem;font-size:clamp(.7rem,1.4vw,.88rem);font-weight:700}.glass-invitation h1,.invitation-card h2,.admin-topbar h1,.verify-card h1,.admin-login h1{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:700;line-height:.88}.birthday-title{inline-size:min(100%,260px);max-inline-size:260px;margin-inline:auto}.birthday-title span{display:block}.glass-invitation h1{max-width:720px;color:var(--gold-50);text-shadow:0 0 24px #f0d98a1f;font-size:clamp(3rem,8vw,6rem)}.for-line,.card-for{color:#fff9e8a3;margin:.6rem 0 .1rem;font-size:.62rem}.celebrant-name,.guest-script,.signature-line{color:var(--gold-50);text-shadow:0 0 14px #f0d98a1a;margin:0;font-family:Great Vibes,Cormorant Garamond,cursive;font-size:clamp(1.75rem,4.8vw,3rem);line-height:.95}.invite-subcopy{color:#fff9e8d6;max-width:680px;margin:.35rem auto 0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.1rem,2.2vw,1.5rem);line-height:1.2}.invite-subcopy-soft{color:#fff9e8ad;font-size:clamp(.95rem,1.9vw,1.2rem)}.ornament-line{background:linear-gradient(90deg,#0000,#f0d98acc,#0000);width:min(210px,54%);height:1px;margin:.95rem auto;position:relative}.ornament-line:after{content:"✦";color:#f0d98ac7;background:#010503db;padding:0 .45rem;position:absolute;top:50%;left:50%;translate:-50% -50%}.event-lines,.card-meta{color:#fff9e8b8;gap:.38rem;font-size:clamp(.58rem,1.2vw,.72rem);font-weight:600;line-height:1.45;display:grid}.scroll-hint{z-index:1;color:#fff9e8e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#01050342;border:1px solid #f0d98a2e;border-radius:999px;justify-content:center;align-items:center;margin-top:1rem;padding:.72rem 1rem;display:inline-flex;position:relative}.rsvp-title{width:min(100%,640px);color:var(--gold-50);justify-content:space-between;align-items:center;gap:1rem;font-size:.78rem;font-weight:800;display:flex}.invite-form,.controls-card,.verify-form,.admin-login{gap:.82rem;display:grid}.invite-form{z-index:1;width:min(100%,640px);margin-top:1rem;position:relative}.form-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:.7rem;display:grid}.gold-button,.ghost-button,.icon-button,.toggle-button,.row-actions button{border:0;border-radius:8px;font-weight:900}.gold-button{color:#020604;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,#fff6c9,#e6c766 42%,#8d5f16 100%);min-height:3.15rem;position:relative;overflow:hidden;box-shadow:0 18px 44px #8d5f1647,0 0 22px #f0d98a1f}.gold-button:after{content:"";background:linear-gradient(110deg,#0000 0 34%,#ffffffad 46%,#0000 58% 100%);animation:3.2s ease-in-out infinite buttonShine;position:absolute;inset:0;transform:translate(-120%)}.gold-button:disabled{cursor:not-allowed;opacity:.58}.ghost-button,.icon-button,.toggle-button,.row-actions button{color:var(--gold-50);background:#020c087a;border:1px solid #f0d98a38;justify-content:center;align-items:center;gap:.48rem;padding:.78rem 1rem;display:inline-flex}.ghost-button.compact{min-height:2.4rem;padding:.55rem .72rem;font-size:.82rem}.status-line,.config-warning{color:#fff9e8b8;text-align:center;justify-content:center;align-items:center;gap:.45rem;width:min(100%,640px);margin:.8rem 0 0;font-size:.78rem;line-height:1.4;display:flex}.card-actions{gap:.85rem;width:min(100%,640px);margin-top:1rem;display:grid}.invitation-card{aspect-ratio:9/16;text-align:center;width:min(100%,390px);min-height:620px;color:var(--gold-50);-webkit-backdrop-filter:blur(12px)saturate(1.14);backdrop-filter:blur(12px)saturate(1.14);background:radial-gradient(circle at 50% 12%,#f0d98a14,#0000 7rem),linear-gradient(160deg,#0521151f,#01050329 58%,#04120c1f);justify-items:center;margin:0 auto;padding:1.2rem 1rem;display:grid}.card-glass-light{pointer-events:none;background:linear-gradient(122deg,#0000 0 38%,#ffffff03 48%,#0000 58% 100%);position:absolute;inset:0}.card-crest{width:5.8rem;margin-top:.9rem;font-size:1.35rem}.invitation-card h2{font-size:clamp(2rem,8vw,2.8rem)}.guest-script{overflow-wrap:anywhere;max-width:94%;font-size:clamp(1.65rem,6vw,2.4rem)}.card-invite-line{color:#fff9e8b3;max-width:84%;margin:.35rem 0 .1rem;font-size:.58rem;line-height:1.5}.card-host{color:#f0d98adb;margin:.18rem 0 .1rem;font-size:.62rem;font-weight:700}.signature-line{color:#fff6c9eb;font-size:clamp(1.3rem,5vw,1.9rem)}.honour-line{color:#fff9e8b8;width:min(280px,90%);margin:.35rem 0 0;font-size:.56rem;line-height:1.6}.qr-seal{background:#fff0bdeb;border:1px solid #f0d98a80;border-radius:8px;place-items:center;width:fit-content;margin:.7rem auto;padding:.5rem;display:grid;box-shadow:0 18px 44px #0000004d,0 0 24px #f0d98a1f}.card-meta{max-width:92%;margin-top:auto;font-size:.52rem}.card-footer{color:#f0d98ad1;margin-top:.75rem;font-size:.56rem;font-weight:700}.venue-starline{background:#010503eb;border-radius:999px;place-items:center;width:min(240px,68%);margin:.55rem auto .2rem;padding:.25rem .7rem;display:grid;box-shadow:inset 0 1px #ffffff14,0 0 0 1px #f0d98a1f}.venue-starline span{color:#f0d98af5;font-size:.76rem;line-height:1}.corner-gardens{z-index:1;pointer-events:none;position:fixed;inset:0}.corner-garden{opacity:.38;filter:blur(.2px)drop-shadow(0 0 14px #f0d98a33);background:radial-gradient(circle,#f0d98aeb 0 12%,#0000 13%),radial-gradient(circle at 50% 18%,#f0d98ab8 0 8%,#0000 9%),radial-gradient(circle at 82%,#f0d98ab8 0 8%,#0000 9%),radial-gradient(circle at 50% 82%,#f0d98ab8 0 8%,#0000 9%),radial-gradient(circle at 18%,#f0d98ab8 0 8%,#0000 9%),radial-gradient(circle at 32% 32%,#fff9 0 5%,#0000 6%);width:78px;height:78px;position:absolute}.corner-garden:before,.corner-garden:after{content:"";border:1px solid #f0d98a24;border-radius:50%;position:absolute;inset:14px}.corner-garden:after{background:radial-gradient(circle,#fff6c9d1 0 24%,#0000 25%);border-width:0;inset:28px}.corner-garden-tl{top:-10px;left:-8px}.corner-garden-tr{top:-10px;right:-8px;transform:rotate(90deg)}.corner-garden-bl{bottom:-10px;left:-8px;transform:rotate(-90deg)}.corner-garden-br{bottom:-10px;right:-8px;transform:rotate(180deg)}.admin-shell,.verify-shell{background:radial-gradient(circle at 18% 0,#f0d98a33,#0000 28rem),radial-gradient(circle at 90% 24%,#27e18d26,#0000 24rem),linear-gradient(145deg,#020806,#061b12);padding:clamp(1rem,2.4vw,2rem)}.admin-topbar,.stat-grid,.admin-panels{z-index:1;width:min(1260px,100%);margin-inline:auto;position:relative}.eyebrow{width:fit-content;color:var(--gold-50);letter-spacing:.08em;text-transform:uppercase;background:#03120c6b;border:1px solid #f0d98a47;border-radius:999px;align-items:center;gap:.5rem;padding:.52rem .78rem;font-family:Cinzel,Georgia,serif;font-size:.76rem;font-weight:800;display:inline-flex}.eyebrow.small{padding:.42rem .64rem;font-size:.68rem}.admin-topbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-topbar h1{margin-top:.45rem;font-size:clamp(2.4rem,5vw,5rem)}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-top:1.4rem;display:grid}.stat-card,.admin-card,.admin-login,.verify-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(145deg,#ffffff14,#ffffff05),#020c0847;border-radius:8px;padding:clamp(1rem,2vw,1.35rem);box-shadow:0 24px 70px #00000047,inset 0 1px #ffffff1a}.stat-card span{color:var(--mist);font-size:.82rem}.stat-card strong{color:var(--gold-50);margin-top:.35rem;font-size:2rem;display:block}.admin-panels{grid-template-columns:minmax(290px,420px) minmax(0,1fr);gap:1rem;margin-top:1rem;display:grid}.section-title,.guest-toolbar{color:var(--gold-50);justify-content:space-between;align-items:center;gap:1rem;font-family:Cinzel,Georgia,serif;font-weight:900;display:flex}.toggle-button{justify-content:flex-start;min-height:3rem}.toggle-button.open{color:var(--ok);border-color:#71edb180}.toggle-button.closed{color:var(--danger);border-color:#ff70787a}.search-input{margin:1rem 0}.guest-list{gap:.7rem;max-height:58svh;padding-right:.2rem;display:grid;overflow:auto}.guest-row{background:#010c083d;border:1px solid #f0d98a29;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.8rem;display:grid}.guest-row strong,.guest-row span,.guest-row small{overflow-wrap:anywhere;display:block}.guest-row span{color:#fff9e8b3;margin-top:.22rem;font-size:.86rem}.guest-row small{color:#fff6c99e;margin-top:.28rem}.row-actions{gap:.45rem;display:flex}.row-actions button{width:2.35rem;height:2.35rem;padding:0}.admin-login,.verify-card{z-index:1;width:min(460px,100% - 2rem);margin:10svh auto 0;position:relative}.admin-login h1,.verify-card h1{font-size:clamp(2.6rem,8vw,4.8rem)}.verify-shell{place-items:center;display:grid}.scan-beam{pointer-events:none;background:linear-gradient(#0000 0 35%,#71edb12e 48%,#0000 62% 100%);animation:3s ease-in-out infinite scan;position:absolute;inset:0}.verify-card{text-align:center;margin:0}.verify-card.accepted{border-color:#71edb170}.verify-card.denied{border-color:#ff70785c}.verify-icon{width:5rem;height:5rem;color:var(--gold-50);background:#010c0866;border:1px solid #f0d98a47;border-radius:50%;place-items:center;margin:0 auto 1rem;display:grid}.verify-details{color:#fff9e8bf;gap:.45rem;margin:1.2rem 0;display:grid}.verify-details strong{color:var(--gold-50);font-size:1.35rem}.vip-chip{border:1px solid #f0d98a57;border-radius:999px;justify-self:center;align-items:center;gap:.35rem;width:fit-content;padding:.42rem .65rem;display:inline-flex}.verify-form{grid-template-columns:minmax(0,1fr) 120px;margin-top:1rem}.center-stage{color:var(--gold-50);place-items:center;display:grid}@keyframes ornamentFloat{0%{opacity:0;transform:translate(-12px)rotate(-4deg)}16%{opacity:.56}50%{opacity:.42;transform:translate(12px,-54vh)rotate(5deg)}to{opacity:0;transform:translate(-8px,-112vh)rotate(-3deg)}}@keyframes bubbleRise{0%{opacity:0;transform:translate(0,0)scale(.65)}12%{opacity:.62}55%{transform:translate3d(var(--mid), -58vh, 0) scale(1)}to{transform:translate3d(var(--end), -112vh, 0) scale(1.15);opacity:0}}@keyframes foilFall{0%{opacity:0;transform:translateY(-10vh)rotateX(0)rotateY(0)rotate(0)}12%{opacity:.56}to{transform:translate3d(var(--drift), 116vh, 0) rotateX(540deg) rotateY(720deg) rotateZ(220deg);opacity:0}}@keyframes emberFlicker{0%,to{opacity:0;transform:scale(.2)rotate(45deg)}45%{opacity:.82;transform:scale(1.1)rotate(45deg)}62%{opacity:.28;transform:scale(.45)rotate(45deg)}}@keyframes glassSweep{0%,to{opacity:.18;transform:translate(-36%)}50%{opacity:.5;transform:translate(42%)}}@keyframes buttonShine{0%,45%{transform:translate(-120%)}70%,to{transform:translate(120%)}}@keyframes scan{0%,to{transform:translateY(-35%)}50%{transform:translateY(35%)}}@media (max-width:920px){.invite-shell{min-height:auto}.royal-stage,.admin-panels{grid-template-columns:1fr}.royal-stage{gap:.8rem;min-height:auto}.glass-invitation,.rsvp-plaque{width:min(100%,1000px);min-height:calc(100svh - 1.2rem)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-list{max-height:none}}@media (max-width:620px){.invite-shell{min-height:100svh}.panel{padding:.55rem}.glass-invitation,.rsvp-plaque{min-height:calc(100svh - 1.1rem);padding:1rem .8rem}.glass-invitation h1{font-size:clamp(2.7rem,15vw,4.2rem)}.celebrant-name{overflow-wrap:anywhere;word-break:break-word;inline-size:min(100%,260px);max-inline-size:260px;margin-inline:auto;font-size:clamp(1.35rem,8.8vw,2.05rem)}.crest{width:5.1rem;font-size:1.55rem}.event-lines{font-size:.56rem}.form-row,.stat-grid,.verify-form{grid-template-columns:1fr}.invitation-card{min-height:610px}.qr-seal canvas{width:128px!important;height:128px!important}.guest-row{grid-template-columns:1fr}.row-actions{justify-content:stretch}.row-actions button{flex:1;width:auto}.scroll-hint{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.luxury-ornaments,.champagne-bubbles,.foil-confetti,.sparkler-embers,.shimmer-veil,.party-pops{display:none}}html,body{color:#fffdf6;font-family:Bad Script,cursive}button,input,textarea{font-family:Bad Script,cursive}label,.status-line,.config-warning,.eyebrow,.toggle-button,.ghost-button,.icon-button,.row-actions button,.scroll-hint{text-transform:none;letter-spacing:.02em;font-family:Bad Script,cursive}.glass-invitation h1,.invitation-card h2,.admin-topbar h1,.verify-card h1,.admin-login h1,.invite-title,.card-title,.celebrant-name,.guest-script,.signature-line,.detail-line{font-family:Calligraffitti,cursive}.invite-honour,.invite-host,.card-honour,.card-for,.invitation-copy,.card-copy,.details-stack,.card-details,.rsvp-title,.event-lines,.card-meta,.card-footer,.microline,.card-small,.honour-line,.card-invite-line,.scroll-hint,.invite-subcopy,.invite-subcopy-soft,.card-recipient{font-family:Bad Script,cursive}.invite-title,.card-title{color:#fffdf0;text-align:center;margin:0;font-size:clamp(1.2rem,3vw,1.7rem);line-height:1.1}.invite-honour,.invite-host,.card-honour,.card-for{color:#ffffffdb;text-align:center;margin:0;font-size:clamp(.9rem,2.1vw,1.15rem)}.invitation-copy,.card-copy{color:#ffffffeb;text-align:center;gap:.45rem;width:min(100%,760px);margin:.2rem auto 0;font-size:clamp(1rem,2vw,1.32rem);line-height:1.45;display:grid}.invitation-copy p,.card-copy p{margin:0}.details-stack,.card-details{color:#fffdf0;text-align:center;gap:.3rem;width:min(100%,760px);margin:.35rem auto 0;display:grid}.detail-line{font-size:clamp(1rem,2.15vw,1.35rem);line-height:1.18;display:block}.celebrant-name,.guest-script,.signature-line{color:#fffdf0;text-shadow:0 0 12px #f0d98a14}.celebrant-name{text-align:center;margin:0;font-size:clamp(1.8rem,5vw,3.1rem);line-height:.94}.guest-script{text-align:center;margin:0;font-size:clamp(1.5rem,4vw,2.2rem);line-height:.96}.signature-line{text-align:center;margin:0;font-size:clamp(1.35rem,4vw,2rem);line-height:.96}.crest,.card-crest{aspect-ratio:1;width:min(72vw,220px);box-shadow:none;background:0 0;border:0;place-items:center;margin:.4rem auto .95rem;display:grid}.monogram-crest{width:100%;height:100%;display:block;overflow:visible}.ornament-line{background:linear-gradient(90deg,#0000,#f0d98ab8,#0000)}.ornament-line:after{color:#ffffffe0;background:0 0;padding:0}.scroll-hint{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffdf0;background:#ffffff0f;border:1px solid #f0d98a42;width:fit-content;min-height:2.45rem;margin-top:.9rem;padding:.5rem .85rem}.gold-button{color:#06110b;letter-spacing:.02em;text-transform:none;background:#fff6c9;box-shadow:0 18px 44px #8d5f162e,0 0 22px #f0d98a1a}.gold-button:after{display:none}.ghost-button,.icon-button,.toggle-button,.row-actions button{color:#fffdf0;background:#020c086b}input,textarea{color:#fffdf2;background:#ffffff14;border-color:#fff6c933}textarea{background:#ffffff1c;min-height:110px}input:focus,textarea:focus{background:#ffffff24}label{color:#ffffffe6}.invite-shell,.admin-shell,.verify-shell{color:#fffdf6}.admin-shell,.verify-shell{background:radial-gradient(circle at 18% 0,#f0d98a2e,#0000 28rem),radial-gradient(circle at 90% 24%,#27e18d1f,#0000 24rem),linear-gradient(145deg,#020806,#061b12)}.admin-topbar h1,.verify-card h1,.admin-login h1,.invite-title,.card-title,.glass-invitation h1,.invitation-card h2{color:#fffdf0}.scan-beam{opacity:.7}.auth-centered{place-items:center;min-height:100svh;display:grid}.auth-centered .admin-login{text-align:center;margin:0}.auth-centered .admin-login h1,.dashboard-topbar h1{text-align:center;font-size:clamp(2rem,5vw,3.2rem);line-height:1}.dashboard-topbar{text-align:center;justify-content:center}.dashboard-topbar .eyebrow{margin-inline:auto}.topbar-actions{align-items:center;gap:.55rem;display:flex;position:absolute;right:0}.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-button{border:1px solid var(--line);text-align:left;width:100%;display:block}.stat-button em{color:#fff9e89e;font-size:.72rem;font-style:normal;display:block}.field-label small,.field-help{color:#fff9e89e;letter-spacing:0;text-transform:none;font-family:Bad Script,Inter,sans-serif;font-size:.82rem;line-height:1.2}.admin-add-form{background:#ffffff0b;border:1px solid #f0d98a24;border-radius:8px;gap:.75rem;margin:1rem 0;padding:.9rem;display:grid}.compact-title{font-size:.95rem}.admin-tabs{flex-wrap:wrap;gap:.45rem;margin:1rem 0 .25rem;display:flex}.admin-tabs button,.contact-line button,.contact-action{color:#fffdf0;background:#020c086b;border:1px solid #f0d98a33;border-radius:999px;padding:.5rem .7rem}.admin-tabs button.active{color:#06110b;background:#fff6c9;border-color:#f0d98ab8}.contact-line{flex-wrap:wrap;gap:.4rem;display:flex!important}.contact-line button{overflow-wrap:anywhere;max-width:100%;font-size:.78rem}.guest-row.status-pending{border-color:#f0d98a57}.guest-row.status-invited{border-color:#71edb157}.guest-row.status-uninvited{opacity:.88;border-color:#ff70784d}.contact-modal{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00000094;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.contact-card{gap:.75rem;width:min(440px,100%);display:grid}.contact-card h2{color:#fffdf0;text-align:center;margin:0;font-size:clamp(1.6rem,5vw,2.4rem)}.contact-action{overflow-wrap:anywhere;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;display:flex}.scan-tip-button{margin-inline:auto}.scan-tip{color:#fff9e8c7;background:#ffffff0f;border:1px solid #f0d98a2e;border-radius:8px;margin:.75rem 0;padding:.75rem;line-height:1.35}@media (max-width:920px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-topbar{padding-top:3.2rem}.topbar-actions{justify-content:center;top:0;left:0;right:0}}@media (max-width:620px){.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-shell{padding:.75rem}.admin-tabs button{flex:calc(50% - .45rem)}.topbar-actions .ghost-button{min-height:2.3rem;padding:.45rem .65rem}}.invitation-card{gap:.28rem;width:min(100%,360px);min-height:760px;padding:.85rem 1rem 1.35rem}.invitation-card.compact{width:360px;min-height:760px;position:fixed;top:0;left:-9999px}.card-crest,.crest{width:min(36vw,96px);margin:0 auto .1rem}.card-crest{width:min(34vw,88px);margin-top:0}.card-title{letter-spacing:.04em;margin-top:-.1rem;font-size:clamp(1rem,2.6vw,1.35rem);line-height:1.08}.card-honour,.card-host,.card-for{font-size:clamp(.8rem,1.9vw,1rem)}.celebrant-name,.guest-script{font-size:clamp(1.3rem,3.8vw,2rem);line-height:1.05}.card-copy{gap:.26rem;width:min(100%,300px);font-size:clamp(.9rem,1.8vw,1.08rem);line-height:1.34}.card-details{gap:.18rem;width:min(100%,300px);margin-top:.18rem}.detail-line{font-size:clamp(.9rem,1.8vw,1.08rem);line-height:1.12}.qr-seal{background:#fff0bdf7;margin:.6rem auto 0;padding:.42rem}.qr-seal span{color:#020604;text-align:center;margin-top:.35rem;font-family:Bad Script,cursive;font-size:.82rem;display:block}.card-footer{margin-top:.55rem}.download-modal,.contact-modal{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0000009e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.download-card{background:#010503eb;border:1px solid #f0d98a38;border-radius:8px;gap:.75rem;width:min(92vw,420px);padding:1rem;display:grid;position:relative;box-shadow:0 24px 80px #00000061}.download-card h2{color:#fffdf0;text-align:center;margin:0;font-family:Calligraffitti,cursive;font-size:clamp(1.6rem,5vw,2.2rem)}.download-card p{color:#fff9e8d6;text-align:center;margin:0;line-height:1.4}.download-close{color:#fffdf0;background:#ffffff14;border:0;border-radius:999px;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;top:.55rem;right:.55rem}.verify-back{z-index:2;padding:.45rem .7rem;position:absolute;top:.85rem;left:.85rem}.verify-card{position:relative}.hidden-download-card{pointer-events:none;width:360px;height:760px;position:fixed;top:0;left:-99999px;overflow:hidden}.row-actions.logout-actions{justify-content:space-between;width:100%;display:flex}@media (max-width:620px){.invitation-card{width:min(100%,340px);min-height:720px}.download-card,.contact-card{width:min(100%,360px)}}
