body{background:radial-gradient(ellipse at center,#9f1239,#7f1d1d,#1a0505);background-attachment:fixed}@keyframes fall{0%{transform:translateY(-10vh) rotate(0) translate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg) translate(100px);opacity:.3}}@keyframes sway{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(30px) rotate(90deg)}50%{transform:translate(-30px) rotate(180deg)}75%{transform:translate(30px) rotate(270deg)}}.petal{position:fixed;top:-10%;pointer-events:none;z-index:1;opacity:.8;animation:fall linear forwards,sway ease-in-out infinite}.petal:before{content:"🌸";font-size:20px;display:block}.petal.small:before{font-size:14px}.petal.medium:before{font-size:20px}.petal.large:before{font-size:28px}.glow-orb{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0;animation:pulse-glow 4s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.cloud-pattern{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23fbbf24' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .6s ease-out}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .8s ease-out}.writing-vertical-rl{writing-mode:vertical-rl;text-orientation:upright}.spin-slow{animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spring-in{0%{transform:scale(0) rotate(-180deg);opacity:0}50%{transform:scale(1.2) rotate(10deg);opacity:1}70%{transform:scale(.9) rotate(-5deg)}to{transform:scale(1) rotate(0);opacity:1}}.spring-character{animation:spring-in 1.2s cubic-bezier(.68,-.55,.265,1.55) forwards}.spring-glow{position:relative}.spring-glow:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;background:radial-gradient(circle,rgba(251,191,36,.4) 0%,transparent 70%);border-radius:50%;animation:glow-pulse 2s ease-in-out infinite;z-index:-1}@keyframes glow-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.typewriter-cursor{display:inline-block;width:3px;height:1em;background-color:currentColor;margin-left:2px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.stage-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.stage-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 20px 40px #0000004d}.stage-icon{transition:all .3s ease}.stage-card:hover .stage-icon{transform:scale(1.1) rotate(5deg)}.progress-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#0000004d;border-radius:9999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.progress-track{display:flex;align-items:center;gap:6px}.progress-dot{width:8px;height:8px;border-radius:50%;background:#fbbf244d;transition:all .3s ease}.progress-dot.completed{background:#fbbf24;box-shadow:0 0 8px #fbbf2499}.progress-dot.current{background:#fbbf24;box-shadow:0 0 12px #fbbf24cc;transform:scale(1.5);animation:progress-pulse 1.5s ease-in-out infinite}@keyframes progress-pulse{0%,to{box-shadow:0 0 12px #fbbf24cc}50%{box-shadow:0 0 20px #fbbf24}}.progress-text{color:#fbbf24;font-size:12px;font-weight:600;min-width:120px;text-align:right}.btn-ripple{position:relative;overflow:hidden}.btn-ripple .ripple{position:absolute;border-radius:50%;background:#fff9;transform:scale(0);animation:ripple-animation .6s linear;pointer-events:none}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}.btn-success{animation:success-flash .6s ease}@keyframes success-flash{0%,to{background:linear-gradient(to right,#ca8a04,#eab308)}50%{background:linear-gradient(to right,#16a34a,#22c55e);box-shadow:0 0 20px #22c55e99}}.btn-error{animation:error-shake .5s ease}@keyframes error-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}
