/* ПрофитДрайв · profitdrive.pro · вёрстка
   Токены и общие классы описаны в CONTRACT.md (раздел 2). forms.css пользуется переменными отсюда. */

/* ---------- Шрифты ---------- */
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400 700;font-display:swap;size-adjust:62%;src:url(../fonts/press-start-2p-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400 700;font-display:swap;size-adjust:62%;src:url(../fonts/press-start-2p-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Pixelify Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/pixelify-sans-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Pixelify Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/pixelify-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Pixelify Sans';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/pixelify-sans-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Pixelify Sans';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/pixelify-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/onest-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/onest-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/jetbrains-mono-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116,U+20BD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/jetbrains-mono-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Токены ---------- */
:root{
  --bg:#07060D; --panel:#12101C; --panel-2:#1D1A29; --line:#3A3550; --line-2:#262236;
  --text:#EDEBFF; --text-2:#B3AFD1; --text-3:#8A86A8;
  --cyan:#22D8F0; --cyan-2:#7FEFFF; --blue:#3B6BFF; --violet:#5B21F5; --violet-2:#7B5CFF;
  --yellow:#FFC21A; --yellow-shadow:#A86F00; --ink:#120F02; --shadow:#030207; --error:#FF7A7A;
  --f-pixel:'Press Start 2P','Pixelify Sans',monospace; --f-logo:'Pixelify Sans',monospace; --f-body:'Onest',system-ui,sans-serif; --f-mono:'JetBrains Mono',monospace;

  --gutter:clamp(16px,4vw,56px);
  --wrap:1360px;
  --nav-h:72px;
  --slot-bg:#0E0C16;
  color-scheme:dark;
}

/* ---------- База ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 8px)}
html.menu-open{overflow:hidden}
body{
  margin:0;min-height:100vh;background:var(--bg);color:var(--text);
  font:400 17px/1.6 var(--f-body);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
a{color:var(--cyan-2)}
a:hover{color:var(--cyan)}
h1,h2,h3,p,ul,ol{margin:0}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--violet);color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:0}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

.skip{position:fixed;left:16px;top:-120px;z-index:100;padding:12px 16px;background:var(--yellow);color:var(--ink);font-weight:600;text-decoration:none}
.skip:focus{top:16px;color:var(--ink)}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.c-yellow{color:var(--yellow)}
.c-cyan{color:var(--cyan)}
.mono{font-family:var(--f-mono)}

/* ---------- Холсты ---------- */
#rain,#spine{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
#rain{z-index:0}
#spine{z-index:1}
#rain[hidden],#spine[hidden]{display:none}
[tabindex="-1"]:focus{outline:none}
main,.footer{position:relative;z-index:2}

/* ---------- Типографика ---------- */
.eyebrow{font:600 12px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:1.25rem}
h2{font:700 clamp(1.9rem,3.4vw,3.25rem)/1.1 var(--f-pixel);letter-spacing:-.005em;color:var(--text);text-wrap:balance}
h3{font-family:var(--f-pixel);font-weight:700}
.lead{font-size:clamp(1.05rem,1.25vw,1.2rem);color:var(--text-2);max-width:46ch;margin-top:1.1rem}
.section{padding-block:clamp(5rem,12vh,9rem)}

/* ---------- Кнопки ---------- */
.actions{display:flex;flex-wrap:wrap;gap:18px 20px;margin-top:2.25rem}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 26px;border:0;border-radius:0;
  font:600 1rem/1 var(--f-body);white-space:nowrap;text-decoration:none;cursor:pointer;
  transition:transform .12s steps(2),box-shadow .12s steps(2),background-color .15s,color .15s;
}
.btn--primary{background:var(--yellow);color:var(--ink);box-shadow:5px 5px 0 var(--yellow-shadow)}
.btn--primary:hover{color:var(--ink);transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--yellow-shadow)}
.btn--primary:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--yellow-shadow)}
.btn--ghost{background:rgba(7,6,13,.55);color:var(--cyan);border:1px solid var(--cyan)}
.btn--ghost:hover{color:var(--cyan-2);background:rgba(34,216,240,.1)}
.btn--ghost:active{transform:translate(2px,2px)}

