*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
table{border-collapse:collapse;width:100%}
summary::-webkit-details-marker{display:none}

:focus-visible{
  outline:2px solid var(--accent-hi);
  outline-offset:3px;
  border-radius:4px;
}

.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.section{padding-block:96px;position:relative}
.section--tight{padding-block:72px}

h1,h2,h3{
  line-height:1.1;
  text-wrap:balance;
  hyphens:none;
  font-weight:600;
}

.display{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.01em;
}
h1.display{font-size:clamp(38px,5.4vw,68px);line-height:1.06}
h2.display{font-size:clamp(29px,3.6vw,46px);line-height:1.1}

.h-block{
  font-family:var(--font-head);
  font-weight:800;
  font-size:clamp(25px,2.9vw,38px);
  letter-spacing:-.012em;
  line-height:1.13;
}

.hl{
  background:var(--accent-grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-style:italic;
  padding-right:.06em;
}
@supports not ((background-clip:text) or (-webkit-background-clip:text)){
  .hl{color:var(--accent-hi);background:none}
}

.eyebrow{
  font-family:var(--font-mono);
  font-weight:500;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent-hi);
}

.lead{
  color:var(--text-muted);
  font-size:17px;
  max-width:52ch;
}

.muted{color:var(--text-muted)}
.dim{color:var(--text-dim)}
.mono{font-family:var(--font-mono);font-weight:500;letter-spacing:.08em}
.center{text-align:center}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--font-head);
  font-weight:600;
  font-size:16px;
  line-height:1;
  padding:16px 30px;
  border-radius:999px;
  background:var(--accent-grad);
  color:#fff;
  box-shadow:0 8px 30px rgba(109,51,224,.35);
  transition:transform .18s var(--ease), box-shadow .22s var(--ease), filter .18s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 38px rgba(139,92,246,.5);filter:brightness(1.06)}
.btn:active{transform:translateY(0)}
.btn--sm{padding:12px 22px;font-size:15px}
.btn--lg{padding:18px 34px;font-size:17px}
.btn--ghost{
  background:var(--surface-2);
  color:var(--text);
  border:1px solid var(--border);
  box-shadow:none;
  font-weight:500;
}
.btn--ghost:hover{border-color:var(--border-strong);background:#221838;box-shadow:none;filter:none}

.reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
  will-change:opacity,transform;
}
.reveal.is-in{opacity:1;transform:none}

.skip{
  position:absolute;
  left:-9999px;
  top:10px;
  z-index:200;
  background:var(--surface-2);
  border:1px solid var(--border-strong);
  padding:10px 18px;
  border-radius:10px;
}
.skip:focus{left:20px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* тач: анимаций нет, ховеры не залипают */
@media (hover:none){
  .reveal{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none;box-shadow:0 8px 30px rgba(109,51,224,.35);filter:none}
  .btn:active{transform:scale(.98)}
}

@media (max-width:900px){
  body{font-size:16px}
  .section{padding-block:80px}
  .section--tight{padding-block:64px}
  :root{--gutter:20px}
}

/* плашка согласия на аналитику — показывается один раз, до выбора (152-ФЗ) */
.consent{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:250;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:18px max(20px, calc((100% - var(--maxw))/2 + var(--gutter)));
  background:rgba(20,14,34,.94);
  backdrop-filter:blur(14px);
  border-top:1px solid var(--border-strong);
  box-shadow:0 -16px 48px rgba(0,0,0,.45);
}
.consent__txt{font-size:14px;color:var(--text-muted);line-height:1.5;max-width:64ch}
.consent__txt strong{color:var(--text);font-weight:600}
.consent__txt a{color:var(--accent-hi);text-decoration:underline;text-underline-offset:2px}
.consent__btns{display:flex;gap:10px;flex-shrink:0}
body.has-consent{padding-bottom:92px}
@media (max-width:600px){
  .consent{flex-direction:column;align-items:stretch;padding:16px var(--gutter)}
  .consent__btns{justify-content:flex-end}
  body.has-consent{padding-bottom:140px}
}
