/* ============================================================
   AVatar Финдир — Направление A «Реестр» (Швейцарская сетка)
   neutral · condensed (Oswald) · swiss-grid · светлый
   ============================================================ */

/* ---------- Fonts (self-hosted, cyrillic + latin subsets) ---------- */
@font-face{font-family:"Oswald";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/oswald-cyrillic-500.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Oswald";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/oswald-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Oswald";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/oswald-cyrillic-600.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Oswald";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/oswald-latin-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Oswald";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/oswald-cyrillic-700.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Oswald";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/oswald-latin-700.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}

@font-face{font-family:"Plex Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/plexsans-cyrillic-400.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Plex Sans";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/plexsans-latin-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plex Sans";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/plexsans-cyrillic-400-italic.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Plex Sans";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/plexsans-latin-400-italic.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plex Sans";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/plexsans-cyrillic-500.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Plex Sans";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/plexsans-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Plex Sans";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/plexsans-cyrillic-700.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Plex Sans";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/plexsans-latin-700.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}

@font-face{font-family:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/plexmono-cyrillic-500.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/plexmono-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- Tokens ---------- */
:root{
  --paper:#F4F4F2;      /* фон 60% */
  --surface:#E8E8E4;    /* поверхности 30% */
  --ink:#171719;        /* текст */
  --muted:#57575A;      /* 2-й текст */
  --accent:#20415F;     /* акцент 10% */
  --accent-ink:#F5F6F7; /* текст на акценте */
  --line:#D6D6D1;       /* направляющие сетки */

  /* шкала ×1.333, база 18px */
  --fs-body:1.125rem;   /* 18 */
  --fs-lead:1.5rem;     /* 24 */
  --fs-h3:1.75rem;      /* 28 (в ряду шкалы округл.) */
  --fs-h2:clamp(2rem,4.5vw,2.625rem);   /* 32→42 */
  --fs-h1:clamp(2.75rem,9vw,7.5rem);
  --fs-label:0.8125rem; /* 13, служебные капс-лейблы */

  --gap:8px;
  --shell:1440px;
  --pad:clamp(20px,5vw,72px);
  --ease:cubic-bezier(.2,.6,.2,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--fs-body);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3{margin:0;font-family:"Oswald",sans-serif;font-weight:600;line-height:1.1;
  letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance;}
p{margin:0;text-wrap:pretty;max-width:64ch;}
ol,ul{margin:0;padding:0;list-style:none;}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:.06em;}
abbr{text-decoration:underline dotted var(--muted);cursor:help;text-underline-offset:.18em;}
::selection{background:var(--accent);color:var(--accent-ink);}

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

.skip-link{position:absolute;left:8px;top:-60px;z-index:60;background:var(--accent);
  color:var(--accent-ink);padding:12px 16px;font-family:"Plex Mono",monospace;
  font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.08em;transition:top .15s;}
.skip-link:focus{top:8px;}

.shell{max-width:var(--shell);margin-inline:auto;padding-inline:var(--pad);}

/* ---------- Shared bits ---------- */
.eyebrow{font-family:"Plex Mono",monospace;font-size:var(--fs-label);font-weight:500;
  text-transform:uppercase;letter-spacing:.09em;color:var(--muted);
  display:flex;align-items:baseline;gap:12px;margin:0;}
.eyebrow__no{color:var(--accent);font-variant-numeric:tabular-nums;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:"Oswald",sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;font-size:1rem;line-height:1;
  border:2px solid transparent;border-radius:0;cursor:pointer;
  padding:16px 24px;min-height:44px;text-decoration:none;
  max-width:100%;min-width:0;

  transition:background-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);
}
.btn--accent{background:var(--accent);color:var(--accent-ink);}
.btn--accent:hover{background:#18344d;}
.btn--accent:active{transform:translateY(1px);}
.btn--lg{padding:20px 32px;font-size:1.0625rem;}
.btn--block{width:100%;}

/* ============================================================
   HEADER
   ============================================================ */
.site-head{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.1) blur(6px);border-bottom:1px solid var(--line);}
.site-head__row{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;
  min-height:72px;padding-block:12px;}
.wordmark{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.18em;font-family:"Oswald",sans-serif;
  font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:1.25rem;
  color:var(--ink);text-decoration:none;line-height:1;min-width:0;}
.wordmark__mark{color:var(--accent);}
.wordmark__rest{margin-left:-.18em;}
.wordmark__sub{font-family:"Plex Mono",monospace;font-weight:500;font-size:.7rem;
  letter-spacing:.14em;color:var(--muted);align-self:center;margin-left:8px;
  padding-left:12px;border-left:1px solid var(--line);}
.site-nav{margin-left:auto;display:flex;gap:28px;}
.site-nav a{font-family:"Plex Mono",monospace;font-size:var(--fs-label);text-transform:uppercase;
  letter-spacing:.08em;color:var(--muted);text-decoration:none;}
.site-nav a:hover{color:var(--ink);}
.site-head .btn{margin-left:8px;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;overflow:hidden;padding-block:clamp(48px,9vw,120px);}
.hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,40px);position:relative;z-index:1;}

