:root{--cream:#fff9f4;--pink:#e9a0bb;--lilac:#a987bd;--plum:#55354f;--wine:#741d3f}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Montserrat,sans-serif;color:var(--cream);background:#3e2c46}.app{position:fixed;inset:0;overflow:hidden;background:linear-gradient(#4c315377,#2c1e31bb),url('assets/disco-glam-hero.png') center/cover}.app:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 20%,transparent 15%,#291c2b77 62%,#211725dd)}.sparkles{position:absolute;z-index:5;top:13%;left:0;right:0;text-align:center;font-size:18px;letter-spacing:1.5em;color:#fff;opacity:.7;animation:twinkle 3s infinite}@keyframes twinkle{50%{opacity:.2}}header{position:absolute;z-index:20;top:0;left:20px;right:20px;padding-top:max(18px,env(safe-area-inset-top));display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.25em}header i{height:1px;background:#ffffff55;flex:1}header b{color:#f4bbd0}main{position:absolute;inset:0;z-index:10}.slide{position:absolute;inset:0;padding:70px 20px 95px;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateX(15%) scale(.97);transition:.6s cubic-bezier(.2,.8,.2,1)}.slide.active{opacity:1;visibility:visible;transform:none}.slide.leave{opacity:0;visibility:visible;transform:translateX(-15%)}.cover{background:linear-gradient(transparent 35%,#2f2030b8 67%,#281b2ae8)}.cover-copy{text-align:center;align-self:end;text-shadow:0 4px 28px #291825}.cover-copy>p,.kicker{font-size:8px;letter-spacing:.32em;font-weight:700}.cover h1{font:400 clamp(5rem,24vw,9rem)/.75 Italiana;margin:0}.xv{font-size:10px;letter-spacing:.3em;margin:18px 0}.xv b{font:400 28px Italiana}.cover-copy>span{font-size:8px;letter-spacing:.17em}.card{width:min(100%,480px);padding:30px 22px;text-align:center;background:#3b2639aa;border:1px solid #ffffff55;backdrop-filter:blur(12px);box-shadow:0 24px 70px #24152588;position:relative}.card:before,.card:after{content:'✦';position:absolute;color:#fff;top:-10px;font-size:20px;text-shadow:0 0 12px #fff}.card:before{left:16px}.card:after{right:16px}.kicker{color:#f7c4d7;margin:0 0 18px}.star{font-size:25px}.card h2{font:400 clamp(2.8rem,14vw,5rem)/.9 Italiana;margin:12px 0}.card h2 em{color:#f3bad1}.intro>em,.rsvp>em{font:italic 20px Italiana;color:#f3bad1}.card>p:not(.kicker){font-size:12px;line-height:1.7;color:#eee0e7}.date h2{font-size:2.5rem}.date>strong{font:400 clamp(7rem,36vw,11rem)/.7 Italiana;display:block}.date h3{font-size:11px;letter-spacing:.25em}.count{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:18px}.count div{padding:10px 2px;background:#ffffff13;border:1px solid #ffffff35}.count b,.count span{display:block}.count b{font:400 18px Italiana}.count span{font-size:6px}.pin{font-size:28px;color:#f7bad1}.place address{font-style:normal;font-size:12px;line-height:1.5;font-weight:700}.place a,.rsvp button{display:block;margin:18px auto 0;background:var(--cream);color:#4a3148;border:0;padding:13px 18px;text-decoration:none;font-size:8px;letter-spacing:.13em;font-weight:700}.looks{display:grid;gap:8px}.looks>div{display:flex;align-items:center;gap:15px;text-align:left;border:1px solid #ffffff35;padding:11px}.looks img{width:38px;filter:brightness(0) invert(1)}.looks p{font-size:10px;line-height:1.5;margin:0}.wine{display:flex;gap:14px;align-items:center;text-align:left;margin-top:10px;padding:10px;border:1px solid #a96b82}.wine i{width:30px;height:30px;border-radius:50%;background:var(--wine);box-shadow:0 0 15px #a94c70}.wine p{font-size:9px;margin:0}.program h2{margin-bottom:18px}.program>div{display:grid;grid-template-columns:55px 1fr;gap:12px;align-items:center;text-align:left;border-bottom:1px solid #ffffff25;min-height:42px}.program time{font:400 16px Italiana;color:#f4bcd1}.program p{font-size:9px;margin:0}.program small{display:block;margin-top:16px;font:italic 13px Italiana;color:#f4bcd1}.rsvp>p{max-width:320px;margin:0 auto 15px}form{display:grid;gap:9px}form>input{width:100%;padding:12px;background:#fff1;border:1px solid #ffffff55;color:#fff;font:11px Montserrat;outline:none}.rsvp form>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rsvp label input{position:absolute;opacity:0}.rsvp label span{display:block;padding:10px;border:1px solid #ffffff55;font-size:8px}.rsvp label input:checked+span{background:#fff;color:#55354f}.rsvp button{width:100%;margin:0}.rsvp form small{min-height:12px;font-size:8px}.rsvp>em{display:block;margin-top:8px;font-size:15px}footer{position:absolute;z-index:30;left:18px;right:18px;bottom:max(15px,env(safe-area-inset-bottom));display:grid;grid-template-columns:40px 1fr 145px;gap:10px;align-items:center}footer button{height:43px;border:1px solid #ffffff88;background:#3d273999;color:#fff;font:700 8px Montserrat;letter-spacing:.08em}footer>div{display:flex;gap:8px;align-items:center;font-size:7px}footer i{height:1px;background:#ffffff44;flex:1}footer i b{display:block;width:14.28%;height:100%;background:#fff;box-shadow:0 0 8px #fff;transition:.4s}@media(min-width:760px){.slide{padding:80px 8vw 90px}.cover-copy{text-align:left;justify-self:start;align-self:center;margin-left:7vw}.cover h1{font-size:9rem}.card{max-width:680px;padding:44px}.location .card,.dress .card{margin-left:-35vw}.sparkles{font-size:23px}.program{display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.program .kicker,.program h2,.program small{grid-column:1/-1}.program>div{min-width:250px}}@media(max-height:690px){.slide{padding-top:58px;padding-bottom:70px}.card{padding:20px}.card h2{font-size:2.6rem}.date>strong{font-size:6rem}.program>div{min-height:36px}.cover h1{font-size:5rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important}.slide{transition:none}}
