@import url('fonts.css');

/* ══ токены ══════════════════════════════════════════════════════ */
:root{
  --paper:#F3F3F1;
  --paper-2:#FFFFFF;
  --surface:#FFFFFF;
  --line:#DCD7CB;
  --hair:#E7E3DA;
  --ink:#17150F;
  --muted:#5B5648;
  --dim:#6B6455;
  --gold:#C08A2E;
  --gold-lt:#D9BE8A;
  --bronze:#A8813F;
  --accent:#7A5C2E;
  --shade:rgba(23,21,15,.06);
  --guilloche:.72;
  --medal-glow:none;

  --wrap:1240px;
  --pad:clamp(20px,5vw,64px);
  --gap:clamp(28px,4vw,52px);
  --sec-y:clamp(64px,9vw,124px);
  --r:2px;
  color-scheme:light;
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E0D0B;
    --paper-2:#14120E;
    --surface:#181510;
    --line:#2E2719;
    --hair:#231E15;
    --ink:#F1EBDF;
    --muted:#A79C86;
    --dim:#7E7462;
    --gold:#C08A2E;
    --gold-lt:#D9BE8A;
    --bronze:#A8813F;
    --accent:#D9BE8A;
    --shade:rgba(0,0,0,.4);
    --guilloche:.42;
    --medal-glow:drop-shadow(0 24px 60px rgba(192,138,46,.16));
    color-scheme:dark;
  }
}

:root[data-theme="dark"]{
  --paper:#0E0D0B;
  --paper-2:#14120E;
  --surface:#181510;
  --line:#2E2719;
  --hair:#231E15;
  --ink:#F1EBDF;
  --muted:#A79C86;
  --dim:#7E7462;
  --gold:#C08A2E;
  --gold-lt:#D9BE8A;
  --bronze:#A8813F;
  --accent:#D9BE8A;
  --shade:rgba(0,0,0,.4);
  --guilloche:.42;
  --medal-glow:drop-shadow(0 24px 60px rgba(192,138,46,.16));
  color-scheme:dark;
}

/* ══ база ════════════════════════════════════════════════════════ */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 17px/1.62 'PT Sans','Helvetica Neue',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3,h4{ font-family:'PT Serif',Georgia,serif; font-weight:700; margin:0; text-wrap:balance; }
h1{ font-size:clamp(38px,6.4vw,74px); line-height:1.05; letter-spacing:-.022em; }
h2{ font-size:clamp(28px,3.9vw,50px); line-height:1.1; letter-spacing:-.016em; }
h3{ font-size:clamp(19px,1.7vw,23px); line-height:1.24; letter-spacing:-.008em; }
h4{ font-size:17px; line-height:1.3; }
p{ margin:0; text-wrap:pretty; }
ul{ margin:0; padding:0; list-style:none; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad); }
.em{ color:var(--accent); }
.lead{ font-size:clamp(17px,1.55vw,20px); line-height:1.6; color:var(--muted); max-width:64ch; }
.note{ font-size:14px; line-height:1.55; color:var(--dim); }

.mono{
  font-family:'PT Mono',ui-monospace,'SF Mono',Menlo,monospace;
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
}

/* золотой ромб — печать клуба, повторяющийся мотив */
.dia::before{
  content:''; position:absolute; left:0; top:.62em;
  width:6px; height:6px; background:var(--gold); transform:rotate(45deg);
}

/* ══ шапка ═══════════════════════════════════════════════════════ */
.top{
  position:fixed; inset:0 0 auto; z-index:50;
  background:color-mix(in srgb,var(--paper) 84%,transparent);
  backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s,background .3s;
}
.top.stuck{ border-bottom-color:var(--line); }
.top .wrap{ display:flex; align-items:center; gap:20px; height:64px; }

.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; margin-right:auto; }
.brand img{ width:28px; height:28px; }
.brand b{ font-family:'PT Serif',serif; font-size:16px; font-weight:700; letter-spacing:.01em; }
.brand i{ font-style:normal; color:var(--dim); font-size:11px; letter-spacing:.12em; text-transform:uppercase; display:block; margin-top:1px; }

