:root {
  --bg: #05080d;
  --bg-2: #0a1018;
  --panel: rgba(11, 18, 28, 0.72);
  --panel-strong: #0b121d;
  --line: rgba(255,255,255,.09);
  --line-blue: rgba(0, 87, 184, .35);
  --text: #f5f8fb;
  --muted: #8f9baa;
  --brand: #0057b8;
  --brand-bright: #1685ff;
  --brand-soft: rgba(0, 87, 184, .18);
  --radius: 24px;
  --shadow: 0 30px 80px rgba(0,0,0,.35);
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }
::selection { background: var(--brand); color: #fff; }

.container { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; }

.site-bg { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: -2; }
.site-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, transparent, rgba(5,8,13,.35) 55%, var(--bg) 92%);
}
.grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.85), transparent 78%);
}
.orb { position:absolute; border-radius:50%; filter: blur(90px); opacity:.24; }
.orb-a { width: 520px; height: 520px; background: var(--brand); top:-260px; left:12%; animation: driftA 14s ease-in-out infinite alternate; }
.orb-b { width: 380px; height: 380px; background:#173b71; right:-140px; top:36%; animation: driftB 18s ease-in-out infinite alternate; }
.cursor-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,87,184,.12), transparent 66%);
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .4s ease;
}
@keyframes driftA { to { transform: translate(100px, 120px) scale(1.12); } }
@keyframes driftB { to { transform: translate(-120px, -80px) scale(.9); } }

