@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700&family=Cinzel+Decorative:wght@700&family=Cormorant+Garamond:ital,wght@0,500;1,500&family=Great+Vibes&family=Italiana&family=Lato:wght@400;700&family=Gelasio:wght@400;500&family=Raleway:wght@400;500&display=swap";*{margin:0;padding:0}#root{min-height:100svh}@font-face{font-family:Priestacy;src:url(/fonts/Priestacy.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--parchment:#f6ead2;--parchment-alt:#efdcb8;--maroon:#6e1f2a;--maroon-deep:#4a1620;--gold:#b8863d;--gold-soft:#d9b56f;--ink:#2c1a12;--ink-soft:#6b5342}*{box-sizing:border-box}body{background:var(--parchment);color:var(--ink);margin:0;font-family:Lato,sans-serif;overflow-x:hidden}.page{position:relative}.script-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--maroon);margin:6px 0 0;font-family:Italiana,serif;font-size:clamp(26px,5vw,38px);font-weight:400}.global-backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.backdrop-slide{object-fit:cover;object-position:center 45%;opacity:.14;will-change:opacity;width:100%;height:100%;transition:opacity 2.4s;position:absolute;inset:0}.global-backdrop-veil{background:linear-gradient(180deg, var(--parchment) 0%, #f6ead266 40%, var(--parchment) 100%);position:absolute;inset:0}.dust-field{pointer-events:none;position:absolute;inset:0}.dust-field i{background:var(--gold-soft);opacity:.8;border-radius:50%;width:3px;height:3px;animation-name:rise;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;bottom:-10px}@keyframes rise{0%{opacity:0;transform:translateY(0)translate(0)}15%{opacity:.8}to{opacity:0;transform:translateY(-100vh)translate(20px)}}.hero-scene{isolation:isolate;height:150vh;position:relative}.hero-backdrop-sticky{background:linear-gradient(180deg, var(--maroon-deep) 0%, var(--maroon) 60%, var(--maroon-deep) 100%);height:100vh;position:sticky;top:0;overflow:hidden}.hero-mist{z-index:2;opacity:.6;pointer-events:none;height:58%;position:absolute;bottom:-14%;left:-12%;right:-12%;-webkit-mask-image:linear-gradient(#0000 0%,#000 46%);mask-image:linear-gradient(#0000 0%,#000 46%)}.hero-mist-far{opacity:.42;height:42%;top:-10%;bottom:auto;-webkit-mask-image:linear-gradient(#000 40%,#0000 100%);mask-image:linear-gradient(#000 40%,#0000 100%)}.hero-mist img{object-fit:cover;object-position:center 30%;width:116%;height:100%;animation:16s ease-in-out infinite alternate mistDrift}.hero-mist-far img{animation-duration:22s;animation-direction:alternate-reverse}@keyframes mistDrift{0%{transform:translate(-4%)}to{transform:translate(4%)}}.hero-atmosphere{z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 20%,#ffeebe47 0%,#0000 34%),radial-gradient(circle at 50% 88%,#ffeebe2e 0%,#0000 36%);position:absolute;inset:0}.hero-copy{z-index:6;text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;padding:clamp(4.8rem,11vh,7rem) 1.2rem 0;display:flex;position:absolute;inset:0}.hero-copy h1{letter-spacing:.04em;text-transform:none;color:var(--parchment);white-space:nowrap;text-shadow:0 2px 12px #00000059;flex-flow:row;justify-content:center;align-items:center;gap:14px;margin:0;font-family:Priestacy,Cinzel Decorative,serif;font-size:clamp(25px,8vw,62px);display:flex}.hero-copy h1 em{color:var(--gold-soft);font-size:.5em;font-style:normal;line-height:1}.hero-copy p{letter-spacing:.18em;color:var(--parchment-alt);text-transform:uppercase;text-shadow:0 2px 10px #00000059;margin:14px 0 0;font-family:Cormorant Garamond,serif;font-size:16px}.hero-save-date{justify-content:center;width:100%;margin-top:clamp(160px,40vh,340px);display:flex}.hero-save-date .scratch-card{width:min(320px,82vw);height:210px;box-shadow:0 14px 40px #00000059}@media (width>=640px){.hero-save-date .scratch-card{width:420px;height:280px}}.section{text-align:center;max-width:720px;margin:0 auto;padding:70px 20px;position:relative}.section-alt{background:#b8863d14;max-width:100%}.section-alt>*{max-width:720px;margin-left:auto;margin-right:auto}.eave{margin-bottom:30px}.meet-kicker{text-transform:uppercase;letter-spacing:3px;color:var(--gold);margin:0;font-size:12px}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.countdown{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.countdown-box{border:1px solid var(--gold-soft);background:#fff;border-radius:10px;min-width:76px;padding:16px 10px}.countdown-value{color:var(--maroon);font-family:Cinzel,serif;font-size:30px}.countdown-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin-top:4px;font-size:11px}.scratch-card{border-radius:12px;width:min(420px,100%);height:280px;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 10px 30px #4a162026}.scratch-face{background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.scratch-label{letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-size:13px}.date-lockup{color:var(--maroon);align-items:baseline;gap:10px;font-family:Cinzel,serif;display:flex}.date-lockup b{font-size:40px}.date-lockup span{font-size:22px}.date-lockup i{color:var(--ink-soft);font-size:18px;font-style:normal}.scratch-hint{color:var(--ink-soft);font-family:Cormorant Garamond,serif;font-size:13px;font-style:italic}.scratch-foil{cursor:grab;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.scratch-card.is-revealed .scratch-foil{opacity:0;pointer-events:none;transition:opacity .6s}.invite-scene{position:relative}.invite-bells-bg{z-index:0;object-fit:cover;object-position:center 20%;opacity:.22;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 22% 78%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 22% 78%,#0000 100%)}.invite-card{z-index:1;background:#fffaf0;border-radius:6px;padding:44px 28px;position:relative}.invite-border{border:1px solid var(--gold-soft);pointer-events:none;position:absolute;inset:10px}.invite-mark{object-fit:contain;width:64px;height:64px;margin-bottom:6px}.invite-blessing{color:var(--gold);letter-spacing:1px;margin:0 0 6px;font-size:13px}.invite-script{letter-spacing:.14em;text-transform:uppercase;color:var(--maroon);margin:0;font-family:Italiana,serif;font-size:22px}.invite-hosts{color:var(--ink-soft);margin:14px 0;font-size:13px;line-height:1.7}.invite-names{color:var(--maroon);justify-content:center;align-items:center;gap:12px;margin:10px 0;font-family:Cinzel Decorative,serif;font-size:clamp(30px,6vw,42px);display:flex}.invite-names em{color:var(--gold);font-style:normal}.invite-message{color:var(--ink-soft);margin:16px 0;font-family:Cormorant Garamond,serif;font-size:16px;font-style:italic;line-height:1.8}.invite-following{letter-spacing:1px;text-transform:uppercase;color:var(--gold);font-size:12px}.meet-portraits{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;display:grid}.meet-photo{background:var(--gold-soft);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 14px;font-family:Cinzel Decorative,serif;font-size:34px;display:flex;overflow:hidden}.meet-photo img{object-fit:cover;width:100%;height:100%}.meet-role{text-transform:uppercase;letter-spacing:2px;color:var(--gold);margin:0 0 4px;font-size:11px}.meet-name{color:var(--maroon);margin:0 0 10px;font-family:Cinzel,serif;font-size:22px}.meet-intro{color:var(--ink-soft);font-size:14px;line-height:1.7}.events-scene{position:relative}.events-sticky{flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.events-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1rem;display:flex;position:relative}.event-card{border:1px solid var(--gold-soft);text-align:left;background:#fffaf0;border-radius:14px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1rem,3vw,2.2rem);width:100%;max-width:880px;margin:0 auto;padding:clamp(1.1rem,3vw,2rem);display:grid;box-shadow:0 12px 30px #4a162026}.event-photo{background:radial-gradient(circle at 50% 42%, #d4ab552e, transparent 58%), var(--parchment-alt);border-radius:10px;justify-content:center;align-items:center;min-height:220px;font-size:48px;display:flex;overflow:hidden}.event-photo img{object-fit:cover;width:100%;height:100%}.event-body{flex-direction:column;justify-content:center;gap:.7rem;display:flex}.event-theme{color:var(--gold);margin:0;font-family:Cormorant Garamond,serif;font-size:.9rem;font-style:italic}.event-body h3{color:var(--maroon);margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:500}.event-meta{color:var(--ink-soft);flex-wrap:wrap;gap:.4rem 1.1rem;margin:0;font-size:.84rem;display:flex}.event-description{color:var(--ink-soft);margin:0;font-size:.94rem;line-height:1.7}.event-dress{letter-spacing:.02em;color:var(--ink-soft);margin:0;font-size:.82rem}.event-dots{justify-content:center;gap:8px;margin-top:1.3rem;display:flex}.event-dots i{background:#b8863d66;border-radius:50%;width:8px;height:8px;transition:background .3s,transform .3s}.event-dots i.is-active{background:var(--maroon);transform:scale(1.25)}@media (width<=640px){.event-card{grid-template-rows:minmax(24vh,1fr) auto;grid-template-columns:1fr;gap:.8rem;padding:.95rem}.event-body{text-align:center;align-items:center}.event-body h3{font-size:clamp(1.35rem,6.4vw,1.85rem)}.countdown{flex-wrap:nowrap;gap:8px}.countdown-box{flex:1;min-width:0;padding:10px 4px}.countdown-value{font-size:clamp(18px,6vw,26px)}.countdown-label{letter-spacing:.5px;font-size:9px}.location-map iframe{height:160px}}.location-scene{text-align:left;gap:28px;display:grid}.venue-name{color:var(--maroon);margin:0 0 4px;font-family:Cinzel,serif;font-size:20px}.venue-transport-label{color:var(--ink);margin:0 0 10px;font-size:15px;font-weight:600}.venue-transport-name{color:var(--ink-soft);margin:0 0 6px;font-size:13px}.location-action{background:var(--maroon);color:#fff;border-radius:999px;align-items:center;gap:6px;margin-top:8px;padding:10px 20px;font-size:13px;text-decoration:none;display:inline-flex}.location-heart{color:var(--gold-soft)}.venue-transport{gap:20px;display:grid}.location-map{border:1px solid var(--gold-soft);border-radius:10px;position:relative;overflow:hidden}.location-map iframe{border:0;width:100%;height:200px;display:block}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;display:grid}.gold-frame{border:6px solid var(--gold-soft);text-align:center;background:#fff;padding:6px;box-shadow:0 8px 20px #4a16201f}.frame-photo{object-fit:cover;width:100%;height:160px;display:block}.gold-frame figcaption{color:var(--ink-soft);margin-top:6px;font-family:Cinzel,serif;font-size:11px}.arch-panel{border:1px solid var(--gold-soft);background:#fff;border-radius:12px;max-width:460px;margin:0 auto;padding:40px 24px}.eyebrow{color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin:0 0 6px;font-size:12px}.arch-intro{color:var(--ink-soft);margin:12px 0 20px;font-size:14px}.social-links{justify-content:center;gap:12px;display:flex}.arch-action,.arch-action-alt{border-radius:999px;padding:10px 22px;font-size:13px;text-decoration:none}.arch-action{background:var(--maroon);color:#fff}.arch-action-alt{border:1px solid var(--gold-soft);color:var(--gold)}.footer{text-align:center;background:var(--maroon-deep);color:var(--parchment);padding:60px 20px 140px}.footer p{opacity:.85;max-width:420px;margin:0 auto 14px;font-family:Cormorant Garamond,serif;font-size:15px;font-style:italic}.footer strong{color:var(--gold-soft);font-family:Cinzel,serif;font-size:18px}.music-toggle{z-index:10;background:var(--maroon);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;gap:3px;width:46px;height:46px;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 4px 14px #0003}.music-toggle i{background:var(--gold-soft);border-radius:2px;width:3px;height:14px;animation:1s ease-in-out infinite eq}.music-toggle i:nth-child(2){animation-delay:.2s}.music-toggle i:nth-child(3){animation-delay:.4s}.music-toggle:not(.is-playing) i{height:6px;animation-play-state:paused}@keyframes eq{0%,to{height:6px}50%{height:16px}}
