.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}:root{--primary: #ff6b9d;--primary-light: #ffb3d1;--primary-dark: #e55a8a;--secondary: #a855f7;--accent: #fbbf24;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--bg-gradient: linear-gradient(135deg, #fff5f7 0%, #fce7f3 30%, #f3e8ff 60%, #fdf4ff 100%);--text-primary: #1f2937;--text-secondary: #6b7280;--text-light: #9ca3af;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}html{font-size:calc(100vw / 375 * 14px)}@media (min-width: 750px){html{font-size:28px}}body{background:var(--bg-gradient);color:var(--text-primary);line-height:1.6}.page-container{padding-bottom:calc(var(--safe-bottom) + 1rem);padding-top:var(--safe-top);min-height:100vh}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border:none;border-radius:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #ff6b9d66}.btn-primary:active{transform:scale(.95);box-shadow:0 2px 8px #ff6b9d4d}.btn-secondary{background:#fff;color:var(--primary);border:2px solid var(--primary);border-radius:1rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-secondary:active{transform:scale(.95)}.btn-disabled{opacity:.5;pointer-events:none}.card{background:#fff;border-radius:1.5rem;padding:1.5rem;box-shadow:0 4px 20px #00000014}.input-primary{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:.75rem;font-size:1rem;transition:border-color .2s;background:#fff}.input-primary:focus{outline:none;border-color:var(--primary)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s ease}.slide-up-enter-from,.slide-up-leave-to{transform:translateY(100%);opacity:0}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes sparkle{0%{transform:scale(0) rotate(0);opacity:1}to{transform:scale(1) rotate(180deg);opacity:0}}
