/* ==========================================================================
   трекшн · общие стили для всех страниц
   Направление: кино (ночная плёночная съёмка) × свет (призма, стекло).
   Сиреневый #837AE3 — бренд и наставник. Лайм #CFED05 — действие и результат.
   Спектр сиреневый→лайм живёт только как свет, никогда как заливка.
   Шрифт подключается отдельно: assets/fonts/geologica.css (свой сервер, без Google).
   ========================================================================== */

:root{
  color-scheme: dark;
  --bg:#0A0810;
  --bg2:#110E19;
  --text:#F2F0F7;
  --mute:rgba(242,240,247,.70);
  --dim:rgba(242,240,247,.50);
  --line:rgba(242,240,247,.10);
  --line2:rgba(242,240,247,.18);
  --violet:#837AE3;
  --violet-hi:#ABA4F6;
  --lime:#CFED05;
  --danger:#FF7A7A;
  --glass:rgba(255,255,255,.05);
  --glass-b:rgba(255,255,255,.12);
  --gut:clamp(16px,5vw,72px);
  --maxw:1296px;
  --f:"Geologica",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--f); font-size:17px; line-height:1.58; font-weight:340;
  font-variation-settings:"SHRP" 0;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,p{ margin:0; }
h1,h2,h3{ font-weight:600; text-wrap:balance; }
a{ color:inherit; }
img{ display:block; max-width:100%; height:auto; }
::selection{ background:var(--lime); color:var(--bg); }
:focus-visible{ outline:2px solid var(--lime); outline-offset:3px; border-radius:6px; }
[hidden]{ display:none !important; }

/* плёночное зерно поверх всего сайта */
.grain{
  position:fixed; inset:0; z-index:90; pointer-events:none; opacity:.07;
  background-image:url("grain.png"); background-size:160px 160px; mix-blend-mode:overlay;
}

.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.sec{ padding-block:clamp(56px,7vw,104px); position:relative; }
.h2{ font-size:clamp(2rem,4.4vw,3.75rem); line-height:1.04; letter-spacing:-.038em;
  font-variation-settings:"SHRP" 30; }
.lead{ font-size:clamp(1.06rem,1.4vw,1.25rem); line-height:1.6; color:var(--mute); max-width:56ch; }
.muted{ color:var(--mute); }
.nowrap{ white-space:nowrap; }

/* заглушка: то, что фаундер должен заполнить; видно сразу */
.ph{ color:var(--lime) !important; text-decoration:underline dashed rgba(207,237,5,.6) !important; text-underline-offset:4px; }
.btn.ph{ text-decoration:none !important; }

/* ---------- кнопки ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:56px; padding:0 28px; border-radius:999px; border:0; cursor:pointer;
  font-family:var(--f); font-size:1rem; font-weight:600; line-height:1.1; text-decoration:none;
  text-align:center;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.btn svg{ width:18px; height:18px; flex:none; transition:transform .25s var(--ease); }
.btn:hover svg{ transform:translateX(3px); }
.btn--lime{ background:var(--lime); color:#0A0810; }
.btn--lime:hover{ transform:translateY(-1px);
  box-shadow:0 0 0 6px rgba(207,237,5,.14), 0 14px 44px rgba(207,237,5,.22); }
.btn--glass{ background:rgba(255,255,255,.06); color:var(--text); border:1px solid var(--line2);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.btn--glass:hover{ background:rgba(255,255,255,.11); }
.btn--sm{ min-height:44px; padding:0 20px; font-size:.94rem; }
.btn[disabled]{ opacity:.55; cursor:progress; transform:none; box-shadow:none; }

.link{ display:inline-flex; align-items:center; gap:8px; color:var(--lime); text-decoration:none; font-weight:500; }
.link:hover{ text-decoration:underline; text-underline-offset:5px; }

/* ---------- шапка ---------- */
.top{
  position:fixed; inset:0 0 auto 0; z-index:80;
  padding-top:env(safe-area-inset-top,0px);
  transition:background .35s var(--ease), border-color .35s var(--ease);
  border-bottom:1px solid transparent;
}
.top.is-solid{ background:rgba(10,8,16,.78); border-bottom-color:var(--line);
  -webkit-backdrop-filter:blur(18px) saturate(140%); backdrop-filter:blur(18px) saturate(140%); }