.nav-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid transparent;
  transition: .3s ease;
}
.nav-wrap.scrolled {
  background: rgba(5,8,13,.78);
  backdrop-filter: blur(18px);
  border-color: var(--line);
}
.nav { height: 82px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:12px; font-weight:700; letter-spacing:-.02em; }
.brand img { width: 42px; height: 42px; object-fit:contain; }
.brand span { font-family:"Space Grotesk", sans-serif; }
.nav-links { display:flex; align-items:center; gap:30px; color:#c8d0da; font-size:14px; }
.nav-links > a:not(.nav-cta) { transition:color .2s ease; }
.nav-links > a:not(.nav-cta):hover { color:#fff; }
.nav-cta { padding:11px 16px; border:1px solid var(--line-blue); border-radius:999px; background:var(--brand-soft); }
.menu-btn { display:none; background:none; border:0; width:42px; height:42px; cursor:pointer; }
.menu-btn span { display:block; width:22px; height:1px; background:#fff; margin:6px auto; }

.hero { min-height: calc(100vh - 82px); display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:76px; padding:90px 0 110px; }
.eyebrow, .kicker { text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:700; color:#a8b5c5; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.eyebrow span { width:26px; height:1px; background:var(--brand-bright); box-shadow:0 0 14px var(--brand-bright); }
h1,h2,h3 { font-family:"Space Grotesk", sans-serif; margin:0; letter-spacing:-.04em; }
h1 { font-size:clamp(54px, 7vw, 92px); line-height:.96; max-width:820px; }
h1 em { font-style:normal; color:#87beff; text-shadow:0 0 34px rgba(22,133,255,.24); }
.hero-lead { max-width:680px; color:var(--muted); font-size:18px; margin:28px 0 32px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.btn { min-height:52px; padding:0 20px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; gap:12px; font-weight:700; font-size:14px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:linear-gradient(135deg, var(--brand), #0877ee); box-shadow:0 10px 36px rgba(0,87,184,.3), inset 0 1px rgba(255,255,255,.16); }
.btn-primary:hover { box-shadow:0 16px 48px rgba(0,87,184,.45); }
.btn-ghost { border:1px solid var(--line); background:rgba(255,255,255,.025); }
.btn-ghost:hover { border-color:rgba(255,255,255,.18); }
.btn-large { min-height:58px; padding:0 24px; }
.hero-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:54px; max-width:680px; }
.hero-meta div { padding-top:16px; border-top:1px solid var(--line); }
.hero-meta strong { display:block; font-size:14px; }
.hero-meta span { display:block; color:#738093; font-size:12px; margin-top:4px; }

.hero-visual { perspective:1000px; }
.visual-shell {
  position:relative;
  padding:22px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(14,24,38,.9), rgba(7,12,20,.82));
  box-shadow:var(--shadow), 0 0 0 1px rgba(0,87,184,.08) inset;
  overflow:hidden;
  transform-style:preserve-3d;
  transition:transform .18s ease-out;
}
.visual-shell::before { content:""; position:absolute; width:220px; height:220px; border-radius:50%; top:-120px; right:-80px; background:rgba(22,133,255,.22); filter:blur(50px); }
.visual-topline { display:flex; align-items:center; gap:9px; font:600 10px/1.2 monospace; letter-spacing:.12em; color:#7f8c9e; }
.status-dot { width:7px; height:7px; border-radius:50%; background:#38f19c; box-shadow:0 0 12px #38f19c; }
.latency { margin-left:auto; color:#5d6b7e; }
.terminal-card { margin:22px 0 16px; padding:22px 16px; border:1px solid var(--line); border-radius:18px; background:#070b11; font:500 12px/2.05 "SFMono-Regular", Consolas, monospace; overflow:hidden; }
.code-row { white-space:nowrap; color:#c8d1dc; }
.ln { color:#445064; display:inline-block; width:28px; }
.kw { color:#7db6ff; }.fn{color:#7ee1c5}.bool{color:#ffbf69}.str{color:#d9a7ff}
.metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.metric-grid article { border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.025); padding:18px; min-height:130px; }
.metric-grid span { color:#7e8a9b; font-size:11px; text-transform:uppercase; letter-spacing:.13em; }
.metric-grid strong { display:block; font-family:"Space Grotesk",sans-serif; font-size:32px; margin-top:8px; }
.meter { height:5px; background:rgba(255,255,255,.06); border-radius:999px; margin-top:15px; overflow:hidden; }
.meter i { display:block; height:100%; width:var(--value); background:linear-gradient(90deg,var(--brand),var(--brand-bright)); border-radius:inherit; animation:meterIn 1.4s .5s ease both; }
@keyframes meterIn { from { width:0; } }
.pulse-line { height:34px; margin-top:12px; background:linear-gradient(90deg,transparent 0 6%, rgba(22,133,255,.15) 6% 7%, transparent 7% 15%, rgba(22,133,255,.25) 15% 17%, transparent 17% 32%, rgba(22,133,255,.8) 32% 34%, transparent 34% 45%, rgba(22,133,255,.18) 45% 47%, transparent 47%); mask:linear-gradient(to bottom,transparent 0, #000 45%, #000 55%, transparent 100%); }
.system-strip { display:flex; justify-content:space-between; gap:10px; margin-top:16px; color:#526073; font:600 9px/1 monospace; letter-spacing:.15em; }

.trust-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.015); }
.trust-inner { min-height:70px; display:flex; align-items:center; justify-content:center; gap:22px; color:#657286; font-size:11px; text-transform:uppercase; letter-spacing:.18em; }
.trust-inner i { width:3px; height:3px; border-radius:50%; background:var(--brand-bright); box-shadow:0 0 10px var(--brand-bright); }

.section { padding:130px 0; }
.section-heading { display:grid; grid-template-columns:1.25fr .75fr; gap:60px; align-items:end; margin-bottom:46px; }
.section-heading h2, .process-copy h2, .about-panel h2, .cta-panel h2 { font-size:clamp(38px,5vw,64px); line-height:1.03; }
.section-heading > p { color:var(--muted); max-width:430px; justify-self:end; margin:0; }
.kicker { color:#6e7c90; margin:0 0 14px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service-card { position:relative; min-height:390px; padding:28px; border:1px solid var(--line); border-radius:22px; background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018)); overflow:hidden; transition:border-color .25s ease, background .25s ease, transform .18s ease-out; transform-style:preserve-3d; }
.service-card::after { content:""; position:absolute; inset:auto -30% -50% 10%; height:220px; background:radial-gradient(circle, rgba(0,87,184,.16), transparent 65%); opacity:0; transition:opacity .25s ease; }
.service-card:hover { border-color:rgba(22,133,255,.32); background:linear-gradient(180deg,rgba(0,87,184,.065),rgba(255,255,255,.018)); }
.service-card:hover::after { opacity:1; }
.service-index { position:absolute; right:24px; top:24px; font:600 10px/1 monospace; color:#46536a; }
.icon-box { width:52px; height:52px; flex:0 0 52px; border-radius:14px; display:grid; place-items:center; border:1px solid var(--line-blue); background:var(--brand-soft); color:#a8d2ff; box-shadow:inset 0 1px rgba(255,255,255,.06); }
.icon-box svg { width:28px; height:28px; display:block; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.arrow-icon { width:18px; height:18px; display:inline-grid; place-items:center; flex:0 0 18px; color:var(--brand-bright); }
.arrow-icon svg { width:16px; height:16px; display:block; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.btn .arrow-icon { width:19px; height:19px; color:#fff; }
.btn .arrow-icon svg { width:17px; height:17px; }
.service-card a .arrow-icon, .text-link .arrow-icon { vertical-align:middle; margin-left:5px; }

.service-card h3 { font-size:25px; margin:44px 0 14px; }
.service-card p { color:var(--muted); font-size:14px; }
.service-card a { position:absolute; left:28px; bottom:28px; z-index:2; color:#c9d4e0; font-size:13px; font-weight:700; }
.service-card a span { color:var(--brand-bright); margin-left:6px; }

.process-section { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(180deg,rgba(9,15,24,.65),rgba(5,8,13,.2)); }
.process-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; }
.process-copy { position:sticky; top:130px; align-self:start; }
.process-copy > p:not(.kicker) { color:var(--muted); max-width:470px; }
.text-link { display:inline-flex; gap:9px; margin-top:16px; color:#c6d0dc; font-weight:700; font-size:14px; }
.text-link span { color:var(--brand-bright); }
.steps { border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:30px 0; border-bottom:1px solid var(--line); }
.step > span { color:var(--brand-bright); font:600 11px/1 monospace; padding-top:6px; }
.step h3 { font-size:23px; }
.step p { color:var(--muted); margin:8px 0 0; max-width:560px; font-size:14px; }

.about-panel { display:grid; grid-template-columns:250px 1fr; gap:70px; align-items:center; border:1px solid var(--line); border-radius:28px; padding:54px; background:linear-gradient(135deg,rgba(0,87,184,.08),rgba(255,255,255,.018)); }
.about-mark { aspect-ratio:1; border:1px solid var(--line-blue); border-radius:28px; display:grid; place-items:center; background:radial-gradient(circle,rgba(0,87,184,.16),transparent 70%); }
.about-mark img { width:72%; filter:drop-shadow(0 0 28px rgba(0,87,184,.28)); }
.about-panel p:not(.kicker) { max-width:760px; color:var(--muted); font-size:16px; }

.cta-panel { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:58px; border:1px solid var(--line-blue); border-radius:28px; background:linear-gradient(135deg,rgba(0,87,184,.16),rgba(0,87,184,.04) 55%,rgba(255,255,255,.025)); }
.cta-panel::before { content:""; position:absolute; width:420px; height:420px; right:-180px; top:-220px; border-radius:50%; background:var(--brand); opacity:.14; filter:blur(65px); pointer-events:none; }
.cta-panel > * { position:relative; z-index:1; }
.cta-panel p:not(.kicker) { color:#9eabba; }

footer { padding:26px 0 42px; }
.footer-inner { border-top:1px solid var(--line); padding-top:26px; display:flex; align-items:center; justify-content:space-between; color:#667487; font-size:12px; }
.footer-brand img { width:34px; height:34px; }
.footer-brand { color:#b8c3cf; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--delay,0ms); }
.reveal.in-view { opacity:1; transform:none; }

@media (max-width: 980px) {
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:80px; gap:70px; }
  .hero-copy { max-width:760px; }
  .hero-visual { max-width:680px; width:100%; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:300px; }
  .process-grid { grid-template-columns:1fr; gap:60px; }
  .process-copy { position:static; }
  .about-panel { grid-template-columns:180px 1fr; gap:40px; }
  .section-heading { grid-template-columns:1fr; gap:20px; }
  .section-heading > p { justify-self:start; }
}

@media (max-width: 720px) {
  .container { width:min(var(--max), calc(100% - 28px)); }
  .nav { height:72px; }
  .brand span { font-size:14px; }
  .menu-btn { display:block; }
  .nav-links { position:absolute; top:72px; left:14px; right:14px; display:grid; gap:4px; padding:14px; border:1px solid var(--line); border-radius:18px; background:rgba(7,11,18,.96); backdrop-filter:blur(16px); opacity:0; transform:translateY(-8px); visibility:hidden; transition:.2s ease; }
  .nav-links.open { opacity:1; transform:none; visibility:visible; }
  .nav-links a { padding:12px; }
  .nav-cta { border-radius:12px; }
  .hero { padding:64px 0 82px; }
  h1 { font-size:clamp(48px,14vw,72px); }
  .hero-lead { font-size:16px; }
  .hero-meta { grid-template-columns:1fr; gap:12px; }
  .hero-meta div { display:grid; grid-template-columns:90px 1fr; align-items:center; }
  .hero-meta span { margin:0; }
  .terminal-card { font-size:10px; overflow-x:auto; }
  .metric-grid { grid-template-columns:1fr; }
  .trust-inner { justify-content:flex-start; overflow:hidden; white-space:nowrap; }
  .section { padding:92px 0; }
  .section-heading h2, .process-copy h2, .about-panel h2, .cta-panel h2 { font-size:clamp(36px,11vw,52px); }
  .about-panel { grid-template-columns:1fr; padding:30px; }
  .about-mark { width:160px; }
  .cta-panel { align-items:flex-start; flex-direction:column; padding:32px; }
  .btn-large { width:100%; }
  .footer-inner { flex-direction:column; align-items:flex-start; gap:18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}
/* Multi-page additions */
.page-hero{padding-top:170px;padding-bottom:70px;max-width:900px}.page-hero h1{font-size:clamp(3rem,7vw,6.5rem);margin:.25rem 0 1rem}.page-hero p{max-width:720px;color:var(--muted);font-size:1.1rem;line-height:1.8}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.info-panel,.faq-item,.price-card,.contact-card{background:rgba(8,15,27,.72);border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:28px}.info-panel h3,.price-card h3,.contact-card h3{margin-top:0}.values{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.values span{border:1px solid rgba(0,87,184,.45);background:rgba(0,87,184,.08);padding:9px 13px;border-radius:999px}.faq-list{display:grid;gap:12px}.faq-item summary{cursor:pointer;font-weight:700}.faq-item p{color:var(--muted);line-height:1.7}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.price-card ul{padding-left:18px;color:var(--muted);line-height:1.8}.price{font-family:'Space Grotesk',sans-serif;font-size:1.5rem;font-weight:700;color:#fff}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}.contact-form{display:grid;gap:14px}.contact-form label{font-size:.85rem;color:var(--muted)}.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box;margin-top:7px;padding:14px 15px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.22);color:#fff;font:inherit}.contact-form textarea{min-height:160px;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:1px solid var(--blue);border-color:var(--blue)}.small-note{font-size:.85rem;color:var(--muted)}
@media(max-width:850px){.content-grid,.contact-layout,.pricing-grid{grid-template-columns:1fr}.page-hero{padding-top:130px}.page-hero h1{font-size:clamp(2.7rem,13vw,4.5rem)}}

.form-status{min-height:1.4em;margin:2px 0 0;font-size:.88rem;color:var(--muted)}.form-status.success{color:#70e0aa}.form-status.error{color:#ff8e8e}.contact-form button:disabled{opacity:.65;cursor:wait;transform:none}

.service-card a, .text-link { align-items:center; }
.service-card a { display:inline-flex; }

/* Client portal */
.portal-section{padding-top:40px}.portal-panel{position:relative;border:1px solid var(--line);border-radius:28px;padding:38px;background:linear-gradient(145deg,rgba(0,87,184,.07),rgba(255,255,255,.022));overflow:hidden}.portal-panel::after{content:"";position:absolute;width:360px;height:360px;right:-180px;top:-180px;border-radius:50%;background:var(--brand);opacity:.12;filter:blur(60px);pointer-events:none}.portal-status{display:inline-flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(56,241,156,.18);border-radius:999px;background:rgba(56,241,156,.05);font:700 10px/1 monospace;letter-spacing:.12em;color:#91e8bd}.portal-copy{max-width:760px;margin:34px 0 38px}.portal-copy h2{font-size:clamp(34px,4.5vw,56px);line-height:1.05}.portal-copy p{color:var(--muted);font-size:16px;max-width:690px}.portal-features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.portal-features article{min-height:190px;padding:22px;border:1px solid var(--line);border-radius:18px;background:rgba(5,8,13,.48)}.portal-features article>span{font:700 10px/1 monospace;color:#4d5c71}.portal-features h3{font-size:19px;margin:34px 0 8px}.portal-features p{color:var(--muted);font-size:13px;line-height:1.65;margin:0}

/* Software catalog */
.software-section{padding-top:40px}.software-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.software-toolbar h2{font-size:clamp(32px,4vw,48px);margin-top:8px}.software-count{font:700 10px/1 monospace;letter-spacing:.14em;color:#5f6e82}.software-filters{display:flex;gap:8px;padding:5px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}.software-filter{border:0;border-radius:10px;padding:9px 14px;background:transparent;color:#7f8da0;cursor:pointer;font-weight:700;font-size:12px}.software-filter.active,.software-filter:hover{background:var(--brand-soft);color:#bcdcff}.software-empty{min-height:390px;border:1px dashed rgba(255,255,255,.12);border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(0,87,184,.025))}.software-empty-icon{width:70px;height:70px;display:grid;place-items:center;border:1px solid var(--line-blue);border-radius:20px;background:var(--brand-soft);color:#a8d2ff;margin-bottom:24px}.software-empty-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.software-empty h2{font-size:clamp(30px,4vw,46px);margin:0 0 12px}.software-empty>p:last-child{max-width:580px;color:var(--muted);margin:0}.software-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.software-card{padding:26px;border:1px solid var(--line);border-radius:22px;background:rgba(8,15,27,.72)}.software-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.software-app-icon{width:54px;height:54px;display:grid;place-items:center;border:1px solid var(--line-blue);border-radius:15px;background:var(--brand-soft);font:800 11px/1 monospace;color:#a8d2ff}.software-badge{padding:7px 9px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.software-badge.free{background:rgba(56,241,156,.08);color:#8ee0b6;border:1px solid rgba(56,241,156,.16)}.software-badge.paid{background:var(--brand-soft);color:#9dccff;border:1px solid var(--line-blue)}.software-card p{color:var(--muted)}.software-meta{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.software-meta span{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:#718095;font-size:10px;font-weight:700}
@media(max-width:980px){.portal-features{grid-template-columns:1fr 1fr}.software-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.portal-panel{padding:28px}.portal-features{grid-template-columns:1fr}.software-toolbar{align-items:flex-start;flex-direction:column}.software-filters{width:100%}.software-filter{flex:1}.software-grid{grid-template-columns:1fr}}