.hero__eyebrow{margin-bottom:4px;}
.hero__title{
  font-size:var(--fs-h1);font-weight:600;line-height:1.0;letter-spacing:-.02em;
  text-wrap:balance;
}
.hero__accent{color:var(--accent);}
.hero__lead p{font-size:var(--fs-lead);line-height:1.4;color:var(--ink);max-width:34ch;}
.hero__note{font-size:1rem !important;line-height:1.55;color:var(--muted);margin-top:12px;max-width:44ch;}
.hero__cta{margin-top:32px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;}
.hero__cta-note{font-family:"Plex Mono",monospace;font-size:var(--fs-label);color:var(--muted);
  text-transform:uppercase;letter-spacing:.06em;max-width:22ch;line-height:1.4;}

/* Сигнатура — реестровый индекс */
.index{border-top:2px solid var(--ink);padding-top:16px;}
.index__list{font-family:"Plex Mono",monospace;font-size:.95rem;}
.index__list li{display:flex;align-items:baseline;gap:16px;padding-block:12px;
  border-bottom:1px solid var(--line);}
.index__no{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500;}
.index__lbl{color:var(--ink);}
.index__meta{font-family:"Plex Mono",monospace;font-size:var(--fs-label);color:var(--muted);
  text-transform:uppercase;letter-spacing:.07em;margin-top:16px;}

/* ============================================================
   КАК ЭТО РАБОТАЕТ
   ============================================================ */
.how{padding-block:clamp(56px,10vw,128px);border-top:1px solid var(--line);}
.sec-head{max-width:none;margin-bottom:clamp(36px,6vw,64px);}
.sec-title{font-size:var(--fs-h2);margin-top:16px;max-width:16ch;}
.sec-sub{margin-top:16px;color:var(--muted);font-size:var(--fs-lead);line-height:1.4;max-width:44ch;}

.steps{border-top:2px solid var(--ink);}
.ledger{
  display:grid;grid-template-columns:1fr;gap:6px 32px;
  padding-block:28px;border-bottom:1px solid var(--line);
}
.ledger__no{font-family:"Plex Mono",monospace;font-weight:500;font-size:1rem;
  color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.04em;
  display:flex;align-items:center;gap:10px;}
.ledger__no::after{content:"—";color:var(--line);}
.ledger__head{font-size:var(--fs-h3);font-weight:600;line-height:1.05;}
.ledger__body{color:var(--muted);max-width:52ch;}

.how__foot{margin-top:clamp(36px,6vw,56px);display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;}
.how__foot-note{font-family:"Plex Mono",monospace;font-size:var(--fs-label);color:var(--muted);
  text-transform:uppercase;letter-spacing:.06em;max-width:40ch;line-height:1.5;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot{background:var(--surface);border-top:1px solid var(--line);padding-block:40px;margin-top:0;}
.site-foot__row{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between;align-items:flex-start;}
.wordmark--foot{font-size:1.05rem;}
.site-foot__legal{font-size:var(--fs-label);color:var(--muted);margin-top:12px;max-width:none;}
.site-foot__contact{display:flex;flex-wrap:wrap;gap:20px 28px;}
.site-foot__contact a{font-family:"Plex Mono",monospace;font-size:var(--fs-label);
  text-transform:uppercase;letter-spacing:.07em;text-decoration:none;color:var(--accent);}
.site-foot__contact a:hover{text-decoration:underline;}

/* ============================================================
   MODAL — login
   ============================================================ */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;}
