*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* clip, а не hidden: hidden ломает position:sticky у шапки */
body{margin:0;overflow-x:clip;background:var(--bg-page);color:var(--text-body);font-family:var(--font-core);font-size:var(--fs-body);line-height:var(--lh-read);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{color:var(--text-heading);margin:0;line-height:var(--lh-tight);text-wrap:balance}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}
figure,blockquote{margin:0}
/* height:auto обязателен: атрибуты width/height — presentational hint,
   и без него заданная в атрибуте высота бьёт aspect-ratio */
img{max-width:100%;height:auto;display:block}
b,strong{font-weight:var(--fw-semibold);color:var(--ink)}
a{color:var(--link);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--link) 40%,transparent)}
a:hover{text-decoration-color:currentColor}
::selection{background:var(--petrol-wash);color:var(--ink)}

:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