.nav{ display:flex; gap:26px; }
.nav a{
  text-decoration:none; font-size:14.5px; color:var(--muted);
  padding:6px 0; border-bottom:1px solid transparent; transition:color .2s,border-color .2s;
}
.nav a:hover{ color:var(--ink); border-bottom-color:var(--gold); }

/* ── гамбургер + мобильное меню (только на узких экранах) ── */
.navtoggle{
  display:none; width:44px; height:44px; margin-left:2px;
  place-items:center; background:none; border:0; cursor:pointer; color:var(--ink);
}
.navtoggle svg{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.navtoggle .ic-close{ display:none; }
.navtoggle[aria-expanded="true"] .ic-burger{ display:none; }
.navtoggle[aria-expanded="true"] .ic-close{ display:block; }
.mobmenu{ display:none; }

/* переключатель темы — сегментированный контрол */
.theme{
  display:flex; align-items:center; gap:0;
  border:1px solid var(--line); border-radius:999px; padding:2px; background:var(--surface);
}
.theme button{
  width:30px; height:26px; display:grid; place-items:center;
  background:none; border:0; border-radius:999px; cursor:pointer; color:var(--dim);
  transition:color .2s,background .2s;
}
.theme button:hover{ color:var(--ink); }
.theme button[aria-pressed="true"]{ background:var(--gold); color:#17150F; }
.theme svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* ══ кнопки ══════════════════════════════════════════════════════ */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 24px; border-radius:var(--r); text-decoration:none;
  font-size:15px; font-weight:700; letter-spacing:.005em;
  border:1px solid var(--gold); transition:background .2s,color .2s,border-color .2s,transform .12s;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn--gold{ background:var(--gold); color:#14120C; border-color:var(--gold); }
.btn--gold:hover{ background:var(--gold-lt); border-color:var(--gold-lt); }
.btn--ghost{ background:none; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--gold); color:var(--accent); }
.btn--sm{ padding:9px 17px; font-size:14px; }
.btn svg{ width:16px; height:16px; fill:currentColor; }

/* ══ герой ═══════════════════════════════════════════════════════ */
.hero{ position:relative; padding-top:calc(64px + clamp(28px,5vw,60px)); padding-bottom:clamp(48px,7vw,96px); overflow:hidden; }
.hero__grid{ display:grid; grid-template-columns:minmax(0,1fr) clamp(320px,36vw,470px); gap:var(--gap); align-items:center; }
.hero h1{ margin:18px 0 0; max-width:15ch; }
.hero h1 span{ display:block; }
.hero .lead{ margin-top:22px; max-width:44ch; }

.hero__meta{ margin-top:26px; display:flex; flex-wrap:wrap; gap:8px 24px; color:var(--dim); }
.hero__meta b{ color:var(--accent); font-weight:400; }
.hero__cta{ margin-top:32px; display:flex; flex-wrap:wrap; gap:12px; }
.hero__fine{ margin-top:16px; }

/* медаль + гравированное кольцо */
.medal{ position:relative; width:100%; aspect-ratio:1; display:grid; place-items:center; }
/* контейнер 3D-монеты (Three.js) — на месте прежней картинки медали */
.medal__coin{
  grid-area:1/1; width:71%; aspect-ratio:1; justify-self:center; align-self:center;
  filter:var(--medal-glow); animation:seal .9s cubic-bezier(.2,.7,.3,1) both;
}
.medal__coin canvas{ display:block; width:100% !important; height:100% !important; }
.medal__img{ display:block; width:100%; height:auto; }   /* статичный фолбэк без WebGL */
.medal__guilloche{
  position:absolute; left:-17%; top:-17%; width:134%; height:134%; max-width:none;
  opacity:var(--guilloche); pointer-events:none;
}
.medal__ring{ position:absolute; inset:0; animation:spin 74s linear infinite; }
.medal__ring text{
  font-family:'PT Mono',monospace; font-size:16px;
  fill:var(--bronze); text-transform:uppercase;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes seal{ from{ opacity:0; transform:scale(.93) rotate(-6deg); } to{ opacity:1; transform:none; } }

/* нижний бланк героя */
.hero__rule{
  margin-top:clamp(32px,4vw,56px); padding-top:18px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; color:var(--dim);
}

/* ══ секции ══════════════════════════════════════════════════════ */
.sec{ padding-block:var(--sec-y); position:relative; }
.sec--alt{ background:var(--paper-2); border-block:1px solid var(--hair); }

.sec__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding-bottom:14px; margin-bottom:clamp(28px,4vw,48px);
  border-bottom:1px solid var(--line);
}
.sec__head .mono{ color:var(--accent); }
.sec__head .num{ font-family:'PT Serif',serif; font-size:15px; color:var(--dim); }
.sec > .wrap > h2{ max-width:20ch; }
.sec > .wrap > h2 + .lead{ margin-top:20px; }

/* ══ 01 · разрыв ═════════════════════════════════════════════════ */
.loss{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 var(--gap); margin-top:clamp(36px,5vw,60px); }
.loss > div{ padding-top:20px; border-top:2px solid var(--line); }
.loss > div:nth-child(1){ border-top-color:var(--gold-lt); }
.loss > div:nth-child(2){ border-top-color:var(--gold); }
.loss > div:nth-child(3){ border-top-color:var(--bronze); }
.loss h3{ margin-bottom:9px; }
.loss p{ color:var(--muted); font-size:15.5px; }
.src{ margin-top:clamp(28px,4vw,44px); padding-top:14px; border-top:1px solid var(--hair); }

/* ══ 02 · реестр «как сейчас / как может быть» ═══════════════════ */
.reg{ width:100%; border-collapse:collapse; margin-top:8px; }
.reg th{
  font:400 11.5px/1 'PT Mono',monospace; letter-spacing:.14em; text-transform:uppercase;
  text-align:left; color:var(--dim); padding:0 22px 12px 0; border-bottom:1px solid var(--line); vertical-align:bottom;
}
.reg th:last-child{ color:var(--accent); padding-right:0; }
.reg td{ padding:20px 22px 20px 0; border-bottom:1px solid var(--hair); vertical-align:top; font-size:15.5px; line-height:1.55; color:var(--muted); }
.reg td:last-child{ padding-right:0; }
.reg tr:last-child td{ border-bottom:none; }
.reg .what{ font-family:'PT Serif',serif; font-size:18px; font-weight:700; color:var(--ink); width:23%; }
.reg .now{ width:36%; }
.reg .next{ position:relative; padding-left:26px; color:var(--ink); }
.reg .next::before{
  content:''; position:absolute; left:0; top:11px; width:13px; height:1px; background:var(--gold);
}

/* ══ 03 · что сможете делать ═════════════════════════════════════ */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); margin-top:8px; }
.duo__col > h3{ padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.duo__col:nth-child(2) > h3{ color:var(--accent); }
.duo li{ position:relative; padding:13px 0 13px 22px; border-bottom:1px solid var(--hair); font-size:15.5px; line-height:1.5; color:var(--muted); }
.duo li:last-child{ border-bottom:none; }
.duo li::before{ content:''; position:absolute; left:0; top:20px; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }

/* ══ 04 · направления ════════════════════════════════════════════ */
.dirs{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hair); border:1px solid var(--hair); margin-top:8px; }
.dir{ background:var(--paper); padding:clamp(22px,2.4vw,30px); position:relative; display:flex; flex-direction:column; transition:background .25s; }
.sec--alt .dir{ background:var(--paper-2); }
.dir::after{ content:''; position:absolute; left:0; top:-1px; height:2px; width:0; background:var(--gold); transition:width .4s cubic-bezier(.2,.7,.3,1); }
.dir:hover::after{ width:100%; }
.dir h3{ margin-bottom:10px; }
.dir p{ font-size:15px; line-height:1.55; color:var(--muted); margin-bottom:16px; }
.dir .gain{
  display:block; margin-top:auto; padding-top:12px; border-top:1px solid var(--hair);
  font-family:'PT Mono',monospace; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);
}
.dirs--4{ grid-template-columns:repeat(2,1fr); }

