/* «Досрок» — сброс, каркас, типографика по умолчанию. */
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--text-base)}
html,body{overflow-x:clip}
body{margin:0;font-family:var(--font-ui);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r-xs)}
::selection{background:var(--accent-wash)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background-color:var(--line-control)}
::-webkit-scrollbar-track{background:transparent}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--font-mono)}
.muted{color:var(--ink-2)}
.faint{color:var(--ink-3)}
.nowrap{white-space:nowrap}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:clip;clip-path:inset(50%);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
  /* Анимация-сообщение (полоса отсчёта «Отменить») сохраняется:
     обнулить её — отнять единственный признак оставшегося времени. */
  .motion-keep{animation-duration:var(--motion-keep-dur,1s)!important}
}
@media print{.no-print{display:none!important}body{background:var(--surface)}}
