:root{color:#f8ead1;background:#18050a;font-family:"Noto Serif SC",Songti SC,STSong,SimSun,serif;font-synthesis:none;--wine: #650817;--wine-dark: #3e0710;--wine-bright: #970f27;--cream: #f5eadb;--gold: #e9cf95;--ink: #38151d}*{box-sizing:border-box}html{width:100%;max-width:100%;scroll-behavior:smooth;overflow-x:hidden}html.auto-scrolling{scroll-behavior:auto!important}body{margin:0;width:100%;max-width:100%;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% 8%,rgba(135,19,43,.25),transparent 35rem),#18050a;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior-x:none}body.invitation-locked{height:100dvh;overflow:hidden;touch-action:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #ffe2a7;outline-offset:3px}img{display:block;max-width:100%}.invitation{width:100%;max-width:480px;margin:0 auto;overflow:hidden;background:var(--wine);box-shadow:0 0 90px #0000009e}.invitation.is-locked{height:100dvh;overflow:hidden}.invitation-gate{position:fixed;z-index:200;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:1fr auto auto 1fr;justify-items:center;width:100%;min-height:100dvh;overflow:hidden;padding:max(30px,env(safe-area-inset-top)) 20px max(26px,env(safe-area-inset-bottom));color:#f2d59d;background:#540713;isolation:isolate;transition:opacity .7s .35s ease,visibility .7s .35s ease}.invitation-gate.is-opening{opacity:0;visibility:hidden}.gate-decor{position:absolute;z-index:-1;top:-1%;right:-1%;bottom:-1%;left:-1%;width:102%;height:102%;object-fit:fill;pointer-events:none;opacity:.72;animation:celebrationSway 5.5s ease-in-out infinite alternate}.gate-copy{align-self:end;padding-top:5svh;text-align:center;text-shadow:0 2px 18px rgba(34,0,6,.48)}.gate-copy p{margin:0 0 13px;font-family:Georgia,serif;font-size:10px;letter-spacing:.28em}.gate-copy h1{margin:0;color:#ffe4ad;font-family:STKaiti,Kaiti SC,KaiTi,"Noto Serif SC",serif;font-size:clamp(30px,9vw,43px);font-weight:400;letter-spacing:.14em}.gate-copy h1 i{color:#fff6e7;font-family:Georgia,serif;font-size:1.2em;font-weight:400}.gate-copy span{display:block;margin-top:9px;color:#f4daa4b8;font-family:Georgia,serif;font-size:11px;letter-spacing:.3em}.envelope-button{position:relative;align-self:center;width:min(90vw,410px);border:0;padding:0;background:transparent;cursor:pointer;filter:drop-shadow(0 22px 38px rgba(24,0,5,.42));animation:envelopeBreathe 2.2s ease-in-out infinite}.envelope-button img{width:100%;height:auto}.open-seal{position:absolute;top:58.5%;left:50%;display:grid;width:clamp(58px,16vw,76px);aspect-ratio:1;place-items:center;border-radius:50%;color:#5b0a16;background:#ffe2a3f0;box-shadow:0 0 0 6px #ffd88b24,0 0 28px #ffda939e;font-family:STKaiti,Kaiti SC,KaiTi,serif;font-size:clamp(27px,8vw,38px);transform:translate(-50%,-50%);animation:openSealPulse 1.35s ease-in-out infinite}.gate-hint{align-self:start;margin:8px 0 0;color:#fae2b6db;font-size:11px;letter-spacing:.15em;animation:hintBlink 1.55s ease-in-out infinite}.invitation-gate.is-opening .envelope-button{animation:envelopeOpen .95s cubic-bezier(.22,1,.36,1) both}.music-disc{display:grid;width:34px;aspect-ratio:1;place-items:center;border-radius:50%;color:var(--gold);background:var(--wine)}.music-toggle{position:fixed;z-index:40;top:max(14px,env(safe-area-inset-top));right:max(14px,calc((100vw - 480px)/2 + 14px));display:flex;align-items:center;gap:7px;border:1px solid rgba(232,207,151,.5);border-radius:999px;padding:5px 11px 5px 5px;color:var(--gold);background:#36040cd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;font-size:11px;letter-spacing:.08em}.music-toggle:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;z-index:-1;border:1px solid rgba(232,207,151,.38);border-radius:inherit;opacity:0}.music-disc{width:28px;color:var(--wine);background:var(--gold)}.music-toggle.is-playing .music-disc{animation:spin 5s linear infinite}.music-toggle.is-playing:after{animation:musicHalo 2.2s ease-out infinite}.cover{position:relative;min-height:100svh;display:grid;place-items:center;padding:54px 24px 70px;color:var(--gold);background:radial-gradient(circle at 50% 26%,rgba(199,27,54,.72),transparent 34%),linear-gradient(150deg,#470510,#7b0a1b 45%,#45040e)}.celebration-decor{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none;opacity:.34;animation:celebrationSway 6.8s ease-in-out infinite alternate}.cover-decor{opacity:.28}.cover:before,.cover:after{content:"";position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:1px solid rgba(238,205,141,.24);pointer-events:none}.cover:after{top:26px;right:26px;bottom:26px;left:26px;animation:borderGlow 3.6s ease-in-out infinite}.cover-frame{position:relative;z-index:2;width:100%;border-radius:210px 210px 20px 20px;padding:34px 18px 26px;background:#7a071ab8;box-shadow:0 28px 60px #1e000773}.cover-kicker{margin:0 0 14px;text-align:center;color:#f1d6a0d1;font-size:10px;letter-spacing:.2em}.cover-frame.is-visible .cover-kicker{animation:textFlash .75s .08s both}.cover-names{display:flex;justify-content:center;align-items:center;gap:15px;margin-bottom:22px;font-size:clamp(23px,7vw,34px);letter-spacing:.14em}.cover-names i{color:#f2d5a1;font-family:Georgia,serif;font-size:40px;font-weight:400}.cover-frame.is-visible .cover-names span:first-child{animation:textFlash .75s .25s both}.cover-frame.is-visible .cover-names i{animation:textFlash .75s .45s both}.cover-frame.is-visible .cover-names span:last-child{animation:textFlash .75s .65s both}.cover-photo{position:relative;height:min(59svh,610px);overflow:hidden;border:8px solid #efded4;border-radius:180px 180px 16px 16px;background:var(--cream)}.cover-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(.92) contrast(.98);animation:portraitDrift 9s ease-in-out infinite alternate}.cover-photo:after,.photo-card:after{content:"";position:absolute;top:-40%;right:-80%;bottom:-40%;left:-80%;pointer-events:none;background:linear-gradient(112deg,transparent 42%,rgba(255,255,255,.46) 50%,transparent 58%);transform:translate(-46%) rotate(7deg);animation:lightSweep 5.2s 1.2s ease-in-out infinite}.handwriting{position:absolute;right:14px;bottom:26px;color:#9c1026;font-family:Segoe Script,Brush Script MT,cursive;font-size:clamp(20px,6vw,34px);line-height:1.08;text-align:right;transform:rotate(-7deg);text-shadow:0 1px 0 rgba(255,255,255,.6);animation:handwritingFloat 3.2s ease-in-out infinite}.cover-title{padding-top:23px;text-align:center}.cover-title small,.cover-title span{display:block;font-size:12px;letter-spacing:.35em}.cover-title strong{display:block;margin:8px 0;font-family:Georgia,serif;font-size:clamp(26px,8vw,40px);font-weight:400;letter-spacing:.22em}.cover-frame.is-visible .cover-title small,.cover-frame.is-visible .cover-title span{animation:textFlash .75s .9s both}.cover-frame.is-visible .cover-title strong{animation:titleBloom 1.1s .7s both}.scroll-cue{position:absolute;z-index:2;bottom:24px;margin:0;font-size:10px;letter-spacing:.22em;opacity:.72;animation:breathe 1.8s ease-in-out infinite}.section-pad{padding:88px 26px}.story-section{background:var(--wine)}.section-heading,.date-heading{text-align:center}.eyebrow{margin:0 0 16px;color:var(--gold);font-family:Georgia,serif;font-size:11px;letter-spacing:.35em}.section-heading h2,.date-heading h2{margin:0;color:#faead3;font-family:STKaiti,Kaiti SC,KaiTi,"Noto Serif SC",serif;font-size:clamp(25px,7vw,36px);font-weight:400;line-height:1.65;letter-spacing:.08em}.photo-card{position:relative;overflow:hidden;margin:64px 18px 46px;padding:10px;color:var(--ink);background:#f2e4d9;box-shadow:0 22px 50px #1c00075c}.photo-card img{width:100%;aspect-ratio:.82;object-fit:cover}.photo-card.is-visible img{animation:photoZoom 6s ease-in-out infinite alternate}.photo-card figcaption{padding:18px 10px 12px;font-size:12px;line-height:1.9;text-align:center;letter-spacing:.08em}.tilt-left{transform:rotate(-2deg)}.story-copy{position:relative;border-block:1px solid rgba(235,208,154,.28);padding:46px 14px;text-align:center}.story-copy span{display:block;margin-bottom:18px;color:#e8cc94ad;font-family:Georgia,serif;font-size:42px;letter-spacing:.25em}.story-copy p{margin:0;color:#ecdcc8;font-size:13px;line-height:2.1;letter-spacing:.06em}.invitation-salutation,.invitation-signature{display:block;color:#f7e6ca;font-family:STKaiti,Kaiti SC,KaiTi,"Noto Serif SC",serif;font-size:16px;font-weight:400;letter-spacing:.12em}.invitation-salutation{margin-bottom:2px}.invitation-signature{margin-top:20px;color:var(--gold);text-align:right}.cinema-section{background:#22080c}.cinema-photo{position:relative;overflow:hidden;min-height:720px;background:#30070d}.cinema-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 42%,#0f0405e6);pointer-events:none}.cinema-photo>img{width:100%;height:720px;object-fit:cover;object-position:50% 50%}.cinema-photo.is-visible>img{animation:cinemaPan 9s ease-in-out infinite alternate}.cinema-copy{position:absolute;z-index:2;right:28px;bottom:60px;left:28px;text-align:center}.cinema-copy p{color:var(--gold);font-family:Georgia,serif;font-size:12px;letter-spacing:.35em}.cinema-copy h2{margin:18px 0 0;font-size:27px;font-weight:400;line-height:1.7;letter-spacing:.12em}.date-section{position:relative;color:var(--ink);background:var(--cream);overflow:hidden}.date-section>:not(.celebration-decor),.rsvp-section>:not(.celebration-decor){position:relative;z-index:2}.section-decor{opacity:.18}.date-heading .eyebrow{color:var(--wine)}.date-heading h2{color:var(--wine);font-size:clamp(30px,9vw,44px);line-height:1.3}.date-heading>p:last-child{color:#764a4c;font-size:13px;letter-spacing:.2em}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:44px 0}.countdown>div{border:1px solid rgba(100,8,22,.22);padding:18px 4px 14px;text-align:center;background:#ffffff73}.countdown strong,.countdown span{display:block}.countdown strong{color:var(--wine);font-family:Georgia,serif;font-size:26px;font-weight:400;animation:numberFlip .55s cubic-bezier(.22,1,.36,1)}.countdown span{margin-top:7px;color:#765556;font-size:11px}.countdown.is-visible>div{animation:countdownRise .72s both}.countdown.is-visible>div:nth-child(2){animation-delay:.1s}.countdown.is-visible>div:nth-child(3){animation-delay:.2s}.countdown.is-visible>div:nth-child(4){animation-delay:.3s}.pending-banquet{display:grid;gap:10px;margin:42px 0;border:1px solid rgba(101,8,23,.22);padding:28px 18px;text-align:center;background:#ffffff70}.pending-banquet span{color:#8c6c67;font-size:11px;letter-spacing:.2em}.pending-banquet strong{color:var(--wine);font-size:24px;font-weight:400}.pending-banquet p{margin:0;color:#7a5d58;font-size:12px;line-height:1.8}.venue-card{border:1px solid rgba(101,8,23,.3);padding:30px 22px;text-align:center;background:#fffaf2;box-shadow:0 18px 40px #50151d1f}.venue-card .eyebrow{color:var(--wine)}.venue-card h3{margin:0;color:var(--wine);font-size:25px;font-weight:400;letter-spacing:.08em}.venue-card>p:not(.eyebrow),.venue-card address{color:#6d4d4c;font-size:13px;line-height:1.85;font-style:normal}.venue-card address{margin-top:18px;padding-top:18px;border-top:1px solid rgba(101,8,23,.15)}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0 15px}.action-row a,.action-row button,.phone-link{border:1px solid var(--wine);padding:12px 8px;color:var(--wine);background:transparent;text-decoration:none;cursor:pointer}.phone-link{display:block;border-color:transparent;color:#7c5960;font-size:12px}.gallery-section{background:var(--wine)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:320px 230px;gap:8px;margin-top:50px}.gallery-item{margin:0;overflow:hidden;background:#3d0710}.gallery-item:first-child{grid-column:1 / -1}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.22,1,.36,1)}.gallery-grid.is-visible .gallery-item{animation:galleryReveal .9s both}.gallery-grid.is-visible .gallery-item:nth-child(2){animation-delay:.18s}.gallery-grid.is-visible .gallery-item:nth-child(3){animation-delay:.34s}.gallery-grid.is-visible .gallery-item img{transform:scale(1.035)}.red-scene{position:relative;min-height:680px;overflow:hidden;background:#5d0716}.red-scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 45%,#39020ce6)}.red-scene img{width:100%;height:680px;object-fit:cover}.red-scene.is-visible img{animation:redSceneZoom 8s ease-in-out infinite alternate}.red-scene>div{position:absolute;z-index:2;right:0;bottom:40px;left:0;text-align:center}.red-scene span{display:block;color:var(--gold);font-size:62px;animation:happinessPulse 2.1s ease-in-out infinite}.red-scene p,.red-scene h2{margin:0;letter-spacing:.2em}.red-scene p{margin-top:8px;font-size:13px}.red-scene h2{margin-top:8px;font-size:36px;font-weight:400}.rsvp-section{position:relative;color:var(--ink);background:#f4e8da;overflow:hidden}.rsvp-section .eyebrow,.rsvp-section .section-heading h2{color:var(--wine)}.rsvp-section .section-heading>p:last-child{margin:16px 18px 42px;color:#775b59;font-size:12px;line-height:1.9}.rsvp-form{display:grid;gap:18px;border:1px solid rgba(101,8,23,.2);padding:24px 18px;background:#fffcf6cc}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guest-row{grid-template-columns:1fr}.invite-type-field{display:flex;min-width:0;flex-direction:column;justify-content:flex-end;border-bottom:1px solid rgba(101,8,23,.28);padding:0 4px 11px}.invite-type-field>span{margin-bottom:13px;color:#6e3d43;font-size:12px;letter-spacing:.08em}.invite-type-field>strong{color:var(--wine);font-size:16px;font-weight:400;letter-spacing:.16em}.rsvp-form label,.rsvp-form fieldset{min-width:0}.rsvp-form label>span,.rsvp-form legend{display:block;margin:0 0 8px;color:#6e3d43;font-size:12px;letter-spacing:.08em}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid rgba(101,8,23,.28);border-radius:0;padding:11px 4px;color:var(--ink);background:transparent}.rsvp-form textarea{resize:vertical}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:#ad9690;font-size:12px}.rsvp-form input[aria-invalid=true]{border-color:#b40022}.rsvp-form small{display:block;margin-top:5px;color:#a0001f;font-size:10px}.rsvp-form fieldset{margin:0;border:0;padding:0}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.choice-row.two-options{grid-template-columns:repeat(2,1fr)}.meal-choice-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.meal-choice-row.single{grid-template-columns:1fr}.meal-choice{position:relative}.meal-choice input{position:absolute;opacity:0;pointer-events:none}.meal-choice>span{display:grid!important;min-height:98px;place-content:center;gap:7px;margin:0!important;border:1px solid rgba(101,8,23,.22);padding:12px 8px;text-align:center;cursor:pointer}.meal-choice strong{color:var(--wine);font-size:14px;font-weight:400}.meal-choice small{margin:0;color:#9b817d;font-size:10px;line-height:1.6}.meal-choice input:checked+span{border-color:var(--wine);color:#fff5e8;background:var(--wine);box-shadow:0 10px 24px #65081729}.meal-choice input:checked+span strong,.meal-choice input:checked+span small{color:#fff5e8}.choice{position:relative}.choice input{position:absolute;opacity:0;pointer-events:none}.choice>span{display:block!important;margin:0!important;border:1px solid rgba(101,8,23,.22);padding:10px 5px;text-align:center;cursor:pointer}.choice input:checked+span{color:#fff5e8;background:var(--wine)}.primary-button{border:0;padding:15px;color:#fff3df;background:var(--wine);cursor:pointer;letter-spacing:.2em}.primary-button:disabled{cursor:wait;opacity:.7}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.submit-error{margin:-4px 0 0;color:#a0001f;font-size:12px;line-height:1.6;text-align:center}.submit-status{margin:-4px 0 0;color:var(--wine);font-size:12px;line-height:1.6;text-align:center;animation:statusPulse 1.25s ease-in-out infinite}.form-note{margin:-8px 0 0;color:#9b817d;font-size:10px;text-align:center}.rsvp-success{border:1px solid rgba(101,8,23,.24);padding:42px 20px;text-align:center;background:#fffcf6d9}.rsvp-success-backdrop{position:fixed;z-index:120;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#1f0208bd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:modalFade .3s ease-out both}.rsvp-success-dialog{width:min(100%,360px);border:1px solid rgba(152,88,78,.22);border-radius:2px;padding:34px 24px 24px;text-align:center;color:var(--ink);background:#fffaf2;box-shadow:0 28px 90px #1800056b;animation:modalBloom .62s cubic-bezier(.22,1,.36,1) both}.rsvp-success-dialog h3{margin:0;color:var(--wine);font-size:28px;font-weight:400}.rsvp-success-dialog p:not(.eyebrow){color:#765b58;font-size:13px;line-height:1.9}.rsvp-success-dialog small{display:block;margin:14px 0;color:#9b817d}.rsvp-success-dialog button{width:100%;border:0;padding:13px;color:#fff3df;background:var(--wine);cursor:pointer;letter-spacing:.16em}.success-mark{display:block;color:var(--wine);font-size:72px;animation:happinessPulse 2.1s ease-in-out infinite}.rsvp-success .eyebrow{margin:12px 0}.rsvp-success h3{margin:0;color:var(--wine);font-size:28px;font-weight:400}.rsvp-success>p:not(.eyebrow){color:#765b58;font-size:13px;line-height:2}.text-button{border:0;border-bottom:1px solid var(--wine);padding:4px;color:var(--wine);background:transparent;cursor:pointer}footer{display:grid;gap:14px;padding:72px 30px calc(70px + env(safe-area-inset-bottom));text-align:center;color:var(--gold);background:#3d0710}footer p,footer strong,footer span{margin:0}footer p{font-family:Georgia,serif;font-size:11px;letter-spacing:.32em}footer strong{font-size:22px;font-weight:400;letter-spacing:.12em}footer span{color:#efd8b0a3;font-size:11px;line-height:1.9}.reveal{opacity:0;transform:translateY(36px);filter:blur(3px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1),filter .9s ease,clip-path 1.15s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}.reveal.tilt-left{transform:translateY(36px) rotate(-2deg)}.reveal.tilt-left.is-visible{transform:translateY(0) rotate(-2deg)}.reveal.motion-zoom{transform:translateY(24px) scale(.9)}.reveal.motion-zoom.is-visible{transform:translateY(0) scale(1)}.reveal.motion-wipe{opacity:.42;clip-path:inset(8% 0 8% 0);filter:brightness(.76) blur(1px);transform:scale(1.018)}.reveal.motion-wipe.is-visible{opacity:1;clip-path:inset(0 0 0 0);filter:none;transform:scale(1)}.section-heading.is-visible .eyebrow,.date-heading.is-visible .eyebrow{animation:textFlash .75s .16s both}.section-heading.is-visible h2,.date-heading.is-visible h2{animation:titleBloom 1s .28s both}.story-copy.is-visible span{animation:titleBloom 1s .15s both}.story-copy.is-visible p,.cinema-photo.is-visible .cinema-copy{animation:copyRise 1.05s .35s both}@keyframes spin{to{transform:rotate(360deg)}}@keyframes envelopeBreathe{0%,to{transform:scale(.985)}50%{transform:scale(1.025)}}@keyframes openSealPulse{0%,to{filter:brightness(1);transform:translate(-50%,-50%) scale(.94)}50%{filter:brightness(1.2);transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 0 11px #ffd88b14,0 0 38px #ffe1a8e0}}@keyframes hintBlink{50%{opacity:.45;transform:translateY(3px)}}@keyframes envelopeOpen{0%{opacity:1;transform:translateY(0) scale(1)}45%{opacity:1;transform:translateY(-2svh) scale(1.07)}to{opacity:0;transform:translateY(-12svh) scale(1.18)}}@keyframes celebrationSway{0%{transform:translate3d(-1.2%,-.4%,0) rotate(-.35deg)}to{transform:translate3d(1.2%,.7%,0) rotate(.35deg)}}@keyframes breathe{50%{opacity:.35;transform:translateY(5px)}}@keyframes textFlash{0%{opacity:0;filter:brightness(2.4);transform:translateY(9px)}45%{opacity:1;filter:brightness(1.8)}to{opacity:1;filter:brightness(1);transform:translateY(0)}}@keyframes titleBloom{0%{opacity:0;letter-spacing:.45em;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes copyRise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes portraitDrift{0%{transform:scale(1.01) translateY(0)}to{transform:scale(1.07) translateY(-1.2%)}}@keyframes photoZoom{0%{transform:scale(1)}to{transform:scale(1.045)}}@keyframes cinemaPan{0%{transform:scale(1.02) translate(-.8%)}to{transform:scale(1.09) translate(.8%)}}@keyframes redSceneZoom{0%{transform:scale(1.01)}to{transform:scale(1.07)}}@keyframes lightSweep{0%,68%{opacity:0;transform:translate(-46%) rotate(7deg)}76%{opacity:.75}92%,to{opacity:0;transform:translate(46%) rotate(7deg)}}@keyframes handwritingFloat{50%{transform:rotate(-5deg) translateY(-5px)}}@keyframes numberFlip{0%{opacity:.35;transform:translateY(-8px) rotateX(55deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes countdownRise{0%{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes galleryReveal{0%{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes happinessPulse{50%{filter:drop-shadow(0 0 14px rgba(236,199,128,.42));transform:scale(1.055)}}@keyframes musicHalo{0%{opacity:.7;transform:scale(.94)}to{opacity:0;transform:scale(1.22)}}@keyframes borderGlow{50%{border-color:#eecd8d80}}@keyframes statusPulse{50%{opacity:.5}}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalBloom{0%{opacity:0;transform:translateY(28px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:375px){.section-pad{padding-inline:20px}.cover{padding-inline:18px}.cover-photo{height:min(57svh,560px)}.field-row,.field-row.compact,.choice-row{grid-template-columns:1fr}}@media(max-height:680px){.gate-copy{padding-top:1svh}.envelope-button{width:min(72vw,330px)}.gate-hint{margin-top:0}}@media(min-width:760px){.invitation{margin-block:34px;border-radius:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none!important;filter:none!important;clip-path:none!important}}
