@import url('assets/fonts.css');
:root{--wine:#4b1928;--deep:#280b15;--ink:#542e31;--gold:#bd9864;--cream:#faf3e8;--muted:#80676a;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes','Brush Script MT',cursive;--sans:'Jost',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}body.sealed{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{border:0}a{text-underline-offset:5px}.eyebrow{text-transform:uppercase;font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.25em;line-height:1.8}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--cream);padding:12px}.skip:focus{top:15px}.site-header{height:74px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b8996a30;background:#faf3e8f5}.monogram{text-decoration:none;font-size:28px;letter-spacing:.03em}.monogram i{font-size:19px;color:var(--gold)}.site-header nav{display:flex;gap:34px;font-family:var(--sans);font-size:11px;letter-spacing:.08em}.site-header nav a{text-decoration:none}.site-header nav a:hover{color:#a17949}.header-date{font-size:13px;letter-spacing:.16em}.hero{position:relative;display:flex;justify-content:center;background:radial-gradient(ellipse,#f1e1d1,#e9d8c7);overflow:hidden}.invitation-card{position:relative;width:600px;height:900px;background:url('assets/romance.webp') center/100% 100% no-repeat;box-shadow:0 0 80px #a97f5930}.hero-copy{position:absolute;top:20%;left:18%;right:18%;text-align:center}.hero-copy .eyebrow{font-size:9px;letter-spacing:.17em;margin:0}.wedding-day{font-size:16px;margin:9px -10px 17px;line-height:1.4}h1{font-weight:400;margin:0}h1>span{font-family:var(--script);font-size:80px;display:block;line-height:1.14}h1 small{display:block;text-transform:uppercase;font-family:var(--sans);font-size:10px;letter-spacing:.38em;line-height:1.5;margin:2px 0 0;padding-left:.3em}h1 i{display:block;font-size:26px;font-weight:400;line-height:1;margin:13px 0 11px;color:#9f7a4d}.hero-date{margin-top:24px}.hero-date span{display:block;font-style:italic;font-size:16px}.hero-date strong{display:block;font-size:22px;font-weight:500;margin-top:4px}.hero-tagline{font-style:italic;font-size:15px;margin:14px -5px}.scroll-cue{position:absolute;bottom:2.8%;left:50%;transform:translateX(-50%);text-decoration:none;text-align:center;color:#442a23}.scroll-cue span:first-child{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}.scroll-cue span:last-child{font-size:22px;display:block;line-height:1.3}.hero-side{position:absolute;top:50%;writing-mode:vertical-rl;font-size:11px;letter-spacing:.18em;font-family:var(--sans);text-transform:uppercase;color:#8e6e5c}.hero-side.left{left:8%;transform:rotate(180deg) translateY(50%)}.hero-side.right{right:8%;transform:translateY(-50%)}.section{padding:100px 24px}h2{font-size:54px;line-height:1.08;font-weight:400;margin:18px 0 24px}h2 em{font-weight:400;color:#986c58}h3{font-size:28px;font-weight:500;margin:0 0 8px}.welcome{text-align:center;max-width:800px;margin:auto}.flourish{font-size:38px;color:var(--gold);margin-bottom:24px}.prose{font-size:21px;line-height:1.65;max-width:505px;margin:0 auto;color:#785655}.signature{font-family:var(--script);font-size:41px;margin:30px 0 0}.date-section{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:0 auto;gap:90px;border-top:1px solid #bc9d7c55;align-items:center}.date-copy>p:not(.eyebrow){font-size:20px}.button{background:var(--wine);color:#fff3e4;border:1px solid var(--wine);padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:30px;font-family:var(--sans);font-size:11px;letter-spacing:.055em;text-decoration:none;min-height:47px;transition:background .2s,transform .2s}.button:hover{background:#64283b;transform:translateY(-2px)}.button span{font-size:19px;line-height:1}.calendar-note{display:block;font-family:var(--sans);font-size:9px;color:var(--muted);line-height:1.6;margin-top:12px}.calendar{border:1px solid #b6997370;padding:28px 24px 20px;position:relative;box-shadow:10px 10px 0 #eadecf55}.calendar:before{content:'';position:absolute;inset:5px;border:1px solid #b6997330;pointer-events:none}.calendar-title{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid #b6997340;padding-bottom:16px;margin-bottom:16px}.calendar-title span:first-child{font-size:32px}.calendar-title span:last-child{font-size:16px;font-style:italic}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-grid>*{display:grid;place-items:center;aspect-ratio:1;font-size:19px;font-weight:400}.calendar-grid b{font-family:var(--sans);font-size:10px;color:#927b71}.chosen{background:var(--wine);color:var(--cream);border-radius:50%;box-shadow:0 0 0 3px #4b192815;position:relative}.calendar-caption{display:block;text-align:center;font-size:17px;font-style:italic;margin-top:18px;color:#8e6c5c}.countdown-section{background:var(--wine);color:#f6e8d8;text-align:center;position:relative;overflow:hidden}.countdown-section:before,.countdown-section:after{content:'❦';position:absolute;font-size:290px;color:#bd98640d;top:0}.countdown-section:before{left:-40px;transform:rotate(-30deg)}.countdown-section:after{right:-40px;transform:rotate(30deg)}.countdown-section h2 em{color:#d6b894}.countdown-section .eyebrow{color:#d6b894}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:26px;margin:44px auto 28px}.countdown strong{font-size:62px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.countdown>div{min-width:83px}.countdown>div>span{display:block;font-family:var(--sans);font-size:9px;text-transform:uppercase;letter-spacing:.2em;margin-top:15px;color:#d6b894}.countdown>i{font-size:32px;font-style:normal;color:#c29b7377;line-height:1.6}.tiny{font-size:11px;font-family:var(--sans);color:#e3c7b9;letter-spacing:.02em}.details{max-width:900px;margin:auto;text-align:center}.detail-list{text-align:left;margin-top:55px}.detail-list>div{padding:30px 0;border-top:1px solid #b6997350;display:grid;grid-template-columns:65px 1fr 40px;align-items:start;gap:22px}.detail-list>div:last-child{border-bottom:1px solid #b6997350}.detail-number{font-size:17px;color:#b28a5b;padding-top:7px}.detail-list p{font-size:19px;margin:0 0 7px}.detail-list small{font-family:var(--sans);font-size:11px;line-height:1.7;color:var(--muted)}.detail-mark{font-size:28px;color:var(--gold);padding-top:20px}.closing{background:#eddfd1;text-align:center;padding:65px 24px}.closing-frame{max-width:730px;margin:auto;border:1px solid #b1916a99;padding:65px 24px;outline:1px solid #b1916a33;outline-offset:7px}.closing p:not(.eyebrow):not(.signature){font-size:20px;line-height:1.6}.closing .signature{font-size:54px}.closing-date{display:block;font-size:16px;letter-spacing:.18em;margin:18px 0 30px}.closing .button{margin:0 auto}.text-button{display:block;width:fit-content;margin:18px auto 0;background:none;color:var(--ink);font-family:var(--sans);font-size:10px;text-decoration:underline;text-underline-offset:5px;padding:10px;min-height:40px}footer{display:flex;justify-content:space-between;padding:28px 5% 35px;font-family:var(--sans);font-size:9px;letter-spacing:.06em;color:var(--muted);gap:20px}.music-toggle{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:22px;background:var(--wine);color:#f6dfc3;border:1px solid #bb906266;z-index:10;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:30px;padding:10px 14px;box-shadow:0 4px 18px #2b071933;min-height:44px}.music-symbol{font-size:19px}#music-label{font-family:var(--sans);font-size:9px;letter-spacing:.03em}.music-toggle[aria-pressed=true] .music-symbol{animation:breathe 2s infinite}dialog{border:1px solid var(--gold);background:var(--cream);color:var(--ink);padding:44px 32px 30px;width:min(430px,calc(100% - 32px));text-align:center}dialog::backdrop{background:#240611bb;backdrop-filter:blur(5px)}dialog h2{font-size:36px}dialog label{font-family:var(--sans);font-size:11px;display:block;text-align:left;margin-bottom:8px}dialog input{display:block;width:100%;padding:12px;border:1px solid #b1916a;background:#fff9f0;color:var(--ink);font-family:var(--sans);font-size:12px;margin-bottom:18px}.dialog-close{position:absolute;right:10px;top:6px;font-size:30px;background:none;color:var(--ink);width:40px;height:40px}#share-status{font-family:var(--sans);font-size:11px;min-height:16px}body:not(.sealed) .hero-copy{animation:arrival 1.5s both}.section.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.section.reveal.in-view{opacity:1;transform:none}@keyframes breathe{50%{opacity:.55}}@keyframes arrival{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.hero-side.left{left:17%}.hero-side.right{right:17%}}
@media(max-width:900px){.hero-side{display:none}.date-section{gap:45px;margin:0 40px}.site-header{padding:0 30px}.section{padding-top:80px;padding-bottom:80px}.hero{background:#ead9c8}.invitation-card{width:580px;height:870px}}
@media(max-width:600px){.envelope{width:100vw;height:100svh}.cover-footnote{bottom:4%;font-size:13px}.cover-heading{top:13%}.cover-heading p{font-size:36px}.cover-bottom{bottom:15%}.wax-seal{width:88px;height:88px}.wax-seal>span{font-size:33px}.site-header{height:58px;padding:0 20px}.site-header nav{gap:19px;font-size:9px}.site-header nav a:last-child{display:none}.monogram{font-size:24px}.header-date{font-size:10px}.hero{padding:0}.invitation-card{width:100%;height:max(700px,calc(100svh - 58px));max-height:880px;box-shadow:none}.hero-copy{top:20%;left:16%;right:16%}.hero-copy .eyebrow{font-size:7px;letter-spacing:.17em}.wedding-day{font-size:13px;margin:9px -8px 16px}h1>span{font-size:clamp(60px,16vw,78px)}h1 small{font-size:8px}h1 i{font-size:23px;margin:10px 0 9px}.hero-date{margin-top:21px}.hero-date span{font-size:14px}.hero-date strong{font-size:19px}.hero-tagline{font-size:13px;margin-top:13px}.scroll-cue{bottom:2.5%}.scroll-cue span:first-child{font-size:7px}.section{padding:68px 25px}h2{font-size:41px}.eyebrow{font-size:8px;letter-spacing:.2em}.welcome .prose{font-size:19px;line-height:1.65}.signature{font-size:36px}.date-section{display:flex;flex-direction:column;gap:38px;text-align:center;margin:0 25px;padding:58px 0 68px}.date-section h2{font-size:44px}.date-copy>p:not(.eyebrow){font-size:19px}.calendar{width:100%;max-width:340px;padding:24px 24px 20px;text-align:left}.calendar-grid>*{font-size:18px}.countdown{gap:8px;margin:33px 0 28px}.countdown>div{min-width:57px}.countdown strong{font-size:44px}.countdown>i{font-size:25px}.countdown>div>span{font-size:7px;letter-spacing:.13em}.tiny{font-size:9px;line-height:1.7}.detail-list{margin-top:38px}.detail-list>div{grid-template-columns:25px 1fr 22px;gap:13px;padding:25px 0}.detail-list p{font-size:18px}.detail-list small{font-size:10px}.detail-list h3{font-size:26px}.detail-mark{font-size:22px}.detail-number{font-size:13px}.closing{padding:48px 24px}.closing-frame{padding:46px 18px}.closing h2{font-size:44px}.closing p:not(.eyebrow):not(.signature){font-size:18px}.closing .signature{font-size:46px}footer{flex-direction:column;text-align:center;gap:10px;padding:27px 25px 85px;font-size:8px}.music-toggle{right:14px;bottom:16px;padding:9px 13px}#music-label{font-size:8px}}
@media(max-width:360px){.hero-copy{top:21%}h1>span{font-size:58px}.site-header nav{gap:12px}.header-date{font-size:9px}.hero-date{margin-top:16px}.countdown>div{min-width:48px}.countdown strong{font-size:39px}.section{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.section.reveal{opacity:1;transform:none}}


h1:focus{outline:none}

.schedule-note{font-family:var(--sans);font-size:11px;line-height:1.8;color:var(--muted)}.event-time{display:inline-block;margin-top:5px;color:var(--wine);font-weight:600}.detail-list small{display:block;overflow-wrap:anywhere}.venues{margin-top:65px}.venues>h2{margin-bottom:32px}.venue-card{border:1px solid #b6997350;padding:28px 24px;margin:18px auto;text-align:center}.venue-card>p{font-size:21px;line-height:1.5;max-width:510px;margin:12px auto}.venue-card>small{display:block;font-family:var(--sans);font-size:10px;line-height:1.8;color:var(--muted)}.venue-card .text-button{font-size:11px;margin-top:12px}@media(max-width:480px){.detail-list>div{grid-template-columns:26px 1fr 18px;gap:10px}.detail-list h3{font-size:25px;line-height:1.15}.detail-list p{font-size:18px;line-height:1.5}.venue-card{padding:24px 18px}.venue-card>p{font-size:19px}}
.venue-map{display:block;margin:24px auto 0;max-width:620px;overflow:hidden;border:1px solid #b6997377;border-radius:3px;background:#eadfce;text-decoration:none;touch-action:pan-y}.venue-map iframe{display:block;width:100%;height:290px;border:0;pointer-events:none;background:#eadfce}.map-open-label{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 18px;background:var(--wine);color:var(--cream);font-family:var(--sans);font-size:11px;letter-spacing:.06em;min-height:48px;transition:background .2s}.venue-map:hover .map-open-label{background:var(--deep)}.venue-map:focus-visible{outline:2px solid var(--gold);outline-offset:5px}@media(max-width:480px){.venue-map{margin-top:20px}.venue-map iframe{height:235px}.map-open-label{font-size:10px}}
