/* leb.css — база страницы «по Ководству»: токены, типографика, обвязка, формы, 3D-контейнеры. */
:root{--leb-accent:#e2442f;--leb-ink:#1a1a1a;--leb-paper:#fbfaf7;--leb-muted:#6f6f6f;--leb-line:#e3e1dc;
  --leb-font-body:"Golos Text","Onest",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--leb-font-display:"Inter Tight","Golos Text",system-ui,sans-serif;
  --leb-measure:68ch;--leb-radius:6px;--leb-gap:1.25rem}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;hanging-punctuation:first last;scroll-behavior:smooth}
body{margin:0;background:var(--leb-paper);color:var(--leb-ink);font:400 18px/1.5 var(--leb-font-body);font-feature-settings:"kern","liga";text-rendering:optimizeLegibility}
h1,h2,h3{font-family:var(--leb-font-display);line-height:1.1;letter-spacing:-.01em;text-wrap:balance;margin:0 0 .5em}
h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:700}h2{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:600}h3{font-size:1.25rem;font-weight:600}
p,li{max-width:var(--leb-measure);text-wrap:pretty}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--leb-accent);text-underline-offset:.15em}a:hover{color:var(--leb-accent)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--leb-accent);outline-offset:2px}
.leb-wrap{width:min(1200px,100% - 32px);margin-inline:auto}
.leb-header{display:flex;align-items:center;justify-content:space-between;gap:var(--leb-gap);padding:1rem 0;border-bottom:1px solid var(--leb-line)}
.leb-logo{font-family:var(--leb-font-display);font-weight:700;text-decoration:none;font-size:1.25rem}
.leb-nav{display:flex;gap:1rem;flex-wrap:wrap}.leb-nav a{text-decoration:none;padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center}.leb-nav a[aria-current=page]{color:var(--leb-accent)}
main>section{padding:clamp(2.5rem,7vw,6rem) 0}
.leb-hero{display:grid;gap:2rem;align-items:center;grid-template-columns:1fr}@media(min-width:900px){.leb-hero{grid-template-columns:1.1fr 1fr}}
.leb-lead{font-size:1.25rem;color:var(--leb-muted)}
.leb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.5rem;border:0;border-radius:var(--leb-radius);background:var(--leb-accent);color:#fff;font:600 1rem var(--leb-font-body);text-decoration:none;cursor:pointer}
.leb-btn:hover{filter:brightness(.92)}.leb-btn-secondary{background:transparent;color:var(--leb-ink);box-shadow:inset 0 0 0 2px var(--leb-line)}
.leb-form{display:grid;gap:1rem;max-width:32rem}.leb-field{display:grid;gap:.35rem}.leb-field label{font-weight:600}
.leb-field input,.leb-field textarea,.leb-field select{font:inherit;font-size:max(16px,1rem);padding:.7rem .85rem;border:1px solid var(--leb-line);border-radius:var(--leb-radius);background:#fff;color:inherit;min-height:48px;width:100%}
.leb-field small{color:var(--leb-muted)}
.leb-footer{border-top:1px solid var(--leb-line);padding:2rem 0;color:var(--leb-muted);font-size:.95rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
.leb-footer a{display:inline-flex;align-items:center;min-height:44px}
.leb-hang{text-indent:-.4em}
.leb-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
figure{margin:0}figcaption{color:var(--leb-muted);font-size:.9rem;margin-top:.5rem}
table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--leb-line);vertical-align:top}th{font-weight:600}
/* 3D-контейнеры */
[data-leb3d]{position:relative;overflow:hidden;aspect-ratio:16/10;background:transparent}
.leb3d-canvas{display:block;width:100%;height:100%}
.leb3d-labels{position:absolute;inset:0;pointer-events:none}
.leb3d-label{font:500 .85rem/1.25 var(--leb-font-body);color:var(--leb-ink);background:color-mix(in srgb,var(--leb-paper) 85%,transparent);padding:.15rem .45rem;border-radius:4px;white-space:nowrap}
.leb3d-label-muted{color:var(--leb-muted);background:transparent;font-size:.8rem}
.leb3d-tip{background:var(--leb-ink);color:var(--leb-paper);font-weight:600}
.leb3d-poster{display:block;width:100%;height:100%;object-fit:cover}
.leb3d-nowebgl::after{content:"3D-сцена недоступна в этом браузере";position:absolute;inset:0;display:grid;place-items:center;color:var(--leb-muted)}
.leb3d-btn{position:absolute;left:1rem;bottom:1rem;z-index:2;min-height:44px;padding:.6rem 1rem;border:0;border-radius:var(--leb-radius);background:var(--leb-ink);color:var(--leb-paper);font:600 .95rem var(--leb-font-body);cursor:pointer}
.leb3d-hotspot-wrap{pointer-events:auto;position:relative}
.leb3d-hotspot{position:relative;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:var(--leb-accent);color:#fff;font:700 .8rem var(--leb-font-body);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.leb3d-hotspot::before{content:"";position:absolute;inset:-8px}  /* невидимая зона нажатия 44px при видимом кружке 28px */
.leb3d-hotspot-card{display:none;position:absolute;left:34px;top:-4px;min-width:14rem;max-width:20rem;padding:.6rem .8rem;background:var(--leb-paper);color:var(--leb-ink);border:1px solid var(--leb-line);border-radius:var(--leb-radius);box-shadow:0 6px 24px rgba(0,0,0,.12);font-size:.9rem;white-space:normal}
.leb3d-hotspot-wrap.is-open .leb3d-hotspot-card{display:block}
.leb-backdrop{position:absolute;inset:0;z-index:0;aspect-ratio:auto}.leb-backdrop~*{position:relative;z-index:1}
/* объясняющая сцена: липкая сцена + шаги */
.leb-explainer{display:grid;grid-template-columns:1fr;gap:1.5rem;aspect-ratio:auto;overflow:visible}
.leb-explainer-stage{position:sticky;top:0;height:52vh}
.leb-explainer-steps{display:grid;gap:2rem}
.leb-step{min-height:60vh;display:flex;align-items:center;opacity:.35;transition:opacity .3s}.leb-step.is-active{opacity:1}
@media(min-width:900px){.leb-explainer{grid-template-columns:1.2fr 1fr;gap:3rem}.leb-explainer-stage{height:100vh}.leb-step{min-height:80vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}.leb-step{opacity:1}}
@media print{.leb-header,.leb-footer,[data-leb3d]{display:none}}
