: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:EB Garamond,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: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,Trajan Pro,Times New Roman,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:EB Garamond,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,Trajan Pro,Times New Roman,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,Trajan Pro,Times New Roman,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:EB Garamond,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:EB Garamond,Garamond,Georgia,serif;font-size:clamp(1.75rem,4.8vw,3rem);line-height:.95}.invite-subcopy{color:#fff9e8d6;max-width:680px;margin:.35rem auto 0;font-family:EB Garamond,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,Trajan Pro,Times New Roman,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,Trajan Pro,Times New Roman,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:EB Garamond,Garamond,Georgia,serif}button,input,textarea{font-family:EB Garamond,Garamond,Georgia,serif}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:EB Garamond,Garamond,Georgia,serif}.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:Cinzel,Trajan Pro,Times New Roman,serif}.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:EB Garamond,Garamond,Georgia,serif}.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:EB Garamond,Garamond,Georgia,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:EB Garamond,Garamond,Georgia,serif;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:Cinzel,Trajan Pro,Times New Roman,serif;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)}}:root{--crest-gold:#f2d27a;--crest-gold-bright:#fff6c9;--crest-gold-deep:#d7ad42}.invite-shell,.admin-shell,.verify-shell,.glass-invitation,.rsvp-plaque,.invitation-card,.admin-card,.verify-card,.admin-login,.status-line,.field-help,.field-label small,.guest-row span,.guest-row small,.verify-details,.scan-tip,.download-card p{color:var(--crest-gold)}.invite-title,.card-title,.celebrant-name,.guest-script,.invite-honour,.invite-host,.card-honour,.card-host,.card-for,.invitation-copy,.card-copy,.details-stack,.card-details,.detail-line,.rsvp-title,.card-footer,.admin-topbar h1,.verify-card h1,.admin-login h1,.section-title,.guest-row strong,.verify-details strong,.download-card h2,.contact-card h2,.rsvp-contact,.rsvp-contact-line{color:var(--crest-gold-bright);text-shadow:0 0 8px #fff6c92e,0 0 18px #d7ad4229;font-weight:700}.invite-title,.card-title{font-size:clamp(1.55rem,4.4vw,2.2rem);font-weight:800}.invite-honour,.invite-host,.card-honour,.card-host,.card-for{font-size:clamp(1.16rem,3vw,1.48rem);font-weight:700}.invitation-copy,.card-copy{font-size:clamp(1.26rem,2.9vw,1.62rem);font-weight:650;line-height:1.48}.details-stack,.card-details,.detail-line{font-size:clamp(1.2rem,2.8vw,1.58rem);font-weight:700;line-height:1.22}.celebrant-name,.guest-script{font-size:clamp(1.92rem,5.8vw,2.95rem);font-weight:700;line-height:1.04}.rsvp-title{justify-content:center;font-size:1.24rem;font-weight:800}.rsvp-contact-line{z-index:1;color:var(--crest-gold-bright);text-align:center;margin:-.15rem 0 .3rem;font-size:1.2rem;font-weight:800;position:relative}label,input,textarea,.search-input,.admin-add-form input,.admin-add-form textarea,.verify-form input{font-family:EB Garamond,Garamond,Georgia,serif;font-style:normal}input,textarea,.search-input,.admin-add-form input,.admin-add-form textarea,.verify-form input{min-height:50px;color:var(--crest-gold-bright);letter-spacing:0;font-size:16px;font-weight:600;line-height:1.35}textarea,.admin-add-form textarea{min-height:118px}input::placeholder,textarea::placeholder{color:#f2d27a9e}label{color:var(--crest-gold-bright);letter-spacing:.08em;font-size:.9rem;font-weight:800}.gold-button,.admin-tabs button.active{color:#06110b;background:linear-gradient(135deg,#fff6c9 0%,#f2d27a 38%,#d7ad42 72%,#fff0b7 100%);font-weight:900}.ghost-button,.icon-button,.toggle-button,.row-actions button,.admin-tabs button,.contact-line button,.contact-action{color:var(--crest-gold-bright);font-weight:750}.qr-seal svg{width:142px;height:142px;display:block}@media (max-width:620px){.invite-title,.card-title{font-size:clamp(1.48rem,7.2vw,2rem)}.invitation-copy,.card-copy{font-size:clamp(1.2rem,5.3vw,1.48rem);line-height:1.42}.details-stack,.card-details,.detail-line{font-size:clamp(1.12rem,5vw,1.38rem)}.celebrant-name,.guest-script{font-size:clamp(1.78rem,8.8vw,2.55rem)}}.invite-title,.card-title{letter-spacing:.09em;text-transform:uppercase;font-weight:900}.celebrant-name{letter-spacing:.045em;font-weight:900}.invitation-card .celebrant-name{letter-spacing:.035em;font-weight:900}.invitation-card{align-content:start;gap:.16rem;min-height:760px;padding:.72rem 1rem .95rem}.invitation-card .card-title{letter-spacing:.08em;max-width:305px;font-size:1.08rem;font-weight:800;line-height:1.02}.invitation-card .card-honour,.invitation-card .card-host,.invitation-card .card-for{font-size:.84rem;font-weight:650;line-height:1.02}.invitation-card .celebrant-name,.invitation-card .guest-script{letter-spacing:.025em;max-width:310px;font-size:1.42rem;font-weight:700;line-height:1.02}.invitation-card .card-copy{gap:.12rem;max-width:316px;font-size:.98rem;font-weight:600;line-height:1.18}.invitation-card .card-details,.invitation-card .detail-line{gap:.08rem;max-width:316px;font-size:.9rem;font-weight:650;line-height:1.08}.invitation-card .qr-seal{margin:.28rem auto 0;padding:.34rem}.invitation-card .qr-seal span{margin-top:.2rem;font-size:.68rem;line-height:1}.invitation-card .card-footer{margin-top:.28rem;font-size:.48rem;line-height:1}@media (max-width:620px){.invitation-card{min-height:760px}}.invitation-card .card-title,.invitation-card .celebrant-name,.invitation-card .guest-script,.invitation-card .card-copy,.invitation-card .card-details,.invitation-card .detail-line,.invitation-card .rsvp-contact,.invitation-card .card-honour,.invitation-card .card-host,.invitation-card .card-for,.invitation-card .card-footer{font-weight:400}.invitation-card .card-title,.invitation-card .celebrant-name,.invitation-card .guest-script{line-height:1.12}.invitation-card .qr-seal,.invitation-card .card-footer{margin-top:.42rem}.invitation-card .card-title,.invitation-card .celebrant-name,.invitation-card .guest-script{line-height:1.18}.admin-card,.admin-login,.stat-card,.contact-card{-webkit-backdrop-filter:blur(18px)saturate(1.18);backdrop-filter:blur(18px)saturate(1.18);background:linear-gradient(145deg,#ffffff1a,#ffffff09),#020c08b8;border-color:#f0d98a57;box-shadow:0 24px 80px #0000006b,inset 0 1px #ffffff1f}.admin-add-form,.guest-row{background:#010c08a3;border-color:#f0d98a47;box-shadow:inset 0 1px #ffffff14}.admin-shell input,.admin-shell textarea,.search-input{background:#000805bd;border-color:#f0d98a57}.admin-shell input:focus,.admin-shell textarea:focus,.search-input:focus{background:#000805e6}.admin-card-download-stage{z-index:90;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#000000c7;place-items:start center;padding:1rem;display:grid;position:fixed;inset:0;overflow:auto}.admin-card-download-shell{justify-items:center;gap:.9rem;padding:.5rem 0 1.5rem;display:grid}.admin-card-download-stage .invitation-card{flex:none;width:360px;min-height:760px}.admin-download-controls{background:#020c07e6;border-color:#f2d27a52;width:min(360px,100vw - 2rem);position:relative}@media (max-width:620px){.admin-card-download-stage{place-items:start center;padding:.75rem}.admin-card-download-stage .invitation-card{width:360px;max-width:none;min-height:760px}}:root{--roman-display:Cinzel, "Trajan Pro", "Times New Roman", serif;--garamond-text:"EB Garamond", Garamond, Georgia, serif}body,button,input,textarea,.invite-honour,.invite-host,.card-honour,.card-for,.invitation-copy,.card-copy,.details-stack,.card-details,.celebrant-name,.guest-script,.signature-line,.field-help,.status-line,.guest-row{font-family:var(--garamond-text)}.invite-title,.card-title,.card-host,label,.eyebrow,.admin-topbar h1,.admin-login h1,.verify-card h1,.guest-toolbar,.toggle-button,.ghost-button,.gold-button,.scroll-hint,.row-actions button,.qr-seal span{font-family:var(--roman-display)}.celebrant-name,.guest-script,.signature-line{letter-spacing:.02em;font-weight:600}.invite-title,.card-title{letter-spacing:.12em;font-weight:700}input,textarea{font-size:16px;font-style:normal}.invite-title,.card-title,.invitation-card .card-title{letter-spacing:.115em;font-weight:560}.invite-honour,.invite-host,.card-honour,.card-host,.card-for,.invitation-card .card-honour,.invitation-card .card-host,.invitation-card .card-for{font-weight:560}.celebrant-name,.invitation-card .celebrant-name{letter-spacing:.026em;font-weight:600}.guest-script,.invitation-card .guest-script,.signature-line{letter-spacing:.018em;font-weight:570}.invitation-copy,.invitation-copy p,.card-copy,.card-copy p,.invitation-card .card-copy,.invitation-card .card-copy p,.details-stack,.detail-line,.card-details,.card-details .detail-line,.invitation-card .card-details,.invitation-card .detail-line,.invitation-card .rsvp-contact{font-weight:520}.detail-line strong,.invitation-card .detail-line strong,.rsvp-contact strong{font-weight:600}label,.field-label>span,.eyebrow,.section-title,.guest-toolbar,.toggle-button,.ghost-button,.gold-button,.row-actions button,.scroll-hint,.qr-seal span{font-weight:560}.field-label small,.field-help,.status-line,.guest-row small,.contact-line,.download-card p{font-weight:500}input,textarea,.admin-add-form input,.admin-add-form textarea,.verify-form input{font-weight:520}.admin-topbar h1,.admin-login h1,.verify-card h1,.download-card h2{font-weight:560}.stat-card strong{font-weight:600}.stat-card span,.stat-card em{font-weight:520}.invitation-card{place-content:center;justify-items:center;gap:.2rem;padding-top:.82rem;padding-bottom:.86rem}.invitation-card .card-crest{margin-bottom:.12rem}.invitation-card .card-copy{gap:.22rem;line-height:1.34}.invitation-card .card-details,.invitation-card .detail-line{gap:.13rem;line-height:1.2}.invitation-card .qr-seal{margin-top:.5rem}.detail-line,.details-stack .detail-line,.card-details .detail-line,.invitation-card .detail-line,.invitation-card .rsvp-contact{font-family:var(--garamond-text);font-weight:520}:root{--shiny-gold:#f7e5a4;--shiny-gold-soft:#fff7d6;--shiny-gold-deep:#d8aa3f;--portrait-overlay:linear-gradient(180deg, #010705bd, #020a07b8 28%, #04120ccc 100%);--portrait-highlight:radial-gradient(circle at 52% 20%, #f4df9729, transparent 28%), radial-gradient(circle at 50% 62%, #f4df9714, transparent 24%)}.glass-invitation,.rsvp-plaque,.invitation-card{isolation:isolate}.site-backdrop:before{content:"";pointer-events:none;opacity:.14;filter:saturate(.7)contrast(.9)brightness(.58);background-image:linear-gradient(#010705c2,#030d09d1),url(/colonel-dickson.png);background-position:50% 18%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.portrait-wash{z-index:0;pointer-events:none;background-image:var(--portrait-overlay), var(--portrait-highlight), url(/colonel-dickson.png);opacity:.28;filter:saturate(.76)contrast(.96)brightness(.7);background-position:50% 18%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0;transform:scale(1.02)}.glass-invitation>*,.rsvp-plaque>*,.invitation-card>*{z-index:1;position:relative}.invite-title,.card-title,.invite-honour,.invite-host,.card-honour,.card-host,.card-for,.celebrant-name,.guest-script,.invitation-copy,.invitation-copy p,.card-copy,.card-copy p,.details-stack,.detail-line,.card-details,.card-details .detail-line,.rsvp-contact,.qr-seal span,.rsvp-title,.scroll-hint{color:var(--shiny-gold);text-shadow:0 1px #fff5cf38,0 0 16px #d3a63c2e}.invite-title,.card-title,.card-host,.scroll-hint,.rsvp-title,label,.gold-button,.ghost-button,.toggle-button,.row-actions button,.qr-seal span{color:var(--shiny-gold-soft)}.invite-honour,.card-honour,.card-for,.celebrant-name,.guest-script{letter-spacing:0;font-family:EB Garamond,Garamond,Georgia,serif}.invite-honour,.card-honour,.card-for{font-size:clamp(1.08rem,2.8vw,1.46rem);line-height:1.05}.celebrant-name,.guest-script,.invitation-card .celebrant-name,.invitation-card .guest-script{font-family:EB Garamond,Garamond,Georgia,serif}.name-divider{clip-path:polygon(0 50%,36% 50%,45% 48%,50% 0,55% 48%,64% 50%,100% 50%,100% 58%,64% 58%,55% 60%,50% 100%,45% 60%,36% 58%,0 58%);background:radial-gradient(circle,#fff4c8f5 0 12%,#0000 13%),linear-gradient(90deg,#0000 0,#f4df9724 10%,#f4df97d1 48%,#f4df9724 90%,#0000 100%);width:min(220px,70%);height:14px;margin:.12rem auto .26rem;box-shadow:0 0 16px #d3a63c1f}.detail-split{grid-template-columns:auto auto auto;justify-content:center;align-items:baseline;gap:.32rem;width:fit-content;max-width:100%;margin:0 auto;display:grid}.detail-split-mark{background:radial-gradient(circle,#fff4c8f2 0 38%,#d3a63ccc 39% 70%,#0000 71%);border-radius:999px;align-self:center;width:10px;height:10px;box-shadow:0 0 12px #d3a63c2e}.detail-split .detail-line{text-align:center;white-space:nowrap}.details-stack,.card-details{gap:.28rem;margin-top:.86rem}.invitation-copy,.card-copy{gap:.38rem}.glass-invitation .crest,.invitation-card .card-crest{margin-top:-.13rem}.glass-invitation .crest{margin-bottom:.55rem}.invitation-card{aspect-ratio:9/16;flex-direction:column;justify-content:flex-start;align-items:center;gap:0;width:360px;min-height:640px;padding:.78rem 1rem;display:flex}.invitation-card .card-body{align-content:start;justify-items:center;gap:.06rem;width:100%;display:grid}.invitation-card .portrait-wash{opacity:.22;background-position:50% 10%}.invitation-card .card-crest{width:68px;margin:0 0 .01rem}.invitation-card .card-title{max-width:304px;font-size:.98rem;line-height:1.14}.invitation-card .card-honour,.invitation-card .card-host,.invitation-card .card-for{line-height:1.02}.invitation-card .celebrant-name,.invitation-card .guest-script{max-width:304px;font-size:1.38rem;line-height:1.04}.invitation-card .name-divider{width:154px;margin:.02rem auto .1rem}.invitation-card .card-copy{gap:.18rem;max-width:304px;font-size:.9rem;line-height:1.28}.invitation-card .card-details,.invitation-card .detail-line{max-width:304px;font-size:.85rem;line-height:1.16}.invitation-card .detail-split{gap:.22rem}.invitation-card .ornament-line{margin:.42rem auto .26rem}.invitation-card .qr-seal{margin-top:auto;margin-bottom:.02rem;padding:.28rem}.invitation-card .qr-seal svg{width:112px;height:112px}.invitation-card .qr-seal span{color:#8a6420;text-shadow:none;margin-top:.14rem;font-size:.62rem;font-weight:540}@media (max-width:620px){.detail-split{gap:.26rem}.invitation-card .card-copy,.invitation-card .card-details,.invitation-card .detail-line{max-width:286px}}.site-backdrop:before{opacity:.24;filter:saturate(.85)contrast(.96)brightness(.72);background-image:linear-gradient(#01070594,#030d09ad),url(/colonel-dickson.png);background-position:50% 16%;background-size:cover}.glass-invitation .portrait-wash{opacity:.36;filter:saturate(.86)contrast(.98)brightness(.74);background-position:50% 14%}.invitation-card{isolation:isolate;aspect-ratio:9/16;color:#fff7d5;background:radial-gradient(circle at 14% 18%,#fff4c824,#0000 48px) 50%,radial-gradient(circle at 86% 26%,#f7d2661f,#0000 58px) 50%,radial-gradient(circle at 50% 108%,#fff4c821,#0000 94px) 50%,linear-gradient(#03180f9e,#010705b8) 50%,url(/colonel-dickson.png) 50% 10%/cover;border:1px solid #ffeea857;border-radius:0;flex-direction:column;align-items:center;width:360px;height:640px;min-height:640px;padding:18px 22px 20px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 5px #d7ad4214,inset 0 0 80px #0000007a}.invitation-card:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 18%,#fff6c97a 0 1px,#0000 2px),radial-gradient(circle at 82% 34%,#fff6c966 0 1px,#0000 2px),radial-gradient(circle at 22% 72%,#d7ad4261 0 1px,#0000 2px),radial-gradient(circle at 78% 80%,#fff6c957 0 1px,#0000 2px),linear-gradient(#010d0833,#01060470);border:1px solid #ffeea833;position:absolute;inset:8px}.invitation-card:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#00000057,#0000 24% 76%,#00000057),linear-gradient(#02150d8f,#020c082e 34%,#0108056b 76%,#000000b8);position:absolute;inset:0}.invitation-card>*{z-index:1;position:relative}.invitation-card .floral-corner{opacity:.68;transform:scale(.72)}.invitation-card .card-body{flex:auto;grid-template-rows:auto 1fr;justify-items:center;gap:9px;width:100%;min-height:0;display:grid}.invitation-card .card-zone{text-align:center;justify-items:center;width:100%;display:grid}.invitation-card .card-zone-top{align-content:start;gap:2px}.invitation-card .card-zone-middle{align-content:start;gap:3px}.invitation-card .card-crest{filter:drop-shadow(0 0 10px #f7d26647);width:64px;margin:0 0 3px}.invitation-card .card-title{color:#fff0af;letter-spacing:.1em;text-transform:uppercase;text-shadow:0 1px #ffffff24,0 0 14px #d7ad4247;max-width:300px;margin:0;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:15px;font-weight:800;line-height:1.13}.invitation-card .card-honour,.invitation-card .card-for{color:#fff5c8;text-shadow:0 0 14px #d7ad4238;margin:0;font-family:EB Garamond,Garamond,Georgia,serif;font-size:21px;line-height:.96}.invitation-card .card-host{color:#f8d978;letter-spacing:.17em;text-transform:uppercase;margin:0;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:10px;font-weight:700;line-height:1.15}.invitation-card .celebrant-name,.invitation-card .guest-script{color:#fff8dc;letter-spacing:0;text-shadow:0 1px #55360680,0 0 18px #f7d26647;max-width:304px;margin:0;font-family:EB Garamond,Garamond,Georgia,serif;font-size:26px;font-weight:400;line-height:.98}.invitation-card .guest-script{color:#fff2bd;font-size:30px}.invitation-card .name-divider{width:150px;height:12px;margin:3px auto 0}.invitation-card .card-copy{color:#fff6dc;text-align:center;text-shadow:0 1px 2px #0000008f;gap:3px;max-width:304px;margin:5px auto 0;font-family:EB Garamond,Garamond,Georgia,serif;font-size:13.8px;font-weight:500;line-height:1.22;display:grid}.invitation-card .ornament-line{width:178px;height:13px;margin:6px auto 2px}.invitation-card .card-details{color:#fff0bf;text-align:center;text-shadow:0 1px 2px #0000009e;justify-items:center;gap:3px;max-width:308px;margin:0 auto;font-family:EB Garamond,Garamond,Georgia,serif;font-size:12.8px;font-weight:600;line-height:1.14;display:grid}.invitation-card .detail-line strong{color:#ffe998;letter-spacing:.08em;text-transform:uppercase;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:9.4px}.invitation-card .detail-split{grid-template-columns:auto auto auto;justify-content:center;align-items:center;gap:7px;width:fit-content;max-width:100%;margin:0 auto 2px;display:grid}.invitation-card .detail-split-mark{width:7px;height:7px}.invitation-card .qr-seal{background:linear-gradient(#fff8dc,#ffecad);border:1px solid #8d5f1633;border-radius:10px;align-content:center;justify-items:center;width:142px;margin:9px auto 0;padding:8px 8px 7px;display:grid;box-shadow:0 9px 28px #0000005c,0 0 24px #d7ad4224}.invitation-card .qr-seal svg{display:block;width:116px!important;height:116px!important}.invitation-card .qr-seal span{color:#5d3b08;letter-spacing:.13em;text-transform:uppercase;text-shadow:none;margin-top:4px;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:8.5px;font-weight:800;line-height:1}.invitation-card{--card-edge-gap:18px;--card-section-gap:18px;padding-top:var(--card-edge-gap);padding-bottom:var(--card-edge-gap)}.invitation-card .card-body{justify-content:flex-start;gap:var(--card-section-gap);flex-direction:column;flex:auto;display:flex}.invitation-card .card-zone-top,.invitation-card .card-zone-middle{gap:3px}.invitation-card{--card-edge-gap:18px;padding-top:var(--card-edge-gap);padding-bottom:var(--card-edge-gap)}.invitation-card .card-body{flex-direction:column;flex:auto;justify-content:space-between;align-items:center;gap:0;width:100%;min-height:0;display:flex}.invitation-card .card-zone,.invitation-card .card-zone-top,.invitation-card .card-zone-middle{display:contents}.invitation-card .card-zone-middle{margin-top:0}.invitation-card .card-crest,.invitation-card .card-title,.invitation-card .card-honour,.invitation-card .celebrant-name,.invitation-card .name-divider,.invitation-card .card-host,.invitation-card .card-for,.invitation-card .guest-script,.invitation-card .card-copy,.invitation-card .ornament-line,.invitation-card .card-details,.invitation-card .qr-seal{flex:none;margin-top:0;margin-bottom:0}.invitation-card .celebrant-name,.invitation-card .guest-script{font-family:EB Garamond,Garamond,Georgia,serif;font-weight:400;line-height:1}.invitation-card .celebrant-name{font-size:27px}.invitation-card .guest-script{font-size:31px}.invitation-card{--card-edge-gap:12px}.invitation-card .card-honour{color:#fff0af;letter-spacing:.1em;text-transform:uppercase;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:15px;font-weight:800;line-height:1.13}.invitation-card .card-for{color:#f8d978;letter-spacing:.17em;text-transform:uppercase;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:10px;font-weight:700;line-height:1.15}.celebrant-name,.guest-script,.invitation-card .celebrant-name,.invitation-card .guest-script{letter-spacing:0;font-style:normal;font-weight:400;font-family:EB Garamond,Garamond,Georgia,serif!important}.invitation-card .qr-seal{border-radius:4px;width:auto;padding:1px;line-height:0}:root{--black:#07180d;--emerald-950:#06170d;--emerald-900:#082313;--emerald-800:#0d331d;--emerald-700:#164f2c;--forest-950:#06170d;--forest-900:#082313;--forest-800:#0d331d;--forest-700:#164f2c;--glass:#08231375;--portrait-overlay:linear-gradient(180deg, #06170de0, #082313e6 42%, #06170deb 100%);--portrait-highlight:radial-gradient(circle at 52% 18%, #f4df971a, transparent 25%), radial-gradient(circle at 50% 62%, #164f2c47, transparent 32%)}html,body{background:#07180d}.invite-shell,.admin-shell,.verify-shell,.center-stage{background:radial-gradient(circle at 50% -12%,#f0d98a2e,#0000 24rem),radial-gradient(circle at 14% 22%,#228b222e,#0000 22rem),radial-gradient(circle at 88% 72%,#d7ad4212,#0000 20rem),linear-gradient(145deg,#07180d,#082313 52%,#0d331d)}.site-backdrop:before{opacity:.18;filter:saturate(.72)contrast(.92)brightness(.62);background-image:linear-gradient(#06170dc7,#082313d6),url(/colonel-dickson.png)}.invitation-card{background:radial-gradient(circle at 14% 18%,#fff4c81a,#0000 48px) 50%,radial-gradient(circle at 86% 26%,#f7d26614,#0000 58px) 50%,radial-gradient(circle at 50% 108%,#fff4c81a,#0000 94px) 50%,linear-gradient(#06170de6,#082313e8 44%,#06170df0) 50%,url(/colonel-dickson.png) 50% 10%/cover;box-shadow:inset 0 0 0 5px #d7ad4214,inset 0 0 100px #06170dad}.invitation-card:after{background:linear-gradient(90deg,#06170d80,#0000 24% 76%,#06170d80),linear-gradient(#082313ad,#0823136b 34%,#06170d94 76%,#06170dd1)}.invitation-card .card-static-decorations,.invitation-card .card-static-decorations>div,.invitation-card .card-static-decorations span{pointer-events:none;position:absolute}.invitation-card .card-static-decorations{z-index:1;inset:0;overflow:hidden}.invitation-card .card-body{z-index:2;position:relative}.invitation-card .card-static-balloons,.invitation-card .card-static-bubbles,.invitation-card .card-static-foil,.invitation-card .card-static-stars{inset:0}.invitation-card .card-static-balloon{left:var(--x);top:var(--y);width:var(--size);height:calc(var(--size) * 1.18);opacity:var(--opacity);mix-blend-mode:screen;background:radial-gradient(circle at 30% 25%,#ffffffdb,#f0d98a47 26%,#083521c2 80%);border:1px solid #fff6c957;border-radius:50% 50% 46% 46%;transform:translate(-50%,-50%)rotate(-7deg);box-shadow:0 0 18px #f0d98a2e,inset 0 -10px 18px #00000029}.invitation-card .card-static-balloon:after{content:"";background:#fff6c957;width:1px;height:19px;position:absolute;bottom:-16px;left:50%}.invitation-card .card-static-bubbles span{left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:var(--opacity);mix-blend-mode:screen;background:radial-gradient(circle at 34% 30%,#ffffffdb,#f0d98a52 42%,#0000 68%);border:1px solid #fff6c99e;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 14px #f0d98a42}.invitation-card .card-static-foil span{left:var(--x);top:var(--y);width:var(--w);opacity:.48;height:4px;transform:translate(-50%, -50%) rotate(var(--rotate));background:linear-gradient(90deg,#fff6c9,#d7ad42,#d09a72);border-radius:1px;box-shadow:0 0 10px #f0d98a38}.invitation-card .card-static-foil span:nth-child(3n){clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:7px;height:7px}.invitation-card .card-static-foil span:nth-child(4n){background:linear-gradient(135deg,#fff6c9,#aeb8b1,#d7ad42);width:6px;height:10px}.invitation-card .card-static-stars span{left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:.58;transform:translate(-50%,-50%)rotate(45deg)}.invitation-card .card-static-stars span:before,.invitation-card .card-static-stars span:after{content:"";background:#fff6c9db;border-radius:999px;position:absolute;inset:42% 0;box-shadow:0 0 12px #f0d98a70}.invitation-card .card-static-stars span:after{transform:rotate(90deg)}.invitation-card .qr-seal{margin-bottom:4px;padding:0}.invitation-card .qr-seal svg{box-sizing:content-box;background:#fff0bd;padding:1px}.invite-shell{scroll-snap-type:y proximity}.invitation-card,.admin-card-download-stage .invitation-card{--card-edge-gap:12px;isolation:isolate;color:#fff7d5;background:radial-gradient(circle at 14% 18%,#fff4c81a,#0000 48px) 50%,radial-gradient(circle at 86% 26%,#f7d26614,#0000 58px) 50%,radial-gradient(circle at 50% 108%,#fff4c81a,#0000 94px) 50%,linear-gradient(#06170de6,#082313e8 44%,#06170df0) 50%,url(/colonel-dickson.png) 50% 10%/cover;border:1px solid #ffeea857;border-radius:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 5px #d7ad4214,inset 0 0 100px #06170dad;aspect-ratio:9/16!important;width:360px!important;min-width:360px!important;max-width:360px!important;height:640px!important;min-height:640px!important;max-height:640px!important;padding:var(--card-edge-gap) 22px!important;flex-direction:column!important;align-items:center!important;display:flex!important}.invitation-card:before,.admin-card-download-stage .invitation-card:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 18%,#fff6c966 0 1px,#0000 2px),radial-gradient(circle at 82% 34%,#fff6c952 0 1px,#0000 2px),linear-gradient(#010d081f,#01060457);border:1px solid #ffeea82e;border-radius:4px;position:absolute;inset:8px}.invitation-card:after,.admin-card-download-stage .invitation-card:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#06170d80,#0000 24% 76%,#06170d80),linear-gradient(#082313ad,#0823136b 34%,#06170d94 76%,#06170dd1);height:auto;animation:none;position:absolute;inset:0;rotate:none}.invitation-card .portrait-wash,.invitation-card .card-glass-light{display:none!important}.invitation-card .floral-corners,.invitation-card .card-static-decorations{z-index:1;pointer-events:none;position:absolute;inset:0}.invitation-card .card-body{z-index:2;text-align:center;flex:auto;min-height:0;position:relative;flex-direction:column!important;justify-content:space-between!important;align-items:center!important;gap:0!important;width:100%!important;display:flex!important}.invitation-card .card-crest,.invitation-card .card-title,.invitation-card .card-honour,.invitation-card .celebrant-name,.invitation-card .name-divider,.invitation-card .card-host,.invitation-card .card-for,.invitation-card .guest-script,.invitation-card .card-copy,.invitation-card .ornament-line,.invitation-card .card-details,.invitation-card .qr-seal{flex:none;margin:0!important}.invitation-card .card-crest{filter:drop-shadow(0 0 10px #f7d26647);width:64px}.invitation-card .card-title,.invitation-card .card-honour{color:#fff0af;letter-spacing:.095em;text-transform:uppercase;text-wrap:balance;text-shadow:0 1px #ffffff24,0 0 14px #d7ad4247;max-width:318px;font-size:14.5px;font-weight:800;line-height:1.14;font-family:Cinzel,Trajan Pro,Times New Roman,serif!important}.invitation-card .card-host,.invitation-card .card-for{color:#f8d978;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px #ffffff1f,0 0 12px #d7ad4242;max-width:260px;font-size:10px;font-weight:800;line-height:1.18;font-family:Cinzel,Trajan Pro,Times New Roman,serif!important}.invitation-card .celebrant-name,.invitation-card .guest-script{color:#fff8dc;letter-spacing:0;text-transform:none;text-shadow:0 1px #5536067a,0 0 18px #f7d26642;max-width:312px;font-style:normal;font-weight:500;font-family:EB Garamond,Garamond,Georgia,serif!important}.invitation-card .celebrant-name{font-size:28px;line-height:1.04}.invitation-card .guest-script{font-size:36px;line-height:1.02}.invitation-card .name-divider{width:150px;height:12px}.invitation-card .card-copy{color:#fff6dc;text-align:center;text-shadow:0 1px 2px #0000008f;gap:2px;max-width:314px;font-size:14.8px;font-weight:650;line-height:1.18;display:grid;font-family:EB Garamond,Garamond,Georgia,serif!important}.invitation-card .card-copy p{color:inherit;margin:0}.invitation-card .ornament-line{width:178px;height:13px}.invitation-card .card-details{color:#fff0bf;text-align:center;text-shadow:0 1px 2px #0000009e;justify-items:center;gap:3px;max-width:312px;font-size:13.2px;font-weight:600;line-height:1.14;display:grid;font-family:EB Garamond,Garamond,Georgia,serif!important}.invitation-card .detail-line{max-width:312px;color:inherit;margin:0}.invitation-card .detail-line strong{color:#ffe998;letter-spacing:.08em;text-transform:uppercase;font-size:9.4px;font-weight:800;font-family:Cinzel,Trajan Pro,Times New Roman,serif!important}.invitation-card .detail-split{grid-template-columns:auto auto auto;justify-content:center;align-items:center;width:fit-content;max-width:100%;display:grid;gap:8px!important;margin:0 auto 2px!important}.invitation-card .detail-split .detail-line{white-space:nowrap}.invitation-card .qr-seal{border-radius:4px;line-height:0;width:auto!important;margin-bottom:4px!important;padding:0!important}.invitation-card .qr-seal svg{box-sizing:content-box;background:#fff0bd;padding:1px;display:block;width:116px!important;height:116px!important}.invitation-card.compact .qr-seal svg{width:112px!important;height:112px!important}@media (max-width:620px){.invitation-card,.admin-card-download-stage .invitation-card{width:360px!important;height:640px!important;min-height:640px!important;max-height:640px!important}}.invite-honour,.celebrant-name,.guest-script,.invitation-card .celebrant-name,.invitation-card .guest-script{text-transform:none;letter-spacing:0!important;font-family:EB Garamond,Garamond,Georgia,serif!important;font-style:normal!important}.invite-honour{font-size:clamp(1.08rem,2.4vw,1.34rem);font-weight:650;line-height:1.08}.glass-invitation .celebrant-name{font-size:clamp(2rem,8vw,3.7rem);font-weight:500;line-height:1.04}.invitation-card .celebrant-name{font-size:28px!important;font-weight:500!important;line-height:1.04!important}.invitation-card .guest-script{font-size:36px!important;font-weight:500!important;line-height:1.02!important}.invite-honour,.celebrant-name,.guest-script,.invitation-card .celebrant-name,.invitation-card .guest-script{font-synthesis:none;font-family:Georgia,Times New Roman,Times,serif!important;font-weight:400!important}.glass-invitation .celebrant-name,.invitation-card .celebrant-name,.invitation-card .guest-script{font-weight:400!important}.site-backdrop:before{opacity:.34;filter:saturate(.9)contrast()brightness(.86)}.glass-invitation .portrait-wash{opacity:.52;filter:saturate(.95)contrast()brightness(.9)}.invitation-card,.admin-card-download-stage .invitation-card{background:radial-gradient(circle at 14% 18%,#fff4c81a,#0000 48px) 50%,radial-gradient(circle at 86% 26%,#f7d26614,#0000 58px) 50%,radial-gradient(circle at 50% 108%,#fff4c81a,#0000 94px) 50%,linear-gradient(#06170da8,#082313b3 44%,#06170dc7) 50%,url(/colonel-dickson.png) 50% 10%/cover}.invitation-card:after,.admin-card-download-stage .invitation-card:after{background:linear-gradient(90deg,#06170d3d,#0000 24% 76%,#06170d3d),linear-gradient(#08231357,#08231329 34%,#06170d47 76%,#06170d80)}.invitation-copy,.invitation-copy p,.card-copy,.card-copy p,.invitation-card .card-copy,.invitation-card .card-copy p{font-weight:400!important}.glass-invitation .invite-host{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit}.glass-invitation .invite-honour,.glass-invitation .invite-host{text-transform:none;font-size:clamp(1.08rem,2.4vw,1.34rem);line-height:1.08;letter-spacing:0!important;font-family:Georgia,Times New Roman,Times,serif!important;font-weight:400!important}.glass-invitation .details-stack,.glass-invitation .details-stack .detail-line,.glass-invitation .details-stack .rsvp-contact{font-weight:400!important}.glass-invitation .details-stack .detail-label{letter-spacing:.08em;text-transform:none;font-family:Cinzel,Trajan Pro,Times New Roman,serif;font-size:.72em;font-weight:400}
