:root{--paper:#f5f2e9;--ink:#4d5030;--olive:#666b3e;--line:#d6d3c2;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}body:after{content:'';pointer-events:none;position:fixed;inset:0;z-index:80;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,input,select,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{background:none;border:0}button:focus-visible,a:focus-visible{outline:2px solid #a59c52;outline-offset:7px}button:disabled{cursor:wait}p{line-height:1.9}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(48px,5.5vw,78px);line-height:1.02;letter-spacing:-2px;margin-bottom:30px}h3{font-size:38px;line-height:1.1}i{font-weight:400}section{scroll-margin-top:20px}.eyebrow{display:block;font-size:10px;font-weight:500;letter-spacing:2.8px;line-height:1.8;text-transform:uppercase}.button{border:1px solid var(--ink);min-height:45px;display:inline-flex;align-items:center;justify-content:center;padding:13px 26px;font-size:10px;letter-spacing:2px;text-transform:uppercase;transition:background .3s,color .3s,transform .3s}.button:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.solid{background:var(--ink);color:var(--paper)}.solid:hover{background:#73774b}.section{max-width:1180px;margin:auto;padding:110px 60px}.section-heading{text-align:center;margin-bottom:66px}.section-heading .eyebrow{margin-bottom:22px}.intro{max-width:600px;margin:0 auto;font-size:14px}.text-link{font-size:11px;letter-spacing:1px;border-bottom:1px solid #aaa98a;padding:0 0 7px;display:inline-block}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s,transform 1s}.reveal.visible{opacity:1;transform:none}.invitation-closed{overflow:hidden}.invitation{position:fixed;inset:0;z-index:100;background:var(--paper);display:flex;align-items:center;justify-content:center;perspective:1600px;transition:background 1.4s .15s,visibility 0s 2.3s;overflow:hidden}.invitation-top{position:absolute;top:32px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;transition:opacity .4s}.languages{display:flex;gap:14px;align-items:center}.languages button{padding:5px 0;font-size:10px;letter-spacing:1px;opacity:.5;border-bottom:1px solid transparent}.languages button.active{opacity:1;border-color:var(--ink)}.gatefold{position:relative;width:min(82vw,1100px);height:min(51vw,570px);max-height:65vh;perspective:1700px;filter:drop-shadow(0 18px 19px #4f4c3520);transition:transform 2s cubic-bezier(.3,.05,.1,1),filter 1.5s;transform:translateY(-10px)}.card-underlay{position:absolute;inset:0;background:var(--paper);opacity:1;transition:opacity .5s}.wing{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(110deg,#fbf8ef,#eeeadc);backface-visibility:hidden;transition:transform 1.9s cubic-bezier(.45,.02,.16,1),opacity .3s 1.6s;box-shadow:inset 0 0 2px #fff,inset 0 0 30px #a99d6d0a}.wing:after{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.11' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.left-wing{left:0;transform-origin:left center;border-right:1px solid #c2bdab}.right-wing{right:0;transform-origin:right center;border-left:1px solid #fff}.border{position:absolute;inset:14px;border:1px solid #76784e}.border:after{content:'';position:absolute;inset:4px;border:1px solid #9c9c78}.left-wing .border{right:-1px;border-right:0}.left-wing .border:after{right:-1px;border-right:0}.right-wing .border{left:-1px;border-left:0}.right-wing .border:after{left:-1px;border-left:0}.seal{position:absolute;z-index:3;width:105px;height:105px;left:50%;top:50%;transform:translate(-50%,-50%);padding:0;transition:opacity .35s,transform .5s}.seal-face{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 36% 25%,#969367 0%,#737648 27%,#51572e 67%,#747749 92%);border-radius:47% 53% 48% 46% / 42% 47% 53% 58%;box-shadow:inset 2px 3px 4px #b2af80,inset -3px -4px 4px #343b1d,3px 6px 8px #35351c55;color:#b6b38a;font-family:var(--serif);font-size:50px;font-style:italic;text-shadow:1px 1px 0 #30361c,-1px -1px 1px #c2bf9b;transition:transform .4s}.seal-face:before{content:'';position:absolute;inset:11px;border:2px solid #a2a07570;border-radius:49% 46% 48% 44%;box-shadow:1px 1px 2px #303817,inset 1px 1px 2px #303817}.seal-face span{margin-left:-8px}.seal-orbit{position:absolute;inset:-13px;border:1px solid #a5a06a;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;opacity:.3;animation:orbit 9s linear infinite;transition:opacity .4s,box-shadow .4s}.seal-orbit:after{content:'';position:absolute;inset:6px;border:1px solid #b5ad7840;border-radius:50%}.seal:hover .seal-orbit,.seal:focus-visible .seal-orbit{opacity:1;box-shadow:0 0 15px #c9bb6925}.seal:hover .seal-face{transform:scale(1.045) translateY(-2px)}.invitation-caption{position:absolute;bottom:8%;text-align:center;transition:opacity .35s}.invitation-caption .eyebrow{font-size:9px}.invitation-caption p{font-family:var(--serif);font-style:italic;font-size:21px;margin:9px 0}.invitation-foot{position:absolute;bottom:25px;font-size:9px;letter-spacing:3px;opacity:.5;transition:opacity .3s}.invitation.opening{background:transparent;pointer-events:none;visibility:hidden}.opening .gatefold{transform:scale(1.22);filter:none}.opening .card-underlay{opacity:0}.opening .left-wing{transform:rotateY(-108deg);opacity:0}.opening .right-wing{transform:rotateY(108deg);opacity:0}.opening .seal{opacity:0;transform:translate(-50%,-50%) scale(1.12)}.opening .invitation-top,.opening .invitation-caption,.opening .invitation-foot{opacity:0}#site{transition:opacity 1.1s;opacity:1}.invitation-closed #site{opacity:0}.nav{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:absolute;top:0;left:0;right:0;z-index:5}.monogram{font-family:var(--serif);font-size:35px;font-style:italic}.monogram span{margin-left:-9px}.nav nav{display:flex;align-items:center;gap:32px}.nav nav a,.nav nav button{font-size:9px;letter-spacing:1.7px;text-transform:uppercase;padding:10px 0}.nav .nav-rsvp{border:1px solid #8f9274;padding:10px 18px}.nav-rsvp span{margin-left:10px}.hero{min-height:850px;height:100svh;max-height:1150px;position:relative;text-align:center;padding-top:130px;overflow:hidden;transform:scale(.87);transition:transform 2.5s cubic-bezier(.2,.05,.1,1)}body:not(.invitation-closed) .hero{transform:scale(1)}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(84px,9.8vw,150px);line-height:1;letter-spacing:-5px;margin:16px 0}.hero h1 i{font-size:.77em}.hero-date{font-size:10px;letter-spacing:3px;margin-bottom:25px}.hero .button{background:#f5f2e960}.hero .button:hover{background:var(--ink)}.harbor{width:100%;height:76%;object-fit:cover;object-position:center 57%;position:absolute;bottom:20px;left:0;mix-blend-mode:multiply;mask-image:linear-gradient(transparent 0%,black 22%,black 83%,transparent 100%);z-index:0;pointer-events:none}.scroll-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-family:var(--serif);font-style:italic;font-size:17px;display:flex;flex-direction:column;gap:8px;align-items:center;z-index:2}.down-arrow{font-style:normal;font-size:23px}.side-note{position:absolute;bottom:65px;left:35px;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px}.story{text-align:center;padding-top:100px;padding-bottom:90px;max-width:850px}.story .eyebrow{margin-bottom:25px}.story-copy{max-width:580px;margin:0 auto}.story-copy p{font-size:14px;line-height:1.9}.signature{font-family:var(--serif);font-style:italic;font-size:30px;display:block;margin-top:28px}.little-sun{display:block;font-size:45px;font-weight:400;margin-top:45px;color:#aaa171}.weekend{padding-top:65px}.timeline{max-width:850px;margin:auto}.timeline-item{display:grid;grid-template-columns:150px 1fr;gap:55px;position:relative;padding:0 0 64px}.timeline-item:before{content:'';position:absolute;left:170px;top:10px;bottom:0;border-left:1px solid var(--line)}.timeline-item:after{content:'';position:absolute;left:166px;top:9px;width:7px;height:7px;border:1px solid var(--olive);background:var(--paper);border-radius:50%}.timeline-item:last-child{padding-bottom:0}.timeline-item:last-child:before{bottom:40px}.timeline-date{text-align:right}.timeline-date .day{font-family:var(--serif);font-size:55px;line-height:1}.timeline-date .eyebrow{font-size:9px}.timeline-content h3{margin:8px 0 12px;font-size:38px}.timeline-content p{max-width:420px;margin-bottom:15px;font-size:13px}.timeline-content .eyebrow{font-size:9px}.timeline-content .text-link{margin-top:8px}.festival{min-height:860px;position:relative;overflow:hidden;background:#061d25;color:#eee9d8;display:flex;align-items:center;justify-content:center;text-align:center}.festival:before,.festival:after{content:'';position:absolute;left:0;right:0;height:65px;z-index:2;pointer-events:none}.festival:before{top:-1px;background:linear-gradient(var(--paper),#f5f2e900);opacity:.2}.festival:after{bottom:-1px;background:linear-gradient(transparent,#061d25)}.festival-atmosphere{position:absolute;inset:-10%;background:radial-gradient(ellipse at 9% 55%,#2a687050,transparent 45%),radial-gradient(ellipse at 90% 40%,#7d477965,transparent 35%),radial-gradient(ellipse at 45% 25%,#254b4b60,transparent 50%);filter:blur(30px);animation:mist 15s ease-in-out infinite alternate}.festival-content{position:relative;z-index:3;padding:85px 25px 120px}.festival h2{font-size:clamp(70px,7vw,108px);margin:25px 0 22px;letter-spacing:-2px}.festival .eyebrow{font-size:10px;letter-spacing:3px}.festival-content p{font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.4;margin:30px 0}.light{color:#eee9d8;border-color:#aaa98b;margin-top:5px}.light:hover{background:#eee9d8;color:#102b2d}.small-secret{display:block;font-family:var(--serif);font-style:italic;opacity:.55;font-size:16px;margin-top:30px}.sun-symbol{width:136px;height:78px;overflow:hidden;margin:0 auto 27px;position:relative}.sun-symbol:before{content:'';position:absolute;width:136px;height:136px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#b9a260 0deg 1deg,transparent 1deg 10deg);mask-image:radial-gradient(circle,transparent 47%,#000 49%,#000 70%,transparent 72%)}.sun-symbol div{position:absolute;width:90px;height:90px;border:1px solid #b6a16c;border-radius:50%;left:23px;top:23px;background:linear-gradient(#a38d4940,transparent)}.laser-fan{position:absolute;top:12%;width:40%;height:55%;opacity:.5;filter:drop-shadow(0 0 4px #6caacb)}.left-lasers{left:-12%;transform:rotate(25deg)}.right-lasers{right:-12%;transform:scaleX(-1) rotate(25deg);filter:hue-rotate(75deg) drop-shadow(0 0 4px #bf6ea0)}.laser-fan i{position:absolute;width:140%;height:1px;background:linear-gradient(90deg,transparent,#6bced65c,#6bced6);top:80%;left:0;transform-origin:left center;transform:rotate(-44deg);animation:laser 12s ease-in-out infinite alternate}.laser-fan i:nth-child(2){transform:rotate(-38deg);animation-delay:-3s}.laser-fan i:nth-child(3){transform:rotate(-30deg);animation-delay:-6s}.laser-fan i:nth-child(4){transform:rotate(-23deg);animation-delay:-8s}.laser-fan i:nth-child(5){transform:rotate(-15deg);animation-delay:-10s}.embers{position:absolute;inset:0;pointer-events:none}.embers i{position:absolute;width:2px;height:3px;border-radius:50%;background:#dca761;box-shadow:0 0 7px #e9a242;animation:ember 9s linear infinite;bottom:5%;opacity:0}.water-lines{position:absolute;bottom:-30px;height:200px;left:-10%;width:120%;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0px,transparent 18px,#6e9e9c21 20px,transparent 22px,transparent 27px,#9775971f 29px,transparent 31px);transform:perspective(300px) rotateX(48deg);animation:water 9s ease-in-out infinite alternate;mask-image:linear-gradient(transparent,black)}.stay-feature{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:65px;margin-bottom:60px}.hotel-art{position:relative;background:#eae8db;min-height:330px;display:flex;align-items:center;overflow:hidden}.hotel-art img{width:115%;max-width:none;mix-blend-mode:multiply;transform:translateX(-7%)}.hotel-art span{position:absolute;bottom:20px;left:20px;font-size:8px;letter-spacing:2px}.hotel-info h3{margin:20px 0}.hotel-info p{font-size:13px}.hotel-note{display:block;font-size:10px;letter-spacing:1px;margin:20px 0}.other-hotels{border-top:1px solid var(--line);padding-top:38px;display:grid;grid-template-columns:1fr 1.4fr;gap:50px}.other-hotels p{font-size:12px;margin:12px 0}.code-button{border:1px dashed #a7ab8d;padding:14px 16px;letter-spacing:2px;font-size:11px}.code-button span{margin-left:20px}.hotel-list a{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;font-family:var(--serif);font-size:25px}.hotel-list a span{font-family:var(--sans);font-size:17px}#copy-status{display:block;font-size:10px;margin-top:10px}.travel{text-align:center;padding-top:50px}.travel>h2{margin-top:22px}.travel-route{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;gap:25px;text-align:left;margin-top:60px}.route-number{font-family:var(--serif);font-style:italic;font-size:33px;color:#9b9d7e}.travel h3{font-size:31px;margin:12px 0}.travel p{font-size:12px}.route-dash{padding-top:70px;opacity:.45;font-size:25px}.rsvp{max-width:1160px;padding-top:60px;padding-bottom:110px}.rsvp .section-heading{margin-bottom:40px}.envelope-scene{position:relative;padding:90px 65px 80px;max-width:900px;margin:auto;isolation:isolate;perspective:1200px}.envelope-back{position:absolute;inset:35% 0 0;background:#5f653d;z-index:-2;box-shadow:0 20px 35px #4b4b3025}.envelope-flap{position:absolute;top:35%;height:220px;left:0;width:100%;background:#6d7348;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:center top;transform:rotateX(0);transition:transform 1.3s;z-index:3;pointer-events:none}.envelope-scene.unfolded .envelope-flap{transform:rotateX(180deg);z-index:-1}.letter{position:relative;background:#faf7ef;padding:46px 48px 54px;box-shadow:0 2px 18px #4546271c;transform:translateY(90px);opacity:.5;transition:transform 1.3s .15s,opacity .7s .15s;z-index:1;min-height:580px}.unfolded .letter{transform:translateY(0);opacity:1}.letter-heading{text-align:center}.letter-heading h3{font-size:40px;margin:10px 0 0}.letter-heading p{font-family:var(--serif);font-style:italic;font-size:20px;margin:6px 0 22px}.envelope-front{position:absolute;inset:auto 0 0;height:150px;background:linear-gradient(20deg,#73794b,#5b6237);clip-path:polygon(0 0,50% 68%,100% 0,100% 100%,0 100%);z-index:2;pointer-events:none}.envelope-edge{position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(#747b4d,#646c3e);clip-path:polygon(0 100%,50% 0,100% 100%);z-index:3;pointer-events:none}form label>span,legend{font-size:9px;letter-spacing:1.3px;text-transform:uppercase}input:not([type=radio]):not([type=checkbox]),select,textarea{border:0;border-bottom:1px solid #bdbda6;background:transparent;border-radius:0;width:100%;padding:12px 2px;outline:none;min-height:43px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:#5e6636!important;box-shadow:0 1px #5e6636}textarea{resize:vertical;max-height:180px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:24px 0}fieldset{border:0;padding:15px 0;margin:20px 0 5px}legend{padding:0}.radio{display:inline-flex;gap:8px;align-items:center;margin:6px 18px 6px 0}.radio span{font-family:var(--serif);font-size:18px;text-transform:none;letter-spacing:0}.radio input{accent-color:var(--olive);width:15px;height:15px}.events .radio{display:flex}.events .radio span{font-size:17px}.preview-note{padding:10px 14px;border-left:2px solid #a6a586;background:#e9e6d742;font-size:10px;line-height:1.65}.guest-note{font-size:10px;line-height:1.65;opacity:.75}.message-field{display:block;margin:22px 0}form .solid{margin:auto;display:flex}#form-status{font-size:12px;text-align:center;margin:15px 0 0}.reply-mark{display:block;font-family:var(--serif);font-size:65px;font-style:italic;margin:45px 0 25px}#reply-success{text-align:center}#reply-success p{font-size:13px}#reply-success .text-link{margin-top:20px}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;padding-top:40px}.faq h2{margin-top:23px}.faq>div>p{font-size:12px}.faq details{border-bottom:1px solid var(--line);padding:21px 0}.faq details:first-child{padding-top:0}.faq summary{list-style:none;cursor:pointer;font-family:var(--serif);font-size:24px;display:flex;justify-content:space-between;gap:15px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-family:var(--sans);font-size:17px;opacity:.5}.faq details[open] summary:after{content:'−'}.faq details p{font-size:12px;margin:14px 0 0}.faq details button{text-decoration:underline;padding:0}.faq details a{text-decoration:underline}footer{border-top:1px solid var(--line);padding:65px 5% 25px;text-align:center}.footer-names{font-family:var(--serif);display:block;font-size:clamp(65px,8vw,115px);line-height:1.3;margin:15px 0 45px;letter-spacing:-2px}.footer-names i{font-size:.75em}.footer-bottom{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;padding-top:25px;border-top:1px solid var(--line)}.footer-bottom button{font-size:10px}dialog{border:0;background:var(--paper);color:var(--ink);padding:35px 48px;width:min(800px,92vw);max-height:90svh;box-shadow:0 30px 80px #0004}dialog::backdrop{background:#151e17a6;backdrop-filter:blur(6px)}.modal-heading{display:flex;align-items:center;justify-content:space-between}.modal-heading button{font-size:32px;padding:0 5px}dialog h2{font-size:56px;margin:20px 0 25px}.mood-tabs{border-bottom:1px solid var(--line);display:flex;gap:25px;margin-bottom:25px}.mood-tabs button{padding:12px 0;font-size:11px;letter-spacing:1px}.mood-tabs button.active{border-bottom:2px solid var(--ink)}.mood-colors{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:25px}.mood-colors div{height:85px;display:flex;align-items:end;padding:10px;font-size:9px;letter-spacing:1px}.mood-columns{display:grid;grid-template-columns:1fr 1fr;gap:25px}.mood-columns h3{font-size:30px;margin-bottom:10px}.mood-columns p{font-size:13px}.mood-foot{font-family:var(--serif);font-style:italic;font-size:19px;margin:25px 0 5px}.mood-concept{font-size:11px;line-height:1.8;margin-bottom:20px}body.modal-open{overflow:hidden}[hidden]{display:none!important}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes mist{to{transform:translate(4%,-4%) scale(1.1)}}@keyframes laser{to{opacity:.25;translate:0 -35px;rotate:7deg}}@keyframes ember{0%{transform:translate(0,0);opacity:0}20%{opacity:.8}90%{opacity:.2}100%{transform:translate(35px,-550px);opacity:0}}@keyframes water{to{translate:15px 8px;scale:1.02}}
@media(min-width:1600px){.harbor{object-fit:contain}.hero{max-height:1200px}}
@media(max-width:800px){.nav{padding:0 6%;height:75px}.nav nav{gap:18px}.nav nav a,.nav nav button{font-size:8px}.nav nav a:not(.nav-rsvp),.nav nav button{display:none}.nav .languages{gap:10px}.nav nav{margin-left:auto;margin-right:25px}.section{padding:75px 26px}.hero{min-height:700px;max-height:950px;padding-top:125px}.hero h1{font-size:94px;letter-spacing:-4px}.harbor{height:65%;object-fit:cover;object-position:50% 55%;width:145%;left:-22.5%}.hero-copy .eyebrow{font-size:8px}.hero-date{font-size:9px;letter-spacing:2px}.side-note{left:12px}.gatefold{width:88vw;height:65vw;max-height:58vh}.seal{width:83px;height:83px}.seal-face{font-size:40px}.seal-face:before{inset:9px}.invitation-caption{bottom:14%}.invitation-caption p{font-size:18px}.invitation-top{top:25px}.border{inset:10px}.story{padding-top:70px}.story h2{font-size:54px}.story-copy p{font-size:13px}.section-heading{margin-bottom:45px}.timeline-item{grid-template-columns:78px 1fr;gap:35px;padding-bottom:45px}.timeline-item:before{left:94px}.timeline-item:after{left:90px}.timeline-date .day{font-size:44px}.timeline-date .eyebrow{font-size:8px;letter-spacing:1px}.timeline-content h3{font-size:32px}.timeline-content p{font-size:12px}.festival{min-height:800px}.festival h2{font-size:75px}.festival-content p{font-size:22px}.laser-fan{width:60%;top:10%}.left-lasers{left:-35%}.right-lasers{right:-35%}.stay-feature{grid-template-columns:1fr;gap:30px}.hotel-art{min-height:240px;max-height:370px}.hotel-info h3{font-size:39px}.other-hotels{grid-template-columns:1fr;gap:20px}.travel-route{grid-template-columns:1fr;gap:25px;text-align:center;margin-top:35px}.travel-route>div{max-width:350px;margin:auto}.route-dash{display:none}.travel h3{font-size:35px}.envelope-scene{padding:65px 20px 55px}.envelope-front{height:100px}.envelope-edge{height:50px}.envelope-flap{height:130px}.letter{padding:32px 22px 35px;min-height:650px}.letter-heading h3{font-size:34px}.letter-heading p{font-size:18px}.form-grid{gap:18px;grid-template-columns:1fr}form .radio{margin-right:10px}.radio span{font-size:17px}.faq{grid-template-columns:1fr;gap:30px}.faq summary{font-size:23px}.footer-bottom{gap:20px;flex-wrap:wrap;justify-content:center}.footer-bottom span{width:100%;margin-bottom:8px}dialog{padding:23px}dialog h2{font-size:44px}.mood-colors div{height:70px;font-size:7px;padding:6px}.mood-columns{gap:20px}.mood-columns p{font-size:12px}.sun-symbol{scale:.9}.rsvp{padding-left:16px;padding-right:16px}}
@media(max-height:650px) and (min-width:801px){.gatefold{height:60vh;width:105vh}.invitation-caption{bottom:5%}.invitation-foot{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}.hero{transform:none}.reveal{opacity:1;transform:none}.letter{opacity:1;transform:none}.envelope-flap{transform:rotateX(180deg);z-index:-1}.seal-orbit{opacity:.5}}
/* User-selected watercolour palettes, with complementary dark inks for legibility. */
:root,[data-palette=terracotta]{--paper:#FEFAE0;--ink:#454930;--olive:#777c53;--line:#d9d9b8;--accent:#D4A373;--sage:#CCD5AE;--wash:#E9EDC9;--cream:#FAEDCD;--seal-hi:#aeb88d;--seal-mid:#899369;--seal-low:#636d45;--night:#172d2a;--glow-a:#7c9d794a;--glow-b:#c58b6552}
[data-palette=sky]{--paper:#fff6eb;--ink:#364f54;--olive:#5E97A8;--line:#d9d2c3;--accent:#C06014;--sage:#A8D0DB;--wash:#F0C8A8;--cream:#F0C8A8;--seal-hi:#b2d5dd;--seal-mid:#78a9b6;--seal-low:#437b8b;--night:#102a35;--glow-a:#5E97A860;--glow-b:#D98E7365}
body,.wing,.button,.nav,.letter,dialog{transition:background-color .5s,color .5s,border-color .5s}.wing{background:linear-gradient(115deg,var(--paper),var(--cream));transition:transform 1.9s cubic-bezier(.45,.02,.16,1),opacity .3s 1.6s,background .5s}.border{border-color:var(--accent)}.border:after{border-color:var(--sage)}.left-wing{border-right-color:var(--line)}.seal-face{background:radial-gradient(ellipse at 36% 25%,var(--seal-hi),var(--seal-mid) 30%,var(--seal-low) 70%,var(--seal-mid));box-shadow:inset 2px 3px 4px #e9edc980,inset -3px -4px 4px #24331c80,3px 6px 8px #35351c44;color:var(--paper)}.seal-orbit{border-top-color:var(--accent);border-right-color:var(--accent)}.seal-orbit:after{border-color:var(--accent);opacity:.25}.hero .button{background:var(--paper)}.hero .button:hover{background:var(--ink)}.little-sun{color:var(--accent)}.hotel-art{background:var(--wash)}.hotel-art img{mix-blend-mode:multiply}.harbor{mix-blend-mode:multiply}.hotel-note{color:var(--ink)}.solid{background:var(--accent);color:#302c22;border-color:var(--accent)}.solid:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.envelope-back{background:var(--seal-low)}.envelope-flap{background:var(--sage)}.envelope-front{background:linear-gradient(20deg,var(--sage),var(--seal-mid))}.envelope-edge{background:var(--seal-mid)}.letter{background:var(--paper)}.preview-note{background:var(--wash);border-color:var(--accent)}.festival{background:var(--night)}.festival-atmosphere{background:radial-gradient(ellipse at 9% 55%,var(--glow-a),transparent 45%),radial-gradient(ellipse at 90% 40%,var(--glow-b),transparent 35%),radial-gradient(ellipse at 45% 25%,#254b4b60,transparent 50%)}.festival:before{background:linear-gradient(var(--paper),transparent)}.festival:after{background:linear-gradient(transparent,var(--night))}.palette-tools{position:fixed;right:22px;bottom:20px;z-index:120;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.palette-tools #palette-toggle{display:flex;align-items:center;gap:10px;padding:12px 17px;border:1px solid var(--line);border-radius:25px;background:var(--paper);box-shadow:0 4px 20px #282f1812;font-size:10px;letter-spacing:1px;color:var(--ink)}.palette-icon{display:flex}.palette-icon i{width:11px;height:11px;border-radius:50%;background:var(--accent);border:1px solid var(--paper)}.palette-icon i+i{margin-left:-3px;background:var(--sage)}.palette-icon i:last-child{background:var(--seal-low)}#palette-panel{width:320px;max-width:calc(100vw - 32px);padding:22px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 60px #30351e25;border-radius:3px}.palette-head{display:flex;justify-content:space-between;align-items:center}.palette-head button{font-size:24px;line-height:1}.palette-head .eyebrow{font-size:9px}#palette-panel>p{font-family:var(--serif);font-size:24px;line-height:1.2;margin:12px 0 20px}.palette-option{padding:13px;width:100%;border:1px solid var(--line);text-align:left;margin-bottom:10px;border-radius:3px}.palette-option.selected{border:1px solid var(--ink);box-shadow:0 0 0 1px var(--ink)}.palette-name{display:flex;justify-content:space-between;font-size:12px;margin-bottom:10px}.selected-mark{opacity:0}.selected .selected-mark{opacity:1}.palette-swatches{display:flex;overflow:hidden;border-radius:2px}.palette-swatches>span{width:20%;height:38px}.palette-hex{display:block;font-size:6px;letter-spacing:0;margin-top:7px;white-space:nowrap;color:var(--ink)}#palette-panel>small{font-size:9px;opacity:.7;display:block;margin-top:8px}@media(max-width:800px){.palette-tools{right:14px;bottom:14px}.palette-tools #palette-toggle{padding:10px 13px}}
