:root{--ivory:#f7f3ea;--paper:#fbf9f3;--green:#3b4733;--ink:#2a2d26;--gold:#a8864f;--line:#ddd3bd;--err:#9b3b30;--sage:#7d8c68}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Jost,system-ui,sans-serif;font-weight:300;line-height:1.7}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.serif{font-family:Cormorant Garamond,Georgia,serif}.it{font-style:italic}.script{font-family:Great Vibes,cursive;font-weight:400}.lang{z-index:20;letter-spacing:.12em;color:#fff;-webkit-backdrop-filter:blur(8px);background:#2b35258c;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.78rem;display:flex;position:fixed;top:14px;right:16px}.lang button{cursor:pointer;opacity:.6;background:0 0;border:0;padding:4px}.lang button.on{opacity:1;border-bottom:1px solid var(--gold)}.hero{text-align:center;color:#fff;background-position:50%;background-size:cover;place-items:center;min-height:100svh;padding:90px 24px 80px;display:grid;position:relative;overflow:hidden}.hero-bg{will-change:transform;background-position:50%;background-size:cover;position:absolute;inset:-14% 0}.hero-bg:after{content:"";background:linear-gradient(#1c241880,#1c2418ad);position:absolute;inset:0}.hero-in{max-width:760px;position:relative}.hero-in>*{opacity:0;transform:translateY(14px)}.ready .hero-in>*{animation:1.2s cubic-bezier(.2,.7,.2,1) forwards rise}.hero-in{z-index:2}.h1{margin-bottom:18px;font-size:1.25rem;animation-delay:.2s}.h2{animation-delay:.6s}.h3{animation-delay:.9s}.h4{animation-delay:1.1s}.h5{animation-delay:1.5s}.h6{animation-delay:1.8s}.h1{opacity:.9}.h2,.h4{font-size:clamp(3rem,13vw,5.8rem);font-weight:400;line-height:1.1}.amp{color:#d9c08c;font-size:clamp(2.2rem,8vw,3.4rem);line-height:1}.h4{margin-bottom:28px}.h5{opacity:.92;font-size:1.3rem}.h6{letter-spacing:.14em;padding-top:18px;border-top:1px solid #d9c08cb3;margin-top:18px;padding-inline:28px;font-size:1.7rem;display:inline-block}.scroll{letter-spacing:.3em;opacity:.7;font-size:.7rem;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}@keyframes rise{to{opacity:1;transform:none}}.h1{--o:.9}.reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}.sec{text-align:center;max-width:860px;margin:0 auto;padding:96px 24px}.title{color:var(--green);font-size:clamp(2rem,6vw,2.8rem);font-weight:400;line-height:1.2}.sub{opacity:.7;margin-top:6px}.rule{background:var(--gold);width:56px;height:1px;margin:22px auto 44px}.events{grid-template-columns:1fr 1fr;gap:44px;display:grid}.events article{color:var(--gold);flex-direction:column;align-items:center;gap:4px;display:flex}.events h3{color:var(--green);margin-top:8px;font-size:1.5rem;font-weight:400}.events .time{color:var(--ink);font-size:2rem;line-height:1.2}.events p{color:var(--ink);max-width:260px}.story{background:var(--paper);padding:0}.story-in{grid-template-columns:1fr 1fr;align-items:center;max-width:1100px;margin:0 auto;display:grid}.story-img{object-fit:cover;width:100%;height:100%;min-height:460px}blockquote{text-align:center;padding:56px 40px}blockquote p{color:var(--green);font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.4}cite{letter-spacing:.15em;color:var(--gold);margin-top:18px;font-size:.85rem;font-style:normal;display:block}.gallery{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.gallery img{aspect-ratio:4/5;object-fit:cover;width:100%}.contacts{grid-template-columns:1fr 1fr;gap:32px;display:grid}.who{color:var(--green);font-size:1.6rem}.contacts a{opacity:.85;display:block}.contacts a:hover{color:var(--gold)}.rsvp>div{max-width:520px;margin:0 auto}form{text-align:left}label{opacity:.7;margin-bottom:4px;font-size:.85rem;display:block}input{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;width:100%;padding:10px 2px;font-size:1.1rem}input:focus{border-color:var(--green);outline:none}.choices{grid-template-columns:repeat(3,1fr);gap:10px;margin:32px 0;display:grid}.choices button{border:1px solid var(--line);cursor:pointer;background:0 0;flex-direction:column;gap:2px;padding:14px 6px;transition:border-color .25s,background .25s;display:flex}.choices button span{font-size:1.4rem;line-height:1.2}.choices small{opacity:.65;font-size:.72rem;line-height:1.3}.choices button:hover{border-color:var(--gold)}.choices button.sel{background:var(--green);border-color:var(--green);color:#fff}.send{background:var(--green);color:#fff;letter-spacing:.2em;cursor:pointer;text-transform:uppercase;border:0;width:100%;padding:16px;font-size:.8rem;transition:background .25s}.send:hover:not(:disabled){background:#2b3525}.send:disabled{opacity:.5;cursor:wait}.msg{text-align:center;margin-top:16px}.msg.err{color:var(--err)}.thanks{padding:12px 0}.thanks p{color:var(--green);font-size:1.5rem;line-height:1.5}.link{cursor:pointer;text-underline-offset:4px;opacity:.7;background:0 0;border:0;margin-top:22px;font-size:.85rem;text-decoration:underline}footer{text-align:center;background:var(--green);color:#f1e6cc;padding:64px 24px}footer .script{font-size:2.8rem}.small{letter-spacing:.3em;opacity:.7;font-size:.8rem}.dash{max-width:760px;margin:0 auto;padding:56px 24px}.dash.login{place-items:center;min-height:100svh;display:grid}.dash.login form{text-align:center;width:100%;max-width:340px}.dash.login .big{color:var(--gold);font-size:3.4rem}.dash.login input{text-align:center;margin:26px 0 22px}.dash header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;margin-bottom:32px;padding-bottom:22px;display:flex}.count{color:var(--green);font-size:4.5rem;line-height:1}.actions{gap:18px;display:flex}.actions .link{margin:0}.search{margin-bottom:24px}table{border-collapse:collapse;width:100%}th{text-align:left;opacity:.6;border-bottom:1px solid var(--line);padding:8px 4px;font-size:.8rem;font-weight:400}td{border-bottom:1px solid var(--line);padding:12px 4px}td:last-child{opacity:.6;text-align:right;font-size:.9rem}th:last-child{text-align:right}.empty{opacity:.7;padding:24px 0}@media (max-width:680px){.sec{padding:72px 20px}.events{grid-template-columns:1fr;gap:40px}.story-in{grid-template-columns:1fr}.story-img{aspect-ratio:4/5;min-height:340px}blockquote{padding:44px 24px}.choices small{display:none}.count{font-size:3.6rem}}@media (prefers-reduced-motion:reduce){.hero-in>*,.reveal{opacity:1;transition:none;animation:none;transform:none}}.small2{opacity:.65;margin-top:6px;font-size:.9rem}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.tabs button{border:1px solid var(--line);cursor:pointer;background:0 0;padding:6px 14px;font-size:.85rem}.tabs button.on{background:var(--green);border-color:var(--green);color:#fff}.pill{border:1px solid var(--line);padding:2px 10px;font-size:.75rem}.pill.yes{background:var(--green);color:#fff;border-color:var(--green)}.pill.maybe{color:var(--gold);border-color:var(--gold)}.pill.no{opacity:.6}td:nth-child(2),th:nth-child(2){text-align:left;opacity:1}td:last-child{text-align:right}.loader{z-index:100;background:var(--ivory);place-items:center;transition:opacity .9s,visibility .9s;display:grid;position:fixed;inset:0;overflow:hidden}.loader.out{opacity:0;visibility:hidden}.ca{color:var(--green);z-index:2;align-items:baseline;gap:12px;font-size:clamp(4rem,16vw,5.6rem);line-height:1;display:flex;position:relative}.ca span{opacity:0;animation:1s forwards fade;transform:translateY(8px)}.ca span:first-child{animation-delay:.4s}.ca span:nth-child(2){animation-delay:.8s}.ca span:nth-child(3){animation-delay:1.2s}.amp2{color:var(--gold);font-size:.62em}@keyframes fade{to{opacity:1;transform:none}}.band{position:relative;overflow:hidden}.band.paper{background:var(--paper)}.sec{z-index:1;position:relative}.fig{overflow:hidden}.fig img,.fig video{transform-origin:50% 0;will-change:transform;display:block;scale:1.12}.story-img{object-position:50% 5%}.gallery .fig:first-child img{object-position:50% 12%}.gallery .fig:nth-child(3) img{object-position:50% 8%}.bw{filter:grayscale()contrast(1.05)}.gallery .fig{aspect-ratio:4/5}.gallery .fig img,.gallery .fig video{aspect-ratio:auto;object-fit:cover;width:100%;height:100%}.story-img{min-height:460px}.story-in .fig{height:100%}@media (max-width:680px){.story-img{min-height:340px}}@media (prefers-reduced-motion:reduce){.ca span{opacity:1;animation:none;transform:none}.loader{transition:none}}.gallery .fig{aspect-ratio:9/16;position:relative;container-type:inline-size}.zoomable{cursor:zoom-in}.mapbtn{z-index:3;aspect-ratio:1;text-align:center;text-wrap:balance;color:#fff;background:#5f6f4aed;border-radius:50%;flex:none;place-items:center;width:clamp(62px,44cqw,150px);padding:clamp(4px,2.5cqw,10px);font-size:clamp(.62rem,6.8cqw,1.1rem);font-weight:500;line-height:1.15;transition:transform .25s,background .25s;display:grid;position:absolute;bottom:7%;right:5%;box-shadow:0 4px 18px #00000047}.mapbtn span{max-width:6.3em;display:block}.mapbtn:hover{background:#4b5a3af7;transform:scale(1.06)}.lb{z-index:200;opacity:0;background:#141a11f0;place-items:center;animation:.25s forwards fade;display:grid;position:fixed;inset:0;transform:none}.lb img{object-fit:contain;cursor:default;width:auto;max-width:94vw;height:auto;max-height:90svh;box-shadow:0 10px 50px #00000080}.lb button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding-bottom:4px;font-size:1.8rem;line-height:1;transition:background .2s;display:grid;position:absolute}.lb button:hover{background:#ffffff42}.lb-x{top:14px;right:14px}.lb-nav{top:50%;transform:translateY(-50%)}.lb-nav.prev{left:12px}.lb-nav.next{right:12px}.band.white{background:#fff}.countdown{text-align:center;max-width:860px;margin:0 auto;padding:84px 16px 92px}.cd-title{letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:38px;font-size:clamp(1.3rem,4.4vw,1.9rem);font-weight:400}.cd{justify-content:center;align-items:center;gap:clamp(3px,1.6vw,18px);transition:opacity .6s;display:flex}.cd.wait{opacity:0}.cd-item{aspect-ratio:1;width:clamp(64px,19vw,120px);position:relative;container-type:inline-size}.cd-item svg{width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.cd-track,.cd-arc{fill:none;stroke-width:4px}.cd-track{stroke:#ebe8dc}.cd-arc{stroke:var(--sage);stroke-linecap:round;transition:stroke-dasharray .4s linear}.cd-txt{flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex;position:absolute;inset:0}.cd-txt b{color:var(--green);font-variant-numeric:lining-nums tabular-nums;font-size:34cqw;font-weight:400}.cd-txt small{color:var(--ink);opacity:.75;letter-spacing:.02em;margin-top:3cqw;font-size:max(.6rem,11.5cqw)}.cd-sep{color:#b9b9ad;margin-top:-4px;font-size:1.3rem;line-height:1}@media (prefers-reduced-motion:reduce){.lb{opacity:1;animation:none}}@media (min-width:681px){.gallery{gap:18px;max-width:1100px;margin:0 auto;padding:72px 24px}.gallery .fig{box-shadow:0 14px 34px -18px #2a2d2666}}.flora{pointer-events:none;mix-blend-mode:multiply;width:clamp(150px,34vw,460px);position:absolute}.flora img{will-change:transform;opacity:.92;width:100%;height:auto}.flora.tr{top:-2%;right:-4%}.flora.bl{bottom:-3%;left:-4%}.flora.br{width:clamp(130px,28vw,380px);bottom:-6%;right:-4%}@media (max-width:680px){.flora{width:150px}.flora.tr{top:-14px;right:-34px}.flora.bl{width:120px;bottom:-34px;left:-62px}.flora.br{width:120px;bottom:-62px;right:-40px}.h1{text-wrap:balance;margin-bottom:18px;padding-inline:36px}}.trash{cursor:pointer;color:inherit;opacity:.5;background:0 0;border:0;padding:4px;line-height:0}.trash:hover{opacity:1;color:#b3261e}.trash:disabled{opacity:.25;cursor:default}.modal{z-index:50;background:#2a2d268c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-box{background:var(--paper);border:1px solid var(--line);text-align:center;width:100%;max-width:380px;padding:32px 28px;box-shadow:0 20px 60px #00000040}.modal-box h2{color:var(--green);font-size:1.7rem;font-weight:400}.modal-name{word-break:break-word;margin:10px 0 4px;font-size:1.05rem}.modal-help{opacity:.7;margin-top:14px;font-size:.85rem}.modal-code{letter-spacing:.35em;color:var(--gold);-webkit-user-select:none;user-select:none;margin:8px 0 2px;padding-left:.35em;font-size:2.4rem}.modal-input{text-align:center;letter-spacing:.5em;margin:10px 0 6px;padding-left:.5em}.modal-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:22px;display:flex}.modal-actions .link{margin-top:0}.modal-actions .send{flex:1;width:auto}.send.danger{background:var(--err)}.send.danger:hover:not(:disabled){background:#7e2f26}.send.danger:disabled{cursor:not-allowed}
