/*! 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,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@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,::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}.start{inset-inline-start:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.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,)}}:root{--ink:#552337;--wine:#7c2443;--berry:#c23f68;--berry-deep:#982947;--rose:#ea8da8;--blush:#f9dce6;--cream:#fffaf3;--peach:#f2b9a5;--mint:#b7d9cb;--gold:#efa852;--balloon-1:#d84d72;--balloon-2:#ef9baf;--balloon-3:#85c4ad;--balloon-4:#f0b65e}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:#f8dbe4;margin:0;font-family:Trebuchet MS,Segoe UI,sans-serif;overflow:hidden}button{font:inherit}button:focus-visible{outline-offset:4px;outline:3px solid #c23f6852}main{isolation:isolate;background:radial-gradient(circle at 10% 7%,#ffffffdb,#0000 28%),linear-gradient(135deg,#fffaf5 0%,#fbe1e7 47%,#f4c8d7 100%);place-items:center;width:100%;min-height:100svh;padding:82px 34px 70px;display:grid;position:relative;overflow:hidden}main:before,main:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}main:before{opacity:.18;background-image:radial-gradient(#9c3656 .7px,#0000 .7px);background-size:17px 17px}main:after{opacity:.24;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E")}.aurora,.ambient{z-index:-1;pointer-events:none;position:absolute;inset:0}.aurora{filter:blur(22px);overflow:hidden}.aurora-blob{opacity:.4;border-radius:50%;animation:13s ease-in-out infinite alternate auroraMove;position:absolute}.blob-one{background:#ffdce4;width:44vw;height:44vw;top:-20vw;left:-11vw}.blob-two{background:#e999b5;width:52vw;height:52vw;animation-delay:-5s;bottom:-26vw;right:-22vw}.blob-three{background:#f6d4b6;width:35vw;height:35vw;animation-delay:-8s;top:24%;left:34%}.star,.floating-heart{color:#cb5477;filter:drop-shadow(0 6px 8px #9d355424);opacity:.68;animation:5.4s ease-in-out infinite ambientFloat;position:absolute}.s1{font-size:26px;top:13%;left:6%}.s2{font-size:40px;animation-delay:-1.7s;top:22%;right:8%}.s3{font-size:23px;animation-delay:-3.1s;bottom:14%;left:10%}.s4{font-size:22px;animation-delay:-2.1s;bottom:7%;right:28%}.h1{font-size:68px;bottom:15%;right:5%;transform:rotate(15deg)}.h2{font-size:31px;animation-delay:-3.3s;top:50%;left:4%}.h3{font-size:29px;animation-delay:-1s;top:7%;right:20%}.h4{font-size:17px;animation-delay:-2.6s;top:8%;left:23%}.ribbon{border:16px solid #c54a6e29;border-color:#c54a6e29 #c54a6e29 #0000 #0000;border-radius:50%;width:160px;height:430px;animation:9s ease-in-out infinite alternate ribbonSway;position:absolute}.ribbon-left{top:20%;left:-120px;transform:rotate(28deg)}.ribbon-right{animation-delay:-4s;top:7%;right:-110px;transform:rotate(206deg)}.topbar{z-index:30;justify-content:space-between;align-items:center;width:min(1080px,100% - 42px);display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%)}.progress{align-items:center;gap:8px;display:flex}.progress span{background:#69293e1f;border-radius:999px;width:34px;height:7px;transition:width .4s,background .4s;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #58223314}.progress span i{border-radius:inherit;background:linear-gradient(90deg,#da557b,#a92f56);position:absolute;inset:0;transform:translate(-103%)}.progress span.active{width:52px}.progress span.active i{animation:.55s forwards progressFill}.music-toggle{color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;background:#fffcf8bf;border:1px solid #6f293e21;border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 11px;transition:transform .2s,background .2s;display:flex;box-shadow:0 11px 36px #792d441f}.music-toggle:hover{background:#ffffffeb;transform:translateY(-2px)}.music-copy{flex-direction:column;align-items:flex-start;line-height:1.05;display:flex}.music-copy b{color:var(--berry);text-transform:uppercase;letter-spacing:.15em;font-size:9px}.music-copy small{color:#6f4050;margin-top:4px;font-family:Georgia,Times New Roman,serif;font-size:11px;font-style:italic}.music-bars{background:linear-gradient(135deg,#e47998,#b6345c);border-radius:50%;justify-content:center;align-items:center;gap:3px;width:29px;height:29px;display:flex;box-shadow:0 4px 12px #ab325547}.music-bars i{background:#fff;border-radius:999px;width:3px;height:10px;animation:.85s ease-in-out infinite alternate musicBar}.music-bars i:nth-child(2){height:15px;animation-delay:-.3s}.music-bars i:nth-child(3){height:8px;animation-delay:-.55s}.scene{text-align:center;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:radial-gradient(circle at 50% 0,#ffffffd6,#0000 42%),linear-gradient(150deg,#fffdf9ad,#fff1f48f);border:1px solid #7c28411f;border-radius:38px;place-items:center;width:min(1080px,100%);height:min(780px,100svh - 136px);min-height:600px;animation:.7s cubic-bezier(.16,.8,.23,1) both sceneEnter;display:grid;position:relative;overflow:hidden;box-shadow:0 38px 90px #772f452b,inset 0 1px #ffffffeb}.scene:before{content:"";pointer-events:none;border:1px dashed #a44a6321;border-radius:30px;position:absolute;inset:11px}.scene-shimmer{z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff6b,#0000);width:35%;animation:3.6s .3s both sceneShimmer;position:absolute;inset:-50%;transform:rotate(21deg)translate(-340%)}.scene-content{z-index:3;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:clamp(26px,4vw,48px);display:flex;position:relative}.eyebrow{color:#b54a69;letter-spacing:.27em;text-transform:uppercase;margin:0 0 11px;font-size:10px;font-weight:1000;line-height:1.4}h1,h2,p{text-wrap:balance}h1,h2{margin:0;line-height:.96}h1{letter-spacing:-.06em;font-family:Georgia,Times New Roman,serif;font-size:clamp(56px,8vw,104px);font-weight:500}h1 em{color:var(--berry);text-shadow:0 7px #9b304f14;font-style:italic;position:relative}h1 em:after{content:"";border-top:2px solid #bf3b608c;border-radius:50%;height:8px;position:absolute;bottom:-6px;left:4%;right:-3%;transform:rotate(-2deg)}h2{letter-spacing:-.045em;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,5vw,67px);font-weight:500}.lead{color:#744656;max-width:660px;margin:15px auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(17px,2vw,23px);font-style:italic;line-height:1.45}.midnight-stamp{color:var(--berry);flex-direction:column;align-items:flex-start;display:flex;position:absolute;top:32px;left:34px;transform:rotate(-4deg)}.midnight-stamp:before{content:"";border:1px solid #b1365733;border-radius:8px;position:absolute;inset:-9px -13px}.midnight-stamp span{font-family:Georgia,Times New Roman,serif;font-size:23px;font-weight:700}.midnight-stamp small{letter-spacing:.17em;margin-top:2px;font-size:8px;font-weight:1000}.primary-button,.secondary-button,.text-button{cursor:pointer;border:0}.primary-button{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#d55378,#a72e54);border-radius:999px;justify-content:center;align-items:center;gap:9px;min-width:220px;margin-top:22px;padding:15px 25px;font-size:14px;font-weight:1000;transition:transform .2s,box-shadow .2s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 11px #84203e,0 21px 36px #84203e38,inset 0 1px #ffffff59}.primary-button:before{content:"";background:linear-gradient(90deg,#0000,#ffffff6b,#0000);transition:transform .65s;position:absolute;inset:0;transform:translate(-120%)skew(-18deg)}.primary-button:hover:before{transform:translate(120%)skew(-18deg)}.primary-button:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 14px #84203e,0 25px 39px #84203e40,inset 0 1px #ffffff59}.primary-button:active{transform:translateY(7px);box-shadow:0 4px #84203e,0 11px 22px #84203e2e}.primary-button span,.primary-button i{z-index:2;font-style:normal;position:relative}.primary-button i{font-size:18px;animation:1.5s ease-in-out infinite buttonHeart}.primary-button.compact{min-width:145px}.secondary-button{color:#a13c59;background:#ffffffa3;border:2px solid #a4345433;border-radius:999px;min-width:112px;margin-top:22px;padding:14px 26px;font-size:13px;font-weight:1000;transition:transform .24s cubic-bezier(.2,.8,.2,1),background .2s;box-shadow:0 9px 24px #7030421a}.secondary-button:hover{background:#fff}.button-row{justify-content:center;align-items:center;gap:16px;min-height:80px;display:flex}.tap-note{color:#5b2a3a7a;letter-spacing:.16em;text-transform:uppercase;margin:22px 0 0;font-size:9px;font-weight:900}.footer-note{z-index:20;color:#5f283987;text-align:center;width:max-content;max-width:92%;margin:0;font-family:Georgia,Times New Roman,serif;font-size:11px;font-style:italic;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.footer-note span{color:#5f283957;letter-spacing:.1em;text-transform:uppercase;margin-top:3px;font-family:Trebuchet MS,Segoe UI,sans-serif;font-size:7px;font-style:normal;display:block}.gift-wrap{filter:drop-shadow(0 20px 18px #772d4429);width:210px;height:185px;margin:16px auto 0;position:relative}.gift-box,.gift-lid{background:linear-gradient(90deg,#0000 0 39%,#b7d8ca 39% 61%,#0000 61%),linear-gradient(145deg,#f3a8b9,#dd6989);border:4px solid #71364a;position:absolute;left:50%;transform:translate(-50%)}.gift-box{border-radius:8px 8px 18px 18px;width:174px;height:120px;animation:2.5s ease-in-out infinite giftBounce;bottom:6px;overflow:hidden}.gift-box:before,.gift-lid:before{content:"";opacity:.35;background-image:radial-gradient(#fff 1.8px,#0000 1.8px);background-size:17px 17px;position:absolute;inset:9px}.gift-box span{z-index:2;color:#fff;letter-spacing:.12em;text-shadow:0 1px 2px #57273347;width:max-content;font-size:9px;font-weight:1000;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.gift-box i{z-index:3;background:#ffffff2e;width:17px;height:122px;position:absolute;top:-2px;left:50%;transform:translate(-50%)}.gift-lid{z-index:4;border-radius:12px 12px 8px 8px;width:202px;height:50px;animation:2.5s ease-in-out infinite giftLid;top:32px}.gift-lid i:before,.gift-lid i:after{content:"";background:#b7d8ca;border:4px solid #71364a;border-radius:60% 40% 50% 20%;width:62px;height:43px;position:absolute;top:-40px}.gift-lid i:before{left:52px;transform:rotate(24deg)}.gift-lid i:after{right:52px;transform:scaleX(-1)rotate(24deg)}.gift-spark{z-index:6;color:#d45478;animation:2.2s ease-in-out infinite giftSpark;position:absolute}.gift-spark.one{font-size:27px;top:40px;left:5px}.gift-spark.two{font-size:29px;animation-delay:-.7s;top:12px;right:7px}.gift-spark.three{font-size:20px;animation-delay:-1.3s;bottom:17px;right:29px}.sticker-stage{isolation:isolate;place-items:center;width:min(390px,72vw);height:260px;margin:15px auto 0;display:grid;position:relative}.sticker-glow{z-index:-2;filter:blur(11px);background:radial-gradient(circle,#ed8fa970,#ffffff0a 68%);border-radius:50%;width:85%;height:70%;animation:2.4s ease-in-out infinite stickerGlow;position:absolute}.sticker-gif{z-index:2;object-fit:contain;filter:drop-shadow(0 18px 16px #64283a29);border:0;border-radius:28px;max-width:100%;max-height:100%;animation:3.2s ease-in-out infinite stickerFloat;display:block;position:relative}.sticker-orbit{z-index:4;color:#ce5578;filter:drop-shadow(0 4px 5px #852a4526);animation:3s ease-in-out infinite orbitFloat;position:absolute}.orbit-one{font-size:33px;top:14%;left:3%}.orbit-two{font-size:26px;animation-delay:-1s;top:24%;right:4%}.orbit-three{font-size:20px;animation-delay:-2s;bottom:4%;right:16%}.question-sticker{height:285px;margin-top:8px}.question-sticker .sticker-gif,.hug-sticker .sticker-gif,.cake-sticker .sticker-gif,.angry-sticker .sticker-gif{background:#ffffffb3;border:8px solid #ffffffbd;box-shadow:0 18px 48px #762a4124}.angry-sticker{width:300px;height:255px;margin-top:8px}.birthday-sticker{width:350px;height:245px;margin-top:9px}.birthday-sticker .sticker-gif{background:#fff;border:10px solid #fffc;width:235px;box-shadow:0 20px 50px #772a4229}.hug-sticker{width:430px;height:305px;margin:4px auto -5px}.hug-sticker .sticker-gif{max-width:355px;max-height:275px}.cake-sticker{width:260px;height:205px;margin:0 auto}.cake-sticker .sticker-gif{border-width:6px;max-width:235px}.title-wrap{justify-content:center;align-items:center;display:flex;position:relative}.birthday-title{color:var(--berry);letter-spacing:.035em;text-transform:uppercase;text-shadow:0 6px #752a3e1a;font-family:Trebuchet MS,Segoe UI,sans-serif;font-size:clamp(37px,5.6vw,74px);font-weight:1000;animation:.8s cubic-bezier(.17,.89,.32,1.4) .15s both titlePop;transform:rotate(-2deg)}.birthday h1{margin-top:5px;animation:.8s cubic-bezier(.17,.89,.32,1.4) .32s both titlePop}.title-spark{color:var(--gold);font-size:30px;animation:1.4s ease-in-out infinite titleSpark;position:absolute}.title-spark.left{left:-48px}.title-spark.right{animation-delay:-.7s;right:-48px}.confetti,.balloons{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{top:-24px;left:var(--x);background:hsl(var(--hue) 68% 61%);width:9px;height:17px;animation:confettiFall var(--duration) linear infinite;animation-delay:var(--delay);border-radius:3px 8px;position:absolute;box-shadow:0 2px 4px #6328381a}.confetti i:nth-child(3n){border-radius:50%;width:12px;height:12px}.balloons i{left:var(--bx);background:var(--bc);opacity:.72;width:48px;height:61px;animation:9s linear infinite balloonRise;animation-delay:var(--bd);border-radius:52% 48% 48% 52%;position:absolute;bottom:-170px;box-shadow:inset -8px -8px #6b2b3c17,inset 8px 8px #ffffff2e}.balloons i:before{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:11px solid var(--bc);position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.balloons i:after{content:"";background:#68314145;width:1px;height:86px;position:absolute;top:68px;left:50%}.letter-scene{scrollbar-width:thin;scrollbar-color:#b4426259 transparent;justify-content:flex-start;padding-top:28px;overflow-y:auto}.letter-layout{grid-template-columns:minmax(0,1fr) 270px;align-items:center;gap:24px;width:min(905px,100%);margin-top:6px;display:grid}.letter{text-align:left;background:linear-gradient(#fffcf6e6,#fffcf6e6),repeating-linear-gradient(0deg,#0000 0 25px,#ae5d741f 25px 26px);border:1px solid #7b3a4c24;padding:clamp(29px,3.7vw,47px);animation:.82s cubic-bezier(.16,.8,.23,1) 80ms both letterUnfold;position:relative;transform:rotate(-.7deg);box-shadow:0 24px 60px #71324629,inset 0 0 0 9px #ffffff59}.letter:before{content:"";pointer-events:none;border:1px dashed #a44a6333;position:absolute;inset:11px}.letter-kicker{color:var(--berry);letter-spacing:.23em;margin:0 0 7px;font-size:11px;font-weight:1000}.letter h2{color:#733047;margin-bottom:15px;font-size:clamp(33px,4vw,49px)}.letter p:not(.letter-kicker){color:#67404c;text-wrap:pretty;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(13px,1.28vw,16px);line-height:1.48}.letter .letter-ending{color:#8e3150;font-weight:700}.signature{color:#b04464;margin-top:9px;font-family:Brush Script MT,Segoe Script,cursive;font-size:27px;display:block;transform:rotate(-2deg)}.tape{z-index:3;background:#e0afb09e;width:88px;height:27px;position:absolute;box-shadow:inset 0 0 0 1px #ffffff38}.tape.top{top:-14px;left:42%;transform:rotate(3deg)}.tape.bottom{bottom:-9px;right:28px;transform:rotate(-6deg)}.letter-doodle{color:#c53f6854;font-size:28px;animation:3s ease-in-out infinite ambientFloat;position:absolute}.letter-doodle.d1{top:24px;right:25px}.letter-doodle.d2{animation-delay:-1s;bottom:22px;left:22px}.letter-sticker-card{background:#fffdf9c4;border:1px solid #742f4321;border-radius:8px;padding:13px 10px 21px;animation:.75s cubic-bezier(.17,.89,.32,1.3) .35s both polaroidIn;position:relative;transform:rotate(3.5deg);box-shadow:0 22px 50px #6e2b4021}.letter-sticker-card:before{content:"";z-index:3;background:#b7d8cbb8;width:65px;height:24px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-3deg)}.letter-sticker-card>span{color:#a33a5b;margin-top:3px;font-family:Brush Script MT,Segoe Script,cursive;font-size:24px;line-height:.9;display:block;transform:rotate(-3deg)}.letter-scene>.primary-button{flex:none;margin-top:17px;margin-bottom:23px}.finale h2{animation:.8s cubic-bezier(.17,.89,.32,1.4) .1s both titlePop}.finale h1{color:var(--berry);margin-top:3px;font-size:clamp(49px,7vw,88px);font-style:italic;animation:.8s cubic-bezier(.17,.89,.32,1.4) .28s both titlePop}.finale .lead{max-width:620px}.heart-burst{z-index:8;pointer-events:none;width:250px;height:40px;position:absolute;top:44%;left:50%;transform:translate(-50%)}.heart-burst span{color:#cc4f72;animation:2.8s ease-out infinite heartBurst;position:absolute;bottom:0;left:50%}.heart-burst span:first-child{--tx:-180px;font-size:28px;animation-delay:-.4s}.heart-burst span:nth-child(2){--tx:-95px;font-size:18px;animation-delay:-1.7s}.heart-burst span:nth-child(3){--tx:0px;font-size:31px;animation-delay:-.9s}.heart-burst span:nth-child(4){--tx:94px;font-size:20px;animation-delay:-2.2s}.heart-burst span:nth-child(5){--tx:175px;font-size:25px;animation-delay:-1.2s}.heart-burst span:nth-child(6){--tx:55px;color:var(--gold);font-size:18px;animation-delay:-.2s}.text-button{color:#9b3a58;background:0 0;border-bottom:1px solid;margin-top:20px;padding:8px 5px;font-size:12px;font-weight:900}.cursor-sparkle{z-index:999;pointer-events:none;color:#d34f76;font-size:18px;font-style:normal;animation:.9s ease-out forwards cursorSparkle;position:fixed}@keyframes auroraMove{0%{transform:translate(-2%,-2%)scale(1)}to{transform:translate(7%,5%)scale(1.12)}}@keyframes ambientFloat{0%,to{translate:0;rotate:-4deg}50%{translate:0 -19px;rotate:5deg}}@keyframes ribbonSway{to{translate:12px -25px;rotate:12deg}}@keyframes progressFill{to{transform:translate(0)}}@keyframes musicBar{to{transform:scaleY(.35)}}@keyframes sceneEnter{0%{opacity:0;filter:blur(7px);transform:translateY(28px)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes sceneShimmer{to{transform:rotate(21deg)translate(620%)}}@keyframes buttonHeart{0%,to{transform:scale(1)rotate(-5deg)}50%{transform:scale(1.3)rotate(5deg)}}@keyframes giftBounce{0%,to{transform:translate(-50%)translateY(0)}45%{transform:translate(-50%)translateY(3px)}55%{transform:translate(-50%)translateY(-5px)}}@keyframes giftLid{0%,44%,to{transform:translate(-50%)translateY(0)rotate(0)}52%{transform:translate(-51%)translateY(-13px)rotate(-4deg)}62%{transform:translate(-49%)translateY(-8px)rotate(3deg)}}@keyframes giftSpark{0%,to{opacity:.35;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(20deg)}}@keyframes stickerFloat{0%,to{transform:translateY(0)rotate(-.5deg)}50%{transform:translateY(-8px)rotate(.7deg)}}@keyframes stickerGlow{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:.78;transform:scale(1.08)}}@keyframes orbitFloat{0%,to{transform:translate(0)rotate(-8deg)scale(.9)}50%{transform:translate(5px,-13px)rotate(9deg)scale(1.18)}}@keyframes titlePop{0%{opacity:0;transform:scale(.72)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(-2deg)}}@keyframes titleSpark{0%,to{opacity:.35;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(30deg)}}@keyframes confettiFall{to{transform:translate(var(--drift), 110vh) rotate(var(--spin))}}@keyframes balloonRise{0%{transform:translateY(0)rotate(-5deg)}45%{transform:translateY(-56vh)translate(17px)rotate(5deg)}to{transform:translateY(-125vh)translate(-9px)rotate(-4deg)}}@keyframes letterUnfold{0%{opacity:0;transform:perspective(900px)rotateX(-18deg)rotate(-3deg)scale(.9)}to{opacity:1;transform:perspective(900px)rotateX(0)rotate(-.7deg)scale(1)}}@keyframes polaroidIn{0%{opacity:0;transform:translate(50px)rotate(12deg)scale(.7)}to{opacity:1;transform:translate(0)rotate(3.5deg)scale(1)}}@keyframes heartBurst{0%{opacity:0;transform:translate(0)scale(.45)}20%{opacity:1}to{transform:translate(var(--tx), -150px) scale(1.28) rotate(22deg);opacity:0}}@keyframes cursorSparkle{0%{opacity:1;transform:translate(-50%,-50%)scale(.6)rotate(0)}to{opacity:0;transform:translate(-50%,-80px)scale(1.25)rotate(45deg)}}@media (width<=840px){main{padding:72px 18px 56px}.scene{border-radius:28px;height:calc(100svh - 123px);min-height:560px}.scene:before{border-radius:21px;inset:8px}.topbar{width:calc(100% - 30px);top:15px}.progress{gap:5px}.progress span{width:16px;height:5px}.progress span.active{width:26px}.music-toggle{padding:6px}.music-copy{display:none}.music-bars{width:29px;height:29px}.midnight-stamp{top:20px;left:22px}.midnight-stamp span{font-size:17px}.gift-wrap{margin-top:0;margin-bottom:-12px;transform:scale(.84)}.sticker-stage{width:min(340px,80vw);height:235px}.question-sticker{height:250px}.birthday-sticker{width:280px;height:205px}.hug-sticker{width:min(380px,86vw);height:260px}.hug-sticker .sticker-gif{max-height:240px}.letter-scene{padding:24px 21px 15px}.letter-layout{margin-top:8px;display:block}.letter{padding:34px 28px 29px}.letter-sticker-card{display:none}.letter p:not(.letter-kicker){font-size:14px;line-height:1.5}}@media (width<=520px){.scene-content{padding:26px 19px}.eyebrow{letter-spacing:.21em;font-size:8px}h1{font-size:clamp(47px,15vw,68px)}h2{font-size:clamp(34px,10.5vw,48px)}.lead{font-size:16px}.intro{padding-top:55px}.midnight-stamp{transform-origin:0 0;transform:rotate(-4deg)scale(.85)}.gift-wrap{margin-top:-13px;margin-bottom:-29px;transform:scale(.72)}.primary-button{min-width:190px;padding:14px 21px;font-size:12px}.primary-button.compact{min-width:128px}.secondary-button{min-width:90px;padding:13px 20px}.button-row{gap:8px}.sticker-stage{height:220px}.question-sticker{height:235px}.angry-sticker{width:265px;height:220px}.birthday-title{font-size:clamp(34px,10vw,46px)}.title-spark.left{left:-27px}.title-spark.right{right:-27px}.birthday h1{font-size:61px}.birthday-sticker{width:245px;height:185px}.birthday-sticker .sticker-gif{width:180px}.letter-scene{justify-content:flex-start;overflow-y:auto}.letter-layout{flex:none}.letter{max-height:none;padding:32px 24px 27px}.letter h2{font-size:35px}.letter p:not(.letter-kicker){font-size:13px;line-height:1.46}.signature{font-size:23px}.letter-scene>.primary-button{margin-top:17px;margin-bottom:30px}.hug-sticker{height:235px;margin-top:0}.hug-sticker .sticker-gif{max-width:300px;max-height:215px}.finale h1{font-size:clamp(44px,13vw,63px)}.footer-note{font-size:9px;bottom:9px}}@media (height<=740px) and (width>=600px){main{padding-top:67px;padding-bottom:43px}.scene{height:calc(100svh - 110px);min-height:540px}.scene-content{padding-top:24px;padding-bottom:24px}.sticker-stage{height:210px}.gift-wrap{margin:-6px auto -25px;transform:scale(.78)}.letter-scene{padding-top:16px}.letter{padding-top:28px;padding-bottom:25px}.letter p:not(.letter-kicker){margin-bottom:8px;font-size:12.5px;line-height:1.4}.letter h2{margin-bottom:10px;font-size:34px}.footer-note{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.secondary-button{transform:none!important}}@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}
