:root{
  --bg:#0f0f11;
  --panel:#17181b;
  --panel-2:#1d1f24;
  --text:#e7e7ea;
  --muted:#9aa0a6;
  --accent:#ffd700;
  --accent-2:#ffe466;
  --radius:16px;
  --shadow:0 8px 32px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#0e0e10 0%, #0f1115 100%);
}

/* Layout */
.container{width:min(1200px,96%); margin-inline:auto}
.section{padding:56px 0}
.section--alt{background:var(--panel); box-shadow: inset 0 1px 0 rgba(255,255,255,.03), inset 0 -1px 0 rgba(0,0,0,.4)}
.section__title{font-size:28px; font-weight:700; margin:0 0 24px}
.center{text-align:center}
.muted{color:var(--muted)}

/* Header */
.hdr{position:sticky; top:0; z-index:50; background:rgba(15,15,17,.75); backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid rgba(255,255,255,.06)}
.hdr__row{display:flex; align-items:center; gap:20px; padding:12px 0}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--text)}
.brand__logo{width:40px; height:40px; border-radius:50%; border:2px solid var(--accent)}
.brand__text{display:flex; flex-direction:column; line-height:1}
.brand__text strong{font-weight:700}
.brand__text span{font-size:12px; color:var(--muted)}
.nav{margin-left:auto; display:flex; gap:18px}
.nav a{color:var(--muted); text-decoration:none; padding:8px 6px; border-radius:8px}
.nav a:hover{color:var(--text); background:rgba(255,255,255,.04)}

/* === Mobile header rules (жёстко) === */
@media (max-width: 900px){
  .nav{ display:none !important; }
  .hdr__cta{ display:none !important; }      /* прячем верхнюю CTA */
  .hdr__burger{ display:inline-flex !important; }
}

/* === Мобильная панель: фуллскрин, почти непрозрачная, со скроллом === */
.mnav-scrim{ position:fixed; inset:0; background:rgba(0,0,0,.55);
  opacity:0; pointer-events:none; transition:opacity .18s ease; z-index:48; }
.mnav-scrim.show{ opacity:1; pointer-events:auto; }

.mnav{
  position:fixed; inset:0;                    /* на всю ширину/высоту */
  width:100vw; height:100dvh; max-width:none;
  background:rgba(23,24,27,.98);              /* почти плотный фон */
  backdrop-filter:saturate(1.1) blur(4px);
  transform:translateX(100%); transition:transform .22s ease;
  z-index:49; display:flex; flex-direction:column; gap:16px;
  padding:14px 16px 18px; border-left:1px solid rgba(255,255,255,.06);
  overflow:auto;                               /* скролл внутри при переполнении */
}
.mnav.open{ transform:translateX(0); }

.mnav__head{ display:flex; align-items:center; justify-content:space-between; }
.mnav__brand{ display:flex; align-items:center; gap:10px; font-weight:700; }
.mnav__logo{ width:28px; height:28px; border-radius:50%; border:2px solid var(--accent); }
.mnav__close{ width:36px; height:36px; border-radius:10px; border:1px solid rgba(255,255,255,.12);
  background:transparent; color:var(--text); }
.mnav__close:hover{ background:rgba(255,255,255,.06); }

