@font-face{font-family:Google Sans;src:url(/fonts/GoogleSans-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/GoogleSans-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/GoogleSans-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/GoogleSans-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#0d0a08;--bg-2:#0a0806;--surface:#17120e;--surface-2:#1d1712;--gold:#cbb177;--gold-soft:#ddc48c;--gold-bright:#f0dca6;--gold-deep:#8f7534;--ivory:#f3ece0;--warm:#b7ab97;--muted:#8b806d;--line:#cbb17729;--line-2:#cbb17717;--grad:linear-gradient(135deg, #b79a58, #e6d29a 40%, #cbb177 62%, #a3854a);--grad-accent:linear-gradient(90deg, #fec364 0%, #ffe4b8 100%);--danger:#ff8a80;--sans:"Google Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;overflow-x:hidden}body{background:radial-gradient(140% 120% at 50% -20%, #1a130d 0%, var(--bg) 55%, var(--bg-2) 100%);color:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh;font-weight:300}#root{justify-content:center;align-items:center;min-height:100vh;padding:44px 22px;display:flex;position:relative}.vignette{pointer-events:none;z-index:0;background:radial-gradient(120% 90% at 50% 40%,#0000 55%,#0000008c 100%);position:fixed;inset:0}.bg-canvas{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}#bokeh,#sparkles{z-index:0}#confetti{z-index:60}:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px}.scroll-hint{display:none}@media (width<=480px){#root{padding:40px 16px}.scroll-hint{z-index:70;background:linear-gradient(to top, var(--bg) 0%, #0d0a08d1 45%, transparent 100%);-webkit-backdrop-filter:blur(6px);color:var(--gold-soft);letter-spacing:.02em;cursor:pointer;opacity:0;pointer-events:none;border:0;flex-direction:column;align-items:center;gap:0;padding:22px 0 20px;font-family:inherit;font-size:14px;font-weight:500;transition:opacity .3s,transform .3s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(10px)}.scroll-hint.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-hint-label{margin-bottom:4px}.scroll-hint .chev{width:22px;height:22px;display:block}.scroll-hint .chev2{opacity:.5;margin-top:-12px}}@media (width<=480px) and (prefers-reduced-motion:no-preference){.scroll-hint.visible .chev{animation:1.6s ease-in-out infinite scrollHintBob}.scroll-hint.visible .chev2{animation-delay:.15s}}@keyframes scrollHintBob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.stage{z-index:1;perspective:1600px;width:100%;max-width:644px;position:relative}.glow{pointer-events:none;filter:blur(20px);z-index:-1;background:radial-gradient(60% 70% at 50% 0,#cbb17733,#0000 70%);width:120%;height:340px;position:absolute;top:-60px;left:50%;transform:translate(-50%)}.card{transform-style:preserve-3d;will-change:transform;background:#000;border:0;border-radius:20px;padding:32px 24px 40px;transition:transform .3s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 12px #ffc4651a,inset 0 2px #f0dca60d}.card:before{content:"";pointer-events:none;background:radial-gradient(120% 100% at 50% 0,#f0dca614,#0000 70%);height:200px;position:absolute;top:0;left:0;right:0}.card.enter{animation:.9s cubic-bezier(.2,.8,.2,1) both cardIn}@keyframes cardIn{0%{opacity:0;transform:translateY(30px)scale(.98)}to{opacity:1;transform:none}}.inner{position:relative}.st{opacity:0}.card.ready .st{animation:.7s cubic-bezier(.16,1,.3,1) both up}@keyframes up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.sheen{pointer-events:none;mix-blend-mode:screen;opacity:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), #f0dca624, transparent 62%);border-radius:28px;transition:opacity .3s;position:absolute;inset:0}.card.lit .sheen{opacity:1}.gold{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.logo{filter:brightness(1.06)drop-shadow(0 8px 26px #cbb17747);width:172px;max-width:58%;height:auto;margin:0 auto;display:block}.orn{justify-content:center;align-items:center;gap:8px;margin:16px 0;display:flex}.orn:before,.orn:after{content:"";background:#ffdcad;width:80px;height:1px}.orn span{color:#0000;background:linear-gradient(90deg,#fec364 0%,#ffe4b8 100%);border-radius:1.376px;width:8px;height:8px;font-size:0;transform:rotate(45deg)}.hero{text-align:center}.ttl{isolation:isolate;display:block;position:relative}.ttl-img{filter:drop-shadow(0 10px 26px #00000080);width:100%;max-width:312px;height:auto;margin:0 auto;display:block}.hero .subhead{color:#fff;margin:12px auto 0;font-size:18px;font-weight:400;line-height:1.35}.panel{flex-direction:column;gap:16px;margin-top:30px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.drow{background:#ffffff14;border-radius:8px;align-items:flex-start;gap:8px;padding:24px 16px;display:flex;box-shadow:inset 0 0 2px #ffc46533}.coin{color:#ffc465;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.coin svg{width:24px;height:24px}.dtext{flex:1;min-width:0}.dhead{align-items:center;gap:8px;display:flex}.dtext-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dtext .k{color:#fff;font-size:18px;font-weight:500}.dtext .v{color:#fff;margin-top:8px;margin-left:32px;font-size:16px;font-weight:400;line-height:1.35}.dtext .sub{color:#ffffffd1;margin-top:8px;margin-left:32px;font-size:16px;line-height:1.35}.dtext .sub b.nm{color:#ffc465;font-weight:500}.maplink{color:var(--gold-soft);border-bottom:1px solid #0000;flex-shrink:0;align-items:center;gap:8px;padding-bottom:2px;font-size:16px;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.maplink svg{flex-shrink:0;display:block}.maplink:hover{color:var(--gold-bright);border-color:var(--gold)}.perks{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;display:grid}.perk{background:#ffffff14;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:68px;padding:24px 16px;display:flex;box-shadow:inset 0 0 2px #ffc46533}.perk .pi{color:#ffc465;justify-content:center;align-items:center;display:flex}.perk .pi svg{width:24px;height:24px;display:block}.perk .pt{text-transform:uppercase;color:#fff;text-align:center;font-size:14px;font-weight:400;line-height:1.8}.zone{margin-top:30px}.screen{animation:.55s cubic-bezier(.2,.8,.2,1) both fade}@keyframes fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.chipwrap{text-align:center;margin-bottom:18px}.chip{border:1px solid var(--line);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);background:#cbb1770f;border-radius:999px;align-items:center;gap:8px;padding:7px 16px;font-size:10px;font-weight:600;display:inline-flex}.greet{text-align:center;color:#fff;overflow-wrap:break-word;margin:0 auto 16px;font-size:36px;font-weight:500;line-height:1.15}.greet b,.conf-heading .nm,.thanks b{background:var(--grad-accent);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal;font-weight:600}.rsvpby{text-align:center;color:#fff;margin:0 0 40px;font-size:18px;font-weight:400}.conf-heading{text-align:center;font-family:var(--font-serif);color:var(--ivory);overflow-wrap:break-word;margin:4px 0 8px;font-size:34px;font-weight:500}.thanks{text-align:center;color:#fff;max-width:420px;margin:0 auto 20px;font-size:16px;font-weight:300;line-height:1.65}.actions{flex-direction:column;gap:13px;margin-top:20px;display:flex}.row2{gap:13px;display:flex}.row2 .btn{flex:1}.center{text-align:center}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 16px;font-family:inherit;font-size:18px;font-weight:500;text-decoration:none;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,background .2s,opacity .2s;display:inline-flex;position:relative;overflow:hidden}.btn-primary{color:#1a1a1a;background:linear-gradient(90deg,#fec364 0%,#ffe4b8 100%);box-shadow:0 0 16px #f0b90b1f}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(#ffffff73,#0000);height:46%;position:absolute;top:0;left:0;right:0}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:inset 0 1px #fffbebb3,inset 0 -2px 8px #785f2859,0 24px 44px -16px #cbb177b3}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{border-color:var(--line);color:var(--gold-soft);background:#cbb1770a}.btn-secondary:hover:not(:disabled){border-color:var(--gold);background:#cbb1771a;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.ghost{color:var(--muted);letter-spacing:.06em;cursor:pointer;background:0 0;border:0;margin:20px auto 0;padding:6px 10px;font-family:inherit;font-size:16px;font-weight:500;transition:color .2s;display:block}.ghost:hover:not(:disabled){color:var(--gold-soft)}.ghost:disabled{opacity:.4;cursor:not-allowed}.field{margin:20px 0}.note{color:#fff;text-align:center;margin:16px 0 20px;font-size:16px;line-height:1.5}.party{background:#ffc4651a;border:1px solid #474747;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;height:60px;padding:0 14px;display:flex}.party .plabel{letter-spacing:.16em;text-transform:uppercase;color:var(--warm);font-size:14px;font-weight:600}.party .pctl{align-items:center;gap:18px;display:flex}.step-btn{border:1px solid var(--line);background:var(--surface-2);width:40px;height:40px;color:var(--gold);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:22px;line-height:0;transition:transform .12s,background .2s,border-color .2s;display:flex}.step-btn svg{width:18px;height:18px;display:block}.step-btn:hover:not(:disabled){border-color:var(--gold);background:#cbb1771a}.step-btn:active:not(:disabled){transform:scale(.92)}.step-btn:disabled{opacity:.28;cursor:not-allowed}.count{text-align:center;min-width:34px;font-size:27px;font-weight:500;line-height:1}.badge{background:linear-gradient(#fec364 0%,#ffe4b8 100%);border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 24px;animation:.7s cubic-bezier(.2,.9,.25,1.3) both pop;display:flex;position:relative;box-shadow:0 18px 40px -12px #cbb17780,inset 0 1px 2px #fffbeb99,inset 0 -8px 16px #5a461480}.badge:before{content:"";border:1px solid #3a2c0a66;border-radius:50%;position:absolute;inset:10px}.badge svg{color:#000;width:46px;height:46px}@keyframes pop{0%{opacity:0;transform:scale(1.9)rotate(-10deg)}55%{opacity:1;transform:scale(.94)rotate(2deg)}to{transform:scale(1)rotate(0)}}.summary{border:1px solid var(--line);background:#ffffff14;border-radius:18px;margin:24px 0;padding:6px 22px}.srow{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:15px 0;font-size:16px;display:flex}.srow:last-child{border-bottom:0}.srow .sk{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:12px;font-weight:600}.srow .sv{color:var(--ivory);text-align:right;overflow-wrap:break-word;max-width:64%;font-weight:400}.sv-link{color:inherit;text-underline-offset:2px;text-decoration:underline}.state-icon{border:1px solid var(--line);width:72px;height:72px;color:var(--gold-soft);background:#cbb1771a;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.state-icon svg{width:34px;height:34px}.error-banner{color:var(--danger);text-align:center;background:#ff8a8014;border:1px solid #ff8a8066;border-radius:12px;flex-direction:column;gap:10px;margin:16px 0;padding:14px 16px;font-size:14px;line-height:1.5;display:flex}.error-banner .retry-btn{color:var(--danger);cursor:pointer;background:0 0;border:1px solid #ff8a8080;border-radius:8px;align-self:center;padding:8px 18px;font-family:inherit;font-size:14px;font-weight:600}.error-banner .retry-btn:hover{background:#ff8a801f}.skeleton{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;flex-direction:column;align-items:center;gap:16px;padding:40px 0;font-size:14px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.closing{text-align:center;color:#fff;margin:0 auto;font-size:16px;font-style:italic;font-weight:400;line-height:1.45}.card.done .hero,.card.done .panel,.card.done .perks{display:none}@media (width<=480px){.card{padding:32px 20px 30px}.logo{width:108px}.ttl-img{max-width:220px}.hero .subhead{font-size:15px}.panel{gap:12px;margin-top:22px}.drow{padding:16px 14px}.dtext .k{font-size:16px}.dtext .v,.dtext .sub{margin-left:0;font-size:14px}.maplink{gap:4px;font-size:13px}.maplink svg{width:16px;height:16px}.perks{gap:8px;margin-top:12px}.perk{min-height:56px;padding:12px 6px}.perk .pt{font-size:12px}.zone{margin-top:22px}.row2{flex-direction:column-reverse}.greet{font-size:26px}.conf-heading{white-space:normal;font-size:26px}}@media (prefers-reduced-motion:reduce){.card,.card.enter,.card.ready .st,.screen,.badge,.spinner{animation:none!important}.card{transform:none!important}.st{opacity:1}}
