*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:18px/1.65 Arial,sans-serif;color:var(--ink);background:var(--paper);--paper:#faf4e9;--ink:#4b1425;--soft:#eddec7;--accent:#7c263d}button,input,textarea,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:1px solid currentColor;background:transparent;color:inherit;border-radius:40px;padding:10px 22px;min-height:46px}a{color:inherit;text-underline-offset:5px}button:hover,summary:hover{filter:brightness(.88)}:focus-visible{outline:3px solid #b57d38;outline-offset:5px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:-.04em}h1{font-size:clamp(54px,6.7vw,110px);white-space:pre-line}h2{font-size:clamp(38px,4.6vw,72px);white-space:pre-line}p{line-height:1.8}.eyebrow{font-size:16px;letter-spacing:.13em;text-transform:uppercase}.toolbar{height:76px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;background:#fffaf1;color:#342c29;border-bottom:1px solid #d8cabc;font-size:16px}.toolbar button{background:#342c29;color:white;border:0}.toolbar strong{font-weight:600}#editor{display:none}main{overflow:hidden}.hero{position:relative;min-height:760px;min-height:min(920px,calc(100svh - 76px));display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:90px 6% 110px;gap:0}.hero-copy{z-index:2;max-width:640px}.hero h1{margin:24px 0}.subtitle{max-width:460px;font-size:20px}.date{display:inline-block;margin-top:28px;padding:9px 0;border-top:1px solid;border-bottom:1px solid;font-size:18px}#music-toggle{position:absolute;right:26px;top:24px;font-size:16px;z-index:4}.art-stage{position:relative;margin-left:-5%;margin-right:-6%;animation:float 9s ease-in-out infinite}.art-stage img{display:block;width:100%;height:auto}.hero-foot{position:absolute;bottom:28px;left:6%;font:italic 20px Georgia,serif}.intro{padding:110px 13%;display:grid;grid-template-columns:100px 1fr;gap:36px;align-items:start;background:var(--soft)}.quote{font:190px/.9 Georgia,serif;opacity:.5}.intro h2{margin-bottom:30px}.intro p{max-width:710px}.venue{padding:100px 12% 80px;text-align:center;position:relative}.rendezvous{padding:50px 6%;border:1px solid currentColor;border-radius:180px 180px 0 0;max-width:900px;margin:auto}.venue h2{margin:26px auto;max-width:780px}.venue a{display:inline-block;margin-top:24px}.venue-word{display:block;font:italic clamp(48px,10vw,160px)/1 Georgia,serif;letter-spacing:-.04em;opacity:.15;margin-top:40px}.invitation-details{padding:90px 12%;text-align:center;background:var(--soft)}.detail-line{width:70px;height:1px;display:block;background:currentColor;margin:0 auto 35px}.invitation-details h2{margin-bottom:25px}.invitation-details p{max-width:760px;margin:auto}.rsvp{padding:100px 8%;text-align:center}.rsvp h2{margin:20px 0 35px}.rsvp details{max-width:540px;margin:auto}.rsvp summary{list-style:none;border-radius:40px;background:var(--ink);color:var(--paper);padding:15px 24px}.rsvp summary::-webkit-details-marker{display:none}.rsvp form{margin-top:24px;padding:25px;text-align:left;border:1px solid;border-radius:22px}.rsvp fieldset{border:0;padding:0;margin:0 0 24px}.rsvp label{display:block;margin:12px 0}.rsvp input{width:20px;height:20px;accent-color:var(--accent)}.rsvp textarea{width:100%}.rsvp-status,#rsvp-status{font-size:16px;margin-top:18px}.closing{padding:75px 8% 35px;text-align:center;background:var(--soft)}.closing h2{font-style:italic;max-width:900px;margin:auto}.closing-line{display:block;width:1px;height:65px;background:currentColor;margin:40px auto 0}footer{padding:90px 20px 40px;text-align:center;background:var(--soft)}footer a{font-size:14px;text-decoration:none}.walk{--paper:#fcf5ee;--ink:#49302c;--soft:#eed9d5;--accent:#49302c}.walk h1,.walk h2{font-family:Georgia,serif;font-style:italic}.walk .hero{background:linear-gradient(110deg,#fcf5ee 45%,#eed9d5)}.walk .hero-foot{font-style:normal}.walk .rendezvous{border-radius:10px;transform:rotate(-1deg);box-shadow:10px 10px 0 #eed9d5}.moon{--paper:#111929;--ink:#e8e4fa;--soft:#202a42;--accent:#b3abef}.moon h1,.moon h2{font-family:Georgia,serif;font-style:italic}.moon .hero{background:radial-gradient(ellipse at 75% 45%,#3c4368 0,transparent 55%)}.moon .rendezvous{border-radius:50% 50% 12px 12px}.moon .art-stage{animation-duration:13s}.gallery-section{padding:70px 6%;text-align:center}.gallery{display:flex;gap:24px;overflow:auto;scroll-snap-type:x mandatory;padding:35px 0}.gallery:has(figure:last-child:nth-child(-n+2)){justify-content:center}.gallery figure{margin:0;flex:0 0 min(70%,430px);scroll-snap-align:center}.gallery img{width:100%;height:400px;object-fit:contain;display:block}.gallery button{margin-top:12px}.clean .edit-only{display:none!important}.editing #editor{display:block;position:fixed;left:0;top:76px;bottom:0;width:280px;overflow:auto;background:#fffaf1;color:#342c29;padding:22px;z-index:15;font-size:16px}.editing #invitation{margin-left:280px}.editing #editor h2{font:28px Georgia,serif}.editing #editor p{font-size:16px;margin:16px 0}.editing #editor label{display:block;margin:18px 0}.editing #editor input:not([type=checkbox]),.editing #editor textarea{display:block;width:100%;margin-top:7px;border:1px solid #baa998;border-radius:8px;padding:10px;background:white;color:#342c29;font-size:16px}.editing #editor textarea{min-height:90px}.editing #editor button{font-size:16px;margin-bottom:12px}.editing [data-field]{outline:1px dashed #b88c60;outline-offset:6px;min-height:30px;position:relative}.editing [data-field]:empty:before{content:attr(data-label);opacity:.5;font:18px Arial,sans-serif}.editing .settings{display:block;margin:20px auto;font-size:16px}.editing .hero h1{font-size:clamp(48px,5vw,90px)}.collection{background:#faf7ef;color:#302f28}.collection-heading{padding:40px 6% 60px}.collection-heading>a{font-size:16px}.collection-heading .eyebrow{margin-top:70px}.collection-heading h1{font-size:clamp(45px,6vw,85px);margin:20px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:0 6% 60px}.cover{display:flex;flex-direction:column;position:relative;aspect-ratio:.82;border-radius:26px;background:var(--paper);color:var(--ink);text-decoration:none;overflow:hidden;padding:30px 24px;border:1px solid #0000000d}.cover>span{font-size:16px}.cover h2{font-size:clamp(26px,2.8vw,44px);margin-top:18px;z-index:1}.cover img{width:95%;height:65%;object-fit:contain;position:absolute;left:3%;bottom:-2%}.card-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;font-size:16px}.card-caption h3{font-size:18px}.local-note{padding:0 6% 60px;font-size:16px}.scene .hero-copy,.scene>div,.scene>h2,.scene>p{transition:opacity .8s,translate .8s}.scene.waiting>div,.scene.waiting>h2,.scene.waiting>p{opacity:0;translate:0 24px}.scene>div:nth-child(2){transition-delay:.12s}@keyframes float{50%{transform:translateY(-12px) rotate(1deg)}}
@media(max-width:760px){.toolbar{height:68px;padding:10px 16px;gap:8px}.toolbar strong{display:none}.toolbar a,.toolbar button{font-size:16px}.hero{padding:85px 7% 60px;min-height:0;grid-template-columns:1fr;text-align:center}.hero-copy{max-width:none}h1,.editing .hero h1{font-size:clamp(48px,11.8vw,82px)}.hero h1{margin:18px 0}.hero .eyebrow{font-size:16px}.subtitle{font-size:18px;margin:auto}.art-stage{margin:-10px auto 0;width:min(100%,500px)}.hero-foot{position:static;grid-column:1;font-size:18px;margin-top:5px}.date{font-size:17px;margin-top:20px}#music-toggle{right:16px;top:16px;padding:5px 16px}.intro{padding:65px 8%;display:block}.quote{font-size:110px;display:block;height:65px}.intro h2,h2{font-size:clamp(35px,8vw,55px)}.venue{padding:65px 6%}.rendezvous{padding:55px 8% 35px;border-radius:120px 120px 0 0}.venue-word{font-size:14vw}.invitation-details{padding:65px 8%}.rsvp{padding:65px 7%}.closing{padding:60px 8% 20px}.editing #editor{display:none;top:68px;width:100%;height:65vh;box-shadow:0 5px 60px #0005}.editing #editor.open{display:block}.editing #invitation{margin-left:0}.editing [data-field]:after{content:'✎';position:absolute;right:-15px;top:-16px;font:16px Arial;padding:3px;color:var(--ink);background:var(--soft);border-radius:50%}.editing .hero{padding-top:90px}.editing .settings{display:block}.gallery figure{flex-basis:82%}.gallery img{height:340px}.gallery:has(figure:last-child:nth-child(2)) figure{flex-basis:45%}.cards{grid-template-columns:1fr;max-width:570px;margin:auto}.cover h2{font-size:42px}.collection-heading{padding-bottom:40px}.collection-heading .eyebrow{margin-top:45px}.card-caption{flex-wrap:wrap}.collection-heading h1{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.scene.waiting>div,.scene.waiting>h2,.scene.waiting>p{opacity:1;translate:none}}
.mobile-settings,.mobile-close{display:none}.editing [data-field]{overflow-wrap:normal;word-break:normal;hyphens:none}.editing .rsvp input{flex-shrink:0}@media(max-width:760px){.editing .mobile-settings,.editing .mobile-close{display:block}.editing .toolbar>a{display:none}.editing .toolbar{justify-content:space-between}.editing .mobile-close{position:sticky;top:0;background:#fffaf1;z-index:2}#editor input,#editor textarea{scroll-margin-top:70px}}
.rose-evening{--paper:#fae9e5;--ink:#672839;--soft:#eed3cd;--accent:#672839}.rose-evening .hero{background:radial-gradient(ellipse at 75% 45%,#fff6e9 0,transparent 65%)}.rose-evening .rendezvous{border-radius:150px 150px 12px 12px;border-style:double;border-width:3px}.rose-evening .hero h1{font-style:italic}.picnic{--paper:#fff9dc;--ink:#345441;--soft:#e6ebd0;--accent:#345441}.picnic h1,.picnic h2{font-family:Georgia,serif;font-style:italic}.picnic .hero{background:linear-gradient(115deg,#fff9dc 48%,#e8efd9)}.picnic .rendezvous{border-radius:8px;box-shadow:9px 9px 0 #e6ebd0}.picnic .hero-foot{font-style:normal}.picnic .closing-line{width:65px;height:1px}.rose-evening.cover,.picnic.cover{background:var(--paper)}

.walk .closing-art{display:block;width:clamp(180px,24vw,290px);max-width:75%;height:auto;margin:30px auto 0}

.dinner{--paper:#fcf3ec;--ink:#641d32;--soft:#efdbd7;--accent:#7c263d}
.dinner .hero,.dinner .closing,.dinner footer{background:#641d32;color:#fff2e4}
.dinner .hero{background:radial-gradient(ellipse at 75% 50%,#83344c 0,#641d32 65%)}
.dinner .venue{background:#77263e;color:#fff2e4}
.dinner .rsvp summary{background:#641d32;color:#fff2e4}
.dinner .closing-art{display:block;width:clamp(230px,32vw,390px);max-width:85%;height:auto;margin:35px auto 0}
.cover.dinner{background:#641d32;color:#fff2e4}
.dinner.editing .hero [data-field]:after,.dinner.editing .closing [data-field]:after{color:#641d32;background:#fff2e4}
