/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.block{display:block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}}:root{--cream:#f7f0e7;--paper:#fffaf3;--ink:#4c3634;--muted:#846d68;--rose:#b75f6b;--rose-deep:#823d4b;--blush:#e8a9aa;--blush-soft:#f2ceca;--gold:#c99a5a;--lily:#fffdf5;--lily-shadow:#eadfc8;--sage:#7d8b68;--line:#823d4b2e;--font-display:"Songti SC", "STSong", "SimSun", serif;--font-letter:"Kaiti SC", "STKaiti", "KaiTi", "FangSong", "FangSong_GB2312", serif;--font-ui:"PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:var(--font-ui);text-rendering:optimizelegibility;margin:0}button,input,textarea,select{font:inherit}button:focus-visible{outline-offset:6px;outline:3px solid #823d4b6b}::selection{background:var(--blush-soft);color:var(--rose-deep)}.site-shell{min-height:100vh;overflow:hidden}.hero{isolation:isolate;background:linear-gradient(#fffaf39e, #f7f0e7d1), repeating-linear-gradient(90deg, transparent 0 44px, #b75f6b06 45px 46px), var(--cream);align-content:center;place-items:center;min-height:100svh;padding:72px 24px 54px;display:grid;position:relative}.hero:after{background:linear-gradient(90deg, transparent, var(--line), transparent);content:"";width:min(860px,82vw);height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.warm-glow{z-index:-1;filter:blur(4px);opacity:.52;border-radius:999px;position:absolute}.warm-glow-one{aspect-ratio:1;background:radial-gradient(circle,#f2cecab3,#0000 68%);width:min(660px,72vw);top:-20vw;right:-16vw}.warm-glow-two{aspect-ratio:1;background:radial-gradient(circle,#edc8926b,#0000 68%);width:min(720px,78vw);bottom:-24vw;left:-18vw}.hero-copy{z-index:2;text-align:center;width:min(720px,100%);position:relative}.eyebrow,.section-kicker{color:var(--rose);font-family:var(--font-ui);letter-spacing:.34em;text-transform:uppercase;margin:0 0 18px;font-size:12px;font-weight:700}.section-kicker{align-items:center;gap:10px;display:inline-flex}.section-kicker:before{background:linear-gradient(145deg, var(--lily), #f7e7df 78%);content:"";border:1px solid #c99a5a59;border-radius:90% 12%;width:9px;height:17px;transform:rotate(38deg);box-shadow:0 3px 8px #823d4b14}.hero h1{font-family:var(--font-display);letter-spacing:-.06em;margin:0;font-size:clamp(42px,7.2vw,82px);font-weight:500;line-height:1.14}.hero h1 span{color:var(--rose-deep);letter-spacing:.02em;margin-top:8px;font-size:.66em;display:block}.hero-intro{width:min(520px,100%);color:var(--muted);font-family:var(--font-letter);margin:24px auto 0;font-size:clamp(16px,2.2vw,19px);line-height:1.9}.envelope-stage{z-index:3;perspective:1200px;width:min(460px,88vw);margin-top:clamp(38px,6vh,68px);position:relative}.envelope-button{--envelope-light-x:50%;--envelope-light-y:38%;--envelope-rotate-x:0deg;--envelope-rotate-y:0deg;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0}.envelope{aspect-ratio:1.62;filter:drop-shadow(0 30px 26px #55362f26);width:100%;transform:translateY(0) rotate(-1deg) rotateX(var(--envelope-rotate-x)) rotateY(var(--envelope-rotate-y));transform-style:preserve-3d;will-change:transform;transition:transform .18s ease-out,filter .5s;display:block;position:relative}.envelope:after{z-index:7;background:radial-gradient(circle at var(--envelope-light-x) var(--envelope-light-y), #fffae56b, transparent 38%);content:"";opacity:.72;pointer-events:none;border-radius:8px;transition:opacity .28s;position:absolute;inset:0}.envelope-button:hover .envelope{filter:drop-shadow(0 34px 28px #55362f33);transform:translateY(-6px) rotate(0deg) rotateX(var(--envelope-rotate-x)) rotateY(var(--envelope-rotate-y))}.envelope-button:active .envelope{transform:translateY(-2px) scale(.985) rotateX(var(--envelope-rotate-x)) rotateY(var(--envelope-rotate-y))}.envelope-back,.envelope-pocket{border-radius:8px;position:absolute;inset:0}.envelope-back{background:#dea1a5;box-shadow:inset 0 0 0 1px #72313e1f}.letter-preview{z-index:2;height:82%;color:var(--rose-deep);font-family:var(--font-display);letter-spacing:.16em;background:linear-gradient(#fffaf3f0,#fffaf3f0),repeating-linear-gradient(0deg,#0000 0 23px,#823d4b14 24px 25px);border:1px solid #823d4b1f;border-radius:4px;align-content:center;place-items:center;font-size:clamp(26px,7vw,40px);transition:transform .76s cubic-bezier(.2,.85,.25,1),box-shadow .5s;display:grid;position:absolute;bottom:6%;left:7%;right:7%}.letter-preview span{color:var(--gold);letter-spacing:.3em;margin-bottom:8px;font-family:Georgia,serif;font-size:10px;font-weight:700}.letter-preview i{color:var(--blush);letter-spacing:0;margin-top:12px;font-family:Georgia,serif;font-size:22px;font-style:normal}.envelope-pocket{z-index:3;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#edb9b8,#d98e96)}.envelope-flap{z-index:5;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:linear-gradient(165deg,#f0bfbd,#dda0a5);border-radius:7px 7px 0 0;height:59%;transition:transform .64s cubic-bezier(.4,0,.2,1),z-index 0s .31s;position:absolute;inset:0 0 auto}.wax-seal{z-index:6;aspect-ratio:1;color:#fff2e3;width:58px;font-family:var(--font-display);background:radial-gradient(circle at 35% 28%,#c56a75,#8d3f4f 72%);border:2px solid #ffedd966;border-radius:50%;place-items:center;font-size:20px;transition:opacity .26s,transform .38s;display:grid;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);box-shadow:0 7px 12px #5c233047,inset 0 0 0 3px #74283729}.is-open .envelope-flap{z-index:1;transform:rotateX(180deg)}.is-open .letter-preview{transform:translateY(-39%);box-shadow:0 -18px 30px #4e2f2a17}.is-open .wax-seal{opacity:0;transform:translate(-50%,-50%)scale(.65)rotate(12deg)}.open-prompt{border-bottom:1px solid var(--line);color:var(--rose-deep);letter-spacing:.12em;align-items:center;gap:8px;margin-top:30px;padding-bottom:6px;font-size:13px;font-weight:700;display:inline-flex}.open-prompt:before{background:linear-gradient(145deg, var(--lily), #f3dedb 76%);content:"";border:1px solid #c99a5a57;border-radius:90% 12%;width:10px;height:18px;transform:rotate(38deg);box-shadow:0 3px 8px #823d4b14}.envelope-button:hover .open-prompt{border-color:var(--rose)}.scroll-note{color:#4c36348a;letter-spacing:.24em;writing-mode:vertical-rl;margin:0;font-size:10px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.scroll-note:after{background:var(--line);content:"";width:1px;height:22px;margin:10px auto 0;display:block}.petal{opacity:.72;background:linear-gradient(145deg,#fffdf5f5,#f2ceca80);border:1px solid #c99a5a2e;border-radius:90% 12%;width:13px;height:23px;animation:8s ease-in-out infinite alternate drift;position:absolute;box-shadow:0 4px 10px #823d4b0f}.petal-three,.petal-six{background:linear-gradient(145deg,#edf0de,#8d9c74)}.petal-five{background:linear-gradient(145deg,#fff8e9,#d5ab70)}.petal-one{top:12%;left:10%;transform:rotate(24deg)}.petal-two{animation-delay:-2s;top:23%;right:11%;transform:rotate(80deg)}.petal-three{animation-delay:-4s;top:58%;left:7%;transform:rotate(-15deg)}.petal-four{animation-delay:-1s;bottom:18%;right:8%;transform:rotate(120deg)}.petal-five{animation-delay:-5s;top:8%;left:34%;transform:rotate(45deg)}.petal-six{animation-delay:-3s;bottom:10%;right:28%;transform:rotate(-50deg)}.petal-seven{animation-delay:-6s;top:48%;right:3%;transform:rotate(10deg)}@keyframes drift{0%{translate:0 -6px}to{translate:8px 10px}}.letter-section{background:radial-gradient(circle at 18% 18%,#e8a9aa21,#0000 26%),radial-gradient(circle at 82% 80%,#c99a5a1f,#0000 28%),#efe4d8;padding:clamp(90px,12vw,160px) 22px;position:relative}.letter-paper{background:linear-gradient(#fffaf3f2,#fffaf3f5),repeating-linear-gradient(0deg,#0000 0 31px,#823d4b0e 32px 33px);border:1px solid #823d4b1a;width:min(850px,100%);margin:0 auto;padding:clamp(52px,8vw,104px) clamp(28px,8vw,94px) clamp(60px,9vw,112px);position:relative;box-shadow:0 38px 90px #4d322b1f}.letter-paper:before,.letter-paper:after{content:"";border-color:#b75f6b3b;width:64px;height:64px;position:absolute}.letter-paper:before{border-top:1px solid;border-left:1px solid;top:24px;left:24px}.letter-paper:after{border-bottom:1px solid;border-right:1px solid;bottom:24px;right:24px}.letter-mark{border:1px solid var(--rose);width:58px;height:72px;color:var(--rose-deep);font-family:var(--font-display);letter-spacing:.16em;writing-mode:vertical-rl;place-items:center;font-size:13px;display:grid;position:absolute;top:35px;right:38px}.letter-header{border-bottom:1px solid var(--line);padding-bottom:34px}.letter-header p{color:var(--gold);letter-spacing:.28em;margin:0 0 18px;font-size:11px;font-weight:700}.letter-header h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(32px,5.4vw,56px);font-weight:500}.letter-body{padding:clamp(38px,6vw,68px) 0}.letter-body p{color:#59413e;font-family:var(--font-letter);letter-spacing:.025em;margin:0 0 1.55em;font-size:clamp(18px,2.25vw,21px);line-height:2.08}.letter-body p:first-child:first-letter{float:left;color:var(--rose-deep);margin:-9px 10px 0 0;font-size:3.15em;line-height:1}.photo-surprise{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;margin:10px 0 72px;padding:clamp(40px,6vw,58px) 0 clamp(46px,7vw,66px)}.photo-surprise h3{font-family:var(--font-display);margin:0;font-size:clamp(28px,4.6vw,42px);font-weight:500;line-height:1.4}.photo-surprise-copy{color:var(--muted);font-family:var(--font-letter);margin:16px auto 26px;font-size:15px;line-height:1.9}.surprise-button{border:1px solid var(--rose-deep);min-width:228px;color:var(--rose-deep);cursor:pointer;font-family:var(--font-ui);letter-spacing:.1em;background:0 0;border-radius:999px;padding:14px 24px;font-size:13px;font-weight:700;transition:background .22s,box-shadow .22s,color .22s,transform .22s}.surprise-button:hover:not(:disabled){background:var(--rose-deep);color:#fff8ee;transform:translateY(-2px);box-shadow:0 14px 24px #823d4b33}.surprise-button:disabled{color:var(--muted);cursor:default;border-color:#823d4b3d}.surprise-live{min-height:0}.surprise-stage{isolation:isolate;place-items:center;height:610px;margin-top:30px;animation:.6s both surprise-stage-in;display:grid;position:relative}.surprise-stage:before{z-index:-1;content:"";opacity:0;background:radial-gradient(circle,#fffdf5fa 0 38%,#eddab83d 58%,#e8a9aa1f 68%,#0000 78%);border-radius:48%;animation:2.2s ease-out .18s forwards surprise-glow;position:absolute;inset:7% -5% 5%;transform:scale(.55)}.petal-orbit{z-index:3;pointer-events:none;width:560px;height:560px;position:absolute;top:50%;left:50%;transform:translate(-50%,-51%)}.surprise-petal{top:var(--petal-top);left:var(--petal-left);opacity:0;transform-origin:50%;width:13px;height:23px;animation:surprise-petal-spiral 2.45s var(--petal-delay) cubic-bezier(.18, .75, .22, 1) forwards;background:linear-gradient(145deg,#fffdf5,#f2ded7 76%);border:1px solid #c99a5a38;border-radius:90% 12%;position:absolute;box-shadow:0 4px 8px #823d4b14}.surprise-petal:nth-child(3n){background:linear-gradient(145deg,#e1e7ce,#778a66);border-color:#6379572e;border-radius:100% 0;width:9px;height:24px}.surprise-petal:nth-child(5n){background:linear-gradient(145deg,#fff8e5,#d2a05c);border-color:#c99a5a38;width:11px;height:18px}.photo-card{z-index:2;opacity:0;filter:blur(10px)brightness(1.08);width:min(372px,72vw);margin:0;animation:2.2s cubic-bezier(.2,.78,.2,1) .72s forwards surprise-photo-in;position:relative;transform:translateY(22px)scale(.78)rotate(-2.4deg)}.photo-frame{background:#fffaf3;border:1px solid #7d8b683d;border-radius:3px;padding:7px;position:relative;overflow:hidden;box-shadow:0 26px 54px #4d322b29}.photo-frame picture{display:block}.photo-frame img{aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:1px;width:100%;height:auto;display:block}.photo-card figcaption{color:var(--rose-deep);font-family:var(--font-letter);letter-spacing:.02em;opacity:0;align-items:center;gap:10px;margin-top:20px;font-size:17px;line-height:1.75;animation:.8s 2.35s forwards surprise-caption-in;display:inline-flex}.photo-card figcaption:before{background:linear-gradient(145deg, var(--lily), #efd9d5);content:"";border:1px solid #c99a5a4d;border-radius:90% 12%;flex:none;width:8px;height:15px;transform:rotate(38deg)}@keyframes surprise-stage-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes surprise-glow{0%{opacity:0;transform:scale(.55)}60%{opacity:1}to{opacity:.84;transform:scale(1)}}@keyframes surprise-petal-spiral{0%{opacity:0;filter:blur(4px);transform:translate(var(--petal-from-x), var(--petal-from-y)) rotate(-520deg) scale(.14)}42%{opacity:.9}68%{filter:blur();transform:translate(var(--petal-mid-x), var(--petal-mid-y)) rotate(-190deg) scale(1.12)}to{opacity:.82;filter:blur();transform:translate(0, 0) rotate(var(--petal-rotate)) scale(var(--petal-scale))}}@keyframes surprise-photo-in{0%{clip-path:circle(7% at 50% 48%);opacity:0;filter:blur(10px)brightness(1.08);transform:translateY(22px)scale(.78)rotate(-2.4deg)}62%{opacity:1}to{clip-path:circle(78% at 50% 48%);opacity:1;filter:blur()brightness();transform:translateY(0)scale(1)rotate(-.5deg)}}@keyframes surprise-caption-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.three-things{border-top:1px solid var(--line);margin:8px 0 72px;padding:clamp(30px,5vw,48px) 0 0}.three-things h3{width:min(540px,100%);font-family:var(--font-display);margin:0 0 38px;font-size:clamp(24px,4vw,36px);font-weight:500;line-height:1.45}.three-things ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.three-things li{border-top:1px solid #823d4b1a;grid-template-columns:54px 1fr;align-items:start;gap:clamp(16px,4vw,34px);padding:24px 0;display:grid}.three-things li>span{color:var(--gold);font-family:Georgia,serif;font-size:13px;font-style:italic}.three-things strong{color:var(--rose-deep);font-family:var(--font-display);margin-bottom:8px;font-size:clamp(19px,2.5vw,24px);font-weight:600;display:block}.three-things li p{color:var(--muted);font-family:var(--font-letter);margin:0;font-size:15px;line-height:1.85}.letter-signature{text-align:right}.letter-signature p{color:var(--muted);font-family:var(--font-letter);margin:0 0 15px;font-size:16px;line-height:1.85}.letter-signature strong{color:var(--rose-deep);font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(34px,6vw,58px);font-weight:500;display:block}.letter-signature span{color:var(--gold);font-family:var(--font-letter);letter-spacing:.12em;margin-top:28px;font-size:15px;display:block}.flower-section{text-align:center;background:radial-gradient(circle at 50% 45%,#fffaf3e0,#0000 42%),linear-gradient(#f7f0e7,#f2dfd8);flex-direction:column;justify-content:center;align-items:center;min-height:78svh;padding:100px 24px 80px;transition:background 1.2s;display:flex;position:relative;overflow:hidden}.flower-section-open{background:radial-gradient(circle at 50% 46%,#fffceefa,#f7e2d8c2 46%,#0000 72%),linear-gradient(#f7f0e7,#edcfc7);min-height:100svh}.flower-touch-effects{z-index:8;pointer-events:none;position:absolute;inset:0;overflow:hidden}.flower-touch-burst{width:1px;height:1px;position:absolute}.flower-touch-ripple{aspect-ratio:1;border:1px solid #c99a5ab8;border-radius:50%;width:22px;animation:1.15s cubic-bezier(.16,1,.3,1) both flower-touch-ripple;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.4);box-shadow:0 0 24px #eccb8570,inset 0 0 12px #fff8d585}.flower-touch-petal{opacity:0;transform-origin:50% 80%;background:linear-gradient(150deg,#fffdf2 8%,#f5d7d2 66%,#d9ae75);border:1px solid #d2a86f38;border-radius:75% 28% 70% 34%;width:9px;height:15px;animation:1.35s cubic-bezier(.14,.74,.22,1) both flower-touch-petal;position:absolute;top:-7px;left:-4px;box-shadow:0 4px 9px #823d4b1f}.flower-touch-petal:nth-of-type(2n){background:linear-gradient(150deg,#fffdf2,#f1c4c2 72%)}@keyframes flower-touch-ripple{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}22%{opacity:.92}to{opacity:0;transform:translate(-50%,-50%)scale(7.4)}}@keyframes flower-touch-petal{0%{opacity:0;transform:translate(0)scale(.4)rotate(0)}18%{opacity:.95}76%{opacity:.72}to{opacity:0;transform:translate(var(--burst-x), var(--burst-y)) scale(1.08) rotate(var(--burst-rotate))}}.flower-intro{opacity:1;justify-items:center;max-height:260px;transition:max-height .7s,margin .7s,opacity .42s,transform .7s;display:grid}.flower-section-open .flower-intro{opacity:0;max-height:0;margin:0;overflow:hidden;transform:translateY(-18px)}.flower-section h2{width:min(670px,100%);font-family:var(--font-display);letter-spacing:-.05em;margin:0;font-size:clamp(34px,6.8vw,64px);font-weight:500;line-height:1.3}.flower-copy{color:var(--muted);font-family:var(--font-letter);margin:22px 0 8px;font-size:17px;line-height:1.85}.flower-stage{isolation:isolate;width:min(420px,92vw);height:154px;margin:12px 0 28px;transition:height .9s cubic-bezier(.22,1,.36,1);position:relative}.flower-stage-open{height:500px;margin-bottom:4px}.flower-glow{z-index:-1;aspect-ratio:1;filter:blur(14px);background:radial-gradient(circle,#fff0bfe6,#f0aea85c 48%,#0000 72%);border-radius:50%;width:230px;animation:3.4s ease-in-out infinite flower-waiting-glow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.flower-gift-seal{z-index:3;aspect-ratio:1;background:#fff8eedb;border:1px solid #823d4b29;border-radius:50%;width:66px;transition:opacity .36s,transform .54s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 14px 32px #71442d24}.lily-emblem-petal{background:linear-gradient(160deg, var(--lily), #f1ded6);transform-origin:50% 82%;border:1px solid #c99a5a57;border-radius:90% 12%;width:12px;height:30px;position:absolute;top:17px;left:27px}.lily-emblem-petal-left{transform:rotate(-52deg)}.lily-emblem-petal-center{transform:translateY(-5px)rotate(-4deg)}.lily-emblem-petal-right{transform:rotate(44deg)}.flower-gift-seal b{aspect-ratio:1;background:var(--gold);border-radius:50%;width:7px;position:absolute;top:38px;left:30px;box-shadow:-4px -2px 0 -1px #dcb97d,4px -2px 0 -1px #dcb97d}.flower-stage-open .flower-gift-seal{opacity:0;transform:translate(-50%,-50%)scale(.72)}.flower-bouquet{z-index:2;opacity:0;pointer-events:none;filter:drop-shadow(0 18px 22px #67373226);transform-origin:50% 82%;width:min(332px,80vw);height:auto;display:block;position:absolute;bottom:0;left:50%;transform:translate(-50%,30%)scale(.42)rotate(-4deg)}.flower-bouquet img{width:100%;height:auto;display:block}.flower-stage-open .flower-bouquet{animation:1.65s cubic-bezier(.16,1,.3,1) both bouquet-reveal,5s ease-in-out 1.65s infinite bouquet-float}.flower-stage-open .flower-glow{animation:1.8s ease-out both flower-bloom-glow,4.5s ease-in-out 1.8s infinite flower-waiting-glow}.flower-petal{z-index:3;opacity:0;background:linear-gradient(150deg,#fff7e5,#eca9ac 76%);border-radius:70% 35% 65% 38%;width:12px;height:18px;position:absolute;top:60%;box-shadow:0 3px 8px #823d4b1f}.flower-petal-one{--petal-x:-46px;--petal-y:-178px;--petal-rotate:-132deg;left:17%}.flower-petal-two{--petal-x:-18px;--petal-y:-224px;--petal-rotate:118deg;left:28%}.flower-petal-three{--petal-x:-40px;--petal-y:-154px;--petal-rotate:-86deg;left:39%}.flower-petal-four{--petal-x:22px;--petal-y:-248px;--petal-rotate:148deg;left:48%}.flower-petal-five{--petal-x:48px;--petal-y:-192px;--petal-rotate:-108deg;left:58%}.flower-petal-six{--petal-x:66px;--petal-y:-218px;--petal-rotate:124deg;left:69%}.flower-petal-seven{--petal-x:35px;--petal-y:-158px;--petal-rotate:-152deg;left:77%}.flower-petal-eight{--petal-x:-10px;--petal-y:-186px;--petal-rotate:92deg;left:52%}.flower-stage-open .flower-petal{animation:2.8s ease-out both flower-petal-rise}.flower-stage-open .flower-petal-two{animation-delay:.15s}.flower-stage-open .flower-petal-three{animation-delay:.28s}.flower-stage-open .flower-petal-four{animation-delay:.43s}.flower-stage-open .flower-petal-five{animation-delay:.58s}.flower-stage-open .flower-petal-six{animation-delay:.72s}.flower-stage-open .flower-petal-seven{animation-delay:.86s}.flower-stage-open .flower-petal-eight{animation-delay:1s}@keyframes flower-waiting-glow{0%,to{opacity:.55;transform:translate(-50%,-50%)scale(.88)}50%{opacity:.9;transform:translate(-50%,-50%)scale(1.04)}}@keyframes flower-bloom-glow{0%{opacity:.38;transform:translate(-50%,-50%)scale(.58)}58%{opacity:1;transform:translate(-50%,-50%)scale(1.36)}to{opacity:.78;transform:translate(-50%,-50%)scale(1.08)}}@keyframes bouquet-reveal{0%{opacity:0;transform:translate(-50%,30%)scale(.42)rotate(-4deg)}58%{opacity:1;transform:translate(-50%,-2%)scale(1.045)rotate(1deg)}78%{transform:translate(-50%,1%)scale(.985)rotate(-.4deg)}to{opacity:1;transform:translate(-50%)scale(1)rotate(0)}}@keyframes bouquet-float{0%,to{transform:translate(-50%)rotate(-.45deg)}50%{transform:translate(-50%,-5px)rotate(.45deg)}}@keyframes flower-petal-rise{0%{opacity:0;transform:translateY(26px)scale(.45)rotate(0)}20%{opacity:.92}72%{opacity:.68}to{opacity:0;transform:translate(var(--petal-x), var(--petal-y)) scale(1.12) rotate(var(--petal-rotate))}}.flower-button{border:1px solid var(--rose-deep);background:var(--rose-deep);color:#fff8ee;cursor:pointer;min-width:216px;font-family:var(--font-ui);letter-spacing:.12em;border-radius:999px;padding:15px 28px;font-size:14px;font-weight:700;transition:transform .22s,box-shadow .22s,background .22s;box-shadow:0 16px 26px #823d4b33}.flower-button:hover{transform:translateY(-3px);box-shadow:0 20px 30px #823d4b47}.flower-response{place-items:center;min-height:86px;margin-top:0;display:grid;position:relative}.flower-response strong{color:var(--rose-deep);font-family:var(--font-letter);letter-spacing:-.04em;text-shadow:0 8px 28px #c99a5a2e;margin:0;font-size:clamp(38px,7vw,64px);font-weight:500;line-height:1.3;display:block}.final-message{isolation:isolate;perspective:500px;white-space:nowrap;position:relative}.final-message span{z-index:1;opacity:0;filter:blur(8px);transform-origin:50% 100%;animation:final-character-in .76s cubic-bezier(.16, 1, .3, 1) var(--character-delay) both;display:inline-block;position:relative;transform:translateY(16px)rotateX(-52deg)}.final-message:after{z-index:0;content:"";filter:blur(9px);opacity:0;background:linear-gradient(90deg,#0000,#ffeea6b8,#0000);border-radius:50%;width:32%;animation:1.5s ease-in-out 1.25s both final-light-sweep;position:absolute;top:8%;bottom:8%;left:-18%;transform:skew(-18deg)}.flower-touch-hint{color:#71534b9e;width:max-content;font-family:var(--font-ui);letter-spacing:.12em;opacity:0;font-size:11px;animation:4.2s 1.75s both flower-touch-hint;position:absolute;top:calc(100% - 6px);left:50%;transform:translate(-50%,8px)}@keyframes final-character-in{to{opacity:1;filter:blur();transform:translateY(0)rotateX(0)}}@keyframes final-light-sweep{0%{opacity:0;left:-18%}25%{opacity:.72}75%{opacity:.52}to{opacity:0;left:90%}}@keyframes flower-touch-hint{0%,to{opacity:0;transform:translate(-50%,8px)}18%,72%{opacity:1;transform:translate(-50%)}}.site-footer{background:var(--rose-deep);color:#fff8eeb8;letter-spacing:.18em;text-align:center;justify-content:center;align-items:center;gap:11px;padding:24px;font-size:11px;display:flex}.footer-lily{flex:none;width:18px;height:22px;display:inline-block;position:relative}.footer-lily:before{content:"";background:linear-gradient(160deg,#fff8e8,#e8b8b3);border:1px solid #ffebc966;border-radius:90% 12%;width:10px;height:17px;position:absolute;top:0;left:1px;transform:rotate(-30deg)}.footer-lily:after{content:"";transform-origin:bottom;background:#dfe8c3bd;width:1px;height:15px;position:absolute;bottom:0;left:10px;transform:rotate(24deg)}@media (max-width:640px){.hero{min-height:100svh;padding:48px 18px 76px}.eyebrow{letter-spacing:.28em;margin-bottom:14px;font-size:10px}.hero h1{letter-spacing:-.08em}.hero-intro{margin-top:18px;font-size:15px;line-height:1.75}.envelope-stage{margin-top:42px}.wax-seal{width:48px;font-size:17px}.open-prompt{margin-top:24px;font-size:11px}.scroll-note{display:none}.letter-section{padding:68px 14px}.letter-paper{padding:56px 24px 68px}.letter-paper:before,.letter-paper:after{width:42px;height:42px}.letter-paper:before{top:16px;left:16px}.letter-paper:after{bottom:16px;right:16px}.letter-mark{width:42px;height:56px;font-size:10px;top:22px;right:22px}.letter-header{padding-right:48px}.letter-body p{font-size:17px;line-height:1.95}.photo-surprise{margin-bottom:58px;padding:38px 0 48px}.photo-surprise-copy{padding:0 8px;font-size:14px}.surprise-button{min-width:min(228px,100%);font-size:12px}.surprise-stage{height:510px;margin:24px -16px 0}.surprise-stage:before{inset:8% -12% 6%}.petal-orbit{transform:translate(-50%,-51%)scale(.72)}.photo-card{width:min(304px,74vw)}.photo-frame{padding:6px}.photo-card figcaption{max-width:270px;margin-top:18px;font-size:15px}.three-things li{grid-template-columns:36px 1fr;gap:14px}.letter-signature strong{line-height:1.25}.flower-section{min-height:76svh;padding:82px 20px 64px}.flower-section-open{min-height:100svh;padding-top:56px;padding-bottom:48px}.flower-copy{padding:0 6px;font-size:15px}.flower-stage{height:126px;margin-bottom:24px}.flower-stage-open{height:420px;margin-bottom:0}.flower-bouquet{width:min(284px,78vw)}.flower-glow{width:194px}.flower-response{min-height:90px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.flower-touch-hint{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
