:root{--sage:#76806a;--sage-deep:#4f5947;--sage-light:#b9c0ae;--cream:#f6f0e6;--paper:#fffaf2;--gold:#b5965a;--ink:#30352d;--blush:#dfcbbd;--shadow:rgba(68,73,59,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,sans-serif;overflow-x:hidden}.locked{overflow:hidden}.paper-noise{position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E")}.welcome{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#f9f4eb,#e1e2d7);transition:opacity 1s,visibility 1s}.welcome.opened{opacity:0;visibility:hidden}.welcome-leaves{position:absolute;top:-55px;font:12rem 'Cormorant Garamond';color:var(--sage);opacity:.28;transform:rotate(25deg)}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;font-weight:600;color:var(--sage-deep)}.welcome h1,.names{font-family:'Great Vibes',cursive;font-weight:400;margin:.25rem 0;color:var(--sage-deep)}.welcome h1{font-size:clamp(3.5rem,14vw,6rem)}.welcome h1 span,.names i{color:var(--gold);font-weight:400}.welcome-date{font:500 .8rem 'Cormorant Garamond';letter-spacing:.28em}.tap{font:500 .72rem 'Cormorant Garamond';letter-spacing:.14em;text-transform:uppercase;margin-top:1.6rem}.envelope{position:relative;width:250px;height:165px;margin-top:2.2rem;border:0;background:none;cursor:pointer;filter:drop-shadow(0 18px 16px rgba(40,50,36,.25));transition:transform .4s}.envelope:hover{transform:translateY(-6px)}.envelope span{position:absolute;display:block}.envelope-back{inset:0;background:#7d876f;border-radius:5px}.envelope-letter{left:20px;right:20px;top:12px;height:125px;background:var(--paper);padding-top:26px;font:2rem 'Great Vibes';color:var(--gold);transition:transform .8s}.envelope-left{inset:0;clip-path:polygon(0 0,55% 58%,0 100%);background:#87917a}.envelope-right{inset:0;clip-path:polygon(100% 0,45% 58%,100% 100%);background:#77816a}.envelope-bottom{inset:0;clip-path:polygon(0 100%,50% 45%,100% 100%);background:#6e7861}.envelope-flap{inset:0;clip-path:polygon(0 0,100% 0,50% 64%);background:#929b86;transform-origin:top;transition:transform .7s;z-index:3}.wax{width:54px;height:54px;border-radius:50%;left:98px;top:70px;z-index:5;background:radial-gradient(circle at 35% 30%,#d7be78,#aa823d 72%);box-shadow:inset 0 0 0 4px rgba(255,255,255,.15),0 4px 8px #3d4637aa;color:#fff6df;font:600 1.15rem 'Cormorant Garamond';display:flex!important;align-items:center;justify-content:center}.wax span{position:static}.envelope.open .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope.open .envelope-letter{transform:translateY(-82px)}main{opacity:0;transition:opacity 1s}main.visible{opacity:1}.section{position:relative;padding:6rem max(1.4rem,calc((100vw - 1050px)/2));text-align:center}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 15%,#d7dccf 0,transparent 30%),linear-gradient(#fffaf3,#f0eadf)}.botanical{position:absolute;font:10rem 'Cormorant Garamond';color:var(--sage);opacity:.18}.botanical-left{left:-30px;top:12%;transform:rotate(-35deg)}.botanical-right{right:-35px;bottom:16%;transform:rotate(140deg)}.names{font-size:clamp(4.2rem,14vw,7.8rem);line-height:1}.full-names{font:500 clamp(1.1rem,3vw,1.35rem) 'Cormorant Garamond';letter-spacing:.06em}.full-names span{font:2rem 'Great Vibes';color:var(--gold)}.hero-photo{width:min(88vw,590px);height:min(60vh,620px);border-radius:48% 48% 12px 12px;overflow:hidden;margin:1.5rem auto;border:1px solid #fff9;box-shadow:16px 16px 35px #bcc0b5,-14px -14px 30px #fff}.hero-photo img,.closing-photo img,.photo img{width:100%;height:100%;object-fit:cover}.intro{max-width:640px;font:italic 1.35rem/1.6 'Cormorant Garamond'}.date-pill{display:flex;align-items:center;gap:1rem;margin:1.3rem 0;font:600 1.7rem 'Cormorant Garamond'}.date-pill small{border-inline:1px solid var(--gold);padding:.5rem 1rem;font:500 .75rem Montserrat;letter-spacing:.18em}.soft-button{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.82rem 1.15rem;border-radius:99px;background:var(--sage);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;box-shadow:6px 6px 13px #a6aa9c,-5px -5px 13px #fff;transition:.25s}.soft-button:hover{transform:translateY(-2px);background:var(--sage-deep)}.soft-button svg{width:17px}.countdown-section{background:linear-gradient(145deg,#68725e,#87907b);color:white}.countdown-section .eyebrow{color:#f7e8c9}.script-title{font:400 clamp(2.8rem,9vw,4.8rem) 'Great Vibes';margin:.35rem 0 2rem;color:var(--sage-deep)}.countdown-section .script-title{color:white}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.4rem,2vw,1.2rem);max-width:720px;margin:auto}.countdown div{padding:1.25rem .4rem;border:1px solid #fff5;border-radius:20px;background:#fff2;box-shadow:inset 2px 2px 8px #ffffff21,10px 12px 24px #424a3e66;backdrop-filter:blur(14px)}.countdown strong{display:block;font:500 clamp(1.7rem,7vw,3.6rem) 'Cormorant Garamond'}.countdown span{font-size:clamp(.55rem,2vw,.72rem);text-transform:uppercase;letter-spacing:.1em}.music-player{max-width:650px;margin:2.5rem auto 0;padding:1rem;display:flex;align-items:center;gap:1rem;border:1px solid #fff6;border-radius:22px;background:#fffde;color:var(--ink);box-shadow:0 18px 40px #343a3266;backdrop-filter:blur(20px)}.play,.mute{border:0;display:grid;place-items:center;cursor:pointer}.play{flex:0 0 54px;height:54px;border-radius:50%;background:var(--blush);color:white;box-shadow:6px 6px 12px #b4aaa0,-4px -4px 10px #fff}.mute{background:none;color:var(--gold)}.track-meta{flex:1;text-align:left;min-width:0}.track-title{display:block;font:600 .82rem Montserrat;margin-bottom:.45rem}.track-meta small{float:right;color:#766f67}.track-meta input{width:100%;height:4px;accent-color:var(--sage);cursor:pointer}.parents-section{background:#eee8dd}.glass-card{max-width:850px;margin:auto;padding:clamp(2rem,6vw,4rem);border:1px solid #fff;border-radius:36px;background:rgba(255,255,255,.5);backdrop-filter:blur(16px);box-shadow:14px 14px 35px #c7c0b6,-12px -12px 30px #fff}.section-icon,.line-icon svg{color:var(--gold);width:42px;height:42px}.glass-card h2,.soft-card h2{font:500 clamp(2rem,6vw,3.1rem) 'Cormorant Garamond';margin:.4rem}.parents-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;align-items:center;margin-top:2rem}.parents-grid h3{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--sage)}.parents-grid p{font:500 1.25rem 'Cormorant Garamond';margin:.3rem}.divider{width:1px;height:90px;background:linear-gradient(transparent,var(--gold),transparent)}.itinerary-section{background:var(--paper)}.timeline{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 40px 1fr;align-items:center}.event-card{padding:2.2rem 1.5rem;border-radius:40px 12px 40px 12px;background:#f3eee5;box-shadow:10px 10px 24px #d8d0c5,-10px -10px 24px #fff}.event-card:nth-child(3){border-radius:12px 40px 12px 40px}.icon-orb{width:72px;height:72px;margin:auto;display:grid;place-items:center;border-radius:50%;color:var(--sage-deep);background:#ece8dd;box-shadow:inset 5px 5px 10px #d2cec4,inset -5px -5px 10px white}.icon-orb svg{width:36px;height:36px}.event-card time{display:block;margin:1.3rem 0 .4rem;color:var(--gold);font:600 1.15rem 'Cormorant Garamond'}.event-card h3{font:500 1.7rem 'Cormorant Garamond';text-transform:uppercase;letter-spacing:.08em;margin:.4rem}.event-card p{line-height:1.5}.place{font-style:italic}.timeline-line{height:70%;display:flex;justify-content:center}.timeline-line span{width:1px;background:var(--gold);position:relative}.timeline-line span:after,.timeline-line span:before{content:'✦';position:absolute;left:50%;transform:translateX(-50%);color:var(--gold)}.timeline-line span:before{top:-12px}.timeline-line span:after{bottom:-12px}.punctuality{margin-top:2rem;font:italic 1.2rem 'Cormorant Garamond';color:var(--sage-deep)}.details-section{background:linear-gradient(135deg,#d5d7cc,#f3ece2);display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.soft-card{padding:3rem 2rem;border-radius:28px;background:rgba(246,240,230,.72);border:1px solid #fff8;box-shadow:14px 14px 30px #aeb2a888,-12px -12px 30px #fff9;backdrop-filter:blur(14px)}.soft-card>p{max-width:460px;margin:1rem auto;line-height:1.7}.note{padding:1rem;border-radius:14px;background:#fff8;font-size:.85rem}.dress-figures{display:flex;justify-content:center;align-items:center;gap:1rem;color:var(--sage);margin:1.4rem}.dress-figures svg{width:40px;height:40px}.dress-figures span{width:45px;height:1px;background:var(--gold)}.mini-envelope{color:var(--gold);margin-top:1.5rem}.mini-envelope svg{width:54px;height:54px}.gallery-section{background:#faf5ed}.gallery{max-width:980px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:250px;gap:14px}.photo{border:0;padding:0;border-radius:26px;overflow:hidden;cursor:zoom-in;box-shadow:8px 8px 18px #d6cfc4,-8px -8px 18px white}.photo img{transition:transform .65s}.photo:hover img{transform:scale(1.06)}.photo-wide{grid-column:span 2}.photo-tall{grid-row:span 2}.closing-section{min-height:850px;display:grid;place-items:center;padding:0;overflow:hidden}.closing-photo{position:absolute;inset:0}.closing-photo .veil{position:absolute;inset:0;background:linear-gradient(180deg,#39413699,#394136bb)}.closing-card{position:relative;z-index:1;width:min(88%,650px);padding:3.5rem 2rem;border:1px solid #fff8;border-radius:36px;background:#fff3;backdrop-filter:blur(18px);color:white;box-shadow:0 24px 60px #1d241dbb}.closing-card .eyebrow{color:#eedcae}.verse{font:italic clamp(1.7rem,5vw,2.6rem)/1.35 'Cormorant Garamond'}.citation{letter-spacing:.15em;text-transform:uppercase;font-size:.72rem}.monogram{font:4rem 'Great Vibes';color:#f2d99d;margin-top:2rem}.monogram span{font-size:2rem}.final-date{letter-spacing:.25em;font-size:.72rem}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}dialog{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:0;background:#1d211de8;backdrop-filter:blur(12px);align-items:center;justify-content:center}dialog[open]{display:flex}dialog img{max-width:min(88vw,1100px);max-height:86vh;border-radius:18px;box-shadow:0 30px 80px #0008}dialog button{position:absolute;border:0;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;background:#fff9;color:#34402f;cursor:pointer}#closeLightbox{right:22px;top:22px}.nav{top:50%}.prev{left:20px}.next{right:20px}
@media(max-width:700px){.section{padding:5rem 1.2rem}.hero{padding-top:4rem}.parents-grid{grid-template-columns:1fr}.divider{width:100%;height:1px}.timeline{grid-template-columns:1fr;gap:1.5rem}.timeline-line{height:40px}.details-section{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}.photo-wide{grid-column:span 2}.countdown{gap:.35rem}.countdown div{padding:1rem .15rem;border-radius:14px}.music-player{gap:.55rem}.play{flex-basis:46px;height:46px}.mute{padding:3px}.closing-section{min-height:720px}.nav{width:40px;height:40px}.prev{left:8px}.next{right:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