.mnav__links{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.mnav__links a{ text-decoration:none; color:var(--text); padding:12px 10px;
  border-radius:10px; background:rgba(255,255,255,.05); }
.mnav__links a:hover{ background:rgba(255,255,255,.08); }

/* Бургер */
.hdr__burger{
  display:none; margin-left:auto; width:40px; height:40px;
  border:1px solid rgba(255,255,255,.12); background:transparent; border-radius:10px; position:relative;
}
.hdr__burger-lines, .hdr__burger-lines::before, .hdr__burger-lines::after{
  position:absolute; left:50%; top:50%; width:20px; height:2px; background:var(--text); border-radius:2px; content:""; transform:translate(-50%,-50%);
}
.hdr__burger-lines::before{ transform:translate(-50%,-8px); }
.hdr__burger-lines::after { transform:translate(-50%, 6px); }
#menuToggle[aria-expanded="true"] .hdr__burger-lines{ background:transparent; }
#menuToggle[aria-expanded="true"] .hdr__burger-lines::before{ transform:translate(-50%,-50%) rotate(45deg); }
#menuToggle[aria-expanded="true"] .hdr__burger-lines::after { transform:translate(-50%,-50%) rotate(-45deg); }

/* Блокировка скролла фона когда панель открыта */
.no-scroll{ overflow:hidden; }



/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; height:40px; padding:0 14px; border-radius:999px; background:var(--panel-2); color:var(--text); text-decoration:none; border:1px solid rgba(255,255,255,.08)}
.btn:hover{filter:brightness(1.1)}
.btn--primary{background:var(--accent); color:#1a1a1a; border:1px solid #00000010; box-shadow:0 6px 18px rgba(255,215,0,.25)}
.btn--primary:hover{background:var(--accent-2)}
.btn--ghost{background:transparent; border-color:rgba(255,255,255,.18)}
.btn--full{width:100%}

/* Hero */
.hero{padding:56px 0}
.hero__grid{display:grid; grid-template-columns:1.2fr .8fr; gap:28px}
.hero h1{margin:0 0 12px; font-size:30px; letter-spacing:.2px}
.hero__text .muted{margin:0 0 16px}
.hero__cta{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:14px}
.hero__bullets{margin:12px 0 0; padding-left:18px}
.hero__bullets li{margin:6px 0; color:var(--muted)}
.hero__card{display:flex; align-items:center}
.kp{width:100%; background:linear-gradient(180deg,#191b20,#14161a); border:1px solid rgba(255,255,255,.08); padding:20px; border-radius:var(--radius); box-shadow:var(--shadow)}
.kp__title{font-weight:700; margin-bottom:10px}
.kp__row{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0 16px}
.kp__price{font-size:22px; font-weight:800}

@media (max-width: 700px){
  .kp__price{font-size:16px; font-weight:800}
}

/* Grid of cards */
.grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
@media (max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)} .hero__grid{grid-template-columns:1fr}}
@media (max-width:680px){.grid{grid-template-columns:1fr} .section{padding:40px 0} .hero h1{font-size:25px}}

.card{background:linear-gradient(180deg,#16181c,#121419); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column}
.card__media{aspect-ratio:16/9; overflow:hidden}
.card__media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05)}
.card__body{padding:16px}
.card__header{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px}
.card__header h3{margin:0; font-size:18px}
.price{background:rgba(255,215,0,.15); color:var(--accent); border:1px solid rgba(255,215,0,.35); padding:4px 8px; border-radius:8px; font-weight:700}
.tags{display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 12px}
.tags span{font-size:12px; color:var(--muted); padding:6px 8px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08)}
.card__actions{display:flex; gap:10px; flex-wrap:wrap}

