@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&display=swap');
:root{--purple:#543466;--ink:#49374f;--gold:#e3c899;--cream:#fffaf4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.7 'DM Sans',sans-serif;background:#f9f2fc}h1,h2,h3,.signature,.monogram{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h2{font-size:clamp(2.6rem,4.8vw,4.7rem);line-height:1.1;margin:16px 0 30px}h3{font-size:2rem;line-height:1.2;margin:14px 0}p{margin:14px 0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bb8b42;outline-offset:5px}[hidden]{display:none!important}.eyebrow{font-size:14px;letter-spacing:.23em;font-weight:500}.opening{position:fixed;inset:0;z-index:100;background:#271335;display:grid;place-items:center;color:#fff8ed;text-align:center}.opening video,.opening-shade{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.opening-shade{background:linear-gradient(0deg,rgba(28,10,40,.74),rgba(36,10,50,.15),rgba(28,10,40,.4))}.opening-copy{position:relative;padding:30px;transition:opacity .9s}.opening h1{font-size:clamp(4rem,10vw,8rem);line-height:1.1;margin:25px 0}.opening h1 i{font-size:.65em;color:var(--gold)}.opening-sub{font-family:Georgia,serif;font-style:italic;font-size:1.1rem}.gold-button,.outline-button,.purple-button{display:inline-flex;justify-content:center;align-items:center;gap:22px;padding:14px 25px;border:1px solid #907194;border-radius:3px;background:transparent;letter-spacing:.02em;font-size:15px}.gold-button{background:var(--gold);color:#432550;border-color:var(--gold);margin:28px 0 8px}.purple-button{background:var(--purple);color:white;border-color:var(--purple);width:100%}.fine{font-size:13px;line-height:1.6}.skip{position:absolute;bottom:25px;right:25px;border:1px solid #ffffff80;background:#32143b80;color:#fff;padding:8px 18px}.playing .opening-copy{opacity:0;pointer-events:none}.opening.leaving{opacity:0;transition:opacity 1s;pointer-events:none}nav{position:absolute;top:0;left:0;width:100%;z-index:5;display:flex;align-items:center;gap:30px;padding:24px 6%;font-size:14px}nav .monogram{font-size:30px;margin-right:auto}nav i{font-size:22px}.nav-rsvp{border:1px solid #99759d;border-radius:50%;padding:11px 15px}.scene{position:relative;background-image:var(--bg);background-size:cover;background-position:center;overflow:hidden}.scene:before{content:'';position:absolute;inset:0;background:#fff9fa75}.content{position:relative;max-width:1100px;margin:auto;padding:110px 30px;text-align:center;z-index:1}.narrow{max-width:650px}.hero{min-height:100svh;display:grid;place-items:center;padding:125px 25px 65px;text-align:center}.hero:before{background:#fffcfa2e}.hero-frame{position:relative;border:1px solid #bba1bc;border-radius:250px 250px 5px 5px;width:min(620px,95%);padding:55px 25px 30px;background:linear-gradient(#fff8fc75,#fff8fc40)}.names{font-size:clamp(4.5rem,8vw,7rem);line-height:.8;margin:15px 0 35px}.names i{font-size:.47em;line-height:1.9;color:#9b6c9f}.tiny-star{color:#9b6c9f;font-size:30px}.rule{height:1px;width:60px;background:#a077a2;margin:auto}.date{font-size:18px;letter-spacing:.12em}.scroll-hint{font-size:13px;display:block;margin-top:35px}.scroll-hint span{display:block;font-size:24px}.light:before{background:#fffaf3aa}.countdown{display:flex;justify-content:center;gap:35px;margin:45px auto}.countdown>div{min-width:85px}.countdown strong{display:block;font-family:Georgia,serif;font-size:3.5rem;font-weight:400;line-height:1.2}.countdown span{font-size:13px;letter-spacing:.08em}.floral-art{position:absolute;width:210px;bottom:-70px;left:-80px;mix-blend-mode:multiply;opacity:.65}.floral-art.right{left:auto;right:-80px}.photo-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;text-align:left}.photo-text p{max-width:370px}.signature{font-style:italic;font-size:2.3rem;display:block;margin-top:25px}.arched-photo{margin:0}.arched-photo img{width:100%;height:530px;object-fit:cover;border-radius:240px 240px 8px 8px;box-shadow:0 20px 70px #54346630}.arched-photo figcaption{text-align:center;font-size:13px;margin-top:15px;font-style:italic}.timeline{display:flex;margin-top:60px;gap:50px}.timeline article{position:relative;flex:1}.timeline-symbol{font-family:Georgia,serif;font-size:35px;width:75px;height:75px;display:grid;place-items:center;border:1px solid #a886af;border-radius:50%;margin:auto;background:#fff6fc}.timeline article:not(:last-child):after{content:'';position:absolute;top:37px;left:calc(50% + 50px);width:calc(100% - 50px);height:1px;background:#b89dbc}.time{font-size:14px;color:#7b5581;margin-top:25px}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}.venue{background:#fffaf8cc;border:1px solid #dac7de;text-align:left}.venue-top{height:140px;background-size:cover;background-position:center;display:flex;align-items:end;padding:22px;color:white}.venue-top span{background:#40204ea8;padding:3px 8px;font-size:13px;letter-spacing:.12em}.venue-body{padding:28px}.map-slot{height:190px;margin:24px 0;display:grid;place-items:center;text-align:center;background:#eaddf0;border:1px solid #d4bedb;color:#785c80;font-size:14px}.map-slot iframe{border:0;width:100%;height:100%}.gallery-scene:before{background:#f5effb99}.gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center;margin:45px 0 20px}.gallery figure{margin:0}.gallery img{display:block;width:100%;height:490px;object-fit:cover;border-radius:5px}.gallery figure:nth-child(2) img{height:570px;border-radius:200px 200px 5px 5px}.gallery-caption{font-size:13px}.gift-panel,.rsvp-panel{margin:80px auto;background:#fffaf8eb;border:1px solid #d6c1da;padding:65px 45px}.gift-panel #giftDetails{border-top:1px solid #d6c1da;margin-top:25px;padding-top:15px}.rsvp-panel{text-align:left}.rsvp-panel>.eyebrow,.rsvp-panel>h2,.rsvp-panel>p{text-align:center}form{margin-top:30px}form>label,legend{display:block;font-size:14px;font-weight:500;margin-bottom:8px}input:not([type=radio]),select,textarea{width:100%;border:1px solid #c9b6cf;padding:12px 14px;background:#fffcfb;border-radius:3px;color:var(--ink);margin-bottom:20px}fieldset{border:0;padding:0;margin:0 0 22px}.radio{display:block;padding:6px 0;font-size:15px}.radio input{accent-color:var(--purple);margin-right:8px}footer{color:#fff8ef;text-align:center;padding:110px 25px 40px}footer:before{background:#3217419e}footer>div{position:relative;z-index:1}footer h2{font-size:clamp(3.5rem,6vw,6rem)}footer i{color:var(--gold)}.footer-line{height:1px;background:#fff4;max-width:600px;margin:70px auto 20px}.powered{font-size:13px;letter-spacing:.1em}.footer-flower{position:absolute;left:0;bottom:0;width:220px;opacity:.12;mix-blend-mode:screen}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}@media(min-width:1400px){.hero{background-size:100% auto}}@media(max-width:700px){nav{padding:18px 20px;gap:18px}.content{padding:75px 24px}.eyebrow{font-size:12px;letter-spacing:.18em}.hero-frame{padding:40px 18px 25px}.countdown{gap:15px}.countdown>div{min-width:55px}.countdown strong{font-size:2.7rem}.countdown span{font-size:12px}.photo-layout{grid-template-columns:1fr;gap:35px;text-align:center}.photo-text p{margin:14px auto}.arched-photo{max-width:400px;margin:auto}.arched-photo img{height:450px}.timeline{flex-direction:column;gap:35px}.timeline article:not(:last-child):after{display:none}.timeline article{padding-bottom:20px;border-bottom:1px solid #cdb7d1}.venue-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;gap:25px}.gallery img,.gallery figure:nth-child(2) img{height:450px}.gallery figure:nth-child(2){max-width:340px;margin:auto}.gift-panel,.rsvp-panel{margin:45px 20px;padding:45px 25px}.floral-art{width:150px}h2{font-size:2.7rem}.opening h1{font-size:4.5rem}.opening-sub{max-width:280px;margin:20px auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