.top__in{ max-width:var(--maxw); margin-inline:auto; padding:14px var(--gut);
  display:flex; align-items:center; gap:24px; min-height:68px; }
.logo{ display:block; width:124px; flex:none; line-height:0; }
.logo svg{ width:100%; height:auto; }
.nav{ display:none; gap:28px; margin-left:auto; font-size:.95rem; }
.nav a{ text-decoration:none; color:var(--mute); transition:color .2s; }
.nav a:hover{ color:var(--text); }
.top__cta{ display:none; }
.top__alt{ margin-left:auto; font-size:.95rem; color:var(--mute); text-decoration:none; }
.top__alt:hover{ color:var(--text); }
@media (min-width:980px){
  .nav{ display:flex; }
  .top__cta{ display:inline-flex; }
  .top__alt{ display:none; }
}

/* ---------- поля форм ---------- */
.field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.field label, .field .lab{ font-size:.86rem; color:var(--mute); }
.field input:not([type="checkbox"]):not([type="radio"]),.field textarea,.field select{
  width:100%; font-family:var(--f); font-size:1rem; color:var(--text); font-weight:380;
  background:rgba(255,255,255,.05); border:1px solid var(--line2); border-radius:14px; padding:14px 16px;
  transition:border-color .2s, background .2s; -webkit-appearance:none; appearance:none; }
.field textarea{ resize:vertical; min-height:92px; line-height:1.45; }
.field input::placeholder,.field textarea::placeholder{ color:rgba(242,240,247,.34); }
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--violet-hi); background:rgba(255,255,255,.08); }
.field.bad input,.field.bad textarea{ border-color:var(--danger); }
.field__err{ font-size:.82rem; color:var(--danger); }
.check{ display:flex; gap:12px; align-items:flex-start; font-size:.88rem; line-height:1.45; color:var(--mute); cursor:pointer; }
.check input{ flex:none; width:20px; height:20px; margin:1px 0 0; accent-color:var(--lime); cursor:pointer; }
.check a{ color:var(--text); text-underline-offset:3px; }
.check.bad{ color:var(--danger); }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.fine{ font-size:.8rem; color:var(--dim); line-height:1.45; }

/* ---------- подвал ---------- */
.foot{ border-top:1px solid var(--line); padding-block:48px calc(96px + env(safe-area-inset-bottom,0px)); }
@media (min-width:980px){ .foot{ padding-bottom:56px; } }
.foot__in{ display:grid; gap:32px; }
@media (min-width:900px){ .foot__in{ grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:start; } }
.foot nav{ display:flex; flex-wrap:wrap; gap:10px 24px; font-size:.94rem; }
.foot nav a{ color:var(--mute); text-decoration:none; }
.foot nav a:hover{ color:var(--text); }
.foot__legal{ margin-top:16px; color:var(--dim); font-size:.82rem; line-height:1.6; }
.foot__legal a{ color:var(--mute); }
.foot__contacts{ display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:16px; font-size:.94rem; }
.foot__contacts a{ color:var(--text); text-decoration:none; }
.foot__contacts a:hover{ text-decoration:underline; text-underline-offset:4px; }

/* ---------- баннер cookie ---------- */
.cookie{ position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom,0px)); z-index:95;
  max-width:560px; margin-inline:auto; padding:18px 20px; border-radius:20px;
  background:rgba(17,14,25,.94); border:1px solid var(--glass-b); box-shadow:0 24px 70px rgba(0,0,0,.5);
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  display:flex; flex-direction:column; gap:14px; font-size:.9rem; line-height:1.5; color:var(--mute); }
.cookie a{ color:var(--text); text-underline-offset:3px; }
.cookie__row{ display:flex; flex-wrap:wrap; gap:10px; }
.cookie .btn{ min-height:42px; padding:0 18px; font-size:.9rem; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}