/* Stack */
.stack{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.stack h4{margin:0 0 8px}
.stack ul{margin:0; padding-left:18px}
.stack li{color:var(--muted); margin:6px 0}

/* Адаптив для телефонов */
@media (max-width: 768px) {
  .stack {
    grid-template-columns: 1fr; /* по одному столбцу */
    gap: 12px;
  }
  .stack h4 {
    font-size: 18px; /* уменьшили заголовок */
  }
  .stack li {
    font-size: 16px; /* уменьшили пункты */
  }
}


/* Pricing */
.pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.pricing__card{background:linear-gradient(180deg,#191b20,#14161a); border:1px solid rgba(255,255,255,.08); padding:16px; border-radius:var(--radius)}
.pricing__title{font-weight:700; margin-bottom:6px}
.pricing__value{font-size:22px; font-weight:800; color:var(--accent); margin-bottom:8px}
.pricing__card ul{margin:0; padding-left:18px}
.pricing__card li{color:var(--muted); margin:6px 0}
@media (max-width:1000px){.pricing{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.pricing{grid-template-columns:1fr}}

/* Contact */
.contact{display:grid; grid-template-columns:1fr .8fr; gap:20px; align-items:start}
.contact__cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px}
.contact__links{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.contact__links a{color:var(--text); text-decoration:none; padding:10px 12px; border-radius:10px; background:var(--panel-2); border:1px solid rgba(255,255,255,.08)}
.contact__links a:hover{filter:brightness(1.1)}
@media (max-width:860px){.contact{grid-template-columns:1fr}}

/* Footer */
.ftr{border-top:1px solid rgba(255,255,255,.06); background:rgba(0,0,0,.35)}
.ftr__row{display:flex; justify-content:space-between; align-items:center; padding:16px 0}
.ftr a{color:var(--muted); text-decoration:none}
.ftr a:hover{color:var(--text)}

/* details/summary в карточках */
.dtl{margin:8px 0 12px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:6px 10px}
.dtl > summary{cursor:pointer; list-style:none; font-weight:600}
.dtl > summary::-webkit-details-marker{display:none}
.dtl[open]{background:rgba(255,255,255,.06)}
.dtl ul{margin:8px 0 0 18px}
.dtl li{color:var(--muted)}

/* бейджи и ссылки */
.badge{display:inline-block; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); font-weight:700; margin-bottom:6px}
.link{color:var(--accent); text-decoration:none}
.link:hover{filter:brightness(1.15)}

/* прайс на 4 колонки */
.pricing--tiers{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
@media (max-width:1200px){.pricing--tiers{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.pricing--tiers{grid-template-columns:1fr}}

/* блок условий */
.terms{margin-top:18px; background:linear-gradient(180deg,#191b20,#14161a); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:16px}
.terms h4{margin:0 0 8px}
.terms ul{margin:0; padding-left:18px}
.terms li{color:var(--muted); margin:6px 0}

/* Фоновые эффекты */
#fx-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  width:100vw;
  height:100vh;
  pointer-events:none;
}

/* Дополнительный glow без перерисовки канваса (CSS, дёшево для GPU) */
#fx-glow{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  --mx: 50vw;
  --my: 50vh;
  background:
    radial-gradient(600px at var(--mx) var(--my),
      rgba(255,215,0,0.10), rgba(0,0,0,0) 60%);
  mix-blend-mode: screen; /* мягкое подсвечивание */
}

/* ---------- GLASS PRESET ---------- */
:root{
  --glass: rgba(22,24,28,.55);      /* базовый фон карточек */
  --glass-2: rgba(25,27,32,.62);    /* чуть плотнее для блоков */
  --glass-hover: rgba(22,24,28,.72);
  --glass-border: rgba(255,255,255,.10);
  --glass-border-strong: rgba(255,255,255,.16);
}

/* общая декорация для "стеклянных" блоков */
.glass {
  background: var(--glass);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  box-shadow: 0 8px 32px rgba(0,0,0,.35);
  transition: background .25s ease, border-color .25s ease, transform .2s ease;
}
.glass:hover { background: var(--glass-hover); border-color: var(--glass-border-strong); transform: translateY(-1px); }

/* ---------- ПРИМЕНИТЬ К КОНКРЕТНЫМ БЛОКАМ ---------- */

/* карточки проектов */
.card{
  background: var(--glass);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  box-shadow: 0 8px 32px rgba(0,0,0,.35);
  transition: background .25s ease, border-color .25s ease, transform .2s ease;
}
.card:hover{ background: var(--glass-hover); border-color: var(--glass-border-strong); transform: translateY(-1px); }

/* ценовые карточки, условия, «кнопки»-ссылки в контактах */
.pricing__card,
.terms,
.contact__links a{
  background: var(--glass-2);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
}
.contact__links a:hover{ background: var(--glass-hover); }

/* мини-калькулятор/виджет в hero */
.kp{
  background: var(--glass-2);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(10px) saturate(1.1);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
}

/* секции с альтернативным фоном — сделать полупрозрачными */
.section--alt{
  background: linear-gradient(180deg, rgba(25,27,32,.45), rgba(18,20,25,.35));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), inset 0 -1px 0 rgba(0,0,0,.5);
}

/* header чуть воздушнее, чтобы фоном «дышало» */
.hdr{
  background: rgba(15,15,17,.55);
  backdrop-filter: saturate(1.1) blur(8px);
  -webkit-backdrop-filter: saturate(1.1) blur(8px);
  border-bottom: 1px solid rgba(255,255,255,.06);
}

/* не трогаем медиа внутри карточек — без прозрачности */
.card__media{ background: transparent; }
.card__media img{ display:block; }

/* мелочь: текст на стекле чуть контрастнее */
.card__body .muted,
.pricing__card li,
.terms li,
.contact__links a { color: #c2c6cc; }

/* убрать старую статичную рамку у логотипа (если была) */
.brand__logo{
  width:40px;
  height:40px;
  border-radius:50%;
  display:block;
  border:none; /* важно */
}

/* обёртка под крутящийся «штрих» */
.logo-spin{
  position:relative;
  display:inline-block;
  width:40px;   /* как у изображения */
  height:40px;  /* как у изображения */
}

/* бегущая дуга поверх границы */
.logo-spin::after{
  content:"";
  position:absolute;
  inset:0;                /* ровно по краю картинки */
  border-radius:50%;
  background:
    conic-gradient(
      from 0deg,
      var(--accent, #ffd700) 0 28deg,     /* длина дуги */
      transparent 100deg 360deg
    );
  animation: logo-spin-rotate 0.7s linear infinite;
  pointer-events:none;

  /* превращаем фон в тонкое «кольцо» по краю */
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0);
          mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0);
  /* лёгкое свечение — опционально */
  mix-blend-mode: screen;
  opacity:.95;
}

@keyframes logo-spin-rotate{
  to { transform: rotate(360deg); }
}


/* гарантированное скрытие hidden-элементов */
.mnav[hidden], .mnav-scrim[hidden]{ display:none !important; }

/* убираем любой горизонтальный скролл из-за off-canvas */
html, body { overflow-x: hidden; }

/* Прячем десктопную CTA на мобилке (убедись, что у кнопки есть класс hdr__cta) */
@media (max-width: 900px){
  .nav{ display:none !important; }
  .hdr__cta{ display:none !important; }
  .hdr__burger{ display:inline-flex !important; }
}

/* Подложка */
.mnav-scrim{
  position:fixed; inset:0; z-index:48;
  background:rgba(0,0,0,.55);
  opacity:0; pointer-events:none; transition:opacity .18s ease;
}
.mnav-scrim.show{ opacity:1; pointer-events:auto; }

/* Панель: ФУЛЛСКРИН и без translate */
.mnav{
  position:fixed; top:0; right:-100vw; bottom:0; left:auto;
  width:100vw; height:100dvh;
  background:rgba(23,24,27,.98);
  backdrop-filter:saturate(1.1) blur(4px);
  z-index:49;
  display:flex; flex-direction:column; gap:16px;
  padding:14px 16px 18px;
  border-left:1px solid rgba(255,255,255,.06);
  overflow:auto;
  transition:right .22s ease;
}
.mnav.open{ right:0; }

/* остальной стиль панели как был */
.mnav__head{ display:flex; align-items:center; justify-content:space-between; }
.mnav__brand{ display:flex; align-items:center; gap:10px; font-weight:700; }
.mnav__logo{ width:28px; height:28px; border-radius:50%; border:2px solid var(--accent); }
.mnav__close{ width:36px; height:36px; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:transparent; color:var(--text); }
.mnav__close:hover{ background:rgba(255,255,255,.06); }
.mnav__links{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.mnav__links a{ text-decoration:none; color:var(--text); padding:12px 10px; border-radius:10px; background:rgba(255,255,255,.05); }
.mnav__links a:hover{ background:rgba(255,255,255,.08); }
.no-scroll{ overflow:hidden; }

/* бургер — без изменений */

/* Шрифты */
body{ font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif; }
.mono{ font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }

/* контейнер для печати */
.typebox{
  position: relative;
  display:block;          /* чтобы можно было задать высоту */
}

/* сам печатающийся слой поверх */
.typebox .type{
  position:absolute;
  inset:0 auto auto 0;    /* top:0; left:0 */
}

/* курсор как был */
.type{ position:relative; white-space:pre-wrap; }
.type::after{
  content:"";
  display:inline-block;
  width:1ch; height:1.1em;
  border-right:2px solid var(--accent);
  transform: translateY(2px);
  animation: caret 1s steps(1) infinite;
}
@keyframes caret{ 50%{ opacity:0; } }


/* badges */
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.badge-chip{
  padding:6px 10px;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:var(--text);font-size:13px
}
.hero__bullets li::marker{content:"✔ ";color:var(--accent)}
@media (max-width:768px){.badge-chip{font-size:12px;padding:5px 9px}}


