@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes modalBackdropIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}@keyframes modalCardIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes breathe{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}@keyframes inkDrop{0%{transform:scale(0);opacity:.6}50%{opacity:.3}to{transform:scale(2.5);opacity:0}}.animate-fade-in{animation:fadeIn .4s ease-out both}.animate-fade-in-up{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) both}.animate-fade-in-down{animation:fadeInDown .4s ease-out both}.animate-fade-in-scale{animation:fadeInScale .4s cubic-bezier(.22,1,.36,1) both}.animate-slide-in-right{animation:slideInRight .5s cubic-bezier(.22,1,.36,1) both}.stagger-item{animation:fadeInUp .45s cubic-bezier(.22,1,.36,1) both}.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(6){animation-delay:.25s}.stagger-item:nth-child(7){animation-delay:.3s}.stagger-item:nth-child(8){animation-delay:.35s}.stagger-item:nth-child(9){animation-delay:.4s}.stagger-item:nth-child(10){animation-delay:.45s}.stagger-item:nth-child(n+11){animation-delay:.5s}.modal-backdrop{animation:modalBackdropIn .3s ease-out both}.modal-card{animation:modalCardIn .35s cubic-bezier(.22,1,.36,1) both}.skeleton{background:linear-gradient(90deg,#f0ebe0 25%,#e9e2d3,#f0ebe0 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;border-radius:8px}.loading-breathe{animation:breathe 2s ease-in-out infinite}.ink-ripple{position:relative;overflow:hidden}.ink-ripple:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(139,0,0,.15) 0%,transparent 70%);transform:scale(0);pointer-events:none}.ink-ripple:active:after{animation:inkDrop .6s ease-out}.card-hover{transition:box-shadow .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1)}.card-hover:hover{box-shadow:0 20px 50px -12px #8b000014,0 40px 80px -15px #8b00000f;transform:translateY(-3px)}.card-hover:active{transform:translateY(-1px);transition-duration:.1s}.page-enter{animation:fadeInUp .4s cubic-bezier(.22,1,.36,1) both}button.btn-primary{position:relative;overflow:hidden}button.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),rgba(255,255,255,.2) 0%,transparent 60%);opacity:0;transition:opacity .3s}button.btn-primary:hover:before{opacity:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