/* ---------- Пиксельные иконки (box-shadow, без картинок) ---------- */
.chat-ico{display:inline-block;position:relative;width:21px;height:18px;flex:none;color:currentColor}
.chat-ico::before{content:'';position:absolute;left:0;top:0;width:3px;height:3px;background:transparent;
  box-shadow:
    3px 0 0 currentColor,6px 0 0 currentColor,9px 0 0 currentColor,12px 0 0 currentColor,15px 0 0 currentColor,
    0 3px 0 currentColor,3px 3px 0 currentColor,6px 3px 0 currentColor,9px 3px 0 currentColor,12px 3px 0 currentColor,15px 3px 0 currentColor,18px 3px 0 currentColor,
    0 6px 0 currentColor,6px 6px 0 currentColor,12px 6px 0 currentColor,18px 6px 0 currentColor,
    0 9px 0 currentColor,3px 9px 0 currentColor,6px 9px 0 currentColor,9px 9px 0 currentColor,12px 9px 0 currentColor,15px 9px 0 currentColor,18px 9px 0 currentColor,
    3px 12px 0 currentColor,6px 12px 0 currentColor,9px 12px 0 currentColor,12px 12px 0 currentColor,15px 12px 0 currentColor,
    3px 15px 0 currentColor}

/* ---------- Шапка ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;
  padding:0 var(--gutter);
  background:linear-gradient(to bottom,rgba(7,6,13,.94) 0%,rgba(7,6,13,.7) 60%,rgba(7,6,13,0) 100%);
}
.nav__logo{justify-self:start;display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.nav__logo:hover{color:var(--text)}
.nav__logo img{width:16px;height:35px;image-rendering:pixelated}
.nav__word{font:700 22px/1 var(--f-logo);letter-spacing:.01em;white-space:nowrap}
.nav__capsule{
  display:flex;align-items:center;gap:14px;padding:9px 20px;
  border:1px solid var(--cyan);border-radius:999px;background:rgba(7,6,13,.72);
  box-shadow:0 0 0 1px rgba(34,216,240,.12),0 0 22px rgba(34,216,240,.22),inset 0 0 12px rgba(34,216,240,.08);
}
.nav__capsule a{font:600 12px/1 var(--f-mono);letter-spacing:.16em;color:var(--text);text-decoration:none;padding:4px 2px}
.nav__capsule a:hover{color:var(--cyan-2)}
.nav__line{position:relative;display:block;width:clamp(64px,10vw,168px);height:2px;background:var(--line);overflow:hidden}
.nav__progress{position:absolute;inset:0;background:linear-gradient(90deg,var(--violet),var(--blue),var(--cyan));transform:scaleX(0);transform-origin:0 50%}
.nav__menu{
  justify-self:end;height:44px;padding:0 22px;border-radius:999px;
  border:1px solid var(--line);background:rgba(18,16,28,.85);color:var(--text);
  font:600 15px/1 var(--f-body);transition:border-color .15s,color .15s;
}
.nav__menu:hover{border-color:var(--cyan);color:var(--cyan-2)}
.nav__menu:focus-visible{outline-offset:3px}

/* ---------- Меню-оверлей ---------- */
.menu{position:fixed;inset:0;z-index:80;background:rgba(7,6,13,.97);overflow-y:auto;overscroll-behavior:contain}
.menu[hidden]{display:none}
.menu__inner{min-height:100%;display:flex;flex-direction:column;justify-content:center;gap:clamp(1.5rem,4vh,3rem);padding-block:clamp(1.5rem,5vh,3rem)}
.menu__top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.menu__title{font:500 clamp(1.1rem,1.6vw,1.4rem)/1.2 var(--f-pixel);color:var(--cyan)}
.menu__close{position:relative;width:52px;height:52px;flex:none;border:1px solid var(--line);background:var(--panel);color:var(--text)}
.menu__close:hover{border-color:var(--cyan);color:var(--cyan-2)}
.menu__close span{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-10px 0 0 -10px;background:currentColor;
  box-shadow:16px 0 0 currentColor,4px 4px 0 currentColor,12px 4px 0 currentColor,8px 8px 0 currentColor,4px 12px 0 currentColor,12px 12px 0 currentColor,0 16px 0 currentColor,16px 16px 0 currentColor}
