@import"https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap";:root{color:#2d2923;background:#fbf7f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #2d2923;--muted: #766f63;--paper: #fbf7f0;--shell: #f3e8d7;--rose: #c7847d;--clay: #a65f4d;--blue: #456b7b;--gold: #b98b43;--line: rgba(75, 62, 45, .16);--envelope-edge: rgba(62, 88, 67, .72);--envelope-edge-strong: rgba(38, 58, 43, .82);--shadow: 0 24px 70px rgba(69, 47, 28, .18);--script-font: "Edwardian Script ITC", "Great Vibes", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}body.intro-lock{overflow:hidden}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}main{overflow:hidden}.musicButton{position:fixed;right:clamp(16px,4vw,32px);bottom:clamp(16px,4vw,32px);z-index:40;display:grid;place-items:center;width:56px;height:56px;border:1px solid rgba(255,250,242,.72);border-radius:50%;background:#b98b43eb;color:#fffaf2;box-shadow:0 16px 38px #452f1c3d;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.musicButton:hover{transform:translateY(-2px);background:#a65f4d;box-shadow:0 20px 44px #452f1c4d}.musicButton span{font-size:1.35rem;line-height:1}.musicButton.is-playing span{transform:translateY(-1px)}.videoIntro{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#f5f3ec;opacity:1;transition:opacity .9s ease}.videoIntro.is-fading{opacity:0;pointer-events:none}.introVideo{width:100%;height:100%;object-fit:contain;background:#f5f3ec;pointer-events:none}.envelopeIntro{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 42%,rgba(244,210,153,.22),transparent 34%),linear-gradient(135deg,#2d241b,#5f4732 44%,#1d1814);perspective:1200px;animation:introFade .9s ease 4.7s forwards}.envelopeGlow{position:absolute;width:min(76vw,740px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(242,201,120,.18),transparent 66%);filter:blur(4px);animation:glowPulse 3.6s ease-in-out infinite}.envelope{position:relative;width:min(78vw,560px);aspect-ratio:1.55;transform-style:preserve-3d;animation:envelopeFloat 4.8s ease-in-out both}.envelopeBack,.envelopeFace,.envelopeFlap,.letterPeek{position:absolute;inset:0}.envelopeBack{z-index:0;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 34%),url(/assets/envelope-pattern-CZrahyS6.svg) center / cover,#f0eadf;border:2px solid var(--envelope-edge-strong);box-shadow:0 36px 90px #00000070}.letterPeek{z-index:1;inset:8% 8% 24%;display:grid;place-items:start center;padding-top:26px;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.78),transparent 48%),linear-gradient(135deg,#fffdf8,#f5f8f7);border:1px solid rgba(213,205,190,.82);color:#7c5c3d;font-family:Georgia,Times New Roman,serif;font-size:clamp(1rem,3.8vw,1.8rem);letter-spacing:.08em;text-transform:uppercase;transform:translateY(16%);animation:letterRise 2.3s ease 1.85s forwards}.envelopeFace{z-index:3;overflow:hidden;border-radius:8px;border:2px solid var(--envelope-edge-strong)}.envelopeFace:after,.envelopeFlap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.34),transparent 40%),url(/assets/envelope-pattern-CZrahyS6.svg) center / cover;opacity:.94}.envelopeFlap:after{z-index:0}.envelopeLeft,.envelopeRight,.envelopeBottom{position:absolute;inset:0}.envelopeLeft{clip-path:polygon(0 0,51% 51%,0 100%);background:linear-gradient(39deg,transparent 0 50%,var(--envelope-edge) 50.2% 50.8%,transparent 51%),linear-gradient(125deg,#eee8daeb,#cfe0d3d1)}.envelopeRight{clip-path:polygon(100% 0,49% 51%,100% 100%);background:linear-gradient(141deg,transparent 0 50%,var(--envelope-edge) 50.2% 50.8%,transparent 51%),linear-gradient(235deg,#f4f0e7f5,#ded5c4db)}.envelopeBottom{clip-path:polygon(0 100%,50% 45%,100% 100%);background:linear-gradient(137deg,transparent 0 49.7%,var(--envelope-edge) 50% 50.6%,transparent 50.9%),linear-gradient(43deg,transparent 0 49.7%,var(--envelope-edge) 50% 50.6%,transparent 50.9%),linear-gradient(0deg,#ccdbcdd1,#f1eaddf0)}.envelopeFlap{z-index:4;clip-path:polygon(0 0,50% 58%,100% 0);background:linear-gradient(180deg,rgba(255,255,255,.38),transparent),#f0eadf;border-radius:8px 8px 0 0;border:2px solid var(--envelope-edge-strong);border-bottom:0;transform-origin:top;animation:flapOpen 2.3s cubic-bezier(.22,.84,.32,1) 1.2s forwards;backface-visibility:hidden;filter:drop-shadow(0 0 1px rgba(38,58,43,.72))}.envelopeFlap:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--envelope-edge-strong) 0 100%),linear-gradient(30deg,transparent 0 49.2%,var(--envelope-edge-strong) 49.6% 50.9%,transparent 51.3%),linear-gradient(150deg,transparent 0 49.2%,var(--envelope-edge-strong) 49.6% 50.9%,transparent 51.3%);background-position:top left,center,center;background-repeat:no-repeat;background-size:100% 2px,100% 100%,100% 100%}.waxSeal{position:absolute;z-index:5;left:50%;top:49%;display:grid;place-items:center;width:clamp(74px,15vw,112px);aspect-ratio:1;border-radius:50%;color:#f9dcc1;background:radial-gradient(circle at 34% 28%,rgba(255,238,210,.24),transparent 22%),radial-gradient(circle at 72% 76%,rgba(72,22,18,.28),transparent 26%),#7f2f25;box-shadow:inset 0 4px 14px #ffeccd2e,inset 0 -8px 18px #370e0d61,0 14px 30px #31140a5c;transform:translate(-50%,-50%);animation:sealBreak 1.55s ease 1.25s forwards}.waxSeal:before,.waxSeal:after{content:"";position:absolute;inset:-5px;border-radius:47% 53% 52% 48%;border:2px solid rgba(255,220,178,.22)}.waxSeal:after{inset:10px;border-color:#3d0d0c47}.waxSeal span{position:relative;z-index:1;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.15rem,3.5vw,1.8rem);letter-spacing:.04em;text-shadow:0 1px 0 rgba(38,8,8,.42)}.hero{position:relative;min-height:100svh;display:grid;place-items:end center;padding:28px clamp(18px,4vw,64px) clamp(70px,12vh,118px);color:#fffaf2;background-position:center 34%;background-size:cover}.heroCouple{background-color:#4c3929}.hero:after{content:"";position:absolute;left:clamp(18px,8vw,120px);right:clamp(18px,8vw,120px);bottom:28px;height:1px;background:#fffaf26b}.heroOverlay{position:absolute;inset:0;background:linear-gradient(180deg,#1f181229,#1f18123d 42%,#1f1812bd),linear-gradient(90deg,#1f181247,#1f18120f 48%,#1f181247)}.nav{position:absolute;z-index:2;top:24px;left:50%;transform:translate(-50%);display:flex;gap:clamp(12px,3vw,34px);width:min(92vw,680px);justify-content:center;padding:12px 18px;color:#fffaf2e0;border-bottom:1px solid rgba(255,250,242,.28)}.nav a{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}.heroContent{position:relative;z-index:1;width:min(940px,96vw);text-align:center;animation:heroIn 1.1s ease both}.saveDate,.sectionHeading span,.coupleCards span,.script{color:var(--gold);font-family:Georgia,Times New Roman,serif;font-style:italic}.saveDate{margin:0 0 8px;font-size:clamp(1.15rem,2vw,1.55rem);color:#f3cc83}h1,h2,h3,p{margin-top:0}h1{margin-bottom:16px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.75rem,9vw,7.8rem);font-weight:500;line-height:.9;white-space:nowrap;text-shadow:0 12px 34px rgba(0,0,0,.42)}.heroContent h1{font-family:var(--script-font)}.names{max-width:620px;margin-bottom:12px;font-size:clamp(1rem,2vw,1.35rem)}.dateLine{margin-bottom:0;color:#fffaf2e6;font-size:clamp(1rem,2.2vw,1.35rem);letter-spacing:.16em;text-transform:capitalize}.countdown{display:grid;grid-template-columns:repeat(4,minmax(70px,112px));gap:10px;max-width:488px;margin-bottom:28px}.countdownItem{display:grid;place-items:center;min-height:92px;border:1px solid rgba(255,250,242,.34);background:#fffaf21a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.countdownItem strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.9rem,4vw,3rem);font-weight:500}.countdownItem span{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}.heroActions,.rsvpSection div{display:flex;gap:12px;flex-wrap:wrap}.primaryButton,.ghostButton{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;text-decoration:none;border-radius:999px;transition:transform .18s ease,background .18s ease,border-color .18s ease}.primaryButton{background:#f2c978;color:#382817;box-shadow:0 12px 32px #0000002e}.ghostButton{color:#fffaf2;border:1px solid rgba(255,250,242,.54)}.primaryButton:hover,.ghostButton:hover{transform:translateY(-2px)}.introSection,.countdownSection,.detailsSection,.loveStorySection,.dressCodeSection,.giftsSection,.gallerySection,.confirmSection{padding:clamp(70px,11vw,132px) clamp(18px,5vw,80px)}.introSection{display:grid;gap:clamp(32px,6vw,70px);justify-items:center;background:var(--paper)}.introCopy,.sectionHeading{max-width:720px}.introCopy{text-align:center}.script{display:inline-block;margin-bottom:10px;font-size:1.45rem}.introTagline{font-size:clamp(1.65rem,3vw,2.15rem)}.introMessage{display:block;margin:0 auto;color:var(--gold)}.introCopy h2,.sectionHeading h2,.confirmSection h2{font-family:var(--script-font);font-size:clamp(2.35rem,6vw,5rem);font-weight:500;line-height:1}.introCopy h2{font-size:clamp(2rem,4.8vw,4rem)}.sectionHeading h2.countdownTitle{font-family:var(--script-font);font-size:clamp(2.3rem,5.29vw,4.37rem);letter-spacing:.03em}.introClosing{max-width:720px;margin:0 auto;text-align:center}.introCopy p,.sectionHeading p,.confirmSection p,.eventCard p,.storyContent p,.coupleCards p{color:var(--muted);line-height:1.7}.introCopy p.introMessage{color:var(--gold)}.coupleCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(100%,920px)}.coupleCards article,.eventCard{border:1px solid var(--line);background:#ffffff70;box-shadow:var(--shadow)}.coupleCards article{display:grid;grid-template-rows:auto auto;overflow:hidden;min-height:420px;padding:0}.coupleCards article img{display:block;width:100%;aspect-ratio:.9;object-fit:cover}.coupleCards article span,.coupleCards article h3,.coupleCards article p{margin-left:clamp(22px,4vw,38px);margin-right:clamp(22px,4vw,38px)}.coupleCards article span{display:inline-block;margin-top:0;padding:10px 14px;font-family:var(--script-font);font-size:1.45rem;line-height:1;text-align:left;justify-self:start}.coupleCards h3,.eventCard h3,.storyContent h3{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:500}.countdownSection{background:#f8efe4}.countdownLarge{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:clamp(8px,2vw,22px);max-width:760px;margin:0 auto}.countdownBox{display:grid;place-items:center;min-height:120px;padding:6px;border:0;background:transparent;box-shadow:none}.countdownBox strong{color:#c77b52;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,7vw,5.6rem);font-weight:500;line-height:1}.countdownBox span{color:var(--muted);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.detailsSection{background:#efe0cc}.sectionHeading{margin:0 auto 44px;text-align:center}.sectionHeading span{display:block;margin-bottom:10px;font-size:1.2rem}.eventGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,4vw,36px);max-width:1120px;margin:0 auto}.eventCard{overflow:hidden;background:#ffffff8a}.eventCard img{width:100%;aspect-ratio:1.35;object-fit:cover;display:block}.eventCard div{padding:clamp(22px,4vw,34px)}.eventCard time{display:block;margin-bottom:18px;color:var(--blue);font-weight:700}.eventCard h3{margin-bottom:16px}.eventMapButton{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-top:10px;padding:0 18px;border:1px solid rgba(69,107,123,.28);border-radius:999px;color:var(--blue);font-weight:700;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.eventMapButton:hover{transform:translateY(-2px);border-color:#456b7b75;background:#ffffff6b}.loveStorySection{background:#e7eef0}.loveStorySection .sectionHeading h2,.confirmSection .sectionHeading h2{color:#39533b;font-style:italic}.loveStorySection .sectionHeading h2.loveStoryTitle{font-family:var(--script-font);font-style:normal;letter-spacing:.03em}.loveStorySection :is(.sectionHeading span,.sectionHeading p,.storyContent span,.storyContent h3,.storyContent p),.detailsSection :is(.sectionHeading span,.sectionHeading p,.eventCard time,.eventCard h3,.eventCard p,.eventMapButton),.dressCodeSection :is(.sectionHeading span,.colorChip strong),.giftsSection .giftsText,.confirmSection :is(.sectionHeading p,.rsvpForm label,.rsvpForm legend,.attendanceOptions span,.rsvpForm input,.rsvpForm textarea,.rsvpForm button,.formThanks){font-family:Georgia,Times New Roman,serif;font-style:italic}.storyTimeline{position:relative;display:grid;gap:54px;max-width:1020px;margin:0 auto}.storyTimeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#b98b433d}.storyMoment{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,72px);align-items:center}.storyMoment:before{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;border-radius:50%;background:#d58d52;transform:translate(-50%,-50%);box-shadow:0 0 0 12px #faf2e8}.storyMoment:nth-child(2n) .storyImage{order:2}.storyImage img{width:100%;aspect-ratio:1;object-fit:cover;display:block;box-shadow:0 22px 54px #5c41272e}.storyContent{max-width:430px}.storyMoment:nth-child(odd) .storyContent{justify-self:end;text-align:right}.storyContent span{display:block;margin-bottom:12px;color:#d58d52;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,4vw,2.4rem);font-style:italic}.storyContent h3{margin-bottom:14px;color:#112f42;font-style:italic}.dressCodeSection{background:#e7eef0}.dressCodeImage{width:min(100%,288px);margin:0 auto 32px}.dressCodeImage img{display:block;width:100%;height:auto}.colorGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,160px));justify-content:center;gap:14px;max-width:980px;margin:0 auto}.colorChip{display:grid;place-items:center;gap:14px;min-height:auto;padding:0;border:0;background:transparent}.colorChip span{width:54px;height:54px;border-radius:50%;border:1px solid rgba(45,41,35,.24)}.confirmSection{background:#fbf8f4}.giftsSection{background:#f8efe4}.gallerySection{background:#e7eef0}.giftsImage{width:min(100%,360px);margin:0 auto 26px}.giftsImage img{display:block;width:100%;height:auto}.giftsText{max-width:720px;margin:0 auto;color:var(--muted);font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.7;text-align:center}.gallerySlider{overflow:hidden;max-width:min(100%,520px);margin:0 auto;background:#ffffff7a;box-shadow:0 18px 48px #452f1c24}.galleryTrack{display:flex;transition:transform .7s ease;will-change:transform}.galleryTrack.no-transition{transition:none}.gallerySlide{flex:0 0 100%;margin:0}.gallerySlide img{display:block;width:100%;aspect-ratio:.82;object-fit:cover}.rsvpForm{display:grid;gap:24px;width:min(100%,640px);margin:0 auto;padding:clamp(24px,5vw,48px);border-radius:28px;background:#ffffffdb;box-shadow:0 26px 80px #8e5c5529}.rsvpForm label,.rsvpForm legend{color:#112f42;font-weight:600}.rsvpForm input,.rsvpForm textarea{width:100%;margin-top:10px;border:1px solid #d6e0e8;border-radius:14px;background:#f8fbfd;color:#112f42;font:inherit;font-size:1rem;padding:17px 18px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.rsvpForm textarea{resize:vertical}.rsvpForm input:focus,.rsvpForm textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px #b98b4329}.rsvpForm fieldset{margin:0;padding:0;border:0}.attendanceOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}.attendanceOptions label{position:relative;display:flex;align-items:center;justify-content:center;min-height:62px;padding:12px;border:1px solid #d6e0e8;border-radius:14px;background:#fff;cursor:pointer}.attendanceOptions input{position:absolute;opacity:0;inset:0;cursor:pointer}.attendanceOptions label:has(input:checked){border-color:var(--gold);background:#fff8ea}.rsvpForm button{min-height:62px;border:0;border-radius:999px;background:linear-gradient(135deg,#b98b43,#a65f4d);color:#fffaf2;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 16px 34px #a65f4d42;transition:transform .18s ease,box-shadow .18s ease}.rsvpForm button:hover{transform:translateY(-2px);box-shadow:0 20px 42px #a65f4d57}.formThanks{margin:0;text-align:center;color:#39533b;font-weight:700}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes heroIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes envelopeFloat{0%{opacity:0;transform:translateY(26px) scale(.92) rotateX(10deg)}18%,74%{opacity:1;transform:translateY(0) scale(1) rotateX(0)}to{opacity:0;transform:translateY(-26px) scale(.96) rotateX(-8deg)}}@keyframes flapOpen{0%{transform:rotateX(0)}to{transform:rotateX(178deg)}}@keyframes sealBreak{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}55%{opacity:1;transform:translate(-50%,-50%) scale(.9) rotate(-4deg)}to{opacity:0;transform:translate(-50%,-70%) scale(.58) rotate(-18deg)}}@keyframes letterRise{0%{transform:translateY(16%)}to{transform:translateY(-10%)}}@keyframes introFade{to{opacity:0;visibility:hidden}}@keyframes glowPulse{50%{opacity:.58;transform:scale(1.06)}}@media(max-width:860px){.hero{min-height:94vh;align-items:end}.nav{gap:14px;overflow-x:auto;justify-content:flex-start}.countdown{grid-template-columns:repeat(2,minmax(0,1fr))}.eventGrid,.attendanceOptions{grid-template-columns:1fr}.countdownLarge{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-width:100%}.countdownBox{min-height:82px}.countdownBox strong{font-size:clamp(2.05rem,10vw,3.2rem)}.countdownBox span{font-size:.62rem;letter-spacing:.08em}.introSection,.coupleCards{grid-template-columns:1fr}.colorGrid{grid-template-columns:repeat(3,minmax(0,96px));gap:10px}.storyTimeline:before{left:18px}.storyMoment{grid-template-columns:1fr;padding-left:42px}.storyMoment:before{left:18px}.storyMoment:nth-child(2n) .storyImage{order:0}.storyMoment:nth-child(odd) .storyContent{justify-self:start;text-align:left}}@media(max-width:520px){.envelope{width:min(88vw,420px)}.letterPeek{padding-top:18px}.hero{padding-top:84px}.nav a{font-size:.7rem}h1{font-size:clamp(2.45rem,11vw,4.1rem)}.heroActions a{width:100%}.colorChip{gap:10px}.colorChip span{width:46px;height:46px}.coupleCards article,.eventCard{min-height:auto}}
