@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../media/57dd297ff72c8fa7-s.0uxfha8v3qdec.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85c577ec7d0c8010-s.0..mgv3nog2.y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Patrick Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f8cabcee3b0c666c-s.p.1201yd47shxd4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Patrick Hand Fallback;src:local(Arial);ascent-override:127.97%;descent-override:38.32%;line-gap-override:0.0%;size-adjust:81.43%}.patrick_hand_5b1383e4-module__fbQGja__className{font-family:Patrick Hand,Patrick Hand Fallback;font-style:normal;font-weight:400}.patrick_hand_5b1383e4-module__fbQGja__variable{--font-hand:"Patrick Hand", "Patrick Hand Fallback"}
@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(../media/da4b870ab52b3094-s.0v_p~5_c0b~1d.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.17_wf1k7ou9-q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(../media/11cc37d7380d16b4-s.0ptcwqi9jx~4d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a85fe84266768609-s.p.05b418i5bs~lg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/da4b870ab52b3094-s.0v_p~5_c0b~1d.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.17_wf1k7ou9-q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/11cc37d7380d16b4-s.0ptcwqi9jx~4d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a85fe84266768609-s.p.05b418i5bs~lg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/da4b870ab52b3094-s.0v_p~5_c0b~1d.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.17_wf1k7ou9-q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/11cc37d7380d16b4-s.0ptcwqi9jx~4d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a85fe84266768609-s.p.05b418i5bs~lg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/da4b870ab52b3094-s.0v_p~5_c0b~1d.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.17_wf1k7ou9-q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/11cc37d7380d16b4-s.0ptcwqi9jx~4d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a85fe84266768609-s.p.05b418i5bs~lg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.caveat_cdf837b7-module__rMmAAW__className{font-family:Caveat,Caveat Fallback;font-style:normal}.caveat_cdf837b7-module__rMmAAW__variable{--font-cute:"Caveat", "Caveat Fallback"}
@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;--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg-pink:#f3c7c3;--color-text:#5e5148;--color-text-light:#8a7a72;--color-peach:#f58a5c;--color-pink:#f6b7c4;--color-pink-dark:#e89aaa;--font-hand:"Patrick Hand", cursive;--font-cute:"Caveat", cursive}}@layer base{*,:after,:before,::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]){appearance:button}::file-selector-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}.mt-1{margin-top:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.flex{display:flex}.min-h-dvh{min-height:100dvh}.min-h-svh{min-height:100svh}.gap-2{gap:calc(var(--spacing) * 2)}.overflow-x-hidden{overflow-x:hidden}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-25{opacity:.25}}*{-webkit-tap-highlight-color:transparent}body{background-color:var(--color-bg-pink);color:var(--color-text);font-family:var(--font-hand);-webkit-font-smoothing:antialiased;overflow-x:hidden}.noise-overlay{pointer-events:none;z-index:40;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}.bg-glow{background:radial-gradient(at 30% 20%,#f6d97a33 0%,#0000 50%),radial-gradient(at 70% 80%,#f6b7c440 0%,#0000 50%),radial-gradient(#afcfe61f 0%,#0000 50%)}.landing-section{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:1.5rem;display:flex;position:relative}.landing-title{font-family:var(--font-cute);color:var(--color-text);text-align:center;text-shadow:0 2px 12px #f3c7c34d;opacity:0;margin-bottom:.25rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.3;animation:.8s .2s forwards fade-in-down}.landing-subtitle{margin-top:.15rem;font-size:clamp(1.2rem,5vw,1.6rem);animation:2s ease-in-out infinite gentle-bounce;display:block}.envelope-wrap{perspective:1200px;justify-content:center;width:100%;margin:clamp(.75rem,3vw,1.5rem) 0;display:flex}.envelope{cursor:pointer;width:min(86vw,360px);height:min(58vw,240px);transform-style:preserve-3d;-webkit-tap-highlight-color:transparent;background:0 0;border:0;position:relative}.env-back{z-index:1;background:#fff8ed;border:2px solid #f6a9bc;border-radius:20px;position:absolute;inset:0;box-shadow:0 6px 28px #5e51481a}.letter-peek{width:78%;height:58%;color:var(--color-text);font-family:var(--font-cute);z-index:2;background:linear-gradient(170deg,#fffdf7,#fef8ef);border-radius:16px;justify-content:center;align-items:center;font-size:clamp(1rem,4vw,1.4rem);transition:transform 1s cubic-bezier(.2,.9,.2,1),opacity .5s;display:flex;position:absolute;bottom:22%;left:50%;transform:translate(-50%)translateY(30%);box-shadow:0 14px 35px #5e51482e}.letter-peek-content{text-align:center;opacity:.6;line-height:1.4}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:4;background:linear-gradient(160deg,#f8b8c8,#ef8faf);width:100%;height:62%;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .35s;position:absolute;top:0;left:0;box-shadow:0 10px 22px #5e51481f}.env-pocket{clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:5;background:linear-gradient(#f5a8bd,#ee94ae);border:2px solid #f6a9bc;border-top:0;border-radius:0 0 20px 20px;width:100%;height:63%;position:absolute;bottom:0;left:0}.env-seal{background:var(--color-peach);color:#fff;z-index:6;border-radius:999px;place-items:center;width:58px;height:58px;font-size:22px;transition:transform .55s,opacity .4s;display:grid;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 24px #f58a5c59}.envelope.is-open .env-flap{opacity:.82;z-index:1;transform:rotateX(178deg)}.envelope.is-open .env-seal{opacity:0;transform:translate(-50%,-50%)scale(.4)}.envelope.is-open .letter-peek{z-index:7;transform:translate(-50%)translateY(-82%);box-shadow:0 20px 50px #5e514840}.magic-burst{pointer-events:none;z-index:20;place-items:center;display:grid;position:absolute;inset:0}.magic-burst span{font-size:28px;animation:1.1s ease-out both burst;position:absolute}@keyframes burst{0%{opacity:0;transform:translate(0)scale(.5)}30%{opacity:1}to{opacity:0;transform:translate(var(--x,0), var(--y,-120px)) scale(1.25)}}.btn-open{background:linear-gradient(135deg, var(--color-peach) 0%, #f0784a 100%);color:#fff;font-size:clamp(.95rem,3.5vw,1.1rem);font-family:var(--font-hand);cursor:pointer;opacity:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:50px;margin-top:clamp(1rem,4vw,1.75rem);padding:clamp(12px,3.5vw,16px) clamp(28px,8vw,40px);transition:all .25s;animation:.8s .5s forwards fade-in-up;box-shadow:0 6px 24px #f58a5c59}.btn-open:active{transform:scale(.96)}.full-letter-view{flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:24px 14px 32px;animation:.75s both letter-reveal;display:flex}.letter-image{object-fit:contain;background:#fffaf2;border-radius:18px;width:min(94vw,560px);max-height:78svh;display:block;box-shadow:0 22px 55px #5e514840}@keyframes letter-reveal{0%{opacity:0;filter:blur(8px);transform:translateY(24px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.letter-controls{align-items:center;gap:14px;margin-top:16px;display:flex}.ctrl-btn{font-family:var(--font-hand);color:var(--color-text-light);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#f7f1e799;border:none;border-radius:50px;padding:clamp(8px,2.5vw,12px) clamp(14px,4vw,20px);font-size:clamp(.85rem,3vw,.95rem);transition:all .2s}.ctrl-btn:active:not(:disabled){background:#ffffff80;transform:scale(.94)}.ctrl-btn:disabled{opacity:.15;cursor:default}.ctrl-dots{align-items:center;gap:8px;display:flex}.ctrl-dot{background:var(--color-pink);opacity:.35;border-radius:50%;width:8px;height:8px;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.ctrl-dot.active{opacity:1;background:linear-gradient(135deg, var(--color-peach), var(--color-pink-dark));border-radius:4px;width:24px;box-shadow:0 2px 6px #f58a5c33}.divider{color:var(--color-pink);justify-content:center;align-items:center;gap:.6rem;margin:1.5rem 0 1rem;font-size:.9rem;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(to right, transparent, var(--color-pink), transparent);border-radius:1px;flex:1;height:1.5px}.ending-wrap{text-align:center;width:100%;max-width:480px;padding:.25rem .5rem 1rem}.ending-text{font-family:var(--font-cute);color:var(--color-text);font-size:clamp(1.1rem,4.5vw,1.4rem);line-height:1.6}.ending-text .highlight{color:var(--color-peach);position:relative}.ending-text .highlight:after{content:"♥";color:var(--color-pink-dark);opacity:.4;font-size:10px;position:absolute;top:-8px;right:-16px}.btn-again{background:linear-gradient(135deg, var(--color-pink) 0%, var(--color-pink-dark) 100%);color:#fff;font-size:clamp(.9rem,3vw,1rem);font-family:var(--font-hand);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:50px;margin-top:1.25rem;padding:clamp(10px,3vw,14px) clamp(24px,7vw,36px);transition:all .25s;box-shadow:0 6px 20px #f6b7c459}.btn-again:active{transform:scale(.96)}.hidden-heart-btn{color:var(--color-pink-dark);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:.75rem;font-size:1.4rem;transition:all .3s;animation:3s ease-in-out infinite gentle-pulse}.hidden-heart-btn:active{transform:scale(.85)}.hidden-message{text-align:center;color:var(--color-text-light);font-size:.9rem;font-family:var(--font-hand);background:#f6b7c426;border-radius:12px;margin-top:.5rem;padding:.6rem 1.25rem;animation:.5s forwards fade-in}.audio-toggle{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#f7f1e7b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:all .2s;display:flex;position:fixed;top:12px;right:12px;box-shadow:0 2px 8px #0000000f}.audio-toggle:active{transform:scale(.9)}.float-element{pointer-events:none;z-index:50;opacity:0;animation:3s ease-out forwards float-up;position:fixed;bottom:-20px}@keyframes float-up{0%{opacity:0;transform:translateY(0)rotate(0)scale(.3)}15%{opacity:.8;transform:translateY(-30px)rotate(-8deg)scale(1)}80%{opacity:.6}to{opacity:0;transform:translateY(-100vh)rotate(8deg)scale(.5)}}@keyframes gentle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes gentle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.6s forwards fade-in}
