/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@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;--animate-spin:spin 1s linear infinite;--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{.animate-spin{animation:var(--animate-spin)}}:root{--background:246 35% 10%;--foreground:0 0% 100%;--card:252 31% 16%;--card-foreground:0 0% 100%;--popover:253 32% 14%;--popover-foreground:0 0% 100%;--primary:329 87% 72%;--primary-foreground:0 0% 100%;--secondary:265 45% 24%;--secondary-foreground:0 0% 100%;--muted:258 24% 23%;--muted-foreground:253 19% 75%;--accent:45 92% 67%;--accent-foreground:258 42% 13%;--destructive:0 78% 64%;--border:256 29% 31%;--ring:329 87% 72%;--radius:1.1rem;--font-display:Georgia, "Times New Roman", serif;--font-body:ui-rounded, "Hind Siliguri", "Noto Sans Bengali", system-ui, sans-serif}*{box-sizing:border-box}html{background:hsl(var(--background));min-height:100%}body{min-width:320px;min-height:100vh;color:hsl(var(--foreground));font-family:var(--font-body);background:hsl(var(--background));margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.journey-root{isolation:isolate;min-height:100vh;position:relative;overflow:hidden}.journey-app{z-index:1;min-height:100vh;transition:background .7s;position:relative;overflow:hidden}.theme-night{background:radial-gradient(circle at 50% 10%,#303070 0,#0000 36%),linear-gradient(150deg,#0d102d 0%,#17103d 55%,#271048 100%)}.theme-magic{background:radial-gradient(circle at 15% 25%,#a65bcb66 0,#0000 28%),radial-gradient(circle at 78% 73%,#ff67a055 0,#0000 32%),linear-gradient(145deg,#240d4a,#471260 55%,#68265d)}.theme-love{background:radial-gradient(circle at 75% 12%,#ffbeea66 0,#0000 32%),radial-gradient(circle at 25% 80%,#c27cfd77 0,#0000 36%),linear-gradient(145deg,#451143,#7a235c 48%,#371c60)}.theme-birthday{background:radial-gradient(circle at 52% 13%,#ffd7ef66 0,#0000 30%),radial-gradient(circle at 80% 84%,#ffc06e55 0,#0000 32%),linear-gradient(145deg,#551447,#90295e 48%,#4a1d64)}.theme-countdown{background:radial-gradient(circle,#402151 0,#130d22 62%,#080810 100%)}.theme-celebration{background:radial-gradient(circle at 50% 8%,#ffdc8780 0,#0000 26%),radial-gradient(circle at 7% 58%,#ff62b580 0,#0000 30%),radial-gradient(circle at 94% 64%,#7c62ff80 0,#0000 30%),linear-gradient(150deg,#21104c,#7b1d6b 47%,#f05f75)}.magic-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.moon{background:#fff4c7;border-radius:50%;width:92px;height:92px;animation:6s ease-in-out infinite moon-float;position:absolute;top:5.5rem;right:7%;box-shadow:0 0 22px #fff4c7,0 0 70px #e9ceaa77}.moon span{background:#1c1545;border-radius:50%;position:absolute;inset:-7px -15px 7px 25px}.stars i{background:#fffce8;border-radius:50%;animation:3s ease-in-out infinite twinkle;display:block;position:absolute;box-shadow:0 0 8px #fffce8}.shooting-star{opacity:0;background:linear-gradient(90deg,#0000,#fff,#d7d8ff);border-radius:99px;width:96px;height:2px;animation:7s linear infinite shoot;position:absolute;transform:rotate(-24deg);box-shadow:0 0 12px #fff}.shooting-one{top:14%;left:8%}.shooting-two{animation-delay:3.4s;top:38%;right:3%}.ambient-orb{filter:blur(4px);opacity:.55;border-radius:50%;animation:10s ease-in-out infinite drift;position:absolute}.orb-one{background:#f7beff;width:9px;height:9px;bottom:19%;left:18%;box-shadow:0 0 20px 8px #f7beff}.orb-two{background:#ffe6a1;width:7px;height:7px;animation-delay:-4s;top:46%;right:23%;box-shadow:0 0 19px 7px #ffe6a1}.confetti-field{position:absolute;inset:0;overflow:hidden}.confetti-piece{background:hsl(var(--hue) 87% 69%);width:9px;height:17px;animation:confetti-fall 2.8s cubic-bezier(.17,.69,.35,1) var(--delay) forwards;border-radius:2px;position:absolute;top:-7vh}.touch-spark{z-index:50;color:#fff5b4;text-shadow:0 0 10px #ffb7e6,0 0 18px #ffb7e6;font-size:1.22rem;animation:1.05s ease-out forwards touch-pop;position:fixed;transform:translate(-50%,-50%)}.journey-header{z-index:5;align-items:center;gap:15px;max-width:1120px;min-height:74px;margin:auto;padding:16px clamp(18px,4vw,44px);display:flex;position:relative}.brand-mark{color:#ffe49b;background:#ffffff17;border:1px solid #ffffff38;border-radius:14px;place-items:center;width:38px;height:38px;font-size:1.2rem;display:grid;box-shadow:inset 0 1px #ffffff28}.progress-wrap{width:min(300px,50vw);margin-right:auto}.progress-wrap span{color:#fffc;letter-spacing:.08em;margin-bottom:7px;font-size:.72rem;display:block}.progress-track{background:#ffffff21;border-radius:999px;height:6px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg,#ffd267,#ff83bf);height:100%;transition:width .55s;display:block;box-shadow:0 0 12px #ffd267}.header-actions{gap:8px;display:flex}.icon-button,.carousel-button{color:#fff;cursor:pointer;background:#ffffff15;border:1px solid #ffffff26;border-radius:12px;place-items:center;transition:transform .18s,background .18s,box-shadow .18s;display:inline-grid}.icon-button{width:38px;height:38px}.icon-button:hover,.carousel-button:hover{background:#ffffff27;transform:translateY(-2px);box-shadow:0 10px 18px #12082738}.icon-button:active,.carousel-button:active{transform:scale(.98)}.journey-main{z-index:2;justify-content:center;min-height:calc(100vh - 74px);padding:clamp(15px,3vw,40px) 18px 90px;display:flex;position:relative}.stage{text-align:center;align-self:center;width:min(100%,860px);animation:.55s both stage-enter}.stage h1{color:#fff;max-width:760px;font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance;text-shadow:0 5px 24px #16062a60;margin:0 auto;font-size:clamp(2.25rem,6.5vw,5.25rem);font-weight:700;line-height:1.02}.stage h1 span{color:#ff8cbf}.eyebrow{color:#ffe0a4;letter-spacing:.08em;margin:0 0 14px;font-size:clamp(.78rem,2vw,.95rem);font-weight:800}.lead-copy{color:#fffdfa;max-width:570px;margin:21px auto 29px;font-size:clamp(1.02rem,2.5vw,1.25rem);line-height:1.7}.lead-copy.compact{margin-bottom:22px}.helper-text{color:#fffc;margin:16px 0 0;font-size:.88rem}.primary-button,.secondary-button,.text-button{cursor:pointer;border:1px solid #0000;border-radius:15px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 20px;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary-button{color:#581440;background:linear-gradient(135deg,#ffe49e,#ff9bc7);min-width:202px;box-shadow:0 13px 25px #1e063a5c,inset 0 1px #fff9}.primary-button:hover{transform:translateY(-2px);box-shadow:0 18px 32px #1e063a77,inset 0 1px #fff}.secondary-button{color:#fff;background:#ffffff18;border-color:#ffffff3b}.secondary-button:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 11px 22px #1d0c394f}.text-button{color:#fff1a9;text-underline-offset:4px;background:0 0;min-height:auto;text-decoration:underline}.text-button:hover{color:#fff}.primary-button:active,.secondary-button:active,.text-button:active{transform:scale(.98)}.stage-opening{max-width:700px}.hero-emblem{color:#fff1b1;background:#fff4cc17;border:1px solid #fff5ce69;border-radius:50%;place-items:center;width:88px;height:88px;margin:0 auto 18px;font-size:4rem;animation:5s ease-in-out infinite moon-float;display:grid;box-shadow:0 0 0 12px #fff6cc0d,0 0 42px #fff2b655}.type-title{white-space:nowrap;border-right:3px solid #ffe49e;width:max-content;max-width:100%;animation:2.2s steps(23,end) both type-reveal,.8s step-end infinite cursor-blink;overflow:hidden}.stage-verify{max-width:630px}.lock-orb{color:#ffd0e7;background:linear-gradient(145deg,#ffffff2e,#ffffff0b);border:1px solid #ffffff45;border-radius:31px;place-items:center;width:92px;height:92px;margin:0 auto 18px;transition:all .4s;display:grid;box-shadow:0 15px 35px #1a073465}.lock-orb.is-unlocked{color:#9f5922;background:#ffe6a4;transform:rotate(-8deg);box-shadow:0 0 0 10px #ffe7a32d,0 0 48px #ffdd81}.date-form{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff12;border:1px solid #ffffff2b;border-radius:25px;max-width:510px;margin:auto;padding:20px}.date-fields{justify-content:center;align-items:flex-end;gap:9px;display:flex}.date-fields label{text-align:left;min-width:0}.date-fields label span{color:#fffdf0;margin:0 0 7px 5px;font-size:.77rem;font-weight:800;display:block}.date-fields input{color:#fff;text-align:center;background:#11082344;border:1px solid #ffffff43;border-radius:13px;width:76px;height:55px;padding:0 10px;font-size:1.35rem;font-weight:800;transition:all .2s}.date-fields input::placeholder{color:#ffffff5b}.date-fields input:focus{background:#240d3b85;border-color:#ffd1e7;outline:none;box-shadow:0 0 0 3px #ffabd044}.year-field input{width:112px}.date-slash{color:#ffe0a4;padding-bottom:13px;font-size:1.6rem}.field-hint,.field-error{justify-content:center;align-items:center;gap:6px;min-height:25px;margin:13px 0;font-size:.84rem;display:flex}.field-hint{color:#fffc}.field-error{color:#ffd2d8}.has-error input{border-color:#ff899b!important}.shake{animation:.38s ease-in-out shake}.golden-button{color:#603d14;background:#ffe7a4;border-color:#fff1c8;margin-top:16px}.stage-envelope{max-width:650px}.envelope-scene{cursor:pointer;perspective:950px;background:0 0;border:0;width:min(310px,76vw);height:220px;margin:10px auto 0;position:relative}.envelope-glow{filter:blur(25px);opacity:0;background:#fffcaa66;border-radius:50%;height:85px;transition:all .6s;position:absolute;bottom:22px;left:16%;right:16%}.envelope-back,.envelope-front{border-radius:8px 8px 18px 18px;height:160px;position:absolute;bottom:0;left:0;right:0}.envelope-back{background:linear-gradient(135deg,#e7b2c8,#b54a82);box-shadow:0 24px 28px #2207288a}.envelope-front{z-index:4;color:#9d245c;background:linear-gradient(145deg,#f7cadd,#d970a5);place-items:center;font-size:1.65rem;display:grid;overflow:hidden}.envelope-front:before,.envelope-front:after{content:"";background:#efa9c7;width:65%;height:110%;position:absolute;top:-13px}.envelope-front:before{left:-21%;transform:rotate(35deg)}.envelope-front:after{right:-21%;transform:rotate(-35deg)}.envelope-front b{z-index:1}.envelope-flap{z-index:5;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 86%);background:linear-gradient(150deg,#ffd2e2,#c35c91);width:100%;height:119px;transition:transform .7s cubic-bezier(.2,.8,.2,1);position:absolute;top:61px;left:0}.letter-sheet{z-index:3;color:#895677;background:#fffcf1;flex-direction:column;align-items:center;gap:6px;width:70%;height:135px;padding-top:18px;transition:transform .7s cubic-bezier(.2,.8,.2,1) .15s;display:flex;position:absolute;top:43px;left:15%;box-shadow:0 5px 18px #31062248}.letter-sheet i{font-family:var(--font-display)}.envelope-scene.opened .envelope-flap{transform:rotateX(175deg)}.envelope-scene.opened .letter-sheet{transform:translateY(-86px)}.envelope-scene.opened .envelope-glow{opacity:1}.letter-preview{color:#67405f;max-width:475px;font-family:var(--font-display);background:#fffbed;border-radius:18px;margin:10px auto 0;padding:22px 25px;box-shadow:0 16px 35px #27032b59}.letter-preview p{margin:0 0 7px;animation:.6s both letter-in}.letter-preview p:nth-child(2){animation-delay:.55s}.letter-preview p:nth-child(3){animation-delay:1.1s}.letter-preview .primary-button{font-family:var(--font-body);margin-top:15px}.stage-balloons{max-width:760px}.balloon-garden{background:linear-gradient(#ffffff12,#fff5d112);border-bottom:1px solid #ffffff2b;border-radius:27px;max-width:690px;height:315px;margin:0 auto;position:relative;overflow:hidden}.balloon{cursor:pointer;border:0;border-radius:53% 53% 50% 50%;width:61px;height:78px;transition:transform .22s,opacity .3s;animation:4s ease-in-out infinite balloon-float;position:absolute;bottom:20px;box-shadow:inset -8px -9px 12px #00000018,inset 8px 8px 13px #fff7,0 13px 17px #21052b45}.balloon:before{content:"";background:inherit;clip-path:polygon(0 0,100% 0,50% 100%);width:10px;height:11px;position:absolute;bottom:-7px;left:calc(50% - 5px)}.balloon:after{content:"";background:#fff9;width:1px;height:67px;position:absolute;top:calc(100% + 3px);left:50%}.balloon:hover{transform:scale(1.07)}.balloon span{background:#fff9;border-radius:50%;width:10px;height:23px;position:absolute;top:13px;left:15px;transform:rotate(35deg)}.balloon-blue{background:#6eb9ff}.balloon-pink{background:#f8b}.balloon-gold{background:#ffd452}.balloon-purple{background:#b98cff}.balloon-mint{background:#72dec9}.balloon-rose{background:#ff708d}.balloon-sky{background:#68d7ef}.balloon-coral{background:#ff9a6f}.balloon-target{outline:2px solid #fff3b2;animation-duration:3.2s;box-shadow:0 0 0 7px #ffe9832c,0 0 28px #ffe56b,inset -8px -9px 12px #00000018,inset 8px 8px 13px #fff7}.balloon.popped{opacity:0;transform:scale(1.8)}.balloon.missed{filter:saturate(.6);animation:.5s wobble}.pop-burst{z-index:3;color:#fff9a8;text-shadow:0 0 20px #fff;font-size:2rem;animation:.8s both pop-burst;position:absolute;bottom:112px;left:51%}.game-status{color:#fff8df;min-height:28px;margin:17px 0;font-weight:700}.stage-puzzle{max-width:720px}.puzzle-slots{grid-template-columns:repeat(4,1fr);gap:10px;max-width:520px;margin:26px auto 15px;display:grid}.puzzle-slot{color:#fff;background:#ffffff10;border:1px dashed #ffffff58;border-radius:16px;align-content:center;place-items:center;gap:3px;min-height:88px;display:grid}.puzzle-slot span{color:#ffe294;font-size:1.7rem}.puzzle-slot small{font-size:.7rem}.slot-number{color:#ffffff80!important;font-size:1.05rem!important}.puzzle-pieces{flex-wrap:wrap;justify-content:center;gap:11px;display:flex}.puzzle-piece{color:#fff;cursor:pointer;background:#ffffff15;border:1px solid #fff3;border-radius:17px;place-items:center;gap:2px;width:115px;min-height:88px;transition:all .2s;display:grid}.puzzle-piece:hover{background:#ffffff26;transform:translateY(-3px);box-shadow:0 12px 18px #190b365c}.puzzle-piece.selected{color:#ffe0a1;background:#ffffff0d}.puzzle-piece span{font-size:1.8rem}.puzzle-piece small{font-weight:800}.button-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.stage-gift{max-width:650px}.gift-scene{filter:drop-shadow(0 25px 18px #1b062a74);width:270px;height:235px;margin:4px auto 7px;animation:4.5s ease-in-out infinite gift-float;position:relative}.gift-box{background:linear-gradient(90deg,#f0468e,#e72e7b 47%,#bb1d68);border-radius:8px 8px 20px 20px;width:228px;height:145px;position:absolute;bottom:14px;left:21px;overflow:hidden;box-shadow:inset 14px 0 #ff87b8,inset -12px 0 #8d1354}.gift-box:after{content:"";border-radius:inherit;border:1px solid #ffb7d4a3;position:absolute;inset:6px}.gift-ribbon{z-index:2;background:linear-gradient(90deg,#ffe69b,#fff8c8,#e8ad49);width:34px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:0 0 8px #fff5c9}.gift-lid{z-index:3;transform-origin:31px 48px;background:linear-gradient(90deg,#ff76ae,#e22d7c 47%,#a91b59);border-radius:11px;width:256px;height:55px;transition:transform .8s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:135px;left:7px}.gift-lid span{background:#ffe9a3;width:34px;height:100%;margin:auto;display:block}.gift-bow{z-index:5;width:106px;height:70px;transition:transform .8s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:182px;left:50%;transform:translate(-50%)}.gift-bow i{border:13px solid #ffe7a3;border-radius:58% 47% 55% 38%;width:56px;height:50px;position:absolute;top:7px;box-shadow:inset 0 0 8px #d79c45}.gift-bow i:first-child{left:1px;transform:rotate(24deg)}.gift-bow i:nth-child(2){right:1px;transform:rotate(-24deg)scaleX(-1)}.gift-bow b{z-index:2;background:#ffe8a3;border-radius:50%;width:28px;height:25px;position:absolute;top:24px;left:40px}.gift-surprise{z-index:6;color:#fff5a7;justify-content:space-around;font-size:2.1rem;animation:1.2s both surprise-rise;display:flex;position:absolute;top:5px;left:0;right:0}.gift-opened .gift-lid{transform:rotateX(67deg)rotate(-10deg)translateY(-36px)}.gift-opened .gift-bow{transform:translate(-50%)rotate(-12deg)translate(-22px,-66px)}.gift-opened{animation:none}.stage-cake{max-width:720px}.cake-table{place-items:center;min-height:330px;display:grid}.cake-3d{width:300px;height:265px;transform-style:preserve-3d;animation:5s ease-in-out infinite cake-float;position:relative;transform:rotateX(6deg)rotateY(-9deg)}.cake-shadow{filter:blur(7px);background:#1707158c;border-radius:50%;height:34px;position:absolute;bottom:12px;left:12px;right:12px}.cake-plate{z-index:1;background:linear-gradient(#fff9f9,#d5bcd7);border-radius:50%;width:285px;height:45px;position:absolute;bottom:27px;left:7px;box-shadow:inset 0 -9px 10px #90769e55}.cake-layer{border-radius:20px 20px 38px 38px;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 14px 0 #ffffff2d,inset -14px -5px #6a19332b,0 9px 10px #3c0a2940}.layer-bottom{z-index:2;background:linear-gradient(#ffb8d4 0 23%,#cd683d 23% 100%);width:263px;height:76px;bottom:46px}.layer-middle{z-index:3;background:linear-gradient(#fff7ed 0 28%,#e57b9e 28% 100%);width:225px;height:68px;bottom:109px}.layer-top{z-index:4;background:linear-gradient(#fff5ed 0 38%,#ffb2cf 38% 100%);width:183px;height:55px;bottom:164px}.cream-band,.cream-top{background:#fffaf1;border-radius:50%;height:22px;position:absolute;top:0;left:0;right:0;box-shadow:inset 0 -5px #eeced688}.cream-top{height:29px}.drip{background:#ffb8d4;border-radius:0 0 15px 15px;width:20px;height:32px;position:absolute;top:14px}.drip-one{left:42px}.drip-two{height:40px;right:44px}.chocolate-dot{background:#673027;border-radius:50%;width:11px;height:11px;position:absolute;box-shadow:inset 2px 2px #a15a4a}.dot-one{bottom:22px;left:30px}.dot-two{bottom:28px;right:37px}.dot-three{bottom:14px;right:35px}.strawberry{z-index:7;filter:drop-shadow(0 3px 2px #47132155);font-size:1.48rem;position:absolute;top:-18px}.berry-one{left:32px}.berry-two{right:29px}.cherry{z-index:7;background:#a71f38;border-radius:50%;width:17px;height:17px;position:absolute;top:-17px;left:50%;box-shadow:inset 3px 3px #e86a71}.cherry:before{content:"";background:#3d7d41;width:2px;height:15px;position:absolute;bottom:13px;left:7px;transform:rotate(29deg)}.candle-button{z-index:9;cursor:pointer;background:0 0;border:0;width:48px;height:92px;position:absolute;bottom:207px;left:50%;transform:translate(-50%)}.candle-wax{background:repeating-linear-gradient(90deg,#fff2b0 0 5px,#ff8fb9 5px 10px);border-radius:5px;width:20px;height:58px;position:absolute;bottom:0;left:15px;overflow:hidden;box-shadow:inset -4px 0 #ce6a97}.candle-wax i{background:#433126;width:3px;height:12px;position:absolute;top:-4px;left:8px}.flame{color:#ffe36c;filter:drop-shadow(0 0 8px #ff9e34);transition:transform .25s,opacity .25s;animation:.8s ease-in-out infinite alternate flame-flicker;position:absolute;bottom:51px;left:9px}.flame-1{transform:scale(.78)}.flame-2{transform:scale(.53)}.candle-button.is-out .flame{opacity:0;transform:scale(.1)}.smoke{color:#e7e0e7;opacity:.8;animation:1.5s ease-in-out infinite smoke-rise;position:absolute;bottom:57px;left:13px}.cake-celebrate{animation:.7s both cake-bounce}.stage-countdown{max-width:650px}.countdown-display{align-content:center;place-items:center;min-height:280px;display:grid}.countdown-display span{color:#fff2a2;font-family:var(--font-display);text-shadow:0 0 20px #fff1a2,0 0 80px #ff89c9;font-size:clamp(10rem,34vw,18rem);font-weight:800;line-height:.8;animation:1s both count-pop}.countdown-display p{color:#fff;font-weight:800}.stage-finale{max-width:950px;padding-top:14px}.birthday-title{color:#fff5ac!important;text-shadow:0 0 9px #fff6c5,0 0 36px #ff8cc0!important}.typed-message{max-width:640px;font-family:var(--font-display);margin:21px auto 38px;font-size:clamp(1.1rem,2.6vw,1.42rem);line-height:1.65}.typed-message p{white-space:nowrap;border-right:2px solid #ffd798;width:fit-content;max-width:100%;margin:0 auto 6px;animation:1.8s steps(33,end) both final-type,.8s step-end infinite cursor-blink;overflow:hidden}.typed-message p:nth-child(2){animation-delay:1.7s}.typed-message p:nth-child(3){animation-delay:3.45s}.final-section{margin:30px auto}.final-section h2{margin:0 0 16px;font-size:clamp(1.28rem,3vw,1.75rem)}.memory-carousel{grid-template-columns:auto minmax(0,530px) auto;justify-content:center;align-items:center;gap:10px;display:grid}.carousel-button{border-radius:50%;width:42px;height:42px}.memory-carousel figure{background:#ffffff17;border:1px solid #ffffff45;border-radius:22px;width:100%;margin:0;overflow:hidden;box-shadow:0 18px 32px #24082a4d}.memory-carousel img{aspect-ratio:3/2;object-fit:cover;background:#ffffff18;width:100%;display:block}.memory-carousel figcaption{color:#fff8dc;padding:11px 16px;font-size:.92rem}.memory-dots{justify-content:center;gap:7px;margin-top:11px;display:flex}.memory-dots button{cursor:pointer;background:#ffffff51;border:0;border-radius:50%;width:8px;height:8px;padding:0;transition:all .2s}.memory-dots button.active{background:#ffe4a3;border-radius:99px;width:24px}.memory-cards{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.flip-card{color:#fff;cursor:pointer;perspective:900px;background:0 0;border:0;min-height:150px;padding:0}.flip-card-inner{width:100%;height:100%;min-height:150px;transform-style:preserve-3d;transition:transform .6s;display:block;position:relative}.flip-card.flipped .flip-card-inner{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border:1px solid #ffffff4a;border-radius:18px;align-content:center;place-items:center;gap:7px;padding:14px;display:grid;position:absolute;inset:0;box-shadow:0 10px 23px #1d082b4d}.card-front{background:#ffffff16}.card-front i{font-size:1.85rem;font-style:normal}.card-front small{color:#fff9}.card-back{color:#6a2054;font-family:var(--font-display);background:linear-gradient(140deg,#ffe7a6,#ffb4d6);font-weight:700;transform:rotateY(180deg)}.card-back p{margin:0}.flip-card:hover .flip-card-inner{transform:translateY(-4px)}.flip-card.flipped:hover .flip-card-inner{transform:translateY(-4px)rotateY(180deg)}.final-actions{justify-items:center;gap:13px;margin:36px 0 20px;display:grid}.utility-actions{flex-wrap:wrap;justify-content:center;gap:9px;display:flex}.utility-actions .secondary-button{min-height:40px;padding:9px 13px;font-size:.84rem}.secret-reveal{color:#71431b;background:#fff0b4;border:1px solid #fff0b7;border-radius:17px;padding:15px 21px;font-weight:900;animation:.5s both secret-pop;display:inline-block;box-shadow:0 0 28px #ffe995}.stage-finale footer{color:#fff9;margin-top:26px;font-size:.84rem}.firework{color:#ffeeb1;text-shadow:0 0 16px;font-size:2.8rem;animation:2s ease-in-out infinite firework;position:absolute}.firework-one{top:14%;left:8%}.firework-two{color:#ffb6da;animation-delay:.6s;top:26%;right:10%}.firework-three{color:#acb8ff;animation-delay:1.2s;top:58%;left:18%}.music-control{z-index:12;color:#fff;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:#28143b99;border:1px solid #ffffff35;border-radius:999px;align-items:center;gap:8px;padding:7px 11px 7px 7px;display:flex;position:fixed;bottom:17px;right:17px;box-shadow:0 8px 20px #13052043}.music-button{color:#602746;cursor:pointer;background:#ffe59d;border:0;border-radius:50%;justify-content:center;align-items:center;gap:2px;width:33px;height:33px;transition:all .2s;display:flex}.music-button:hover{transform:scale(1.07);box-shadow:0 0 13px #ffe49d}.music-control span{font-size:.72rem;font-weight:800}.magic-loader,.boot-screen{z-index:30;color:#fff;text-align:center;background:radial-gradient(circle,#863f8b 0,#240c42 58%,#080610 100%);align-content:center;place-items:center;gap:10px;display:grid;position:fixed;inset:0}.magic-loader{animation:1.25s both magic-loader}.magic-loader strong,.boot-screen strong{font-size:1.13rem}.magic-loader span,.boot-screen span{color:#ffebbc;font-size:.86rem}.loader-spark,.boot-star{color:#ffe89c;text-shadow:0 0 22px #ffe89c;font-size:3.3rem;animation:1s ease-in-out infinite sparkle-spin}.boot-screen{z-index:50}.toast-region{z-index:60;gap:9px;width:min(360px,100vw - 36px);display:grid;position:fixed;top:18px;right:18px}.toast{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#211333ed;border:1px solid #ffffff35;border-radius:15px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:12px;animation:.25s toast-in;display:grid;box-shadow:0 14px 30px #08011175}.toast-icon{margin-top:2px}.toast-success .toast-icon{color:#9ff4bc}.toast-error .toast-icon{color:#ff9aa8}.toast-info .toast-icon{color:#ffe297}.toast-copy{gap:2px;display:grid}.toast-copy strong{font-size:.88rem}.toast-copy span{color:#fff9;font-size:.78rem;line-height:1.35}.toast-close{background:0 0;border:0;width:26px;height:26px}@keyframes moon-float{50%{transform:translateY(-9px)rotate(5deg)}}@keyframes twinkle{50%{opacity:.25;transform:scale(.55)}}@keyframes shoot{8%,to{opacity:0;transform:translate(-30px,-30px)rotate(-24deg)}12%{opacity:1}31%{opacity:0;transform:translate(340px,145px)rotate(-24deg)}}@keyframes drift{50%{opacity:.95;transform:translate(35px,-28px)}}@keyframes confetti-fall{to{transform:translate(var(--drift), 112vh) rotate(750deg)}}@keyframes touch-pop{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)}to{opacity:0;transform:translate(-50%,-130%)scale(1.7)rotate(28deg)}}@keyframes stage-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes type-reveal{0%{width:0}to{width:100%}}@keyframes cursor-blink{50%{border-color:#0000}}@keyframes shake{25%{transform:translate(-8px)}50%{transform:translate(8px)}75%{transform:translate(-4px)}}@keyframes letter-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes balloon-float{50%{transform:translateY(-78px)rotate(4deg)}}@keyframes wobble{25%{transform:rotate(10deg)}75%{transform:rotate(-10deg)}}@keyframes pop-burst{70%{opacity:1;transform:scale(1.6)}to{opacity:0;transform:scale(2.2)}}@keyframes gift-float{50%{transform:translateY(-12px)rotate(2deg)}}@keyframes surprise-rise{0%{opacity:0;transform:translateY(50px)scale(.4)}to{opacity:1;transform:translateY(-60px)scale(1.2)}}@keyframes cake-float{50%{transform:rotateX(6deg)rotateY(5deg)translateY(-9px)}}@keyframes flame-flicker{to{transform:scale(1.08,.9)rotate(3deg)}}@keyframes smoke-rise{to{opacity:0;transform:translateY(-35px)scale(1.6)}}@keyframes cake-bounce{50%{transform:rotateX(6deg)rotateY(-9deg)translateY(-20px)scale(1.04)}}@keyframes count-pop{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(.8)}}@keyframes final-type{0%{width:0}to{width:100%}}@keyframes firework{50%{opacity:.45;transform:scale(1.45)rotate(32deg)}}@keyframes secret-pop{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes sparkle-spin{50%{transform:scale(1.3)rotate(36deg)}}@keyframes magic-loader{0%,to{opacity:0}13%,76%{opacity:1}}@keyframes toast-in{0%{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:none}}@media (width<=650px){.moon{width:66px;height:66px;top:80px;right:6%}.journey-header{min-height:62px;padding:12px 15px}.brand-mark{width:33px;height:33px}.progress-wrap{width:min(180px,50vw)}.progress-wrap span{font-size:.65rem}.journey-main{min-height:calc(100vh - 62px);padding-inline:14px}.type-title{white-space:normal;border-right:0;width:auto;animation:.7s stage-enter}.date-form{padding:16px 11px}.date-fields{gap:5px}.date-fields input{width:59px}.year-field input{width:88px}.date-slash{font-size:1.15rem}.balloon-garden{height:280px}.balloon{width:49px;height:65px}.balloon:after{height:48px}.puzzle-slots{gap:6px}.puzzle-slot{min-height:74px}.puzzle-piece{width:102px;min-height:75px}.gift-scene{margin:-10px auto -3px;transform:scale(.86)}.cake-table{min-height:295px}.cake-3d{transform:scale(.88)rotateX(6deg)rotateY(-9deg)}.memory-carousel{grid-template-columns:38px minmax(0,1fr) 38px;gap:5px}.carousel-button{width:36px;height:36px}.memory-cards{grid-template-columns:repeat(2,1fr)}.flip-card,.flip-card-inner{min-height:132px}.typed-message p{white-space:normal;border-right:0;animation:.6s both stage-enter}.typed-message p:nth-child(2){animation-delay:.35s}.typed-message p:nth-child(3){animation-delay:.7s}.firework{font-size:1.75rem}.utility-actions .secondary-button{font-size:.75rem}.music-control{bottom:10px;right:10px}.music-control span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes spin{to{transform:rotate(360deg)}}