/* ══ 05 · уровни ═════════════════════════════════════════════════ */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 var(--gap); margin-top:8px; }
.step{ padding-top:22px; border-top:2px solid var(--line); }
.step:nth-child(1){ border-top-color:var(--gold-lt); }
.step:nth-child(2){ border-top-color:var(--gold); }
.step:nth-child(3){ border-top-color:var(--bronze); }
.step__name{ font-family:'PT Serif',serif; font-size:clamp(23px,2.2vw,29px); font-weight:700; line-height:1.15; }
.step__dur{ margin:6px 0 18px; color:var(--accent); }
.step li{ position:relative; padding:11px 0 11px 22px; border-top:1px solid var(--hair); font-size:15px; line-height:1.5; color:var(--muted); }
.step li::before{ content:''; position:absolute; left:0; top:18px; width:5px; height:5px; background:var(--gold); transform:rotate(45deg); }

/* ══ 06 · метод ══════════════════════════════════════════════════ */
.method{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:0 var(--gap); margin-top:8px; }
.method > div{ padding:20px 0; border-top:1px solid var(--hair); }
.method > div:nth-child(-n+3){ border-top:1px solid var(--line); }
.method h4{ font-size:18px; margin-bottom:7px; }
.method p{ font-size:15px; line-height:1.55; color:var(--muted); }

