:root{--ivory:#f6f0e4;--milk:#fbf6ee;--cream:#f3eadc;--beige:#e7d9c4;--champagne:#d4b483;--gold:#c4a36a;--gold-deep:#9a7844;--ink:#2a231c;--ink-soft:#5d5144;--line:#c4a36a61;--shadow:0 18px 40px #5a462814;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Manrope", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{overflow-x:hidden}html,body,#root{max-width:100%;min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--ivory);letter-spacing:.01em}img{max-width:100%;display:block}button,input{font:inherit}.page{background-color:var(--ivory);background-image:radial-gradient(1200px 520px at 50% -8%,#d4b46e29,#0000 58%),linear-gradient(#f8f3e9 0%,#f4eadb 42%,#f7f1e6 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");overflow-x:hidden}.hero{isolation:isolate;text-align:center;background:radial-gradient(circle at 50% 46%,#fffcf6e0 0%,#f6f0e48c 42%,#0000 70%),linear-gradient(#f8f2e8 0%,#f3e8d6 100%);place-items:center;min-height:100svh;padding:5.2rem 1.35rem 5.6rem;display:grid;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";pointer-events:none;z-index:3;position:absolute}.hero:before{border:1px solid #c4a36a8c;inset:.7rem;box-shadow:0 0 48px #d4b46e29}.hero:after{border:1px solid #c4a36a38;inset:1rem}.hero-glow{pointer-events:none;z-index:1;background:radial-gradient(circle,#ffffff8c,#0000 55%),radial-gradient(circle,#d4b46e42,#0000 68%);position:absolute;inset:16% 10%}.hero-veil{pointer-events:none;mix-blend-mode:screen;background:radial-gradient(at 12% -10%,#ffffffb8,#0000 42%),radial-gradient(at 88% -8%,#ffffff8c,#0000 40%);position:absolute;inset:0}.hero-veil-img{display:none}.hero-florals{pointer-events:none;z-index:0;position:absolute;inset:0}.hero-florals:after{content:"";pointer-events:none;opacity:.55;background:radial-gradient(circle at 20% 30%,#ffffffb3 0 4px,#0000 5px),radial-gradient(circle at 80% 24%,#ffffff8c 0 3px,#0000 4px),radial-gradient(circle at 70% 70%,#d4b46e59 0 3px,#0000 4px);position:absolute;inset:18% 22%}.floral{object-fit:cover;opacity:.92;width:min(46vw,210px);height:min(38vh,250px);animation:16s ease-in-out infinite floatSprig;position:absolute}.floral-tl{object-position:left top;top:0;left:0;-webkit-mask-image:linear-gradient(to bottom right,#000 42%,#0000 82%);mask-image:linear-gradient(to bottom right,#000 42%,#0000 82%)}.floral-tr{object-position:right top;animation-delay:-4s;top:0;right:0;-webkit-mask-image:linear-gradient(to bottom left,#000 42%,#0000 82%);mask-image:linear-gradient(to bottom left,#000 42%,#0000 82%)}.floral-bl{object-position:left bottom;animation-delay:-8s;bottom:0;left:0;-webkit-mask-image:linear-gradient(to top right,#000 42%,#0000 82%);mask-image:linear-gradient(to top right,#000 42%,#0000 82%)}.floral-br{object-position:right bottom;animation-delay:-12s;bottom:0;right:0;-webkit-mask-image:linear-gradient(to top left,#000 42%,#0000 82%);mask-image:linear-gradient(to top left,#000 42%,#0000 82%)}.hero-inner{z-index:4;max-width:min(36rem,100%);padding:0 .4rem;animation:1.35s both rise;position:relative}.hero-inner .kicker{animation:1.2s both rise}.hero-inner .hero-title{animation:1.35s .12s both rise}.hero-inner .hero-name,.hero-inner .hero-amp{animation:1.45s .22s both rise}.kicker{letter-spacing:.42em;text-transform:uppercase;color:var(--gold-deep);margin:0;font-size:.72rem}.hero-title{font-family:var(--serif);color:var(--ink);margin:.35rem 0 .5rem;font-size:clamp(1.85rem,8.4vw,4.2rem);font-weight:600;line-height:1.12}.hero-rings{width:min(92px,34vw);height:auto;margin:.2rem auto .4rem;display:block}.hero-name{font-family:var(--serif);color:var(--gold-deep);margin:0;font-size:clamp(1.7rem,6.4vw,2.8rem);font-style:italic;line-height:1.15}.hero-amp{font-family:var(--serif);color:var(--champagne);margin:.05rem 0;font-size:clamp(1.1rem,3.4vw,1.4rem)}.corners{pointer-events:none;z-index:3;position:absolute;inset:1.2rem}.corner{fill:none;width:58px;height:58px;stroke:var(--champagne);stroke-width:1.25px;stroke-linecap:round;position:absolute}.corner-tl{top:0;left:0}.corner-tr{top:0;right:0}.corner-bl{bottom:0;left:0}.corner-br{bottom:0;right:0}.divider,.motif{width:min(220px,70vw);height:28px;fill:var(--champagne);stroke:var(--champagne);stroke-width:1px;opacity:.88;margin:.85rem auto}.motif{width:min(260px,72vw);height:36px;display:block}.bloom-break{justify-items:center;gap:.15rem;padding:.2rem 1rem;display:grid}.sprig{mix-blend-mode:multiply;opacity:.9;width:min(210px,58vw);height:auto;animation:18s ease-in-out infinite floatSprig;-webkit-mask-image:radial-gradient(#000 38%,#0000 72%);mask-image:radial-gradient(#000 38%,#0000 72%)}.section{text-align:center;width:min(760px,100% - 2rem);margin:0 auto;padding:3.6rem 0}.section-soft{position:relative}.section-soft:before{content:"";z-index:-1;background:linear-gradient(#e7d9c438,#0000 72%);position:absolute;inset:0 -100vw}.invite-text{max-width:34rem;font-family:var(--serif);color:var(--ink);white-space:pre-line;margin:.4rem auto;font-size:clamp(1.12rem,3.4vw,1.5rem);line-height:1.75}.muted{color:var(--ink-soft);letter-spacing:.18em;text-transform:uppercase;margin:.4rem 0 0;font-size:.72rem}.date-large,.time-large,.venue-name{font-family:var(--serif);margin:.35rem 0 0;font-weight:500}.date-large{letter-spacing:.08em;font-size:clamp(2.2rem,8vw,4rem)}.time-large{color:var(--gold-deep);font-size:clamp(1.5rem,5vw,2.2rem)}.venue-card{border:1px solid var(--line);box-shadow:var(--shadow), 0 0 0 6px #fffcf759;background:linear-gradient(#fffcf7db,#f6f0e4b8);padding:1.8rem 1.1rem 1.9rem}.venue-name{margin-bottom:.55rem;font-size:clamp(1.85rem,6vw,3.1rem)}.venue-address{font-family:var(--serif);color:var(--ink-soft);white-space:pre-line;margin:0 0 1.35rem;font-size:clamp(1.05rem,3.2vw,1.25rem);line-height:1.55}.countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:1.6rem;display:grid}.count-cell{background:linear-gradient(180deg, #fffdf8, var(--ivory));border:1px solid var(--line);box-shadow:var(--shadow);padding:.9rem .15rem .75rem}.count-value{font-family:var(--serif);font-size:clamp(1.35rem,4.8vw,2.3rem);line-height:1;display:block}.count-label{letter-spacing:.06em;color:var(--ink-soft);margin-top:.45rem;font-size:.62rem;display:block}.btn{border:1px solid var(--gold-deep);min-height:3rem;color:var(--gold-deep);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.7rem 1.5rem;font-size:.72rem;text-decoration:none;transition:background .45s,color .45s,transform .45s,box-shadow .45s;display:inline-flex}.btn:hover{background:var(--gold-deep);color:#fffaf3;transform:translateY(-1px);box-shadow:0 10px 24px #9a78442e}.host-name{font-family:var(--serif);letter-spacing:.08em;text-align:center;margin:.35rem 0 0;font-size:clamp(1.55rem,4.4vw,2.1rem);font-weight:500;display:block}.host-role{color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;margin-top:.15rem;font-size:.8rem;display:block}.rsvp{text-align:left;gap:1rem;margin-top:1.4rem;padding-bottom:3.4rem;display:grid}.field{color:var(--ink-soft);gap:.45rem;font-size:.82rem;display:grid}.field input{border:1px solid var(--line);background:linear-gradient(180deg, #fffdf8, var(--ivory));width:100%;max-width:100%;color:var(--ink);box-shadow:var(--shadow);outline:none;padding:.9rem .95rem;transition:border-color .35s,box-shadow .35s}.field input:focus{border-color:var(--gold-deep);box-shadow:0 0 0 3px #c4a36a29}.choices{border:0;gap:.55rem;margin:0;padding:0;display:grid}.choice{border:1px solid var(--line);background:linear-gradient(180deg, #fffdf8, var(--ivory));cursor:pointer;align-items:center;gap:.7rem;padding:.9rem .95rem;transition:border-color .35s,background .35s,box-shadow .35s;display:flex}.choice input{accent-color:var(--gold-deep)}.choice.is-on{border-color:var(--gold-deep);box-shadow:var(--shadow);background:#d4b46e1f}.rsvp .btn{width:100%}.form-msg{text-align:center;margin:0;font-size:.92rem}.form-msg.ok{color:#5c6b3d}.form-msg.error{color:#8a4a3a}.footer{text-align:center;padding:2.2rem 1rem 6.4rem}.footer-line{font-family:var(--serif);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin:0;font-size:.72rem}.footer-names{font-family:var(--serif);color:var(--ink-soft);margin:.7rem 0 0;font-size:clamp(1.25rem,4vw,1.7rem);font-style:italic}.music-btn{z-index:20;border:1px solid var(--champagne);width:3.15rem;height:3.15rem;color:var(--gold-deep);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbf6eef5;border-radius:50%;position:fixed;bottom:1rem;right:1rem;box-shadow:0 10px 28px #9a784424}.music-btn.is-on{background:linear-gradient(180deg, var(--champagne), var(--gold-deep));color:#fffaf3;border-color:var(--gold-deep);animation:2.8s ease-in-out infinite musicPulse}.music-icon svg{stroke-width:1.4px;stroke-linejoin:round;width:22px;height:22px}@keyframes musicPulse{0%,to{box-shadow:var(--shadow);transform:scale(1)}50%{transform:scale(1.045);box-shadow:0 18px 40px #5a462824}}.reveal{opacity:0;transition:opacity 1.05s,transform 1.05s;transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes floatSprig{0%,to{transform:translate(0,0)}50%{transform:translateY(-7px)}}@media (width<=429px){.floral{opacity:.82;width:min(44vw,168px);height:min(28vh,176px)}.hero{padding:4.6rem 1.15rem 5.2rem}.corners{inset:1.05rem}.corner{width:48px;height:48px}.music-btn{width:2.9rem;height:2.9rem;bottom:.85rem;right:.85rem}}@media (width>=860px){.hero{padding:3.5rem 2.4rem}.hero:before{inset:1.25rem}.hero:after{inset:1.6rem}.floral{width:min(34vw,420px);height:min(52vh,520px)}.hero-veil-img{display:none}.rsvp .btn{justify-self:center;width:auto;min-width:16rem}.rsvp{padding-bottom:.4rem}.venue-card{padding:2.4rem 2rem 2.5rem}.countdown{gap:.7rem}.music-btn{bottom:1.5rem;right:1.5rem}}@media (prefers-reduced-motion:reduce){.reveal,.hero-inner,.hero-inner .kicker,.hero-inner .hero-title,.hero-inner .hero-names,.hero-inner .hero-name,.hero-inner .hero-amp,.btn,.music-btn.is-on,.floral,.sprig{transition:none;animation:none}.reveal{opacity:1;transform:none}}
