.skeleton{background:linear-gradient(90deg,var(--md-sys-color-surface-variant) 0,var(--md-sys-color-outline) 50%,var(--md-sys-color-surface-variant) 100%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-loading;border-radius:var(--radius-md);pointer-events:none;user-select:none}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#2a2a2a 0,#3a3a3a 50%,#2a2a2a 100%);background-size:200% 100%}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.skeleton-text{height:16px;width:100%}.skeleton-text.short{width:60%}.skeleton-text.long{width:100%}.skeleton-title{height:24px;width:70%;margin-bottom:8px}.skeleton-image{height:200px;width:100%;border-radius:var(--radius-lg)}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{padding:16px;display:flex;flex-direction:column;gap:12px}.skeleton-button{height:44px;width:120px;border-radius:var(--radius-sm)}.skeleton-menu-item{display:flex;gap:16px;padding:16px;border-radius:var(--radius-md);background:var(--md-sys-color-surface)}.skeleton-menu-image{width:80px;height:80px;border-radius:var(--radius-md);flex-shrink:0}.skeleton-menu-content{flex:1;display:flex;flex-direction:column;gap:8px}.skeleton-menu-title{height:18px;width:70%}.skeleton-menu-desc{height:14px;width:90%}.skeleton-menu-price{height:16px;width:50%}.skeleton-cart-item{display:flex;gap:12px;padding:12px;border-radius:var(--radius-md);background:var(--md-sys-color-surface);margin-bottom:8px}.skeleton-cart-image{width:60px;height:60px;border-radius:var(--radius-sm)}.skeleton-cart-content{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-timeline{padding:20px;display:flex;flex-direction:column;gap:16px}.skeleton-timeline-item{display:flex;gap:12px;align-items:center}.skeleton-timeline-dot{width:24px;height:24px;border-radius:50%;flex-shrink:0}.skeleton-timeline-line{height:30px;width:2px;margin-left:12px}.btn{position:relative;overflow:hidden;transition:.3s cubic-bezier(.4, 0, .2, 1)}.btn::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:active::after{width:300px;height:300px}.btn-primary{background:linear-gradient(135deg,var(--md-sys-color-primary) 0,var(--md-sys-color-primary-container) 100%)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(103,80,164,.4)}.btn-primary:active{transform:translateY(0);box-shadow:0 4px 12px rgba(103,80,164,.3)}.btn-secondary{background:var(--md-sys-color-surface-variant)}.btn-secondary:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)}[data-theme=dark] .btn-primary{background:var(--cyber-gradient);color:#0a0a0a;border:none;font-weight:600;box-shadow:0 4px 15px rgba(255,215,0,.2)}[data-theme=dark] .btn-primary:hover{box-shadow:var(--cyber-glow);transform:translateY(-2px)}[data-theme=dark] .btn-secondary{background:var(--glass-background);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);color:#e6e1e5}[data-theme=dark] .btn-secondary:hover{background:rgba(201,169,98,.1);border-color:#c9a962;box-shadow:inset 0 0 10px rgba(201,169,98,.2)}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:.6s ease-out ripple-animation;pointer-events:none}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}.card{background:var(--md-sys-color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:.4s cubic-bezier(.4, 0, .2, 1);overflow:hidden}.card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px rgba(0,0,0,.2)}.card-image-wrapper{overflow:hidden;position:relative}.card-image{transition:transform .6s cubic-bezier(.4, 0, .2, 1)}.card:hover .card-image{transform:scale(1.1)}.card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.7) 100%);opacity:0;transition:opacity .3s}.card:hover .card-overlay{opacity:1}.card-badge{position:absolute;top:12px;right:12px;background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;transform:scale(0);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1)}.card:hover .card-badge{transform:scale(1)}.product-card{cursor:pointer}.product-card .add-to-cart-btn{opacity:0;transform:translateY(20px);transition:.3s cubic-bezier(.4, 0, .2, 1)}.product-card:hover .add-to-cart-btn{opacity:1;transform:translateY(0)}.input-group{position:relative;margin-bottom:20px}.input-field{width:100%;padding:14px 16px;border:2px solid var(--md-sys-color-outline);border-radius:var(--radius-sm);background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);font-size:1rem;transition:.3s cubic-bezier(.4, 0, .2, 1)}.input-field:focus{outline:0;border-color:var(--md-sys-color-primary);box-shadow:0 0 0 4px rgba(103,80,164,.1);transform:translateY(-1px)}.input-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);background:var(--md-sys-color-surface);padding:0 8px;color:var(--md-sys-color-on-surface);font-size:1rem;transition:.3s cubic-bezier(.4, 0, .2, 1);pointer-events:none}.input-field:focus+.input-label,.input-field:not(:placeholder-shown)+.input-label{top:0;font-size:.75rem;color:var(--md-sys-color-primary);font-weight:600}.input-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--md-sys-color-on-surface);opacity:.5;transition:opacity .3s}.input-field:focus~.input-icon{opacity:1;color:var(--md-sys-color-primary)}.toggle-switch{position:relative;width:52px;height:28px;background:var(--md-sys-color-surface-variant);border-radius:14px;cursor:pointer;transition:background .3s cubic-bezier(.4, 0, .2, 1)}.toggle-switch.active{background:var(--md-sys-color-primary)}.toggle-switch::before{content:'';position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1)}.toggle-switch.active::before{transform:translateX(24px)}.page-container{animation:.5s cubic-bezier(.4,0,.2,1) pageEnter}@keyframes pageEnter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-exit{animation:.3s cubic-bezier(.4,0,.2,1) forwards pageExit}@keyframes pageExit{to{opacity:0;transform:translateY(-20px)}}.reveal,.scroll-reveal{opacity:0;transform:translateY(40px);transition:.6s cubic-bezier(.4, 0, .2, 1)}.reveal.is-visible,.reveal.revealed,.scroll-reveal.is-visible,.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translateX(-50px);transition:.6s cubic-bezier(.4, 0, .2, 1)}.reveal-right{opacity:0;transform:translateX(50px);transition:.6s cubic-bezier(.4, 0, .2, 1)}.reveal-left.is-visible,.reveal-right.is-visible{opacity:1;transform:translateX(0)}.scroll-reveal-delayed{opacity:0;transform:translateY(40px);transition:.6s cubic-bezier(.4, 0, .2, 1)}.scroll-reveal-delayed:first-child{transition-delay:0.1s}.scroll-reveal-delayed:nth-child(2){transition-delay:0.2s}.scroll-reveal-delayed:nth-child(3){transition-delay:0.3s}.scroll-reveal-delayed:nth-child(4){transition-delay:0.4s}.scroll-reveal-delayed:nth-child(5){transition-delay:0.5s}.scroll-reveal-delayed.revealed{opacity:1;transform:translateY(0)}.stagger-item{opacity:0;transform:translateX(-20px);animation:.4s cubic-bezier(.4,0,.2,1) forwards staggerEnter}@keyframes staggerEnter{to{opacity:1;transform:translateX(0)}}.spinner{width:40px;height:40px;border:4px solid var(--md-sys-color-surface-variant);border-top-color:var(--md-sys-color-primary);border-radius:50%;animation:.8s linear infinite spin}.spinner-sm{width:24px;height:24px;border-width:3px}.spinner-lg{width:64px;height:64px;border-width:5px}@keyframes spin{to{transform:rotate(360deg)}}.spinner-pulse{width:40px;height:40px;background:var(--md-sys-color-primary);border-radius:50%;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,100%{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:1}}.dots-loader{display:flex;gap:8px}.dots-loader span{width:12px;height:12px;background:var(--md-sys-color-primary);border-radius:50%;animation:1.4s ease-in-out infinite dots}.dots-loader span:first-child{animation-delay:0s}.dots-loader span:nth-child(2){animation-delay:.2s}.dots-loader span:nth-child(3){animation-delay:.4s}@keyframes dots{0%,100%,80%{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.toast{animation:.3s cubic-bezier(.4,0,.2,1) toastEnter}@keyframes toastEnter{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.toast-exit{animation:.3s cubic-bezier(.4,0,.2,1) forwards toastExit}@keyframes toastExit{to{opacity:0;transform:translateX(100%)}}.modal-backdrop{animation:.3s modalFadeIn}.modal-content{animation:.4s cubic-bezier(.34,1.56,.64,1) modalSlideUp}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalSlideUp{from{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;animation:.3s cubic-bezier(.34,1.56,.64,1) badgeEnter}@keyframes badgeEnter{from{transform:scale(0)}to{transform:scale(1)}}.status-dot{width:8px;height:8px;border-radius:50%;animation:2s ease-in-out infinite statusPulse}.status-dot.success{background:#22c55e}.status-dot.warning{background:#f59e0b}.status-dot.error{background:#ef4444}.status-dot.info{background:#3b82f6}@keyframes statusPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.progress-bar{width:100%;height:8px;background:var(--md-sys-color-surface-variant);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--md-sys-color-primary) 0,var(--md-sys-color-primary-container) 100%);border-radius:4px;transition:width .5s cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden}.progress-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.3) 50%,transparent 100%);animation:1.5s infinite shimmer}@keyframes shimmer{to{transform:translateX(100%)}}@keyframes cartShake{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-5deg)}40%,80%{transform:rotate(5deg)}}.cart-shake{animation:.5s cubic-bezier(.36,.07,.19,.97) cartShake}@keyframes cartPop{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}.cart-pop{animation:.3s cubic-bezier(.34,1.56,.64,1) cartPop}@keyframes cartFly{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:.5;transform:translate(100px,-100px) scale(.5)}}.cart-fly{animation:.6s cubic-bezier(.4,0,.2,1) forwards cartFly;position:fixed;z-index:9999}.tab-indicator{position:absolute;bottom:0;height:3px;background:var(--md-sys-color-primary);border-radius:3px 3px 0 0;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.accordion-content{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4, 0, .2, 1)}.accordion-content.open{max-height:500px}.tooltip{position:relative}.tooltip::after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(8px);background:var(--md-sys-color-on-surface);color:var(--md-sys-color-surface);padding:6px 12px;border-radius:var(--radius-sm);font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:.2s cubic-bezier(.4, 0, .2, 1)}.tooltip:hover::after{opacity:1;transform:translateX(-50%) translateY(4px)}.quantity-change{animation:.3s cubic-bezier(.34,1.56,.64,1) quantityBump}@keyframes quantityBump{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}@keyframes checkmark-draw{0%{stroke-dashoffset:100}100%{stroke-dashoffset:0}}.checkmark{width:56px;height:56px;border-radius:50%;display:block;stroke-width:2;stroke:#22c55e;stroke-miterlimit:10;box-shadow:inset 0 0 0 #22c55e;animation:.6s ease-in-out checkmark-circle}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#22c55e;fill:none;animation:.6s cubic-bezier(.65,0,.45,1) forwards checkmark-draw}.checkmark-check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:.3s cubic-bezier(.65,0,.45,1) .3s forwards checkmark-draw}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-bounce{animation:1s ease-in-out infinite bounce}.animate-spin{animation:1s linear infinite spin}.animate-fade-in{animation:.5s ease-out fadeIn}.animate-slide-up{animation:.4s cubic-bezier(.4,0,.2,1) slideUp}@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scale-hover{transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.scale-hover:hover{transform:scale(1.05)}.lift-hover{transition:transform .3s cubic-bezier(.4, 0, .2, 1),box-shadow .3s}.lift-hover:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.15)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}