/* ============================================================
   N1ceStudio — реконструкция дизайна Тильды 1:1
   Шрифты, палитра, хедер, кнопки, базовые секции
   ============================================================ */
@font-face {
  font-family: 'BouCollegiate';
  font-weight: 400;
  src: url('https://static.tildacdn.com/tild3463-3132-4130-b133-653963303663/Bou_Collegiate.woff') format('woff');
}
@font-face {
  font-family: 'BouCollegiate';
  font-weight: 700;
  src: url('https://static.tildacdn.com/tild3532-3736-4538-b038-666563303565/Bou_Collegiate.woff') format('woff');
}

:root {
  --bg: #06070d;
  --bg-2: #0d0f1a;
  --card: #11131f;
  --border: rgba(255,255,255,0.08);
  --text: #ffffff;
  --text-dim: #8a8fa8;
  --accent: #2962ff;
  --accent-2: #00b4ff;
  --blue: #3b82f6;
  --indigo: #6366f1;
  --green: #4ade80;
  --purple: #a855f7;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-head: 'BouCollegiate', 'Inter', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  line-height: 1.55;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { max-width: 1400px; margin: 0 auto; padding: 0 32px; }

/* ---------- Заголовки секций ---------- */
.section-eyebrow {
  text-transform: uppercase; letter-spacing: .18em; font-size: 13px;
  color: var(--accent-2); font-weight: 700; margin-bottom: 12px; display: block;
}
.section-title { font-size: clamp(30px, 4vw, 46px); font-weight: 800; line-height: 1.1; margin-bottom: 12px; }
.section-title .grad { background: linear-gradient(135deg, #4a7cff 0%, #a855f7 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.section-sub { color: var(--text-dim); font-size: 17px; max-width: 620px; }

/* ---------- Кнопки ---------- */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: linear-gradient(135deg, #2962ff 0%, #5a85ff 100%);
  color: #fff; border: none; border-radius: 14px; padding: 14px 30px;
  font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  cursor: pointer; transition: all .3s cubic-bezier(.4,0,.2,1); box-shadow: 0 4px 20px rgba(41,98,255,.35);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 30px rgba(41,98,255,.5); }
.btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: rgba(255,255,255,.06); color: #fff; border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 14px 30px; font-size: 14px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: all .3s;
}
.btn-secondary:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2); }

/* ---------- Появление ---------- */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s ease; }
.fade-up.in { opacity: 1; transform: translateY(0); }

/* ---------- Футер ---------- */
.ns-footer { background: linear-gradient(180deg, rgba(8,8,14,.98) 0%, rgba(5,5,10,1) 100%); border-top: 1px solid rgba(255,255,255,.06); margin-top: 40px; position: relative; }
.ns-footer::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background: linear-gradient(90deg, transparent, rgba(59,130,246,.3) 20%, rgba(99,102,241,.5) 50%, rgba(59,130,246,.3) 80%, transparent); animation: nsGradientFlow 8s ease-in-out infinite; }
@keyframes nsGradientFlow { 0%,100%{background-position:0 50%;} 50%{background-position:100% 50%;} }
.ns-footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 60px; padding: 60px 0 40px; }
.ns-footer-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.ns-footer-logo-img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 0 8px rgba(59,130,246,.3)); }
.ns-footer-brand-title { font-size: 24px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.ns-footer-brand-sub { font-size: 9px; font-weight: 500; color: rgba(255,255,255,.4); letter-spacing: .25em; text-transform: uppercase; }
.ns-footer .blue { color: #3b82f6; text-shadow: 0 0 20px rgba(59,130,246,.5); }
.ns-footer-desc { color: var(--text-dim); font-size: 14px; margin-bottom: 20px; max-width: 300px; }
.ns-social-row { display: flex; gap: 10px; }
.ns-social-link { width: 40px; height: 40px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; transition: all .3s; }
.ns-social-link img { width: 20px; height: 20px; }
.ns-social-link:hover { background: rgba(59,130,246,.15); border-color: rgba(59,130,246,.4); }
.ns-footer-col h4 { font-size: 12px; font-weight: 700; color: var(--text-dim); text-transform: uppercase; letter-spacing: .14em; margin-bottom: 18px; }
.ns-footer-col-link { display: block; color: rgba(255,255,255,.7); font-size: 14px; padding: 5px 0; transition: all .25s; position: relative; }
.ns-footer-col-link:hover { color: #fff; transform: translateX(4px); }
.ns-footer-bottom { border-top: 1px solid rgba(255,255,255,.06); padding: 22px 0 28px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.ns-footer-legal { color: var(--text-dim); font-size: 13px; line-height: 1.7; }
.ns-footer-links { display: flex; gap: 20px; }
.ns-footer-links a { color: rgba(255,255,255,.6); font-size: 13px; }
.ns-footer-links a:hover { color: #fff; }
.ns-footer-copy { color: rgba(255,255,255,.35); font-size: 12px; margin-top: 12px; }

@media (max-width: 900px) { .ns-footer-top { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 560px) { .ns-footer-top { grid-template-columns: 1fr; } }