:root{--bg:#fbf7f0;--bg-2:#f5eee3;--blush-bg:#f8ece7;--paper:#fffdf9;--ink:#2d3429;--muted:#6f7269;--line:#e6dccb;--accent:#56694d;--accent-deep:#3d4d37;--accent-ink:#fffdf7;--accent-soft:#edf1e7;--rose:#b9786c;--blush:#e8c3b9;--gold:#a98548;--danger:#a4493d;--radius:16px;--serif:"Cormorant Garamond", Georgia, serif;--script:"Pinyon Script", "Cormorant Garamond", cursive;--sans:"Jost", system-ui, sans-serif;--shadow:0 1px 2px #3c321e0d, 0 18px 40px -24px #3c321e59;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.b-stem{stroke:#5b6b50}.b-l1{fill:#62765a}.b-l2{fill:#8a9d7e}.b-l3{fill:#b1bea4}.b-bloom{fill:#ecc9c0}.b-bloom2{fill:#d9a397}.b-heart{fill:#c29a5b}.b-berry{fill:#b98579}.botanical{pointer-events:none;display:block}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--grain), var(--bg);color:var(--ink);font:300 17px/1.65 var(--sans);overflow-wrap:break-word;-webkit-tap-highlight-color:transparent;margin:0;overflow-x:hidden}a,button,label,select{touch-action:manipulation}h1,h2,h3{font-family:var(--serif);margin:0 0 .5em;font-weight:500;line-height:1.15}h2{text-align:center;margin-bottom:.1em;font-size:clamp(2.2rem,7vw,3rem);font-weight:400}h3{font-size:1.45rem}a{color:var(--accent)}p{margin:0 0 1em}::selection{background:var(--blush)}.lang-switch{z-index:5;letter-spacing:.14em;text-transform:uppercase;gap:2px;font-size:.78rem;display:flex;position:absolute;top:6px;right:10px}.lang-switch a{min-height:44px;color:var(--accent-deep);border-radius:999px;align-items:center;padding:0 10px;text-decoration:none;display:inline-flex}.lang-switch a:hover{text-underline-offset:5px;text-decoration:underline}.container{width:min(100% - 32px,760px);margin-inline:auto}.narrow{width:min(100% - 32px,580px);margin-inline:auto}section{padding:88px 0;position:relative}@media (width<=480px){section{padding:64px 0}}section:nth-of-type(2n){background:var(--grain), var(--bg-2)}#rsvp{scroll-margin-top:8px}.eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:.9em;font-size:.78rem;font-weight:400}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:.9rem}.sprig{width:150px;height:auto;margin:10px auto 26px}.lead{text-align:center;color:var(--muted);margin-top:-8px}.screens main>section{flex-direction:column;justify-content:center;min-height:100svh;display:flex}.screen .rise{opacity:0;transform:translateY(var(--rise,32px));filter:blur(3px);transition:opacity .5s,transform .6s,filter .5s}.screen.from-above{--rise:-32px}.screen.in .rise{opacity:1;filter:none;transition:opacity 1s,transform 1.1s cubic-bezier(.16,.8,.24,1),filter 1s;transition-delay:calc(var(--i,0) * .11s + 80ms);transform:none}.screen .corner{transition:opacity 1.4s,scale 1.6s cubic-bezier(.16,.8,.24,1)}.screen .corner.tl{transform-origin:0 0}.screen:not(.in) .corner{opacity:0;scale:.8}@media (prefers-reduced-motion:reduce){.screen .rise,.screen.in .rise{filter:none;transform:none}.screen:not(.in) .corner{scale:none}}@media print{.screen .rise,.screen .corner{opacity:1!important;filter:none!important;transform:scale(1)!important}}.hero{text-align:center;isolation:isolate;background:radial-gradient(ellipse 70% 50% at 50% 42%, #fffdf8f2, transparent 70%), radial-gradient(ellipse at 0 0, #e8c3b947, transparent 50%), radial-gradient(ellipse at 100% 100%, #8a9d7e33, transparent 50%), var(--grain), var(--bg);place-items:center;min-height:100svh;padding:clamp(36px,8svh,72px) 28px;display:grid;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";pointer-events:none;z-index:-1;border:1px solid #a9854873;position:absolute}.hero:before{inset:14px}.hero:after{border-color:#a9854838;inset:20px}.hero .corner{z-index:-1;width:clamp(170px,34vw,380px);height:auto;position:absolute}.hero .corner.tl{top:0;left:0}.hero .corner.br{bottom:0;right:0;transform:rotate(180deg)}.hero-inner{max-width:960px}.hero-inner>p:not(.names){max-width:640px;margin-inline:auto}.hero .greeting{font-family:var(--serif);color:var(--accent-deep);margin-bottom:min(.9em,3svh);font-size:clamp(1.25rem,min(5vw,4svh),2.1rem);font-style:italic}.hero .eyebrow{margin-bottom:min(.9em,1.5svh)}.hero h1,.names{font-family:var(--script);white-space:nowrap;color:var(--accent-deep);margin:.05em 0 .15em;font-size:clamp(2.6rem,min(17vw,13svh),7.6rem);font-weight:400;line-height:1.05}.names .amp{font-family:var(--serif);color:var(--rose);vertical-align:.25em;padding:0 .25em;font-size:.5em;font-style:italic;display:inline-block}@media (width<=560px){.names>span:not(.amp){display:block}.names .amp{vertical-align:0;margin:-.35em 0 -.25em;display:block}}.hero .date{letter-spacing:.26em;text-transform:uppercase;margin:min(1.2em,2.4svh) 0 .3em;font-size:1rem;font-weight:400}.hero .place{font-family:var(--serif);color:var(--muted);font-size:1.2rem;font-style:italic}.hero .invite-line{font-family:var(--serif);max-width:30ch;margin:0 auto min(1em,1.5svh);font-size:1.25rem}.hero .cta{margin:min(1.6em,2.8svh) 0 0}.countdown{letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:min(14px,1.8svh) 0 0;font-size:.78rem}.hero .sprig{margin:min(18px,2.4svh) auto}.monogram{font-family:var(--script);justify-content:center;align-items:center;line-height:1;display:flex}.monogram span{transform:translateY(-.06em)}.monogram i{font-family:var(--serif);color:var(--rose);padding:0 .12em;font-size:.5em}@media (height<=480px){.hero .sprig,.hero .countdown{display:none}.hero .invite-line{font-size:1.05rem}.hero .btn{min-height:42px;padding-block:9px}.hero .corner{width:130px}}.btn{border:1px solid var(--accent-deep);background:var(--accent-deep);min-height:50px;color:var(--accent-ink);font:400 .92rem var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:14px 34px;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 10px 24px -14px #2d3c28b3}.btn:hover{background:var(--accent)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.btn:disabled{opacity:.6;cursor:progress}.btn.ghost{color:var(--accent-deep);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--accent-soft)}.btn.block{width:100%}.btn.small{min-height:42px;padding:9px 20px;font-size:.8rem}.story p{font-family:var(--serif);text-align:center;max-width:34em;margin-inline:auto;font-size:clamp(1.2rem,3.4vw,1.4rem);line-height:1.6}.story p:first-of-type:first-letter{font-family:var(--script);color:var(--rose);padding-right:.04em;font-size:2.4em;line-height:.8}.photos{grid-template-columns:repeat(3,1fr);align-items:center;gap:clamp(10px,3vw,22px);margin-top:44px;display:grid}.photos figure{aspect-ratio:3/4;border-radius:10px;margin:0;position:relative;overflow:hidden}.photos img{object-fit:cover;width:100%;height:100%;display:block}.photos .placeholder{color:var(--muted);font-family:var(--serif);background:linear-gradient(170deg,#f3e3db,#e5ead8);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:.95rem;font-style:italic;display:flex}.photos .placeholder .stem{opacity:.8;width:28%;max-width:44px}@media (width<=480px){.photos{grid-template-columns:1fr 1fr}.photos figure:nth-child(3){display:none}}.schedule{max-width:460px;margin:12px auto 0;padding:0;list-style:none;position:relative}.schedule:before{content:"";background:linear-gradient(var(--line), var(--gold) 20%, var(--gold) 80%, var(--line));opacity:.7;width:1px;position:absolute;top:18px;bottom:18px;left:92px}.schedule li{grid-template-columns:72px 1fr;align-items:baseline;gap:40px;padding:16px 0;display:grid;position:relative}.schedule li:before{content:"";background:var(--accent);width:13px;height:13px;box-shadow:0 0 0 5px var(--bg);border-radius:50% 0;position:absolute;top:27px;left:86px;transform:rotate(45deg)}section:nth-of-type(2n) .schedule li:before{box-shadow:0 0 0 5px var(--bg-2)}.schedule time{font-family:var(--serif);color:var(--gold);text-align:right;font-variant-numeric:lining-nums;font-size:1.6rem}.schedule strong{font-family:var(--serif);font-size:1.35rem;font-weight:500;line-height:1.25;display:block}.schedule span{font-size:.95rem}@media (width<=400px){.schedule:before{left:70px}.schedule li{grid-template-columns:54px 1fr;gap:34px}.schedule li:before{left:64px}.schedule time{font-size:1.35rem}}.venue{text-align:center}.venue-list{gap:40px;display:grid}.venue-item h3{margin-bottom:.2em}.venue address{color:var(--muted);margin:0 0 .8em;font-style:normal}.venue .map{aspect-ratio:4/3;background:var(--bg-2);border-radius:12px;margin:10px 0 0;overflow:hidden}.venue .map iframe{filter:saturate(.75)sepia(.12);border:0;width:100%;height:100%;display:block}@media (width>=900px){.venue .narrow:has(.venue-item+.venue-item){width:min(100% - 32px,980px)}.venue-list:has(.venue-item+.venue-item){grid-template-columns:1fr 1fr}}.gifts{text-align:center}.gifts>.narrow>p{max-width:32em;margin-inline:auto}.gifts .bank{text-align:left;align-items:center;gap:28px;margin-top:28px;display:grid}.gifts dl{grid-template-columns:1fr;gap:2px;margin:0;display:grid}.gifts dt{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}.gifts dd+dt{margin-top:12px}.gifts dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0;font-size:1.05rem;font-weight:400}.pay-qr{text-align:center;margin:0}.pay-qr>div{background:#fff;border-radius:8px;width:170px;margin:0 auto 10px;overflow:hidden}.pay-qr svg{width:100%;height:auto;display:block}@media (width>=600px){.gifts .bank{grid-template-columns:1fr auto}.pay-qr{max-width:200px}}.card{background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:32px 22px;position:relative}@media (width<=400px){.card{border-radius:var(--radius);padding:26px 16px}}@media (width>=600px){.card{padding:44px 48px}}.rsvp-section{isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 0, #fff9, transparent 60%), var(--grain), var(--blush-bg)!important}.rsvp-section .corner{z-index:-1;opacity:.9;width:clamp(140px,26vw,300px);height:auto;position:absolute}.rsvp-section .corner.tl{top:0;left:0}.rsvp-section .corner.br{bottom:0;right:0;transform:rotate(180deg)}.field{border:0;min-width:0;margin:0 0 32px;padding:0}.field>legend,.field>label.q{font-family:var(--serif);margin-bottom:12px;padding:0;font-size:1.45rem;font-weight:500;line-height:1.25;display:block}.hint{color:var(--muted);margin:-6px 0 12px;font-size:.92rem}input[type=text],input[type=email],input[type=tel],input[type=number],textarea,select{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);font:400 1rem var(--sans);background:#fffefb;border-radius:12px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}select{width:auto;max-width:100%}input::placeholder,textarea::placeholder{color:#a7a397}textarea{resize:vertical;min-height:96px}input:hover,textarea:hover,select:hover{border-color:#d3c6ae}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #56694d2e}.choices{gap:10px;display:grid}.choices.two{grid-template-columns:1fr}@media (width>=520px){.choices.two{grid-template-columns:1fr 1fr}}.choice{border:1px solid var(--line);cursor:pointer;background:#fffefb;border-radius:14px;align-items:center;gap:12px;min-height:54px;padding:14px 16px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex;position:relative}.choice:hover{border-color:var(--accent)}.choice input{accent-color:var(--accent);flex:none;width:20px;height:20px;margin:0}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.choice .tag{color:var(--muted);margin-left:auto;font-size:.8rem}.choices.big .choice{text-align:center;font-family:var(--serif);justify-content:center;padding:20px 16px;font-size:1.3rem;font-weight:500}.choices.big .choice input{opacity:0;pointer-events:none;position:absolute}.choices.big .choice:has(input[value=yes]:checked){background:var(--accent-deep);border-color:var(--accent-deep);color:var(--accent-ink)}.choices.big .choice:has(input[value=no]:checked){background:var(--blush-bg);border-color:var(--rose);box-shadow:inset 0 0 0 1px var(--rose)}.person-diet{border-bottom:1px dashed var(--line);padding:16px 0}.person-diet:last-child{border-bottom:0}.person-diet .name{margin-bottom:8px;font-weight:500}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;user-select:none;background:#fffefb;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:7px 16px;font-size:.92rem;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.chip:hover{border-color:var(--accent)}.chip input{opacity:0;pointer-events:none;position:absolute}.chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip:has(input:checked):before{content:"✓";font-size:.8em}.chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.person-diet input[type=text]{margin-top:10px}.reactions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.reaction{border:1px solid var(--line);cursor:pointer;background:#fffefb;border-radius:999px;min-width:44px;min-height:40px;padding:7px 10px;font-size:1.25rem;line-height:1;transition:transform .1s,border-color .15s}.reaction:hover{border-color:var(--rose);transform:scale(1.1)}.reaction:active{transform:scale(.95)}.reaction:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sub{margin:4px 0 6px}@media (width>=480px){.sub{margin-left:32px}}.sub label{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}.row2{gap:12px;display:grid}@media (width>=520px){.row2{grid-template-columns:1fr 1fr}}.row2 label{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}.alert{border-radius:14px;margin-bottom:24px;padding:14px 18px}.alert.error{color:var(--danger);white-space:pre-line;background:#fbeeec;border:1px solid #efcfca}.alert.success{background:var(--accent-soft);color:var(--accent-deep);font-family:var(--serif);text-align:center;border:1px solid #d5ddcc;font-size:1.25rem}.alert.admin{background:#fff6e0;border:1px solid #efdca8;max-width:560px;margin-inline:auto;font-size:.9rem}.req{color:var(--danger);font-family:var(--sans);margin-left:.2em;font-weight:500}.req-note{color:var(--muted);text-align:right;margin:0 0 16px;font-size:.85rem}.req-note .req{margin:0}.field.invalid>legend{color:var(--danger)}.field.invalid .choice,.field.invalid input[type=text],input.invalid,.child-row input.invalid{border-color:var(--danger);background:#fbeeec}.sorry{text-align:center;font-family:var(--serif);color:var(--rose);margin-bottom:24px;font-size:1.35rem;font-style:italic}[data-hidden]{display:none!important}.summary h3{text-align:center;font-size:1.8rem;font-weight:400}.summary dl{grid-template-columns:auto 1fr;gap:10px 20px;margin:0 0 28px;display:grid}.summary dt{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding-top:.2em;font-size:.85rem}.summary dd{margin:0}@media (width<=480px){.summary dl{grid-template-columns:1fr;gap:2px}.summary dt{margin-top:12px}.summary dt:first-child{margin-top:0}}.summary ul{margin:0;padding-left:1.1em}.summary>.btn{width:fit-content;margin-inline:auto;display:flex}.summary>p{text-align:center}.code-form input::placeholder{text-transform:none;letter-spacing:.02em}.code-form{flex-direction:column;align-items:center;gap:12px;margin-top:min(18px,2svh);display:flex}.code-form input{text-align:center;letter-spacing:.15em;text-transform:uppercase;border-radius:999px;width:100%;min-width:0;max-width:280px;font-size:1.2rem}.have-code{font-family:var(--serif);font-size:1.25rem}footer{text-align:center;color:#d9dfd0;background:var(--grain), var(--accent-deep);padding:72px 16px 56px;font-size:.92rem;position:relative}footer .monogram{color:#f3ede1;margin-bottom:6px;font-size:3.2rem}footer .monogram i{color:var(--blush)}footer .date-line{letter-spacing:.3em;text-transform:uppercase;color:#b8c2ad;margin-bottom:30px;font-size:.75rem}footer .footer-title{font-family:var(--serif);color:#f3ede1;margin-bottom:8px;font-size:1.5rem}footer .private{color:#b8c2ad;margin:28px 0 0}.contacts{flex-wrap:wrap;justify-content:center;gap:16px 48px;margin:12px 0 20px;display:flex}.contact{justify-items:center;gap:8px;display:grid}.contact strong{color:var(--ink);font-weight:500}.contact-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.contact-btn{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 18px;font-size:.95rem;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.contact-btn:hover{border-color:var(--accent)}footer .contact strong{color:#f3ede1;font-family:var(--serif);font-size:1.3rem}footer .contact-btn{color:#f3ede1;background:0 0;border-color:#f3ede14d}footer .contact-btn:hover{background:#f3ede114;border-color:#f3ede199}@media (width<=400px){.contact,.contact-actions{width:100%}.contact-actions{flex-direction:column;align-items:center}.contact-btn{justify-content:center;width:min(100%,260px)}}.adults{gap:10px;display:grid}.children{gap:10px;margin-bottom:12px;display:grid}.child-row{grid-template-columns:1fr 5.5rem auto;align-items:end;gap:10px;display:grid}.child-row label{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}.child-row input[type=number]{padding:12px 10px}.child-row .remove{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;min-width:44px;min-height:48px;font-size:1.1rem}.child-row .remove:hover{color:var(--danger);background:#fbeeec}@media (width<=480px){.hero .corner{width:140px}}@media (width<=480px) and (height<=700px){.hero .corner{width:112px}}
