:root{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-weight:500;color:#4d3438;background:#fbf4ec;font-size:18px;line-height:1.5;font-synthesis:none;--paper:#fbf4ec;--ink:#4d3438;--muted:#786065;--rose:#925366;--line:#dec9c4;--soft:#f5e6e7;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--rose)}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}h1,h2,h3,p{margin:0}h1,h2,h3,.age,.date-title{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(44px,11.8vw,56px);line-height:1.06;color:var(--rose)}h2{font-size:34px;line-height:1.14}h3{font-size:29px;line-height:1.16}p{margin:14px 0;color:var(--muted)}strong{color:var(--ink)}:focus-visible{outline:3px solid #815626;outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:12px;background:#fff;padding:12px;z-index:100}.skip:focus{top:12px}#app{overflow:hidden}.hero,.section,footer{max-width:480px;margin-inline:auto}.hero{padding:40px 24px;text-align:center;min-height:100svh;display:flex;flex-direction:column;align-items:center}.age{font-size:28px;color:var(--rose);margin:4px 0 2px;line-height:1.25}.portrait{width:min(100%,310px);position:relative;flex-shrink:0}.portrait img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}.hero h2{font-size:31px;margin:0 0 22px}.hero .button{width:100%}.spark{position:absolute;font-size:27px;color:#c39750;animation:twinkle 4s ease-in-out infinite}.spark-1{left:3%;top:23%}.spark-2{right:3%;top:33%;font-size:19px;animation-delay:1s}.spark-3{left:9%;top:62%;font-size:20px;animation-delay:2s}.button{min-height:54px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;text-decoration:none;font-weight:600;padding:13px 20px;border:1.5px solid var(--rose);width:100%;font-size:17px;line-height:1.35;transition:background .2s,transform .2s}.primary{background:var(--rose);color:#fff;box-shadow:0 4px 16px #92536612}.primary:hover{background:#81465a}.primary span{font-size:24px;font-weight:400;line-height:1}.outline{background:transparent;color:var(--rose)}.outline:hover{background:var(--soft)}.text-link{display:flex;align-items:center;justify-content:center;min-height:48px;font-weight:600;text-decoration:none;margin-top:10px;color:var(--ink)}.hero-date{font-size:15px;margin:8px 0 0}.section{padding:38px 24px 44px;scroll-margin-top:10px}.details{border-top:1px solid var(--line)}.castle-wrap{height:310px;overflow:hidden;margin:-6px -6px 24px}.castle{width:100%;height:100%;object-fit:cover;object-position:center 53%;mix-blend-mode:multiply}.details>p{margin:16px 0 24px}.date-block{border-block:1px solid var(--line);padding:19px 0;margin:0 0 20px}.date-title{font-size:40px;line-height:1.1;color:var(--ink);margin:0}.date-block p:last-child{margin:6px 0 0}.location>p{margin:5px 0 12px}.address{font-size:15px!important;line-height:1.6}.button svg{height:25px;width:25px;fill:none;stroke:currentColor;stroke-width:1.7}.location .small{font-size:14px;margin-top:12px}.dress{margin:30px 0 24px}.dress p{margin:10px 0 0}.rsvp{border-top:1px solid var(--line);padding-top:28px}.back-link{display:flex;align-items:center;min-height:48px;text-decoration:none;color:var(--muted);margin-bottom:22px}.rsvp h2{font-size:35px}.deadline{margin:6px 0 28px;font-size:18px}.family-name{font-size:15px;margin-bottom:8px}.family-name+p{margin-top:0}fieldset{padding:0;margin:28px 0;border:0;min-width:0}legend,.observation-label{font-size:17px;font-weight:600;margin-bottom:12px}.choice{display:flex;align-items:center;gap:14px;min-height:56px;padding:13px;border:1px solid var(--line);border-radius:12px;margin:9px 0;cursor:pointer}.choice:has(input:checked){border-color:var(--rose);background:var(--soft)}input[type=radio],input[type=checkbox]{width:23px;height:23px;flex:0 0 auto;margin:0;accent-color:var(--rose);cursor:pointer}.guest-list{margin:10px 0 28px}.guest-row{border-bottom:1px solid var(--line)}.guest-label{display:flex;align-items:center;gap:18px;min-height:74px;padding:14px 8px;cursor:pointer}.guest-label>span{font-weight:500}.guest-label small{display:block;color:var(--muted);font-size:14px;font-weight:400}.child-age{padding:0 8px 16px 49px}.child-age label{display:block;font-size:14px}.age-input{display:block;width:100%;max-width:140px;min-height:48px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:#fff9;color:var(--ink);margin:6px 0}.child-age small{font-size:12px;display:block;color:var(--muted)}.observation-label{display:block;margin-bottom:8px}.observation-label span{font-weight:400;color:var(--muted)}textarea{display:block;resize:vertical;width:100%;min-height:102px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#ffffff70;color:var(--ink);font-size:16px}textarea::placeholder{color:#8a767c;opacity:1}.counter{font-size:13px;color:var(--muted);text-align:right;margin-top:3px}.small{font-size:13px;line-height:1.5}.selection-summary{margin:26px 0 14px;font-size:15px}.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.error,.field-error{color:#9a2e39;font-size:14px}.field-error{display:block;margin-top:5px}.error:empty{display:none}.notice{background:var(--soft);border-left:3px solid var(--rose);padding:12px 18px;margin:26px 0}.notice p{margin:6px 0 14px}.saved-note{font-size:14px;color:var(--rose)}.review-list{list-style:none;padding:0;margin:22px 0}.review-list li{border-bottom:1px solid var(--line);padding:14px 0}.review-list small{display:block;color:var(--muted)}.review-observation{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);padding:15px;border-radius:8px}.text-button{border:0;background:none;color:var(--ink);margin-top:10px}.receipt{text-align:center;padding:10px 0 20px}.receipt-heart{font-size:74px;color:var(--rose);line-height:1.3}.receipt h3{font-size:30px}.receipt-id{overflow-wrap:anywhere;display:block;font-size:11px;margin-top:8px}.receipt .button{margin-top:24px}footer{padding:24px 24px 40px;text-align:center;font-size:14px}footer>span{color:var(--rose);font-size:28px}footer p{margin:6px 0}.demo-notice{padding:9px 18px;background:#4d3438;color:#fff4ec;text-align:center;font-size:12px;line-height:1.4}dialog{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--paper);color:var(--ink);width:min(94vw,430px);max-height:92dvh;overflow-y:auto}dialog::backdrop{background:#35222dda;backdrop-filter:blur(5px)}.film-header{display:flex;gap:10px;align-items:center;justify-content:space-between}.film-header h2{font-size:24px}.icon-button{width:48px;height:48px;border:0;border-radius:50%;background:var(--soft);color:var(--ink);font-size:30px;flex-shrink:0}.film-note{font-size:12px;margin:0 0 10px}.animatic{position:relative;aspect-ratio:9/13;overflow:hidden;background:#fbf4ec;border-radius:10px}.animatic img{width:100%;height:85%;object-fit:contain;animation:gentle 8.4s ease-in-out infinite alternate}.animatic p{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;color:var(--ink);font-family:Georgia,serif;font-size:23px;line-height:1.25;margin:0}.animatic.paused img{animation-play-state:paused}#pause-scene{margin-top:14px;font-size:15px}.loading{animation:twinkle 2s infinite}@keyframes twinkle{0%,to{opacity:.6}50%{opacity:1}}@keyframes gentle{0%{transform:scale(.97)}to{transform:scale(1.02)}}@media(min-width:768px){body{background:#f4e8e6}.hero,.section,footer{background:var(--paper)}.hero{padding-top:48px}.hero h1{font-size:56px}#app{max-width:480px;margin:28px auto;border-radius:22px;box-shadow:0 16px 70px #79506115}.demo-notice{max-width:480px;margin:auto}.hero{min-height:0}.portrait{width:290px}}@media(max-height:760px)and (max-width:767px){.hero{padding-top:28px}.portrait{width:260px}.hero h2{font-size:29px;margin-bottom:18px}.hero h1{font-size:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.guest-details{padding:0 8px 18px 49px}.guest-details .child-age{padding:0}.guest-name{margin-bottom:14px}.guest-name label{display:block;font-size:14px}.name-input{display:block;width:100%;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff9;color:var(--ink);margin-top:6px;font-size:16px}.name-input::placeholder{color:var(--muted)}.guest-label>span,.review-list li{overflow-wrap:anywhere;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.open-person{min-width:0;border:1px solid var(--line);border-radius:14px;padding:16px;margin:0 0 18px;text-align:left}.open-person legend{font-weight:600;padding:0 6px}.open-person label{display:block;font-size:14px;margin-top:12px}.open-person select{display:block;width:100%;min-height:48px;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;font-size:16px;background:#fff9;color:var(--ink)}.open-person .child-age{padding:0}.open-person .remove-person{min-height:44px;margin-top:10px}.open-person [hidden]{display:none!important}#add-person{width:100%;margin-bottom:16px}.contact-block{margin:6px 0 26px;padding:16px 16px 14px;border:1px solid #e6c3c2;border-radius:13px;background:linear-gradient(110deg,#fbe2e4,#fff0e7)}.contact-block label{display:block;font-size:17px;font-weight:600;margin-bottom:8px}.whatsapp-input{display:block;width:100%;max-width:260px;min-height:50px;border:1px solid #bc9898;border-radius:8px;padding:10px 14px;background:#fffaf6;color:var(--ink);font-size:19px;letter-spacing:.03em;font-variant-numeric:tabular-nums}.whatsapp-input[aria-invalid=true]{border-color:#9a2e39}.contact-block small{display:block;font-size:13px;color:var(--muted);margin-top:8px;line-height:1.45}.review-contact{font-size:16px}:root{--ink:#682440;--muted:#74505b;--rose:#a4315b;--paper:#fff3e8;--soft:#f9e4e7;--line:#dfb7a7;--gold:#a96d24;background:#f8e8eb;color:var(--ink)}html{scroll-padding-top:60px}body{background:#f8e8eb}#app{max-width:none;margin:0;border-radius:0;box-shadow:none;overflow:clip;background:radial-gradient(ellipse at 50% 10%,#faebd7,transparent 65%),#f8e8eb}.hero,.section,footer{max-width:none}.hero{position:relative;isolation:isolate;padding:55px 22px 42px;min-height:840px;overflow:hidden;background:#dfd8ef;text-align:center}.hero-environment{position:absolute;z-index:-3;inset:-2% 0;width:100%;height:104%;object-fit:cover;object-position:center 58%;will-change:transform;transform:translateY(var(--scene-y,0px)) scale(1.035)}.hero:before{content:"";position:absolute;z-index:-2;inset:0;background:radial-gradient(ellipse at 50% 18%,#fff2eccc,transparent 44%),linear-gradient(0deg,#fff0e2 0%,#ffede6a6 11%,transparent 28%);pointer-events:none}.hero>*:not(.hero-environment):not(.sunbeams):not(.magic-dust):not(.butterfly):not(.hero-fx):not(.butterfly-live){position:relative;z-index:2}.hero h1{font-size:clamp(53px,14.3vw,78px);color:#92244d;line-height:1.06;letter-spacing:-.055em;text-shadow:0 2px 0 #fff4eb,0 0 24px #fff9ef;white-space:nowrap}.hero .age{font-size:29px;line-height:1.15;color:#94621f;margin:4px 0 8px;text-shadow:0 1px #fff6e5}.hero h2{font-family:inherit;letter-spacing:.015em;font-size:15px;line-height:1.5;margin:0;color:#702641;font-weight:500;text-shadow:0 0 8px #fff7f0,0 0 18px #fff}.hero-emblem{width:45px;height:36px;margin-bottom:7px}.hero-emblem svg,.mini-crown svg,.royal-seal svg{width:100%;height:100%;fill:#ffdc8b;stroke:#a56d26;stroke-width:2.8;stroke-linejoin:round}.portrait{width:min(69vw,280px);margin:10px auto 0;filter:drop-shadow(0 16px 12px #844b5428);transform:translateY(var(--portrait-y,0px));will-change:transform}.portrait:after{content:"";position:absolute;z-index:-1;bottom:0;left:18%;width:64%;height:17px;border-radius:50%;background:#9b5d5340;filter:blur(8px)}.portrait img{animation:princess-arrival 1.5s cubic-bezier(.2,.7,.3,1) both}.hero .hero-date{font-size:14px;font-weight:600;color:#64223c;margin:15px 0 14px;letter-spacing:.02em}.hero-date span{padding:0 8px;color:#a36a25}.hero .button,.hero .text-link{max-width:350px}.hero .text-link{color:#70213e;text-decoration:underline;text-underline-offset:4px;font-size:15px;min-height:48px;margin-top:7px}.scroll-hint{color:#a66f28;font-size:34px;line-height:1;margin-top:4px;animation:hint-drift 2.8s ease-in-out infinite}.button{border-radius:999px;min-height:56px;font-size:17px;padding:14px 21px;transition:transform .25s,box-shadow .25s,background .25s}.primary{position:relative;overflow:hidden;color:#fff;border:2px solid #d8ad59;background:linear-gradient(170deg,#efafbe,#c85f81 26%,#a92f5b 70%,#892543);box-shadow:inset 0 0 0 2px #fff2d787,inset 0 3px 7px #fff8,0 6px 20px #97375e24;text-shadow:0 1px 2px #782742}.primary:after{content:"";position:absolute;inset:-70% auto -70% -40%;width:22%;background:linear-gradient(90deg,transparent,#fff6,transparent);transform:rotate(25deg);animation:button-shimmer 7s 2s ease-in-out infinite;pointer-events:none}.primary:hover{background:linear-gradient(170deg,#e7a6b8,#ae3c65);box-shadow:inset 0 0 0 2px #ffefc99c,0 8px 24px #97375e3d;transform:translateY(-2px)}.primary:active{transform:translateY(1px)}.outline{background:#fff4e6bf;border-color:#b27f37;color:#84354e;box-shadow:inset 0 0 0 2px #fff9e5}.outline:hover{background:#ffedda}.text-button{border-radius:12px}.motion-control{position:fixed;right:10px;top:10px;z-index:30;border:1px solid #dabd92;background:#fff7eef2;color:#6b3048;border-radius:30px;padding:9px 13px;min-height:44px;font-size:12px;box-shadow:0 2px 12px #7936501a;display:flex;align-items:center;gap:8px}.motion-control span{font-size:16px}.demo-notice{position:relative;z-index:10;max-width:none;background:#682e49;padding:9px 130px 9px 12px;font-size:11px;min-height:54px;text-align:left}.demo-notice~.motion-control{top:5px}.sunbeams{position:absolute;z-index:-1;pointer-events:none;inset:-30%;background:conic-gradient(from 162deg at 60% 0%,transparent 0deg,#fff3be4f 12deg,transparent 19deg,#fff8d953 25deg,transparent 36deg);transform-origin:60% 0%;animation:sun-sway 17s ease-in-out infinite alternate;mix-blend-mode:screen}.magic-dust{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}.dust-star{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:#fff8c9;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 3px #f5c64a);animation:star-drift var(--duration) var(--delay) ease-in-out infinite;opacity:.65}.spark{color:#fff7c1;filter:drop-shadow(0 0 3px #b9812d);font-size:37px}.spark-1{left:-3%;top:26%}.spark-2{right:-9%;top:52%}.spark-3{left:7%;top:74%}.butterfly{position:absolute;z-index:4;pointer-events:none;width:64px;height:64px;background:url(/media/fantasy-butterfly-v1.webp) center/contain no-repeat;filter:drop-shadow(0 0 8px #ffecb0);animation:butterfly-flight 12s ease-in-out infinite}.butterfly-one{left:7%;top:37%}.butterfly-two{right:5%;top:63%;width:49px;height:49px;animation-delay:-5s;animation-duration:15s}.butterfly-three{right:9%;top:17%;animation-delay:-3s}.details{position:relative;isolation:isolate;padding:0 0 55px;border:0;background:#fff0e2;text-align:center;overflow:hidden}.party-scene{height:clamp(365px,108vw,570px);position:relative;overflow:hidden;max-width:740px;margin:auto}.party-scene>img{width:100%;height:auto;min-height:100%;object-fit:cover;display:block}.party-scene:after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#fff0e2);pointer-events:none}.details-letter{position:relative;max-width:500px;margin:-12px auto 0;padding:0 28px}.eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#936632;margin:0 0 14px}.details h2{font-size:clamp(36px,9.7vw,48px);line-height:1.05;color:#842446}.flourish{width:160px;height:27px;margin:20px auto}.flourish svg{display:block;width:100%;height:100%;fill:none;stroke:#b67e31;stroke-width:1.9;stroke-linecap:round}.details-letter>p:not(.eyebrow){font-size:16px;line-height:1.7;margin:18px auto 26px;max-width:380px}.date-block{padding:25px 0;border-block:1px solid #c59b574f;margin:24px 0}.date-title{font-size:41px;color:#852946}.date-block p:last-child{font-size:18px;color:#79364c}.location h3{font-size:35px;color:#842446}.location>p{margin:6px 0 17px}.location .outline{margin:18px auto 0;max-width:350px}.address strong{font-weight:600;font-size:14px}.location .small{font-size:13px;margin-top:14px}.dress{margin:30px 0;padding:18px 10px 4px}.dress h3{font-size:29px}.dress p{font-size:15px;line-height:1.7}.mini-crown{display:block;width:43px;height:34px;margin:0 auto 9px}.details-letter>.primary{max-width:350px;margin:auto}.rsvp{position:relative;padding:95px 15px 60px;border:0;background:linear-gradient(#fff0e2 0,transparent 170px),url(/media/fantasy-hero-environment-v1.webp) center top/cover no-repeat,#ead2cd;scroll-margin-top:0}.royal-letter{position:relative;margin:auto;max-width:530px;padding:72px 24px 38px;background:radial-gradient(ellipse at top,#fffaf2,transparent 60%),linear-gradient(100deg,#f5dfc9,#fff4e7 17% 83%,#f5dfc9);border:1px solid #cc9c50;border-radius:60% 60% 9px 9px/18px 18px 8px 8px;box-shadow:0 12px 32px #68334d30,inset 0 0 0 7px #fff3df,inset 0 0 0 8px #d9b875,inset 0 0 40px #dbb9966b}.royal-letter:before,.royal-letter:after{content:"";position:absolute;pointer-events:none;left:7px;right:7px;height:17px;border-radius:50%;background:linear-gradient(#fbe6ce,#fffcf3 40%,#e2ba8e);box-shadow:0 4px 6px #744d3020}.royal-letter:before{top:-7px}.royal-letter:after{bottom:-6px;transform:rotate(-1deg)}.royal-seal{position:absolute;z-index:1;top:-32px;left:calc(50% - 42px);width:84px;height:84px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 30% 20%,#ffe7a9,#d9a443 55%,#a5691e);border:3px double #ad7322;box-shadow:inset 0 0 0 5px #efd18b,inset 0 0 0 6px #a9782d,0 5px 10px #88502f4a}.royal-seal svg{width:49px;height:44px;fill:#ffeec1;stroke:#a36d21;filter:drop-shadow(0 2px #9a612b)}.back-link{font-size:12px;justify-content:center;margin:0 0 12px;min-height:44px}.rsvp h2{text-align:center;color:#842446;font-size:clamp(39px,10.7vw,51px);line-height:1.02}.rsvp .flourish{margin:18px auto 9px}.deadline{text-align:center;font-size:16px;margin:9px 0 30px}.family-name{font-family:Georgia,serif;font-size:25px;font-weight:400;color:#842446}.family-name+p{font-size:15px;line-height:1.65}.guest-row{border:1px solid #e6c3c2;background:linear-gradient(110deg,#fbe2e4,#fff0e7);border-radius:13px;margin:11px 0;overflow:hidden}.guest-label{padding:15px 13px;gap:12px;min-height:72px}.guest-label>span{font-size:16px}.guest-label small{font-size:12px}.guest-details{padding:0 12px 6px}.guest-details .guest-name,.guest-details .child-age{padding:0 0 13px}.guest-details label{font-size:14px}.guest-details input{background:#fffaf6;border:1px solid #bc9898;border-radius:8px;min-height:48px;font-size:16px}.choice{background:#fff9f1;border-color:#d5b4a6}.choice:has(input:checked){background:#f7dfe4;border-color:#aa5e77}.observation-label{font-size:16px}textarea{background:#fffaf6;border-color:#bc9898}textarea::placeholder{color:#76616b}.rsvp h3{font-size:29px}.review-list li{overflow-wrap:anywhere}.receipt-heart{color:#b67831;text-shadow:0 0 17px #eabd7180}.receipt{position:relative}.celebration{position:absolute;inset:0;pointer-events:none;overflow:hidden}.celebration i{position:absolute;left:50%;top:45px;width:9px;height:9px;background:var(--petal);border-radius:2px 80%;animation:celebrate 2.4s var(--delay) ease-out both}footer{background:#fae4e3;padding:28px 20px 45px;border-top:1px solid #e5c8b9}footer p{color:#78535d}footer>span{color:#b27b35}dialog{border:2px solid #d2a258;border-radius:24px;background:#fff1e5;box-shadow:0 30px 100px #3f183a66;padding:17px;max-width:470px}dialog::backdrop{background:#291732de;backdrop-filter:blur(8px)}.film-header h2{color:#842446}.animatic{background:linear-gradient(0deg,#fff2e9,transparent 42%),url(/media/fantasy-hero-environment-v1.webp) center/cover;border:1px solid #d8b878;border-radius:16px}.animatic img{height:85%;filter:drop-shadow(0 12px 13px #6e345332)}.animatic p{background:#fff5e9e8;left:0;right:0;bottom:0;padding:12px 16px;color:#762b48;font-size:23px;min-height:80px}.film-note{color:#795861;margin:5px 0 12px}.icon-button{background:#f2dce0}.film-header{margin-bottom:8px}.reveal-ready{opacity:0;transform:translateY(28px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.3,1)}.reveal-ready.is-visible{opacity:1;transform:none}.motion-paused *,.motion-paused *:before,.motion-paused *:after,.motion-hidden *,.motion-hidden *:before,.motion-hidden *:after{animation-play-state:paused!important}.motion-paused .reveal-ready,.motion-reduced .reveal-ready{opacity:1;transform:none;transition:none}.motion-paused .hero-environment,.motion-reduced .hero-environment{transform:scale(1.035)}.motion-paused .portrait,.motion-reduced .portrait{transform:none}.effect-offscreen .magic-dust *,.effect-offscreen .butterfly,.effect-offscreen .sunbeams{animation-play-state:paused!important}@keyframes princess-arrival{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}@keyframes star-drift{0%,to{transform:translate3d(0,5px,0) scale(.55);opacity:.25}50%{transform:translate3d(11px,-24px,0) scale(1);opacity:.95}}@keyframes butterfly-flight{0%,to{transform:translateZ(0) rotate(-12deg) scaleX(.85)}35%{transform:translate3d(18px,-26px,0) rotate(8deg) scaleX(1)}70%{transform:translate3d(-8px,-9px,0) rotate(-4deg) scaleX(.7)}}@keyframes sun-sway{to{transform:rotate(8deg);opacity:.65}}@keyframes hint-drift{50%{transform:translateY(6px);opacity:.55}}@keyframes button-shimmer{0%,70%{left:-40%;opacity:0}73%{opacity:.65}to{left:130%;opacity:0}}@keyframes celebrate{0%{opacity:0;transform:translate(0) rotate(0)}15%{opacity:1}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin))}}@media(min-width:768px){.hero{padding-top:65px;min-height:940px}.hero-environment{object-fit:cover;object-position:center 53%;max-width:960px;left:50%;translate:-50% 0}.hero{background:radial-gradient(ellipse at center,#ead9e6,#d9c8da)}.hero:after{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#decbdc,transparent 25%,transparent 75%,#decbdc);pointer-events:none}.hero h1{font-size:83px}.hero h2{font-size:18px}.portrait{width:310px}.hero .age{font-size:34px}.hero-emblem{width:52px;height:39px}.hero-date{font-size:17px!important}.butterfly-one{left:calc(50% - 225px)}.butterfly-two{right:calc(50% - 240px)}.party-scene{height:630px}.details-letter{max-width:560px;padding-inline:38px}.details h2{font-size:49px}.details:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,#fff0e2 20%,#e8c4c42e)}.rsvp{background-size:auto,100% auto;padding-top:115px}.royal-letter{padding-inline:42px;padding-top:70px}.motion-control{right:22px;top:18px}.demo-notice{text-align:center;min-height:42px;padding:11px 160px}.demo-notice~.motion-control{top:4px}}@media(max-width:374px){.hero{padding-inline:16px;padding-top:57px;min-height:820px}.hero h1{font-size:51px}.portrait{width:246px}.hero h2{font-size:14px}.hero .hero-date{font-size:13px}.royal-letter{padding-inline:20px}.rsvp{padding-inline:11px}.rsvp h2{font-size:38px}.details-letter{padding-inline:23px}}.scene-controls{display:flex;gap:9px;margin-top:13px}.scene-controls .button{margin:0!important;min-height:48px;font-size:14px;padding:10px}.motion-control:disabled{cursor:default;opacity:1}.demo-notice{padding-right:164px}.motion-paused .portrait img{animation:none;opacity:1;transform:none}.animatic img.scene-environment{height:100%;object-fit:cover}.animatic img.scene-party{height:100%;object-fit:cover;object-position:center top}@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none}.hero-environment{transform:scale(1.035)}.portrait{transform:none}.magic-dust{opacity:.4}html{scroll-behavior:auto}}.hero-hint{font-size:13px;color:#70213e;margin:8px 0 0;opacity:.85;animation:hint-pulse 2.6s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:.6}50%{opacity:1}}h1,h2,h3,.date-title,.location h3,.dress h3,.details h2,.rsvp h2{font-family:Cormorant Garamond,Georgia,serif;font-weight:700}.eyebrow,.deadline,.family-name{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:600}button,input,select,textarea,.button{font-family:Cormorant Garamond,Georgia,serif;font-weight:600}.button{font-size:19px;letter-spacing:.02em}input,select,textarea{font-size:18px}.credit{font-size:13px;opacity:.7;margin-top:10px}.scene-title{font-family:Great Vibes,cursive;font-weight:400;font-size:clamp(56px,15vw,88px)}.royal-seal svg{font-family:Great Vibes,cursive}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/CormorantGaramond-500i.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/CormorantGaramond-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/CormorantGaramond-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/CormorantGaramond-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GreatVibes-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--story-ink:#5a1f3d;--story-gold:#a56d26;--story-cream:#fff8ef}.stage{position:relative;height:100svh;background:#2a1020;overflow:hidden;isolation:isolate}.stage.is-live{position:fixed;inset:0;z-index:40;height:auto}.stage.is-live .stage-frame{touch-action:none}.stage-bg{position:absolute;inset:-40px;background:center/cover no-repeat;filter:blur(28px) saturate(1.15) brightness(.85);transform:scale(1.1)}.stage-frame{position:absolute;inset:0;margin:auto;height:100%;width:100%;overflow:hidden;background:#efd7dd;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transform:translateY(calc(-1 * var(--lift,0%)));will-change:transform}.stage-frame:after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:#2a1020;opacity:var(--dim,0)}.stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;background:#efd7dd;visibility:hidden;-webkit-user-drag:none}.stage-video.is-current,.stage-video.is-next{visibility:visible}.stage-video.is-next{z-index:2}.stage-gl{position:absolute;z-index:3;left:0;top:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.stage.is-transiting .stage-gl{opacity:1;transition:none}.stage-fx{position:absolute;inset:0;z-index:4;pointer-events:none}.scene-progress{position:absolute;z-index:6;left:0;right:0;top:0;height:3px;background:#fff3;pointer-events:none}.scene-progress i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#f6c979,#fff2c2,#e5c483);box-shadow:0 0 12px #ffd98a}.stage-state{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:30px;color:#fff;background:#5a1f3d66;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none;animation:state-pop .9s ease both}@keyframes state-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}to{opacity:.9;transform:translate(-50%,-50%) scale(1)}}.stage-hint{position:absolute;z-index:7;left:50%;bottom:calc(64px + env(safe-area-inset-bottom,0px));transform:translate(-50%);margin:0;padding:8px 16px;border-radius:999px;font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:16px;color:#fff;background:#5a1f3d80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;pointer-events:none;animation:hint-in .6s ease both}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.stage-extra{position:absolute;z-index:7;left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;justify-content:center;opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}.stage-extra.is-visible{opacity:1;transform:none;pointer-events:auto}.stage-map{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 18px;border-radius:999px;border:1px solid #ffffff88;background:#fff8efe6;color:var(--story-ink);font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:17px;text-decoration:none;box-shadow:0 8px 24px #4a163040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.stage-map svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}.stage-play{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;background:#fff8efe6;color:var(--story-ink);border-color:#dfb7a7}.stage-replay{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:12px 24px;border-radius:999px;border:1px solid #ffffff99;background:#5a1f3dcc;color:#fff;font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:19px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 30px #2a102066;cursor:pointer}.stage-replay span{font-size:15px}.stage:not(.is-live) .stage-video.is-current{filter:brightness(.7)}.stage-butterfly{position:absolute;z-index:4;left:-70px;bottom:22%;width:56px;height:46px;pointer-events:none;opacity:0;filter:drop-shadow(0 6px 8px #7a214933)}.stage.is-live .stage-butterfly{animation:bf-cross 16s ease-in-out infinite 5s}.stage-butterfly .bf{width:100%;height:100%;overflow:visible}@keyframes bf-cross{0%,3%{opacity:0;transform:translate(0) rotate(0)}6%{opacity:1}20%{transform:translate(28vw,-14vh) rotate(-8deg)}34%{transform:translate(55vw,-6vh) rotate(6deg)}46%{transform:translate(80vw,-22vh) rotate(-6deg)}52%{opacity:1}56%,to{opacity:0;transform:translate(115vw,-30vh) rotate(0)}}.story-nav{position:fixed;z-index:45;right:10px;top:50%;transform:translateY(-50%);display:grid;gap:10px;padding:8px 6px;border-radius:999px;background:#5a1f3d33;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.story-nav button{width:28px;height:28px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}.story-nav button span{width:8px;height:8px;border-radius:50%;background:#fff9;box-shadow:0 0 0 1px #5a1f3d55;transition:transform .3s,background .3s}.story-nav button[aria-current=step] span{background:#ffd98a;transform:scale(1.5);box-shadow:0 0 10px #ffd98a}.story-nav[hidden]{display:none}.sound-control{position:fixed;z-index:45;left:12px;top:calc(12px + env(safe-area-inset-top,0px));min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid #dfb7a7;background:#fff8efe6;color:var(--story-ink);font-size:14px;font-weight:600;box-shadow:0 6px 18px #4a163026;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(min-aspect-ratio:3/4){.stage-frame{width:auto;aspect-ratio:9/16;max-width:100%;left:50%;right:auto;transform:translate(-50%,calc(-1 * var(--lift,0%)))}.story-nav{right:calc(50% - min(50%,100svh * 9 / 32) - 44px)}}.motion-paused .stage-butterfly,.motion-paused .stage-fx{display:none}@media(prefers-reduced-motion:reduce){.stage-butterfly,.stage-fx{display:none}.stage-video.is-next{transition:opacity .5s ease}}.hero.cover{min-height:100svh;padding:calc(34px + env(safe-area-inset-top,0px)) 22px calc(30px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;touch-action:pan-y}.hero.cover>.hero-fx{position:absolute;inset:0;z-index:1;pointer-events:none}.hero.cover>.butterfly-live{position:absolute;z-index:4;left:0;top:0;width:60px;height:50px;pointer-events:none;will-change:transform;filter:drop-shadow(0 6px 8px #7a214933)}.butterfly-live .bf{width:100%;height:100%;overflow:visible}.bf-wing{transform-origin:60px 50px;animation:bf-flap .32s ease-in-out infinite alternate}.bf-right{animation-direction:alternate-reverse}@keyframes bf-flap{0%{transform:rotateY(0)}to{transform:rotateY(58deg)}}.hero.cover h1{font-family:Great Vibes,cursive;font-weight:400;font-size:clamp(68px,19vw,104px);letter-spacing:0;line-height:1;color:#8f1f4f;text-shadow:0 2px 0 #fff4eb,0 0 26px #fff9ef,0 10px 30px #7a214933;margin-top:6px}.hero.cover .age{font-family:Cormorant Garamond,Georgia,serif;font-weight:700;font-size:34px;letter-spacing:.08em;text-transform:uppercase;color:#a56d26;margin:0 0 6px}.hero.cover h2{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-style:italic;font-size:21px;letter-spacing:.01em}.hero.cover .hero-date{font-family:Cormorant Garamond,Georgia,serif;font-weight:700;font-size:19px;letter-spacing:.03em;margin:14px 0 18px}.hero.cover .portrait{width:min(62vw,250px);margin-top:8px}.hero-hint{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:17px;color:#70213e;margin:12px 0 4px;animation:hint-pulse 2.6s ease-in-out infinite}.hero-hint[hidden]{display:none}.hero.cover .text-link{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:18px}.envelope{position:relative;z-index:3;width:min(74vw,290px);aspect-ratio:3/2;border:0;background:transparent;padding:0;perspective:900px;transform-style:flat;cursor:pointer;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 18px 22px #7a214940);animation:env-float 4.2s ease-in-out infinite}.envelope:focus-visible{outline:3px solid #ffd98a;outline-offset:6px;border-radius:12px}@keyframes env-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.envelope>span{position:absolute;left:0;right:0}.env-back{top:0;bottom:0;border-radius:10px;background:linear-gradient(160deg,#f2a9c1,#e18aa8 60%,#d67a9c);box-shadow:inset 0 0 0 2px #e5c48366}.env-card{inset:8% 6%;border-radius:8px;background:linear-gradient(180deg,#fffaf2,#fff2e3);box-shadow:0 4px 14px #7a214926;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transform:translateY(0);transition:transform 1s cubic-bezier(.2,.8,.2,1) .45s,box-shadow 1s ease .45s}.env-card-crown{width:34px;height:26px}.env-card-crown svg{width:100%;height:100%;fill:#ffdc8b;stroke:#a56d26;stroke-width:2.8;stroke-linejoin:round}.env-card-title{font-family:Great Vibes,cursive;font-size:clamp(24px,7vw,34px);color:#8f1f4f;line-height:1.05}.env-card-sub{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:14px;color:#70213e;white-space:nowrap}.env-front{top:0;bottom:0;border-radius:10px;background:linear-gradient(180deg,#f3aac3,#e08aa9);clip-path:polygon(0 0,50% 50%,100% 0,100% 100%,0 100%)}.env-front:before,.env-front:after{content:"";position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(200deg,#f9c6d8,#ea98b6)}.env-front:before{left:0;clip-path:polygon(0 0,100% 50%,0 100%)}.env-front:after{right:0;clip-path:polygon(100% 0,0 50%,100% 100%)}.env-flap{top:0;height:64%;transform-origin:top;background:linear-gradient(180deg,#f7bfd3,#e88fae);clip-path:polygon(0 0,100% 0,50% 100%);box-shadow:0 6px 10px #7a214922;transition:transform .75s cubic-bezier(.3,.8,.3,1),filter 0s linear .37s,z-index 0s linear .75s}.env-seal{left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe9a8,#d9a94a 55%,#a86f1e);box-shadow:0 3px 8px #5a1f3d55,inset 0 0 0 3px #ffe6a888;font-family:Great Vibes,cursive;font-size:26px;color:#fff6d8;display:grid;place-items:center;text-shadow:0 1px 0 #8a5a12;animation:seal-glow 2.4s ease-in-out infinite;transition:transform .5s ease,opacity .5s ease}@keyframes seal-glow{0%,to{box-shadow:0 3px 8px #5a1f3d55,inset 0 0 0 3px #ffe6a888,0 0 #ffd98a00}50%{box-shadow:0 3px 8px #5a1f3d55,inset 0 0 0 3px #ffe6a8,0 0 22px 6px #ffd98a88}}.envelope.is-opening{animation:none}.envelope.is-opening .env-seal{transform:translate(-50%,-50%) scale(1.6);opacity:0}.envelope.is-opening .env-flap{transform:rotateX(178deg);filter:brightness(1.08) saturate(.8);z-index:1}.envelope.is-opening .env-card{transform:translateY(-88%);box-shadow:0 20px 40px #7a214933,0 0 40px #ffd98a88}.envelope.is-opening .env-card-title{animation:card-shine 1.2s ease .6s both}@keyframes card-shine{0%{text-shadow:0 0 0 #ffd98a00}50%{text-shadow:0 0 18px #ffd98a}to{text-shadow:0 0 0 #ffd98a00}}.motion-paused .envelope,.motion-paused .env-seal,.motion-paused .bf-wing,.motion-paused .hero-hint{animation:none}@media(min-width:760px){.hero.cover{min-height:min(100svh,940px)}}.envelope>.env-back{z-index:1}.envelope>.env-card{z-index:2}.envelope>.env-front{z-index:3}.envelope>.env-flap{z-index:4}.envelope>.env-seal{z-index:5;left:50%;right:auto;top:60%}.envelope>.env-card{top:12%;bottom:12%}@media(max-height:980px){.hero.cover{padding-top:calc(22px + env(safe-area-inset-top,0px))}.hero-emblem{width:36px;height:28px;margin-bottom:2px}.hero.cover h1{font-size:clamp(60px,16vw,84px)}.hero.cover .age{font-size:26px;margin-bottom:2px}.hero.cover h2{font-size:18px}.hero.cover .portrait{width:min(48vw,190px);margin-top:4px}.hero.cover .hero-date{font-size:17px;margin:8px 0 10px}.envelope{width:min(62vw,240px)}.hero-hint{margin:8px 0 2px;font-size:16px}.hero.cover .text-link{min-height:40px;margin-top:2px}}html.is-gated,html.is-gated body{overflow:hidden;height:100%;overscroll-behavior:none}html.is-gated .hero.cover{touch-action:none}.magic-veil{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 42%,#fffdf6,#ffefc6 28%,#f9cadb 62%,#e9a6c4);transition:opacity .9s ease}.magic-veil:before,.magic-veil:after{content:"";position:absolute;inset:-20%;opacity:0;pointer-events:none}.magic-veil:before{background:radial-gradient(circle,#fff 0 2px,transparent 3px) 0 0/90px 90px,radial-gradient(circle,#fff9e0 0 1.5px,transparent 2.5px) 30px 45px/70px 70px,radial-gradient(circle,#ffd98a 0 1.2px,transparent 2px) 15px 20px/50px 50px}.magic-veil:after{background:conic-gradient(from 0deg,#fff0 0 20deg,#fff6 26deg,#fff0 32deg,#fff0 0 110deg,#fff5 116deg,#fff0 122deg,#fff0 0 200deg,#fff6 206deg,#fff0 212deg,#fff0 0 290deg,#fff5 296deg,#fff0 302deg);transform-origin:50% 45%}.magic-veil.is-on{opacity:1;transition:opacity .5s ease-in}.magic-veil.is-on:before{opacity:1;animation:veil-stars 1.8s ease-out both}.magic-veil.is-on:after{opacity:.9;animation:veil-beams 2.4s linear both}@keyframes veil-stars{0%{transform:scale(.6) rotate(0);opacity:0}30%{opacity:1}to{transform:scale(1.35) rotate(18deg);opacity:.35}}@keyframes veil-beams{0%{transform:rotate(0) scale(1)}to{transform:rotate(40deg) scale(1.25)}}@media(max-height:700px){.hero.cover{padding-top:calc(14px + env(safe-area-inset-top,0px));padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}.hero-emblem{width:30px;height:23px;margin-bottom:0}.hero.cover h1{font-size:clamp(46px,13vw,64px);margin-top:2px}.hero.cover .age{font-size:21px;margin-bottom:0}.hero.cover h2{font-size:15px}.hero.cover .portrait{width:min(36vw,140px);margin-top:2px}.hero.cover .hero-date{font-size:14px;margin:4px 0 6px}.envelope{width:min(50vw,190px)}.hero-hint{margin:6px 0 0;font-size:14px}.hero.cover .text-link{min-height:36px;margin-top:0;font-size:15px}}.hero.cover .portrait{transform:perspective(700px) translateY(calc(var(--portrait-y,0px) + var(--float-y,0px))) rotateY(var(--tilt-y,0deg)) rotateX(var(--tilt-x,0deg));will-change:transform;cursor:pointer;-webkit-tap-highlight-color:transparent}.hero.cover>.hero-environment{transform:translate(var(--px,0px),calc(var(--scene-y,0px) + var(--py,0px))) scale(1.06)}.portrait.is-tapped img{animation:mj-bounce .9s cubic-bezier(.3,1.4,.4,1) both}@keyframes mj-bounce{0%{transform:none}18%{transform:translateY(-16px) scale(1.05,.95) rotate(-2deg)}38%{transform:translateY(-26px) scale(.97,1.05) rotate(2deg)}60%{transform:translateY(-4px) scale(1.03,.97)}78%{transform:translateY(-8px) rotate(-1deg)}to{transform:none}}.portrait.is-tapped .spark{animation-duration:.5s}.envelope>.env-shine{z-index:6;top:0;bottom:0;border-radius:10px;overflow:hidden;pointer-events:none;mix-blend-mode:screen}.env-shine i{position:absolute;top:-30%;bottom:-30%;left:-40%;width:28%;background:linear-gradient(105deg,#fff0,#ffffff8c 45%,#fff0);transform:skew(-18deg);animation:env-shine 4.6s ease-in-out infinite}@keyframes env-shine{0%,62%{left:-40%}88%,to{left:130%}}.envelope.is-opening>.env-shine{display:none}@keyframes env-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(0)}70%{transform:translateY(-2px) rotate(-2.2deg)}76%{transform:translateY(-3px) rotate(2.2deg)}82%{transform:translateY(-1px) rotate(-1deg)}}.envelope:active{scale:.96}.envelope:hover .env-seal{animation-duration:1.2s}.magic-veil.is-flash{opacity:.62;transition:opacity .12s ease-in}.magic-veil.is-flash:before{opacity:.8;animation:veil-stars .5s ease-out both}.motion-paused .env-shine i{animation:none}.hero.cover img,.hero.cover svg,.hero.cover .envelope{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.page-fx{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;transition:opacity .8s ease}.page-butterfly{position:fixed;z-index:21;left:0;top:0;width:56px;height:48px;pointer-events:none;opacity:0;transition:opacity .8s ease;will-change:transform;filter:drop-shadow(0 6px 8px #7a214933)}.page-butterfly .bf{width:100%;height:100%;overflow:visible}html.page-fx-on .page-fx,html.page-fx-on .page-butterfly{opacity:1}.letter-dust{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.75;overflow:hidden;border-radius:inherit}.royal-seal{animation:seal-breathe 3.6s ease-in-out infinite}@keyframes seal-breathe{0%,to{transform:scale(1);box-shadow:inset 0 0 0 5px #efd18b,inset 0 0 0 6px #a9782d,0 5px 10px #88502f4a}50%{transform:scale(1.04);box-shadow:inset 0 0 0 5px #efd18b,inset 0 0 0 6px #a9782d,0 5px 10px #88502f4a,0 0 26px 6px #ffd98a77}}.button.primary{position:relative;overflow:hidden;isolation:isolate}.button.primary:after{content:"";position:absolute;top:-40%;bottom:-40%;left:-45%;width:30%;background:linear-gradient(105deg,#fff0,#ffffff80 45%,#fff0);transform:skew(-18deg);animation:env-shine 5.2s ease-in-out infinite 1.4s;pointer-events:none}.dress .mini-crown,.details .mini-crown{display:inline-block;animation:crown-float 3.8s ease-in-out infinite}@keyframes crown-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}.date-title{animation:gold-pulse 4s ease-in-out infinite}@keyframes gold-pulse{0%,to{text-shadow:0 0 0 #ffd98a00}50%{text-shadow:0 0 18px #ffd98a88}}footer .signature{font-size:14px;line-height:1.6;margin-top:22px;padding-top:16px;border-top:1px dashed #e5c8b9;color:#78535d}footer .signature strong{color:#8f1f4f}.motion-paused .royal-seal,.motion-paused .button.primary:after,.motion-paused .mini-crown,.motion-paused .date-title{animation:none}@media(prefers-reduced-motion:reduce){.page-fx,.page-butterfly{display:none}}
