:root{--olive:#6b734b;--deep:#485032;--forest:#303925;--cream:#f6f4ed;--paper:#fcfaf4;--ivory:#eee9db;--ink:#293020;--sage:#b8beaa;--gold:#b99a64;--taupe:#c1b4a2;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Pinyon Script',cursive;--script2:'Italianno',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:82px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.is-locked{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%}.eyebrow{font:600 .63rem/1.6 var(--sans);letter-spacing:.22em;text-transform:uppercase}.opening{position:fixed;inset:0;z-index:50;overflow:hidden;background:#68714b;color:var(--cream);display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;padding:4vw 8vw;transition:opacity 1s ease,visibility 1s ease}.opening.is-gone{opacity:0;visibility:hidden;pointer-events:none}.opening:before,.opening:after{content:"";position:absolute;pointer-events:none}.opening:before{inset:12px;border:1px solid rgba(242,236,217,.3)}.opening:after{inset:22px;border:1px solid rgba(242,236,217,.12)}.opening-grain{position:absolute;inset:0;opacity:.13;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='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E")}.opening-copy{position:relative;z-index:2;max-width:480px;animation:rise-in 1.1s .3s both}.opening-kicker{display:flex;align-items:center;gap:12px;color:#e6e0cf;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase}.opening-kicker i{width:25px;height:1px;background:#d3c39f}.opening h1{font:400 clamp(4.4rem,8vw,8.2rem)/.77 var(--serif);letter-spacing:-.055em;margin:31px 0 25px;color:#f8f4e9}.opening h1 em{font:400 .68em var(--script);letter-spacing:0;color:#e4d9bd}.opening-date{font:500 1rem var(--serif);letter-spacing:.21em;text-transform:uppercase;color:#f2ecdc;margin:0}.opening-date span{color:#d1bf99;padding:0 7px}.opening-place{font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:#dedacb;margin:13px 0 35px}.opening-place b{font-weight:400;color:#d0bd8c;margin:0 7px}.open-button{display:flex;align-items:center;gap:16px;border:1px solid rgba(246,244,237,.68);padding:10px 17px 10px 10px;background:rgba(249,246,237,.08);color:var(--cream);cursor:pointer;font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;transition:background .25s,transform .25s}.open-button:hover{background:rgba(249,246,237,.17);transform:translateY(-2px)}.seal-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#ded3b9;color:#646b49;box-shadow:0 2px 6px #30392555;font:500 .65rem var(--script);line-height:.8;letter-spacing:0;transform:rotate(-8deg)}.seal-icon span{font-size:.8em;color:#9e8250}.open-button>b{margin-left:10px;font-size:1rem;font-weight:400}.opening-art{position:relative;z-index:1;justify-self:center;width:min(100%,650px);aspect-ratio:1/1.05;display:grid;place-items:center;animation:art-in 1.2s .12s both}.opening-art:before{content:"";position:absolute;width:76%;height:78%;border-radius:50%;background:radial-gradient(ellipse,rgba(36,42,26,.3),transparent 70%);filter:blur(12px);transform:translate(3%,8%)}.collage-cover{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 20px rgba(26,30,19,.24));transition:transform 2s cubic-bezier(.2,.7,.2,1),filter 1s}.cover-card-copy{position:absolute;z-index:2;top:53%;left:50%;width:42%;transform:translate(-50%,-50%);text-align:center;color:#545a3b;display:flex;align-items:center;flex-direction:column}.cover-card-copy small{font:500 clamp(.48rem,.75vw,.64rem)/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase}.cover-card-copy strong{font:400 clamp(1.8rem,3.5vw,3.1rem)/.77 var(--script);margin:12px 0 14px}.cover-card-copy strong i{font-size:.65em}.cover-card-copy>span{font-size:clamp(.42rem,.64vw,.58rem);letter-spacing:.2em;text-transform:uppercase}.art-orbit{position:absolute;border:1px solid rgba(248,244,233,.22);border-radius:50%;width:85%;height:85%;transform:rotate(-23deg)}.orbit-two{width:93%;height:77%;transform:rotate(42deg);border-style:dashed;opacity:.6}.vinyl-sticker{position:absolute;width:68px;height:68px;bottom:15%;left:19%;border-radius:50%;background:repeating-radial-gradient(circle,#111 0 2px,#25251f 2px 3px);box-shadow:0 6px 12px #2228;display:grid;place-items:center;transform:rotate(-14deg);transition:transform 2s}.vinyl-sticker:before{content:"";position:absolute;width:19px;height:19px;background:#d8d2c1;border-radius:50%}.vinyl-sticker i{position:relative;width:4px;height:4px;background:#272720;border-radius:50%}.cover-caption{position:absolute;right:5%;bottom:8%;font:1.55rem var(--script);color:#eee7d5;transform:rotate(-6deg)}.opening.is-opening .collage-cover{transform:scale(1.08) rotate(1deg);filter:drop-shadow(0 35px 35px rgba(26,30,19,.38))}.opening.is-opening .vinyl-sticker{transform:rotate(330deg)}.opening.is-opening .opening-copy{opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s}.skip-button{position:absolute;right:6.2vw;bottom:74px;z-index:4;border:0;background:none;color:#e3ddca;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}.skip-button span{margin-left:7px}.opening-footer{position:absolute;bottom:34px;left:8vw;right:8vw;z-index:2;display:flex;justify-content:space-between;color:rgba(245,241,228,.7);font-size:.51rem;letter-spacing:.19em;text-transform:uppercase}.site{opacity:0;transform:translateY(18px);transition:opacity .9s,transform .9s}.site.is-visible{opacity:1;transform:none}.header{height:78px;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(24px,6vw,90px);background:rgba(250,248,241,.94);backdrop-filter:blur(14px);border-bottom:1px solid #59604424}.wordmark{font:500 1.35rem var(--script);color:var(--deep);display:flex;gap:5px;align-items:center}.wordmark span{color:#a88b59;font-size:.8em}.nav{display:flex;gap:clamp(25px,4vw,58px);align-items:center}.nav a,.header-cta{font-size:.55rem;letter-spacing:.17em;text-transform:uppercase;color:#5c6248}.nav a:hover,.header-cta:hover{color:#a08250}.header-cta{justify-self:end;border:1px solid #a58f67;padding:11px 15px}.header-cta span{margin-left:10px}.hero{position:relative;min-height:850px;padding:85px clamp(25px,8vw,126px) 74px;overflow:hidden;background-color:#eef0e6;background-image:radial-gradient(ellipse at 82% 43%,#d9dccd 0,transparent 53%),linear-gradient(125deg,#f7f6ef 12%,#e7e8dc 100%);display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:4vw}.hero:before{content:"";position:absolute;inset:20px 24px;border:1px solid rgba(104,113,75,.17);pointer-events:none}.hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:65px;background:var(--paper);clip-path:polygon(0 35%,4% 46%,9% 35%,15% 48%,21% 36%,28% 47%,34% 35%,41% 49%,48% 38%,55% 48%,62% 34%,69% 46%,76% 35%,83% 48%,91% 37%,96% 47%,100% 35%,100% 100%,0 100%)}.hero-heading{position:relative;z-index:2;max-width:490px;padding-bottom:30px}.hero-heading .eyebrow{color:#727958}.hero-heading h2{font:400 clamp(4rem,7.2vw,7.4rem)/.78 var(--serif);letter-spacing:-.05em;color:#4d5537;margin:26px 0}.hero-heading h2 em{font:400 .78em var(--script);letter-spacing:0;color:#7f8662}.hero-sub{max-width:340px;color:#656a58;font:400 1.26rem/1.5 var(--serif)}.hero-stamp{position:absolute;top:83px;left:8%;z-index:3;width:116px;height:116px;border:1px solid #aa9365;border-radius:50%;display:grid;place-items:center;align-content:center;color:#807349;text-align:center;transform:rotate(-12deg);box-shadow:inset 0 0 0 4px #eef0e6,inset 0 0 0 5px #ad9a71}.hero-stamp span{font:.47rem var(--sans);letter-spacing:.19em;text-transform:uppercase}.hero-stamp strong{font:400 1.55rem/.82 var(--script);margin:4px 0}.hero-stamp small{font:.47rem var(--sans);letter-spacing:.18em}.hero-collage{position:relative;z-index:1;width:min(100%,620px);aspect-ratio:1/1;justify-self:center;display:grid;place-items:center}.collage-shadow{position:absolute;inset:10% 9% 6%;background:radial-gradient(ellipse,rgba(45,51,32,.26),transparent 70%);filter:blur(18px)}.hero-card-art{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 20px 15px rgba(53,55,40,.2));transition:transform .65s}.hero-collage:hover .hero-card-art{transform:translateY(-7px) rotate(-1deg)}.hero-card-type{position:absolute;top:54%;left:50%;width:39%;transform:translate(-50%,-50%);text-align:center;color:#535b3c;display:flex;flex-direction:column;align-items:center}.hero-card-type>span{font:.48rem var(--sans);letter-spacing:.13em;text-transform:uppercase}.hero-card-type strong{font:400 clamp(1.6rem,3.2vw,2.7rem)/.77 var(--script);margin:9px 0}.hero-card-type strong i{font-size:.65em}.hero-card-type small{font:.43rem var(--sans);letter-spacing:.16em;text-transform:uppercase}.polaroid{position:absolute;width:125px;background:#fbfaf5;padding:8px 8px 20px;box-shadow:0 8px 17px #3a3a293b;z-index:3}.polaroid img{display:block;width:100%;aspect-ratio:1.1;object-fit:cover;filter:saturate(.77)}.polaroid span{display:block;font:1.05rem var(--script2);text-align:center;color:#66684f;padding-top:5px}.polaroid-one{top:17%;right:1%;transform:rotate(8deg)}.polaroid-two{bottom:15%;left:1%;transform:rotate(-10deg)}.date-medallion{position:absolute;right:5%;bottom:14%;z-index:4;width:105px;height:105px;border-radius:50%;background:#6b734b;color:#f4f0e4;outline:1px solid #e3dbc3;outline-offset:-6px;box-shadow:0 6px 18px #31372150;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(7deg)}.date-medallion span{font-size:.4rem;letter-spacing:.16em;text-transform:uppercase}.date-medallion strong{font:400 2.2rem/.8 var(--serif);margin:4px 0}.date-medallion small{text-align:center;font-size:.37rem;line-height:1.2;letter-spacing:.14em}.scroll-cue{position:absolute;bottom:84px;left:8%;z-index:2;display:flex;align-items:center;gap:17px;color:#69704e;font-size:.54rem;letter-spacing:.17em;text-transform:uppercase}.scroll-cue i{font-style:normal;font-size:1.1rem}.hero-side-note{position:absolute;right:22px;top:46%;writing-mode:vertical-rl;transform:translateY(-50%);font:italic .86rem var(--serif);color:#7b8067;letter-spacing:.1em}.hero-side-note i{color:#ae9564}.paper-section{position:relative;background:var(--paper);background-image:radial-gradient(ellipse at 80% 18%,#f0ede3 0,transparent 34%),radial-gradient(ellipse at 10% 90%,#f0ede3 0,transparent 28%)}.welcome{min-height:720px;display:grid;grid-template-columns:.7fr 1.25fr .9fr;grid-template-rows:1fr auto;gap:45px 5vw;padding:125px clamp(26px,9vw,140px) 55px;overflow:hidden}.welcome-label{display:flex;flex-direction:column;gap:17px;color:#7a7f64}.welcome-label .eyebrow{color:#8a7953}.mini-rule{width:35px;height:1px;background:#b39c6a}.welcome-label>span:last-child{font-size:.52rem;letter-spacing:.18em;text-transform:uppercase}.welcome-copy{align-self:center;max-width:620px}.welcome-copy h2{font:400 clamp(3.2rem,5.2vw,5.5rem)/.86 var(--serif);letter-spacing:-.04em;color:#4b5337;margin:0 0 28px}.welcome-copy h2 em{font:400 .82em var(--script);color:#818764}.welcome-copy p{font:400 1.12rem/1.68 var(--serif);color:#6d705f;max-width:580px}.script-signoff{display:block;color:#898a6b;font:2.1rem var(--script);margin-top:24px}.story-photo-stack{align-self:center;position:relative;transform:rotate(3deg);background:#fcfaf6;padding:12px 12px 39px;box-shadow:0 14px 30px #34352330}.story-photo-stack:before{content:"";position:absolute;inset:-7px;border:1px solid #c7b991;z-index:-1}.photo-mat{overflow:hidden;height:250px}.photo-mat img{width:100%;height:100%;object-fit:cover;filter:saturate(.77)}.stack-caption{position:absolute;bottom:12px;left:12px;font:1.2rem var(--script2);color:#6b6d53}.stack-number{position:absolute;right:-12px;top:-17px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#6b734b;color:#f5f0de;font:1rem var(--serif);box-shadow:0 3px 8px #3435234d}.paper-flower{position:absolute;right:7%;top:4%;font-size:6rem;color:#ddd6c3;opacity:.62;transform:rotate(16deg)}.welcome-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:30px;padding-top:25px;border-top:1px solid #86886d38;color:#74795e;font-size:.53rem;letter-spacing:.17em;text-transform:uppercase}.welcome-bottom i{font-style:normal;color:#a88f5d;font-size:1rem}.milestone-section{position:relative;background:#68714b;color:#f6f3e8;padding:100px clamp(25px,9vw,140px) 115px;overflow:hidden}.milestone-section:before{content:"";position:absolute;inset:18px;border:1px solid rgba(242,236,217,.19);pointer-events:none}.milestone-section:after{content:"✿";position:absolute;bottom:-75px;right:7%;font-size:18rem;color:#f3efdf;opacity:.05;transform:rotate(-17deg)}.milestone-heading{text-align:center;position:relative;z-index:1}.milestone-heading .eyebrow{color:#ddd9c7}.milestone-heading h2{font:400 clamp(3.5rem,6vw,6rem)/.8 var(--serif);margin:18px 0 66px}.milestone-heading h2 em{font:400 .86em var(--script);color:#ddd2b4}.milestone-line{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,1fr);max-width:1180px;margin:0 auto}.milestone-line:before{content:"";position:absolute;left:0;right:0;top:22px;height:1px;background:#e7e2d280}.milestone-line article{position:relative;padding:58px 18px 0 0}.milestone-dot{position:absolute;left:0;top:0;width:44px;height:44px;border:1px solid #e1dac3;border-radius:50%;background:#68714b;display:grid;place-items:center;font:.64rem var(--serif);color:#e8ddbf}.milestone-line article:nth-child(even) .milestone-dot{background:#dcd2b8;color:#5b6242;border-color:#e7ddc6}.milestone-line time{font-size:.48rem;letter-spacing:.16em;text-transform:uppercase;color:#ddd8c4}.milestone-line h3{font:500 1.65rem var(--serif);margin:8px 0 1px;color:#fffdf3}.milestone-line p{font:italic 1rem var(--serif);margin:0;color:#e4ddc9}.milestone-flourish{position:absolute;right:8%;bottom:25px;font:2rem var(--script);color:#d9cfb0;opacity:.8}.milestone-flourish i{color:#b7a47a}.venue{position:relative;display:grid;grid-template-columns:1.2fr .8fr;min-height:640px;background:#f2efe5}.venue-image{position:relative;min-height:640px;overflow:hidden}.venue-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 70%,#f2efe5 100%)}.venue-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(.77)}.photo-credit{position:absolute;bottom:32px;left:9%;z-index:1;padding:9px 13px;background:#f7f4e7dc;color:#65694f;font:italic 1rem var(--serif)}.venue-panel{align-self:center;max-width:440px;padding:65px 8vw 65px 0;color:#4f573a}.venue-mark{font-size:1.6rem;color:#a68e5c}.venue-panel .eyebrow{margin-top:24px;color:#8a7953}.venue-panel h2{font:400 clamp(3.8rem,6vw,6rem)/.76 var(--serif);margin:18px 0;color:#4a5337;letter-spacing:-.04em}.venue-panel h2 em{font:400 .9em var(--script);color:#828766}.venue-city{font:500 .67rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#787b66}.venue-rule{width:40px;height:1px;background:#aa9363;margin:25px 0}.venue-panel>p:not(.eyebrow):not(.venue-city){font:1.17rem/1.5 var(--serif);color:#747765;max-width:310px}.direction-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid #98916d;padding:10px 0;color:#596044;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase}.direction-link span{font-size:1rem;color:#aa8d5a}.venue-note{position:absolute;left:8%;top:42px;width:95px;height:95px;background:#f5f0e3;border-radius:50%;box-shadow:0 5px 19px #3335;display:flex;justify-content:center;align-items:center;flex-direction:column;transform:rotate(-8deg);color:#686f4c;outline:1px solid #b29b6b;outline-offset:-6px}.venue-note span{font:400 2rem/.8 var(--serif)}.venue-note small{text-align:center;font-size:.42rem;letter-spacing:.13em;margin-top:7px}.day-section{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;padding:116px clamp(26px,9vw,140px) 118px;background:#68714b;color:#f8f4e8;overflow:hidden}.day-section:before{content:"";position:absolute;top:19px;bottom:19px;left:19px;right:19px;border:1px solid #f1ebd52c;pointer-events:none}.day-heading{position:relative;z-index:1;align-self:start;padding-top:20px}.day-heading .eyebrow{color:#e1dac6}.day-heading h2{font:400 clamp(3.6rem,6vw,6.2rem)/.78 var(--serif);margin:25px 0;color:#fbf8ed}.day-heading h2 em{font:400 .88em var(--script);color:#ddd2b4}.day-heading>p:last-child{font:italic 1.2rem var(--serif);color:#ded8c7}.schedule-wrap{position:relative;z-index:1;background:#f6f3e9;color:#485032;padding:30px 42px 0;box-shadow:0 16px 35px #272d1c30}.schedule-top,.schedule-bottom{display:flex;justify-content:space-between;align-items:center;padding:0 0 17px;border-bottom:1px solid #72795737;font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;color:#81836d}.schedule{position:relative}.schedule:before{content:"";position:absolute;left:18px;top:15px;bottom:15px;width:1px;background:#b4a174}.schedule article{position:relative;display:grid;grid-template-columns:40px 80px 1fr;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid #70785729}.time-dot{z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f6f3e9;color:#aa9162;font-size:.85rem}.schedule time{font:500 1.16rem var(--serif);color:#4a5336}.schedule time small{font:.52rem var(--sans);letter-spacing:.14em}.schedule h3{font:500 1.42rem var(--serif);margin:0;color:#495135}.schedule p{font:italic .95rem var(--serif);color:#81836f;margin:2px 0 0}.schedule-bottom{border:0;padding:20px 0 21px;gap:15px;flex-wrap:wrap}.schedule-bottom strong{font:500 1.1rem var(--serif);color:#545c3d;letter-spacing:0;text-transform:none}.schedule-bottom strong i{color:#aa9162;font-style:normal}.dress-swatches{display:flex;gap:6px}.dress-swatches i{width:14px;height:14px;border-radius:50%;background:#f6f4ed;border:1px solid #c9c3b3}.dress-swatches i:nth-child(2){background:#c2c7b5}.dress-swatches i:nth-child(3){background:#8b9577}.dress-swatches i:nth-child(4){background:#6b734b}.details-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;padding:120px clamp(26px,9vw,140px);background:var(--paper);background-image:radial-gradient(ellipse at 0% 100%,#ece8da 0,transparent 32%)}.details-title{position:relative;max-width:450px}.details-title .eyebrow{color:#8b7953}.details-title h2{font:400 clamp(3.4rem,5.6vw,5.8rem)/.8 var(--serif);letter-spacing:-.045em;color:#4b5337;margin:23px 0}.details-title h2 em{font:400 .85em var(--script);color:#808565}.details-title>p{font:1.15rem/1.55 var(--serif);color:#777866;max-width:330px}.lace-corner{position:absolute;bottom:-70px;left:0;color:#ddd6c1;font-size:5rem}.faq-list{border-top:1px solid #74795a50}.faq-list details{border-bottom:1px solid #74795a50}.faq-list summary{list-style:none;cursor:pointer;position:relative;padding:19px 42px 19px 0;font:500 1.42rem var(--serif);color:#4c5439}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{position:absolute;right:4px;top:18px;color:#9a8359;font:400 1.15rem var(--sans);transition:transform .25s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{max-width:590px;margin:0;padding:0 30px 20px 0;color:#747765;font:1.05rem/1.6 var(--serif)}.countdown-section{position:relative;text-align:center;overflow:hidden;padding:94px 24px 88px;background:#e8e8dc;color:#4d5539}.countdown-section:before,.countdown-section:after{content:"✿";position:absolute;color:#d0ceb8;font-size:10rem;opacity:.35}.countdown-section:before{left:-30px;top:-33px;transform:rotate(-24deg)}.countdown-section:after{right:-34px;bottom:-38px;transform:rotate(25deg)}.countdown-flower{position:absolute;top:20px;left:50%;transform:translateX(-50%);font-size:1.6rem;color:#a58c5d}.countdown-section .eyebrow{color:#828567}.countdown-section h2{font:400 clamp(3.2rem,5.4vw,5.2rem) var(--serif);margin:14px 0 26px}.countdown-section h2 em{font:400 .95em var(--script);color:#858a67}.count-grid{display:flex;justify-content:center;align-items:center;gap:clamp(12px,3vw,40px)}.count-grid>div{min-width:80px}.count-grid strong{font:400 clamp(2.7rem,5vw,4.5rem)/.9 var(--serif);display:block;color:#626b46}.count-grid span{display:block;margin-top:8px;font-size:.48rem;letter-spacing:.2em;text-transform:uppercase;color:#7a7d67}.count-grid>i{font:400 2rem var(--serif);color:#b39a67;font-style:normal}.countdown-note{font:italic 1.15rem var(--serif);color:#8b8b73;margin:23px 0 0}.rsvp-section{position:relative;min-height:600px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7vw;padding:85px clamp(28px,11vw,170px);background:#e9e7db;overflow:hidden}.rsvp-section:before{content:"";position:absolute;inset:18px;border:1px solid #777b5c42;pointer-events:none}.rsvp-art{position:relative;justify-self:center;width:min(100%,430px);transform:rotate(-5deg)}.rsvp-art>img{display:block;width:100%;height:460px;object-fit:cover;object-position:center;border:12px solid #f7f5ec;box-shadow:0 16px 32px #33362538}.rsvp-seal{position:absolute;right:6%;bottom:7%;width:92px;height:92px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#b59a68;color:#f9f3e5;box-shadow:0 5px 9px #25291e50;font:1.45rem/.74 var(--script);outline:1px solid #eadcc2;outline-offset:-6px}.rsvp-seal i{font-size:.65em}.rsvp-copy{position:relative;max-width:440px;color:#4d5538}.rsvp-copy .eyebrow{color:#8d7950}.rsvp-copy h2{font:400 clamp(3.6rem,6vw,6.2rem)/.77 var(--serif);letter-spacing:-.04em;margin:20px 0;color:#4b5337}.rsvp-copy h2 em{font:400 .9em var(--script);color:#828565}.rsvp-copy>p{font:1.15rem/1.6 var(--serif);color:#767866}.rsvp-deadline{display:block;margin:24px 0 22px;padding-top:15px;border-top:1px solid #73785847;font:.54rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#85856e}.rsvp-deadline strong{display:block;margin-top:8px;color:#4c5439;font:500 1.42rem var(--serif);letter-spacing:0;text-transform:none}.rsvp-button{display:inline-flex;align-items:center;gap:50px;padding:16px 18px;background:#6b734b;color:#f7f2e6;font-size:.57rem;letter-spacing:.18em;text-transform:uppercase;box-shadow:0 5px 12px #3039252b;transition:transform .2s,background .2s}.rsvp-button:hover{transform:translateY(-2px);background:#545d39}.rsvp-button span{font-size:1rem}.rsvp-copy>small{display:block;margin-top:12px;font-size:.56rem;color:#878773}footer{position:relative;text-align:center;padding:68px 25px 38px;background:#596242;color:#f5f1e4;overflow:hidden}footer:before{content:"";position:absolute;inset:13px;border:1px solid #eee8d725;pointer-events:none}.footer-ornament{font-size:1.25rem;color:#ded4b9}.footer-ornament span{font-size:.8em;color:#bda372;padding:0 12px}.footer-script{font:2.2rem var(--script);margin:14px 0 0;color:#e2d9c4}footer h2{font:400 clamp(2.4rem,4vw,3.6rem) var(--script);margin:0;color:#fff9e9}.footer h2 i{font-size:.7em;color:#d0bb8c}.footer-date{font-size:.53rem;letter-spacing:.2em;text-transform:uppercase;color:#e0dbc9}.footer-date b{color:#d0b985;margin:0 8px}.back-top{display:inline-block;margin-top:24px;padding-bottom:5px;border-bottom:1px solid #c4b58d;color:#eee8d7;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase}
@keyframes rise-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes art-in{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:1000px){.opening{padding:5vw 6vw;grid-template-columns:.9fr 1.1fr}.opening h1{font-size:clamp(4rem,8vw,6.2rem)}.hero{padding-left:7vw;padding-right:7vw;gap:2vw}.hero-stamp{left:4%;top:53px;width:95px;height:95px}.polaroid{width:108px}.date-medallion{width:90px;height:90px}.welcome{grid-template-columns:.55fr 1.3fr .9fr;padding-left:7vw;padding-right:7vw;gap:35px 4vw}.photo-mat{height:205px}.venue{min-height:560px}.venue-image{min-height:560px}.venue-panel{padding-right:5vw}.day-section,.details-grid{padding-left:7vw;padding-right:7vw;gap:5vw}.schedule-wrap{padding:28px 25px 0}.schedule article{grid-template-columns:36px 68px 1fr;gap:10px}.rsvp-section{padding-left:8vw;padding-right:8vw;gap:5vw}}
@media(max-width:700px){html{scroll-padding-top:68px}.opening{display:flex;flex-direction:column;justify-content:flex-start;padding:56px 21px 70px;min-height:100svh}.opening:before{inset:8px}.opening:after{inset:15px}.opening-copy{align-self:flex-start;width:100%;max-width:none;text-align:center;order:0}.opening-kicker{justify-content:center;font-size:.48rem}.opening h1{font-size:clamp(3.4rem,15vw,5.1rem);margin:22px 0 14px;line-height:.75}.opening-date{font-size:.76rem}.opening-place{font-size:.5rem;margin:10px 0 18px}.open-button{margin:auto;padding:7px 12px 7px 7px;font-size:.48rem;gap:10px}.seal-icon{width:34px;height:34px}.opening-art{width:min(91vw,420px);min-height:0;aspect-ratio:1/1.05;order:1;margin-top:8px}.cover-card-copy{top:53%;width:42%}.cover-card-copy small{font-size:.38rem}.cover-card-copy strong{font-size:clamp(1.5rem,8vw,2rem);margin:7px 0}.cover-card-copy>span{font-size:.36rem}.vinyl-sticker{width:48px;height:48px;left:17%;bottom:14%}.vinyl-sticker:before{width:14px;height:14px}.cover-caption{font-size:1rem;right:3%;bottom:7%}.opening-footer{left:22px;right:22px;bottom:20px;font-size:.4rem;letter-spacing:.1em}.skip-button{right:23px;bottom:52px;font-size:.48rem}.header{height:66px;grid-template-columns:auto 1fr auto;padding:0 16px}.wordmark{font-size:1.18rem}.nav{justify-content:center;gap:14px}.nav a{font-size:.42rem;letter-spacing:.08em;white-space:nowrap}.header-cta{font-size:.43rem;letter-spacing:.08em;padding:9px 8px;margin-left:9px}.header-cta span{margin-left:4px}.hero{display:flex;flex-direction:column;min-height:0;padding:52px 17px 100px;gap:0}.hero:before{inset:10px}.hero-stamp{top:30px;left:24px;width:74px;height:74px;transform:rotate(-11deg)}.hero-stamp span,.hero-stamp small{font-size:.35rem}.hero-stamp strong{font-size:1.2rem}.hero-heading{text-align:center;padding:47px 5px 0}.hero-heading .eyebrow{font-size:.49rem;letter-spacing:.16em}.hero-heading h2{font-size:clamp(3.5rem,15vw,5rem);margin:20px 0 12px;line-height:.77}.hero-sub{font-size:1rem;margin:0 auto;max-width:290px}.hero-collage{width:min(100%,440px);margin-top:-2px}.hero-card-type{top:54%;width:39%}.hero-card-type>span{font-size:.34rem}.hero-card-type strong{font-size:clamp(1.55rem,7.7vw,2.3rem);margin:7px 0}.hero-card-type small{font-size:.32rem}.polaroid{width:77px;padding:5px 5px 12px}.polaroid span{font-size:.72rem;padding-top:3px}.polaroid-one{top:18%;right:0}.polaroid-two{bottom:14%;left:0}.date-medallion{width:70px;height:70px;right:3%;bottom:13%}.date-medallion span,.date-medallion small{font-size:.3rem}.date-medallion strong{font-size:1.6rem}.scroll-cue{left:50%;bottom:61px;transform:translateX(-50%);font-size:.43rem;gap:9px;white-space:nowrap}.hero-side-note{display:none}.hero:after{height:43px}.welcome{display:flex;flex-direction:column;min-height:0;padding:82px 25px 34px;gap:25px}.welcome-label{flex-direction:row;align-items:center;gap:10px}.welcome-label .eyebrow{font-size:.48rem}.welcome-label>span:last-child{font-size:.41rem;margin-left:auto}.mini-rule{width:22px}.welcome-copy h2{font-size:clamp(2.85rem,12vw,4rem);margin-bottom:18px}.welcome-copy p{font-size:1.03rem;margin:10px 0;line-height:1.58}.script-signoff{font-size:1.7rem}.story-photo-stack{width:min(82%,330px);align-self:center;margin:8px 0 10px}.photo-mat{height:170px}.welcome-bottom{gap:12px;padding-top:18px;font-size:.42rem;letter-spacing:.1em}.paper-flower{font-size:4rem;right:5%;top:3%}.milestone-section{padding:76px 28px 88px}.milestone-section:before{inset:10px}.milestone-heading .eyebrow{font-size:.45rem;letter-spacing:.13em}.milestone-heading h2{font-size:3.7rem;margin:15px 0 35px}.milestone-line{grid-template-columns:1fr 1fr;gap:2px 20px}.milestone-line:before{left:20px;right:auto;top:0;bottom:0;width:1px;height:auto}.milestone-line article{padding:0 0 27px 57px;min-height:106px}.milestone-dot{width:40px;height:40px;left:0;top:0;font-size:.56rem}.milestone-line time{font-size:.42rem}.milestone-line h3{font-size:1.4rem;margin:4px 0 0}.milestone-line p{font-size:.88rem}.milestone-flourish{right:25px;font-size:1.4rem}.venue{display:flex;flex-direction:column;min-height:0}.venue-image{min-height:300px;height:68vw}.venue-image:after{inset:auto 0 0;height:28%;background:linear-gradient(0deg,#f2efe5,transparent)}.venue-panel{padding:4px 28px 46px;text-align:center;margin:auto}.venue-mark{font-size:1.25rem}.venue-panel .eyebrow{font-size:.47rem;margin-top:12px}.venue-panel h2{font-size:4.2rem;margin:15px 0}.venue-city{font-size:.53rem}.venue-rule{margin:20px auto}.venue-panel>p:not(.eyebrow):not(.venue-city){font-size:1.05rem;margin:0 auto 15px}.venue-note{width:72px;height:72px;left:20px;top:19px}.venue-note span{font-size:1.5rem}.venue-note small{font-size:.33rem;margin-top:4px}.photo-credit{left:20px;bottom:16px;font-size:.8rem;padding:7px 9px}.day-section{display:flex;flex-direction:column;padding:76px 22px 78px;gap:27px}.day-section:before{inset:9px}.day-heading{text-align:center;padding:0}.day-heading .eyebrow{font-size:.48rem}.day-heading h2{font-size:3.85rem;margin:15px 0}.day-heading>p:last-child{font-size:1rem;margin:0}.schedule-wrap{padding:20px 16px 0}.schedule-top{font-size:.38rem;letter-spacing:.12em;padding-bottom:12px}.schedule article{grid-template-columns:30px 61px 1fr;gap:8px;padding:14px 0}.schedule:before{left:14px;top:12px;bottom:12px}.time-dot{width:29px;height:29px;font-size:.7rem}.schedule time{font-size:1rem}.schedule time small{font-size:.43rem}.schedule h3{font-size:1.13rem}.schedule p{font-size:.82rem}.schedule-bottom{padding:15px 0;gap:7px}.schedule-bottom>span{font-size:.42rem}.schedule-bottom strong{font-size:.93rem}.dress-swatches{gap:4px}.dress-swatches i{width:11px;height:11px}.details-grid{display:flex;flex-direction:column;padding:78px 25px 82px;gap:30px}.details-title h2{font-size:3.9rem;margin:16px 0}.details-title>p{font-size:1rem}.lace-corner{font-size:3.2rem;bottom:-33px;right:10px;left:auto}.faq-list summary{font-size:1.2rem;padding:16px 28px 16px 0}.faq-list summary span{top:15px}.faq-list details p{font-size:.98rem;padding-right:15px}.countdown-section{padding:78px 15px 68px}.countdown-section h2{font-size:3.45rem;margin:11px 0 22px}.countdown-section .eyebrow{font-size:.45rem}.count-grid{gap:8px}.count-grid>div{min-width:52px}.count-grid strong{font-size:2.35rem}.count-grid span{font-size:.39rem;letter-spacing:.13em}.count-grid>i{font-size:1.2rem}.countdown-note{font-size:.98rem}.countdown-section:before,.countdown-section:after{font-size:5rem}.rsvp-section{display:flex;flex-direction:column;padding:65px 26px 63px;gap:35px;min-height:0;text-align:center}.rsvp-section:before{inset:9px}.rsvp-art{width:min(77%,300px)}.rsvp-art>img{height:300px;border-width:8px}.rsvp-seal{width:66px;height:66px;font-size:1.1rem}.rsvp-copy .eyebrow{font-size:.46rem}.rsvp-copy h2{font-size:3.8rem;margin:17px 0}.rsvp-copy>p{font-size:1rem}.rsvp-deadline{font-size:.46rem}.rsvp-deadline strong{font-size:1.27rem}.rsvp-button{padding:14px 15px;font-size:.5rem;gap:38px}.rsvp-copy>small{font-size:.5rem}footer{padding:50px 20px 32px}.footer-script{font-size:1.8rem}footer h2{font-size:2.7rem}.footer-date{font-size:.43rem}.back-top{font-size:.44rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

:focus-visible{outline:2px solid #b49b68!important;outline-offset:4px!important}
.rsvp-section{grid-template-columns:.65fr 1.35fr;align-items:center;gap:35px 7vw;padding-top:96px;padding-bottom:96px}.rsvp-form{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:22px 24px;position:relative;z-index:1;padding:34px clamp(20px,4vw,58px);background:rgba(250,248,240,.82);border:1px solid #a99a734d;box-shadow:0 12px 30px #34372316}.field-label,.attendance-field legend,.guest-field legend{display:block;color:#555d3d;font:500 1rem var(--serif);margin:0 0 8px}.field-label>span,.attendance-field legend span{color:#ae8f5f}.field-label input,.field-label select,.field-label textarea{display:block;width:100%;margin-top:9px;border:1px solid #82866855;background:#fbfaf5;padding:13px 14px;color:#393e2c;border-radius:0;font:400 .98rem var(--serif);outline:none}.field-label input:focus,.field-label select:focus,.field-label textarea:focus{border-color:#777f55;box-shadow:0 0 0 2px #7a825331}.field-label textarea{resize:vertical;min-height:58px}.field-label input::placeholder,.field-label textarea::placeholder{color:#9b9b86}.attendance-field,.guest-field{margin:0;padding:0;border:0;display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}.attendance-field legend,.guest-field legend{width:100%;margin-bottom:3px}.attendance-field label,.guest-field label{position:relative;cursor:pointer}.attendance-field input,.guest-field input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.attendance-field label span,.guest-field label span{display:block;padding:10px 14px;border:1px solid #85896a66;background:#fbfaf5;color:#69704f;font:500 .53rem var(--sans);letter-spacing:.08em;text-transform:uppercase;transition:background .2s,color .2s,border-color .2s}.attendance-field input:checked+span,.guest-field input:checked+span{background:#69724b;border-color:#69724b;color:#fffdf3}.attendance-field input:focus-visible+span,.guest-field input:focus-visible+span{outline:2px solid #b49b68;outline-offset:3px}.guest-name-field input:disabled{background:#eeece2;color:#9c9a89}.form-submit{grid-column:1/-1;display:flex;align-items:center;gap:25px;padding-top:5px}.form-submit .rsvp-button{border:0;cursor:pointer;font-family:var(--sans)}.form-submit .rsvp-button:disabled{opacity:.62;cursor:wait;transform:none}.rsvp-status{margin:0;color:#777b61;font:italic 1rem var(--serif)}.rsvp-status.is-success{color:#4e6843}.rsvp-status.is-error{color:#9a574b}.response-frame{position:absolute;width:1px;height:1px;left:-9999px;border:0}.honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}.rsvp-copy .rsvp-button,.rsvp-copy>small{display:none}
@media(max-width:700px){.rsvp-section{gap:28px;padding:64px 25px 62px}.rsvp-form{display:flex;flex-direction:column;align-items:stretch;gap:18px;padding:24px 17px}.field-label,.attendance-field legend,.guest-field legend{font-size:.98rem}.field-label input,.field-label select,.field-label textarea{font-size:1rem;padding:12px}.attendance-field label span,.guest-field label span{font-size:.46rem;padding:10px 11px}.form-submit{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.rsvp-status{font-size:.92rem}}
.form-submit .rsvp-button:disabled{cursor:not-allowed;opacity:.55;filter:saturate(.55)}
.form-submit .rsvp-button:disabled{cursor:not-allowed;opacity:.55;filter:saturate(.55)}
.gallery-section{position:relative;overflow:hidden;padding:94px 6vw 102px;background:#edeadd}.gallery-section:before{content:'✳';position:absolute;top:42px;right:7%;color:#a9a27c;font-size:5rem;opacity:.16}.gallery-heading{position:relative;z-index:1;max-width:620px;margin:0 auto 39px;text-align:center}.gallery-heading .eyebrow{color:#767c58}.gallery-heading h2{margin:17px 0 12px;color:#373d2c;font:400 clamp(3.2rem,6.5vw,5.2rem)/.88 var(--serif)}.gallery-heading h2 em{color:#71794f;font-family:var(--script);font-weight:400}.gallery-heading p{margin:0;color:#73755e;font:italic 1.1rem var(--serif)}.gallery-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:clamp(12px,2vw,24px);max-width:1240px;margin:0 auto}.gallery-card{margin:0;padding:10px 10px 0;background:#fcfaf4;border:1px solid #a99a734d;box-shadow:0 14px 28px #34372316;transition:transform .35s ease,box-shadow .35s ease}.gallery-card:nth-child(1){transform:rotate(-2deg)}.gallery-card:nth-child(2){transform:translateY(19px) rotate(1.5deg)}.gallery-card:nth-child(3){transform:translateY(-8px) rotate(-1deg)}.gallery-card:nth-child(4){transform:translateY(13px) rotate(2deg)}.gallery-card:nth-child(5){transform:translateY(-6px) rotate(1deg)}.gallery-card:nth-child(6){transform:translateY(12px) rotate(-1.5deg)}.gallery-card:nth-child(7){transform:translateY(-4px) rotate(1deg)}.gallery-card:hover{z-index:2;transform:translateY(-5px) rotate(0) scale(1.025);box-shadow:0 20px 40px #34372324}.gallery-card a{display:block;overflow:hidden;background:#dedbc9}.gallery-card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;transition:transform .6s ease}.gallery-card:nth-child(4) img{object-position:center 43%}.gallery-card:hover img{transform:scale(1.04)}.gallery-card figcaption{display:flex;align-items:center;gap:9px;min-height:47px;padding:9px 3px 10px;color:#555d3d;font:500 .78rem var(--sans);letter-spacing:.035em}.gallery-card figcaption span{color:#a48e62;font:italic .86rem var(--serif)}
@media(max-width:700px){.gallery-section{padding:71px 22px 77px}.gallery-section:before{top:26px;right:8px;font-size:3.6rem}.gallery-heading{margin-bottom:24px}.gallery-heading .eyebrow{font-size:.47rem}.gallery-heading h2{font-size:3.45rem;margin:14px 0 9px}.gallery-heading p{font-size:1rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 12px}.gallery-card{padding:7px 7px 0}.gallery-card:nth-child(1){transform:rotate(-1.4deg)}.gallery-card:nth-child(2){transform:translateY(8px) rotate(1deg)}.gallery-card:nth-child(3){transform:translateY(-3px) rotate(-.8deg)}.gallery-card:nth-child(4){transform:translateY(6px) rotate(1.4deg)}.gallery-card:nth-child(5){transform:translateY(-2px) rotate(-.8deg)}.gallery-card:nth-child(6){transform:translateY(5px) rotate(1deg)}.gallery-card:nth-child(7){transform:translateY(-3px) rotate(-.6deg)}.gallery-card img{height:auto;aspect-ratio:3/4}.gallery-card figcaption{min-height:40px;gap:6px;padding:7px 2px 8px;font-size:.58rem}.gallery-card figcaption span{font-size:.74rem}}
@media(max-width:700px){.nav{gap:7px}.nav a{font-size:.37rem;letter-spacing:.055em}}
.event-info-section{position:relative;padding:103px clamp(22px,7vw,100px) 112px;background:#f6f4ed;color:#303925}.event-info-section:before{content:'✿';position:absolute;left:4%;top:42px;color:#8e956c;opacity:.15;font-size:5rem}.event-info-heading{max-width:680px;margin:0 auto 39px;text-align:center}.event-info-heading .eyebrow{color:#8a7953}.event-info-heading h2{font:400 clamp(3.1rem,6vw,5.1rem)/.88 var(--serif);margin:16px 0;color:#37402e}.event-info-heading h2 em{font:400 .98em var(--script);color:#757d50}.event-info-heading>p{margin:0;color:#71745d;font:italic 1.1rem var(--serif)}.event-info-heading>p span{padding:0 8px;color:#ae9464}.event-info-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:clamp(20px,4vw,52px);align-items:stretch;max-width:1190px;margin:0 auto}.calendar-card,.map-card{position:relative;background:#fbfaf5;border:1px solid #a99a734d;box-shadow:0 14px 36px #34372314}.calendar-card{padding:clamp(22px,3.2vw,40px);overflow:hidden}.calendar-card:after{content:'M  ✳  A';position:absolute;right:18px;top:22px;color:#c2b594;font:italic 1rem var(--serif);letter-spacing:.12em}.calendar-card-head{display:grid;grid-template-columns:.7fr 1fr;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid #b9b39766}.calendar-overline{font:600 .57rem/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#8a7953}.calendar-date{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.calendar-date span{color:#767b5c;font:italic 1rem var(--serif)}.calendar-date strong{font:400 3.4rem/.9 var(--serif);color:#4d5839}.calendar-date small{color:#777961;font:500 .63rem var(--sans);letter-spacing:.08em;text-transform:uppercase}.month-label{display:flex;justify-content:space-between;margin:22px 0 10px;color:#4f583c;font:600 .78rem var(--sans);letter-spacing:.15em;text-transform:uppercase}.month-label span:last-child{color:#8b8b75}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px 3px;text-align:center}.calendar-grid>span{display:grid;place-items:center;min-height:31px;color:#596044;font:400 .87rem var(--serif)}.calendar-grid .weekday{min-height:24px;color:#a18c60;font:600 .56rem var(--sans);letter-spacing:.08em}.calendar-grid .chosen-day{width:30px;height:30px;min-height:30px;justify-self:center;border-radius:50%;background:#6b734b;color:#fffdf3;box-shadow:0 2px 6px #30392530}.calendar-time{display:flex;align-items:center;gap:8px;margin:20px 0 18px;padding-top:15px;border-top:1px solid #b9b39766;color:#6e7354;font:italic 1rem var(--serif)}.calendar-time>span{color:#ad9566}.calendar-time strong{color:#4b5537;font-style:normal;font-weight:600}.calendar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.calendar-google,.map-directions{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:13px 16px;background:#69724b;color:#fffdf3;font:600 .58rem var(--sans);letter-spacing:.11em;text-transform:uppercase;transition:background .2s,transform .2s}.calendar-google:hover,.map-directions:hover{background:#4d5836;transform:translateY(-2px)}.calendar-google span,.map-directions span{font-size:.9rem}.calendar-download{color:#777b61;font:500 .58rem var(--sans);letter-spacing:.06em;text-decoration:underline;text-underline-offset:4px}.map-card{display:flex;flex-direction:column;overflow:hidden}.map-card-head{position:relative;padding:26px 30px 18px;background:#f2efe5}.map-card-head:after{content:'✳';position:absolute;right:27px;top:27px;color:#a68e5c;font-size:1.5rem}.map-card-head .eyebrow{color:#8a7953}.map-card-head h3{margin:8px 0 7px;color:#475038;font:400 2.7rem/.86 var(--serif)}.map-card-head h3 em{color:#818663;font:400 .9em var(--script)}.map-card-head p{margin:10px 0 0;color:#6b7057;font:400 .93rem/1.55 var(--sans);letter-spacing:.02em}.map-frame{position:relative;flex:1;min-height:310px;background:#dedbcf}.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;min-height:310px;border:0;filter:saturate(.78)}.map-directions{align-self:flex-start;margin:16px 22px 21px}.venue-address{margin:10px 0 0;color:#72745d;font:500 .66rem/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase}
@media(max-width:760px){.event-info-section{padding:76px 20px 82px}.event-info-section:before{top:20px;left:7px;font-size:3.7rem}.event-info-heading{margin-bottom:25px}.event-info-heading .eyebrow{font-size:.47rem}.event-info-heading h2{font-size:3.55rem;margin:14px 0}.event-info-heading>p{font-size:.99rem}.event-info-grid{grid-template-columns:1fr;gap:18px}.calendar-card{padding:24px 21px}.calendar-card-head{grid-template-columns:.72fr 1.2fr}.calendar-date{gap:6px}.calendar-date strong{font-size:3rem}.calendar-date span{font-size:.9rem}.calendar-date small{font-size:.54rem}.calendar-grid{gap:4px 2px}.calendar-grid>span{min-height:29px;font-size:.83rem}.calendar-grid .chosen-day{width:29px;height:29px;min-height:29px}.calendar-time{font-size:.94rem}.calendar-actions{gap:12px}.calendar-google{padding:12px 13px;font-size:.53rem;gap:12px}.calendar-download{font-size:.55rem}.map-card-head{padding:23px 22px 16px}.map-card-head h3{font-size:2.4rem}.map-frame,.map-frame iframe{min-height:280px}.map-directions{margin:14px 17px 18px;font-size:.5rem}}
.opening .open-button{position:relative;display:flex;align-items:center;gap:15px;width:min(100%,360px);min-height:72px;margin-top:4px;padding:10px 13px 10px 10px;overflow:hidden;border:1px solid #d7bd86;border-radius:999px;background:linear-gradient(145deg,#fffdf5 0%,#f0e8d5 52%,#e5dbc1 100%);color:#485134;box-shadow:0 14px 30px #141a0e4d,inset 0 1px 0 #fff;cursor:pointer;text-align:left;font-size:inherit;letter-spacing:normal;text-transform:none;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.opening .open-button:before{content:"";position:absolute;inset:3px;border:1px solid #a38c5a55;border-radius:inherit;pointer-events:none}.opening .open-button:after{content:"";position:absolute;top:-100%;left:-40%;width:28%;height:300%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:rotate(25deg);transition:left .65s ease;pointer-events:none}.opening .open-button:hover{transform:translateY(-4px);border-color:#efdaa9;box-shadow:0 20px 38px #141a0e66,inset 0 1px 0 #fff}.opening .open-button:hover:after{left:120%}.opening .open-button:focus-visible{outline:3px solid #f4e5bf;outline-offset:5px}.opening .seal-icon{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 50px;width:50px;height:50px;border:1px solid #d6bd82;border-radius:50%;background:radial-gradient(circle at 35% 25%,#7c8558,#495235 72%);color:#f8f3e4;box-shadow:0 4px 9px #30392543,inset 0 1px 4px #ffffff35;font:500 .71rem/.74 var(--script);letter-spacing:0;transform:rotate(-7deg)}.opening .seal-icon span{color:#e1c98f;font-size:.8em}.open-button-copy{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;gap:5px;line-height:1.05}.open-button-copy small{color:#8b7950;font:600 .48rem var(--sans);letter-spacing:.15em;text-transform:uppercase}.open-button-copy strong{color:#435032;font:500 1.15rem var(--serif);letter-spacing:.015em}.open-button-arrow{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #7a815650;border-radius:50%;background:#fff9;color:#596342;font:400 1rem var(--sans);transition:transform .3s,background .3s,color .3s}.opening .open-button:hover .open-button-arrow{transform:rotate(45deg);background:#69724b;color:#fffdf3}
@media(max-width:700px){.opening .open-button{width:min(100%,330px);min-height:64px;margin-top:3px;gap:10px;padding:7px 9px}.opening .seal-icon{flex-basis:44px;width:44px;height:44px;font-size:.66rem}.open-button-copy{gap:4px}.open-button-copy small{font-size:.42rem;letter-spacing:.12em}.open-button-copy strong{font-size:1.03rem}.open-button-arrow{flex-basis:30px;width:30px;height:30px;font-size:.88rem}}
@media(max-width:700px){
  .opening{display:flex;flex-direction:column;justify-content:flex-start;gap:0;min-height:100vh;min-height:100svh;padding:27px 17px 48px}
  .opening-copy{display:contents}
  #opening .opening-kicker{order:1;justify-content:center;gap:8px;margin-top:4px;font-size:.46rem;letter-spacing:.17em;animation:rise-in .7s .08s both}
  #opening .opening-kicker i{width:18px}
  #opening h1{order:2;margin:14px 0 12px;text-align:center;font-size:clamp(3rem,11vw,3.8rem);line-height:.82;letter-spacing:-.05em;animation:rise-in .75s .16s both}
  #opening .opening-date{order:3;text-align:center;font-size:.65rem;letter-spacing:.17em;animation:rise-in .7s .22s both}
  #opening .opening-place{order:4;text-align:center;margin:8px 0 7px;font-size:.43rem;letter-spacing:.11em;animation:rise-in .7s .28s both}
  #opening .opening-art{order:5;width:min(76vw,320px);height:min(32vh,285px);min-height:0;aspect-ratio:auto;margin:0 auto;animation:art-in .85s .2s both}
  #opening .open-button{order:6;align-self:center;width:min(100%,320px);min-height:61px;margin:0 auto 44px;padding:7px 10px;animation:rise-in .7s .38s both}
  #opening .seal-icon{flex-basis:44px;width:44px;height:44px}
  #opening .open-button-copy small{font-size:.4rem;letter-spacing:.1em}
  #opening .open-button-copy strong{font-size:1rem}
  #opening .open-button-arrow{width:30px;height:30px;flex-basis:30px}
  #opening .skip-button{top:15px;right:18px;bottom:auto;padding:8px 0;font-size:.42rem}
  #opening .opening-footer{left:18px;right:18px;bottom:16px;font-size:.34rem;letter-spacing:.07em}
  .header{height:61px;padding:0 12px;grid-template-columns:auto 1fr auto;gap:4px}
  .nav{gap:8px}
  .nav a{font-size:.37rem;letter-spacing:.045em}
  .header-cta{margin-left:5px;padding:8px 7px;font-size:.4rem;letter-spacing:.055em}
  .hero{padding:45px 15px 83px}
  .hero-heading{padding-top:42px}
  .welcome{padding:64px 21px 30px;gap:21px}
  .milestone-section{padding:65px 23px 72px}
  .venue-panel{padding:0 24px 40px}
  .event-info-section{padding:65px 18px 70px}
  .day-section{padding:65px 18px 68px;gap:23px}
  .details-grid{padding:65px 21px 70px;gap:25px}
  .gallery-section{padding:60px 18px 69px}
  .countdown-section{padding:65px 14px 60px}
  .rsvp-section{padding:55px 19px 57px;gap:26px}
  .rsvp-form{gap:16px;padding:21px 15px}
  .form-submit .rsvp-button{width:100%;min-height:48px;justify-content:center}
  footer{padding:44px 18px 28px}
}
@media(max-width:380px){
  .header{padding:0 9px}
  .wordmark{font-size:1.02rem}
  .nav{gap:6px}
  .nav a{font-size:.32rem;letter-spacing:.025em}
  .header-cta{font-size:.36rem;padding:7px 6px}
  #opening h1{font-size:clamp(2.85rem,11vw,3.2rem)}
  #opening .opening-art{width:min(78vw,290px);height:min(30vh,250px)}
  #opening .open-button{width:min(100%,300px);margin-bottom:40px}
  .event-info-heading h2{font-size:3.2rem}
  .gallery-heading h2{font-size:3.2rem}
  .attendance-field label span,.guest-field label span{font-size:.42rem;padding:9px 8px}
}

/* RSVP stationery treatment */
.rsvp-form{isolation:isolate;overflow:hidden;background:linear-gradient(145deg,rgba(255,253,247,.96),rgba(241,237,224,.94));border:1px solid #a791624d;box-shadow:0 22px 55px #3136211f,inset 0 0 0 7px #fbf8ef;outline:1px solid #b8a57838;outline-offset:-14px}
.rsvp-form:before,.rsvp-form:after{content:"✿";position:absolute;z-index:-1;color:#7f8860;opacity:.08;font-size:10rem;line-height:1;pointer-events:none}
.rsvp-form:before{top:-44px;left:-38px;transform:rotate(-18deg)}
.rsvp-form:after{right:-45px;bottom:-48px;transform:rotate(20deg)}
.rsvp-form-intro{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;text-align:left;padding:4px 3px 9px}
.rsvp-form-monogram{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:#69724b;color:#fffaf0;outline:1px solid #c2ab79;outline-offset:5px;box-shadow:0 7px 18px #3e452c2e;font:500 1.32rem/1 var(--script);transform:rotate(-5deg)}
.rsvp-form-monogram i{color:#dec791;font-size:.68em}
.rsvp-form-intro .eyebrow{display:block;color:#9b8253;font-size:.52rem}
.rsvp-form-intro h3{margin:3px 0 1px;color:#4b5538;font:500 2.2rem/.95 var(--serif)}
.rsvp-form-intro p{margin:6px 0 0;color:#777963;font:italic 1rem var(--serif)}
.rsvp-form-number{color:#68704e;text-align:center;font:500 2.45rem/.72 var(--serif)}
.rsvp-form-number small{font:600 .48rem var(--sans);letter-spacing:.13em}
.rsvp-form-divider{grid-column:1/-1;display:flex;align-items:center;gap:12px;color:#ad9462;margin:0 0 4px}
.rsvp-form-divider:before,.rsvp-form-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#b2a47c80)}
.rsvp-form-divider:after{background:linear-gradient(90deg,#b2a47c80,transparent)}
.rsvp-form-divider span{font-size:.85rem}
.rsvp-form .field-label,.rsvp-form .attendance-field,.rsvp-form .guest-field{position:relative;padding:14px 15px 15px;background:#fffdf8b8;border:1px solid #938d6c2b;box-shadow:0 5px 14px #42452e0b}
.rsvp-form .field-label,.rsvp-form .attendance-field legend,.rsvp-form .guest-field legend{color:#4e583b;font-size:1.05rem}
.rsvp-form .field-label input,.rsvp-form .field-label select,.rsvp-form .field-label textarea{border:0;border-bottom:1px solid #7b80575c;background:transparent;padding:11px 2px 9px;transition:border-color .2s,box-shadow .2s,background .2s}
.rsvp-form .field-label input:focus,.rsvp-form .field-label select:focus,.rsvp-form .field-label textarea:focus{border-color:#9e8552;box-shadow:0 3px 0 #b9a16d26;background:#fffdf650}
.rsvp-form .attendance-field label span,.rsvp-form .guest-field label span{border-color:#85896a4f;background:#f8f5eb;padding:11px 15px}
.rsvp-form .attendance-field input:checked+span,.rsvp-form .guest-field input:checked+span{background:linear-gradient(135deg,#747c53,#58613e);box-shadow:0 5px 12px #4b53352b}
.rsvp-form .form-submit{position:relative;margin-top:4px;padding:22px 3px 3px;border-top:1px solid #a99a7352}
.rsvp-form .form-submit .rsvp-button{min-height:52px;padding:15px 21px;border:1px solid #c3ad7d;background:linear-gradient(135deg,#737b52,#56603d);box-shadow:0 8px 18px #343b252f,inset 0 1px #ffffff26}
.rsvp-form .form-submit .rsvp-button:disabled{background:linear-gradient(135deg,#7c8068,#686c57);color:#f4f0e7;opacity:.8}
.form-fineprint{position:absolute;right:3px;bottom:3px;color:#9a967f;font:600 .43rem var(--sans);letter-spacing:.14em;text-transform:uppercase}

/* Final mobile refinement */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  .header{grid-template-columns:1fr auto;height:62px;padding:0 15px}
  .header .nav{display:none}
  .header-cta{justify-self:end;margin:0;padding:9px 11px;font-size:.43rem}
  #opening.opening{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto auto minmax(265px,38vh) auto;align-content:start;min-height:100svh;padding:34px 15px 60px}
  #opening .opening-copy{display:contents}
  #opening .opening-kicker{grid-row:1;margin-top:0;font-size:.49rem}
  #opening h1{grid-row:2;margin:15px 0 9px;font-size:clamp(3.5rem,15.5vw,5.05rem);line-height:.78}
  #opening .opening-date{grid-row:3;font-size:.72rem}
  #opening .opening-place{grid-row:4;margin:7px 0 0;font-size:.45rem}
  #opening .opening-art{grid-row:5;width:min(98vw,410px);height:100%;max-height:355px;margin:-2px auto 0;overflow:visible}
  #opening .collage-cover{width:108%;height:108%;left:-4%;top:-3%;max-width:none}
  #opening .cover-card-copy{top:54%;width:43%}
  #opening .cover-card-copy small{font-size:.41rem}
  #opening .cover-card-copy strong{font-size:clamp(1.7rem,8vw,2.25rem)}
  #opening .cover-card-copy>span{font-size:.35rem}
  #opening .vinyl-sticker{width:50px;height:50px}
  #opening .cover-caption{right:1%;bottom:5%;font-size:1.08rem}
  #opening .open-button{grid-row:6;width:min(92vw,350px);min-height:66px;margin:-3px auto 35px;padding:8px 10px}
  #opening .seal-icon{flex-basis:48px;width:48px;height:48px}
  #opening .open-button-copy small{font-size:.42rem}
  #opening .open-button-copy strong{font-size:1.08rem}

  .hero{overflow:hidden}
  .hero-collage{width:min(106vw,440px);margin-left:-3vw}
  .hero-card-art{width:104%;height:104%;max-width:none}
  .polaroid-one{right:3%}.polaroid-two{left:3%}
  .welcome,.milestone-section,.venue,.event-info-section,.day-section,.gallery-section,.details-grid,.countdown-section,.rsvp-section{overflow:hidden}
  .story-photo-stack{transform:rotate(1.5deg)}
  .venue-image img{object-position:center center}
  .gallery-card img{object-position:center}

  .milestone-line{display:block;max-width:330px;padding-left:0}
  .milestone-line:before{left:21px;top:18px;bottom:22px;width:2px;height:auto;background:linear-gradient(#eadfbe,#c1aa78 52%,#eadfbe);box-shadow:0 0 0 1px #4c563a55}
  .milestone-line article{min-height:104px;padding:0 0 30px 66px}
  .milestone-line article:last-child{min-height:70px;padding-bottom:0}
  .milestone-dot{left:0;top:0;width:44px;height:44px;border-width:2px;box-shadow:0 0 0 5px #68714b,0 4px 12px #30372455;z-index:2}
  .milestone-line article:after{content:"";position:absolute;left:44px;top:21px;width:16px;height:2px;background:#d9cba6}
  .milestone-line time{font-size:.46rem}
  .milestone-line h3{font-size:1.55rem;margin-top:5px}
  .milestone-line p{font-size:.93rem}

  .rsvp-section{padding-left:16px;padding-right:16px}
  .rsvp-art{width:min(73%,270px)}
  .rsvp-art>img{height:245px;object-position:center}
  .rsvp-form{display:flex;gap:13px;padding:25px 14px 22px;outline-offset:-9px;box-shadow:0 16px 34px #3035221f,inset 0 0 0 4px #fbf8ef}
  .rsvp-form:before,.rsvp-form:after{font-size:7rem}
  .rsvp-form-intro{display:grid;grid-template-columns:54px 1fr;gap:13px;padding:2px 6px 8px;text-align:left}
  .rsvp-form-monogram{width:50px;height:50px;font-size:.92rem;outline-offset:3px}
  .rsvp-form-intro h3{font-size:1.72rem}
  .rsvp-form-intro p{font-size:.88rem;line-height:1.35}
  .rsvp-form-number{display:none}
  .rsvp-form-divider{margin-bottom:0}
  .rsvp-form .field-label,.rsvp-form .attendance-field,.rsvp-form .guest-field{padding:12px 12px 13px;text-align:left}
  .rsvp-form .field-label,.rsvp-form .attendance-field legend,.rsvp-form .guest-field legend{font-size:.98rem}
  .rsvp-form .attendance-field,.rsvp-form .guest-field{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .rsvp-form .attendance-field legend,.rsvp-form .guest-field legend{grid-column:1/-1}
  .rsvp-form .attendance-field label span,.rsvp-form .guest-field label span{display:grid;place-items:center;min-height:42px;padding:8px 7px;text-align:center;font-size:.43rem}
  .rsvp-form .form-submit{align-items:stretch;padding:18px 2px 23px;text-align:center}
  .rsvp-form .form-submit .rsvp-button{width:100%;justify-content:center}
  .rsvp-status{max-width:100%;text-align:left;font-size:.88rem;line-height:1.4}
  .form-fineprint{right:auto;left:2px;bottom:1px;font-size:.38rem}
}

@media(max-width:380px){
  #opening.opening{grid-template-rows:auto auto auto auto minmax(230px,34vh) auto;padding-top:30px}
  #opening h1{font-size:clamp(3.18rem,15vw,4rem)}
  #opening .opening-art{width:min(100vw,370px);max-height:305px}
  #opening .open-button{width:min(94vw,330px);min-height:62px}
  .hero-collage{width:108vw;margin-left:-4vw}
  .milestone-section{padding-left:22px;padding-right:22px}
  .rsvp-form{padding-left:12px;padding-right:12px}
}

@media(max-width:700px) and (max-height:700px){
  #opening.opening{grid-template-rows:auto auto auto auto minmax(205px,31vh) auto;padding-top:24px;padding-bottom:48px}
  #opening h1{font-size:3.2rem;margin:10px 0 6px}
  #opening .opening-kicker{font-size:.43rem}
  #opening .opening-date{font-size:.62rem}
  #opening .opening-place{font-size:.39rem}
  #opening .opening-art{width:min(83vw,330px)}
  #opening .open-button{min-height:58px;margin-bottom:28px}
  #opening .opening-footer{display:none}
}

/* Persistent opt-in music control */
.music-toggle{position:fixed;z-index:70;top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:7px 15px 7px 11px;border:1px solid #d6c28f;border-radius:999px;background:linear-gradient(145deg,#fffdf7f5,#eee8d8f2);color:#4c5839;box-shadow:0 7px 22px #1e25153b,inset 0 1px 0 #fff;backdrop-filter:blur(12px);font:600 .55rem var(--sans);letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease}
.music-toggle:hover{transform:translateY(-2px);border-color:#a48e5b;box-shadow:0 11px 25px #1e25154a,inset 0 1px 0 #fff}
.music-toggle:focus-visible{outline:3px solid #efe2c0;outline-offset:4px}
.music-toggle-icon{display:flex;align-items:center;justify-content:center;gap:2px;width:17px;height:16px}
.music-toggle-icon i{display:block;width:2px;height:5px;border-radius:2px;background:#78805b;transform-origin:center;transition:height .25s ease,background .25s ease}
.music-toggle-icon i:nth-child(2){height:9px}.music-toggle-icon i:nth-child(3){height:13px}.music-toggle-icon i:nth-child(4){height:7px}
.music-toggle-note{margin-left:1px;color:#a48e5b;font:400 1.04rem var(--serif);line-height:1}
.music-toggle.is-playing{border-color:#b99f66;background:linear-gradient(145deg,#fffdf8fa,#e8e6d8f5)}
.music-toggle.is-playing .music-toggle-icon i{background:#69724b;animation:music-pulse .82s ease-in-out infinite alternate}
.music-toggle.is-playing .music-toggle-icon i:nth-child(2){animation-delay:-.35s}.music-toggle.is-playing .music-toggle-icon i:nth-child(3){animation-delay:-.6s}.music-toggle.is-playing .music-toggle-icon i:nth-child(4){animation-delay:-.18s}
.music-toggle.is-loading .music-toggle-icon i{animation:music-pulse .45s ease-in-out infinite alternate}
.music-toggle.is-loading .music-toggle-label{opacity:.72}
@keyframes music-pulse{from{transform:scaleY(.38)}to{transform:scaleY(1.06)}}
body:not(.is-locked) .music-toggle{top:auto;left:auto;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom))}
@media(max-width:700px){.music-toggle{top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));gap:8px;min-height:40px;padding:6px 12px 6px 9px;font-size:.48rem;letter-spacing:.11em}.music-toggle-icon{width:15px}.music-toggle-note{font-size:.96rem}body:not(.is-locked) .music-toggle{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.music-toggle,.music-toggle-icon i{transition:none!important;animation:none!important}}

/* Keep the music switch in the sticky site header after the reveal. */
.header{grid-template-columns:minmax(110px,1fr) auto auto auto;gap:clamp(14px,2vw,30px)}
.header .music-toggle{position:relative;inset:auto;justify-self:center;min-height:42px;padding:6px 12px 6px 10px;border-color:#b8a77875;background:linear-gradient(145deg,#fffdf8,#f0ecdf);box-shadow:0 4px 13px #2b302019;backdrop-filter:none}
.header .music-toggle:hover{transform:translateY(-1px);box-shadow:0 7px 17px #2b302026}
.header .music-toggle-note{font-size:.98rem}
@media(max-width:700px){.header{grid-template-columns:minmax(56px,1fr) auto auto;gap:8px}.header .music-toggle{justify-self:center;min-height:38px;padding:5px 9px;gap:6px;font-size:.42rem;letter-spacing:.08em}.header .music-toggle-icon{width:13px}.header .music-toggle-note{font-size:.88rem}.header-cta{padding:8px 9px}}
@media(max-width:360px){.header{gap:5px;padding-right:10px;padding-left:10px}.header .music-toggle{gap:5px;padding:5px 7px;font-size:.37rem}.header .music-toggle-note{display:none}.header-cta{padding:7px 7px;font-size:.37rem}}


/* RSVP form refresh: clear response groups, tactile choices, and a stronger stationery card. */
.rsvp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px;padding:clamp(24px,3vw,42px);border:1px solid #a993634f;border-radius:3px;background:linear-gradient(150deg,#fffdf7 0%,#f4f0e4 62%,#eeeadd 100%);box-shadow:0 25px 66px #32372320,inset 0 0 0 5px #fffdf0;outline:1px solid #b6a57645;outline-offset:-12px}
.rsvp-form:before,.rsvp-form:after{color:#71805b;opacity:.055}
.rsvp-form:before{top:-24px;left:-23px;font-size:8rem}.rsvp-form:after{right:-22px;bottom:-25px;font-size:8rem}
.rsvp-form-intro{position:relative;grid-column:1/-1;grid-template-columns:72px minmax(0,1fr) auto;gap:21px;padding:3px 3px 18px;border-bottom:1px solid #aa986d5c}
.rsvp-form-intro:after{content:"";position:absolute;left:0;bottom:-2px;width:68px;height:3px;background:linear-gradient(90deg,#6d7650,#c5ad7a)}
.rsvp-form-monogram{width:63px;height:63px;background:radial-gradient(circle at 33% 25%,#838b63,#576141 74%);box-shadow:0 6px 16px #3e452c30;font-size:1.2rem}
.rsvp-form-intro .eyebrow{font-size:.47rem;letter-spacing:.19em}
.rsvp-form-intro h3{margin:5px 0 0;font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.025em}
.rsvp-form-intro p{margin-top:7px;font-size:.95rem}
.rsvp-form-number{font-size:2.15rem;line-height:.8}
.rsvp-form-number small{font-size:.43rem;letter-spacing:.12em}
.rsvp-form-divider{grid-column:1/-1;margin:1px 0 0}
.rsvp-section-label{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:4px 0 -1px;padding:2px 1px}
.rsvp-section-label>span{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border:1px solid #b5a172;border-radius:50%;color:#7c714d;font:600 .47rem var(--sans);letter-spacing:.06em}
.rsvp-section-label>div{display:grid;gap:2px}
.rsvp-section-label strong{color:#4d563a;font:500 1.18rem var(--serif)}
.rsvp-section-label small{color:#8b8a75;font:italic .86rem var(--serif)}
.rsvp-form>.field-label{grid-column:1/-1;min-width:0;border-color:#938d6c3b;border-radius:2px;background:#fffdf4d9;box-shadow:0 4px 12px #40442e09;font-size:.95rem;padding:13px 15px}
.rsvp-form>.field-label input,.rsvp-form>.field-label select,.rsvp-form>.field-label textarea{margin-top:8px;border:1px solid #a6a08275;border-radius:2px;background:#fffef9;padding:12px 13px;font:400 .96rem var(--sans);color:#3e4731}
.rsvp-form>.field-label input::placeholder,.rsvp-form>.field-label textarea::placeholder{color:#a09e8c;font:italic .88rem var(--serif)}
.rsvp-form>.field-label input:focus,.rsvp-form>.field-label select:focus,.rsvp-form>.field-label textarea:focus{border-color:#717b50;box-shadow:0 0 0 3px #78825720;background:#fff}
.rsvp-form>.field-label.guest-name-field,.rsvp-form>.field-label.meal-field{grid-column:span 1}
.rsvp-form>.field-label.allergy-field,.rsvp-form>.field-label.song-field,.rsvp-form>.field-label.message-field{grid-column:1/-1}
.rsvp-form .attendance-field{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.rsvp-form .attendance-field legend{grid-column:1/-1;margin:0 0 2px;color:#4e583b;font:500 .92rem var(--serif)}
.rsvp-form .attendance-field label{display:block;min-width:0}
.rsvp-form .attendance-field label span{position:relative;display:grid;align-content:center;gap:5px;min-height:86px;padding:12px 13px 12px 47px;border:1px solid #a69b7868;border-radius:2px;background:#fffdf7;color:#515b3d;text-transform:none;letter-spacing:normal;box-shadow:0 4px 12px #40442e09;transition:background .2s,color .2s,border-color .2s,transform .2s}
.rsvp-form .attendance-field label span:before{content:"";position:absolute;top:50%;left:14px;display:grid;place-items:center;width:20px;height:20px;border:1px solid #999270;border-radius:50%;color:transparent;font:600 .68rem var(--sans);transform:translateY(-50%)}
.rsvp-form .attendance-field label span strong{font:500 1.05rem var(--serif)}
.rsvp-form .attendance-field label span small{color:#8a8972;font:italic .77rem var(--serif);line-height:1.25}
.rsvp-form .attendance-field input:checked+span{border-color:#727c51;background:linear-gradient(135deg,#69734d,#56603f);box-shadow:0 7px 18px #47502e26}
.rsvp-form .attendance-field input:checked+span strong{color:#fffdf3}
.rsvp-form .attendance-field input:checked+span small{color:#ede8d7}
.rsvp-form .attendance-field input:checked+span:before{content:"✓";border-color:#e1d1a8;background:#f7f1df;color:#66704b}
.rsvp-form .attendance-field input:focus-visible+span,.rsvp-form .guest-field input:focus-visible+span{outline:2px solid #b49b68;outline-offset:3px}
.rsvp-form .guest-field{grid-column:span 1;display:flex;align-content:flex-start;align-items:center;gap:8px}
.rsvp-form .guest-field legend{color:#4e583b;font:500 .92rem var(--serif)}
.rsvp-form .guest-field label span{min-width:72px;padding:11px 14px;border-radius:999px;background:#fffdf7;color:#596242;font-size:.5rem;text-align:center}
.rsvp-form .guest-field input:checked+span{border-color:#69724b;background:#69724b;color:#fffdf3}
.rsvp-form .form-submit{position:relative;grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 20px;margin-top:6px;padding:20px 2px 24px;border-top:1px solid #aa986d5c;text-align:left}
.rsvp-form .form-submit .rsvp-button{grid-column:1/-1;justify-content:center;min-height:54px;border-radius:2px;background:linear-gradient(120deg,#768057,#525d3d);font:600 .57rem var(--sans);letter-spacing:.17em;box-shadow:0 8px 18px #343b2526;transition:filter .2s,transform .2s}
.rsvp-form .form-submit .rsvp-button:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}
.rsvp-form .rsvp-status{grid-column:1/-1;text-align:center;font-size:.93rem}
.rsvp-form .form-fineprint{right:3px;bottom:2px;font-size:.39rem}
@media(max-width:700px){
  .header .music-toggle{min-height:38px}
  .rsvp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px;padding:24px 15px 26px}
  .rsvp-form-intro{grid-template-columns:51px minmax(0,1fr);gap:13px;padding:3px 4px 14px}
  .rsvp-form-monogram{width:47px;height:47px;font-size:.88rem}
  .rsvp-form-intro .eyebrow{font-size:.41rem}
  .rsvp-form-intro h3{font-size:1.78rem}
  .rsvp-form-intro p{font-size:.81rem;line-height:1.3}
  .rsvp-form-number{display:none}
  .rsvp-section-label{gap:9px;margin-top:3px}
  .rsvp-section-label>span{flex-basis:27px;width:27px;height:27px;font-size:.42rem}
  .rsvp-section-label strong{font-size:1.08rem}
  .rsvp-section-label small{font-size:.76rem}
  .rsvp-form>.field-label{padding:11px 11px 12px;font-size:.9rem}
  .rsvp-form>.field-label input,.rsvp-form>.field-label select,.rsvp-form>.field-label textarea{padding:11px 10px;font-size:.9rem}
  .rsvp-form>.field-label.guest-name-field,.rsvp-form>.field-label.meal-field{grid-column:span 1}
  .rsvp-form .attendance-field{gap:7px}
  .rsvp-form .attendance-field label span{min-height:83px;padding:10px 8px 10px 34px}
  .rsvp-form .attendance-field label span:before{left:9px;width:17px;height:17px}
  .rsvp-form .attendance-field label span strong{font-size:.92rem;line-height:1.05}
  .rsvp-form .attendance-field label span small{font-size:.68rem}
  .rsvp-form .guest-field{gap:6px}
  .rsvp-form .guest-field legend{font-size:.84rem}
  .rsvp-form .guest-field label span{min-width:59px;padding:10px 9px;font-size:.44rem}
  .rsvp-form .form-submit{grid-template-columns:1fr;gap:10px;padding:16px 2px 25px}
  .rsvp-form .form-submit .rsvp-button{grid-column:1;min-height:50px}
  .rsvp-form .rsvp-status{font-size:.83rem}
  .rsvp-form .form-fineprint{left:2px;right:auto;font-size:.35rem}
}
@media(max-width:380px){.rsvp-form{padding-right:12px;padding-left:12px}.rsvp-form .attendance-field label span{padding-left:30px}.rsvp-form .attendance-field label span:before{left:7px}.rsvp-form .attendance-field label span strong{font-size:.84rem}.rsvp-form .attendance-field label span small{font-size:.64rem}}

/* Ceremony and reception locations */
.event-locations{position:relative;padding:clamp(76px,9vw,130px) max(6vw,calc((100vw - 1220px)/2));background:linear-gradient(135deg,#e9e6d8,#f5f2e8 52%,#e5e1d2);overflow:hidden}
.event-locations:before{content:"";position:absolute;inset:20px;border:1px solid #8d886c35;pointer-events:none}
.locations-heading{text-align:center;max-width:740px;margin:0 auto 48px;position:relative}.locations-heading h2{margin:15px 0;color:#4d563a;font:500 clamp(3rem,6vw,5.2rem)/.9 var(--serif);letter-spacing:-.04em}.locations-heading h2 em{font-weight:400;color:#9b8661}.locations-heading>p{color:#727563;font:italic 1.15rem var(--serif)}
.location-cards{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,42px);max-width:1220px;margin:auto}
.location-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:#fbf9f0;border:1px solid #ad9a6b66;box-shadow:0 18px 45px #42442c15;min-width:0}
.location-photo{position:relative;min-height:100%;overflow:hidden;background:#ded9c6}.location-photo img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover}.location-number{position:absolute;left:15px;top:15px;display:grid;place-items:center;width:38px;height:38px;border:1px solid #fff9;border-radius:50%;background:#50583d;color:#fffdf4;font:500 .8rem var(--sans)}
.location-copy{padding:clamp(22px,2.5vw,36px);min-width:0}.location-copy h3{margin:9px 0 15px;color:#4d563a;font:500 clamp(2rem,3vw,3rem)/.9 var(--serif)}.location-copy h3 em{color:#9b8661;font-weight:400}.location-venue{margin:0;color:#4f563d;font:500 1.17rem/1.35 var(--serif)}.location-city{margin:5px 0 14px;color:#89866e;font:italic .95rem var(--serif)}.location-copy address{color:#646956;font:400 .86rem/1.7 var(--sans);font-style:normal}.location-copy .direction-link{display:inline-flex;margin:15px 0 18px;padding:11px 13px;border:1px solid #9b8e68;color:#586044;text-decoration:none;font:600 .61rem var(--sans);letter-spacing:.1em;text-transform:uppercase}.location-copy .direction-link span{margin-left:8px}.location-map{height:165px;border:1px solid #b4a98266;background:#e8e4d7}.location-map iframe{width:100%;height:100%;border:0;display:block}
.event-info-grid{grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);max-width:850px;margin:0 auto}.date-note{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;border:1px solid #af9d715c;background:linear-gradient(145deg,#f8f5e9,#e9e5d5);box-shadow:0 18px 45px #42442c12}.date-note>strong{margin:15px 0;color:#586044;font:500 2.4rem/.82 var(--serif);text-transform:uppercase;letter-spacing:.08em}.date-note>strong em{font-size:6rem;font-weight:400;color:#9b8661}.date-note p{max-width:200px;color:#777963;font:italic 1.05rem var(--serif)}.date-note-monogram{margin-top:12px;color:#747b5a;font:italic 1.5rem var(--serif)}.date-note-monogram i{color:#b39b6b}
.sample-note{margin:14px 0 0;color:#898670;font:italic .92rem/1.5 var(--serif);text-align:center}.schedule-bottom strong{font-size:1rem}.rsvp-deadline{display:none!important}
@media(max-width:900px){.location-cards{grid-template-columns:1fr;max-width:680px}.location-card{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}}
@media(max-width:600px){.event-locations{padding:76px 20px}.event-locations:before{inset:10px}.locations-heading{margin-bottom:30px}.location-card{grid-template-columns:1fr}.location-photo{min-height:210px;aspect-ratio:1.9}.location-copy{padding:24px}.location-map{height:190px}.event-info-grid{grid-template-columns:1fr;max-width:480px}.date-note{min-height:300px}.date-note>strong{font-size:2rem}.date-note>strong em{font-size:5rem}.schedule-bottom{flex-wrap:wrap}.sample-note{padding:0 10px}}

/* Compact floating music control, visible on the opening and invitation screens. */
.header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(18px,4vw,58px)}
.music-toggle{position:fixed;z-index:70;top:auto;left:auto;right:max(20px,calc(env(safe-area-inset-right) + 14px));bottom:max(20px,calc(env(safe-area-inset-bottom) + 14px));display:grid;place-items:center;width:52px;height:52px;min-width:52px;min-height:52px;padding:0;border:1px solid #c3ad79;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fffdf7,#e8e4d4 82%);color:#4f5b3b;box-shadow:0 7px 20px #28301c35,inset 0 1px 0 #fff;backdrop-filter:blur(10px);cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease}
.music-toggle:hover{transform:translateY(-2px) scale(1.035);border-color:#9e8959;box-shadow:0 10px 24px #28301c42,inset 0 1px 0 #fff}
.music-toggle:active{transform:scale(.96)}
.music-toggle:focus-visible{outline:3px solid #c4ae79;outline-offset:4px}
.music-toggle-icon{display:flex;align-items:center;justify-content:center;gap:3px;width:21px;height:20px}
.music-toggle-icon i{display:block;width:2.5px;height:6px;border-radius:3px;background:#77805a;transform-origin:center;transition:height .25s ease,background .25s ease}
.music-toggle-icon i:nth-child(2){height:11px}.music-toggle-icon i:nth-child(3){height:16px}.music-toggle-icon i:nth-child(4){height:9px}
.music-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.music-toggle-note{display:none}
.music-toggle.is-playing{border-color:#a58e5c;background:radial-gradient(circle at 32% 25%,#fffdf7,#e3e5d5 82%);box-shadow:0 7px 20px #28301c3d,0 0 0 4px #b5a16a24,inset 0 1px 0 #fff}
.music-toggle.is-playing:before{content:"";position:absolute;inset:-5px;border:1px solid #a8905a80;border-radius:50%;animation:music-ring 1.9s ease-out infinite}
.music-toggle.is-playing .music-toggle-icon i{background:#626e45;animation:music-pulse .78s ease-in-out infinite alternate}
.music-toggle.is-playing .music-toggle-icon i:nth-child(2){animation-delay:-.28s}.music-toggle.is-playing .music-toggle-icon i:nth-child(3){animation-delay:-.53s}.music-toggle.is-playing .music-toggle-icon i:nth-child(4){animation-delay:-.16s}
.music-toggle.is-loading .music-toggle-icon i{animation:music-pulse .45s ease-in-out infinite alternate}
@keyframes music-ring{0%{transform:scale(.94);opacity:.8}100%{transform:scale(1.24);opacity:0}}
@media(max-width:700px){.header{grid-template-columns:minmax(0,1fr) auto;gap:8px}.header .nav{display:none}.header-cta{justify-self:end;margin:0;padding:9px 11px;font-size:.43rem}.music-toggle{right:max(16px,calc(env(safe-area-inset-right) + 12px));bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));width:48px;height:48px;min-width:48px;min-height:48px}.music-toggle-icon{width:19px;height:18px}}
@media(max-width:360px){.header{gap:5px;padding-right:10px;padding-left:10px}.header-cta{padding:7px 7px;font-size:.37rem}}
@media(prefers-reduced-motion:reduce){.music-toggle,.music-toggle-icon i,.music-toggle.is-playing:before{transition:none!important;animation:none!important}}

/* Preserve the original labeled pill on the envelope screen; the revealed site uses the round floating control above. */
body.is-locked .music-toggle{top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:auto;bottom:auto;display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;width:auto;height:auto;min-width:0;min-height:44px;padding:7px 15px 7px 11px;border:1px solid #d6c28f;border-radius:999px;background:linear-gradient(145deg,#fffdf7f5,#eee8d8f2);color:#4c5839;box-shadow:0 7px 22px #1e25153b,inset 0 1px 0 #fff;backdrop-filter:blur(12px);font:600 .55rem var(--sans);letter-spacing:.13em;text-transform:uppercase}
body.is-locked .music-toggle:hover{transform:translateY(-2px);border-color:#a48e5b;box-shadow:0 11px 25px #1e25154a,inset 0 1px 0 #fff}
body.is-locked .music-toggle-icon{width:17px;height:16px;gap:2px}
body.is-locked .music-toggle-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap;border:0}
body.is-locked .music-toggle-note{display:block;margin-left:1px;color:#a48e5b;font:400 1.04rem var(--serif);line-height:1}
body.is-locked .music-toggle.is-playing{border-color:#b99f66;background:linear-gradient(145deg,#fffdf8fa,#e8e6d8f5);box-shadow:0 7px 22px #1e25153b,inset 0 1px 0 #fff}
body.is-locked .music-toggle.is-playing:before{display:none}
@media(max-width:700px){body.is-locked .music-toggle{top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:auto;bottom:auto;gap:8px;min-height:40px;padding:6px 12px 6px 9px;font-size:.48rem;letter-spacing:.11em}body.is-locked .music-toggle-icon{width:15px;height:16px}body.is-locked .music-toggle-note{font-size:.96rem}}

/* RSVP selection feedback and conditional fields */
.rsvp-form [hidden]{display:none!important}
.rsvp-form .attendance-note{grid-column:1/-1;margin:-2px 0 2px;padding:9px 12px;border-left:2px solid #b19b6e;background:#f2efe3;color:#74745e;font:italic .92rem/1.45 var(--serif)}
.rsvp-form .attendance-note[data-response="accepts"]{border-color:#70794f;color:#596341}
.rsvp-form .attendance-note[data-response="declines"]{border-color:#b49a6d;color:#74644b}
.rsvp-form .attendance-field label span{cursor:pointer;user-select:none}
.milestone-heading>p{max-width:590px;margin:-43px auto 48px;color:#e6dfcc;font:italic 1.14rem/1.45 var(--serif)}
.milestone-line{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;max-width:940px}
.milestone-line article{padding-right:24px}
.milestone-line article h3{font-size:2rem;line-height:1.05;margin:9px 0 8px}
.milestone-line article p{max-width:360px;font-size:1.08rem;line-height:1.35}
.milestone-line article small{display:block;max-width:360px;margin-top:12px;color:#d4cfbb;font:500 .65rem/1.5 var(--sans);letter-spacing:.04em}
@media(max-width:700px){.milestone-heading>p{margin:-18px auto 32px;font-size:1rem}.milestone-line{grid-template-columns:1fr;gap:0}.milestone-line article h3{font-size:1.55rem}.milestone-line article p{font-size:.93rem}.milestone-line article small{font-size:.58rem;line-height:1.5}}
