@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;600;700;800&family=Sacramento&family=Caveat:wght@600;700&display=swap");:root{--ink:#32252b;--rose:#d95775;--blush:#fbe7e8;--cream:#fffaf5;--muted:#8e7d83;--font-sans:"Plus Jakarta Sans","DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,h5,h6{font-family:var(--font-sans)}h1,h2,h3,h4,h5,h6{letter-spacing:-.015em}button,input,textarea{font:inherit}button{cursor:pointer}.rose{color:var(--rose)}.admin-shell{min-height:100vh;background:#fdf9f6;display:flex}.sidebar{width:250px;background:#33262c;color:#fff;padding:32px 26px;display:flex;flex-direction:column}.brand{font-family:var(--font-sans);font-weight:700;font-size:21px;letter-spacing:-.5px;display:flex;gap:9px;align-items:center}.brand-mark{color:#ef879c;font-size:25px}.side-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#a9959b;margin:76px 0 16px}.side-link{color:#d8cbd0;text-decoration:none;padding:13px 12px;border-radius:10px;font-size:14px}.side-link span{margin-right:12px;color:#f08098}.side-link.active{background:#49363e;color:#fff}.side-note{font:500 13px/1.55 var(--font-sans);color:#aa999f;margin-top:auto;padding:24px 4px;border-top:1px solid #513e46}.sidebar-bottom{font-size:11px;color:#918088;margin-top:22px}.live-dot,.online-dot{color:#7fd49a;font-size:10px;margin-right:6px}.admin-content{max-width:1220px;width:100%;padding:54px 6vw}.admin-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px}.eyebrow{font-size:10px;letter-spacing:2.2px;color:var(--rose);font-weight:700;margin:0 0 9px}.admin-header h1{font:700 38px var(--font-sans);margin:0 0 6px}.card-heading p,.muted{color:var(--muted);font-size:13px;margin:0}.header-chip{border:1px solid #eadce0;padding:10px 15px;border-radius:24px;font-size:12px;color:var(--rose);background:#fff}.header-chip span{color:var(--ink);margin-left:6px}.admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr);grid-gap:22px;gap:22px}.form-card,.list-card{background:#fff;border:1px solid #f0e5e3;border-radius:15px;padding:30px;box-shadow:0 10px 30px #a9867c0b}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.card-heading h2{font:700 20px var(--font-sans);margin:0 0 6px}.count,.step-pill{font-size:10px;letter-spacing:1px;color:var(--rose);background:#fff1f2;border-radius:20px;padding:8px 11px}.count{font-size:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}label{display:block;font-size:11px;font-weight:700;margin-bottom:18px}input,textarea{display:block;width:100%;margin-top:8px;border:1px solid #eadfe0;border-radius:8px;padding:12px 13px;color:var(--ink);outline:0;background:#fff;font-size:13px}textarea{resize:vertical}input:focus,textarea:focus{border-color:#d95775;box-shadow:0 0 0 3px #d9577512}.upload-box{border:1px dashed #dfcdd1;border-radius:10px;padding:17px;display:flex;align-items:center;gap:13px;background:#fffcfb}.upload-icon{width:36px;height:36px;border-radius:50%;background:#fff0f1;color:var(--rose);font-size:23px;text-align:center}.upload-box strong{font-size:12px}.upload-box p{margin:4px 0 0;color:#a7959a;font-size:11px}.ghost-btn{margin-left:auto;background:#fff;border:1px solid #eadfe0;border-radius:6px;padding:8px 11px;font-size:11px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:27px}.primary-btn{border:0;background:var(--rose);color:#fff;border-radius:7px;padding:13px 18px;font-size:12px;font-weight:700;box-shadow:0 6px 15px #d9577533}.primary-btn span{margin-left:18px}.text-btn{border:0;background:none;color:var(--muted);font-size:12px}.saved-note{color:#35a66b;text-align:right;font-size:12px}.page-list{display:flex;flex-direction:column;gap:10px}.page-item{border:1px solid #f0e6e5;border-radius:10px;padding:12px;display:flex;align-items:center;gap:12px}.mini-avatar{height:39px;width:39px;border-radius:50%;background-size:cover;background-position:50%}.page-info{display:flex;flex-direction:column;gap:4px;min-width:0}.page-info strong{font-size:13px}.page-info>span{font-size:11px;color:#b09da2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-actions{margin-left:auto;display:flex;gap:5px}.item-actions a,.item-actions button{border:0;background:#fff5f4;color:#9f858b;border-radius:5px;text-decoration:none;width:28px;height:28px;text-align:center;padding-top:5px}.empty-state{text-align:center;color:#b2a0a5;font:500 15px/1.7 var(--font-sans);padding:45px}.admin-footer{display:flex;justify-content:space-between;color:#a6969b;font-size:11px;border-top:1px solid #eee3e2;margin-top:42px;padding-top:18px}.admin-footer code{color:var(--rose)}.experience{min-height:100vh;min-height:100svh;height:100vh;height:100svh;overflow:hidden;position:relative;background:var(--cream)}.loading-screen{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#fffaf1,#f5d8dc 100%)}.birthday-loader{position:relative;display:grid;place-items:center;width:220px;height:220px;border-radius:50%;background:#fffaf5e6;box-shadow:0 0 0 12px #ffffff4d,0 25px 70px #a45b7130;text-align:center;animation:loaderFloat 3s ease-in-out infinite}.loader-ring{position:absolute;inset:-10px;border-color:#d95775 #f0a2ad #d9577555 #d9577555;border-style:solid;border-width:2px;border-radius:50%;animation:loaderSpin 1.5s linear infinite}.birthday-loader:after,.birthday-loader:before{content:"✦";position:absolute;color:#d95775;font-size:18px;animation:loaderSparkle 1.8s ease-in-out infinite alternate}.birthday-loader:before{top:22px;left:42px}.birthday-loader:after{right:38px;bottom:34px;animation-delay:-.8s}.birthday-loader strong{font:700 24px var(--font-sans);letter-spacing:-.02em;color:#542c39}.birthday-loader small{margin-top:-70px;color:#a27680;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}@keyframes loaderSpin{to{transform:rotate(1turn)}}@keyframes loaderFloat{50%{transform:translateY(-8px)}}@keyframes loaderSparkle{to{transform:scale(1.5) rotate(20deg);opacity:.35}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes petalFloat{to{transform:translate(40px,80px) rotate(240deg);opacity:0}}@keyframes cardIn{0%{opacity:0;transform:translateY(80px) rotate(5deg)}to{opacity:1;transform:rotate(-2deg)}}@keyframes float{50%{transform:translateY(-14px)}}@keyframes sway{50%{transform:rotate(3deg)}}@keyframes fall{to{transform:translate(-90px,300px) rotate(180deg);opacity:0}}@keyframes candleDrop{0%{transform:translateY(-200px)}to{transform:translateY(0)}}@keyframes pop{to{transform:scale(.3);opacity:.4}}.file-input{display:none}.upload-error{color:#c64e68;font-size:11px;margin:-9px 0 16px}.upload-overlay{position:fixed;z-index:100;inset:0;background:#33262cb8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);justify-content:center;cursor:wait}.upload-modal,.upload-overlay{display:flex;align-items:center}.upload-modal{width:min(370px,calc(100vw - 40px));padding:32px;border-radius:16px;background:#fffefa;box-shadow:0 25px 80px #160e1259;text-align:center;flex-direction:column}.upload-modal strong{font:700 20px var(--font-sans);letter-spacing:-.01em;color:var(--ink)}.upload-modal>span{font-size:11px;color:var(--muted);margin:8px 0 25px}.upload-spinner{width:35px;height:35px;border:3px solid #f5d9dd;border-top:3px solid var(--rose);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:17px}.upload-modal .upload-progress-label{width:100%;text-align:left}.upload-progress-label{display:flex;justify-content:space-between;color:#8e777e;font-size:11px;margin-bottom:7px}.upload-progress-label strong{font:700 11px DM Sans;color:var(--rose)}.progress-track{width:100%;height:7px;background:#f4e6e7;border-radius:8px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#e48b9c,#c94e72);border-radius:8px;transition:width .15s ease}.portrait-preview{width:72px;height:72px;object-fit:cover;border-radius:50%;border:4px solid #fff1eb;margin:-5px 0 18px}.gallery-preview{display:flex;gap:8px;flex-wrap:wrap;margin:-5px 0 18px}.gallery-preview img{width:62px;height:62px;object-fit:cover;border-radius:8px;border:2px solid #f5e1e2}@media(max-width:800px){.sidebar{display:none}.admin-content{padding:32px 20px}.admin-header{align-items:flex-start;gap:20px}.admin-header h1{font-size:37px}.admin-grid{grid-template-columns:1fr}.admin-footer{display:block;line-height:2}.tree-scene{justify-content:center}.tree{position:absolute;right:-100px;opacity:.7}.tree-copy{margin-right:auto}.tree-copy h1{font-size:48px}.script{font-size:31px}.wish-card{padding:30px 28px 35px}.balloon-button{right:6%;bottom:6%}.message-scene h2{font-size:33px}.final-scene{padding:30px 15px}.balloon-row{gap:4px}.pop-balloon{min-width:75px}.gallery img{width:70px;height:60px}}.intro-scene{isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 38%,#fffaf1 0,#fce9df 35%,#eab7c4 100%);animation:introReveal 1.2s ease both}.intro-scene:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,transparent 0,transparent 24%,#b95c7c18 48%,transparent 70%),linear-gradient(120deg,#fff8ed66,#e9a9c433);pointer-events:none}.intro-aurora{position:absolute;width:75vw;height:75vw;max-width:900px;max-height:900px;border-radius:50%;background:conic-gradient(from 180deg,#ffd5b855,#f48dab44,#b68de933,#ffd5b855);filter:blur(35px);animation:auroraSpin 18s linear infinite;opacity:.8}.intro-grid{opacity:.2;background-image:linear-gradient(#fff 1px,transparent 0),linear-gradient(90deg,#fff 1px,transparent 0);background-size:70px 70px;-webkit-mask-image:radial-gradient(ellipse at center,#000 0,transparent 70%);mask-image:radial-gradient(ellipse at center,#000 0,transparent 70%);transform:perspective(500px) rotateX(55deg) scale(1.6) translateY(23%)}.intro-grid,.intro-stars{position:absolute;inset:0}.intro-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 12px 3px #fff9;animation:twinkle 2.4s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.16s)}.intro-orbit{position:absolute;border:1px solid #fff8;border-radius:50%;transform:rotate(-24deg);animation:orbitPulse 5s ease-in-out infinite}.orbit-one{width:min(72vw,760px);height:min(28vw,280px)}.orbit-two{width:min(55vw,580px);height:min(20vw,200px);transform:rotate(28deg);animation-delay:-2s}.intro-badge{position:absolute;top:8%;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:#9d5e72;white-space:nowrap;animation:badgeFloat 4s ease-in-out infinite}.intro-badge span{color:#d95775;margin:0 8px}.intro-copy{position:relative;z-index:2;text-align:center;animation:introCopyIn 1.1s cubic-bezier(.2,.8,.2,1) .15s both}.intro-monogram{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 20px;border:1px solid #d9577577;border-radius:50%;color:#d95775;font-size:19px;box-shadow:0 0 0 8px #fff3,0 0 0 9px #d9577533;animation:monogramPulse 3s ease-in-out infinite}.intro-copy h1{font-size:clamp(64px,11vw,132px);text-shadow:0 12px 35px #a45b7128}.intro-copy p{margin:24px 0 0}.intro-divider{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:25px;color:#d95775;font-size:18px}.intro-divider i{display:block;width:54px;height:1px;background:linear-gradient(90deg,transparent,#d95775aa)}.intro-divider i:last-child{transform:rotate(180deg)}.intro-hint{display:block;margin-top:16px;color:#9b6575;font-size:9px;letter-spacing:2.5px;text-transform:uppercase}.intro-memory{position:absolute;z-index:2;left:9%;bottom:14%;display:flex;align-items:center;gap:10px;transform:rotate(-9deg);animation:memoryFloat 5s ease-in-out infinite}.intro-memory img{width:58px;height:58px;object-fit:cover;border:solid #fff;border-width:5px 5px 15px;border-radius:3px;box-shadow:0 12px 25px #8f4e6429}.intro-memory span{font:16px Sacramento;color:#985b6e}.intro-balloon{position:absolute;z-index:4;right:13%;bottom:12%;width:122px;height:190px;border:0;background:none;cursor:pointer;animation:balloonFloat 3.2s ease-in-out infinite;transition:filter .25s ease}.intro-balloon:hover{filter:brightness(1.07) drop-shadow(0 15px 20px #9c4e6944);animation-play-state:paused}.intro-balloon:focus-visible{outline:3px solid #fff;outline-offset:8px;border-radius:50%}.balloon-label{position:absolute;z-index:2;top:18px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:700;letter-spacing:1.5px;color:#fff;white-space:nowrap;text-shadow:0 1px 3px #8d4961}.balloon-label b{font-size:8px;margin-left:4px}.balloon-shape{position:absolute;top:35px;left:13px;width:96px;height:119px;border-radius:53% 47% 50% 50%;background:radial-gradient(circle at 32% 25%,#fff9 0 7%,transparent 8%),linear-gradient(135deg,#ef8ba2,#ca3e69 75%);box-shadow:inset -13px -15px 18px #8f284d55,0 15px 22px #9947623f;transform:rotate(-8deg);transition:transform .3s ease}.intro-balloon:hover .balloon-shape{transform:rotate(-8deg) scale(1.08)}.balloon-shape:after{content:"";position:absolute;bottom:-7px;left:43px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid #be3d65}.balloon-shape b,.balloon-shape i{position:absolute;background:#fff;border-radius:50%;opacity:.8}.balloon-shape i{width:6px;height:6px;top:36px;left:23px}.balloon-shape b{width:4px;height:4px;top:51px;left:33px}.balloon-string{position:absolute;top:150px;left:61px;width:1px;height:42px;background:#8d5367;transform:rotate(4deg)}.balloon-string:after{content:"♡";position:absolute;top:29px;left:-8px;color:#d95775;font-size:16px}.intro-sparkle{position:absolute;z-index:2;color:#fff;filter:drop-shadow(0 0 8px #fff);animation:sparkleDrift 3s ease-in-out infinite}.sparkle-one{top:27%;left:20%;font-size:28px}.sparkle-two{top:20%;right:25%;font-size:21px;animation-delay:-1s}.sparkle-three{bottom:25%;right:35%;font-size:13px;animation-delay:-2s}@keyframes introReveal{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes introCopyIn{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}@keyframes auroraSpin{to{transform:rotate(1turn) scale(1.08)}}@keyframes twinkle{0%{opacity:.2;transform:scale(.6)}to{opacity:1;transform:scale(1.5)}}@keyframes orbitPulse{50%{opacity:.45;transform:rotate(-24deg) scale(1.04)}}@keyframes badgeFloat{50%{transform:translateX(-50%) translateY(7px)}}@keyframes monogramPulse{50%{box-shadow:0 0 0 13px #fff2,0 0 0 14px #d9577522;transform:rotate(180deg)}}@keyframes memoryFloat{50%{transform:rotate(-5deg) translateY(-12px)}}@keyframes balloonFloat{0%,to{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-22px) rotate(-5deg)}}@keyframes sparkleDrift{50%{transform:translateY(-15px) scale(1.3);opacity:.65}}@keyframes balloonBurst{0%{transform:scale(1) rotate(2deg);opacity:1}45%{transform:scale(1.25) rotate(-9deg);opacity:1}to{transform:scale(0) rotate(18deg);opacity:0}}@media(max-width:800px){.intro-badge{top:7%;font-size:8px;letter-spacing:2px}.intro-copy h1{letter-spacing:-2px}.intro-memory{left:5%;bottom:22%;transform:scale(.8) rotate(-9deg)}.intro-balloon{right:4%;bottom:9%;transform:scale(.82)}.intro-orbit{width:120vw;height:50vw}.intro-copy p{letter-spacing:2px}.intro-divider{margin-top:18px}}.intro-memory{display:none!important}@media(max-width:800px){.intro-scene{min-height:100svh;padding:16px 10px}.real-person{top:3%;width:20vw;height:17vh;border-radius:12px}.real-person.person-left{left:8%}.real-person.person-right{right:8%}.intro-copy{position:absolute;top:40%;left:10px;right:10px;width:auto;padding:0 8px}.intro-monogram{width:34px;height:34px;margin-bottom:10px}.intro-copy .script{font-size:27px;line-height:1.05;white-space:nowrap}.intro-copy h1{font-size:clamp(46px,14vw,72px);margin-top:3px}.intro-copy p{font-size:8px}.intro-copy p,.intro-divider{margin-top:12px}.intro-hint{margin-top:8px;font-size:7px}.love-note{width:84px;padding:7px;line-height:1}.love-note,.love-note b{font-size:12px}.note-one{top:27%;left:2%;transform:rotate(-4deg)}.note-two{top:27%;right:2%;transform:rotate(4deg)}.note-four,.note-three{display:none}.intro-balloon{right:50%;bottom:82px;width:92px;height:142px;transform:translateX(50%) scale(.52);transform-origin:bottom center}.intro-sparkle{font-size:13px}.sparkle-one{top:56%;left:5%}.sparkle-two{top:54%;right:5%}.sparkle-three{bottom:28%;right:10%}}.intro-balloon.popped{animation:balloonBurst .42s cubic-bezier(.2,.8,.2,1) forwards;pointer-events:none}.intro-balloon.popped .balloon-label{opacity:0}.intro-balloon.popped:after,.intro-balloon.popped:before{content:"✦";position:absolute;z-index:5;top:75px;left:50%;color:#fff;font-size:22px;animation:sparkleDrift .42s ease-out both}.intro-balloon.popped:before{content:"✧";left:25%;top:52px;animation-delay:.05s}.floating-notes{position:absolute;z-index:4;inset:0;pointer-events:none}.love-note{position:absolute;width:150px;padding:14px 16px;border:1px solid #ffffffa8;border-radius:4px;background:#fffaf5bf;box-shadow:0 14px 32px #8e52651c;color:#9b5f72;font:19px/1.05 Sacramento,cursive;letter-spacing:.2px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:noteFloat 5s ease-in-out infinite}.love-note b{float:right;color:#d95775;font:16px DM Sans;margin-top:4px}.note-one{top:18%;left:28%;transform:rotate(-8deg);animation-delay:-1.4s}.note-two{top:19%;right:28%;transform:rotate(7deg);animation-delay:-3.2s}.note-three{bottom:20%;left:20%;transform:rotate(5deg);animation-delay:-2.2s}.note-four{bottom:19%;right:20%;transform:rotate(-6deg);animation-delay:-.5s}@keyframes noteFloat{0%,to{translate:0 0 rotate(0deg)}50%{translate:0 -12px rotate(2deg)}}@media(max-width:800px){.love-note{width:112px;padding:10px;font-size:15px}.note-one{top:42%;left:2%}.note-two{top:43%;right:2%}.note-three{bottom:17%;left:4%}.note-four{bottom:17%;right:4%}}.birthday-crowd{position:absolute;z-index:3;inset:0;pointer-events:none}.real-person{position:absolute;top:7%;width:min(20vw,260px);height:min(47vh,390px);overflow:hidden;border-radius:24px;box-shadow:0 20px 45px #743f5b2b;animation:photoPersonIn 1.1s cubic-bezier(.2,.8,.2,1) both,photoPersonFloat 5s ease-in-out 1.1s infinite}.real-person img{width:100%;height:100%;object-fit:cover;object-position:center 24%;display:block;filter:saturate(.92) contrast(1.04);mask-image:linear-gradient(#000 0 78%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0 78%,transparent 100%)}.real-person:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff0 55%,#f2c5d6);pointer-events:none}.real-person.person-left{left:5%;transform:rotate(-4deg);animation-delay:.15s,1.25s}.real-person.person-right{right:5%;transform:scaleX(-1) rotate(-4deg);animation-delay:.3s,1.4s}@keyframes photoPersonIn{0%{opacity:0;transform:translateY(-45px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes photoPersonFloat{50%{transform:translateY(8px) rotate(1.5deg)}}@keyframes candleFlicker{to{transform:scaleY(1.3);opacity:.65}}@media(max-width:800px){.birthday-crowd{opacity:.9}.real-person{top:5%;width:34vw;height:34vh;border-radius:16px}.real-person.person-left{left:-3%}.real-person.person-right{right:-3%}}@media(prefers-reduced-motion:reduce){.intro-scene *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}@media(max-width:800px){.birthday-crowd{inset:0 10px}.real-person{top:4%!important;width:clamp(78px,24vw,122px)!important;height:clamp(112px,19vh,155px)!important;border-radius:14px!important}.real-person.person-left{left:8%!important}.real-person.person-right{right:8%!important}.real-person img{object-position:center 20%}.note-one{top:27%!important;left:2%!important}.note-two{top:27%!important;right:2%!important}.intro-copy{top:46%!important}}.arrow-heart-scene{position:relative;min-height:100svh;height:100svh;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 45%,#ffd6e166,transparent 30%),linear-gradient(135deg,#fff8fa,#f9eef3 48%,#f5e4eb);color:#563b45}.arrow-heart-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.ah-glow{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(70px);opacity:.4}.ah-glow-one{top:-180px;left:-120px;background:#f5a4bc59}.ah-glow-two{right:-160px;bottom:-180px;background:#dca4bf4d}.ah-particles,.ah-stars{position:absolute;inset:0;pointer-events:none}.ah-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#9a697959;animation:ah-star-twinkle 3s ease-in-out infinite;animation-delay:calc(var(--i)*-.15s)}.ah-particles i{position:absolute;left:calc(5% + (var(--i)*4.7%));top:-20px;width:5px;height:8px;border-radius:3px;background:#d957754d;animation:ah-fall 8s linear infinite;animation-delay:calc(var(--i)*-.4s)}.ah-intro{position:absolute;top:11%;left:50%;transform:translateX(-50%);z-index:5;width:min(90%,500px);text-align:center}.ah-reveal-script,.ah-script{display:block;font:clamp(22px,4vw,34px) Brush Script MT,Segoe Script,cursive;color:#b45f77}.ah-intro p{font-size:12px;line-height:1.7;letter-spacing:.14em;text-transform:uppercase;color:#563b45a6}.ah-heart-target{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);width:180px;height:180px}.ah-heart,.ah-heart-target{display:flex;align-items:center;justify-content:center}.ah-heart{position:relative;z-index:5;width:112px;height:102px;background:linear-gradient(145deg,#ff8eaa,#e9577b 45%,#be3159);-webkit-clip-path:path("M56 98 C47 89 8 64 8 32 C8 12 31 4 47 19 L56 28 L65 19 C81 4 104 12 104 32 C104 64 65 89 56 98 Z");clip-path:path("M56 98 C47 89 8 64 8 32 C8 12 31 4 47 19 L56 28 L65 19 C81 4 104 12 104 32 C104 64 65 89 56 98 Z");box-shadow:0 22px 55px #c9406359;animation:ah-heart-beat 2.4s cubic-bezier(.45,0,.25,1) infinite;filter:drop-shadow(0 10px 16px #c9406333)}.ah-heart:before{inset:10px 19px 32px 20px;background:linear-gradient(135deg,#fff9,#fff0 55%);opacity:.35;transform:rotate(-18deg)}.ah-heart:after,.ah-heart:before{content:"";position:absolute;border-radius:50%}.ah-heart:after{width:10px;height:10px;top:21px;left:32px;background:#fff9;box-shadow:12px 9px 0 1px #fff5}.ah-heart span{position:relative;z-index:10;color:#ffffff55;font-size:29px}.ah-heart-glow{position:absolute;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#f2688d73 0,#e85d7f2b 42%,transparent 70%);filter:blur(18px);animation:ah-glow-pulse 2.4s ease-in-out infinite}.ah-heart-ring{position:absolute;width:145px;height:145px;border:1px solid #d9577559;border-radius:50%;animation:ah-ring-pulse 3.6s cubic-bezier(.2,.8,.3,1) infinite}.ring-two{animation-delay:1.2s}.ring-three{animation-delay:2.4s}.heart-explosion{position:absolute;inset:-30px;opacity:0}.heart-explosion i{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#d95775;transform:translate(-50%,-50%) rotate(calc(var(--i)*20deg)) translateX(0);opacity:0}.heart-hit .heart-explosion{opacity:1}.heart-hit .heart-explosion i{animation:ah-particle-burst .8s cubic-bezier(.2,.8,.3,1) forwards;animation-delay:calc(var(--i)*.02s)}.heart-hit .ah-heart{animation:ah-heart-impact .9s cubic-bezier(.16,1,.3,1) forwards}.ah-arrow-launcher{position:absolute;z-index:20;left:15%;top:52%;width:150px;height:110px;border:0;padding:0;background:transparent;cursor:pointer;transition:transform .25s ease}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(1.04)}.ah-bow{position:absolute;width:70px;height:100px}.bow-bottom,.bow-top{position:absolute;left:22px;width:45px;height:55px;border:4px solid #9d6575;border-radius:0 50% 50% 0}.bow-string{position:absolute;width:65px;height:2px;background:#785462;transform:translateY(-50%) rotate(-8deg)}.ah-arrow{left:32px;width:115px;height:12px}.arrow-shaft{left:0;top:50%;width:105px;height:4px;border-radius:10px;background:linear-gradient(90deg,#6d4b57,#bd7185)}.arrow-head,.arrow-shaft{position:absolute;transform:translateY(-50%)}.arrow-head{border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:17px solid #8d5365}.arrow-feather{position:absolute;left:5px;width:20px;height:9px;border-radius:100% 0;background:#d88da0}.feather-one{top:-5px;transform:rotate(15deg)}.feather-two{bottom:-5px;transform:rotate(-15deg)}.ah-instruction{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:16px;width:min(90%,380px);justify-content:center;text-align:center;color:#8d6572;font-size:9px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;animation:ah-instruction-float 2.5s ease-in-out infinite}.ah-instruction small{font-size:8px;opacity:.65;letter-spacing:.12em;text-transform:lowercase}.ah-instruction-line{width:35px;height:1px;background:#8d65724d}.ah-arrow-launcher.arrow-released{pointer-events:none;animation:ah-arrow-flight 1.35s cubic-bezier(.15,.8,.25,1) forwards}.ah-birthday-reveal{position:absolute;z-index:30;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;opacity:0;transform:scale(.82) translateY(30px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.3s cubic-bezier(.16,1,.3,1)}.ah-birthday-reveal.show-birthday{opacity:1;transform:scale(1) translateY(0);transition-delay:2.2s}.ah-reveal-line{display:flex;align-items:center;gap:12px;width:min(280px,65vw);margin:18px 0}.ah-reveal-line i{flex:1 1;height:1px;background:#b45f7759}.ah-reveal-line span{color:#d95775}.ah-birthday-reveal h1{margin:0;display:flex;flex-direction:column;align-items:center;font:800 clamp(48px,10vw,105px)/.88 var(--font-sans);letter-spacing:-.02em;color:#5d3e49;text-shadow:0 8px 30px #5d3e4920}.ah-birthday-reveal h1 span{color:#d95775;font-size:.72em;margin-top:12px;letter-spacing:.08em}.ah-birthday-reveal h2{margin:22px 0 0;font:400 clamp(42px,8vw,76px)/1 Brush Script MT,Segoe Script,cursive;color:#b45f77}.ah-birthday-reveal p{margin:22px 0 0;font-size:11px;line-height:1.7;letter-spacing:.12em;color:#5d3e49a6}.ah-reveal-sparkles{position:absolute;inset:0}.ah-reveal-sparkles span{position:absolute;font-size:18px;color:#d95775;animation:ah-sparkle-appear 1s ease forwards}.ah-reveal-sparkles span:first-child{top:28%;left:24%}.ah-reveal-sparkles span:nth-child(2){top:36%;right:20%}.ah-reveal-sparkles span:nth-child(3){bottom:29%;left:20%}.ah-reveal-sparkles span:nth-child(4){bottom:25%;right:23%}.ah-reveal-sparkles span:nth-child(5){top:22%;right:31%}.ah-continue{position:absolute;z-index:35;left:50%;bottom:8%;transform:translateX(-50%) translateY(15px);opacity:0;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:#5d3e4973;transition:opacity 1s ease 3.4s,transform 1s ease 3.4s}.ah-continue.show-continue{opacity:1;transform:translateX(-50%) translateY(0)}@keyframes ah-star-twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:.9;transform:scale(1.5)}}@keyframes ah-fall{0%{transform:translateY(-20px) rotate(0);opacity:0}10%{opacity:.5}90%{opacity:.3}to{transform:translateY(110vh) rotate(1turn);opacity:0}}@keyframes ah-heart-beat{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes ah-glow-pulse{0%,to{transform:scale(.9);opacity:.5}50%{transform:scale(1.2);opacity:.9}}@keyframes ah-ring-pulse{0%{transform:scale(.6);opacity:.8}to{transform:scale(1.8);opacity:0}}@keyframes ah-instruction-float{50%{transform:translateX(-50%) translateY(-5px)}}@keyframes ah-arrow-flight{0%{left:15%;top:52%;transform:translateY(-50%) rotate(-5deg) scale(1)}15%{transform:translateY(-50%) rotate(-5deg) scale(1.04)}to{left:50%;top:50%;transform:translateY(-50%) rotate(-5deg) scale(.7)}}@keyframes ah-heart-impact{to{transform:scale(.2);opacity:0}}@keyframes ah-particle-burst{0%{transform:translate(-50%,-50%) rotate(calc(var(--i)*20deg)) translateX(0);opacity:1}to{transform:translate(-50%,-50%) rotate(calc(var(--i)*20deg)) translateX(110px) scale(.2);opacity:0}}@keyframes ah-sparkle-appear{0%{opacity:0;transform:scale(0) rotate(-90deg)}60%{opacity:1;transform:scale(1.4) rotate(15deg)}to{opacity:.75;transform:scale(1) rotate(0)}}.ah-arrow-launcher{width:210px;height:150px;filter:drop-shadow(0 12px 12px #70465726)}.ah-bow{left:0;width:92px;height:132px}.bow-bottom,.bow-top{left:29px;height:70px;border:7px solid #8d5365;border-left:0;border-radius:0 70% 70% 0;box-shadow:inset -3px 0 #e9a5b4,0 2px 0 #fff6}.bow-top{transform:rotate(-18deg)}.bow-bottom{transform:rotate(18deg)}.bow-string{left:0;width:82px;height:3px;background:linear-gradient(90deg,#573743,#aa6a7c);box-shadow:0 1px 0 #fff6}.ah-arrow{left:37px;height:18px;transform:translateY(-50%) rotate(-5deg)}.arrow-shaft{width:151px;background:linear-gradient(90deg,#6c4552,#b17a5d 40%,#e1b275);box-shadow:0 2px 4px #58333d55}.arrow-head{border-top-width:14px;border-bottom-width:14px;border-left:27px solid #b17667;filter:drop-shadow(1px 1px 0 #fff6)}.arrow-feather{left:4px;width:30px;height:12px;background:linear-gradient(135deg,#d77991,#f2b7c5);box-shadow:0 1px 0 #fff5}.feather-one{top:-8px}.feather-two{bottom:-8px}.ah-arrow-launcher:after{content:"✦";position:absolute;left:22px;top:17px;font-size:16px;opacity:.8;animation:ah-bow-shimmer 2s ease-in-out infinite}.ah-arrow-launcher.arrow-released:after{opacity:0}@keyframes ah-bow-shimmer{50%{transform:translate(4px,-3px) scale(1.3);opacity:.3}}@media(max-width:600px){.ah-arrow-launcher{left:5%;transform:translateY(-50%) scale(.85)}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(.88)}.ah-heart-target{width:150px;height:150px}.ah-heart,.ah-heart:after,.ah-heart:before{width:70px;height:70px}.ah-heart:before{top:-35px}.ah-heart:after{left:35px}.ah-heart span{font-size:27px}.ah-heart-glow{width:105px;height:105px}.ah-instruction{bottom:14%;width:92%;gap:9px;font-size:7px}.ah-instruction-line{width:22px}.ah-birthday-reveal{padding:20px}.ah-birthday-reveal h1{font-size:clamp(42px,15vw,68px)}.ah-birthday-reveal h2{font-size:clamp(38px,13vw,58px)}.ah-birthday-reveal p{max-width:280px;font-size:9px}.ah-continue{bottom:7%;width:90%;text-align:center}.ah-arrow-launcher{width:170px;height:120px;left:2%;transform:translateY(-50%) scale(.72)}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(.75)}.ah-bow{transform:translateY(-50%) rotate(-8deg) scale(.9);transform-origin:left center}.ah-arrow{transform:translateY(-50%) rotate(-5deg) scale(.9);transform-origin:left center}}.ah-arrow-launcher{width:230px;height:190px;left:13%;top:53%;transform:translateY(-50%) rotate(-2deg);filter:drop-shadow(0 14px 10px #70465720)}.ah-arrow-launcher:hover{transform:translateY(-50%) rotate(-2deg) scale(1.03)}.ah-bow{left:8px;top:50%;width:86px;height:166px;transform:translateY(-50%) rotate(-8deg)}.bow-bottom,.bow-top{left:25px;width:58px;height:82px;border:0;border-radius:0;background:linear-gradient(115deg,#7d351a 0 18%,#c66b2c 19% 45%,#efad55 46% 56%,#8f411f 57% 100%);-webkit-clip-path:polygon(0 0,22% 4%,70% 44%,100% 98%,84% 100%,45% 62%,0 22%);clip-path:polygon(0 0,22% 4%,70% 44%,100% 98%,84% 100%,45% 62%,0 22%);box-shadow:inset 4px 0 #ffd77a88}.bow-top{top:0;transform:rotate(25deg);transform-origin:bottom left}.bow-bottom{bottom:0;transform:scaleY(-1) rotate(25deg);transform-origin:top left}.bow-string{left:42px;top:50%;width:143px;height:1px;background:#8d776a;transform:translateY(-50%) rotate(-40deg);transform-origin:left center;box-shadow:0 0 2px #fff}.ah-arrow{left:44px;top:55%;width:166px;height:16px;transform:rotate(-43deg)}.arrow-shaft{width:146px;height:5px;border-radius:4px;background:linear-gradient(90deg,#8f421f,#e7a64d 75%,#b96b2d);box-shadow:0 1px 2px #55322b88}.arrow-head{right:0;top:50%;border-top:14px solid transparent;border-bottom:14px solid transparent;border-left:28px solid #4b4142;transform:translateY(-50%) rotate(-2deg);filter:drop-shadow(1px 2px 0 #d89a4c)}.arrow-feather{left:2px;width:33px;height:13px;border-radius:100% 0 100% 0;background:linear-gradient(135deg,#963f25,#df8840);box-shadow:0 1px 0 #ffd17577}.feather-one{top:-9px;transform:rotate(23deg)}.feather-two{bottom:-9px;transform:rotate(-23deg)}.ah-arrow-launcher:before{content:"";position:absolute;z-index:3;left:29px;top:50%;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f7c66d,#9b4e24 70%);transform:translateY(-50%);box-shadow:0 1px 2px #4a272044}.ah-arrow-launcher:after{left:11px;top:13px;color:#f6c3cf}@media(max-width:600px){.ah-arrow-launcher{width:190px;height:155px;left:0;top:53%;transform:translateY(-50%) scale(.74) rotate(-2deg);transform-origin:left center}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(.77) rotate(-2deg)}}.ah-arrow-launcher{width:min(520px,42vw);height:min(430px,42vw);left:7%;top:55%;transform:translateY(-50%);filter:drop-shadow(0 18px 18px #70465724)}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(1.02)}.ah-bow-image{left:0;width:48%;height:88%;filter:drop-shadow(0 10px 10px #70465730)}.ah-arrow,.ah-bow-image{top:50%;transform:translateY(-50%) rotate(0deg)}.ah-arrow{left:27%;width:70%;height:70%}.ah-arrow-image{display:block;width:100%;height:100%;object-position:center;filter:drop-shadow(0 10px 9px #70465730)}.ah-arrow-launcher.arrow-released{animation:ah-arrow-image-flight 1.35s cubic-bezier(.15,.8,.25,1) forwards}.ah-arrow-launcher.arrow-released .ah-bow-image{animation:none}.ah-arrow-launcher.arrow-released .ah-arrow{animation:ah-arrow-travel 1.35s cubic-bezier(.15,.8,.25,1) forwards}@keyframes ah-arrow-travel{0%{transform:translateY(-50%) rotate(0)}to{transform:translate(48vw,-50%) rotate(0)}}@keyframes ah-arrow-image-flight{0%{filter:drop-shadow(0 18px 18px #70465724)}to{filter:drop-shadow(0 18px 18px transparent)}}.ah-arrow-launcher:after,.ah-arrow-launcher:before{display:none}@media(max-width:600px){.ah-arrow-launcher{width:190px;height:170px;left:1%;top:54%;transform:translateY(-50%) scale(.74)}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(.77)}.ah-bow-image{width:48%;height:88%}.ah-arrow{left:27%;width:72%;height:72%}@keyframes ah-arrow-travel-mobile{to{transform:translate(56vw,-50%) rotate(0)}}.ah-arrow-launcher.arrow-released .ah-arrow{animation-name:ah-arrow-travel-mobile}}.ah-arrow-launcher{width:min(540px,46vw)!important;height:min(430px,42vw)!important;left:4%!important;top:55%!important;transform:translateY(-50%)!important;animation:none!important}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(1.02)!important}.ah-bow-image{width:94%!important;height:94%!important;left:3%!important;object-fit:contain;z-index:1}.ah-arrow,.ah-bow-image{position:absolute;top:50%!important;transform:translateY(-50%)!important;pointer-events:none}.ah-arrow{left:9%!important;width:82%!important;height:22%!important;transform-origin:left center;z-index:2}.ah-arrow-image{position:absolute;left:0;top:50%;width:24%!important;height:auto;object-fit:contain;transform:translateY(-50%) rotate(90deg)!important;transform-origin:center;filter:drop-shadow(0 8px 8px #70465730)}.ah-arrow-launcher.arrow-released,.ah-arrow-launcher.arrow-released .ah-bow-image{animation:none!important;transform:translateY(-50%)!important}.ah-arrow-launcher.arrow-released .ah-arrow{animation:ah-arrow-asset-flight 1.35s cubic-bezier(.15,.8,.25,1) forwards!important}@keyframes ah-arrow-asset-flight{0%{transform:translateY(-50%) translateX(0)}to{transform:translateY(-50%) translateX(48vw)}}@media(max-width:600px){.ah-arrow-launcher{width:260px!important;height:220px!important;left:-2%!important;top:54%!important;transform:translateY(-50%)!important}.ah-arrow-launcher:hover{transform:translateY(-50%) scale(1.02)!important}.ah-bow-image{width:96%!important;height:96%!important}.ah-arrow{left:9%!important;width:84%!important;height:22%!important}.ah-arrow-image{width:25%!important}.ah-arrow-launcher.arrow-released{transform:translateY(-50%)!important}.ah-arrow-launcher.arrow-released .ah-arrow{animation-name:ah-arrow-asset-flight-mobile!important}@keyframes ah-arrow-asset-flight-mobile{to{transform:translateY(-50%) translateX(62vw)}}}.ah-arrow-launcher.arrow-released .ah-arrow{animation:none!important}.ah-arrow-launcher.arrow-released .ah-arrow-image{animation:ah-arrow-image-flight-real 1.35s cubic-bezier(.15,.8,.25,1) forwards!important}@keyframes ah-arrow-image-flight-real{0%{left:0;transform:translateY(-50%) rotate(90deg)}to{left:58vw;transform:translateY(-50%) rotate(90deg)}}@media(max-width:600px){.ah-arrow-launcher.arrow-released .ah-arrow-image{animation-name:ah-arrow-image-flight-real-mobile!important}@keyframes ah-arrow-image-flight-real-mobile{0%{left:0;transform:translateY(-50%) rotate(90deg)}to{left:75vw;transform:translateY(-50%) rotate(90deg)}}}@media(prefers-reduced-motion:reduce){.arrow-heart-scene *,.arrow-heart-scene :after,.arrow-heart-scene :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.ah-arrow-launcher.arrow-released .ah-arrow-image{animation-name:ah-arrow-image-flight-far!important}@keyframes ah-arrow-image-flight-far{0%{left:0;transform:translateY(-50%) rotate(90deg)}to{left:68vw;transform:translateY(-50%) rotate(90deg)}}@media(max-width:600px){.ah-arrow-launcher.arrow-released .ah-arrow-image{animation-name:ah-arrow-image-flight-far-mobile!important}@keyframes ah-arrow-image-flight-far-mobile{0%{left:0;transform:translateY(-50%) rotate(90deg)}to{left:84vw;transform:translateY(-50%) rotate(90deg)}}}.ah-birthday-reveal .ah-reveal-script{transform:translateY(42px)}@media(max-width:600px){.ah-birthday-reveal .ah-reveal-script{transform:translateY(30px)}}.ah-birthday-reveal.show-birthday{transition-delay:1.35s}.ah-next-balloon{animation-play-state:paused}.ah-arrow-launcher~.ah-next-balloon{animation-delay:2.35s;animation-play-state:running;animation-fill-mode:both}@keyframes ah-next-balloon-appear{0%{opacity:0;pointer-events:none}to{opacity:1;pointer-events:auto}}.ah-arrow-launcher~.ah-next-balloon{animation-name:ah-next-balloon-appear,ah-next-balloon-float;animation-duration:.45s,2.8s;animation-delay:2.35s,2.8s;animation-iteration-count:1,infinite;animation-fill-mode:both,none}.ah-arrow-launcher~.ah-next-balloon:after{opacity:1;transition:opacity .45s ease 2.35s}.ah-next-balloon{position:absolute;z-index:40;right:8%;top:58%;width:104px;height:142px;border:0;padding:0;background:transparent;cursor:pointer;animation:ah-next-balloon-float 2.8s ease-in-out infinite;filter:drop-shadow(0 10px 12px rgba(180,95,119,.2))}.ah-next-balloon span{position:absolute;z-index:3;top:38px;left:50%;transform:translateX(-50%);color:#fff;font:600 14px Brush Script MT,Segoe Script,cursive;white-space:nowrap}.ah-next-balloon i{position:absolute;inset:6px 8px 28px;border-radius:48% 52% 50% 50%;background:radial-gradient(circle at 35% 25%,#fff9 0 8%,transparent 20%),linear-gradient(145deg,#ffb7cc,#e95f87 70%,#c8436b);box-shadow:inset -9px -12px 18px #a72d5b33}.ah-next-balloon b{position:absolute;left:50%;bottom:5px;width:1px;height:30px;background:#bd7084}.ah-next-balloon b:after{content:"";position:absolute;bottom:0;left:-4px;border:4px solid transparent;border-top-color:#bd7084}.ah-next-balloon:after{content:"tap to continue →";position:absolute;top:151px;left:50%;transform:translateX(-50%);color:#a85c73;font:12px Brush Script MT,Segoe Script,cursive}.ah-next-balloon:hover{transform:scale(1.06)}@keyframes ah-next-balloon-float{50%{transform:translateY(-9px) rotate(2deg)}}@media(max-width:600px){.ah-next-balloon{right:4%;top:60%;transform:scale(.78)}.ah-next-balloon:hover{transform:scale(.82)}.ah-next-balloon:after{top:137px;font-size:11px}}.ah-bow-message{position:absolute;z-index:4;left:18%;top:14%;padding:11px 18px 12px;border-radius:48% 52% 50% 46%;background:hsla(0,0%,100%,.94);color:#b45f77;font:600 15px Brush Script MT,Segoe Script,cursive;letter-spacing:.04em;white-space:nowrap;filter:drop-shadow(0 8px 10px rgba(180,95,119,.16));animation:ah-cloud-float 2.6s ease-in-out infinite}.ah-bow-message:after,.ah-bow-message:before{content:"";position:absolute;border-radius:50%;background:hsla(0,0%,100%,.94);z-index:-1}.ah-bow-message:before{width:24px;height:24px;left:12px;bottom:-6px}.ah-bow-message:after{width:13px;height:13px;left:3px;bottom:-12px}.ah-bow-hint{position:absolute;z-index:4;left:31%;top:31%;color:#b45f77;font:600 11px Brush Script MT,Segoe Script,cursive;white-space:nowrap;transform:rotate(8deg);animation:ah-hint-point 1.5s ease-in-out infinite}.ah-bow-hint:before{content:"";position:absolute;left:-19px;top:-12px;width:25px;height:18px;border-left:1px solid #b45f7780;border-bottom:1px solid #b45f7780;border-radius:0 0 0 18px;transform:rotate(-28deg)}@keyframes ah-cloud-float{50%{transform:translateY(-6px) rotate(-2deg)}}@keyframes ah-hint-point{50%{transform:translate(3px,3px) rotate(8deg)}}.ah-arrow-launcher.arrow-released .ah-bow-hint,.ah-arrow-launcher.arrow-released .ah-bow-message{opacity:0;transition:opacity .2s ease}@media(max-width:600px){.ah-bow-message{left:19%;top:8%;padding:8px 13px 9px;font-size:13px}.ah-bow-message:before{width:19px;height:19px}.ah-bow-message:after{width:10px;height:10px}.ah-bow-hint{left:30%;top:28%;font-size:10px}}.blossom-tree{width:390px;height:450px;position:relative;filter:drop-shadow(12px 20px 15px #88585b20);animation:sway 5s ease-in-out infinite}.trunk{bottom:0;left:48%;width:48px;height:290px;background:linear-gradient(90deg,#553b37,#8d5d52 48%,#4b3432);border-radius:50% 45% 10% 10%;transform:rotate(5deg)}.branch,.trunk{position:absolute}.branch{height:25px;background:#5e3d39;border-radius:50%;transform-origin:left center}.branch-a{left:49%;top:35%;width:220px;transform:rotate(-32deg)}.branch-b{left:50%;top:43%;width:190px;transform:rotate(29deg)}.branch-c{left:48%;top:25%;width:170px;transform:rotate(-55deg)}.blossom{position:absolute;color:#e989a3;font-style:normal;font-size:25px;left:calc(13% + (var(--i) * 17%));top:calc(5% + ((var(--i) * 29%) % 55%));filter:drop-shadow(0 2px 2px #9d586733)}.falling-leaves{position:absolute;inset:0;pointer-events:none}.falling-leaves i{position:absolute;color:#e98fa5;font-size:18px;left:calc((var(--i) * 17%) - 5%);top:15%;animation:petalDrop calc(4s + (var(--i) * .25s)) linear infinite;animation-delay:calc(var(--i) * -.6s);opacity:0}.balloon-page,.gallery-page{min-height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;background:radial-gradient(circle at 50% 25%,#fff3e2,#f5d8dc)}.balloon-page h1,.gallery-page h1{font:700 52px/1.1 var(--font-sans);letter-spacing:-.02em;margin:14px 0;color:#542c39}.balloon-page h1 em,.gallery-page h1 em{color:var(--rose)}.balloon-page .pop-balloon{min-width:120px;min-height:105px}.gallery-button{opacity:0;pointer-events:none;transition:opacity .5s}.gallery-button.visible{opacity:1;pointer-events:auto}.gallery-page{background:linear-gradient(135deg,#fff5e8,#f7dce0)}.large-gallery{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:12px;gap:12px;max-width:900px;margin:32px 0 14px}.large-gallery img{width:155px;height:210px;object-fit:cover;border-radius:90px 90px 8px 8px;box-shadow:0 12px 25px #a45c6922}.gallery-page>p{color:#8e737a;font:500 15px var(--font-sans)}@keyframes petalDrop{0%{transform:translate3d(0,-5vh,0) rotate(0deg);opacity:0}12%{opacity:.9}45%{transform:translate3d(55px,42vh,0) rotate(150deg)}78%{transform:translate3d(-35px,78vh,0) rotate(280deg);opacity:.65}to{transform:translate3d(20px,110vh,0) rotate(1turn);opacity:0}}.ah-next-balloon{opacity:0;pointer-events:none;animation:ah-next-balloon-appear .45s ease 2.35s both,ah-next-balloon-float 2.8s ease-in-out 2.8s infinite}.ah-next-balloon:after{opacity:0;transition:opacity .45s ease 2.35s}.ah-arrow-launcher.arrow-released~.ah-next-balloon{pointer-events:auto}.gallery-page{overflow:hidden}.gallery-frame{position:relative;width:min(1180px,96vw);margin:30px auto 18px;padding:18px 48px 24px;border:1px solid #e7b2bd66;border-radius:24px;background:linear-gradient(180deg,#fffaf9cc,#fff4f566);box-shadow:0 20px 55px #a45c6922}.gallery-marquee{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.gallery-track{display:flex;width:max-content;gap:26px;animation:gallery-scroll 34s linear infinite}.gallery-photo-card{width:250px;height:325px;flex:0 0 250px;padding:9px;border:2px solid #d9899b;border-radius:18px;background:linear-gradient(135deg,#fff,#f6cbd4 45%,#fff);box-shadow:0 12px 25px #a45c6940;transform:rotate(-1.5deg);transition:transform .4s ease}.gallery-photo-card:nth-child(3n){transform:rotate(1.5deg)}.gallery-photo-card img{display:block;width:100%;height:100%;object-fit:cover;border-radius:11px;border:1px solid #efb3bf}.gallery-photo-card:hover{transform:translateY(-10px) rotate(0) scale(1.03)}.gallery-side-border{position:absolute;top:14px;bottom:20px;width:10px;border:2px solid #d9899b;border-radius:20px;background:repeating-linear-gradient(0deg,#edafbd 0 12px,transparent 12px 22px);opacity:.7}.gallery-side-border-left{left:17px}.gallery-side-border-right{right:17px}@keyframes gallery-scroll{0%{transform:translateX(0)}to{transform:translateX(calc(-50% - 13px))}}@media(max-width:800px){.gallery-frame{width:94vw;padding:14px 28px 18px}.gallery-track{gap:16px;animation-duration:28s}.gallery-photo-card{width:190px;height:250px;flex-basis:190px;padding:7px}.gallery-side-border{width:7px}.gallery-side-border-left{left:9px}.gallery-side-border-right{right:9px}}.shared-next-balloon{opacity:1;pointer-events:auto;animation:ah-next-balloon-float 2.8s ease-in-out infinite}.letter-envelope .wish-card{top:24%;transform:translateX(-50%) rotate(-2deg);transition:top 2.7s cubic-bezier(.2,.75,.25,1) 1.3s,transform 2.7s cubic-bezier(.2,.75,.25,1) 1.3s,opacity .25s ease 1.3s,visibility 0s linear 1.3s}.letter-envelope.is-open .wish-card{top:-315px;transform:translateX(-50%) rotate(-1deg);transition-delay:1.3s}.letter-envelope:before{transition:transform 1.25s cubic-bezier(.2,.8,.25,1) .25s}.letter-envelope.is-open:before{transition-delay:.25s}.envelope-sparkles{position:absolute;z-index:7;inset:15% 12% 20%;pointer-events:none;opacity:0}.envelope-sparkles i{position:absolute;color:#d95775;font-style:normal;font-size:20px}.envelope-sparkles i:first-child{left:37%;top:35%}.envelope-sparkles i:nth-child(2){left:62%;top:48%;font-size:15px}.envelope-sparkles i:nth-child(3){left:49%;top:57%;font-size:17px}.letter-envelope.is-open .envelope-sparkles{animation:envelope-sparkle-rise 1.4s ease-out .95s both}.envelope-wrinkles{position:absolute;z-index:7;left:50%;top:38%;width:110px;height:55px;transform:translateX(-50%);opacity:0;pointer-events:none}.envelope-wrinkles i{position:absolute;width:34px;height:9px;border-top:2px solid #fff8;border-radius:50%;transform:rotate(25deg)}.envelope-wrinkles i:first-child{left:0;top:20px}.envelope-wrinkles i:nth-child(2){left:38px;top:7px;transform:rotate(-10deg)}.envelope-wrinkles i:nth-child(3){left:73px;top:24px;transform:rotate(35deg)}.letter-envelope.is-open .envelope-wrinkles{animation:envelope-wrinkle-pop .8s ease-out .65s both}@keyframes envelope-sparkle-rise{0%{opacity:0;transform:translateY(18px) scale(.5)}35%{opacity:1}to{opacity:0;transform:translateY(-50px) scale(1.2)}}@keyframes envelope-wrinkle-pop{0%{opacity:0;transform:translateX(-50%) scale(.4)}45%{opacity:1;transform:translateX(-50%) scale(1.15)}to{opacity:0;transform:translateX(-50%) scale(1.35)}}.wish-card{width:min(820px,78vw);min-height:320px;padding:38px 56px;display:grid;grid-template-columns:180px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;grid-column-gap:42px;column-gap:42px;align-items:center;text-align:left}.wish-card .card-kicker{grid-column:1/-1}.wish-card .portrait-wrap{grid-column:1;grid-row:2/5;width:150px;height:150px;margin:20px auto 0}.wish-card h1{grid-column:2;grid-row:2;margin:20px 0 12px;font-size:34px}.wish-card p{grid-column:2;grid-row:3;margin:0;max-width:570px}.wish-card .card-sign{grid-column:2;grid-row:4;margin-top:18px}.wish-card.long-note{width:min(920px,82vw);padding-top:42px;padding-bottom:42px}.wish-card.long-note p{font-size:14px;line-height:1.7}.wish-card.short-note p{max-width:500px}@media(max-width:800px){.wish-card,.wish-card.long-note{width:min(90vw,430px);min-height:0;padding:30px 28px 35px;display:block;text-align:center}.wish-card .portrait-wrap{width:98px;height:98px;margin:21px auto 15px}.wish-card h1{font-size:29px;margin:10px 0 18px}.wish-card p{font-size:15px;line-height:1.55}.wish-card .card-sign{margin-top:20px}}.wish-card{position:relative}.wish-card .card-kicker{font-size:12px;letter-spacing:2.5px}.wish-card .portrait-wrap,.wish-card .portrait-wrap img{border-radius:8px}.wish-cake{position:absolute;right:22px;top:12px;font-size:64px;line-height:1;filter:drop-shadow(0 7px 7px #b9767650);animation:wish-cake-float 2.6s ease-in-out infinite}@keyframes wish-cake-float{50%{transform:translateY(-5px) rotate(3deg)}}@media(max-width:800px){.wish-card .card-kicker{font-size:10px;letter-spacing:2px}.wish-cake{right:10px;top:9px;font-size:46px}}.letter-envelope{position:relative;z-index:3;width:min(560px,82vw);height:390px;perspective:1000px}.envelope-back,.envelope-front{position:absolute;inset:24% 0 0;border-radius:8px;background:linear-gradient(145deg,#f4b5a9,#dc827d);box-shadow:0 25px 60px #9d5c5d33}.envelope-back{z-index:1}.envelope-front{z-index:5;-webkit-clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#e99a91,#cb6c70)}.letter-envelope:before{content:"";position:absolute;left:0;right:0;top:24%;height:54%;-webkit-clip-path:polygon(0 0,50% 50%,100% 0,100% 12%,50% 62%,0 12%);clip-path:polygon(0 0,50% 50%,100% 0,100% 12%,50% 62%,0 12%);background:#f8c9bd;filter:drop-shadow(0 2px 1px #a8515940);transform-origin:top center;transition:transform .7s cubic-bezier(.16,1,.3,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.wish-card{position:absolute!important;z-index:3!important;left:50%;top:20px;transform:translateX(-50%) scale(.72) rotate(-2deg);transform-origin:center bottom;opacity:0;pointer-events:none;transition:top 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1),opacity .45s ease}.letter-envelope.is-open .wish-card{top:-255px;transform:translateX(-50%) scale(.82) rotate(-1deg);opacity:1}.envelope-seal{position:absolute;z-index:8;left:50%;top:49%;width:92px;height:92px;transform:translate(-50%,-50%);border:5px solid #f8c4bd;border-radius:50%;background:radial-gradient(circle at 35% 28%,#e96566,#a92535 72%);color:#fff5ec;padding:8px;cursor:pointer;box-shadow:0 8px 18px #812d393d,inset 0 0 0 2px #8f2030;font:700 8px/1.35 var(--font-sans);letter-spacing:.05em;transition:transform .35s ease,opacity .3s ease}.envelope-seal:hover{transform:translate(-50%,-50%) scale(1.08) rotate(-4deg)}.envelope-seal:after{content:"✦";position:absolute;inset:4px;border:1px solid #f9c3b966;border-radius:50%;font-size:13px;display:flex;align-items:flex-start;justify-content:center;padding-top:2px}.letter-envelope.is-open .envelope-seal{opacity:0;transform:translate(-50%,-50%) scale(1.5);pointer-events:none}.envelope-prompt{position:absolute;z-index:9;left:50%;top:76%;transform:translateX(-50%);color:#8c4c5a;font:22px Sacramento,cursive;white-space:nowrap;animation:envelope-prompt-float 2s ease-in-out infinite}.envelope-prompt b{color:#c75568}@keyframes envelope-prompt-float{50%{transform:translate(-50%,-7px)}}@media(max-width:800px){.letter-envelope{width:90vw;height:310px}.letter-envelope .wish-card{width:min(90vw,430px)!important;top:35px}.letter-envelope.is-open .wish-card{top:-215px;transform:translateX(-50%) scale(.7) rotate(-1deg)}.envelope-seal{width:76px;height:76px;font-size:7px}.envelope-prompt{top:80%;font-size:19px}.envelope-back,.envelope-front,.letter-envelope:before{top:28%}}.ah-next-balloon.popped{animation:ah-balloon-pop .52s cubic-bezier(.2,.8,.2,1) forwards!important;pointer-events:none}.ah-next-balloon.popped i{animation:ah-balloon-pop-shape .52s cubic-bezier(.2,.8,.2,1) forwards}.ah-next-balloon.popped span,.ah-next-balloon.popped:after{opacity:0;transition:opacity .12s ease}.ah-next-balloon.popped b{opacity:0}@keyframes ah-balloon-pop{0%{transform:scale(1);opacity:1}65%{transform:scale(1.22);opacity:1}to{transform:scale(.05);opacity:0}}@keyframes ah-balloon-pop-shape{0%{filter:brightness(1)}45%{filter:brightness(1.45)}to{filter:brightness(2);opacity:0}}.balloon-piece{position:absolute;z-index:6;left:50%;top:42%;width:9px;height:13px;border-radius:3px;background:#e95f87;opacity:0;pointer-events:none}.ah-next-balloon.popped .balloon-piece{opacity:1}.piece-one{--piece-x:-42px;--piece-y:58px;--piece-r:-55deg}.piece-two{--piece-x:35px;--piece-y:72px;--piece-r:48deg}.piece-three{--piece-x:-18px;--piece-y:92px;--piece-r:125deg}.piece-four{--piece-x:58px;--piece-y:42px;--piece-r:88deg}.ah-next-balloon.popped .piece-one{animation:ah-piece-one .7s ease-out forwards}.ah-next-balloon.popped .piece-two{animation:ah-piece-two .75s ease-out forwards}.ah-next-balloon.popped .piece-three{animation:ah-piece-three .82s ease-out forwards}.ah-next-balloon.popped .piece-four{animation:ah-piece-four .68s ease-out forwards}@keyframes ah-piece-one{to{transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-r));opacity:0}}@keyframes ah-piece-two{to{transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-r));opacity:0}}@keyframes ah-piece-three{to{transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-r));opacity:0}}@keyframes ah-piece-four{to{transform:translate(var(--piece-x),var(--piece-y)) rotate(var(--piece-r));opacity:0}}.letter-envelope .wish-card{animation:none!important;opacity:0!important;visibility:hidden;top:24%!important;transition:top 2.7s cubic-bezier(.2,.75,.25,1) 1.3s,transform 2.7s cubic-bezier(.2,.75,.25,1) 1.3s,opacity .25s ease 1.3s,visibility 0s linear 1.3s!important}.letter-envelope.is-open .wish-card{top:-315px!important;opacity:1!important;visibility:visible;z-index:7!important;transition-delay:1.3s!important}.letter-envelope:before{z-index:6;transition:transform 1.25s cubic-bezier(.2,.8,.25,1) .25s!important}.letter-envelope.is-open:before{transform:rotateX(180deg);z-index:2}.letter-envelope.is-open .envelope-front{z-index:5}@media(max-width:800px){.letter-envelope .wish-card{top:30px!important}.letter-envelope.is-open .wish-card{top:-215px!important;transform:translateX(-50%) rotate(-1deg)!important}}.letter-envelope .wish-card{top:-58px!important;transform:translateX(-50%) rotate(-2deg)!important}.letter-envelope.is-open .wish-card{top:-58px!important;transform:translateX(-50%) rotate(-1deg)!important}.letter-envelope.is-open .envelope-front,.letter-envelope.is-open:before{z-index:2!important}@media(max-width:800px){.letter-envelope .wish-card,.letter-envelope.is-open .wish-card{top:-28px!important;transform:translateX(-50%) rotate(-1deg)!important}}.letter-envelope .wish-card p{min-height:7em}.letter-envelope .card-sign{opacity:0;transition:opacity .6s ease}.letter-envelope .card-sign.show-sign{opacity:1}.letter-envelope.is-open .envelope-back,.letter-envelope.is-open .envelope-front,.letter-envelope.is-open:before{opacity:0;pointer-events:none;transition:opacity .7s ease 1s}.letter-envelope.is-open .wish-card{z-index:10!important}.experience>div[style*="position: fixed"]{display:none!important}.experience .progress-dots{display:flex!important;display:none!important}.wish-card .portrait-wrap{width:180px!important;height:180px!important;padding:7px;background:linear-gradient(135deg,#fff8d8,#ef9aab 35%,#d95775 65%,#ffe4a8);border:3px solid #f7c86f;border-radius:14px!important;box-shadow:0 0 0 4px #fff7ed,0 10px 20px #b45f7738;box-sizing:border-box}.wish-card .portrait-wrap img{border:3px solid #fff8ed!important;border-radius:7px!important}.photo-candles{position:absolute;z-index:5;left:50%;top:-25px;display:flex;gap:12px;transform:translateX(-50%)}.photo-candles i{position:relative;width:9px;height:27px;border-radius:3px 3px 2px 2px;background:repeating-linear-gradient(0deg,#e95f87 0 5px,#ffd27c 5px 9px);box-shadow:0 2px 3px #8d46534d}.photo-candles i:before{content:" ";position:absolute;left:2px;top:-11px;width:5px;height:10px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 50% 75%,#fff4a5 0 25%,#ffb23e 30% 65%,#f06c49 68%);animation:photo-candle-flame .8s ease-in-out infinite alternate}.photo-candles i:nth-child(2){height:32px;transform:translateY(-5px)}.photo-candles i:nth-child(2):before{animation-delay:.2s}.photo-candles i:nth-child(3):before{animation-delay:.4s}@keyframes photo-candle-flame{to{transform:scale(1.15) rotate(3deg);filter:brightness(1.2)}}@media(max-width:800px){.wish-card .portrait-wrap{width:125px!important;height:125px!important;padding:5px}.photo-candles{top:-20px;gap:8px}.photo-candles i{width:7px;height:21px}.photo-candles i:nth-child(2){height:25px}.photo-candles i:before{left:1px;width:5px}}.wish-card .portrait-wrap{width:215px!important;height:215px!important}.wish-card .portrait-wrap img{width:100%;height:100%}@media(max-width:800px){.wish-card .portrait-wrap{width:150px!important;height:150px!important}}@media(min-width:801px){.wish-card,.wish-card.long-note{width:min(1000px,88vw)!important;box-sizing:border-box;grid-template-columns:210px minmax(0,1fr);column-gap:58px}.wish-card .portrait-wrap{width:190px!important;height:270px!important;margin-left:0;margin-right:0}.wish-card .card-sign,.wish-card h1,.wish-card p{grid-column:2}.wish-card .card-kicker{grid-column:1/-1}}.ah-next-balloon span{top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;font-size:18px!important;line-height:1!important;text-align:center}.ah-next-balloon:after{white-space:nowrap}@media(max-width:600px){.ah-next-balloon span{font-size:16px!important}}.ah-next-balloon span{top:44%!important}.loading-screen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;min-height:100vh!important;z-index:9999!important;display:grid!important;place-items:center!important}.delete-modal-backdrop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:#4b293766;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.delete-modal{width:min(420px,92vw);padding:34px 28px;text-align:center;border:1px solid #fff;background:#fffafc;border-radius:24px;box-shadow:0 24px 70px #4b293744}.delete-modal-icon{color:#d95775;font-size:34px}.delete-modal h2{margin:8px 0;color:#5d3e49;font:700 24px var(--font-sans);letter-spacing:-.02em}.delete-modal p{color:#8e737a;font-size:14px}.delete-modal-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.delete-confirm-btn{border:0;border-radius:999px;padding:11px 18px;background:#d95775;color:#fff;font-weight:700}.admin-password-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#fff3f1,#f8e8e6 55%,#f4dfdf)}.admin-password-modal{width:min(430px,100%);padding:42px 34px;text-align:center;background:#fffaf8;border:1px solid #fff;border-radius:28px;box-shadow:0 24px 70px #8d536333}.admin-password-icon{color:#d95775;font-size:36px}.admin-password-modal h1{margin:8px 0;color:#5d3e49;font:700 28px var(--font-sans);letter-spacing:-.02em}.admin-password-modal>p:not(.eyebrow){margin:0 auto 24px;color:#8e737a;font-size:14px;line-height:1.6}.admin-password-modal form{display:grid;grid-gap:10px;gap:10px;text-align:left}.admin-password-modal label{color:#6d5058;font-size:13px;font-weight:700}.admin-password-modal input{width:100%;padding:13px 15px;border:1px solid #ead5d7;border-radius:12px;background:#fff;font:inherit;color:#5d3e49;outline-color:#d95775}.admin-password-modal .primary-btn{justify-content:center;margin-top:8px;width:100%;cursor:pointer}.admin-password-error{color:#c04f6a;text-align:center}.wish-card.short-note p{max-width:650px}@media(min-width:801px){.wish-card,.wish-card.long-note{width:min(1060px,90vw)!important}.wish-card p{width:100%;max-width:none!important}.letter-envelope.is-open .wish-card{top:-385px}}body,html{overflow-x:hidden;width:100%;-webkit-tap-highlight-color:transparent}.replay-btn{display:inline-flex;align-items:center;gap:8px;margin-top:20px;border:1px solid #d95775;background:linear-gradient(135deg,#e46884,#cb4366);color:#fff;border-radius:999px;padding:12px 24px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 25px rgba(203,67,102,.35);transition:transform .2s ease,box-shadow .2s ease;z-index:10}.replay-btn:active,.replay-btn:hover{transform:scale(1.05);box-shadow:0 14px 30px rgba(203,67,102,.45)}.replay-btn span{font-size:15px}.gallery-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px;z-index:10;width:100%;max-width:380px;padding:0 16px}@media (min-width:600px){.gallery-actions{flex-direction:row;justify-content:center;max-width:none}}.share-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d95775;background:linear-gradient(135deg,#ff6b8b,#d95775);color:#fff;border-radius:999px;padding:13px 26px;font-size:14px;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 28px rgba(217,87,117,.4);transition:transform .2s ease,box-shadow .2s ease;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 8px 24px rgba(217,87,117,.35)}50%{box-shadow:0 12px 32px rgba(217,87,117,.6)}}.share-link-btn:active,.share-link-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 34px rgba(217,87,117,.55)}.exp-share-modal-overlay{position:fixed;inset:0;background:rgba(43,20,30,.65);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease-out}.exp-share-modal-card{position:relative;background:#fff;width:100%;max-width:440px;border-radius:28px;padding:32px 24px 28px;text-align:center;box-shadow:0 24px 60px rgba(80,20,40,.3);border:1px solid rgba(255,230,236,.8);animation:scaleUp .3s cubic-bezier(.16,1,.3,1)}.exp-share-close-btn{position:absolute;top:16px;right:18px;background:#f7f1f3;border:none;width:32px;height:32px;border-radius:50%;font-size:18px;line-height:1;color:#7a5560;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.exp-share-close-btn:hover{background:#eedfe3;color:#3b2229}.exp-share-icon{font-size:42px;margin-bottom:12px;display:inline-block;animation:bounceSlow 2s ease-in-out infinite}@keyframes bounceSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.exp-share-modal-card h2{font-size:22px;font-weight:800;color:#3b2229;margin:0 0 8px}.exp-share-modal-card p{font-size:14px;color:#7a5560;line-height:1.5;margin:0 0 20px}.exp-share-url-box{display:flex;align-items:center;gap:8px;background:#faf4f6;border:1.5px solid #f0d5dd;border-radius:16px;padding:8px 10px;margin-bottom:16px}.exp-share-url-input{flex:1 1;background:transparent;font-weight:600;color:#3b2229;outline:none;overflow:hidden;text-overflow:ellipsis}.exp-share-copy-btn,.exp-share-url-input{border:none;font-size:13px;white-space:nowrap}.exp-share-copy-btn{padding:9px 16px;background:#d95775;color:#fff;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s}.exp-share-copy-btn:hover{background:#be4360}.exp-share-copy-btn.copied{background:#2e8b57}.exp-share-whatsapp-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;background:#25d366;color:#fff;border-radius:16px;text-decoration:none;font-size:14px;font-weight:700;box-shadow:0 8px 20px rgba(37,211,102,.28);transition:transform .2s ease,box-shadow .2s ease;margin-top:10px}.exp-share-whatsapp-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,211,102,.38)}.sound-toggle{position:fixed;top:max(18px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));z-index:99;display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:hsla(0,0%,100%,.84);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(217,87,117,.25);box-shadow:0 8px 24px rgba(180,50,80,.12),inset 0 1px 0 hsla(0,0%,100%,.95);color:#7a4655;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.03em;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none;transition:all .25s cubic-bezier(.16,1,.3,1)}.sound-toggle:hover{background:hsla(0,0%,100%,.96);border-color:rgba(217,87,117,.45);transform:translateY(-2px) scale(1.03);box-shadow:0 12px 28px rgba(180,50,80,.18),inset 0 1px 0 #fff}.sound-toggle:active{transform:translateY(0) scale(.97)}.sound-toggle.is-playing{color:#c93b62;border-color:rgba(201,59,98,.35)}.sound-toggle.is-muted{color:#8c7179;background:hsla(0,0%,100%,.68);border-color:rgba(140,113,121,.2);opacity:.88}.sound-toggle.is-muted:hover{opacity:1}.sound-bars{display:inline-flex;align-items:flex-end;gap:2.5px;height:14px;width:14px}.sound-bars i{display:block;width:2.5px;height:100%;background:#e8386a;border-radius:999px;animation:soundBarDance 1.2s ease-in-out infinite alternate}.sound-bars i:first-child{height:40%;animation-delay:0s}.sound-bars i:nth-child(2){height:100%;animation-delay:.25s}.sound-bars i:nth-child(3){height:60%;animation-delay:.5s}.sound-toggle.is-muted .sound-bars i{animation:none;height:3px;background:#a38890}@keyframes soundBarDance{0%{height:25%}50%{height:95%}to{height:35%}}@media (max-width:768px){.sound-toggle{top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));padding:6px 13px;font-size:11px;z-index:99}.ah-next-balloon,.shared-next-balloon{position:fixed!important;right:max(16px,env(safe-area-inset-right))!important;bottom:max(20px,env(safe-area-inset-bottom))!important;top:auto!important;left:auto!important;width:74px!important;height:104px!important;z-index:50!important;transform:none!important;opacity:1!important;pointer-events:auto!important}.ah-next-balloon span,.shared-next-balloon span{top:38%!important;font-size:13.5px!important}.ah-next-balloon:after,.shared-next-balloon:after{top:108px!important;font-size:10px!important;letter-spacing:.04em!important;text-shadow:0 1px 4px hsla(0,0%,100%,.9)}.arrow-heart-scene{min-height:100vh;min-height:100svh;height:100vh;height:100svh}.ah-intro{top:max(44px,7%);width:92%}.ah-intro .ah-script{font-size:clamp(20px,5.5vw,26px)}.ah-intro p{font-size:10.5px;letter-spacing:.12em;margin-top:4px;line-height:1.5}.ah-heart-target{top:48%;left:50%;transform:translate(-50%,-50%);width:130px;height:130px}.ah-heart{width:84px;height:76px}.ah-heart-glow{width:130px;height:130px}.ah-arrow-launcher{width:210px!important;height:170px!important;left:-2%!important;top:49%!important;transform:translateY(-50%)!important}.ah-instruction{bottom:12%;width:92%;gap:10px;font-size:8px}.ah-birthday-reveal{padding:16px}.ah-birthday-reveal h1{font-size:clamp(38px,12vw,58px);line-height:.88}.ah-birthday-reveal h1 span{font-size:.68em;margin-top:8px}.ah-birthday-reveal h2{font-size:clamp(32px,10vw,48px);margin:12px 0 0}.ah-birthday-reveal p{font-size:11px;margin:14px 0 0;max-width:280px}.ah-continue{bottom:8%;font-size:7.5px}.wish-scene{min-height:100vh;min-height:100svh;padding:24px 16px;overflow-y:auto}.letter-envelope,.wish-scene{display:flex;align-items:center;justify-content:center}.letter-envelope{width:min(92vw,380px);height:320px}.letter-envelope.is-open{height:auto;min-height:360px}.envelope-seal{width:78px;height:78px;font-size:7.5px}.envelope-prompt{top:82%;font-size:18px}.letter-envelope.is-open .wish-card{position:relative!important;top:0!important;left:auto!important;transform:none!important;width:min(92vw,390px)!important;max-height:82svh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 18px 26px!important;border-radius:16px!important;box-shadow:0 16px 50px rgba(175,115,117,.28)!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;opacity:1!important;visibility:visible!important;z-index:25!important;pointer-events:auto!important}.wish-card .card-kicker{font-size:10px!important;letter-spacing:2px!important;margin-bottom:4px!important}.wish-card .portrait-wrap{width:120px!important;height:120px!important;margin:12px auto 14px!important}.photo-candles{top:-22px;gap:8px}.wish-card h1{font-size:24px!important;line-height:1.15!important;margin:6px 0 10px!important}.wish-card p{font-size:14.5px!important;line-height:1.65!important;color:#624b53!important;margin:0 0 12px!important;max-width:100%!important;min-height:auto!important}.wish-card .card-sign{font-size:16.5px!important;margin-top:8px!important;color:#c4778b!important}.wish-cake{right:12px!important;top:10px!important;font-size:36px!important}.gallery-page{padding:28px 12px;min-height:100vh;min-height:100svh;justify-content:center}.gallery-page .script{font-size:22px}.gallery-page h1{font-size:clamp(28px,8vw,40px);line-height:1.1;margin:6px 0 12px}.gallery-frame{width:96vw;padding:12px 14px 14px;margin:12px auto;border-radius:18px}.gallery-track{gap:14px;animation-duration:24s}.gallery-photo-card{width:160px;height:220px;flex-basis:160px;padding:6px;border-radius:14px}.gallery-page>p{font-size:12.5px;margin-top:10px;padding:0 16px}.message-scene{padding:28px 20px;min-height:100vh;min-height:100svh;justify-content:center;text-align:center}.message-scene .script{font-size:24px}.message-scene h1{font-size:clamp(36px,10vw,52px);letter-spacing:-1px;margin:4px 0 0}.message-scene h2{font-size:clamp(22px,6vw,30px);line-height:1.25;margin:10px 0 16px}.message-scene p{font-size:13.5px;line-height:1.6;max-width:320px;margin:0 auto}.outline-btn{margin-top:22px;padding:12px 22px;font-size:11px}.tree-scene{flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px 16px;min-height:100vh;min-height:100svh}.tree-copy{margin:0 auto 12px;text-align:center;z-index:2}.tree-copy .script{font-size:24px}.tree-copy h1{font-size:clamp(30px,8.5vw,44px);line-height:1.1;margin:6px 0 8px}.tree-copy p{font-size:13.5px;margin:0}.blossom-tree{width:min(280px,80vw);height:310px;transform:scale(.85);transform-origin:top center;margin:0 auto}.admin-content{padding:24px 16px;width:100%}.admin-header{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:24px}.admin-header h1{font-size:32px}.admin-grid{grid-template-columns:1fr;gap:20px}.form-card,.list-card{padding:20px 16px;border-radius:12px}.field-row{grid-template-columns:1fr;gap:0}input,textarea{font-size:16px}.form-actions{flex-direction:column-reverse;gap:12px;align-items:stretch}.primary-btn{width:100%;text-align:center;justify-content:center}.admin-footer{flex-direction:column;gap:8px;text-align:center}}.sidebar .side-link{background:none;border:none;width:100%;text-align:left;display:flex;align-items:center;cursor:pointer;font-family:inherit;font-size:14px}.sidebar .side-link:hover{background:#3e2d35;color:#fff}.admin-tabs-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:28px;border-bottom:1.5px solid #eee2e5;-webkit-overflow-scrolling:touch}.admin-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid #ebdbe0;background:#fff;color:#6a4953;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .2s ease}.admin-tab-btn:hover{border-color:#d95775;color:#d95775}.admin-tab-btn.active{background:#d95775;color:#fff;border-color:#d95775;box-shadow:0 4px 14px rgba(217,87,117,.3)}.admin-tab-btn.active .admin-tab-count{background:hsla(0,0%,100%,.25);color:#fff}.admin-tab-count{font-size:11px;padding:2px 7px;border-radius:999px;background:#ffeef2;color:#d95775}.admin-tab-badge{font-size:10px;padding:2px 6px;border-radius:999px;background:#fdf0d5;color:#b45309}.admin-upcoming-card{background:#fff;border:1px solid #f0e5e3;border-radius:20px;padding:44px 32px;text-align:center;box-shadow:0 10px 30px hsla(13,21%,57%,.05)}.admin-upcoming-icon{font-size:48px;margin-bottom:12px}.admin-upcoming-card h2{font-family:var(--font-sans);font-weight:700;letter-spacing:-.015em;font-size:24px;color:#3b2229;margin:0 0 8px}.admin-upcoming-card p{font-size:14px;color:#7a5560;max-width:520px;margin:0 auto 24px;line-height:1.55}.admin-upcoming-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;max-width:720px;margin:0 auto;text-align:left}.admin-upcoming-feature-item{background:#fffafb;border:1px solid #f7e4e8;border-radius:12px;padding:14px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:#4a212e}@font-face{font-family:__Fredoka_158fa5;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3e5302f118d6bde7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:__Fredoka_158fa5;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bb36247b0b027bd1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Fredoka_158fa5;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bca7023bf625e650-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fredoka_Fallback_158fa5;src:local("Arial");ascent-override:95.64%;descent-override:23.17%;line-gap-override:0.00%;size-adjust:101.84%}.__className_158fa5{font-family:__Fredoka_158fa5,__Fredoka_Fallback_158fa5;font-style:normal}.__variable_158fa5{--font-fredoka:"__Fredoka_158fa5","__Fredoka_Fallback_158fa5"}@font-face{font-family:__Caveat_97f5e1;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/e44cdba7d0878bc5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Caveat_97f5e1;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/07fccecd6728972a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Caveat_97f5e1;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/486fce9f36bc8f45-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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_97f5e1;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_next/static/media/46bdd75a3ff56824-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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_97f5e1;src:local("Arial");ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.00%;size-adjust:76.94%}.__className_97f5e1{font-family:__Caveat_97f5e1,__Caveat_Fallback_97f5e1;font-style:normal}.__variable_97f5e1{--font-caveat:"__Caveat_97f5e1","__Caveat_Fallback_97f5e1"}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}.__variable_f367f3{--font-inter:"__Inter_f367f3","__Inter_Fallback_f367f3"}