.menu__list{list-style:none;padding:0;display:grid;gap:clamp(.25rem,1.2vh,.75rem)}
.menu__intent{
  position:relative;display:inline-block;padding:.12em 0;
  font:700 clamp(2rem,5.6vw,4.75rem)/1.05 var(--f-pixel);color:var(--text);text-decoration:none;
}
.menu__intent:hover,.menu__intent:focus-visible{
  color:var(--cyan-2);
  text-shadow:-3px 0 rgba(123,92,255,.95),3px 0 rgba(34,216,240,.9);
  animation:rgb-shift .32s steps(1,end) 1;
}
.menu:not([hidden]) .menu__list li{animation:menu-in .42s steps(5,end) both}
.menu:not([hidden]) .menu__list li:nth-child(2){animation-delay:.05s}
.menu:not([hidden]) .menu__list li:nth-child(3){animation-delay:.1s}
.menu:not([hidden]) .menu__list li:nth-child(4){animation-delay:.15s}
.menu__ask{display:flex;gap:12px;max-width:760px}
.menu__ask input{
  flex:1;min-width:0;height:60px;padding:0 18px;border:3px solid var(--line);border-radius:0;
  background:var(--panel);color:var(--text);font:500 1.1rem/1 var(--f-body);
}
.menu__ask input::placeholder{color:var(--text-3)}
.menu__ask input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-color:var(--line)}
.menu__send{position:relative;width:60px;height:60px;flex:none;border:0;background:var(--cyan);color:var(--ink);box-shadow:5px 5px 0 #0D6F7C}
.menu__send:active{transform:translate(3px,3px);box-shadow:2px 2px 0 #0D6F7C}
.menu__send span{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-10px 0 0 -10px;background:transparent;
  box-shadow:8px 0 0 currentColor,12px 4px 0 currentColor,0 8px 0 currentColor,4px 8px 0 currentColor,8px 8px 0 currentColor,12px 8px 0 currentColor,16px 8px 0 currentColor,12px 12px 0 currentColor,8px 16px 0 currentColor}

@keyframes rgb-shift{
  0%{transform:translate(-3px,1px)}
  25%{transform:translate(3px,-1px)}
  50%{transform:translate(-2px,0)}
  75%{transform:translate(2px,1px)}
  100%{transform:none}
}
@keyframes menu-in{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}

/* ---------- Глитч H1 ---------- */
.glitch{position:relative}
.glitch::before,.glitch::after{
  content:attr(data-text);position:absolute;inset:0;pointer-events:none;opacity:0;
}
.glitch::before{color:var(--cyan)}
.glitch::after{color:var(--violet-2)}
.glitch.is-glitching::before{animation:glitch-a .75s steps(1,end) 1}
.glitch.is-glitching::after{animation:glitch-b .75s steps(1,end) 1}
@keyframes glitch-a{
  0%{opacity:.9;transform:translate(-5px,0);clip-path:inset(8% 0 72% 0)}
  14%{opacity:.9;transform:translate(6px,-1px);clip-path:inset(56% 0 22% 0)}
  28%{opacity:.9;transform:translate(-3px,1px);clip-path:inset(30% 0 48% 0)}
  42%{opacity:.9;transform:translate(4px,0);clip-path:inset(78% 0 6% 0)}
  56%{opacity:.9;transform:translate(-6px,0);clip-path:inset(0 0 86% 0)}
  70%{opacity:.9;transform:translate(2px,0);clip-path:inset(42% 0 40% 0)}
  85%{opacity:.9;transform:translate(-1px,0);clip-path:inset(66% 0 16% 0)}
  100%{opacity:0}
}
@keyframes glitch-b{
  0%{opacity:.85;transform:translate(5px,0);clip-path:inset(62% 0 18% 0)}
  14%{opacity:.85;transform:translate(-6px,1px);clip-path:inset(12% 0 70% 0)}
  28%{opacity:.85;transform:translate(3px,0);clip-path:inset(84% 0 2% 0)}
  42%{opacity:.85;transform:translate(-4px,-1px);clip-path:inset(36% 0 46% 0)}
  56%{opacity:.85;transform:translate(6px,0);clip-path:inset(4% 0 80% 0)}
  70%{opacity:.85;transform:translate(-2px,0);clip-path:inset(50% 0 30% 0)}
  85%{opacity:.85;transform:translate(1px,0);clip-path:inset(20% 0 64% 0)}
  100%{opacity:0}
}

/* ---------- Hero ---------- */
.hero{min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:6rem 0 4rem}
.hero__inner > *{max-width:min(58vw,820px)}
.hero__title{font:700 clamp(2.75rem,5.4vw,5.25rem)/1.02 var(--f-pixel);letter-spacing:-.01em;color:var(--text)}
.hero__title .c-yellow{text-shadow:.06em .06em 0 var(--yellow-shadow)}
.hero__lead{margin-top:1.5rem;font-size:clamp(1.05rem,1.35vw,1.25rem);color:var(--text-2);max-width:min(52vw,40rem)}

/* ---------- About: заявление + бенто ---------- */
.about__statement h2{max-width:20ch}
.bento{list-style:none;padding:0;margin-top:clamp(2rem,5vh,3.5rem);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{
  display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:150px;padding:20px 22px;
  background:var(--panel);border:3px solid var(--line);box-shadow:8px 8px 0 var(--shadow);
}
.tile__num{font:600 clamp(2.1rem,3.4vw,3.5rem)/1 var(--f-mono);letter-spacing:-.02em;color:var(--text)}
.tile__cap{font-size:15px;line-height:1.45;color:var(--text-2);max-width:26ch}
.tile--xl{grid-column:span 2;grid-row:span 2;min-height:316px;border-image:linear-gradient(135deg,var(--violet-2),var(--blue),var(--cyan)) 1}
.tile--xl .tile__num{font-size:clamp(3rem,6.2vw,6.25rem);background:linear-gradient(120deg,var(--violet-2),var(--cyan) 60%,var(--cyan-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.tile--xl .tile__cap{font-size:16px}
.tile--md{grid-column:span 2}
.tile--sm{grid-column:span 1}
.tile--sm .tile__num{color:var(--cyan-2)}
.tile--strip{grid-column:1/-1;flex-direction:row;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:8px 24px;min-height:0;background:var(--panel-2)}
.tile--strip .tile__num{font-size:clamp(1.5rem,2.6vw,2.4rem);color:var(--cyan-2)}

/* ---------- Services ---------- */
.services__head h2{max-width:16ch}
.layers{list-style:none;padding:0;margin:2.25rem 0;display:grid;gap:12px;max-width:640px}
.layer{
  position:relative;display:flex;flex-direction:column;gap:4px;padding:16px 18px;
  background:var(--panel);border:3px solid var(--line);border-left-color:var(--cyan);box-shadow:8px 8px 0 var(--shadow);
}
.layer__title{font:700 1.15rem/1.25 var(--f-pixel);color:var(--text)}
.layer__text{font-size:15px;line-height:1.45;color:var(--text-2)}
.layer--accent{border-left-color:var(--yellow)}
.layer--accent .layer__title{color:var(--yellow)}
.services__foot{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem}
.services__foot p{color:var(--text-2);max-width:40ch}

/* закреплённый режим (main.js ставит html.js-pin только на десктопе с 3D и без reduced-motion) */
.js-pin .services{padding:0}
.js-pin .services__inner{position:static;height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding-top:calc(var(--nav-h) + 3rem);padding-bottom:3rem}
.js-pin .services__head,.js-pin .services__foot{max-width:min(38vw,520px)}
.js-pin .services{position:relative}
.js-pin .layers{position:absolute;inset:0;margin:0;max-width:none;display:block;pointer-events:none}
.js-pin .layer{
  position:absolute;left:0;top:0;width:300px;opacity:0;padding:10px 14px;gap:2px;text-align:right;
  background:rgba(18,16,28,.9);border-width:1px;border-left-color:var(--line);border-right:3px solid var(--cyan);box-shadow:5px 5px 0 var(--shadow);
  will-change:transform,opacity;
}
.js-pin .layer__title{font-size:1.05rem}
.js-pin .layer__text{font-size:14px}
.js-pin .layer::before{content:'';position:absolute;top:var(--ly,50%);left:calc(100% + 3px);width:var(--lead,80px);height:1px;background:var(--cyan);opacity:.75}
.js-pin .layer::after{content:'';position:absolute;top:calc(var(--ly,50%) - 3px);left:calc(100% + var(--lead,80px));width:7px;height:7px;background:var(--cyan-2)}
.js-pin .layer--accent{border-left-color:var(--line);border-right-color:var(--yellow)}
.js-pin .layer--accent::before{background:var(--yellow)}
.js-pin .layer--accent::after{background:var(--yellow)}

/* ---------- Products ---------- */
.products__head{margin-bottom:2rem}
.orbit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.pcard{
  display:flex;flex-direction:column;gap:12px;padding:22px;
  background:var(--panel);border:3px solid var(--line);box-shadow:8px 8px 0 var(--shadow);
  backface-visibility:hidden;
}
.pcard__plate{
  display:flex;align-items:center;justify-content:center;height:100px;padding:12px 18px;background:#fff;
  clip-path:polygon(0 6px,6px 6px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px));
}
.pcard__plate img{max-height:76px;width:auto;max-width:100%;object-fit:contain}
.pcard__name{font-size:1.75rem;line-height:1.1;color:var(--text);margin-top:4px}
.pcard__lead{color:var(--text);font-weight:500}
.pcard__facts{list-style:none;padding:0;display:grid;gap:7px;font-size:14.5px;line-height:1.45;color:var(--text-2)}
.pcard__facts li{position:relative;padding-left:18px}
.pcard__facts li::before{content:'';position:absolute;left:0;top:.5em;width:6px;height:6px;background:var(--cyan)}
.pcard__link{align-self:flex-start;margin-top:auto;padding-top:6px;font:600 15px/1.4 var(--f-mono);color:var(--cyan-2);text-underline-offset:4px}
.pcard__link::after{content:' \2197'}
.pcard__btn{align-self:flex-start;margin-top:auto;min-height:48px;font-size:15px}

.js-pin .products{position:relative;height:100vh;padding:0;overflow:hidden}
.js-pin .products__head{position:absolute;left:0;right:0;top:calc(var(--nav-h) + 2rem);z-index:3;margin:0;pointer-events:none}
.js-pin .orbit{display:block;position:absolute;inset:0;padding:0;max-width:none;perspective:1600px;perspective-origin:50% 50%}
.js-pin .pcard{position:absolute;left:50%;top:57%;width:min(380px,28vw);opacity:0;will-change:transform,opacity}

/* ---------- Gov ---------- */
.gov__inner{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:clamp(24px,4vw,64px);align-items:center}
.gov__main h2{max-width:18ch}
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:2.25rem 0}
.case{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--panel);border:3px solid var(--line);box-shadow:8px 8px 0 var(--shadow)}
.case__title{font-size:1.3rem;line-height:1.2;color:var(--text)}
.case__who{color:var(--text-2);font-size:15px}
.case__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:auto;font-size:14px;color:var(--text-2)}
.case__meta .mono{font-size:13.5px;word-break:break-all}
.tag{display:inline-block;padding:3px 8px;border:1px solid var(--cyan);color:var(--cyan);font:600 12px/1.3 var(--f-mono);letter-spacing:.04em}
.gov__cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.note{font-size:14.5px;line-height:1.5;color:var(--text-2);max-width:34ch}

.ticker{
  position:relative;height:min(560px,68vh);overflow:hidden;
  background:rgba(7,6,13,.6);border-left:1px solid var(--line-2);border-right:1px solid var(--line-2);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);
}
.ticker__track{animation:ticker 40s linear infinite}
.ticker__list{list-style:none;padding:0}
.ticker__list li{padding:14px 16px;border-bottom:1px dashed var(--line-2);font:400 13px/1 var(--f-mono);letter-spacing:.05em;color:var(--text-3);white-space:nowrap}
.ticker__list li.is-real{color:var(--yellow);font-weight:600;background:rgba(255,194,26,.07)}
@keyframes ticker{from{transform:translateY(0)}to{transform:translateY(-50%)}}

/* ---------- Docs: инвентарь ---------- */
.docs__inner h2{max-width:18ch}
.inv{
  margin-top:clamp(2rem,4vh,3rem);padding:12px;background:var(--panel-2);border:3px solid var(--shadow);
  box-shadow:inset 3px 3px 0 #3A3550,inset -3px -3px 0 #0B0A12,8px 8px 0 var(--shadow);
}
.inv__grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot{
  position:relative;display:flex;flex-direction:column;gap:6px;min-height:184px;padding:18px;background:var(--slot-bg);
  box-shadow:inset 3px 3px 0 var(--shadow),inset -3px -3px 0 #2E2A42;transition:background-color .12s;
}
.slot:hover{background:#17141F}
.icon{display:grid;grid-template-columns:repeat(4,8px);grid-template-rows:repeat(4,8px);margin-bottom:10px}
.icon i{display:block}
.p-v{background:#5B21F5}.p-i{background:#4C3BFF}.p-b{background:#3B6BFF}.p-s{background:#2F8CF5}
.p-c{background:#22D8F0}.p-l{background:#7FEFFF}.p-y{background:#FFC21A}
.slot__kind{font-weight:600;font-size:14.5px;line-height:1.35;color:var(--text)}
.slot__num{font:600 1.1rem/1.3 var(--f-mono);color:var(--cyan-2);text-decoration:none;word-break:break-word}
a.slot__num{text-decoration:underline;text-decoration-color:rgba(127,239,255,.35);text-underline-offset:4px}
a.slot__num:hover{color:var(--cyan);text-decoration-color:currentColor}
.slot__meta{font-size:13.5px;line-height:1.4;color:var(--text-3)}
.slot--pending{box-shadow:inset 0 0 0 3px var(--yellow),inset 6px 6px 0 var(--shadow)}
.slot--pending .slot__num{color:var(--yellow)}
.slot__bar{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;height:10px;margin-top:auto;padding-top:0}
.slot__bar i{display:block;background:var(--line-2)}
.slot__bar i.on{background:var(--yellow)}
.docs__req{margin-top:1.75rem;font:400 12.5px/1.6 var(--f-mono);letter-spacing:.06em;color:var(--text-3)}

/* ---------- Process: лестница ---------- */
.process__head h2{max-width:18ch}
.stairs{list-style:none;padding:0;margin:clamp(2rem,5vh,3.5rem) 0 2.5rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}
.step{
  --i:0;--top:var(--violet);
  position:relative;display:flex;flex-direction:column;gap:8px;
  padding:18px 16px calc(18px + var(--i) * 3.25rem);margin-left:-3px;
  background:var(--panel);border:3px solid var(--line);border-top:6px solid var(--top);box-shadow:8px 8px 0 var(--shadow);
}
.step:first-child{margin-left:0}
.step::before{
  content:'';position:absolute;left:0;right:0;bottom:0;height:calc(var(--i) * 3.25rem);
  background-color:var(--panel-2);
  background-image:linear-gradient(var(--line-2) 3px,transparent 3px),linear-gradient(90deg,var(--line-2) 3px,transparent 3px);
  background-size:50% 3.25rem;
}
.step:nth-child(1){--i:0;--top:#5B21F5}
.step:nth-child(2){--i:1;--top:#4C3BFF}
.step:nth-child(3){--i:2;--top:#3B6BFF}
.step:nth-child(4){--i:3;--top:#22B8EE}
.step:nth-child(5){--i:4;--top:#22D8F0}
.step__n{font:600 13px/1 var(--f-mono);color:var(--text-3)}
.step__title{font:700 1.1rem/1.2 var(--f-pixel);color:var(--text)}
.step__text{font-size:14.5px;line-height:1.5;color:var(--text-2)}

/* ---------- Contact ---------- */
.contact__head h2{max-width:18ch}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start;margin-top:clamp(2rem,4vh,3rem)}
#quiz,#chat{min-height:440px;min-width:0}

/* ---------- Footer ---------- */
.footer{min-height:92vh;display:flex;align-items:flex-end;padding:8rem 0 3rem;border-top:1px solid var(--line-2)}
.footer__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:32px;align-items:end}
.footer__mark{font:700 clamp(2.75rem,6.4vw,6rem)/.95 var(--f-logo);letter-spacing:-.01em;color:var(--text);margin-bottom:2.25rem;white-space:nowrap}
.footer__contacts{list-style:none;padding:0;display:grid;gap:10px;color:var(--text-2)}
.footer__big{font:600 clamp(1.2rem,2vw,1.7rem)/1.3 var(--f-mono);color:var(--text);text-decoration:none;word-break:break-word}
.footer__big:hover{color:var(--cyan-2)}
.footer__req{margin-top:1.75rem;font:400 13px/1.6 var(--f-mono);color:var(--text-3)}
.footer__legal{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:.75rem;font-size:14px;color:var(--text-3)}
.footer__legal a{color:var(--text-2);text-underline-offset:3px}
.footer__legal a:hover{color:var(--cyan-2)}
.footer__drop{min-height:40vh}

/* ---------- Плавающие кнопки ---------- */
.ai-launcher{
  position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:12px;
  height:54px;padding:0 20px;border:1px solid var(--cyan);border-radius:0;background:var(--panel);color:var(--cyan-2);
  font:600 15px/1 var(--f-body);box-shadow:5px 5px 0 var(--shadow);
  transition:opacity .25s,transform .25s,visibility 0s linear 0s,background-color .15s;
}
.ai-launcher:hover{background:var(--panel-2);color:var(--cyan)}
.ai-launcher:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--shadow)}
.at-contact .ai-launcher{opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility 0s linear .25s}
.mobilebar{display:none}

.noscript{position:relative;z-index:3;max-width:var(--wrap);margin:0 auto;padding:24px var(--gutter);color:var(--text-2)}

/* ---------- Пометки data-todo (видны только на localhost) ---------- */
html.review [data-todo]{outline:2px dashed var(--yellow);outline-offset:4px}
:where(html.review [data-todo]){position:relative}
html.review [data-todo]::after{
  content:attr(data-todo);position:absolute;left:0;bottom:calc(100% + 8px);z-index:20;
  width:max-content;max-width:260px;padding:3px 7px;background:var(--yellow);color:var(--ink);
  font:600 11px/1.3 var(--f-mono);letter-spacing:0;text-transform:none;white-space:normal;pointer-events:none;
}

/* ---------- Раскладка «зон» под 3D-колонну (десктоп) ---------- */
@media (min-width:768px){
  .about__inner{padding-right:calc(var(--gutter) + 24vw)}
  .gov__inner{padding-right:calc(var(--gutter) + 18vw)}
  .docs__inner{padding-left:calc(var(--gutter) + 24vw)}
  .process__inner{padding-right:calc(var(--gutter) + 16vw)}
}
@media (min-width:1024px){
  .about__inner{padding-right:calc(var(--gutter) + 26vw)}
  .gov__inner{padding-right:calc(var(--gutter) + 20vw)}
  .docs__inner{padding-left:calc(var(--gutter) + 30vw)}
}
@media (max-height:820px) and (min-width:768px){
  .js-pin .layer{padding:7px 12px}
  .js-pin .layer__title{font-size:.98rem}
  .js-pin .layer__text{font-size:13px;line-height:1.35}
}
@media (max-height:760px) and (min-width:768px){
  .js-pin .pcard{width:min(360px,27vw);padding:16px;gap:8px}
  .js-pin .pcard__plate{height:76px}
  .js-pin .pcard__plate img{max-height:56px}
  .js-pin .pcard__facts{font-size:13.5px;gap:4px}
}

/* ---------- Планшет и узкий ноутбук ---------- */
@media (max-width:1023px){
  .gov__inner{grid-template-columns:minmax(0,1fr)}
  .ticker{height:200px}
  .inv__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stairs{grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch}
  .step{margin-left:calc(var(--i) * 14px);padding-bottom:18px}
  .step:first-child{margin-left:0}
  .step::before{display:none}
  .contact__grid{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Телефон ---------- */
@media (max-width:767px){
  :root{--gutter:16px;--nav-h:64px}
  body{font-size:16px}
  .nav{grid-template-columns:1fr auto}
  .nav__capsule{display:none}
  .nav__word{font-size:19px}
  .nav__menu{height:42px;padding:0 18px}
  .section{padding-block:4.5rem}
  .hero{padding:5.5rem 0 3.5rem}
  .hero__inner > *{max-width:none}
  .hero__title{font-size:clamp(2rem,9vw,2.6rem);line-height:1.05}
  .hero__lead{max-width:none}
  .eyebrow{font-size:11px;letter-spacing:.1em}
  .actions{flex-direction:column;align-items:stretch}
  .actions .btn{width:100%}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .tile{padding:16px;min-height:130px;box-shadow:6px 6px 0 var(--shadow)}
  .tile--xl{grid-column:span 2;grid-row:auto;min-height:200px}
  .tile--md{grid-column:span 2}
  .tile--strip{flex-direction:column;align-items:flex-start}
  .orbit{grid-template-columns:minmax(0,1fr);gap:20px}
  .cases{grid-template-columns:minmax(0,1fr)}
  .gov__cta .btn{width:100%}
  .ticker{height:180px}
  .inv{padding:8px}
  .inv__grid{gap:6px}
  .slot{min-height:170px;padding:14px}
  .services__foot .btn,.process__cta .btn{width:100%}
  .footer{min-height:0;padding:5rem 0 calc(96px + env(safe-area-inset-bottom))}
  .footer__inner{grid-template-columns:minmax(0,1fr)}
  .footer__mark{font-size:clamp(2.4rem,13vw,3.4rem)}
  .footer__drop{display:none}
  .ai-launcher{display:none}
  .mobilebar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:10px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(7,6,13,.95);border-top:1px solid var(--line);
  }
  .mobilebar .btn{flex:1;min-height:52px}
  .mobilebar__chat{display:grid;place-items:center;width:56px;height:52px;flex:none;border:1px solid var(--cyan);border-radius:0;background:var(--panel);color:var(--cyan-2)}
  html.review [data-todo]::after{max-width:200px}
}
@media (max-width:380px){
  .inv__grid{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Меньше движения ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .ticker__track{animation:none!important}
  .glitch::before,.glitch::after{display:none}
}

/* ---------- Страница политики (privacy.html) ---------- */
.legal{position:relative;z-index:2;padding:calc(var(--nav-h) + 3rem) 0 5rem}
.legal .wrap{max-width:900px}
.legal h1{font:700 clamp(2rem,4vw,3rem)/1.1 var(--f-pixel);margin-bottom:1.25rem}
.legal h2{font-size:clamp(1.3rem,2vw,1.7rem);margin:2.5rem 0 .9rem}
.legal p,.legal li{color:var(--text-2);max-width:72ch}
.legal p + p{margin-top:.8rem}
.legal ul{padding-left:1.2rem;display:grid;gap:.4rem}
.legal__draft{margin-bottom:2rem;padding:16px 18px;border:3px dashed var(--yellow);background:rgba(255,194,26,.06);color:var(--text)}
.legal__draft strong{color:var(--yellow)}
.legal__meta{font:400 13px/1.6 var(--f-mono);color:var(--text-3)}
.nav--simple{grid-template-columns:1fr auto}
.nav__back{justify-self:end;font:600 14px/1 var(--f-body);color:var(--cyan-2)}

/* номер закупки в кейсе не рвём посередине: переносим целиком */
.case__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.case__meta .mono { white-space: nowrap; font-size: 12px; letter-spacing: 0; }

/* телефон: у шапки сплошной фон, текст под логотипом не просвечивает; плитки без пустоты */
@media (max-width:767px){
  .nav{background:rgba(7,6,13,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-2)}
  .tile{min-height:0;justify-content:flex-start;gap:10px}
  .tile--xl{min-height:0}
  .tile--xl .tile__num{font-size:3.2rem}
}

/* телефон: место под яркую каплю над заголовком и над знаком в подвале */
@media (max-width:767px){
  .hero{align-items:flex-start;padding-top:42dvh}
  .footer__drop{display:block;order:-1;min-height:34vh}
}

/* частые вопросы: аккордеон, одновременно открыт один пункт (details name="faq") */
.faq__head{text-align:center;max-width:760px;margin:0 auto clamp(2rem,5vh,3rem)}
.faq__head .lead{margin:1rem auto 0}
.faq__list{max-width:880px;margin:0 auto;display:grid;gap:12px}
.faq__item{background:var(--panel);border:3px solid var(--line);box-shadow:6px 6px 0 var(--shadow)}
.faq__item[open]{border-color:var(--cyan)}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;cursor:pointer;list-style:none;font:600 clamp(1.05rem,1.4vw,1.2rem)/1.35 var(--f-body);color:var(--text)}
.faq__q::-webkit-details-marker{display:none}
.faq__q::after{content:"+";flex:none;width:32px;height:32px;display:grid;place-items:center;border:2px solid var(--yellow);color:var(--yellow);font:700 20px/1 var(--f-mono);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.faq__item[open] .faq__q::after{transform:rotate(45deg)}
.faq__q:hover{color:var(--cyan-2)}
.faq__q:focus-visible{outline:2px solid var(--cyan);outline-offset:-5px}
.faq__a{margin:0;padding:0 24px 22px;max-width:70ch;font-size:16px;line-height:1.6;color:var(--text-2)}
@media (max-width:767px){
  .faq__head{text-align:left}
  .faq__q{padding:16px;font-size:16px}
  .faq__a{padding:0 16px 18px;font-size:15px}
}
@media (prefers-reduced-motion:reduce){.faq__q::after{transition:none}}
