:root{
--ink:#1B2540;
--ink-soft:#3B4560;
--muted:#66708A;
--bg:#FAFAFA;
--surface:#FFFFFF;
--border:#E6E8EE;
--accent:#3B6FF0;
--accent-dark:#2C55C4;
--accent-tint:#E8EFFE;
--accent-tint-2:#DCE7FD;
--radius:14px;
--maxw:1180px;
font-size:16px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
margin:0;
background:var(--bg);
color:var(--ink);
font-family:'Inter',sans-serif;
-webkit-font-smoothing:antialiased;
overflow-x:hidden;
}
h1,h2,h3{
font-family:'Space Grotesk',sans-serif;
color:var(--ink);
margin:0;
letter-spacing:-0.02em;
}
p{margin:0;}
.mono{
font-family:'IBM Plex Mono',monospace;
letter-spacing:0.04em;
}
.wrap{
max-width:var(--maxw);
margin:0 auto;
padding:0 32px;
}
a{color:inherit;text-decoration:none;}

.eyebrow{
display:inline-flex;
align-items:center;
gap:8px;
font-family:'IBM Plex Mono',monospace;
font-size:12px;
letter-spacing:0.12em;
text-transform:uppercase;
color:var(--accent-dark);
background:var(--accent-tint);
border:1px solid var(--accent-tint-2);
padding:6px 14px;
border-radius:999px;
}
.eyebrow::before{
content:"";
width:6px;height:6px;
border-radius:50%;
background:var(--accent);
display:inline-block;
}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:13px 24px;
border-radius:10px;
font-weight:600;
font-size:14.5px;
cursor:pointer;
border:1px solid transparent;
transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{
background:var(--ink);
color:#fff;
box-shadow:0 1px 2px rgba(27,37,64,.08);
}
.btn-primary:hover{background:#10182c;}
.btn-accent{
background:var(--accent);
color:#fff;
}
.btn-accent:hover{background:var(--accent-dark);}
.btn-outline{
background:transparent;
color:var(--ink);
border:1px solid var(--border);
}
.btn-outline:hover{border-color:var(--ink);}
.btn-ghost-inv{
background:rgba(255,255,255,.08);
color:#fff;
border:1px solid rgba(255,255,255,.18);
}
.btn-ghost-inv:hover{background:rgba(255,255,255,.14);}

nav{
position:sticky;top:0;z-index:50;
background:rgba(250,250,250,.82);
backdrop-filter:blur(10px);
border-bottom:1px solid var(--border);
}
nav .wrap{
display:flex;align-items:center;justify-content:space-between;
height:72px;
}
.logo{
display:flex;align-items:center;gap:10px;
font-family:'Space Grotesk',sans-serif;
font-weight:700;font-size:19px;
}
.logo > img.logo-mark{
width:30px;height:30px;
object-fit:contain;
display:block;
background:transparent;
}
.logo-mark{
width:30px;height:30px;border-radius:8px;
}
.logo-mark span{
width:9px;height:9px;border-radius:2px;
background:var(--accent);
}
.nav-links{
display:flex;gap:36px;
font-size:14.5px;font-weight:500;color:var(--ink-soft);
}
.nav-links a:hover{color:var(--ink);}
.nav-right{display:flex;align-items:center;gap:22px;}
.nav-right .signin{font-size:14.5px;font-weight:500;color:var(--ink-soft); cursor:pointer;}
.nav-right .signin:hover{color:var(--ink);}

.hero{
padding:88px 0 0;
text-align:center;
position:relative;
}
.hero .eyebrow{margin-bottom:22px;}
.hero h1{
font-size:56px;
line-height:1.06;
max-width:820px;
margin:0 auto;
font-weight:700;
}
.hero h1 .accent-word{color:var(--accent);}
.hero p.sub{
max-width:560px;
margin:24px auto 0;
font-size:17.5px;
line-height:1.6;
color:var(--muted);
}
.hero .cta-row{
display:flex;gap:14px;justify-content:center;
margin-top:34px;
}
.hero .btn{padding:14px 26px;font-size:15px;}
.hero-visual-wrap{
margin-top:64px;
position:relative;
padding-bottom:90px;
}
.hero-glow{
position:absolute;
top:-40px;left:50%;
transform:translateX(-50%);
width:900px;height:520px;
background:radial-gradient(closest-side, var(--accent-tint-2), transparent 72%);
filter:blur(10px);
z-index:0;
}
.console{
position:relative;z-index:1;
max-width:960px;
margin:0 auto;
background:var(--surface);
border:1px solid var(--border);
border-radius:16px;
box-shadow:0 24px 60px -20px rgba(27,37,64,.25);
overflow:hidden;
text-align:left;
}
.console-bar{
display:flex;align-items:center;gap:8px;
padding:14px 18px;
border-bottom:1px solid var(--border);
}
.console-bar .dot{width:9px;height:9px;border-radius:50%;background:#E1E4EA;}
.console-bar .title{
margin-left:10px;
font-family:'IBM Plex Mono',monospace;
font-size:12px;color:var(--muted);
}
.console-body{
display:grid;
grid-template-columns:220px 1fr;
min-height:340px;
}
.console-side{
border-right:1px solid var(--border);
padding:20px 16px;
background:#FCFCFD;
}
.console-side .side-item{
display:flex;align-items:center;gap:10px;
padding:9px 10px;border-radius:8px;
font-size:13px;color:var(--ink-soft);font-weight:500;
margin-bottom:2px;
cursor:pointer;
}
.console-side .side-item.active{background:var(--accent-tint);color:var(--accent-dark);}
.console-side .side-item .ic{width:14px;height:14px;border-radius:4px;background:currentColor;opacity:.35;}
.console-main{padding:22px 24px;}
.console-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;}
.console-stat{
border:1px solid var(--border);border-radius:10px;padding:14px 16px;
}
.console-stat .num{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:500;}
.console-stat .lbl{font-size:11.5px;color:var(--muted);margin-top:3px;}
.console-map{
position:relative;
border:1px solid var(--border);
border-radius:10px;
height:150px;
background:
linear-gradient(var(--accent-tint) 1px, transparent 1px) 0 0/24px 24px,
linear-gradient(90deg, var(--accent-tint) 1px, transparent 1px) 0 0/24px 24px,
#FCFCFD;
overflow:hidden;
}
.tab-content {
display: none;
opacity: 0;
}
.tab-content.active {
display: block;
opacity: 1;
animation: fadeIn 0.5s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(5px); }
to { opacity: 1; transform: translateY(0); }
}
.unit{
position:absolute;width:9px;height:9px;border-radius:50%;
background:var(--accent);
box-shadow:0 0 0 5px var(--accent-tint-2);
}
.telemetry-chip{
position:absolute;
font-family:'IBM Plex Mono',monospace;
font-size:10.5px;
background:var(--ink);
color:#fff;
padding:4px 8px;
border-radius:6px;
z-index:2;
box-shadow:0 8px 18px -6px rgba(27,37,64,.4);
}

