﻿:root{--dark:#242b29;--brown:#35433c;--terracotta:#a94f36;--gold:#b98b4e;--cream:#f7f3ea;--muted:#6f736b;--line:#dbd7cb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--dark);font-family:'DM Sans',sans-serif}h1,h2,h3,.brand{font-family:'Cormorant Garamond',serif}h2{font-size:clamp(2.8rem,6vw,4.6rem);font-weight:500;line-height:1.1;margin:16px 0 24px}p{line-height:1.85}button,input,select,textarea{font:inherit}button,a{transition:background .2s,transform .2s}a{text-decoration:none;color:inherit}button{cursor:pointer}.hidden{display:none!important}.eyebrow{font-size:.66rem;letter-spacing:.25em;font-weight:600;color:var(--terracotta)}.icon{display:inline-block;width:21px;height:21px;flex-shrink:0;vertical-align:middle;stroke-width:1.75}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid var(--dark);background:var(--dark);color:var(--cream);padding:18px 27px;letter-spacing:.12em;font-size:.68rem;text-transform:uppercase}.btn:hover{background:var(--terracotta);border-color:var(--terracotta);transform:translateY(-2px)}.btn.light{background:var(--cream);color:var(--dark);border-color:var(--cream)}:focus-visible{outline:3px solid #b98b4e;outline-offset:5px}.envelope-screen{position:relative;min-height:100svh;display:grid;place-items:center;background:var(--dark);color:var(--cream);text-align:center;padding:65px 24px;overflow:hidden}.envelope-screen:before,.envelope-screen:after{content:'';position:absolute;top:0;bottom:0;width:60px;background:url('beadwork.svg') center/60px 80px}.envelope-screen:before{left:0}.envelope-screen:after{right:0}.envelope-content{position:relative;z-index:1;max-width:600px}.cover-edition{display:block;font-size:.6rem;letter-spacing:.3em;color:#d2b787;margin-bottom:38px}.envelope-content>.eyebrow{color:#dfd6c3}.envelope-content h1{font-size:clamp(3rem,7vw,5rem);font-weight:500;line-height:1.05;margin:30px 0 15px}.envelope-content p{font-size:.85rem;color:#c7c9bc;margin-bottom:28px}.envelope-art{width:min(310px,65vw);height:185px;margin:38px auto 20px;position:relative;background:linear-gradient(32deg,#dfd5bc 49.5%,#eee6d4 50%);border:1px solid #f3ead6;box-shadow:0 25px 65px #0004}.envelope-art:after{content:'';position:absolute;bottom:0;left:0;right:0;height:20px;background:url('beadwork.svg') center/30px 40px}.flap{position:absolute;inset:0;background:#f5ecda;clip-path:polygon(0 0,100% 0,50% 62%);filter:drop-shadow(0 2px 1px #0002)}.seal{position:absolute;z-index:1;left:50%;top:57%;transform:translate(-50%,-50%);background:var(--terracotta);color:#f6e7c9;border:4px double #d4a36d;border-radius:50%;width:57px;height:57px;display:grid;place-items:center;font:1.8rem 'Cormorant Garamond',serif}.nav{position:absolute;z-index:2;top:0;left:0;right:0;padding:27px 6%;display:flex;justify-content:space-between;align-items:center}.brand{font-size:1.8rem;display:flex;gap:13px;align-items:center}.brand-diamond{height:7px;width:7px;background:var(--terracotta);transform:rotate(45deg)}.nav-rsvp{border-bottom:1px solid var(--terracotta);padding:8px 0;font-size:.68rem;letter-spacing:.18em}.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--cream);padding:130px 100px 105px}.bead-panel{position:absolute;top:100px;bottom:75px;left:0;width:48px;background:url('beadwork.svg') center/48px 64px}.hero:after{content:'';position:absolute;top:100px;bottom:75px;right:0;width:48px;background:url('beadwork.svg') center/48px 64px}.hero-inner{position:relative;z-index:1;max-width:840px;animation:rise .8s ease both}.ornament,.divider-art{display:flex;justify-content:center;align-items:center;gap:14px;margin:26px auto;color:var(--gold)}.ornament:before,.ornament:after,.divider-art:before,.divider-art:after{content:'';width:45px;height:1px;background:currentColor}.ornament span,.divider-art span{display:block;width:8px;height:8px;border:1px solid currentColor;transform:rotate(45deg)}.intro{max-width:485px;margin:0 auto;font-size:.85rem;color:var(--muted)}.hero h1{font-weight:500;font-size:clamp(3.5rem,7.7vw,7rem);line-height:.95;letter-spacing:-.04em;margin:30px 0 23px}.hero h1 em{font-weight:400;color:var(--terracotta)}.subtitle{font-size:.72rem;letter-spacing:.08em;color:var(--muted)}.date-card{display:flex;justify-content:center;align-items:center;gap:25px;margin:30px auto}.date-card span{font-size:.63rem;letter-spacing:.16em;line-height:2}.date-card strong{font:4.2rem 'Cormorant Garamond',serif;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 25px}.hero-bottom{position:absolute;bottom:30px;display:flex;align-items:center;gap:19px;font-size:.58rem;letter-spacing:.22em;color:var(--muted)}.hero-bottom span{width:4px;height:4px;background:var(--terracotta);transform:rotate(45deg)}.section{padding:100px 24px;text-align:center}.section>p,.section-lead{max-width:560px;margin:0 auto 30px;color:var(--muted);font-size:.9rem}.details{border-top:1px solid var(--line)}.info-grid,.route-grid{max-width:920px;margin:42px auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.info-grid article,.route-grid article{border:1px solid var(--line);padding:32px;background:#fcfaf5}.info-grid article{border-top:3px solid var(--terracotta)}.info-grid h3,.route-grid h3{font-size:1.9rem;font-weight:500;margin:15px 0 10px}.info-grid p,.route-grid p{color:var(--muted);font-size:.85rem}.info-icon{color:var(--terracotta)}.info-icon .icon{width:28px;height:28px}.countdown{display:flex;justify-content:center;gap:0;padding-top:12px}.countdown div{min-width:105px;padding:0 20px;border-right:1px solid var(--line)}.countdown div:last-child{border:0}.countdown strong{display:block;font:2.9rem 'Cormorant Garamond',serif}.countdown span{font-size:.56rem;letter-spacing:.18em;color:var(--muted)}.small-note:empty{display:none}.quote-section{position:relative;background:var(--brown);color:var(--cream);text-align:center;padding:75px 24px 90px;border-block:10px solid var(--dark)}.quote-section .eyebrow{color:#d7b57f}.heritage-shield{width:85px;height:137px;display:block;margin:0 auto 28px}.quote-section h2 em{color:#dbb980;font-weight:400}.quote-section p{max-width:490px;margin:auto;color:#cbd0c2;font-size:.85rem}.route-grid{text-align:left}.route-grid article{position:relative;padding-left:32px}.route-grid h3{margin-top:0}.directions details{max-width:920px;margin:25px auto 0;text-align:left;border:1px solid var(--line);padding:24px;background:#fcfaf5;font-size:.85rem}.directions summary{cursor:pointer;font-weight:500;line-height:1.6}.directions li{margin:12px 0;line-height:1.7;color:var(--muted)}.rsvp{background:#eae7dc;border-top:1px solid var(--line)}.rsvp form{max-width:570px;margin:35px auto 0;text-align:left;display:grid;gap:22px;padding:35px;background:var(--cream);border:1px solid #d8d4c7}.rsvp label{font-size:.72rem;font-weight:500;display:grid;gap:10px}.rsvp input,.rsvp select,.rsvp textarea{width:100%;border:1px solid #cccfc3;background:#fffdf8;padding:14px;border-radius:0;color:var(--dark);font-size:.85rem}.rsvp textarea{resize:vertical}.rsvp button{width:100%}.rsvp button:disabled{opacity:.65;cursor:wait}.honeypot{position:absolute;left:-9999px}#formStatus{text-align:center;margin:0;font-size:.82rem}#formStatus:empty{display:none}footer{position:relative;padding:60px 24px 80px;text-align:center;background:var(--dark);color:var(--cream)}footer:after{content:'';position:absolute;bottom:0;left:0;right:0;height:20px;background:url('beadwork.svg') center/30px 40px}footer h2{font-style:italic;font-size:3.5rem;margin-bottom:10px}footer p{color:#c4c8bb;font-size:.8rem}.share{display:inline-flex;align-items:center;gap:12px;background:none;color:#e2c799;border:0;border-bottom:1px solid #9b8259;padding:12px 0;font-size:.75rem}.footer-note{font-size:.62rem;letter-spacing:.08em;margin-top:35px}@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1100px){.hero{min-height:900px}.bead-panel,.hero:after{width:80px;background-size:80px 107px}}@media(max-width:600px){.envelope-screen{padding:50px 32px}.envelope-screen:before,.envelope-screen:after{width:18px;background-size:30px 40px}.cover-edition{margin-bottom:28px}.nav{padding:22px 26px}.hero{padding:115px 32px 85px}.bead-panel,.hero:after{width:12px;background-size:24px 32px;top:95px;bottom:65px}.hero h1{font-size:clamp(3rem,12vw,4.3rem);line-height:1}.intro{font-size:.78rem}.hero .eyebrow{font-size:.58rem;letter-spacing:.18em}.subtitle{font-size:.67rem;max-width:250px;margin:auto;line-height:1.7}.date-card{gap:12px}.date-card strong{font-size:3.6rem;padding:0 15px}.date-card span{font-size:.52rem}.info-grid,.route-grid{grid-template-columns:1fr;gap:16px}.section{padding:65px 22px}.countdown div{min-width:0;flex:1;padding:0 10px;max-width:90px}.countdown strong{font-size:2.4rem}.countdown span{font-size:.49rem;letter-spacing:.1em}.rsvp form{padding:24px 18px}.quote-section{padding:60px 24px}.hero-bottom{gap:12px;font-size:.5rem}.info-grid article,.route-grid article{padding:26px}.directions details{padding:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.rsvp .share{color:var(--dark);line-height:1.6;text-align:left}.rsvp .share:hover{color:var(--terracotta)}
/* Layered invitation cover and opening sequence. */
.envelope-screen{isolation:isolate;background:radial-gradient(ellipse at 50% 36%,#475047 0%,#242b29 57%,#17201c 100%);padding:58px 36px 78px;transition:opacity .55s ease}
.envelope-screen:before,.envelope-screen:after{width:24px;background-size:36px 48px;opacity:.75}
.intro-halo{position:absolute;width:min(650px,87vw);aspect-ratio:1;border:1px solid #c8aa6e25;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-54%);z-index:-1;box-shadow:0 0 0 45px #c8aa6e05,0 0 0 46px #c8aa6e12}
.envelope-content{width:100%;max-width:650px}
.cover-edition{font-size:.54rem;letter-spacing:.27em;margin-bottom:20px}
.envelope-content>.eyebrow{font-size:.64rem;letter-spacing:.28em}
.envelope-art{width:min(350px,68vw);height:auto;aspect-ratio:1.65;margin:85px auto 30px;background:#c4b696;border:1px solid #dbcca9;box-shadow:0 30px 55px #0005;transform:rotate(-5deg);perspective:1000px;transition:transform .65s ease;overflow:visible}
.envelope-art:after{display:none}
.invitation-card{position:absolute;z-index:1;inset:9% 7% 4%;background:linear-gradient(115deg,#fffaf0,#e9dfc9);border:1px solid #d5c09c;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:9px;box-shadow:0 2px 10px #0002;transition:transform .7s cubic-bezier(.2,.7,.2,1) .85s}
.invitation-card:before{content:'';position:absolute;inset:9px;border:1px solid #b9955a66}
.invitation-card>span{font-size:.5rem;letter-spacing:.24em;color:#72664f}
.invitation-card strong{font:italic 2.8rem 'Cormorant Garamond',serif;color:var(--dark);font-weight:500}
.card-diamond{width:7px;height:7px;background:var(--terracotta);transform:rotate(45deg);margin-top:5px}
.envelope-pocket{position:absolute;inset:0;z-index:3;background:linear-gradient(32deg,#ddd0b4 49.5%,#eddfc2 50%);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}
.flap{z-index:4;background:linear-gradient(160deg,#f3e8cf,#d9c9a8);clip-path:polygon(0 0,100% 0,50% 63%);transform-origin:top;transition:transform .65s ease .12s,z-index 0s linear .445s;backface-visibility:visible;filter:none}
.envelope-ribbon{position:absolute;z-index:4;bottom:0;left:0;right:0;height:24px;background:url('beadwork.svg') center/36px 48px;border-top:2px solid #ba9156;border-bottom:2px solid #ba9156}
.seal{z-index:5;top:58%;width:64px;height:64px;background:radial-gradient(circle at 35% 25%,#bc7450,#853d2d 70%);border:3px double #d4a36d;box-shadow:2px 5px 8px #4b251a50,inset 0 0 0 4px #8e452e;border-radius:46% 54% 48% 52%;transition:opacity .25s ease,transform .4s ease}
.seal span{border:1px solid #e2b78166;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-style:italic}
.envelope-content h1{font-size:clamp(3rem,6.7vw,4.7rem);line-height:.95;margin:28px 0 17px;letter-spacing:-.025em}
.envelope-content h1 em{font-weight:400;color:#dfc18c}
.envelope-content p{font-size:.75rem;margin:0 auto 24px;max-width:320px}
.envelope-content .btn{background:#e9ddc4;border-color:#e9ddc4;padding:17px 26px;min-width:220px}
.envelope-content .btn:hover{background:#fff4dc;transform:translateY(-3px);box-shadow:0 8px 28px #0003}
.intro-note{display:block;font-family:'Cormorant Garamond',serif;font-size:1rem;font-style:italic;color:#b9bdad;margin-top:14px}
.intro-footer{position:absolute;bottom:25px;left:60px;right:60px;display:flex;justify-content:space-between;gap:20px;color:#b9bdad;font-size:.49rem;letter-spacing:.18em}
.envelope-screen.is-opening .envelope-art{transform:rotate(0deg) translateY(12px)}
.envelope-screen.is-opening .seal{opacity:0;transform:translate(-50%,-50%) scale(1.3)}
.envelope-screen.is-opening .flap{transform:rotateX(180deg);z-index:0}
.envelope-screen.is-opening .invitation-card{transform:translateY(-60%)}
.envelope-screen.is-opening .btn{opacity:.5;pointer-events:none}
.envelope-screen.is-overlay{position:fixed;left:0;right:0;z-index:100;min-height:0}
.envelope-screen.is-leaving{opacity:0;pointer-events:none}

@media(max-width:600px){.envelope-screen{padding:48px 28px 75px}.envelope-screen:before,.envelope-screen:after{width:12px;background-size:24px 32px}.cover-edition{font-size:.46rem;letter-spacing:.18em}.envelope-content>.eyebrow{font-size:.55rem;letter-spacing:.2em}.envelope-art{margin-top:75px;margin-bottom:28px}.invitation-card{gap:6px}.invitation-card strong{font-size:2.2rem}.invitation-card>span{font-size:.42rem}.seal{width:52px;height:52px}.seal span{width:36px;height:36px}.envelope-ribbon{height:20px}.intro-footer{left:30px;right:30px;font-size:.41rem;letter-spacing:.1em}.intro-note{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.envelope-screen,.envelope-art,.invitation-card,.flap,.seal{transition:none!important}main.invitation-revealed{animation:none!important}}

html{scrollbar-gutter:stable}
.map-preview{max-width:920px;margin:32px auto;border:1px solid var(--line);background:#fcfaf5}
.map-preview iframe{display:block;width:100%;height:clamp(280px,50vw,420px);border:0}
.map-preview figcaption{padding:14px 16px;color:var(--muted);font-size:.75rem;line-height:1.6;overflow-wrap:anywhere}