.modal[hidden]{display:none;}
.modal__scrim{position:absolute;inset:0;background:rgba(20,22,26,.55);}
.modal__panel{position:relative;z-index:1;width:min(440px,100%);background:var(--paper);
  border-top:4px solid var(--accent);padding:clamp(28px,5vw,44px);
  box-shadow:0 1px 2px rgba(23,23,25,.06),0 24px 48px -16px rgba(23,23,25,.22);}
.modal__close{position:absolute;top:14px;right:14px;width:44px;height:44px;
  display:grid;place-items:center;background:transparent;border:0;cursor:pointer;color:var(--muted);}
.modal__close:hover{color:var(--ink);}
.modal__close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;}
.modal__title{font-size:1.9rem;line-height:1.02;margin-top:12px;}

.login-form{margin-top:24px;display:grid;gap:16px;}
.field{display:grid;gap:7px;}
.field label{font-family:"Plex Mono",monospace;font-size:var(--fs-label);text-transform:uppercase;
  letter-spacing:.07em;color:var(--muted);}
.field input{
  font-family:"Plex Sans",sans-serif;font-size:1.0625rem;color:var(--ink);
  background:var(--paper);border:0;border-bottom:2px solid var(--ink);border-radius:0;
  padding:12px 2px;min-height:44px;transition:border-color .15s var(--ease);
}
.field input::placeholder{color:#9a9a97;}
.field input:focus{outline:none;border-bottom-color:var(--accent);}
.field input:focus-visible{outline:none;}
.login-form__note{font-size:.85rem;color:var(--muted);line-height:1.5;margin-top:2px;}

/* ============================================================
   MOTION — один оркестрованный момент (вход-reveal по сетке)
   ============================================================ */
.reveal{opacity:1;}

@media (prefers-reduced-motion:no-preference){
  /* Hero — прочерчивание при загрузке */
  .hero .reveal{opacity:0;animation:rise .5s var(--ease) forwards;}
  .hero__eyebrow{animation-delay:.02s;}
  .hero__title{animation-delay:.08s;}
  .hero__lead{animation-delay:.16s;}
  .index{animation-delay:.24s;}

  @keyframes rise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}

  /* Секции ниже — scroll-driven reveal вдоль колонки */
  @supports (animation-timeline:view()){
    .how .reveal{
      opacity:0;transform:translateY(20px);
      animation:rise both;
      animation-timeline:view();
      animation-range:entry 0% entry 42%;
    }
  }
}

/* ============================================================
   RESPONSIVE — 12-колоночная swiss-сетка на десктопе + видимые направляющие
   ============================================================ */
@media (min-width:768px){
  .hero__grid{grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,40px) var(--gap);
    align-items:start;}
  .hero__eyebrow{grid-column:1 / 8;grid-row:1;}
  .hero__title{grid-column:1 / 10;grid-row:2;}
  .hero__lead{grid-column:1 / 7;grid-row:3;padding-top:12px;}
  .index{grid-column:9 / 13;grid-row:2 / 4;align-self:stretch;}

  /* видимые направляющие сетки — каркас, не декор */
  .hero::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    max-width:var(--shell);margin-inline:auto;left:var(--pad);right:var(--pad);
    background-image:repeating-linear-gradient(90deg,
      var(--line) 0, var(--line) 1px,
      transparent 1px, transparent calc(100%/6));
    opacity:.5;
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);
    mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);
  }

  .ledger{grid-template-columns:80px minmax(0,4fr) minmax(0,6fr);align-items:baseline;gap:0 40px;}
  .ledger__no{align-self:baseline;}
}

@media (min-width:1024px){
  .sec-head{display:grid;grid-template-columns:repeat(12,1fr);gap:0 var(--gap);align-items:end;}
  .sec-head .eyebrow{grid-column:1 / 4;}
  .sec-title{grid-column:1 / 9;grid-row:2;}
  .sec-sub{grid-column:9 / 13;grid-row:2;margin-top:0;align-self:end;}
}

/* Малые экраны: убираем вторичную навигацию, CTA прижимаем вправо — гарантия
   отсутствия горизонтального переполнения на 375px (шапка = wordmark + «Войти») */
@media (max-width:767px){
  .site-nav{display:none;}
  .site-head__row .btn{margin-left:auto;}
  .site-head__row{flex-wrap:nowrap;}
}
