/* Extracted from old inline <style> in base.html. */
@keyframes quantum-pulse {
  0%,100%{color:#000;text-shadow:0 0 0 transparent}
  25%{color:#00f3ff;text-shadow:0 0 10px rgba(0,243,255,.5),0 0 20px rgba(0,243,255,.3)}
  50%{color:#b967ff;text-shadow:0 0 10px rgba(185,103,255,.5),0 0 20px rgba(185,103,255,.3)}
  75%{color:#00ff9d;text-shadow:0 0 10px rgba(0,255,157,.5),0 0 20px rgba(0,255,157,.3)}
}
@keyframes quantum-dot {0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.5);opacity:1}}
@keyframes neural-wave {0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes heartbeat {0%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}100%{transform:scale(1)}}
@keyframes fadeIn {from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

.custom-modal{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.5);backdrop-filter:blur(5px);align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.custom-modal.show{display:flex;opacity:1}
.custom-modal-content{background:#fff;border-radius:16px;padding:24px;box-shadow:0 10px 40px rgba(0,0,0,.2);position:relative;margin:16px}
.custom-close{position:absolute;top:12px;right:16px;font-size:28px;cursor:pointer;color:#666}
.face-dot{display:inline-block}
body.passkey-available .biometric-login-btn{display:inline-flex!important}
body.face-enrolled   .face-unlock-hint{display:inline-flex!important}
.quantum-pulse{animation:quantum-pulse 4s ease-in-out infinite}
.quantum-orb{position:relative;display:inline-block}
.quantum-orb::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,rgba(0,243,255,.2) 0%,rgba(185,103,255,.1) 50%,transparent 70%);animation:quantum-dot 3s ease-in-out infinite;pointer-events:none;z-index:-1}
.particle-trail{position:relative;overflow:hidden}
.particle-trail::before{content:'';position:absolute;top:0;left:-100%;width:20%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,243,255,.2),transparent);animation:neural-wave 2s ease-in-out infinite;animation-delay:.5s}
.promo-banner{position:fixed;top:100px;width:100%;z-index:9}
.balances{display:flex;gap:10px;font-size:.9rem;margin-top:4px;flex-wrap:wrap}
.balance-item{background:rgba(0,0,0,.05);padding:2px 8px;border-radius:12px;white-space:nowrap}
.mobile-menu-content{padding:10px 0}
.menu-section{margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:15px}
.menu-section-title{font-size:14px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;padding:0 20px;margin-bottom:8px}
.menu-divider{height:1px;background:#eee;margin:10px 20px}
.mobile-nav-link{display:flex;align-items:center;gap:12px;padding:12px 20px;font-size:16px;color:#333;text-decoration:none;transition:background .2s}
.mobile-nav-link i{width:24px;text-align:center;color:#666}
.mobile-nav-link.active{background:#f0f0f0;color:#007bff}
.mobile-nav-link.active i{color:#007bff}
.mobile-nav-link:hover{background:#f5f5f5}
.telegram-compact{padding:10px 20px;display:flex;flex-direction:column;gap:10px}
.telegram-alt-link{display:inline-flex;align-items:center;gap:8px;color:#0088cc;text-decoration:none;font-size:14px}
.telegram-alt-link:hover{text-decoration:underline}
.hidden{display:none!important}
.visible{display:flex!important}
.step-hidden{display:none}
.step-visible{display:block;animation:fadeIn .3s ease}
.lang-switcher{display:flex;gap:4px;align-items:center;margin-left:15px}
.lang-btn{background:transparent;border:1px solid #ccc;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;cursor:pointer;color:#555;transition:all .2s}
.lang-btn.active{background:#4f46e5;border-color:#4f46e5;color:#fff}
.lang-btn:hover:not(.active){background:#f0f0f0}
@media (max-width:768px){.lang-switcher{margin-left:0;margin-right:10px}}
.heart-beat{animation:heartbeat .8s ease-in-out infinite;transform-origin:center}
