/* ═══════════════════════════════════════════════════════════════
   БАЗА
   ═══════════════════════════════════════════════════════════════ */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;height:100%}
[hidden]{display:none!important}
body{margin:0;height:100%;overflow:hidden;background:radial-gradient(1100px 520px at 12% -8%,var(--acc-a8),transparent 62%),radial-gradient(900px 480px at 110% 110%,var(--ai-a12),transparent 60%),var(--page);background-attachment:fixed;color:var(--ink);font-family:var(--ui);
  font-size:14px;line-height:1.5;letter-spacing:-.002em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
button,input,select,textarea{font-family:inherit;letter-spacing:inherit;color:inherit}
button{-webkit-tap-highlight-color:transparent}
::selection{background:var(--acc-a12)}
:focus-visible{outline:none;box-shadow:0 0 0 4px var(--acc-a12)!important;border-radius:10px}
/* если в ОС выключены «эффекты анимации» (Windows → Специальные возможности), браузер просит reduced-motion:
   гасим только фоновые бесконечные циклы — мерцание, облака, кольца; короткие отклики и отправка письма играют */
@media (prefers-reduced-motion:reduce){.hero,.ai-fab::after,.fx-sky i,.fx-plane i,.fx.done .fx-ok::after{animation:none!important}}

/* плавная смена темы */
body,.nav,.top,.col,.card,.trig,.pop,.f input,.f textarea,.f select,.kind,.rail-foot,.frame,.subj,.drawer,.menu,.bar,.hero{
  transition-property:background-color,color,border-color,box-shadow;
  transition-duration:.4s;transition-timing-function:var(--e);}

/* появление */
@keyframes rise{from{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes logopop{from{opacity:0;transform:scale(.8) translateY(8px)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes glow{0%{box-shadow:0 0 0 0 var(--ai-a30);background:var(--ai-a12)}
  60%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent;background:var(--fill)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes blink{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
.anim{animation:rise .5s var(--e-out) both}