/* ══ 07 · кому подходит ══════════════════════════════════════════ */
.fit{ display:grid; grid-template-columns:1.2fr 1fr; gap:var(--gap); margin-top:8px; align-items:start; }
.fit__card{ padding:clamp(24px,2.6vw,34px); border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
.fit__card--no{ background:none; border-style:dashed; }
.fit__card h3{ margin-bottom:16px; }
.fit__card--no h3{ color:var(--dim); }
.fit li{ position:relative; padding:11px 0 11px 24px; border-top:1px solid var(--hair); font-size:15.5px; line-height:1.5; color:var(--muted); }
.fit li:first-of-type{ border-top:none; padding-top:0; }
.fit li:first-of-type::before{ top:7px; }
.fit__card--yes li::before{ content:''; position:absolute; left:0; top:18px; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }
.fit__card--no li::before{ content:''; position:absolute; left:0; top:21px; width:11px; height:1px; background:var(--dim); }
.fit__note{ grid-column:1/-1; padding-top:16px; border-top:1px solid var(--hair); }

/* ══ 08 · клуб ═══════════════════════════════════════════════════ */
.club{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); margin-top:8px; }
.club__col > .mono{ display:block; color:var(--dim); padding-bottom:12px; border-bottom:1px solid var(--line); }
.club__col h3{ margin:16px 0 12px; }
.club li{ position:relative; padding:10px 0 10px 22px; font-size:15px; line-height:1.5; color:var(--muted); }
.club li::before{ content:''; position:absolute; left:0; top:17px; width:5px; height:5px; background:var(--gold); transform:rotate(45deg); }

/* врезка «честная граница» */
.frank{
  margin-top:clamp(30px,4vw,46px); padding:20px 24px;
  border-left:2px solid var(--gold); background:var(--shade); border-radius:0 var(--r) var(--r) 0;
}
.frank b{ font-family:'PT Serif',serif; }
.frank p{ font-size:15px; color:var(--muted); margin-top:5px; }

