@font-face{font-family:SiteFont;src:url(/assets/fonts/Li%20Hasan%20Protilipi%20Unicode.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U980-U9FF}@font-face{font-family:SiteFont;src:url(/assets/fonts/Delius-Regular.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-main:"SiteFont", system-ui, sans-serif;--bg-deep:#04080a;--bg-dark:#070f0b;--bg-card:#0b1912;--bg-card-alt:#0f2018;--em-900:#003d2a;--em-700:#064;--em-500:#00b386;--em-400:#00d4a0;--em-300:#33e6b8;--em-glow:#00b38640;--em-glow-bright:#00d4a066;--rose-500:#ff6b9d;--rose-300:#ffb3cc;--rose-glow:#ff6b9d40;--gold:#f5c842;--glass-bg:#070f0bd1;--glass-border:#00b38626;--glass-border-hi:#00b38673;--text-100:#f0faf5;--text-200:#c5ddd4;--text-500:#7aaa95;--text-700:#a0b1a9;--bubble-sent-from:#00b386;--bubble-sent-to:#009e74;--bubble-recv-bg:#0d1a12f2;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--transition:.3s cubic-bezier(.4, 0, .2, 1);--spring:.5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;overflow:hidden}body{background:var(--bg-deep);font-family:var(--font-main);color:var(--text-100);-webkit-user-select:none;user-select:none}#phaser-container canvas{width:100vw!important;height:100vh!important}#phaser-container{z-index:2;pointer-events:none;position:fixed;inset:0}#phaser-container canvas{display:block;pointer-events:none!important}#app{z-index:5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.screen{transition:opacity var(--transition);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.screen[hidden]{display:none}@keyframes ringPulse{0%,to{opacity:.4;transform:translate(-50%,-50%)scale(1)}50%{opacity:.1;transform:translate(-50%,-50%)scale(1.05)}}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.08)}70%{transform:scale(1)}}@keyframes btnGlow{0%,to{box-shadow:0 0 30px var(--em-glow), 0 4px 24px #0006}50%{box-shadow:0 0 50px var(--em-glow-bright), 0 4px 32px #00000080}}@keyframes onlinePulse{0%,to{box-shadow:0 0 #00d4a099}50%{box-shadow:0 0 0 5px #00d4a000}}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.3}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes restoredPop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes spinFloat{0%{opacity:0;transform:rotate(-20deg)scale(.5)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes dismissPulse{0%,to{opacity:.35}50%{opacity:.7}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-40px)rotate(0)}8%{opacity:1}to{opacity:0;transform:translate(-36px,120dvh)rotate(540deg)}}.lock-anim{justify-content:center;align-items:center;width:100px;height:120px;display:flex;position:relative}.lock-svg{width:80px;height:100px;color:var(--em-400);filter:drop-shadow(0 0 18px #00d4a08c);z-index:1;transition:filter .3s;position:relative}@keyframes lockJiggle{0%,to{transform:rotate(0)}15%{transform:rotate(-6deg)}30%{transform:rotate(6deg)}45%{transform:rotate(-4deg)}60%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}@keyframes lockJiggleFast{0%,to{transform:rotate(0)}10%{transform:rotate(-8deg)}20%{transform:rotate(8deg)}30%{transform:rotate(-6deg)}40%{transform:rotate(6deg)}50%{transform:rotate(-4deg)}60%{transform:rotate(4deg)}70%{transform:rotate(-2deg)}}@keyframes lockRing{0%{opacity:.8;transform:translate(-50%,-50%)scale(.3)}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}@keyframes lockBurst{0%{opacity:1}40%{opacity:0;transform:translate(-50%,-50%)scale(1.06)}to{opacity:0;transform:translate(-50%,-50%)scale(1.06)}}@keyframes bdMsgJiggle{0%{transform:scale(1)rotate(0)}20%{transform:scale(1.08)rotate(-3deg)}40%{transform:scale(1.05)rotate(3deg)}60%{transform:scale(1.03)rotate(-2deg)}80%{transform:scale(1.01)rotate(1deg)}to{transform:scale(1)rotate(0)}}@keyframes bdMsgWave{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.03)rotate(-1.5deg)}75%{transform:scale(1.03)rotate(1.5deg)}}@keyframes cardGlowPulse{0%,to{box-shadow:0 0 60px var(--em-glow-bright), 0 16px 48px #0009}50%{box-shadow:0 0 90px #00d4a080,0 16px 48px #0009}}@keyframes lockBounce{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (width<=640px){.final-screen{padding:18px 12px 28px}.final-content{gap:14px;max-width:100%;min-height:calc(100dvh - 36px)}.final-video-card{border-radius:26px;max-width:88%;margin-top:12px}.final-video-card:after{border-radius:18px;inset:10px}.final-video{border-radius:26px;min-height:clamp(220px,56vw,360px);max-height:44vh}.final-video-shell{aspect-ratio:16/9;min-height:unset;max-height:unset;border-radius:14px;padding-bottom:48px}.final-video-embed{border-radius:0}.birthday-message{padding-inline:10px}.birthday-message-text{font-size:clamp(16px,6.2vw,22px);line-height:1.45}}@keyframes heartRowFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmerPass{0%{left:-60%}to{left:160%}}@supports (padding:max(0px)){.chat-header{padding-top:max(14px, env(safe-area-inset-top))}.chat-footer{padding-bottom:max(12px, env(safe-area-inset-bottom))}}@keyframes countdownPulse{0%,to{opacity:1}50%{opacity:.75}}@keyframes aiChatBtnGlow{0%,to{box-shadow:0 0 24px var(--rose-glow), 0 4px 20px #00000080}50%{box-shadow:0 0 44px #ff6b9d8c,0 4px 20px #00000080}}@keyframes aiChatGlowOut{0%{opacity:1;box-shadow:0 0 #ff6b9db3}70%{opacity:1;box-shadow:0 0 0 22px #ff6b9d00}to{opacity:0;box-shadow:0 0 0 22px #ff6b9d00}}@keyframes aiHintFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes aiHintFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@media (width<=440px){.ai-chat-panel{border-radius:20px 20px 0 0;width:100vw;left:0;right:0}.ai-chat-panel.open{height:min(680px,72dvh,88vh)}}@keyframes authFadeOut{to{opacity:0;transform:scale(1.04)}}@keyframes authLetterWave{0%,to{color:#ffffffd9;transform:translateY(0)}50%{color:#7ecfad;transform:translateY(-6px)}}@keyframes authHeartbeat{0%,to{transform:scale(1)}40%{transform:scale(1.22)}55%{transform:scale(.95)}70%{transform:scale(1.12)}}@keyframes authFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes authShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000 0%,#00b3860f 40%,#00d4a01f 50%,#00b3860f 60%,#0000 100%);width:60%;height:100%;animation:2.5s ease-in-out infinite shimmerPass;position:absolute;top:0;left:-100%}.final-screen::-webkit-scrollbar{width:3px}.final-screen::-webkit-scrollbar-track{background:0 0}.final-screen::-webkit-scrollbar-thumb{background:#00b38633;border-radius:2px}@supports (padding:max(0px)){.chat-header{padding-top:max(14px, env(safe-area-inset-top))}.chat-footer{padding-bottom:max(12px, env(safe-area-inset-bottom))}}#auth-gate{z-index:9999;background:radial-gradient(at 30% 20%,#2d6b5259 0%,#0000 55%),radial-gradient(at 70% 80%,#c0406b40 0%,#0000 55%),#06100c;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0;overflow:clip}#auth-gate.auth-fade-out{animation:.6s forwards authFadeOut}.auth-confetti-canvas{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.auth-content{z-index:1;width:100%;height:100%;padding:0 24px max(32px, env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:relative}.auth-greeting{text-align:center;box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;width:100%;padding:0 16px;display:flex;overflow:visible}.auth-happy{color:#ffffffd9;letter-spacing:.06em;gap:.22em;font-size:clamp(18px,5vw,34px);font-weight:700;animation:.9s both authFadeUp;display:flex}.auth-happy-letter{animation:3s ease-in-out infinite authLetterWave;display:inline-block}.auth-name-wrap{filter:drop-shadow(0 0 28px #7ecfad47);justify-content:center;width:100%;animation:.9s .15s both authFadeUp;display:flex}.auth-name{font-size:clamp(32px,10vw,72px);font-weight:800;font-family:var(--font-main);background:linear-gradient(135deg,#7ecfad 0%,#fff 45%,#f9a8c9 100%);-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;background-clip:text;padding:.2em;line-height:1.4}.auth-cake{filter:drop-shadow(0 8px 24px #0006);width:clamp(100px,28vw,160px);height:auto;animation:.9s .25s both authFadeUp}.auth-hearts{gap:12px;font-size:24px;animation:.9s .3s both authFadeUp;display:flex}.auth-heart{animation:2s ease-in-out infinite authHeartbeat;display:inline-block}.auth-heart:nth-child(2){font-size:18px;animation-delay:.4s}.auth-heart:nth-child(3){animation-delay:.8s}.auth-footer{width:100%;max-width:380px;animation:.9s .45s both authFadeUp}.auth-prompt{color:#ffffff73;text-align:center;letter-spacing:.03em;margin:0 0 14px;font-size:13px}.auth-form{flex-direction:column;gap:8px;display:flex}.auth-input-row{align-items:center;gap:10px;display:flex}.auth-input{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;text-align:center;letter-spacing:4px;background:#ffffff0f;border:1.5px solid #7ecfad33;border-radius:50px;outline:none;flex:1;min-width:0;padding:15px 20px;font-family:inherit;font-size:18px;transition:border-color .2s,box-shadow .2s}.auth-input::placeholder{letter-spacing:6px;color:#ffffff40;font-size:14px}.auth-input:focus{border-color:#7ecfad8c;box-shadow:0 0 0 3px #7ecfad1a}.auth-input.auth-shake{border-color:#f87171;animation:.4s authShake}.auth-btn{background:linear-gradient(135deg, var(--em-600,#2d6b52), var(--em-400,#7ecfad));color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s,opacity .2s;display:flex;box-shadow:0 4px 20px #7ecfad4d}.auth-btn svg{stroke:#fff;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:20px;height:20px}.auth-btn:hover:not(:disabled){transform:scale(1.08)}.auth-btn:active:not(:disabled){transform:scale(.94)}.auth-btn:disabled{opacity:.45;cursor:default}.auth-error{color:#f87171;text-align:center;min-height:18px;margin:0;font-size:13px}.ai-chat-portal{z-index:2000;pointer-events:none;position:fixed;inset:0}.ai-chat-btn{z-index:2;background:var(--bg-dark);cursor:grab;width:60px;height:60px;box-shadow:0 0 24px var(--rose-glow), 0 4px 20px #00000080;transition:box-shadow var(--transition), border-color var(--transition);-webkit-tap-highlight-color:transparent;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;border:3px solid #ff6b9db3;border-radius:50%;padding:0;animation:3s ease-in-out infinite aiChatBtnGlow;position:fixed;inset:auto 16px 20px auto;overflow:hidden}.ai-chat-btn:active{cursor:grabbing}.ai-chat-btn.panel-open{border-color:#ff6b9d;animation:none;box-shadow:0 0 32px #ff6b9d99,0 4px 20px #00000080}.ai-chat-btn:before,.ai-chat-btn:after{content:"";pointer-events:none;border-radius:50%;animation:2.2s ease-out infinite aiChatGlowOut;position:absolute;inset:0;box-shadow:0 0 #ff6b9db3}.ai-chat-btn:after{animation-delay:1.1s}.ai-chat-btn.panel-open:before,.ai-chat-btn.panel-open:after{opacity:0;animation:none}.ai-chat-hint{z-index:2;pointer-events:none;flex-direction:column;align-items:center;gap:2px;animation:2.2s ease-in-out infinite aiHintFloat;display:flex;position:fixed;bottom:88px;right:4px}.ai-chat-hint-text{font-family:var(--font-main);color:#fff;white-space:nowrap;background:#ff6b9dd9;border-radius:20px;padding:5px 10px;font-size:13px;font-weight:700;box-shadow:0 2px 12px #ff6b9d66}.ai-chat-hint-arrow{color:#ff6b9de6;font-size:16px;line-height:1}.ai-chat-hint-hide{animation:.5s forwards aiHintFadeOut!important}.ai-chat-btn-avatar{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;display:block}.ai-chat-btn-initials{color:#fff;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;font-size:20px;font-weight:700;display:flex}.ai-chat-panel{z-index:1;background:radial-gradient(ellipse 100% 40% at 50% 0%, #ff6b9d0f 0%, transparent 60%), var(--bg-dark);pointer-events:auto;border:1px solid #ff6b9d26;border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;width:min(420px,100vw);height:0;transition:height .4s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:0;left:auto;right:0;overflow:hidden;box-shadow:0 -8px 40px #00000080,0 0 0 1px #ff6b9d14}.ai-chat-panel.open{height:min(780px,72dvh,90vh)}@media (width<=440px){.ai-chat-panel{border-radius:20px 20px 0 0;width:100vw;left:0;right:0}.ai-chat-panel.open{height:min(680px,72dvh,88vh)}}.ai-chat-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070f0be6;border-bottom:1px solid #ff6b9d1a;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px 12px;display:flex}.ai-chat-avatar{background:linear-gradient(135deg, #e0437a, var(--rose-500));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 2px #ff6b9d40}.avatar-photo{object-fit:cover;z-index:1;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.avatar-initials{z-index:0;position:relative}.ai-chat-info{flex:1;min-width:0}.ai-chat-name{color:var(--text-100);font-size:15px;font-weight:600}.ai-chat-status{color:var(--rose-300);opacity:.8;margin-top:1px;font-size:11px}.ai-chat-close{cursor:pointer;width:32px;height:32px;transition:background var(--transition);background:#ffffff0f;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-chat-close:hover{background:#ffffff1f}.ai-chat-close svg{width:14px;height:14px;stroke:var(--text-500);stroke-width:2px;fill:none;stroke-linecap:round}.ai-chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:6px;padding:12px 12px 8px;display:flex;overflow-y:auto}.ai-chat-messages::-webkit-scrollbar{width:3px}.ai-chat-messages::-webkit-scrollbar-thumb{background:#ff6b9d26;border-radius:2px}.ai-bubble{max-width:82%;animation:bubbleIn .35s var(--spring);display:flex}.ai-bubble-sent{align-self:flex-end}.ai-bubble-received{align-self:flex-start}.ai-bubble-inner{border-radius:var(--radius-md);word-break:break-word;padding:9px 13px}.ai-bubble-sent .ai-bubble-inner{background:linear-gradient(135deg, var(--rose-500), #e0437a);border-bottom-right-radius:4px;box-shadow:0 2px 10px #ff6b9d4d}.ai-bubble-received .ai-bubble-inner{background:var(--bg-card);border:1px solid #ff6b9d1f;border-bottom-left-radius:4px}.ai-bubble-text{color:var(--text-100);font-size:14px;line-height:1.55}.ai-bubble-received .ai-bubble-text{color:var(--text-200)}.ai-bubble-time{color:#ffffff73;text-align:right;margin-top:3px;font-size:10px}.ai-bubble-received .ai-bubble-time{color:var(--text-700);text-align:left}.ai-typing .ai-bubble-inner{align-items:center;gap:5px;padding:12px 14px;display:flex}.ai-error-msg{color:var(--rose-300);text-align:center;border-radius:var(--radius-sm);background:#ff6b9d0f;border:1px solid #ff6b9d26;margin:4px 0;padding:6px 12px;font-size:12px;animation:.3s fadeIn}.ai-chat-footer{padding:10px 12px;padding-bottom:max(10px, env(safe-area-inset-bottom));background:#070f0be6;border-top:1px solid #ff6b9d14;flex-shrink:0;align-items:center;gap:10px;display:flex}.ai-chat-input{background:var(--bg-card);color:var(--text-100);transition:all var(--transition);-webkit-appearance:none;border:1px solid #ff6b9d26;border-radius:50px;outline:none;flex:1;padding:11px 15px;font-size:14px}.ai-chat-input::placeholder{color:var(--text-700)}.ai-chat-input:focus{border-color:#ff6b9d66;box-shadow:0 0 0 3px #ff6b9d1a}.ai-chat-input:disabled{opacity:.5;cursor:not-allowed}.ai-chat-send{background:linear-gradient(135deg, var(--rose-500), #e0437a);cursor:pointer;width:42px;height:42px;transition:all var(--transition);box-shadow:0 0 12px var(--rose-glow);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-chat-send:hover{transform:scale(1.08);box-shadow:0 0 20px #ff6b9d80}.ai-chat-send:active{transform:scale(.95)}.ai-chat-send:disabled{opacity:.35;cursor:not-allowed;transform:none}.ai-chat-send svg{fill:#fff;width:16px;height:16px}.intro-screen{background:0 0;overflow:visible}.intro-bg-rings{pointer-events:none;position:absolute;inset:0}.intro-ring{border:1px solid #00b38614;border-radius:50%;animation:8s ease-in-out infinite ringPulse;position:absolute}.intro-ring:first-child{width:300px;height:300px;animation-delay:0s;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-ring:nth-child(2){width:500px;height:500px;animation-delay:1.5s;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-ring:nth-child(3){width:700px;height:700px;animation-delay:3s;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-ring:nth-child(4){width:900px;height:900px;animation-delay:4.5s;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-content{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px 24px;animation:1.2s forwards contentFadeIn;display:flex;position:relative}.intro-icon{filter:drop-shadow(0 0 20px #ff6b9d80);margin-bottom:8px;font-size:64px;animation:2s ease-in-out infinite heartbeat}.intro-label{letter-spacing:.5px;font-size:16px;font-weight:600;font-family:var(--font-main);color:var(--em-400);opacity:.7}.intro-title{font-size:clamp(36px,8vw,56px);font-weight:700;font-family:var(--font-main);letter-spacing:0;background:linear-gradient(135deg, var(--text-100) 0%, var(--em-300) 60%, var(--em-400) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;padding-top:.14em;padding-bottom:.18em;line-height:1.38;display:inline-block;overflow:visible}.intro-tagline{color:var(--text-500);font-size:clamp(14px,3vw,18px);font-family:var(--font-main);letter-spacing:0;font-weight:400}.intro-for{color:var(--text-200);font-size:clamp(20px,4.5vw,28px);font-weight:600}.intro-for .bengali-name{color:var(--rose-500);font-family:var(--font-main);filter:drop-shadow(0 0 10px var(--rose-glow));font-weight:700}.intro-divider{background:linear-gradient(90deg, transparent, var(--em-500), transparent);border-radius:2px;width:48px;height:2px;margin:4px 0}.intro-desc{color:var(--text-700);font-size:14px;font-family:var(--font-main);max-width:280px;line-height:1.7}.intro-stats{gap:24px;margin:8px 0;display:flex}.intro-stat{text-align:center}.intro-stat-num{color:var(--em-400);font-size:22px;font-weight:700}.intro-stat-label{color:var(--text-700);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-family:var(--font-main)}.intro-start-btn{background:linear-gradient(135deg, var(--em-500), var(--em-400));color:#fff;font-size:15px;font-weight:600;font-family:var(--font-main);cursor:pointer;letter-spacing:.3px;box-shadow:0 0 30px var(--em-glow), 0 4px 24px #0006;transition:all var(--transition);border:none;border-radius:50px;margin-top:8px;padding:16px 36px;animation:3s ease-in-out infinite btnGlow;position:relative;overflow:hidden}.intro-start-btn:before{content:"";border-radius:inherit;background:linear-gradient(135deg,#fff3,#0000);position:absolute;inset:0}.intro-start-btn:hover{box-shadow:0 0 50px var(--em-glow-bright), 0 8px 32px #00000080;transform:translateY(-2px)scale(1.03)}.intro-start-btn:active{transform:translateY(0)scale(.98)}.intro-note{color:var(--text-700);margin-top:4px;font-size:12px}.chat-screen{background:0 0;flex-direction:column;align-self:center;align-items:stretch;width:100%;max-width:520px;height:100%;display:flex;position:relative}.chat-header{z-index:20;box-sizing:border-box;width:100%;padding:14px 16px;padding-top:max(14px, env(safe-area-inset-top));background:var(--glass-bg);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);flex-shrink:0;align-items:center;gap:12px;display:flex;position:relative}.chat-header-avatar{background:linear-gradient(135deg, var(--em-700), var(--em-500));color:#fff;width:42px;height:42px;font-size:14px;font-weight:700;font-family:var(--font-main);box-shadow:0 0 0 2px var(--em-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.chat-header-avatar:after{content:"";background:var(--em-400);border:2px solid var(--bg-deep);border-radius:50%;width:10px;height:10px;animation:2s ease-in-out infinite onlinePulse;position:absolute;bottom:1px;right:1px}.chat-header-info{flex:1;min-width:0}.chat-header-name{color:var(--text-100);font-size:16px;font-weight:600;font-family:var(--font-main);align-items:center;gap:6px;display:flex}.chat-header-status{color:var(--em-400);align-items:center;gap:4px;margin-top:1px;font-size:12px;display:flex}.status-dot{background:var(--em-400);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite statusBlink}.chat-header-progress{text-align:right;flex-shrink:0}.header-chapter-num{color:var(--em-500);letter-spacing:.5px;font-size:11px;font-weight:600}.header-progress-bar{background:#00b38626;border-radius:2px;width:60px;height:3px;margin-top:4px;overflow:hidden}.header-progress-fill{background:linear-gradient(90deg, var(--em-500), var(--em-400));height:100%;box-shadow:0 0 6px var(--em-glow);border-radius:2px;transition:width .5s}.messages-container{box-sizing:border-box;scroll-behavior:smooth;background:#040a0773;flex:1;width:100%;min-height:0;padding:16px 6px;overflow:hidden auto}.messages-container::-webkit-scrollbar{width:3px}.messages-container::-webkit-scrollbar-track{background:0 0}.messages-container::-webkit-scrollbar-thumb{background:#00b38633;border-radius:2px}.messages{flex-direction:column;justify-content:flex-end;gap:4px;min-height:100%;display:flex}.msg-system{text-align:center;margin:10px 0;animation:.4s fadeIn}.msg-system span{color:var(--em-500);letter-spacing:.3px;background:#00b38614;border:1px solid #00b3861f;border-radius:20px;padding:5px 14px;font-size:11px;display:inline-block}.msg-received,.msg-sent{animation:bubbleIn .4s var(--spring);margin:2px 0;display:flex}.msg-received{justify-content:flex-start}.msg-sent{justify-content:flex-end}.bubble{border-radius:var(--radius-md);word-break:break-word;max-width:88%;padding:10px 14px;position:relative}.msg-received .bubble{background:var(--bubble-recv-bg);border:1px solid var(--glass-border);border-bottom-left-radius:4px;box-shadow:0 2px 12px #0000004d}.msg-sent .bubble{background:linear-gradient(135deg, var(--bubble-sent-from), var(--bubble-sent-to));border-bottom-right-radius:4px;box-shadow:0 2px 12px #00b3864d}.bubble-text{color:var(--text-100);font-size:14px;line-height:1.55}.msg-received .bubble-text{color:var(--text-200)}.bubble-time{color:#fff6;text-align:right;justify-content:flex-end;align-items:center;gap:3px;margin-top:4px;font-size:10px;display:flex}.msg-received .bubble-time{color:var(--text-700);justify-content:flex-start}.typing-indicator{justify-content:flex-start;margin:4px 0;animation:.3s fadeIn;display:flex}.typing-bubble{background:var(--bubble-recv-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);border-bottom-left-radius:4px;align-items:center;gap:5px;padding:12px 16px;display:flex}.typing-dot{background:var(--em-500);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite typingBounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.msg-memory{animation:memoryCardIn .6s var(--spring);justify-content:flex-start;margin:8px 0;display:flex}@keyframes memoryCardIn{0%{opacity:0;transform:translateY(20px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.memory-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:min(85%,320px);position:relative;overflow:hidden;box-shadow:0 8px 32px #00000080,0 0 0 1px #00b3860f}.memory-card.unlocking{animation:.8s forwards cardUnlock}@keyframes cardUnlock{0%{box-shadow:0 8px 32px #00000080}30%{box-shadow:0 0 60px var(--em-glow-bright), 0 8px 32px #00000080}to{box-shadow:0 8px 32px #00000080,0 0 0 1px #00b38633}}.memory-img-wrapper{background:var(--bg-card-alt);width:100%;position:relative;overflow:hidden}.memory-img{object-fit:contain;width:100%;height:auto;max-height:70vh;animation:1s forwards imgReveal;display:block}@keyframes imgReveal{0%{filter:blur(16px);opacity:.6;transform:scale(1.08)}to{filter:blur();opacity:1;transform:scale(1)}}.memory-img-placeholder{background:linear-gradient(135deg, var(--bg-card-alt), var(--bg-card));flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:160px;display:flex;position:relative}.memory-img-placeholder .placeholder-icon{opacity:.5;font-size:40px}.memory-img-placeholder .placeholder-text{color:var(--text-700);text-align:center;font-size:11px}.memory-img-glow{background:radial-gradient(circle at 50% 50%, var(--em-glow) 0%, transparent 70%);pointer-events:none;opacity:0;animation:1.5s forwards glowBurst;position:absolute;inset:0}@keyframes glowBurst{0%{opacity:0}30%{opacity:1}to{opacity:0}}.memory-chapter-badge{color:var(--em-400);letter-spacing:.5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border:1px solid #00b3864d;border-radius:20px;padding:3px 10px;font-size:10px;position:absolute;top:10px;right:10px}.memory-info{padding:12px 14px 0}.memory-title{color:var(--text-100);font-size:14px;font-weight:600}.memory-reply{color:var(--text-200);margin-bottom:6px;font-size:13px;line-height:1.5}.memory-hour-label{color:var(--em-500);margin-top:2px;font-size:11px}.audio-player{border-top:1px solid #00b38614;align-items:center;gap:10px;margin-top:10px;padding:12px 14px;display:flex}.audio-play-btn{background:linear-gradient(135deg, var(--em-500), var(--em-400));cursor:pointer;width:36px;height:36px;transition:all var(--transition);box-shadow:0 0 12px var(--em-glow);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.audio-play-btn:before{content:"";border-radius:inherit;opacity:0;transition:opacity var(--transition);background:#ffffff1a;position:absolute;inset:0}.audio-play-btn:hover:before{opacity:1}.audio-play-btn:hover{box-shadow:0 0 20px var(--em-glow-bright);transform:scale(1.08)}.audio-play-btn:active{transform:scale(.95)}.audio-play-btn svg{fill:#fff;width:14px;height:14px;margin-left:2px}.audio-play-btn.playing svg{margin-left:0}.audio-waveform{flex:1;align-items:center;gap:2px;height:24px;display:flex;overflow:hidden}.wave-bar{background:var(--em-700);border-radius:2px;flex-shrink:0;width:3px;transition:background .2s,height .1s}.wave-bar.active{background:linear-gradient(180deg, var(--em-400), var(--em-500))}.wave-bar.played{background:var(--em-500)}.audio-player.playing .wave-bar.active{animation:.6s ease-in-out infinite alternate waveAnim}@keyframes waveAnim{0%{opacity:.6}to{opacity:1}}.audio-duration{color:var(--text-700);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:28px;font-size:11px}.audio-timestamp{color:var(--text-700);flex-shrink:0;align-self:flex-end;margin-left:auto;font-size:10px}.audio-unavailable-text{color:var(--text-700);font-size:11px;font-style:italic}.suggestion-tray{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:10px 12px 2px;display:flex;overflow:auto hidden}.suggestion-tray:empty{display:none}.suggestion-tray::-webkit-scrollbar{display:none}.suggestion-chip{background:var(--bg-card-alt);border:1px solid var(--glass-border);color:var(--text-200);font-size:13px;font-family:var(--font-main);cursor:pointer;white-space:nowrap;transition:all var(--transition);-webkit-tap-highlight-color:transparent;border-radius:50px;flex-shrink:0;padding:7px 16px}.suggestion-chip:hover{background:var(--em-900);border-color:var(--em-500);color:var(--em-300);box-shadow:0 0 12px var(--em-glow)}.suggestion-chip:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.chat-footer{padding:8px 16px;padding-bottom:max(14px, env(safe-area-inset-bottom));background:var(--glass-bg);border-top:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);flex-shrink:0;overflow:visible}.suggestion-tray{flex-wrap:wrap;gap:8px;padding:6px 0 12px;display:flex;overflow:visible}.suggestion-chip{color:var(--text-200);font-size:14px;font-family:var(--font-main);white-space:nowrap;cursor:pointer;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition);-webkit-tap-highlight-color:transparent;background:linear-gradient(#0a1812fa,#070f0bf5);border:1px solid #00b38638;border-radius:999px;padding:10px 18px;line-height:1.3;box-shadow:0 4px 12px #0003}.suggestion-chip:hover{border-color:#00d4a073;transform:translateY(-1px);box-shadow:0 8px 20px #00000042,0 0 0 1px #00d4a024}.suggestion-chip:active{transform:scale(.97)}.suggestion-chip:disabled{opacity:.45;cursor:not-allowed;transform:none}.start-confirm-chip{max-width:fit-content;margin:8px 0 4px auto;animation:1.8s ease-in-out infinite startChipPulse;display:block}.start-confirm-chip:hover{animation:none}@keyframes startChipPulse{0%,to{transform:scale(1);box-shadow:0 0 #00d4a000}50%{transform:scale(1.03);box-shadow:0 0 0 6px #00d4a02e,0 0 18px 2px #00d4a01f}}.input-area{align-items:center;gap:10px;display:flex}.input-wrapper{flex:1;position:relative}.answer-input{background:var(--bg-card);border:1px solid var(--glass-border);width:100%;color:var(--text-100);font-size:15px;font-family:var(--font-main);transition:all var(--transition);-webkit-appearance:none;box-sizing:border-box;border-radius:50px;outline:none;padding:14px 20px}.answer-input::placeholder{color:var(--text-700)}.answer-input:focus{border-color:var(--glass-border-hi);background:#0b1912;box-shadow:0 0 0 3px #00b3861a}.answer-input.shake{animation:.5s shakeInput}@keyframes shakeInput{0%,to{border-color:var(--glass-border);transform:translate(0)}15%{border-color:var(--rose-500);transform:translate(-8px);box-shadow:0 0 0 3px #ff6b9d26}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-4px)}}.send-btn{background:linear-gradient(135deg, var(--em-500), var(--em-400));cursor:pointer;width:48px;height:48px;transition:all var(--transition);box-shadow:0 0 12px var(--em-glow);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-btn:hover{box-shadow:0 0 20px var(--em-glow-bright);transform:scale(1.08)}.send-btn:active{transform:scale(.95)}.send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.send-btn svg{fill:#fff;width:18px;height:18px}.hint-text{color:var(--rose-300);text-align:center;min-height:18px;margin-top:8px;padding:0 8px;font-size:12px;animation:.3s fadeIn}.restored-overlay{z-index:50;-webkit-backdrop-filter:blur(8px);background:#001e1499;justify-content:center;align-items:center;animation:.4s overlayIn;display:flex;position:fixed;inset:0}.restored-overlay[hidden]{display:none}.restored-content{text-align:center;animation:restoredPop .5s var(--spring)}.restored-icon{font-size:56px;animation:1s spinFloat}.restored-text{background:linear-gradient(135deg, var(--text-100), var(--em-300));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:12px;font-size:28px;font-weight:700}.restored-chapter{color:var(--em-500);letter-spacing:1px;margin-top:8px;font-size:14px}.restored-dismiss{color:#ffffff59;letter-spacing:1.5px;text-transform:uppercase;margin-top:28px;font-size:12px;animation:1.8s ease-in-out infinite dismissPulse}.final-screen{background:radial-gradient(ellipse 80% 60% at 50% 10%, #00b3861f 0%, transparent 60%), radial-gradient(ellipse 60% 50% at 80% 90%, #ff6b9d1a 0%, transparent 60%), var(--bg-deep);justify-content:center;align-items:center;min-height:100dvh;padding:24px 20px;overflow-y:auto}.final-content{isolation:isolate;flex-direction:column;justify-content:center;align-items:center;gap:24px;width:100%;max-width:min(92vw,920px);min-height:calc(100dvh - 48px);animation:.8s contentFadeIn;display:flex;position:relative}.final-celebration-layer{pointer-events:none;z-index:0;opacity:.95;position:fixed;inset:0;overflow:hidden}.confetti{opacity:0;filter:drop-shadow(0 0 12px #ffffff2e);border-radius:999px;width:14px;height:34px;animation:linear infinite confettiFall;position:absolute;top:-18%}.confetti:before{content:"";border-radius:inherit;mix-blend-mode:screen;opacity:.25;background:linear-gradient(#ffffffdb,#ffffff1f);position:absolute;inset:0}.confetti-1{background:linear-gradient(#ffd166,coral);animation-duration:9.4s;animation-delay:.2s;left:4%;transform:rotate(14deg)}.confetti-2{background:linear-gradient(#ff7aa2,#ff4f8f);animation-duration:8.2s;animation-delay:1.1s;left:10%;transform:rotate(-9deg)}.confetti-3{background:linear-gradient(#9ef0cf,#00b386);animation-duration:10.5s;animation-delay:.6s;left:18%;transform:rotate(22deg)}.confetti-4{background:linear-gradient(#88d8ff,#4f8fff);animation-duration:8.6s;animation-delay:1.8s;left:27%;transform:rotate(-18deg)}.confetti-5{background:linear-gradient(#ffe29a,#f6b73c);animation-duration:11.2s;animation-delay:.1s;left:35%;transform:rotate(12deg)}.confetti-6{background:linear-gradient(#ff96b6,#e85390);animation-duration:8.4s;animation-delay:1.4s;left:43%;transform:rotate(-27deg)}.confetti-7{background:linear-gradient(#8bffd9,#22c897);animation-duration:9.8s;animation-delay:.9s;left:52%;transform:rotate(9deg)}.confetti-8{background:linear-gradient(#d2b6ff,#9b6dff);animation-duration:10.8s;animation-delay:2.2s;left:60%;transform:rotate(-15deg)}.confetti-9{background:linear-gradient(#ffd57a,#ff9a3c);animation-duration:8.1s;animation-delay:.4s;left:69%;transform:rotate(18deg)}.confetti-10{background:linear-gradient(#ffa7c7,#ff5f98);animation-duration:9.7s;animation-delay:1.6s;left:78%;transform:rotate(-11deg)}.confetti-11{background:linear-gradient(#9ee9ff,#4ab7ff);animation-duration:10.1s;animation-delay:.7s;left:88%;transform:rotate(24deg)}.confetti-12{background:linear-gradient(#c7ffcf,#52d46b);animation-duration:9s;animation-delay:2.4s;left:95%;transform:rotate(-22deg)}.heart-balloon{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;animation:hbRise var(--hb-dur,15s) var(--hb-delay,0s) linear infinite;position:absolute;bottom:-60px}.hb-heart{color:currentColor;animation:hbSway var(--hb-dur,15s) var(--hb-delay,0s) ease-in-out infinite;filter:blur(.4px);line-height:1;display:block}@keyframes hbRise{0%{opacity:0;transform:translateY(0)}6%{opacity:var(--hb-opacity,.22)}90%{opacity:var(--hb-opacity,.22)}to{opacity:0;transform:translateY(-115dvh)}}@keyframes hbSway{0%{transform:translate(0)}20%{transform:translateX(var(--hb-sway,16px))}50%{transform:translateX(calc(var(--hb-sway,16px) * -.8))}80%{transform:translateX(calc(var(--hb-sway,16px) * .5))}to{transform:translate(0)}}.hb-1{color:#ff6b9d;--hb-dur:16s;--hb-delay:0s;--hb-sway:14px;--hb-opacity:.28;font-size:18px;left:8%}.hb-2{color:#00d4a0;--hb-dur:19s;--hb-delay:3.5s;--hb-sway:-20px;--hb-opacity:.2;font-size:13px;left:18%}.hb-3{color:#ff6b9d;--hb-dur:14s;--hb-delay:1.2s;--hb-sway:18px;--hb-opacity:.25;font-size:22px;left:30%}.hb-4{color:#a78bfa;--hb-dur:20s;--hb-delay:5s;--hb-sway:-12px;--hb-opacity:.22;font-size:16px;left:44%}.hb-5{color:#ff6b9d;--hb-dur:17s;--hb-delay:2s;--hb-sway:22px;--hb-opacity:.18;font-size:26px;left:55%}.hb-6{color:#00d4a0;--hb-dur:13s;--hb-delay:6.8s;--hb-sway:-16px;--hb-opacity:.24;font-size:14px;left:67%}.hb-7{color:#ff6b9d;--hb-dur:18s;--hb-delay:.8s;--hb-sway:10px;--hb-opacity:.26;font-size:20px;left:78%}.hb-8{color:#a78bfa;--hb-dur:15s;--hb-delay:4.2s;--hb-sway:-18px;--hb-opacity:.2;font-size:15px;left:88%}.hb-9{color:#ff6b9d;--hb-dur:22s;--hb-delay:8s;--hb-sway:24px;--hb-opacity:.18;font-size:11px;left:38%}.hb-10{color:#00d4a0;--hb-dur:16s;--hb-delay:9.5s;--hb-sway:-14px;--hb-opacity:.22;font-size:19px;left:62%}.decrypt-stage{text-align:center;z-index:2;flex-direction:column;align-items:center;gap:20px;width:min(100%,680px);transition:opacity .5s,transform .5s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lock-anim{justify-content:center;align-items:center;width:100px;height:120px;display:flex;position:relative;overflow:visible}.lock-svg{width:80px;height:100px;color:var(--em-400);filter:drop-shadow(0 0 18px #00d4a08c);z-index:1;transition:filter .3s;position:relative;overflow:visible}.lock-shackle{transform-origin:40px 44px;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}.lock-open .lock-shackle{transform:translateY(-22px)}.lock-open .lock-body{opacity:.55}.lock-body{transition:opacity .4s}.lock-jiggle{animation:.7s ease-in-out infinite lockJiggle}.lock-jiggle-fast{animation:.35s ease-in-out infinite lockJiggleFast}.lock-rings{pointer-events:none;position:absolute;inset:0}.lock-ring{border:2px solid var(--em-400);opacity:0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.lock-ring-1{width:90px;height:90px}.lock-ring-2{width:130px;height:130px}.lock-ring-3{width:170px;height:170px}.lock-open .lock-ring-1{animation:.7s ease-out .1s forwards lockRing}.lock-open .lock-ring-2{animation:.7s ease-out .25s forwards lockRing}.lock-open .lock-ring-3{animation:.7s ease-out .4s forwards lockRing}.lock-burst{animation:.5s ease-out forwards lockBurst}.decrypt-text{color:var(--em-400);letter-spacing:1px;font-size:15px}.decrypt-progress-track{background:#00b3861a;border-radius:999px;width:min(320px,80vw);height:6px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.decrypt-progress-fill{background:linear-gradient(90deg, var(--em-500), var(--em-400), var(--em-300));width:0%;height:100%;box-shadow:0 0 8px var(--em-glow);border-radius:4px;transition:width .1s linear}.unlock-birthday-msg{font-size:clamp(16px,4vw,22px);font-family:var(--font-main);text-align:center;color:#fff;opacity:0;pointer-events:none;text-shadow:0 0 20px #7ecfad99,0 0 40px #ff6b9d59;font-weight:700;line-height:1.6;transition:opacity .4s,transform .4s cubic-bezier(.34,1.56,.64,1);transform:scale(.7)translateY(12px)}.unlock-birthday-msg--show{opacity:1;animation:.5s .4s both bdMsgJiggle,1.4s ease-in-out .9s infinite bdMsgWave;transform:scale(1)translateY(0)}.final-video-card{z-index:1;background:var(--bg-card);background:linear-gradient(180deg, #ffffff0f, #ffffff03), radial-gradient(circle at 50% 0%, #00d4a02e, transparent 56%), var(--bg-card);opacity:0;border:1px solid #8cd3bc57;border-radius:32px;width:100%;max-width:74%;margin-top:18px;transition:opacity .55s,transform .55s,box-shadow .5s;position:relative;overflow:visible;transform:translateY(18px)scale(.985);box-shadow:0 30px 70px #00000094,0 0 0 1px #00b3861f,inset 0 1px #ffffff1a}.final-video-card:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;opacity:.9;background:linear-gradient(135deg,#ffffff24,#0000 20% 82%,#ffffff14),radial-gradient(circle,#00b38624,#0000 68%);position:absolute;inset:0}.final-video-card:after{content:"";pointer-events:none;z-index:0;border:1px solid #ffffff1a;border-radius:24px;position:absolute;inset:14px}.final-video-card.glowing{border-color:#00b38666;animation:2s ease-in-out infinite cardGlowPulse;box-shadow:0 0 50px #00d4a047,0 0 120px #00b38629,0 30px 70px #00000094}.final-video-locked{text-align:center;z-index:1;flex-direction:column;align-items:center;gap:12px;padding:72px 28px;display:flex;position:relative}.final-lock-icon{animation:lockBounce 1s var(--spring);font-size:48px}.final-locked-label{color:var(--text-200);font-size:16px;font-weight:600}.final-locked-sub{color:var(--text-700);font-size:12px}.final-video{z-index:1;aspect-ratio:16/9;object-fit:contain;background:#000;border:0;border-radius:32px;width:100%;display:block;position:relative;overflow:hidden}.final-video-shell{z-index:2;aspect-ratio:16/9;background:#000;border-radius:16px;width:100%;padding-bottom:48px;position:relative;overflow:hidden}.final-video-embed{pointer-events:all;z-index:3;border:0;border-radius:0;width:100%;height:100%;min-height:0;max-height:none;position:absolute;inset:0}.birthday-message{text-align:center;z-index:1;opacity:0;max-width:760px;padding:12px 20px 24px;transition:opacity .6s 80ms,transform .6s 80ms;animation:1s .5s both fadeIn;position:relative;transform:translateY(10px)}.birthday-message-text{background:linear-gradient(135deg, var(--text-100), var(--rose-300));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(18px,4vw,24px);font-weight:600;line-height:1.6}.birthday-message-text .bengali-name{font-family:var(--font-main);color:var(--rose-500);-webkit-text-fill-color:var(--rose-500);font-weight:700}.birthday-heart-row{margin-top:16px;font-size:28px;animation:3s ease-in-out infinite heartRowFloat}.final-screen.reveal-ready .decrypt-stage{opacity:0;pointer-events:none;transform:translate(-50%,calc(-50% - 16px))}.final-screen.reveal-ready .final-video-card{opacity:1;transform:translateY(0)scale(1)}.final-screen.reveal-ready .birthday-message:not([hidden]){opacity:1;transform:translateY(0)}@media (width<=640px){.final-screen{padding:18px 12px 28px}.final-content{gap:14px;max-width:100%;min-height:calc(100dvh - 36px)}.final-video-card{border-radius:26px;max-width:88%;margin-top:12px}.final-video-card:after{border-radius:18px;inset:10px}.final-video{border-radius:26px;min-height:clamp(220px,56vw,360px);max-height:44vh}.final-video-shell{aspect-ratio:16/9;min-height:unset;max-height:unset;border-radius:14px;padding-bottom:48px}.final-video-embed{border-radius:0}.birthday-message{padding-inline:10px}.birthday-message-text{font-size:clamp(16px,6.2vw,22px);line-height:1.45}}.countdown-area{text-align:center;padding:20px 16px 14px}.countdown-label{letter-spacing:2px;text-transform:uppercase;color:var(--em-500);opacity:.7;margin-bottom:10px;font-size:11px;font-weight:600}.countdown-display{font-variant-numeric:tabular-nums;letter-spacing:2px;background:linear-gradient(135deg, var(--em-300), var(--em-400));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px var(--em-glow));-webkit-background-clip:text;background-clip:text;font-size:36px;font-weight:700;animation:1s ease-in-out infinite countdownPulse}
