@charset "UTF-8";
:root{color-scheme:light;--ink:#6e5b43;--gold:#b69762;--cream:#f5f0e6;--rose:#c68f82;--ease:cubic-bezier(.22,.8,.22,1)}
*{box-sizing:border-box}
html,body{margin:0;min-width:280px;background:var(--cream)}
body{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;color:var(--ink);-webkit-tap-highlight-color:transparent}
button{font:inherit}
button:focus-visible{outline:2px solid #8c6543;outline-offset:8px}
.invitation{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;display:flex;align-items:center;flex-direction:column;padding:48px 20px 24px;background:radial-gradient(ellipse at 50% 46%,#fffcf5 0%,#f7f1e7 45%,#eee5d8 100%)}
.grain{position:absolute;inset:0;z-index:-1;opacity:.14;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%238d785c' filter='url(%23n)' opacity='.4' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
.halo{position:absolute;z-index:-2;border-radius:50%;pointer-events:none;filter:blur(36px)}
.halo-one{width:340px;height:340px;top:240px;left:calc(50% - 270px);background:#ecd4c45c}
.halo-two{width:230px;height:290px;top:80px;left:calc(50% + 65px);background:#fffdf1b3}
.page-heading{text-align:center;position:relative;z-index:2;pointer-events:none}
.eyebrow,.letter-kicker,.letter-footer,.preview-note,.envelope-inscription{font-family:"Baskerville","Times New Roman",serif;font-weight:400;letter-spacing:.24em}
.eyebrow{font-size:9px;color:#a28a63;display:block;margin-bottom:18px}
h1{font-weight:400;font-size:28px;letter-spacing:.15em;line-height:1.55;margin:0 0 11px;color:#6d5a43}
.heading-dot{margin-left:-.2em}
.page-heading p{font-size:11px;letter-spacing:.15em;color:#ab9980;margin:0}
.stage{--w:min(84vw,340px);--h:calc(var(--w)*.65);width:min(100vw,470px);height:480px;position:relative;margin-top:9px;flex-shrink:0;perspective:1600px;touch-action:pan-y}
.scene{position:absolute;inset:0;perspective:1400px;transform-style:preserve-3d}
.envelope{position:absolute;width:var(--w);height:var(--h);left:50%;bottom:60px;transform:translateX(-50%) rotateX(14deg) rotateY(-10deg) rotateZ(-7deg);transform-style:preserve-3d;transition:transform 1.7s var(--ease);will-change:transform}
.paper{background-color:#f6edde;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23p)' opacity='.045' d='M0 0h120v120H0z'/%3E%3C/svg%3E")}
.envelope-back{position:absolute;inset:0;border-radius:4px;background-color:#e3d4bb;box-shadow:0 1px 1px #fff9e9 inset,0 7px 8px #5a3c2814,0 24px 44px #68462d20;transform:translateZ(-2px)}
.lining{position:absolute;inset:6px;display:flex;align-items:flex-start;justify-content:center;padding-top:26px;background:repeating-linear-gradient(45deg,transparent 0 10px,#c1a98217 10px 11px),linear-gradient(145deg,#d2b88f,#ecdcc0);color:#ad8c5b;box-shadow:inset 0 5px 14px #6751322b;border-radius:2px;transform:translateZ(0)}
.lining span{font:italic 28px Baskerville,serif;opacity:.5;letter-spacing:.12em}
.flap-top{position:absolute;inset:0 0 auto;height:66%;transform-origin:50% 0;transform:translateZ(9px) rotateX(0);transform-style:preserve-3d;z-index:6;transition:transform 1.3s var(--ease),filter 1s;filter:drop-shadow(0 3px 2px #6d50352c)}
.flap-face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,52% 99%,48% 99%);backface-visibility:hidden}
.flap-outside{background-color:#f5ead6;background-image:linear-gradient(150deg,#fff8e799,#e9dac200 45%,#d4bfa45c),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='x'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Cpath filter='url(%23x)' opacity='.04' d='M0 0h100v100H0z'/%3E%3C/svg%3E");border-top:1px solid #fff9eb}
.flap-inside{transform:rotateX(180deg);background:repeating-linear-gradient(45deg,transparent 0 10px,#c1a98220 10px 11px),linear-gradient(#e5d2af,#f0e1c9);display:flex;align-items:flex-start;justify-content:center;box-shadow:inset 0 8px 18px #87643a20}
.flap-inside span{font:italic 10px Baskerville,serif;color:#a18456;margin-top:18px;letter-spacing:.06em}
.fold{position:absolute;inset:0;z-index:4;transform-style:preserve-3d;transition:transform 1.4s var(--ease) .35s,filter 1.4s;filter:drop-shadow(0 0 1px #987e5b55)}
.fold-left{clip-path:polygon(0 0,54% 56%,0 100%);background-color:#eaddc6;transform-origin:left center;transform:translateZ(5px);background-image:linear-gradient(100deg,#f8efdd,#ddcaab)}
.fold-right{clip-path:polygon(100% 0,46% 56%,100% 100%);background-color:#f4ead7;transform-origin:right center;transform:translateZ(6px);background-image:linear-gradient(-110deg,#fff4e1,#e4d3b7)}
.fold-bottom{position:absolute;inset:0;z-index:5;transform-origin:center bottom;transform:translateZ(8px);transform-style:preserve-3d;transition:transform 1.5s var(--ease) .45s,filter 1.5s;filter:drop-shadow(0 -2px 1px #7c5a3317)}
.fold-bottom>.paper{position:absolute;inset:0;clip-path:polygon(0 100%,0 95%,47% 41%,53% 41%,100% 95%,100% 100%);background-color:#f0e3cb;background-image:linear-gradient(170deg,#e6d6b9 8%,#fbf0dc 60%,#e9d9bd);border-bottom:1px solid #c9b593;backface-visibility:visible}
.envelope-inscription{position:absolute;bottom:17px;left:0;right:0;text-align:center;font-size:7px;color:#ac9061;opacity:.8;backface-visibility:hidden}
.envelope-edge{position:absolute;left:3px;right:3px;bottom:-2px;height:3px;background:#c8b38f;border-radius:0 0 3px 3px;transform:translateZ(4px);opacity:.6}
.seal{position:absolute;z-index:7;left:50%;top:52%;width:72px;height:72px;border:0;padding:0;color:#f6d7b4;background:radial-gradient(ellipse at 32% 23%,#d6a78f 0%,#bc836d 37%,#ae715e 66%,#cd9b7c 90%);border-radius:48% 51% 46% 50% / 50% 45% 54% 48%;transform:translate3d(-50%,-50%,17px) rotate(-7deg);box-shadow:0 2px 1px #ebc7a9 inset,0 -2px 3px #8d5148 inset,1px 5px 5px #5d3d3940,0 9px 18px #5f362c22;cursor:pointer;transition:transform .7s var(--ease),opacity .5s;animation:seal-breath 4s ease-in-out infinite;touch-action:manipulation}
.seal:before{content:"";position:absolute;inset:4px;border:1px solid #e5b49770;border-radius:48% 49% 45% 50%;box-shadow:0 0 0 2px #9d66542e,0 1px 1px #f5d4ae8a inset}
.seal:after{content:"";position:absolute;inset:-11px;border:1px solid #bd936837;border-radius:50%;animation:seal-ring 4s ease-in-out infinite;pointer-events:none}
.seal-rim{position:absolute;inset:9px;border:1px solid #9d5e4d7a;border-radius:50%;box-shadow:0 1px 1px #f9ccae99,0 -1px 1px #945d4d;display:flex;flex-direction:column;align-items:center;justify-content:center}
.seal-monogram{font:italic 25px "Baskerville","Times New Roman",serif;text-shadow:0 1px #f3caae,0 -1px #8f5544;line-height:1;color:#dcae89;transform:rotate(7deg)}
.seal-monogram>span{font-size:15px;margin:0 1px}
.seal-leaf{font-size:13px;line-height:1;margin-top:1px;color:#d5a17e;text-shadow:0 1px #f1c29b}
.ground-shadow{position:absolute;width:75%;height:35px;bottom:28px;left:12.5%;background:#78582b;opacity:.15;border-radius:50%;filter:blur(14px);transform:rotate(-7deg);transition:transform 1.8s,opacity 1.8s,width 1.8s}
.letter{position:absolute;z-index:2;bottom:17px;left:8%;width:84%;height:367px;text-align:center;background-color:#fffaf0;border-radius:140px 140px 3px 3px;transform:translate3d(0,100px,2px) scale(.91);opacity:0;padding:30px 16px 23px;box-shadow:0 1px 1px #fff inset,0 10px 18px #58422725;transition:transform 1.65s var(--ease) .8s,opacity .4s .65s;transform-style:preserve-3d;touch-action:pan-y}
.letter:before{content:"";position:absolute;inset:5px;border:1px solid #c8ae7d;opacity:.55;border-radius:140px 140px 2px 2px;pointer-events:none}
.letter-border{position:absolute;inset:10px;border:1px solid #b59c6b40;border-radius:140px 140px 0 0;pointer-events:none}
.letter-kicker{position:relative;display:block;font-size:7px;color:#a0875c;margin-top:14px;letter-spacing:.19em}
.monogram{font-family:"Baskerville","Times New Roman",serif;font-size:76px;font-weight:400;line-height:1.05;color:#af9361;margin:14px auto 0;letter-spacing:-.09em;position:relative;z-index:1}
.monogram i{font-size:38px;font-weight:400;margin:0 3px;color:#c7b28d}
.monogram>span:last-child{font-style:italic}
.letter h2{position:relative;font-size:25px;font-weight:400;letter-spacing:.13em;margin:18px 0 11px;display:flex;justify-content:center;align-items:center;gap:13px;white-space:nowrap;z-index:1;color:#69543a}
.letter h2 i{font:italic 19px "Baskerville",serif;letter-spacing:0;color:#b99e71}
.fine-rule{width:115px;margin:auto;height:13px;position:relative;display:flex;align-items:center;justify-content:center;color:#bda579;font-size:8px}
.fine-rule:before,.fine-rule:after{content:"";width:44px;height:1px;background:linear-gradient(90deg,transparent,#c8b38f);position:absolute;left:0;top:50%}
.fine-rule:after{left:auto;right:0;transform:rotate(180deg)}
.vow{font-size:13px;font-weight:400;letter-spacing:.16em;margin:14px 0 12px;color:#8f7654}
.invitation-copy{font-size:10px;letter-spacing:.17em;line-height:1.9;margin:0;color:#ad9677}
.letter-footer{position:absolute;bottom:23px;left:0;right:0;font-size:6px;letter-spacing:.18em;color:#b4a083}
.botanical{position:absolute;stroke:#b89f71;stroke-width:.65;opacity:.6;width:71px;height:143px;pointer-events:none}
.botanical-left{left:-5px;bottom:15px;transform:rotate(-6deg)}
.botanical-right{right:-5px;bottom:15px;transform:scaleX(-1) rotate(-6deg)}
.flower-art{position:absolute;top:-2px;left:calc(50% - 44px);width:88px;height:55px;stroke:#bca575;stroke-width:.7;opacity:.65}
.orbit{position:absolute;border:1px solid #c2a67324;border-radius:50%;pointer-events:none}
.orbit-one{width:350px;height:350px;top:67px;left:calc(50% - 175px);transform:rotateX(58deg) rotateZ(-18deg)}
.orbit-two{width:420px;height:420px;top:19px;left:calc(50% - 210px);border-color:#c2a67313;transform:rotateX(55deg) rotateZ(18deg)}
.spark{position:absolute;color:#b99d67;pointer-events:none;font-family:serif;font-size:24px;opacity:.55;animation:twinkle 5s ease-in-out infinite}
.spark-one{left:12%;top:154px}.spark-two{right:13%;top:61px;font-size:15px;animation-delay:1.5s}.spark-three{right:8%;bottom:95px;font-size:11px;animation-delay:2.5s}
.petals{position:absolute;inset:0;pointer-events:none;z-index:8;overflow:visible}
.petal{position:absolute;top:44%;left:50%;width:10px;height:17px;border-radius:70% 10% 65% 25%;background:linear-gradient(135deg,#f6d8c9,#caa89880);opacity:0;will-change:transform,opacity}
.petal.fly{animation:petal-drift var(--duration,2.8s) var(--delay,0s) cubic-bezier(.18,.65,.4,1) both}
.interaction-footer{display:flex;align-items:center;flex-direction:column;position:relative;z-index:9;min-height:110px;width:100%;margin-top:-12px}
.interaction-hint{display:flex;align-items:center;justify-content:center;gap:11px;margin:0;color:#8d7758;font-size:10px;letter-spacing:.13em;line-height:20px;white-space:nowrap}
.hint-line{width:24px;height:1px;background:#c7b79488}
.replay{display:flex;align-items:center;gap:7px;min-height:44px;padding:12px 17px;margin-top:8px;background:none;border:1px solid #bba57c66;border-radius:30px;color:#8d7452;font-size:11px;letter-spacing:.1em;opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .4s,transform .4s,border-color .2s;touch-action:manipulation;cursor:pointer}
.replay svg{width:13px;height:13px;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.replay:active{background:#dbc49a22;transform:scale(.97)}
.preview-note{display:block;margin-top:17px;font-size:7px;letter-spacing:.15em;color:#b3a48f;opacity:.8}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

[data-state="opening"] .envelope,[data-state="open"] .envelope{transform:translateX(-50%) rotateX(0deg) rotateY(0deg) rotateZ(0deg)}
[data-state="opening"] .flap-top,[data-state="open"] .flap-top{transform:translateZ(0px) rotateX(178deg);filter:drop-shadow(0 -2px 1px #866c3c1a);z-index:1}
[data-state="opening"] .fold-left,[data-state="open"] .fold-left{transform:translateZ(5px) rotateY(-85deg);filter:drop-shadow(0 3px 2px #82654413)}
[data-state="opening"] .fold-right,[data-state="open"] .fold-right{transform:translateZ(6px) rotateY(85deg);filter:drop-shadow(0 3px 2px #82654413)}
[data-state="opening"] .fold-bottom,[data-state="open"] .fold-bottom{transform:translateZ(8px) rotateX(-115deg);filter:drop-shadow(0 3px 3px #866c3c1f)}
[data-state="opening"] .seal,[data-state="open"] .seal{animation:none;transform:translate3d(-50%,-70%,70px) rotate(15deg) scale(1.15);opacity:0;pointer-events:none}
[data-state="opening"] .envelope-inscription,[data-state="open"] .envelope-inscription{opacity:0}
[data-state="opening"] .letter,[data-state="open"] .letter{opacity:1;transform:translate3d(0,-20px,12px) scale(1)}
[data-state="open"] .letter{cursor:grab;transition:transform .3s var(--ease),box-shadow .3s,opacity .4s;box-shadow:0 2px 2px #fff inset,0 14px 25px #5842271e;transform:translate3d(0,-20px,12px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}
[data-state="open"] .letter.is-dragging{cursor:grabbing;transition:transform .08s linear}
[data-state="opening"] .ground-shadow,[data-state="open"] .ground-shadow{transform:rotate(0) scaleX(.8);opacity:.11}
[data-state="open"] .replay{opacity:1;visibility:visible;transform:translateY(0)}
[data-state="opening"] .page-heading,[data-state="open"] .page-heading{opacity:.75;transition:opacity 1s}
[data-state="resetting"] .seal{animation:none}
[data-state="resetting"] .letter{transition:transform .7s var(--ease),opacity .35s .1s;transform:translate3d(0,100px,2px) scale(.91)}
[data-state="resetting"] .flap-top{transition-delay:.55s;transition-duration:.8s;z-index:6}
[data-state="resetting"] .fold{transition-delay:.3s;transition-duration:.8s}
[data-state="resetting"] .fold-bottom{transition-delay:.3s;transition-duration:.8s}
[data-state="resetting"] .seal{transition:opacity .4s .95s,transform .4s .95s}

@keyframes seal-breath{0%,100%{filter:brightness(1)}50%{filter:brightness(1.07)}}
@keyframes seal-ring{0%,100%{opacity:.35;transform:scale(.98)}50%{opacity:.8;transform:scale(1.06)}}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.8) rotate(0)}50%{opacity:.65;transform:scale(1.1) rotate(15deg)}}
@keyframes petal-drift{0%{opacity:0;transform:translate3d(0,0,70px) rotate(0) scale(.5)}15%{opacity:.8}80%{opacity:.5}100%{opacity:0;transform:translate3d(var(--x),var(--y),30px) rotate(var(--r)) scale(.9)}}

/* A complete opening choreography, followed by a quiet living composition. */
.aurora{position:absolute;inset:8% -45% 0;z-index:-2;pointer-events:none;background:conic-gradient(from 20deg at 50% 50%,#f7e4ba00,#f4d8c16b,#ffe4dc88,#fff9d64d,#e1ceb03b,#f7e4ba00);filter:blur(45px);opacity:.8;transform-origin:50% 45%;animation:aurora-flow 24s ease-in-out infinite alternate;will-change:transform}
.halo-one{animation:light-wander 13s ease-in-out infinite alternate}.halo-two{animation:light-wander 17s ease-in-out infinite alternate-reverse}
.ambient-dust{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.ambient-dust i{position:absolute;width:3px;height:3px;background:#ba9659;border-radius:50%;opacity:0;box-shadow:0 0 8px #d5b87a88;animation:dust-rise 12s linear infinite;left:17%;top:95%}
.ambient-dust i:nth-child(2){left:78%;animation-delay:-4s;animation-duration:16s}.ambient-dust i:nth-child(3){left:8%;animation-delay:-7s;animation-duration:19s}.ambient-dust i:nth-child(4){left:90%;animation-delay:-11s}.ambient-dust i:nth-child(5){left:34%;animation-delay:-6s;animation-duration:18s}.ambient-dust i:nth-child(6){left:62%;animation-delay:-13s;animation-duration:20s}.ambient-dust i:nth-child(7){left:47%;animation-delay:-3s;animation-duration:17s}.ambient-dust i:nth-child(8){left:22%;animation-delay:-9s;animation-duration:15s}.ambient-dust i:nth-child(9){left:83%;animation-delay:-2s;animation-duration:21s}.ambient-dust i:nth-child(10){left:55%;animation-delay:-14s;animation-duration:23s}
.monogram{font-size:87px;letter-spacing:-.08em;background:linear-gradient(110deg,#917044 0%,#c7ac75 28%,#f2dfb0 43%,#aa8751 55%,#b99560 74%,#e7d6aa 100%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:gold-flow 9s ease-in-out infinite alternate}
.monogram>span:last-child{margin-left:2px}
.letter h2{margin-top:10px}
.letter>*:not(.letter-border):not(svg){backface-visibility:hidden}
.touch-glint{position:absolute;width:5px;height:5px;border-radius:50%;background:#cba66c;box-shadow:0 0 9px #d8ac6088;animation:touch-glint .9s ease-out both}
[data-state="opening"] .envelope{animation:envelope-opening 3.9s var(--ease) both}
[data-state="opening"] .flap-top{animation:top-opening 1.7s .15s var(--ease) both}
[data-state="opening"] .fold-left{animation:left-opening 2.1s .55s var(--ease) both}
[data-state="opening"] .fold-right{animation:right-opening 2.1s .65s var(--ease) both}
[data-state="opening"] .fold-bottom{animation:bottom-opening 2.2s .6s var(--ease) both}
[data-state="opening"] .letter{animation:letter-emerge 2.85s .85s var(--ease) both;transition:none}
[data-state="opening"] .seal{animation:seal-release .85s var(--ease) both}
[data-state="opening"] .letter-kicker,[data-state="opening"] .monogram,[data-state="opening"] .letter h2>span,[data-state="opening"] .letter h2>i,[data-state="opening"] .fine-rule,[data-state="opening"] .vow,[data-state="opening"] .invitation-copy,[data-state="opening"] .letter-footer{animation:words-arrive 1s var(--ease) both}
[data-state="opening"] .letter-kicker{animation-delay:1.55s}
[data-state="opening"] .monogram{animation:words-arrive 1.25s 1.75s var(--ease) both,gold-flow 9s 3s ease-in-out infinite alternate}
[data-state="opening"] .letter h2>span:first-child{animation-delay:2.1s}
[data-state="opening"] .letter h2>i{animation-delay:2.25s}
[data-state="opening"] .letter h2>span:last-child{animation-delay:2.4s}
[data-state="opening"] .fine-rule{animation-delay:2.55s}
[data-state="opening"] .vow{animation-delay:2.7s}
[data-state="opening"] .invitation-copy{animation-delay:2.9s}
[data-state="opening"] .letter-footer{animation-delay:3.05s}
[data-state="open"] .letter{animation:letter-afloat 7s ease-in-out infinite}
[data-state="open"] .letter.is-dragging{animation-play-state:paused}
[data-state="opening"] .ground-shadow{animation:shadow-opening 3.9s ease-in-out both}
[data-state="open"] .flower-art,[data-state="open"] .botanical{animation:ink-glow 8s ease-in-out infinite alternate}
[data-state="open"] .page-heading h1{animation:heading-tone 12s ease-in-out infinite alternate}
[data-state="resetting"] .monogram{animation:gold-flow 9s ease-in-out infinite alternate}
@keyframes envelope-opening{0%{transform:translateX(-50%) rotateX(14deg) rotateY(-10deg) rotateZ(-7deg)}18%{transform:translate(-50%,-25px) rotateX(26deg) rotateY(-24deg) rotateZ(-13deg) scale(1.06)}42%{transform:translate(-50%,-9px) rotateX(3deg) rotateY(13deg) rotateZ(5deg) scale(1.03)}70%{transform:translateX(-50%) rotateX(-3deg) rotateY(-6deg) rotateZ(-2deg)}100%{transform:translateX(-50%) rotateX(0) rotateY(0) rotateZ(0)}}
@keyframes top-opening{0%,10%{transform:translateZ(9px) rotateX(0)}72%{transform:translateZ(0) rotateX(210deg)}100%{transform:translateZ(0) rotateX(178deg)}}
@keyframes left-opening{0%{transform:translateZ(5px) rotateY(0)}68%{transform:translateZ(5px) rotateY(-132deg)}100%{transform:translateZ(5px) rotateY(-85deg)}}
@keyframes right-opening{0%{transform:translateZ(6px) rotateY(0)}68%{transform:translateZ(6px) rotateY(132deg)}100%{transform:translateZ(6px) rotateY(85deg)}}
@keyframes bottom-opening{0%{transform:translateZ(8px) rotateX(0)}65%{transform:translateZ(8px) rotateX(-158deg)}100%{transform:translateZ(8px) rotateX(-115deg)}}
@keyframes letter-emerge{0%{opacity:0;transform:translate3d(0,120px,2px) rotateY(-27deg) rotateZ(-10deg) scale(.78)}20%{opacity:1}49%{opacity:1;transform:translate3d(0,-105px,110px) rotateX(9deg) rotateY(20deg) rotateZ(8deg) scale(1.03)}73%{opacity:1;transform:translate3d(0,-8px,28px) rotateX(-5deg) rotateY(-10deg) rotateZ(-4deg)}100%{opacity:1;transform:translate3d(0,-20px,12px) rotateX(0) rotateY(0) rotateZ(0) scale(1)}}
@keyframes seal-release{0%{opacity:1;transform:translate3d(-50%,-50%,17px) rotate(-7deg) scale(1)}30%{opacity:1;transform:translate3d(-50%,-70%,100px) rotate(22deg) scale(1.18)}100%{opacity:0;transform:translate3d(-20%,-140%,170px) rotate(55deg) scale(.65)}}
@keyframes words-arrive{from{opacity:0;transform:translateY(24px) rotateX(-20deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes letter-afloat{0%,100%{transform:translate3d(0,-20px,12px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotateZ(0)}50%{transform:translate3d(0,-27px,17px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotateZ(.6deg)}}
@keyframes shadow-opening{0%,100%{transform:scaleX(.8);opacity:.11}40%{transform:scaleX(1.15);opacity:.05}}
@keyframes aurora-flow{0%{transform:translate3d(-5%,-3%,0) rotate(-15deg) scale(.95);opacity:.6}50%{opacity:.95}100%{transform:translate3d(8%,5%,0) rotate(45deg) scale(1.15);opacity:.75}}
@keyframes light-wander{from{transform:translate3d(-35px,-10px,0) scale(.9)}to{transform:translate3d(30px,80px,0) scale(1.2)}}
@keyframes dust-rise{0%{opacity:0;transform:translate3d(0,0,0) scale(.5)}20%{opacity:.4}80%{opacity:.4}100%{opacity:0;transform:translate3d(30px,-650px,0) scale(1)}}
@keyframes gold-flow{0%{background-position:0 50%}100%{background-position:100% 50%}}
@keyframes ink-glow{from{opacity:.45;stroke:#b89f71}to{opacity:.75;stroke:#c1947b}}
@keyframes heading-tone{from{color:#6d5a43}to{color:#987566}}
@keyframes touch-glint{0%{opacity:.85;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-40px) scale(.1)}}
@media(min-width:700px){.invitation{padding-top:46px;padding-bottom:28px;min-height:100vh}.stage{height:495px;margin-top:15px}.page-heading h1{font-size:30px}.interaction-footer{margin-top:-10px}}
@media(max-width:359px){.invitation{padding:32px 14px 18px}.eyebrow{margin-bottom:14px}h1{font-size:25px}.stage{height:442px;margin-top:6px;--w:83vw}.envelope{bottom:55px}.letter{height:344px;padding-top:25px}.letter h2{font-size:22px;gap:9px;margin-top:15px}.monogram{font-size:68px}.letter-kicker{font-size:6px}.vow{font-size:11px;margin-top:11px}.invitation-copy{font-size:9px}.letter-footer{font-size:5.5px}.flower-art{width:80px;left:calc(50% - 40px)}.botanical{width:57px;height:114px}.seal{width:65px;height:65px}.interaction-hint{font-size:9px}.interaction-footer{margin-top:-8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}.petals,.spark,.ambient-dust{display:none}.envelope,.aurora{will-change:auto}.letter{will-change:auto}}