/* ══ 09 · финальный CTA — оборот медали ═════════════════════════ */
.final{
  position:relative; overflow:hidden;
  background:#0E0D0B; color:#F1EBDF;
  padding-block:clamp(72px,10vw,132px);
  border-top:1px solid #2E2719;
}
.final__orn{ position:absolute; right:-70px; bottom:-120px; width:min(520px,58vw); opacity:.14; pointer-events:none; }
.final .wrap{ position:relative; }
.final .mono{ color:#D9BE8A; }
.final h2{ margin-top:16px; max-width:16ch; }
.final .lead{ color:#A79C86; margin-top:22px; max-width:54ch; }
.final__cta{ margin-top:36px; display:flex; flex-wrap:wrap; gap:12px; }
.final .btn--ghost{ color:#F1EBDF; border-color:#3B3323; }
.final .btn--ghost:hover{ border-color:#C08A2E; color:#D9BE8A; }
.final__meta{ margin-top:24px; color:#7E7462; }

/* ссылка-источник в .src */
.src a{ color:var(--accent); text-decoration:none; border-bottom:1px solid var(--gold-lt); transition:border-color .2s; }
.src a:hover{ border-bottom-color:var(--gold); }

/* ══ подвал ══════════════════════════════════════════════════════ */
.foot{ padding-block:clamp(40px,5vw,56px); border-top:1px solid var(--line); background:var(--paper-2); }
.foot__cols{
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:clamp(24px,4vw,56px);
  padding-bottom:26px; border-bottom:1px solid var(--hair);
}
.foot__h{ color:var(--dim); margin-bottom:14px; }
.foot__req p{ font-size:14px; line-height:1.7; color:var(--muted); }
.foot__req a{ color:var(--muted); }
.foot__nav{ display:flex; flex-direction:column; gap:2px; }
.foot a{
  display:inline-flex; align-items:center; min-height:44px; padding:2px 0;
  font-size:14.5px; color:var(--muted); text-decoration:none;
  border-bottom:1px solid transparent; transition:color .2s,border-color .2s;
}
.foot__req a{ min-height:0; display:inline; border-bottom:1px solid var(--hair); }
.foot a:hover{ color:var(--accent); border-bottom-color:var(--gold); }
.foot__legal{ margin-top:22px; font-size:12.5px; line-height:1.6; color:var(--dim); max-width:78ch; }
.foot__copy{ margin-top:16px; color:var(--dim); }

/* ══ появление при скролле ══════════════════════════════════════ */
.rise{ opacity:0; transform:translateY(14px); transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1); }
.rise.seen{ opacity:1; transform:none; }

/* ══ адаптив ═════════════════════════════════════════════════════ */
@media (max-width:1000px){
  .nav{ display:none; }
  .top .wrap .btn--sm{ display:none; }      /* CTA переносится в выпадающее меню */
  .navtoggle{ display:grid; }

  .mobmenu{
    display:flex; flex-direction:column; gap:2px;
    position:fixed; left:0; right:0; top:64px; z-index:45;
    padding:14px var(--pad) 20px;
    background:color-mix(in srgb,var(--paper) 96%,transparent);
    backdrop-filter:saturate(1.4) blur(14px);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 40px -24px rgba(23,21,15,.5);
    visibility:hidden; opacity:0; transform:translateY(-12px);
    transition:opacity .28s ease, transform .28s cubic-bezier(.2,.7,.3,1), visibility .28s;
  }
  .mobmenu.open{ visibility:visible; opacity:1; transform:none; }
  .mobmenu a:not(.btn){
    display:flex; align-items:center; min-height:52px;
    font-family:'PT Serif',serif; font-size:19px; color:var(--ink);
    text-decoration:none; border-bottom:1px solid var(--hair);
  }
  .mobmenu a:not(.btn):active{ color:var(--accent); }
  .mobmenu .btn{ margin-top:14px; justify-content:center; min-height:50px; }

  .hero__grid{ grid-template-columns:1fr; gap:clamp(34px,6vw,52px); }
  .medal{ max-width:390px; margin-inline:auto; order:-1; }
  .hero h1{ max-width:none; }
  .loss,.steps,.club{ grid-template-columns:1fr; gap:0; }
  .loss > div,.step{ margin-top:22px; }
  .loss > div:first-child,.step:first-child{ margin-top:0; }
  .club__col{ margin-top:32px; }
  .club__col:first-child{ margin-top:0; }
  .dirs,.dirs--4{ grid-template-columns:1fr 1fr; }
  .duo,.fit{ grid-template-columns:1fr; }
  .foot__cols{ grid-template-columns:1fr 1fr; }
  .foot__req{ grid-column:1/-1; }
}
@media (max-width:720px){
  body{ font-size:16px; }
  .top .wrap{ height:58px; gap:12px; }
  .brand i{ display:none; }
  .brand b{ white-space:nowrap; font-size:15px; }
  .top .wrap .btn{ display:none; }
  .theme{ margin-left:auto; }
  .mobmenu{ top:58px; }
  .hero{ padding-top:calc(58px + 30px); }
  .medal{ max-width:min(320px,78vw); }
  .dirs,.dirs--4{ grid-template-columns:1fr; }
  .btn{ padding:12px 20px; }
  .hero__cta .btn{ flex:1 1 auto; justify-content:center; }
  .foot__cols{ grid-template-columns:1fr; gap:22px; }
  .foot__req{ grid-column:auto; }
  /* декоративные орнаменты не вылезают на узких экранах */
  .final__orn{ width:min(340px,68vw); right:-36px; bottom:-70px; }
  .medal__guilloche{ left:-10%; top:-10%; width:120%; height:120%; }

  /* реестр → карточки */
  .reg,.reg tbody,.reg tr,.reg td{ display:block; width:auto; }
  .reg thead{ display:none; }
  .reg tr{ padding:20px 0; border-bottom:1px solid var(--hair); }
  .reg tr:last-child{ border-bottom:none; }
  .reg td{ padding:0; border:none; }
  .reg .what{ width:auto; margin-bottom:10px; }
  .reg .now{ width:auto; }
  .reg .now::before{
    content:'Как сейчас'; display:block; margin-bottom:4px;
    font:400 11px/1 'PT Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);
  }
  .reg .next{ margin-top:16px; padding-left:0; }
  .reg .next::before{
    content:'Как может быть'; position:static; display:block; width:auto; height:auto; background:none;
    margin-bottom:4px; font:400 11px/1 'PT Mono',monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
  }
}

/* ══ страницы-документы (оферта, политика) ══════════════════════ */
.docwrap{ max-width:1080px; margin:0 auto; padding:calc(64px + clamp(22px,4vw,44px)) var(--pad) clamp(48px,6vw,80px); }
.doc__back{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  font-size:14px; color:var(--muted); text-decoration:none;
}
.doc__back:hover{ color:var(--accent); }
.doc__back svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; }

/* ── изящная шапка документа ── */
.doc__hero{
  position:relative; overflow:hidden;
  margin-top:10px; padding:clamp(26px,4vw,44px);
  background:
    radial-gradient(120% 140% at 100% 0%, color-mix(in srgb,var(--gold) 9%,transparent) 0%, transparent 55%),
    var(--surface);
  border:1px solid var(--line); border-radius:calc(var(--r) + 2px);
}
.doc__hero .doc__eyebrow{ color:var(--accent); }
.doc-title{ font-size:clamp(28px,4vw,44px); line-height:1.08; margin:12px 0 0; letter-spacing:-.022em; text-wrap:balance; max-width:20ch; }
.doc__meta{ margin-top:18px; padding-top:16px; border-top:1px solid var(--hair); color:var(--dim); font-size:13.5px; line-height:1.75; }
.doc__meta b{ color:var(--muted); font-weight:400; }
.doc__meta a{ color:var(--accent); text-decoration:none; border-bottom:1px solid var(--gold-lt); }
.doc__seal{ position:absolute; right:-38px; top:-38px; width:150px; height:150px; opacity:.10; pointer-events:none; }

/* ── раскладка: оглавление + текст ── */
.doc__layout{ display:grid; grid-template-columns:232px minmax(0,1fr); gap:clamp(28px,4vw,56px); margin-top:clamp(28px,4vw,44px); align-items:start; }
.doc__toc{ position:sticky; top:84px; }
.doc__toc > summary{ display:none; }
.doc__toch{ color:var(--dim); margin-bottom:12px; }
.doc__toc ol{ list-style:none; margin:0; padding:0; counter-reset:toc; }
.doc__toc li{ margin:0; }
.doc__toc a{
  display:flex; gap:10px; padding:7px 0; font-size:13.5px; line-height:1.4;
  color:var(--muted); text-decoration:none; border-bottom:1px solid transparent; transition:color .2s;
}
.doc__toc a:hover{ color:var(--accent); }
.doc__toc a .tnum{ font-family:'PT Mono',monospace; font-size:12px; color:var(--bronze); min-width:1.4em; }
.doc__toc a[aria-current="true"]{ color:var(--ink); }
.doc__toc a[aria-current="true"] .tnum{ color:var(--gold); }

/* ── тело документа ── */
.doc__body{ max-width:70ch; min-width:0; }
.doc__scroll{ max-width:100%; }
.doc__body h1{
  font-family:'PT Serif',serif; font-weight:700; font-size:clamp(20px,2.2vw,25px);
  margin:clamp(30px,4vw,44px) 0 14px; padding-top:clamp(20px,3vw,28px);
  border-top:1px solid var(--hair); letter-spacing:-.01em; scroll-margin-top:84px; text-wrap:balance;
}
.doc__body h1:first-child{ border-top:none; padding-top:0; margin-top:0; }
.doc__body h2{ font-family:'PT Serif',serif; font-size:19px; margin:26px 0 10px; }
.doc__body p{ font-size:15.5px; line-height:1.72; color:var(--ink); margin:11px 0; }
.doc__body > p{ color:var(--muted); }
.doc__body strong{ font-weight:700; color:var(--ink); }
.doc__body ul{ margin:12px 0; padding-left:2px; list-style:none; }
.doc__body li{ position:relative; padding:6px 0 6px 22px; font-size:15.5px; line-height:1.65; color:var(--muted); }
.doc__body li::before{ content:''; position:absolute; left:2px; top:14px; width:5px; height:5px; background:var(--gold); transform:rotate(45deg); }
.doc__body blockquote{ margin:14px 0; padding:12px 18px; background:var(--shade); border-radius:var(--r); color:var(--muted); }
.doc__body blockquote p{ font-size:15px; color:var(--muted); margin:4px 0; }
.doc__body a{ color:var(--accent); text-decoration:none; border-bottom:1px solid var(--gold-lt); word-break:break-word; }
.doc__body a:hover{ border-bottom-color:var(--gold); }
.doc__scroll{ overflow-x:auto; margin:18px 0; border:1px solid var(--hair); border-radius:var(--r); -webkit-overflow-scrolling:touch; }
.doc__body table{ border-collapse:collapse; width:100%; min-width:520px; font-size:14.5px; }
.doc__body th{ text-align:left; font-weight:400; font-family:'PT Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); padding:14px 16px 11px; background:var(--shade); border-bottom:1px solid var(--line); vertical-align:bottom; }
.doc__body td{ padding:12px 16px; border-bottom:1px solid var(--hair); vertical-align:top; line-height:1.55; color:var(--muted); }
.doc__body tr:last-child td{ border-bottom:none; }
.doc__req{ margin-top:clamp(34px,4vw,48px); padding:22px 24px; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:var(--r); }
.doc__req p{ font-size:14.5px; line-height:1.75; color:var(--muted); margin:3px 0; }
.doc__req .doc__reqh{ font-family:'PT Serif',serif; font-size:17px; color:var(--ink); margin-bottom:8px; }

@media (max-width:900px){
  .doc__layout{ grid-template-columns:minmax(0,1fr); gap:0; }
  .doc__toc{ position:static; min-width:0; margin-bottom:8px; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
  .doc__toc a{ overflow-wrap:anywhere; }
  .doc__toc > summary{ cursor:pointer; padding:14px 18px; font-family:'PT Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); list-style:none; display:flex; align-items:center; justify-content:space-between; min-height:44px; }
  .doc__toc > summary::-webkit-details-marker{ display:none; }
  .doc__toc > summary::after{ content:'+'; font-size:18px; color:var(--gold); }
  .doc__toc[open] > summary::after{ content:'–'; }
  .doc__toc[open] > summary{ border-bottom:1px solid var(--hair); }
  .doc__toc nav{ padding:8px 18px 14px; }
  .doc__toch{ display:none; }
  .doc__toc a{ padding:9px 0; }
  .doc__body{ max-width:none; }
}

/* ══ доступность ════════════════════════════════════════════════ */
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:1px; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .rise{ opacity:1; transform:none; }
}
@media print{ .top,.theme{ display:none; } }
