*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg-dark: #0f0520;--color-bg-purple: #1a0a2e;--color-purple-600: #8b5cf6;--color-purple-400: #c084fc;--color-purple-200: #e9d5ff;--color-text-light: #f5f3ff;--color-text-muted: #c4b5fd;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--font-display: "Orbitron", monospace;--font-body: "Space Grotesk", sans-serif;--font-accent: "Rajdhani", sans-serif;--font-handwriting: "Kings", cursive;--font-family: var(--font-body)}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text-light);background:var(--color-bg-dark);overflow-x:hidden}.app{width:100vw;min-height:100vh;position:relative;overflow:hidden}.countdown-timer{position:fixed;top:35%;left:50%;transform:translate(-50%);z-index:25;display:flex;flex-direction:row;align-items:center;gap:6px;justify-content:center;padding-left:0}.countdown-circle{width:24px;height:24px;border-radius:50%;background:#0f0520b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid var(--color-purple-600);display:flex;align-items:center;justify-content:center;box-shadow:0 0 8px #8b5cf666,0 0 16px #8b5cf626;animation:pulseCircle 1s ease-in-out infinite}@keyframes pulseCircle{0%,to{transform:scale(1);box-shadow:0 0 8px #8b5cf666,0 0 16px #8b5cf626}50%{transform:scale(1.03);box-shadow:0 0 10px #8b5cf680,0 0 20px #8b5cf640}}.countdown-number{font-family:Rajdhani,sans-serif;font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#fff,#a78bfa,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:subtleShift 3s ease-in-out infinite}.countdown-label{font-family:Rajdhani,sans-serif;font-size:.6rem;font-weight:500;letter-spacing:.06em;color:#f5f3ffcc;text-transform:uppercase;padding:4px 8px;background:#0f052099;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(139,92,246,.2);border-radius:16px;white-space:nowrap;opacity:.9}.stage-indicator{position:fixed;top:var(--spacing-md);right:var(--spacing-md);z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-xs)}.stage-dots{display:flex;gap:var(--spacing-xs)}.stage-dot{width:36px;height:36px;border-radius:50%;background:#0f0520cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(139,92,246,.3);display:flex;align-items:center;justify-content:center;transition:all .3s ease}.stage-dot.active{border-color:#8b5cf6cc;background:#8b5cf633}.stage-dot.current{border-color:var(--color-purple-600);background:#8b5cf666;box-shadow:0 0 20px #8b5cf699;transform:scale(1.1)}.dot-number{font-family:Rajdhani,sans-serif;font-size:.9rem;font-weight:600;color:var(--color-text-light)}.stage-dot.active .dot-number{color:var(--color-purple-400)}.stage-dot.current .dot-number{color:#fff}.stage-label{font-family:Rajdhani,sans-serif;font-size:.85rem;font-weight:500;letter-spacing:.1em;color:var(--color-text-light);text-transform:uppercase;padding:var(--spacing-xs) var(--spacing-sm);background:#0f0520cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(139,92,246,.3);border-radius:20px}.intro{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0118,#1a0a2e,#0f0520);position:relative;overflow:hidden}.intro-particles{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 30%,rgba(139,92,246,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(236,72,153,.08) 0%,transparent 50%);z-index:2}.intro-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 15% 25%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 85% 75%,rgba(192,132,252,.3),transparent),radial-gradient(1px 1px at 45% 85%,rgba(236,72,153,.25),transparent),radial-gradient(1px 1px at 70% 35%,rgba(255,255,255,.15),transparent),radial-gradient(2px 2px at 25% 65%,rgba(139,92,246,.25),transparent);background-size:100% 100%;animation:sparkle 8s ease-in-out infinite;opacity:.5;z-index:3}@keyframes sparkle{0%,to{opacity:.3}50%{opacity:.6}}.intro-content{text-align:center;z-index:10;padding:var(--spacing-lg);max-width:500px;position:relative;animation:contentFadeIn 1.2s ease-out}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.intro-title{margin-bottom:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm)}.intro-glow{font-family:var(--font-handwriting);font-size:clamp(4rem,12vw,7rem);font-weight:400;letter-spacing:.05em;background:linear-gradient(135deg,#fff,#c084fc,#ec4899 60%,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textShine 4s linear infinite;position:relative;filter:drop-shadow(0 0 20px rgba(139,92,246,.6)) drop-shadow(0 0 35px rgba(236,72,153,.5)) drop-shadow(0 0 50px rgba(0,0,0,.8));transform:rotate(-3deg)}@keyframes textShine{to{background-position:200% center}}.intro-subtitle{font-family:var(--font-accent);font-size:clamp(.9rem,2.5vw,1.2rem);font-weight:600;letter-spacing:.3em;color:#c084fcd9;text-transform:uppercase;opacity:.85;text-shadow:0 0 15px rgba(139,92,246,.4);animation:subtitlePulse 2s ease-in-out infinite;transform:rotate(0)}@keyframes subtitlePulse{0%,to{opacity:.7;text-shadow:0 0 10px rgba(139,92,246,.3)}50%{opacity:.9;text-shadow:0 0 15px rgba(139,92,246,.5)}}.intro-form{display:flex;flex-direction:column;gap:var(--spacing-lg);background:#050014d9;-webkit-backdrop-filter:blur(30px) saturate(150%);backdrop-filter:blur(30px) saturate(150%);border:2px solid transparent;background-image:linear-gradient(#050014d9,#050014d9),linear-gradient(135deg,#8b5cf6,#ec4899,#3b82f6);background-origin:border-box;background-clip:padding-box,border-box;border-radius:24px;padding:var(--spacing-xl);box-shadow:0 0 80px #8b5cf666,0 20px 60px #000000b3,inset 0 0 80px #8b5cf614;position:relative;overflow:hidden}.form-header,.security-badge{display:none}.badge-icon{font-size:1rem;animation:iconRotate 4s linear infinite}@keyframes iconRotate{0%,90%,to{transform:rotate(0)}95%{transform:rotate(15deg)}}.badge-text{font-size:.7rem}.intro-label{font-family:var(--font-accent);font-size:1.1rem;font-weight:600;color:var(--color-text-light);letter-spacing:.05em;text-transform:uppercase;display:flex;align-items:center;gap:var(--spacing-xs)}.label-icon{color:var(--color-purple-400);font-size:1.2rem;animation:iconBlink 2s ease-in-out infinite}@keyframes iconBlink{0%,to{opacity:1}50%{opacity:.3}}.input-wrapper{position:relative}.intro-input{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-family:var(--font-display);font-size:1.6rem;font-weight:700;text-align:center;letter-spacing:.25em;text-transform:uppercase;background:#140a28b3;border:2px solid rgba(139,92,246,.5);border-radius:16px;color:var(--color-text-light);transition:all .4s cubic-bezier(.4,0,.2,1);outline:none;position:relative;z-index:1}.intro-input:focus{border-color:var(--color-purple-400);box-shadow:0 0 40px #8b5cf699,0 0 80px #ec48994d,inset 0 0 30px #8b5cf626;letter-spacing:.3em;transform:scale(1.02)}.intro-input::placeholder{color:#c4b5fd40;letter-spacing:.5em;font-weight:400}.input-border-glow{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;background:linear-gradient(135deg,#8b5cf6,#ec4899,#3b82f6,#8b5cf6);background-size:300% 300%;border-radius:16px;opacity:0;transition:opacity .4s ease;z-index:0;filter:blur(12px);animation:gradientRotate 4s ease infinite}.intro-input:focus~.input-border-glow{opacity:.8}@keyframes gradientRotate{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.intro-input-error{border-color:#ef4444;animation:inputError .5s ease}@keyframes inputError{0%,to{border-color:#ef4444;box-shadow:0 0 20px #ef444480}50%{border-color:#dc2626;box-shadow:0 0 30px #ef4444cc}}.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.intro-error{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:#ef44441a;border:1px solid rgba(239,68,68,.4);border-radius:12px;color:#fca5a5;font-family:var(--font-accent);font-size:.95rem;font-weight:600;margin:-.5rem 0;animation:errorFadeIn .3s ease;letter-spacing:.05em}.error-icon{font-size:1.2rem;animation:errorShake .5s ease infinite}@keyframes errorShake{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes errorFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.btn-primary,.btn-secondary{padding:var(--spacing-md) var(--spacing-xl);font-size:1.1rem;font-weight:500;border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;font-family:var(--font-family);letter-spacing:.02em}.btn-primary{background:linear-gradient(135deg,var(--color-purple-600),var(--color-purple-400));color:#fff;box-shadow:0 4px 20px #8b5cf666}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 30px #8b5cf699}.btn-primary:active{transform:translateY(0)}.btn-futuristic{position:relative;padding:var(--spacing-md) var(--spacing-xl);font-family:var(--font-display);font-size:1.3rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;background:linear-gradient(135deg,#8b5cf6,#ec4899,#3b82f6);background-size:200% auto;border:none;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);box-shadow:0 0 40px #8b5cf699,0 10px 30px #0006,inset 0 1px #fff3;transition:all .4s cubic-bezier(.4,0,.2,1)}.btn-futuristic:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#c084fc,#f472b6,#60a5fa);background-size:200% auto;opacity:0;transition:opacity .4s ease;z-index:-1;animation:gradientSlide 3s linear infinite}@keyframes gradientSlide{to{background-position:200% center}}.btn-futuristic:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 0 60px #8b5cf6cc,0 0 100px #ec489980,0 15px 40px #00000080,inset 0 1px #ffffff4d;letter-spacing:.25em}.btn-futuristic:hover:before{opacity:1}.btn-futuristic:active{transform:translateY(-1px) scale(1)}.btn-futuristic:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:0 0 20px #8b5cf64d,0 5px 15px #0000004d}.btn-icon-left,.btn-icon-right{font-family:monospace;font-size:1.5rem;opacity:.8;transition:all .3s ease}.btn-futuristic:hover .btn-icon-left{transform:translate(-4px);opacity:1}.btn-futuristic:hover .btn-icon-right{transform:translate(4px);opacity:1}.btn-text{position:relative;z-index:2;font-weight:900}.btn-glow{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;background:linear-gradient(135deg,#8b5cf6,#ec4899,#3b82f6);background-size:200% auto;border-radius:50px;filter:blur(20px);opacity:.7;z-index:-2;animation:btnGlow 3s ease-in-out infinite alternate}@keyframes btnGlow{0%{opacity:.5;filter:blur(15px);transform:scale(.95)}to{opacity:.9;filter:blur(25px);transform:scale(1.05)}}.btn-shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .6s ease}.btn-futuristic:hover .btn-shine{left:100%}.btn-secondary{background:#8b5cf61a;color:var(--color-purple-200);border:2px solid var(--color-purple-600)}.btn-secondary:hover{background:#8b5cf633;transform:translateY(-2px)}.cake-scene{width:100vw;height:100vh;position:relative;background:linear-gradient(135deg,#0a0118,#1a0a2e,#0f0520);overflow:visible}.cake-scene canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;position:relative;z-index:5}.cake-scene canvas:active{cursor:grabbing}.cake-particles{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 30%,rgba(139,92,246,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(236,72,153,.08) 0%,transparent 50%);z-index:2;pointer-events:none}.cake-ui-top{position:absolute;top:var(--spacing-xl);left:50%;transform:translate(-50%);text-align:center;z-index:10;pointer-events:none}.cake-wish-text{font-family:var(--font-body);font-size:clamp(1.1rem,3vw,1.6rem);font-weight:500;letter-spacing:.05em;color:var(--color-text-light);text-shadow:0 2px 10px rgba(0,0,0,.8);padding:var(--spacing-sm) var(--spacing-lg);background:#0f052080;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:50px;border:1px solid rgba(139,92,246,.3);box-shadow:0 4px 20px #0000004d}@keyframes wishFloatFuturistic{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.cake-ui-bottom{position:absolute;top:15%;left:50%;transform:translate(-50%);text-align:center;z-index:15;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.btn-blow-main{font-family:var(--font-body);font-size:1.5rem!important;font-weight:700!important;letter-spacing:.08em!important;padding:var(--spacing-md) calc(var(--spacing-xl) * 1.5)!important;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:linear-gradient(135deg,#8b5cf6e6,#ec4899cc,#8b5cf6e6)!important;border:none!important;border-radius:60px!important;color:#fff!important;box-shadow:0 8px 32px #8b5cf6cc,0 4px 16px #ec489999,inset 0 1px #ffffff4d!important;transition:all .4s cubic-bezier(.34,1.56,.64,1)!important;position:relative;z-index:10;overflow:hidden}.btn-blow-main:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);transform:translate(-100%);transition:transform .6s}.btn-blow-main:hover:before{transform:translate(100%)}.btn-blow-main:hover{transform:translateY(-4px) scale(1.05)!important;box-shadow:0 12px 48px #8b5cf6,0 6px 24px #ec4899cc,inset 0 1px #fff6!important}.btn-blow-main:active{transform:translateY(-2px) scale(1.02)!important}.blow-emoji{font-size:1.8rem}.cake-ui-wish{position:absolute;bottom:31%;left:50%;transform:translate(-50%);text-align:center;z-index:10;pointer-events:none}.rotate-hint{display:none}@keyframes hintFade{}.blow-message{position:absolute;top:calc(var(--spacing-xl) + 60px);left:50%;transform:translate(-50%);z-index:20;text-align:center;animation:blowMessageAppear 1.5s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl);max-width:90%}@keyframes blowMessageAppear{0%{opacity:0;transform:translate(-50%) translateY(-30px) scale(.5) rotate(-5deg)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1) rotate(0)}}.blow-headline{font-family:Rajdhani,sans-serif;font-size:clamp(2.2rem,8vw,4.8rem);font-weight:600;letter-spacing:.08em;margin:0;position:relative;padding:0 2rem;line-height:1.15;display:flex;flex-wrap:wrap;justify-content:center;gap:.4em;background:linear-gradient(120deg,#fff,#e0e0e0,#a78bfa,#e0e0e0,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 15px rgba(139,92,246,.4)) drop-shadow(0 0 30px rgba(167,139,250,.3));animation:subtleShift 8s ease-in-out infinite}@keyframes subtleShift{0%,to{background-position:0% center}50%{background-position:100% center}}.headline-line1,.headline-line2{white-space:nowrap}@keyframes headlineFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.blow-headline:before{content:"🎂";position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:.7em;filter:none;-webkit-text-fill-color:initial;animation:iconBounce 2s ease-in-out infinite}.blow-headline:after{content:"🎉";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:.7em;filter:none;-webkit-text-fill-color:initial;animation:iconBounce 2s ease-in-out infinite 1s}@keyframes iconBounce{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.15)}}.blow-wish{font-family:var(--font-body);font-size:clamp(1rem,2.5vw,1.4rem);font-weight:400;font-style:italic;color:var(--color-text-light);text-shadow:0 0 15px rgba(139,92,246,.7),0 0 30px rgba(236,72,153,.5),0 3px 8px rgba(0,0,0,.9);letter-spacing:.06em;opacity:0;animation:wishRevealFromBottom 1.5s ease-out 1.2s forwards;margin:0;padding:var(--spacing-sm) var(--spacing-lg);background:#0f052080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:40px;border:1px solid rgba(139,92,246,.3);box-shadow:0 0 20px #8b5cf640;position:fixed;bottom:calc(var(--spacing-xl) * 2.5);left:50%;transform:translate(-50%);overflow:hidden;white-space:nowrap;z-index:25}.blow-wish:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(139,92,246,.2),transparent);transform:translate(-100%);animation:wishShine 3s ease-in-out 1.8s infinite}@keyframes wishShine{0%{transform:translate(-100%)}50%,to{transform:translate(100%)}}@keyframes wishRevealFromBottom{0%{opacity:0;bottom:calc(var(--spacing-xl) * 1);transform:translate(-50%) scale(.9)}to{opacity:1;bottom:calc(var(--spacing-xl) * 2.5);transform:translate(-50%) scale(1)}}.memory-cards{min-height:100vh;width:100%;background:linear-gradient(180deg,var(--color-bg-purple) 0%,var(--color-bg-dark) 100%);overflow-y:auto;overflow-x:hidden}.memory-hero{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);text-align:center}.memory-hero-title{font-family:Rajdhani,sans-serif;font-size:clamp(2rem,6vw,3.5rem);font-weight:600;letter-spacing:.12em;margin:0;background:linear-gradient(135deg,#fff,#a78bfa,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:subtleShift 8s ease-in-out infinite}.memory-hero-subtitle{display:none}.cards-timeline{max-width:800px;width:100%;margin:0 auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xl)}.memory-card{background:#0f0520cc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(139,92,246,.3);border-radius:24px;overflow:hidden;transition:all .4s ease;box-shadow:0 8px 32px #0006}.memory-card:hover{transform:translateY(-8px);box-shadow:0 16px 48px #8b5cf666;border-color:#8b5cf699}.card-special{background:linear-gradient(135deg,#8b5cf633,#ec489933);border:2px solid rgba(139,92,246,.5)}.card-final{border:2px solid var(--color-purple-600);box-shadow:0 0 60px #8b5cf699}.card-image-wrapper{width:100%;min-height:400px;overflow:hidden;background:#8b5cf60d;position:relative;display:flex;align-items:center;justify-content:center}.card-image{width:100%;height:auto;max-height:600px;object-fit:contain;transition:transform .4s ease}.memory-card:hover .card-image{transform:scale(1.02)}.card-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:4rem;opacity:.3;background:#8b5cf61a}.card-no-image{width:100%;min-height:400px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8b5cf64d,#ec48994d)}.card-icon{font-size:6rem;animation:heartBeat 2s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.card-content{padding:var(--spacing-lg) var(--spacing-xl)}.card-title{font-family:Rajdhani,sans-serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:.05em;color:var(--color-purple-400);margin:0 0 var(--spacing-sm) 0;text-align:center}.card-caption{font-family:var(--font-body);font-size:clamp(1rem,2vw,1.2rem);line-height:1.8;color:var(--color-text-light);text-align:center;font-style:italic;margin:0;opacity:.95}.card-final .card-content{padding:var(--spacing-xl)}.card-final .card-title{font-size:clamp(1.8rem,4vw,2.5rem);background:linear-gradient(135deg,#fff,#a78bfa,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:subtleShift 8s ease-in-out infinite}.card-final .card-caption{font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400}.memory-footer{display:flex;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);padding-bottom:calc(var(--spacing-xl) * 2)}.btn-replay{font-family:Rajdhani,sans-serif;font-size:1.1rem;font-weight:600;letter-spacing:.08em;padding:var(--spacing-md) var(--spacing-xl);background:#8b5cf633;border:2px solid rgba(139,92,246,.5);border-radius:50px;color:var(--color-text-light);cursor:pointer;transition:all .3s ease}.btn-replay:hover{background:#8b5cf64d;border-color:#8b5cf6cc;transform:translateY(-2px);box-shadow:0 8px 24px #8b5cf666}.audio-player{position:fixed;bottom:var(--spacing-sm);left:50%;transform:translate(-50%);background:#0f0520f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(139,92,246,.4);border-radius:50px;padding:var(--spacing-sm) var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);box-shadow:0 8px 32px #0006;z-index:50;transition:all .3s ease;min-width:280px;max-width:90%}.audio-player:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 12px 40px #8b5cf64d}.audio-btn{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--color-purple-600),var(--color-purple-400));color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.audio-btn:hover{transform:scale(1.1)}.audio-btn:active{transform:scale(.95)}.audio-info{display:flex;flex-direction:column;gap:4px;min-width:180px}.audio-label{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.audio-progress-bar{height:4px;background:#8b5cf633;border-radius:2px;overflow:hidden;position:relative}.audio-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-purple-600),var(--color-purple-400));transition:width .1s linear;border-radius:2px}.audio-time{font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}@media (max-width: 768px){:root{--spacing-xl: 2rem;--spacing-lg: 1.5rem}.intro-content{padding:var(--spacing-md);max-width:90%}.intro-glow{font-size:clamp(2.5rem,10vw,4rem)}.intro-form{padding:var(--spacing-lg)}.intro-input{font-size:1.3rem}.cake-scene canvas{transform:scale(.85);transform-origin:center center}.cake-ui-top{top:var(--spacing-sm);padding:0 var(--spacing-sm)}.cake-ui-wish{bottom:26%}.cake-wish-text{font-size:1rem;padding:var(--spacing-xs) var(--spacing-md)}.cake-ui-bottom{top:12%}.countdown-timer{top:var(--spacing-sm);gap:var(--spacing-xs)}.countdown-circle{width:28px;height:28px}.countdown-number{font-size:1rem}.countdown-label{font-size:.7rem;padding:6px var(--spacing-xs)}.candle-progress{padding:var(--spacing-xs) var(--spacing-lg)}.rotate-hint{font-size:.75rem}.memory-hero{padding:var(--spacing-lg) var(--spacing-md) var(--spacing-sm) var(--spacing-md)}.memory-hero-title{font-size:clamp(1.8rem,7vw,2.5rem)}.cards-timeline{padding:var(--spacing-md);gap:var(--spacing-lg)}.card-image-wrapper{min-height:300px}.card-image{max-height:500px}.card-no-image{min-height:300px}.card-content{padding:var(--spacing-md) var(--spacing-lg)}.card-final .card-content{padding:var(--spacing-lg)}.audio-player{bottom:var(--spacing-md)}.memory-footer{padding-bottom:calc(var(--spacing-xl) * 2 + 60px)}.audio-info{min-width:140px}}@media (max-width: 480px){.intro-glow{font-size:clamp(3rem,15vw,5rem);letter-spacing:.05em}.intro-subtitle{font-size:.7rem;letter-spacing:.2em}.intro-form{padding:var(--spacing-md)}.countdown-timer{top:var(--spacing-sm);right:var(--spacing-sm)}.countdown-circle{width:60px;height:60px;border-width:2px}.countdown-number{font-size:1.8rem}.countdown-label{font-size:.7rem;padding:6px var(--spacing-xs)}.stage-indicator{top:var(--spacing-sm);right:var(--spacing-sm)}.stage-dot{width:32px;height:32px}.dot-number{font-size:.8rem}.stage-label{font-size:.75rem;padding:6px var(--spacing-xs)}.security-badge{display:none}.badge-text{font-size:.6rem}.intro-label{font-size:.95rem}.intro-input{font-size:1.2rem;padding:var(--spacing-sm);letter-spacing:.2em}.btn-futuristic{font-size:1rem;padding:var(--spacing-sm) var(--spacing-md);letter-spacing:.15em}.btn-icon-left,.btn-icon-right{font-size:1.2rem}.cake-scene canvas{transform:scale(.75)}.cake-ui-wish{bottom:23%}.cake-wish-text{font-size:.9rem;padding:6px var(--spacing-sm)}.btn-blow-main{font-size:1.2rem!important;padding:var(--spacing-sm) var(--spacing-lg)!important;margin-bottom:var(--spacing-md)}.blow-emoji{font-size:1.4rem}.rotate-hint{font-size:.7rem}.blow-message{padding:var(--spacing-md);top:calc(var(--spacing-sm) + 50px)}.blow-headline{font-size:clamp(1.8rem,7vw,3rem);padding:0 1rem;flex-direction:column;gap:.1em;line-height:1.1;font-weight:400}.headline-line1{font-size:.8em;font-weight:300;letter-spacing:.15em}.headline-line2{font-size:1.3em;font-weight:500}.blow-headline:before,.blow-headline:after{display:none}.blow-wish{font-size:clamp(.9rem,2.8vw,1.1rem);padding:var(--spacing-xs) var(--spacing-md);bottom:calc(var(--spacing-xl) * 4);z-index:100}@keyframes wishRevealFromBottom{0%{opacity:0;bottom:calc(var(--spacing-xl) * 3);transform:translate(-50%) scale(.9)}to{opacity:1;bottom:calc(var(--spacing-xl) * 4);transform:translate(-50%) scale(1)}}.btn-primary,.btn-secondary{padding:var(--spacing-sm) var(--spacing-lg);font-size:1rem}.countdown-timer{gap:5px}.countdown-circle{width:20px;height:20px;border:1px solid var(--color-purple-600)}.countdown-number{font-size:.75rem}.countdown-label{font-size:.55rem;padding:3px 6px}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
