@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&family=Pinyon+Script&display=swap');
:root{--wine:#61283b;--deep:#401925;--ivory:#f7f1e7;--paper:#fbf7ee;--rose:#b68c92;--gold:#cba66c;--ink:#542d38;--muted:#866d70;--line:#d9c8be;--serif:'Cormorant Garamond',Georgia,serif;--script:'Pinyon Script','Brush Script MT',cursive;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:#e9dfd1;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body:not(.opened){overflow-x:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input,summary{outline-offset:6px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold)}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit}svg{width:24px;height:24px}.svg-library{position:absolute;width:0;height:0;overflow:hidden}button{color:inherit}button:disabled{cursor:wait}.brand{display:inline-flex;flex-direction:column;gap:8px;font-family:var(--serif);font-size:25px;line-height:1;letter-spacing:5px;text-decoration:none}.brand-line{font-family:var(--sans);font-size:7px;letter-spacing:2px}.eyebrow{font-size:10px;letter-spacing:3px;line-height:1.8}.cover{min-height:100svh;display:flex;flex-direction:column;align-items:center;background:var(--ivory);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.045' filter='url(%23n)'/%3E%3C/svg%3E");padding:35px 6vw 22px;overflow:hidden}.cover-masthead{width:100%;display:flex;justify-content:space-between;align-items:flex-start}.edition{font-size:8px;letter-spacing:2px;text-align:right;line-height:1.8}.edition span{display:block;color:var(--muted);font-size:9px;margin-top:4px}.cover-intro{text-align:center;margin:28px 0 22px}.cover-intro .eyebrow{font-size:8px;letter-spacing:3px}.guest-greeting{font-family:var(--serif);font-size:21px;font-style:italic;margin:10px 0}.envelope{position:relative;display:block;flex-shrink:0;width:min(390px,80vw);height:min(520px,107vw);border:0;background:var(--deep);padding:0;color:#e7d6c1;box-shadow:0 30px 60px #48212b30,0 5px 12px #48212b24;isolation:isolate;transition:transform .5s}.envelope:hover{transform:translateY(-4px)}.envelope-back{position:absolute;inset:0;background:var(--paper);display:grid;place-items:center;color:var(--wine)}.letter-peek{font-family:var(--script);font-size:46px}.letter-peek i{font-family:var(--serif);font-size:35px}.flap{position:absolute;top:0;bottom:0;width:58%;background-color:#622a38;background-image:linear-gradient(90deg,#10000610,#24001200),url('assets/burgundy-botanical.png');background-size:auto 100%;z-index:2;will-change:transform;transition:transform .85s cubic-bezier(.5,.1,.3,1),opacity .7s;backface-visibility:hidden}.flap-left{left:0;clip-path:polygon(0 0,100% 0,100% 15%,89% 50%,100% 85%,100% 100%,0 100%);background-position:left center;transform-origin:left center;filter:drop-shadow(5px 0 7px #18000b70)}.flap-right{right:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 85%,11% 50%,0 15%);background-position:right center;transform-origin:right center;filter:drop-shadow(-5px 0 7px #18000b70)}.envelope:after{content:'';position:absolute;inset:13px;border:1px solid #e1b99030;pointer-events:none;z-index:3}.seal{position:absolute;z-index:4;width:91px;height:91px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-7deg);border-radius:45% 52% 43% 49%/47% 42% 55% 46%;background:linear-gradient(135deg,#b98e4d 0%,#f5d99b 24%,#b98b4b 43%,#e1be7b 65%,#ae7f41);box-shadow:0 6px 14px #16020b80,inset 0 2px 2px #fff2d8;display:grid;place-items:center;transition:opacity .25s,transform .6s}.seal-inner{width:73px;height:73px;border:1px solid #9d743e;border-radius:50%;box-shadow:inset 0 2px 3px #76502780,0 1px 0 #f9e7b8;display:flex;justify-content:center;align-items:center;color:#714c29;position:relative}.seal-inner svg{width:28px;height:47px;position:absolute;left:9px;top:8px;opacity:.7}.seal-inner>span{font-family:var(--serif);font-size:24px;letter-spacing:-3px;margin-left:9px;text-shadow:0 1px #ffe4af;transform:rotate(7deg)}.envelope-caption{position:absolute;z-index:4;left:0;right:0;top:17%;font-size:7px;letter-spacing:3px;line-height:2.5;color:#f3dfcdba;transition:opacity .2s}.envelope-caption>span{font-family:var(--serif);font-size:18px;letter-spacing:4px;color:#efd9c8}.open-label{position:absolute;z-index:4;left:0;right:0;bottom:12%;font-size:8px;letter-spacing:3px;display:flex;justify-content:center;align-items:center;gap:12px;transition:opacity .2s}.open-label svg{width:19px;height:19px}.cover-footer{text-align:center;padding-top:28px}.cover-footer>span{font-family:var(--serif);font-style:italic;font-size:18px}.cover-footer p{font-size:8px;color:var(--muted);margin:14px 0 0;letter-spacing:.5px}.opened .flap-left{transform:perspective(1000px) rotateY(-100deg) translateX(-10%);opacity:0}.opened .flap-right{transform:perspective(1000px) rotateY(100deg) translateX(10%);opacity:0}.opened .seal{opacity:0;transform:translate(-50%,-50%) scale(1.15)}.opened .envelope-caption,.opened .open-label{opacity:0}.opened .cover{animation:coverFade .85s forwards}.invitation{max-width:1120px;margin:auto;background:var(--ivory);box-shadow:0 0 80px #41263213}.invitation:not([hidden]){animation:pageReveal .9s both}.page-header{display:flex;justify-content:space-between;align-items:center;padding:23px 45px;border-bottom:1px solid var(--line);background:var(--ivory);position:sticky;top:0;z-index:20}.page-header .brand{font-size:21px}.page-header nav{display:flex;gap:28px;font-size:10px;letter-spacing:1px}.page-header nav a{text-decoration:none}.page-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.text-button{border:0;background:none;font-size:10px;padding:5px 0;letter-spacing:.6px}.text-button span{padding-left:6px}.paper{background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.045' filter='url(%23n)'/%3E%3C/svg%3E")}.hero{min-height:840px;position:relative;overflow:hidden;text-align:center;padding:65px 25px 35px}.hero>.eyebrow{font-size:8px;letter-spacing:3.5px;margin:0 0 30px}.hero-arch{position:relative;border:1px solid #9a64724a;border-radius:250px 250px 0 0;margin:auto;width:min(440px,88%);padding:38px 15px 32px}.hero-arch:before{content:'';position:absolute;inset:12px;border:1px solid #9a647226;border-radius:240px 240px 0 0;pointer-events:none}.tiny-diamond{font-size:23px;color:#a87977}.serif-overline{font-family:var(--serif);font-size:22px;font-style:italic;margin:17px 0 12px;color:var(--muted)}h1{font-family:var(--script);font-weight:400;line-height:.95;font-size:96px;margin:15px 0 30px}h1:focus{outline:none}h1>span{display:block}h1>span:first-child{transform:translateX(-17px)}h1>span:last-child{transform:translateX(15px)}h1>i{font-family:var(--serif);font-weight:400;font-style:italic;font-size:53px;line-height:1.2;color:var(--rose);display:block;margin:5px 0}h2{font-family:var(--serif);font-weight:400;font-size:45px;line-height:1.12;margin:16px 0 28px}h2 em{font-weight:400;display:block;font-size:1.14em}h3{font-family:var(--serif);font-weight:500}.hero-quote{font-family:var(--serif);font-size:18px;font-style:italic;color:var(--muted);margin:12px 0 27px}.date-lockup{display:flex;gap:20px;justify-content:center;align-items:center}.date-lockup>span{font-size:8px;letter-spacing:2px;line-height:2}.date-lockup strong{font-family:var(--serif);font-size:47px;font-weight:400;line-height:1;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 20px}.hero-location{font-size:8px;letter-spacing:2px;margin:20px 0 8px}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--serif);font-size:17px;font-style:italic;margin:34px auto 0;text-decoration:none;color:var(--muted)}.scroll-cue span{font-family:var(--sans);font-size:20px;color:var(--wine)}.botanical{position:absolute;width:240px;height:450px;color:#9e68778c;pointer-events:none}.botanical-left{left:-58px;top:20px;transform:rotate(-27deg)}.botanical-right{right:-52px;bottom:-40px;transform:rotate(145deg)}.botanical svg{width:170px;height:280px;position:absolute}.botanical svg+svg{transform:rotate(29deg);left:45px;top:170px;opacity:.5}.section-pad{padding:75px 35px;text-align:center}.section-number{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);line-height:1.8}.single-bloom{display:block;width:50px;height:76px;margin:30px auto 20px;color:var(--rose)}.greeting{font-family:var(--serif);font-size:19px;font-style:italic;color:var(--muted)}.welcome{border-top:1px solid var(--line)}.body-copy{font-size:12px;line-height:2.1;color:var(--muted);margin:24px auto}.couple-names{margin:30px auto}.couple-names p{font-family:var(--serif);font-size:33px;margin:5px auto;font-weight:500}.couple-names>span{display:block;font-family:var(--script);font-size:32px;color:var(--rose);margin:3px 0}.ornament{display:flex;gap:13px;align-items:center;justify-content:center;color:var(--rose);margin:38px 0}.ornament:before,.ornament:after{content:'';width:60px;height:1px;background:var(--line)}.event-facts{display:flex;gap:50px;justify-content:center;margin-bottom:35px}.event-facts>div{display:flex;flex-direction:column;gap:9px}.event-facts span{font-size:8px;letter-spacing:2px;color:var(--muted)}.event-facts strong{font-family:var(--serif);font-size:24px;font-weight:500}.event-facts small{font-size:10px;color:var(--muted)}.button{min-height:47px;padding:14px 22px;display:inline-flex;align-items:center;justify-content:center;gap:13px;text-decoration:none;font-family:var(--sans);font-size:10px;letter-spacing:.6px;border:1px solid transparent;border-radius:0;line-height:1.5;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button svg{width:17px;height:17px}.button-outline{border-color:#b68d96;background:transparent;color:var(--wine)}.button-outline:hover{background:#61283b07}.button-burgundy{background:var(--wine);color:var(--paper)}.button-burgundy:hover{background:var(--deep)}.countdown-section{background:var(--wine);color:var(--ivory);padding:55px 40px;text-align:center;position:relative}.countdown-section:before,.countdown-section:after{content:'✧';position:absolute;color:#b28c6f;font-size:28px;left:40px;top:50%;transform:translateY(-50%)}.countdown-section:after{left:auto;right:40px}.countdown-heading>.eyebrow{font-size:8px;color:#d9bbc1}.countdown-heading h2{font-size:32px;margin:15px auto 27px}.countdown-heading h2 em{display:inline;font-size:1em}.countdown{display:flex;gap:23px;justify-content:center;align-items:flex-start}.countdown>div{display:flex;flex-direction:column;gap:7px;min-width:45px}.countdown strong{font-family:var(--serif);font-weight:400;font-size:45px;line-height:1.1;font-variant-numeric:tabular-nums}.countdown div span{font-size:7px;letter-spacing:2px;color:#d9bbc1}.count-separator{font-family:var(--serif);font-size:25px;color:#b98793;line-height:1.6}.timeline-section>.eyebrow{margin-top:35px;font-size:8px}.timeline{list-style:none;padding:0;margin:45px auto 35px;max-width:530px;text-align:left}.timeline li{display:grid;grid-template-columns:130px 1fr;gap:40px;position:relative;padding-bottom:38px}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:'';position:absolute;left:147px;width:1px;top:8px;bottom:-8px;background:var(--line)}.timeline li:last-child:before{display:none}.timeline li:after{content:'';position:absolute;left:143px;top:8px;background:var(--paper);border:1px solid var(--rose);width:9px;height:9px;transform:rotate(45deg)}.timeline time{font-family:var(--serif);font-size:28px;line-height:1;text-align:right}.timeline time span{display:block;font-size:10px;font-family:var(--sans);color:var(--muted);margin-top:10px;line-height:1.4}.timeline h3{font-size:24px;margin:0 0 8px;line-height:1.1}.timeline li p{font-size:10px;color:var(--muted);line-height:1.8;margin:0;max-width:260px}.small-note{font-size:9px;line-height:1.9;color:var(--muted)}.location-section{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.location-art{min-height:520px;background:#e6d8cb;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px;background-image:linear-gradient(#4d223b1c,#452b2a04),url('assets/burgundy-botanical.png');background-size:cover;color:#ebd1bd}.arch-line{border:1px solid #e2bda361;border-radius:180px 180px 0 0;width:245px;height:350px;display:grid;place-items:center;position:relative}.arch-line:after{content:'';position:absolute;inset:10px;border:1px solid #e2bda32b;border-radius:160px 160px 0 0}.arch-line>svg{width:100px;height:150px;position:absolute;top:30px;opacity:.65}.arch-line>span{font-family:var(--serif);font-size:55px;font-weight:400;margin-top:105px;letter-spacing:3px}.arch-line i{font-family:var(--script);font-weight:400;color:#c29d84;font-size:45px}.location-art>p{font-size:7px;letter-spacing:2px;margin-top:25px;text-align:center;line-height:1.8}.location-copy{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:50px 30px}.location-copy h2{font-size:35px;margin:27px 0}.location-pin{color:var(--rose);margin-bottom:10px}.location-copy h3{font-size:24px;margin:5px 0 8px}.location-copy>p:not([class]){font-size:11px;color:var(--muted)}.location-copy .small-note{margin:12px auto 24px}.map-note{font-size:8px;color:var(--muted);margin-top:12px}.share-section h2{margin-top:30px}.share-actions{display:flex;gap:13px;justify-content:center;margin:30px auto 10px;flex-wrap:wrap}.share-status{min-height:22px;font-size:10px;color:var(--wine);line-height:1.6;overflow-wrap:anywhere;max-width:620px;margin:12px auto 26px}.personalise{max-width:580px;margin:25px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}.personalise summary{cursor:pointer;list-style:none;font-size:10px;letter-spacing:.4px;display:flex;justify-content:space-between;padding:20px 0;align-items:center}.personalise summary::-webkit-details-marker{display:none}.personalise summary>span{font-size:20px;font-family:var(--serif);font-weight:400}.personalise[open] summary>span{transform:rotate(45deg)}.personalise-inner{padding-bottom:22px}.personalise label{font-size:9px;display:block;margin:0 0 9px}.input-row{display:flex;gap:8px}.input-row input{background:transparent;border:1px solid var(--line);padding:13px;font:11px var(--sans);color:var(--ink);min-width:0;flex:1;border-radius:0}.input-row button{border:1px solid var(--wine);color:var(--wine);background:transparent;padding:12px 15px;font-size:10px}.personalise-inner>p{font-size:9px;color:var(--muted);line-height:1.8}.site-footer{background:#eadecf;text-align:center;padding:45px 25px 35px;border-top:1px solid #d6c0b4}.footer-bloom{width:38px;height:58px;color:#a17876}.closing-script{font-family:var(--script);font-size:55px;margin:6px 0 5px}.site-footer>p:not([class]){font-size:10px;color:var(--muted)}.site-footer .brand{display:flex;width:max-content;margin:33px auto 10px;font-size:24px}.collection-name{display:block;font-size:7px;letter-spacing:2px;color:var(--muted)}.demo-disclosure{font-size:8px;color:var(--muted);margin:27px 0 14px;line-height:1.8}.site-footer .text-button{font-size:8px}.fallback-copy{width:100%;font-family:var(--sans);font-size:11px;color:var(--ink);padding:10px;border:1px solid var(--line);background:var(--paper)}[hidden]{display:none!important}@keyframes coverFade{0%,70%{opacity:1}100%{opacity:0}}@keyframes pageReveal{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.cover{padding-top:45px}.cover-intro{margin-top:40px}.envelope{width:430px;height:575px}}
@media(max-height:800px) and (min-width:601px){.cover{padding-top:25px}.cover-intro{margin:12px 0 15px}.envelope{width:300px;height:400px}.cover-footer{padding-top:20px}.cover-footer p{margin-top:9px}}
@media(max-width:700px){.page-header{padding:20px 22px}.page-header .brand{font-size:18px;letter-spacing:3px}.page-header nav{gap:18px;font-size:9px}.page-header>.text-button{font-size:8px}.hero{min-height:790px;padding-top:50px}.botanical{width:180px;opacity:.65}.botanical-left{left:-100px;top:55px}.botanical-right{right:-95px;bottom:0}.section-pad{padding:62px 25px}.event-facts{gap:25px}.event-facts strong{font-size:21px}.location-section{grid-template-columns:1fr}.location-art{min-height:390px;padding:35px}.arch-line{width:210px;height:280px}.arch-line>svg{width:70px;height:115px;top:25px}.arch-line>span{font-size:48px;margin-top:85px}.location-art>p{margin-bottom:0}.location-copy{padding:55px 25px}.location-copy h2{font-size:40px}.timeline{max-width:480px}.timeline li{grid-template-columns:105px 1fr;gap:36px}.timeline li:before{left:122px}.timeline li:after{left:118px}.timeline h3{font-size:23px}.countdown-section:before{left:20px}.countdown-section:after{right:20px}}
@media(max-width:450px){.cover{padding:25px 24px 20px;min-height:100svh}.cover-masthead .brand{font-size:22px}.brand-line{font-size:6px}.edition{font-size:7px;letter-spacing:1.2px}.cover-intro{margin:28px 0 23px}.cover-intro .eyebrow{font-size:7px;letter-spacing:2px}.guest-greeting{font-size:20px}.envelope{width:min(320px,84vw);height:min(435px,114vw)}.seal{width:79px;height:79px}.seal-inner{width:64px;height:64px}.seal-inner svg{width:23px;height:40px}.seal-inner>span{font-size:22px}.envelope-caption>span{font-size:16px;letter-spacing:3px}.open-label{font-size:7px;letter-spacing:2px}.cover-footer>span{font-size:16px}.cover-footer p{font-size:7px}.page-header nav{gap:13px;font-size:8px}.page-header>.text-button{font-size:7px}.page-header{padding:18px 16px}.page-header .brand{font-size:17px}.hero{padding:45px 13px 30px;min-height:760px}.hero>.eyebrow{font-size:7px;letter-spacing:2.3px;margin-bottom:23px}.hero-arch{width:85%;padding:32px 12px 30px}.serif-overline{font-size:20px}h1{font-size:80px;margin-bottom:23px}h1>i{font-size:43px}.hero-quote{font-size:16px}.date-lockup{gap:14px}.date-lockup strong{font-size:39px;padding:0 15px}.date-lockup>span{font-size:7px;letter-spacing:1.3px}.hero-location{font-size:7px;letter-spacing:1.6px}.scroll-cue{font-size:15px;margin-top:28px}h2{font-size:37px}.greeting{font-size:17px}.body-copy{font-size:11px}.couple-names p{font-size:29px}.event-facts{flex-direction:column;gap:28px}.event-facts strong{font-size:24px}.button{font-size:9px;padding:14px 18px}.countdown-section{padding:43px 18px}.countdown-heading h2{font-size:27px}.countdown-section:before,.countdown-section:after{display:none}.countdown{gap:14px}.countdown>div{min-width:38px}.countdown strong{font-size:39px}.countdown div span{font-size:6px}.count-separator{font-size:20px}.timeline-section>.eyebrow{font-size:7px;letter-spacing:2px}.timeline li{grid-template-columns:90px 1fr;gap:30px;padding-bottom:35px}.timeline li:before{left:104px}.timeline li:after{left:100px}.timeline h3{font-size:22px}.timeline time{font-size:25px}.timeline time span{font-size:8px}.timeline li p{font-size:9px}.timeline{margin-top:38px}.share-actions{flex-direction:column;width:100%;max-width:280px}.input-row{flex-direction:column}.input-row input{min-height:45px}.input-row button{min-height:43px}.desktop-break{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}.envelope:hover,.button:hover{transform:none}}
.share-copy-fallback{max-width:580px;margin:20px auto;text-align:left}.share-copy-fallback label{display:block;font-size:10px;margin-bottom:8px}.share-copy-fallback input,.share-copy-fallback textarea{display:block;width:100%;padding:12px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font:11px var(--sans);line-height:1.8}.share-copy-fallback button{padding:11px 18px;border:1px solid var(--wine);background:transparent;margin-top:10px;font-size:10px}
.page-header nav a{padding:10px 0}
.collection-return{display:block;width:max-content;max-width:100%;font-size:9px;font-family:var(--sans);letter-spacing:.4px;color:var(--muted);text-decoration:none;margin:0 auto 18px;padding:8px 0;border-bottom:1px solid var(--line)}.collection-return:hover{color:var(--wine)}
