:root {
  --blue: #0b63f6;
  --blue-2: #1689ff;
  --blue-deep: #0539af;
  --ink: #0d1117;
  --muted: #646b79;
  --line: #dfe5ee;
  --soft: #f4f7fc;
  --white: #ffffff;
  --radius: 24px;
  --shadow: 0 24px 70px rgba(17, 53, 117, .12);
  --font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.menu-open, body.modal-open { overflow: hidden; }
::selection { background: rgba(11,99,246,.18); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { max-width: 100%; display: block; }

.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 112px 0; position: relative; }

.scroll-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 1000; pointer-events: none; }
.scroll-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--blue), var(--blue-2)); box-shadow: 0 0 16px rgba(11,99,246,.55); }
.cursor-glow { position: fixed; width: 440px; height: 440px; border-radius: 50%; background: radial-gradient(circle, rgba(21,125,255,.09), transparent 67%); transform: translate(-50%,-50%); pointer-events: none; z-index: 0; opacity: 0; transition: opacity .3s; }

.preloader { position: fixed; inset: 0; z-index: 9999; background: #fff; display: grid; place-content: center; gap: 20px; transition: opacity .6s ease, visibility .6s ease; }
.preloader.done { opacity: 0; visibility: hidden; }
.preloader img { width: 150px; margin: auto; animation: loaderFloat 1.2s ease-in-out infinite alternate; }
.loader-line { width: 180px; height: 3px; background: #e8edf6; border-radius: 99px; overflow: hidden; }
.loader-line span { display: block; width: 45%; height: 100%; background: var(--blue); border-radius: inherit; animation: loaderLine 1s ease-in-out infinite; }
@keyframes loaderFloat { to { transform: translateY(-8px); } }
@keyframes loaderLine { from { transform: translateX(-110%); } to { transform: translateX(260%); } }

.site-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 900; padding: 18px 0; transition: .35s ease; }
.site-header.scrolled { padding: 10px 0; background: rgba(255,255,255,.86); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(223,229,238,.78); box-shadow: 0 8px 30px rgba(19,41,82,.06); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; font-size: 21px; letter-spacing: -.8px; white-space: nowrap; }
.brand img { width: 52px; height: 34px; object-fit: contain; }
.brand > span > span { color: var(--blue); }
.main-nav { display: flex; align-items: center; gap: 30px; margin-left: auto; }
.main-nav a { font-size: 14px; font-weight: 650; color: #303644; position: relative; }
.main-nav a::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 100%; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.main-nav a:hover::after, .main-nav a.active::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; border: 0; background: transparent; width: 42px; height: 42px; padding: 10px; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; background: var(--ink); margin: 5px 0; transition: .25s ease; }

.button { --mx: 0px; --my: 0px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 54px; padding: 0 24px; color: #fff; background: linear-gradient(135deg, var(--blue), #0752d9); border: 0; border-radius: 12px; font-weight: 750; font-size: 14px; box-shadow: 0 14px 28px rgba(11,99,246,.22); cursor: pointer; transform: translate(var(--mx), var(--my)); transition: box-shadow .25s, transform .14s ease, filter .25s; }
.button:hover { box-shadow: 0 18px 36px rgba(11,99,246,.3); filter: saturate(1.1); }
.button b { font-size: 18px; line-height: 1; }
.button-small { min-height: 44px; padding: 0 18px; border-radius: 10px; gap: 12px; }
.button-white { background: #fff; color: var(--ink); box-shadow: 0 16px 32px rgba(0,0,0,.16); }
.text-link { display: inline-flex; align-items: center; gap: 12px; font-weight: 750; font-size: 14px; }
.text-link span { color: var(--blue); transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px,-2px); }
