: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);--shadow: 0 24px 70px rgba(69, 47, 28, .18)}*{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}.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{border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 32%),linear-gradient(160deg,#ead4ae,#c9a56d);box-shadow:0 36px 90px #00000070}.letterPeek{inset:7% 8% 18%;display:grid;place-items:start center;padding-top:26px;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent 46%),#f8efe0;color:#8b6540;font-family:Georgia,Times New Roman,serif;font-size:clamp(1rem,3.8vw,1.8rem);letter-spacing:.08em;text-transform:uppercase;transform:translateY(34%);animation:letterRise 2.3s ease 1.85s forwards}.envelopeFace{overflow:hidden;border-radius:8px}.envelopeLeft,.envelopeRight,.envelopeBottom{position:absolute;inset:0}.envelopeLeft{clip-path:polygon(0 0,51% 51%,0 100%);background:linear-gradient(125deg,#d7b77f,#bd935a)}.envelopeRight{clip-path:polygon(100% 0,49% 51%,100% 100%);background:linear-gradient(235deg,#e4c58e,#c59b5f)}.envelopeBottom{clip-path:polygon(0 100%,50% 45%,100% 100%);background:linear-gradient(0deg,#b8874e,#e1be86)}.envelopeFlap{z-index:4;clip-path:polygon(0 0,50% 58%,100% 0);background:linear-gradient(180deg,rgba(255,255,255,.14),transparent),#d4ad73;border-radius:8px 8px 0 0;transform-origin:top;animation:flapOpen 2.3s cubic-bezier(.22,.84,.32,1) 1.2s forwards;backface-visibility:hidden}.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)}.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,.locationCard,.rsvpSection div{display:flex;gap:12px;flex-wrap:wrap}.primaryButton,.ghostButton,.locationCard a{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,.locationCard a:hover{transform:translateY(-2px)}.introSection,.countdownSection,.detailsSection,.loveStorySection,.dressCodeSection,.venueSection,.confirmSection{padding:clamp(70px,11vw,132px) clamp(18px,5vw,80px)}.introSection{display:grid;grid-template-columns:minmax(0,.85fr) minmax(280px,1.15fr);gap:clamp(28px,6vw,78px);align-items:center;background:var(--paper)}.introCopy,.sectionHeading{max-width:720px}.script{display:inline-block;margin-bottom:10px;font-size:1.45rem}.introCopy h2,.sectionHeading h2,.venueCopy h2,.confirmSection h2{font-family:Georgia,Times New Roman,serif;font-size:clamp(2.35rem,6vw,5rem);font-weight:500;line-height:1}.introCopy p,.sectionHeading p,.venueCopy p,.confirmSection p,.eventCard p,.storyContent p,.coupleCards p{color:var(--muted);line-height:1.7}.coupleCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.coupleCards article,.eventCard,.locationCard{border:1px solid var(--line);background:#ffffff70;box-shadow:var(--shadow)}.coupleCards article{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:block;margin-top:24px}.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:16px;max-width:980px;margin:0 auto}.countdownBox{display:grid;place-items:center;min-height:170px;padding:24px;border:1px solid rgba(185,139,67,.26);background:#ffffff80;box-shadow:0 18px 50px #6146281f}.countdownBox strong{color:var(--blue);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}.loveStorySection{background:#faf2e8}.loveStorySection .sectionHeading h2,.confirmSection .sectionHeading h2{color:#39533b;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}.venueSection{display:grid;grid-template-columns:minmax(280px,1.08fr) minmax(280px,.92fr);gap:clamp(28px,6vw,72px);align-items:center;background:#fbf7f0}.venueImage{min-height:520px}.venueImage img{width:100%;height:100%;min-height:520px;object-fit:cover;box-shadow:var(--shadow)}.venueCopy{max-width:620px}.locationCard{flex-direction:column;margin-top:16px;padding:22px;box-shadow:none}.locationCard strong{font-size:1.08rem}.locationCard p{margin-bottom:0}.locationCard a{align-self:flex-start;min-height:40px;border:1px solid rgba(69,107,123,.28);color:var(--blue)}.dressCodeSection{background:#e7eef0}.colorGrid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;max-width:980px;margin:0 auto}.colorChip{display:grid;place-items:center;gap:14px;min-height:148px;padding:18px;border:1px solid rgba(45,41,35,.12);background:#ffffff85}.colorChip span{width:54px;height:54px;border-radius:50%;border:1px solid rgba(45,41,35,.24)}.confirmSection{background:#fbf8f4}.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(34%)}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))}.countdownLarge,.eventGrid,.attendanceOptions,.introSection,.venueSection,.coupleCards,.colorGrid{grid-template-columns:1fr}.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}.venueImage,.venueImage img{min-height:360px}}@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%}.coupleCards article,.eventCard{min-height:auto}}