.logocloud{padding:64px 0 20px;}
.logocloud .label{
text-align:center;font-size:13px;color:var(--muted);
font-weight:500;margin-bottom:30px;
}
.logo-row{
display:flex;justify-content:space-between;align-items:center;
flex-wrap:wrap;gap:28px;
opacity:.62;
}
.logo-row .wm{
font-family:'Space Grotesk',sans-serif;
font-weight:700;font-size:16px;color:var(--ink-soft);
letter-spacing:0.01em;
}

.section{padding:104px 0;}
.section-head{
max-width:600px;margin:0 auto 56px;text-align:center;
}
.section-head h2{font-size:38px;line-height:1.15;font-weight:700;}
.section-head p{margin-top:14px;color:var(--muted);font-size:16.5px;line-height:1.6;}

.feat-grid{
display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
}
.feat-card{
background:var(--surface);
border:1px solid var(--border);
border-radius:var(--radius);
padding:30px;
transition:border-color .15s ease, transform .15s ease;
}
.feat-card:hover{border-color:#C9D3EA;transform:translateY(-2px);}
.feat-icon{
width:42px;height:42px;border-radius:10px;
background:var(--accent-tint);
display:flex;align-items:center;justify-content:center;
margin-bottom:18px;
}
.feat-icon svg{width:20px;height:20px;stroke:var(--accent-dark);}
.feat-card h3{font-size:18.5px;font-weight:600;margin-bottom:9px;}
.feat-card p{color:var(--muted);font-size:14.5px;line-height:1.6;}

.process-row{
display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
}
.process-steps{display:flex;flex-direction:column;gap:0;}
.step{
display:flex;gap:20px;
padding:22px 0;
border-top:1px solid var(--border);
}
.step:last-child{border-bottom:1px solid var(--border);}
.step .n{
font-family:'IBM Plex Mono',monospace;
font-size:13px;color:var(--accent);
padding-top:2px;
min-width:26px;
}
.step h3{font-size:17px;font-weight:600;margin-bottom:6px;}
.step p{color:var(--muted);font-size:14.5px;line-height:1.6;}
.process-visual{
background:var(--surface);
border:1px solid var(--border);
border-radius:var(--radius);
padding:26px;
box-shadow:0 20px 45px -24px rgba(27,37,64,.25);
}
.pv-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.pv-row .mono{font-size:11.5px;color:var(--muted);}
.pv-bars{display:flex;flex-direction:column;gap:10px;}
.pv-bar-track{height:8px;border-radius:6px;background:var(--accent-tint);overflow:hidden;}
.pv-bar-fill{height:100%;border-radius:6px;background:var(--accent);}
.pv-label-row{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-top:4px;}

.stats-band{
background:var(--ink);
padding:80px 0;
}
.stats-grid{
display:grid;grid-template-columns:repeat(4,1fr);
gap:20px;text-align:center;
}
.stat .num{
font-family:'Space Grotesk',sans-serif;
font-size:44px;font-weight:700;color:#fff;
}
.stat .num .accent-word{color:#7CA5FF;}
.stat .lbl{
margin-top:8px;font-size:13.5px;color:rgba(255,255,255,.55);
font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;
}

.testimonial{
max-width:720px;margin:0 auto;text-align:center;
}
.testimonial blockquote{
font-family:'Space Grotesk',sans-serif;
font-size:27px;line-height:1.45;font-weight:600;
color:var(--ink);margin:0;
}
.testimonial .person{
margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:10px;
}
.avatar{
width:44px;height:44px;border-radius:50%;
background:linear-gradient(135deg,var(--accent),#8FB0FA);
}
.testimonial .who{font-size:14.5px;font-weight:600;}
.testimonial .role{font-size:13px;color:var(--muted);}

.plans{
display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
align-items:stretch;
}
.plan{
background:var(--surface);
border:1px solid var(--border);
border-radius:var(--radius);
padding:32px 28px;
display:flex;flex-direction:column;
}
.plan.featured{
border:1px solid var(--ink);
box-shadow:0 24px 50px -22px rgba(27,37,64,.35);
position:relative;
}
.plan.featured .tag{
position:absolute;top:-13px;left:28px;
background:var(--ink);color:#fff;
font-family:'IBM Plex Mono',monospace;
font-size:11px;letter-spacing:0.06em;
padding:5px 10px;border-radius:999px;
}
.plan h3{font-size:19px;font-weight:600;}
.plan .price{
font-family:'Space Grotesk',sans-serif;
font-size:15px;color:var(--muted);margin-top:10px;
}
.plan .desc{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.55;min-height:56px;}
.plan ul{list-style:none;padding:0;margin:22px 0 26px;display:flex;flex-direction:column;gap:11px;flex:1;}
.plan li{
display:flex;gap:10px;font-size:14px;color:var(--ink-soft);
}
.plan li svg{width:16px;height:16px;stroke:var(--accent);flex-shrink:0;margin-top:2px;}
.plan .btn{width:100%;}

.faq{max-width:720px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-q{
width:100%;background:none;border:none;text-align:left;
padding:22px 4px;
display:flex;justify-content:space-between;align-items:center;
font-family:'Inter',sans-serif;font-size:16px;font-weight:600;color:var(--ink);
cursor:pointer;
}
.faq-q .plus{
font-family:'IBM Plex Mono',monospace;
font-size:18px;color:var(--muted);
transition:transform .2s ease;
}
.faq-item.open .plus{transform:rotate(45deg);color:var(--accent);}
.faq-a{
max-height:0;overflow:hidden;
transition:max-height .25s ease;
}
.faq-a p{
padding:0 4px 22px;color:var(--muted);font-size:14.5px;line-height:1.65;max-width:600px;
}

.cta-final{
background:var(--ink);
padding:96px 0;text-align:center;
position:relative;overflow:hidden;
}
.cta-final::before{
content:"";position:absolute;inset:0;
background:radial-gradient(600px 300px at 50% 0%, rgba(123,165,255,.18), transparent 70%);
}
.cta-final h2{
color:#fff;font-size:38px;font-weight:700;position:relative;
}
.cta-final p{
color:rgba(255,255,255,.62);max-width:480px;margin:16px auto 0;font-size:16px;line-height:1.6;position:relative;
}
.cta-final .cta-row{display:flex;justify-content:center;gap:14px;margin-top:32px;position:relative;}

footer{background:#141B32;padding:64px 0 28px;}
.footer-top{
display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px;
padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-brand .logo{color:#fff;}
.footer-brand .logo-mark{background:var(--accent);}
.footer-brand p{color:rgba(255,255,255,.5);font-size:13.5px;margin-top:14px;line-height:1.6;max-width:220px;}
.footer-col h4{
font-family:'IBM Plex Mono',monospace;
font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;
color:rgba(255,255,255,.45);margin-bottom:16px;
}
.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;}
.footer-col a{color:rgba(255,255,255,.72);font-size:14px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{
display:flex;justify-content:space-between;align-items:center;
padding-top:26px;font-size:13px;color:rgba(255,255,255,.4);
}
.footer-bottom .socials{display:flex;gap:14px;}
.footer-bottom .socials a{
width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.06);
display:flex;align-items:center;justify-content:center;
}
.footer-bottom .socials svg{width:15px;height:15px;stroke:rgba(255,255,255,.7);}

@media (max-width:900px){
.nav-links{display:none;}
.hero h1{font-size:38px;}
.console-body{grid-template-columns:1fr;}
.console-side{display:none;}
.feat-grid{grid-template-columns:1fr;}
.process-row{grid-template-columns:1fr;gap:36px;}
.stats-grid{grid-template-columns:repeat(2,1fr);gap:32px;}
.plans{grid-template-columns:1fr;}
.footer-top{grid-template-columns:repeat(2,1fr);}
}

@media (prefers-reduced-motion: reduce){
*{transition:none !important;}
}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ---------- MODALS (CONSULT & LOGIN) ---------- */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(27, 37, 64, 0.6);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
animation: modalFadeIn 0.3s ease;
}

@keyframes modalFadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

.modal-content {
background-color: var(--surface);
margin: 8% auto;
padding: 40px;
border-radius: var(--radius);
width: 90%;
max-width: 480px;
box-shadow: 0 24px 60px -20px rgba(27,37,64,.4);
position: relative;
transform: translateY(0);
animation: modalSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes modalSlideUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}

.close-modal {
position: absolute;
top: 24px;
right: 24px;
color: var(--muted);
font-size: 28px;
font-weight: 300;
cursor: pointer;
line-height: 1;
transition: color 0.2s ease;
}

.close-modal:hover {
color: var(--ink);
}

.modal-content h2 {
margin-top: 0;
margin-bottom: 8px;
font-size: 28px;
color: var(--ink);
letter-spacing: -0.02em;
}

.modal-content p {
color: var(--muted);
margin-bottom: 24px;
font-size: 15px;
line-height: 1.5;
}

.modal-content form {
display: flex;
flex-direction: column;
gap: 16px;
}

.modal-content label {
display: block;
font-weight: 600;
font-size: 13px;
color: var(--ink);
margin-bottom: -8px;
}

.modal-content input {
width: 100%;
box-sizing: border-box;
padding: 14px 16px;
border: 1px solid var(--border);
border-radius: 10px;
font-size: 15px;
font-family: 'Inter', sans-serif;
background-color: var(--bg);
color: var(--ink);
transition: all 0.2s ease;
}

.modal-content input:focus {
outline: none;
border-color: var(--accent);
box-shadow: 0 0 0 4px var(--accent-tint);
background-color: var(--surface);
}

.btn-submit {
width: 100%;
margin-top: 8px;
background: var(--ink);
color: #fff;
padding: 14px 24px;
border-radius: 10px;
font-weight: 600;
font-size: 14.5px;
cursor: pointer;
border: 1px solid transparent;
}
.btn-submit:hover {
background: #10182c;
}

.login-alert {
background-color: #fee2e2;
border: 1px solid #f87171;
color: #991b1b;
padding: 10px 14px;
border-radius: 8px;
font-size: 13.5px;
margin-bottom: 16px;
}
.login-alert.hidden {
display: none;
}