@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap');
:root{--bg:#231a30;--dark:#1b1525;--panel:#2b2139;--lilac:#c9b2ed;--pale:#e8dcf5;--muted:#b3a5c2;--line:#a996c030;--silver:#c8c5d3;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--pale);font:14px/1.7 var(--sans)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--lilac);outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;background:var(--lilac);color:var(--dark);padding:12px;z-index:20}.skip:focus{top:10px}.topbar{height:92px;max-width:1300px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:italic 38px var(--serif);position:relative;line-height:1}.brand span{font-style:normal;font-size:19px;position:absolute;top:-5px;right:-16px}.top-date{font-size:11px;letter-spacing:.26em;color:var(--muted)}.top-link{font-size:11px;letter-spacing:.05em}.top-link span{margin-left:14px;color:var(--lilac)}.hero{max-width:1300px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;min-height:730px;position:relative;padding:56px 6% 66px;gap:8%}.hero-copy{padding-top:36px;position:relative}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.22em;color:var(--lilac);margin:0 0 26px}.little-star{position:absolute;right:20px;top:82px;color:var(--silver);font-size:28px}.hero h1{font:400 clamp(90px,10vw,144px)/.9 var(--serif);margin:40px 0 32px;letter-spacing:-.055em;color:var(--lilac)}.hero h1 span{display:block;font:400 15px/1.4 var(--sans);letter-spacing:.22em;color:var(--pale);margin:24px 0 0 7px}.hero-phrase{font:400 37px/1.13 var(--serif);margin:0 0 28px}em{font-weight:400;color:var(--lilac)}.date-line{display:flex;gap:16px;align-items:center}.date-line span{font-size:9px;letter-spacing:.17em;line-height:1.8}.date-line strong{font:400 52px var(--serif);border-right:1px solid var(--line);padding-right:18px}.city{font-size:9px;letter-spacing:.17em;color:var(--muted);margin:12px 0 30px}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:26px;font-size:11px;font-weight:600;padding:12px 24px;border:1px solid transparent;border-radius:2px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--lilac);color:var(--dark)}.primary:hover{background:#dac7f5}.outline{border-color:#ba9fd15e;background:transparent;color:var(--pale)}.outline:hover{background:#c9b2ed12}.hero-photo{position:relative;margin:10px 0 0;height:600px;border-radius:220px 220px 3px 3px;border:1px solid #d5c2ed45;padding:10px}.hero-photo:before{content:'';position:absolute;inset:22px -16px -16px 22px;border:1px solid var(--line);border-radius:220px 220px 3px 3px;z-index:-1}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 34%;border-radius:inherit}.hero-photo:after{content:'';position:absolute;inset:10px;background:linear-gradient(transparent 65%,#160f2699);border-radius:inherit;pointer-events:none}.photo-caption{position:absolute;bottom:30px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;z-index:1;font-size:8px;letter-spacing:.15em;color:#eee2fa}.photo-caption span:last-child{font-size:32px}.hero-spark{position:absolute;color:var(--silver);font-size:64px;pointer-events:none}.spark-one{right:4%;top:140px}.spark-two{right:42%;bottom:80px;font-size:34px}.music-strip{border-block:1px solid var(--line);background:var(--dark);padding:23px max(6%,calc((100vw - 1140px)/2));display:flex;gap:20px;align-items:center}.music-symbol{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:21px;color:var(--lilac)}.music-strip .eyebrow{font-size:8px;margin:0 0 3px}.music-strip p{margin:0;font-size:12px}.text-button{font-size:11px;background:none;border:0;color:var(--lilac);padding:10px 0;border-bottom:1px solid #c9b2ed66;line-height:1.5;display:inline-block}.music-strip .text-button{margin-left:auto}.section-pad{padding:90px max(6%,calc((100vw - 1100px)/2))}h2{font:400 clamp(36px,4vw,56px)/1.12 var(--serif);letter-spacing:-.025em;margin:0 0 28px}.intro{text-align:center;position:relative;padding-top:100px;padding-bottom:85px}.intro-text{max-width:500px;margin:25px auto;color:var(--muted);font-size:13px;line-height:1.9}.signature{font:italic 30px var(--serif);color:var(--lilac);margin-top:30px}.large-star{position:absolute;left:10%;bottom:70px;color:var(--silver);font-size:45px}.family{display:grid;grid-template-columns:1fr auto 1fr;text-align:center;gap:65px;padding-top:0;padding-bottom:80px}.family .eyebrow{font-size:9px;margin-bottom:18px}.names{font:400 25px/1.6 var(--serif);margin:0}.family-star{align-self:center;color:var(--silver);font-size:20px}.countdown-section{background:radial-gradient(ellipse at 5% 60%,#5e496044,transparent 50%),var(--dark);border-block:1px solid var(--line);display:flex;align-items:center;gap:70px;padding-top:50px;padding-bottom:55px;overflow:hidden}.disco-ball{width:210px;height:265px;object-fit:contain;flex-shrink:0}.countdown-content{flex:1}.countdown-content .eyebrow{margin-bottom:18px}.countdown-content h2{font-size:44px}.countdown{display:flex;align-items:flex-start;gap:20px}.countdown div{text-align:center;min-width:58px}.countdown strong{display:block;font:400 48px/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--pale)}.countdown span{font-size:8px;letter-spacing:.15em;color:var(--muted);display:block;margin-top:10px}.countdown i{font:400 27px var(--serif);color:#847292}.small-note{font-size:10px;color:var(--muted);margin-top:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:16px}.section-heading h2{margin:0}.event-grid{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line);margin-top:40px}.event{padding:35px 40px 45px 0;position:relative}.event+.event{border-left:1px solid var(--line);padding-left:60px;padding-right:0}.event-number{font-size:9px;letter-spacing:.18em;color:var(--muted)}.event-icon{position:absolute;right:40px;top:60px;font:400 40px var(--serif);color:var(--lilac)}.event+.event .event-icon{right:0}h3{font:400 38px/1.1 var(--serif);margin:36px 0 22px}h4{font-size:13px;font-weight:600;margin:24px 0 7px}.event-time{font-size:11px;color:var(--lilac)}address{font-size:12px;color:var(--muted);font-style:normal;line-height:1.8;min-height:45px}.event .button{margin-top:28px}.rsvp{background:radial-gradient(ellipse at 50% 100%,#624a7333,transparent 70%),var(--panel);text-align:center;border-top:1px solid var(--line);padding-top:65px;padding-bottom:70px}.rsvp-star{font-size:28px;color:var(--silver);display:block;margin-bottom:25px}.rsvp h2{font-size:58px}.rsvp>p:not(.eyebrow){color:var(--muted);font-size:12px}.pending{max-width:440px;margin:30px auto 0;display:flex;align-items:center;text-align:left;gap:20px;padding:22px;border:1px solid var(--line);border-radius:3px}.pending>span{font-size:30px;color:var(--lilac)}.pending strong{font-size:12px;font-weight:500;color:var(--pale)}.pending p{font-size:11px;margin:5px 0 0;color:var(--muted)}.rsvp .closing{font:italic 24px var(--serif);color:var(--lilac)!important;margin:40px 0 0}form{max-width:430px;margin:25px auto;text-align:left}form[hidden]{display:none}form label{display:block;font-size:12px;margin:18px 0 7px}input{display:block;width:100%;background:var(--dark);border:1px solid var(--line);border-radius:2px;padding:12px;color:var(--pale)}form .button{margin-top:25px;width:100%}footer{display:flex;align-items:center;justify-content:space-between;padding:36px 6%;background:var(--dark)}footer p,footer>span{font-size:9px;letter-spacing:.16em;color:var(--muted)}dialog{border:1px solid #7b638e;background:var(--panel);color:var(--pale);border-radius:12px;max-width:480px;width:calc(100% - 32px);padding:25px}dialog::backdrop{background:#100b1bcc;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.dialog-heading h2{font-size:29px;margin:0}.dialog-heading button{border:0;background:transparent;color:var(--lilac);width:42px;height:42px;font-size:20px}iframe{width:100%;border:0;border-radius:12px;display:block}body:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){.section-pad{padding-inline:calc((100vw - 1100px)/2)}}
@media(max-width:850px){.hero{gap:5%;padding-inline:6%;min-height:auto}.hero h1{font-size:100px}.hero-photo{height:550px}.hero-phrase{font-size:32px}.hero h1 span{font-size:11px}.family{gap:25px}.countdown-section{gap:30px}.disco-ball{width:150px}.countdown{gap:10px}.countdown strong{font-size:40px}.event+.event{padding-left:35px}.event{padding-right:25px}.event-icon{right:20px}}
@media(max-width:600px){.topbar{height:74px;padding-inline:7%}.top-date{font-size:9px}.top-link{font-size:9px}.hero{display:flex;flex-direction:column;padding:30px 7% 50px;gap:35px}.hero-copy{text-align:center;padding-top:15px}.hero .eyebrow{font-size:8px;margin-bottom:0}.hero h1{font-size:108px;margin:28px 0 20px}.hero h1 span{font-size:11px;margin:18px 0 0;letter-spacing:.2em}.hero-phrase{font-size:32px;margin:0 0 20px}.hero-phrase br{display:none}.date-line{justify-content:center}.date-line strong{font-size:44px}.city{margin-top:10px;margin-bottom:23px}.little-star{right:4px;top:80px;font-size:18px}.hero-photo{height:auto;aspect-ratio:3/4;width:100%;max-width:360px;margin:0 auto;border-radius:180px 180px 3px 3px}.hero-photo img{object-position:50% 35%}.hero-photo:before{border-radius:inherit;inset:15px -10px -10px 15px}.spark-one{right:4%;top:auto;bottom:350px;font-size:42px}.spark-two{right:auto;left:4%;bottom:30px;font-size:25px}.music-strip{padding:20px 7%;gap:12px;flex-wrap:wrap}.music-symbol{width:35px;height:35px}.music-strip .eyebrow{font-size:7px;letter-spacing:.13em}.music-strip p{font-size:10px}.music-strip .text-button{font-size:9px}.section-pad{padding:62px 7%}h2{font-size:35px}.intro h2 br{display:none}.intro-text{font-size:12px}.intro .eyebrow{font-size:8px}.large-star{display:none}.family{grid-template-columns:1fr;gap:26px;padding-top:0}.family .eyebrow{font-size:8px;margin-bottom:8px}.names{font-size:24px}.family-star{font-size:14px}.countdown-section{position:relative;display:block;text-align:center;padding:58px 7%}.disco-ball{position:absolute;top:-73px;right:-39px;opacity:.3;width:130px;height:190px}.countdown-content{position:relative}.countdown-content .eyebrow{font-size:8px}.countdown-content h2{font-size:37px}.countdown{justify-content:center;gap:10px}.countdown strong{font-size:42px}.countdown div{min-width:48px}.countdown span{font-size:7px}.countdown i{font-size:21px}.small-note{font-size:9px}.section-heading{align-items:flex-end;gap:12px}.section-heading .eyebrow{font-size:8px;letter-spacing:.15em}.section-heading h2{font-size:40px}.section-heading .text-button{font-size:9px;margin-bottom:5px}.event-grid{grid-template-columns:1fr;margin-top:26px}.event,.event+.event{padding:30px 0 35px;border:0}.event+.event{border-top:1px solid var(--line)}.event-icon,.event+.event .event-icon{right:15px;top:55px}h3{margin-top:27px}.event .button{width:100%}.rsvp h2{font-size:46px}.rsvp .eyebrow{font-size:8px}.pending{gap:15px;padding:19px}.rsvp .closing{font-size:23px}footer{padding:30px 7%;gap:22px;flex-wrap:wrap}footer p{font-size:8px}footer>span{font-size:8px}.photo-caption{font-size:7px}}
[hidden]{display:none!important}
.native-music{border-top:1px solid var(--line)}.native-music .dialog-heading{margin-bottom:3px}.music-note{font-size:27px;color:var(--lilac)}.native-music .music-track{margin:0 0 18px;color:var(--muted);font-size:11px}.native-music audio{display:block;width:100%;height:44px;accent-color:var(--lilac);color-scheme:dark}.music-player-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:12px}.music-player-foot .music-status{margin:0;font-size:10px}.music-player-foot .text-button{flex-shrink:0;font-size:10px;padding:5px 0}@media(max-width:600px){.music-player-foot{gap:12px}.music-player-foot .music-status,.music-player-foot .text-button{font-size:9px}.native-music .dialog-heading h2{font-size:25px}}
.gallery-collage .gallery-lilac img{object-position:50% 15%}
.photo-gallery{padding-top:55px;padding-bottom:55px;background:var(--bg)}.gallery-heading{text-align:center;margin-bottom:42px}.gallery-heading .eyebrow{margin-bottom:18px}.gallery-heading h2{margin-bottom:15px}.gallery-heading>p:last-child{color:var(--muted);font-size:11px;margin:0}.gallery-collage{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:800px;margin:0 auto}.gallery-column{display:flex;flex-direction:column;gap:26px;min-width:0}.gallery-column:nth-child(2){padding-top:48px}.gallery-tile{display:block;position:relative;width:100%;padding:0;border:1px solid #c9b2ed33;border-radius:3px;background:var(--dark);overflow:hidden;cursor:zoom-in;isolation:isolate}.gallery-square{aspect-ratio:1}.gallery-portrait{aspect-ratio:3/4}.gallery-tile img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:filter .25s}.gallery-tile:hover img{filter:brightness(1.06)}.gallery-disco img{object-position:50% 87%}.gallery-lilac img{object-position:50% 38%}.gallery-roses img{object-position:50% 85%}.gallery-ballet img{transform:scale(1.3);transform-origin:50% 20%}.gallery-zoom{position:absolute;bottom:12px;right:12px;width:34px;height:34px;display:grid;place-items:center;background:#231a30c9;border:1px solid #c9b2ed55;border-radius:50%;color:var(--pale);backdrop-filter:blur(6px)}.gallery-zoom svg{width:18px;height:18px}.gallery-end{display:block;text-align:center;font-size:27px;color:var(--silver);margin-top:32px}.photo-viewer{width:min(94vw,1000px);max-width:none;max-height:96dvh;border-radius:5px;padding:18px 22px;background:#1b1525;color:var(--pale);overflow:auto}.photo-viewer-top{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:9px;letter-spacing:.18em;color:var(--muted)}.photo-viewer-top button,.photo-navigation button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--pale);font-size:20px;display:grid;place-items:center}.photo-viewer figure{margin:8px 0 0}.photo-viewer figure img{display:block;width:100%;height:min(70dvh,800px);object-fit:contain;background:#15101d;border-radius:2px}.photo-viewer figcaption{text-align:center;color:var(--muted);font-size:11px;margin:12px 0;line-height:1.6}.photo-navigation{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:12px}.photo-navigation span{font-size:11px;font-variant-numeric:tabular-nums;color:var(--lilac)}
@media(max-width:600px){.photo-gallery{padding-top:35px;padding-bottom:40px}.gallery-heading{margin-bottom:28px}.gallery-heading .eyebrow{font-size:8px}.gallery-heading h2{font-size:38px}.gallery-heading>p:last-child{font-size:10px}.gallery-collage,.gallery-column{gap:12px}.gallery-column:nth-child(2){padding-top:26px}.gallery-zoom{width:28px;height:28px;right:7px;bottom:7px}.gallery-zoom svg{width:15px;height:15px}.gallery-end{font-size:23px;margin-top:25px}.photo-viewer{width:calc(100vw - 16px);padding:12px;max-height:96dvh}.photo-viewer figure img{height:65dvh}.photo-viewer-top{font-size:8px}.photo-viewer figcaption{font-size:10px}.photo-navigation{margin-top:10px}}
.envelope-gift{text-align:center;padding:50px 7% 55px;border-top:1px solid var(--line);background:var(--dark)}.envelope-icon{display:block;width:46px;height:46px;margin:0 auto 17px;color:var(--lilac)}.envelope-gift h2{font-size:36px;margin:0 0 16px}.envelope-gift p{max-width:410px;margin:0 auto;color:var(--muted);font-size:12px;line-height:1.9}@media(max-width:600px){.envelope-gift{padding:40px 7% 45px}.envelope-gift h2{font-size:33px}.envelope-gift p{font-size:11px;max-width:300px}}
.dress-code{padding-top:65px;padding-bottom:65px;border-top:1px solid var(--line);background:radial-gradient(ellipse at 50% 0%,#b79ad00b,transparent 65%),var(--dark)}.dress-heading{text-align:center}.dress-star{display:block;font-size:30px;color:var(--silver);margin-bottom:20px}.dress-heading .eyebrow{margin-bottom:18px}.dress-heading h2{margin-bottom:18px}.dress-intro{color:var(--muted);font-size:12px;max-width:440px;margin:0 auto;line-height:1.9}.dress-palettes{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:36px auto 0;max-width:920px}.dress-palette{padding:28px 32px 24px;border:1px solid var(--line);border-radius:4px;background:#c9b2ed04;display:flex;flex-direction:column;text-align:center}.dress-kicker{font-size:8px;letter-spacing:.22em;color:var(--muted);margin:0 0 8px}.dress-palette h3{font-size:30px;margin:0 0 22px}.dress-swatches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 10px;align-content:center;list-style:none;padding:0;margin:0;min-height:190px;flex:1}.dress-swatch{display:flex;align-items:center;justify-content:center}.dress-swatch span{display:block;width:32px;aspect-ratio:1;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #e8dcf52b,0 2px 8px #0d091b40;outline:1px solid #c9b2ed14;outline-offset:4px}.dress-caption{font-size:10px;line-height:1.8;color:var(--muted);margin:24px 0 0}.dress-thanks{font:italic 24px/1.3 var(--serif);color:var(--lilac);text-align:center;margin:30px 0 0}
@media(max-width:600px){.dress-code{padding:50px 7%}.dress-heading .eyebrow{font-size:8px;letter-spacing:.17em}.dress-heading h2{font-size:37px}.dress-intro{font-size:11px}.dress-palettes{grid-template-columns:1fr;gap:20px;margin-top:28px}.dress-palette{padding:25px 22px}.dress-palette h3{font-size:28px;margin-bottom:22px}.dress-swatches{min-height:0;gap:17px 12px;flex:initial}.dress-swatch span{width:28px;outline-offset:3px}.dress-caption{margin-top:22px;font-size:10px}.dress-thanks{font-size:23px;margin-top:27px}}
.hero-photo-disco{height:auto;aspect-ratio:1;align-self:center;margin-top:0;border-radius:130px 130px 3px 3px}.hero-photo-disco:before{border-radius:inherit}.hero-photo-disco img{position:absolute;top:10px;left:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-position:50% 87%}
@media(max-width:600px){.hero-photo-disco{max-width:420px;aspect-ratio:1;border-radius:95px 95px 3px 3px}.hero-photo-disco img{object-position:50% 87%}}
.music-player{padding:28px max(7%,calc((100vw - 700px)/2));background:var(--dark);border-bottom:1px solid var(--line)}.music-player .dialog-heading{margin-bottom:12px}.music-player .dialog-heading h2{font-size:26px}.music-player .small-note{margin-top:12px}.music-player .text-button{font-size:10px}
.music-toggle{position:fixed;right:20px;bottom:20px;z-index:10;min-height:44px;border:1px solid #c9b2ed77;border-radius:25px;background:#231a30ed;color:var(--pale);box-shadow:0 4px 24px #10091f55;padding:11px 18px;font-size:11px;backdrop-filter:blur(10px)}.music-status{margin:0 0 20px;font-size:11px;color:var(--muted);line-height:1.7}footer{padding-bottom:85px}
@media(max-width:600px){.hero-phrase br:after,.intro h2 br:after{content:' '}.hero-phrase br,.intro h2 br{display:contents}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
