/* site.css — ivese.com «Обсидиан»: тёмная кинематографическая среда, один объект-рассказ за контентом */
@font-face{font-family:"Inter Tight";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/inter-tight-700-latin.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/inter-tight-600-latin.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/manrope-400-latin.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/manrope-500-latin.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/manrope-600-latin.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/jetbrains-mono-400-latin.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-style:normal;font-display:swap;src:url(fonts/jetbrains-mono-500-latin.woff2) format("woff2")}

:root{--leb-accent:#3B4BFF;--leb-ink:#EDEEF2;--leb-paper:#07080C;--leb-muted:#8A90A3;--leb-line:rgba(237,238,242,.12);--glow:#8FA0FF;
  --leb-font-body:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--leb-font-display:"Inter Tight","Manrope",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--leb-measure:58ch;--leb-radius:8px}
html{background:#07080C}
body{background:#07080C;color:var(--leb-ink);font-size:17px}
::selection{background:rgba(59,75,255,.45)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--glow);outline-offset:3px}

/* сцена под контентом */
.story{position:fixed;inset:0;z-index:0;aspect-ratio:auto;overflow:hidden;pointer-events:none;background:#07080C}
.story .leb3d-canvas{width:100%;height:100%}
body{overflow-x:clip}
.story .leb3d-poster{object-fit:cover}
header,main,footer{position:relative;z-index:1}

/* типографика */
h1{font-size:clamp(2.6rem,6.2vw,5.6rem);letter-spacing:-.04em;line-height:.98;max-width:13ch;margin:0 0 1.5rem;color:#fff}
h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.03em;line-height:1.02;margin:0 0 1rem;color:#fff}
h3{font-size:1.25rem;letter-spacing:-.01em;margin:0 0 .35rem;color:#fff}
.eyebrow{font:500 .74rem/1.4 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--glow);margin:0 0 1.5rem}
.lead{font-size:clamp(1.05rem,1.5vw,1.3rem);color:#B9BECB;max-width:52ch}
p,li,dd{max-width:var(--leb-measure)}
a{text-decoration-color:rgba(143,160,255,.6)}a:hover{color:#fff}

/* шапка */
.site-header{position:fixed;top:0;left:0;right:0;z-index:5;background:linear-gradient(180deg,rgba(7,8,12,.85),rgba(7,8,12,0));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.site-header-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0}
.site-logo{font:700 1.5rem/1 var(--leb-font-display);letter-spacing:-.05em;color:#fff;text-decoration:none}.site-logo .dot{color:var(--leb-accent)}
.leb-nav a{color:#C7CBD6;padding:.5rem 0;min-height:44px}.leb-nav a:hover{color:#fff}
.site-cta{min-height:42px;padding:.5rem 1.05rem;font-size:.92rem}
@media(max-width:720px){.site-header-in{flex-wrap:wrap;row-gap:0}.site-cta{display:none}.leb-nav{width:100%;gap:.1rem 1rem;font-size:.9rem}.leb-nav a{min-height:36px}}

/* панели-состояния */
.panel{overflow-x:clip;scroll-margin-top:5rem;min-height:100vh;display:flex;align-items:center;padding:clamp(6rem,14vh,9rem) 0 clamp(3rem,8vh,6rem)}
.panel>.leb-wrap{width:min(1200px,100% - 32px)}
.col{position:relative;max-width:34rem}
.col-right{margin-left:auto}
.col-center{max-width:52rem;margin-inline:auto;text-align:left}
/* полупрозрачная тень под текстом, чтобы частицы не спорили с буквами */
.col::before{content:"";position:absolute;inset:-4rem -6rem;z-index:-1;background:radial-gradient(55% 55% at 50% 50%,rgba(7,8,12,.92),rgba(7,8,12,.55) 55%,rgba(7,8,12,0));pointer-events:none}
.hero .col{max-width:40rem}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:2rem}
.leb-btn{background:#EDEEF2;color:#07080C;min-height:48px;padding:.8rem 1.4rem;border-radius:999px;font-weight:600}
.leb-btn:hover{background:#fff;filter:none}
.link-arrow{color:#C7CBD6;text-decoration:none;font-weight:500}.link-arrow::after{content:" →";color:var(--glow)}
.link-arrow:hover{color:#fff}
.scroll-hint{position:absolute;left:0;right:0;bottom:1.5rem;text-align:center;font:400 .74rem/1.4 var(--font-mono);color:#6B7082;letter-spacing:.04em;margin:0;max-width:none}
.hero{position:relative}

/* появление блоков */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* что строим */
.work-list{margin:1.5rem 0 0;display:grid;gap:0;border-top:1px solid var(--leb-line)}
.work-list>div{padding:1.1rem 0;border-bottom:1px solid var(--leb-line);display:grid;gap:.3rem}
.work-list dt{font:600 1.1rem/1.3 var(--leb-font-display);color:#fff;letter-spacing:-.01em}
.work-list dd{margin:0;color:#A7ADBC}

/* процесс */
.panel.tall{min-height:auto;display:block;padding-bottom:0}
.sticky-head{padding-top:1rem}
.steps{list-style:none;margin:0;padding:0}
.steps li{min-height:62vh;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem 0 10vh}
.step-n{font:500 .8rem/1 var(--font-mono);color:var(--glow);letter-spacing:.08em;margin-bottom:1rem;display:block}
.steps p{color:#A7ADBC}

/* слои системы */
.layers{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:1rem}
.layers li{display:grid;grid-template-columns:2.5rem 1fr;gap:.25rem 1rem;align-items:baseline;padding:.6rem 0;cursor:default;transition:opacity .3s}
.layers li b{font:600 1.1rem/1.3 var(--leb-font-display);color:#fff;letter-spacing:-.01em}
.layers li span:last-child{grid-column:2;color:#A7ADBC}
.layers .leader{grid-row:1/3;align-self:stretch;position:relative}
.layers .leader::before{content:"";position:absolute;left:0;top:.5rem;width:2rem;height:1px;background:var(--leb-line);transition:background .3s,width .3s}
.layers .leader::after{content:"";position:absolute;left:0;top:calc(.5rem - 3px);width:7px;height:7px;border-radius:50%;background:#3A3F52;transition:background .3s,box-shadow .3s}
.layers li.is-hot .leader::before{background:var(--glow);width:2.4rem}
.layers li.is-hot .leader::after{background:var(--glow);box-shadow:0 0 12px var(--glow)}
.layers li.is-dim{opacity:.45}

/* принципы, about */
.principles{display:grid;gap:1.5rem;margin-top:2rem}
@media(min-width:760px){.principles{grid-template-columns:repeat(3,1fr);gap:2.5rem}}
.principles article{border-top:1px solid var(--leb-line);padding-top:1rem}
.principles p{color:#A7ADBC}
.about{margin-top:3.5rem;font-size:1.05rem;color:#B9BECB;max-width:60ch}

/* контакт */
.contact{min-height:100vh;align-items:flex-end;padding-bottom:4rem}
.contact-grid{max-width:none;display:grid;gap:2.5rem;margin-left:0}
@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,34rem) 1fr;gap:5rem;align-items:start;justify-content:space-between}}
.contact-grid::before{inset:-2.5rem -3rem;background:radial-gradient(70% 70% at 30% 50%,rgba(7,8,12,.82),rgba(7,8,12,0))}
.leb-field label{color:#fff}
.leb-field input,.leb-field textarea{background:rgba(255,255,255,.04);border:1px solid rgba(237,238,242,.18);color:#fff;border-radius:var(--leb-radius)}
.leb-field input:focus,.leb-field textarea:focus{border-color:var(--glow)}
.leb-field small{color:var(--leb-muted)}
.form-note{color:var(--leb-muted);font-size:.9rem;margin-left:.75rem}
.requisites{position:relative;font:400 .95rem/1.7 var(--font-mono);font-style:normal;display:grid;gap:.35rem;align-content:start;border-left:1px solid rgba(143,160,255,.5);padding-left:1.25rem;margin-top:3.3rem;color:#C7CBD6}
.requisites .eyebrow{margin:0 0 .5rem}.requisites a{text-decoration:none;color:#fff}

/* подвал */
.site-footer{background:#07080C}
.leb-footer{font-family:var(--font-mono);font-size:.82rem;color:#6B7082;border-top:1px solid var(--leb-line)}
.leb-footer a{color:#A7ADBC}
@media(max-width:899px){.col::before{inset:-1.5rem -1rem}.panel{padding-top:7rem}.steps li{min-height:50vh}}

.requisites::before{content:"";position:absolute;inset:-2rem -2.5rem;z-index:-1;background:radial-gradient(60% 60% at 40% 50%,rgba(7,8,12,.9),rgba(7,8,12,0));pointer-events:none}
