/* CY_BORG — «сочность»: неон, свечение курсора, прогресс, всплески кубиков, наклон карточек, блики кнопок */
#juice-bar { position: fixed; left: 0; top: 0; height: 4px; width: 100%; transform-origin: 0 50%; transform: scaleX(var(--prog, 0)); z-index: 9500; pointer-events: none;
  background: linear-gradient(90deg, var(--c), var(--p), var(--y)); box-shadow: 0 0 12px var(--p), 0 0 24px var(--c); }
#juice-glow { position: fixed; inset: 0; z-index: 8990; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(24, 230, 255, .16), rgba(255, 61, 180, .08) 40%, transparent 70%); mix-blend-mode: screen; }
#juice-glow.on { opacity: 1; }
#juice-fx { position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 9400; pointer-events: none; }
#juice-fx i { position: fixed; width: 9px; height: 9px; pointer-events: none; will-change: transform, opacity; }
#juice-fx .ring { width: 20px; height: 20px; border: 3px solid var(--y); background: transparent; border-radius: 50%; }
#juice-fx .flash { position: fixed; inset: 0; width: auto; height: auto; background: radial-gradient(circle at var(--fx) var(--fy), rgba(255, 230, 0, .35), transparent 55%); }

/* кнопки: блик и пульс */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; transform: translateX(-120%) skewX(-22deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent); }
.btn .rip { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .6); pointer-events: none; transform: translate(-50%, -50%) scale(0); z-index: -1; }
.btn.y:not([disabled]), .hero-cta .btn.y { box-shadow: 4px 4px 0 #000, 0 0 0 0 rgba(255, 230, 0, 0); }

/* неон на ключевых заголовках */
.sec-h .num { text-shadow: 0 0 0 transparent; }
.b-black .sec-h h2, .b-ink .sec-h h2 { text-shadow: 0 0 14px rgba(24, 230, 255, .35), 0 0 34px rgba(255, 61, 180, .25); }
.ab .score, .hp-big, .debt-big, .cred-big, .res .big { font-variant-numeric: tabular-nums; }
.res { transition: background .25s, border-color .25s, transform .25s; }
.res:not(.empty):hover { background: rgba(0, 0, 0, .42); border-left-color: var(--y); }
.ab, .ccard { transform-style: preserve-3d; will-change: transform; }
.ab.tilting, .ccard.tilting { transition: transform .08s linear, box-shadow .15s; }
.ab:not(.tilting), .ccard:not(.tilting) { transition: transform .35s cubic-bezier(.2, .9, .3, 1.2), box-shadow .2s; }
.ccard:hover { box-shadow: 8px 8px 0 var(--p), 0 0 28px rgba(255, 61, 180, .4); }
.ab:hover { box-shadow: 8px 8px 0 #000, 0 0 24px rgba(255, 230, 0, .5); }
.sheet { box-shadow: 8px 8px 0 #000, 0 0 40px rgba(255, 230, 0, .18); }

@media (prefers-reduced-motion: no-preference) {
  .btn:not([disabled]):hover::before { animation: shine .6s ease-out; }
  @keyframes shine { to { transform: translateX(120%) skewX(-22deg); } }
  .btn .rip.go { animation: rip .55s ease-out forwards; }
  @keyframes rip { to { transform: translate(-50%, -50%) scale(1); opacity: 0; } }
  .hero-cta .btn.y { animation: cta 2.4s ease-in-out infinite; }
  @keyframes cta { 50% { box-shadow: 4px 4px 0 #000, 0 0 26px 4px rgba(255, 230, 0, .7); } }
  .sec-h .num { animation: numglow 3.5s ease-in-out infinite alternate; }
  @keyframes numglow { to { text-shadow: 0 0 18px rgba(255, 61, 180, .75), 0 0 2px rgba(24, 230, 255, .9); } }
  .hero h1, .hero .logo { filter: drop-shadow(0 0 18px rgba(255, 61, 180, .35)); }
  .hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1; mix-blend-mode: overlay;
    background: linear-gradient(115deg, transparent 30%, rgba(24, 230, 255, .22) 48%, rgba(255, 61, 180, .22) 52%, transparent 70%); background-size: 250% 100%; animation: sweep 7s linear infinite; }
  @keyframes sweep { from { background-position: 150% 0; } to { background-position: -100% 0; } }
  /* набегающая строчка сканера по карточкам результата */
  .res.fresh::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--c); box-shadow: 0 0 10px var(--c); animation: scan .6s ease-out forwards; }
  .res { position: relative; }
  @keyframes scan { to { transform: translateY(var(--h, 80px)); opacity: 0; } }
  .ab .score.fresh { text-shadow: 3px 0 var(--p), -3px 0 var(--c); }
  .steps a { transition: background .15s, color .15s, transform .15s; }
  .steps a:hover { transform: translateY(-2px); }
  .dock { animation: dockin .6s cubic-bezier(.2, 1.2, .4, 1) .3s backwards; }
  @keyframes dockin { from { transform: translateY(100%); } }
  .lockbar { background-image: repeating-linear-gradient(-45deg, rgba(0, 0, 0, .25) 0 12px, transparent 12px 24px); background-size: 68px 100%; animation: lockrun 2s linear infinite; }
  @keyframes lockrun { to { background-position: 68px 0; } }
}
@media (hover: none) { #juice-glow { display: none; } .btn:hover::before { animation: none; } }
@media print { #juice-bar, #juice-glow, #juice-fx { display: none !important; } }
