*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
:root{
  --bg:#f7f8f6; --bg2:#eef0ed; --ink:#0f1a14; --ink2:#2a3a30;
  --mid:#7a8c82; --teal:#57bebd; --teal2:#65cdb8; --tealD:#3fa8a7;
  --card:#ffffff; --line:rgba(87,190,189,0.2);
  --FD:'Lexend Deca',sans-serif; --FB:'Lexend Deca',sans-serif; --FM:'DM Mono',monospace;
}
body{font-family:var(--FB);background:var(--bg);color:var(--ink);overflow-x:hidden}

/* ── CURSOR ── */
#cur,#cur-ring{position:fixed;border-radius:50%;pointer-events:none;z-index:9000;top:0;left:0;transform:translate(-50%,-50%)}
#cur{width:9px;height:9px;background:var(--teal)}
#cur-ring{width:36px;height:36px;border:1.5px solid rgba(87,190,189,.45);transition:width .22s,height .22s}
.ch #cur{width:5px;height:5px}
.ch #cur-ring{width:52px;height:52px;border-color:rgba(87,190,189,.75)}
#prog{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--teal),var(--teal2));z-index:8000;width:0}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:700;display:flex;align-items:center;justify-content:space-between;padding:20px 6%;background:rgba(234,246,245,.94);backdrop-filter:blur(20px);border-bottom:1px solid rgba(106,190,189,0.18)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo svg{width:28px;height:28px}
.logotype{font-family:var(--FD);font-weight:700;font-size:1.25rem;letter-spacing:.05em;color:var(--ink)}
.nav-ul{list-style:none;display:flex;align-items:center;gap:32px}
.nav-ul a{text-decoration:none;color:var(--mid);font-family:var(--FB);font-size:.78rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;transition:color .2s}
.nav-ul a:hover{color:var(--ink)}
.nav-ul .cta{background:var(--teal);color:#fff!important;font-weight:600!important;padding:9px 22px;border-radius:4px;transition:background .2s;letter-spacing:.05em}
.nav-ul .cta:hover{background:var(--teal2)!important}

/* ── WORD REVEAL ── */
.wr-line{display:block;overflow:hidden;line-height:1}
.wr-word{display:inline-block}
@keyframes wrd-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.fire .wr-word{animation:wrd-up .75s cubic-bezier(.16,1,.3,1) both}

/* ── HERO ── */
#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 6% 9vh;position:relative;overflow:hidden;background:linear-gradient(130deg,#eaf6f5 0%,#f0f8f7 38%,#ddf0ee 70%,#c8ecea 100%)}


/* ── HERO EYEBROW UPGRADE ── */
.hero-eyebrow{color:var(--teal)!important;}
.hero-eyebrow::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-left:4px;animation:ld 1.5s ease-in-out infinite;}
/* ── HERO TITLE accent line ── */
.hero-h1 .accent-ul{position:relative;display:inline-block;}
.hero-h1 .accent-ul::after{content:'';position:absolute;bottom:-4px;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--teal),var(--teal2));border-radius:2px;}

.hero-dots{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(106,190,189,.22) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse 90% 80% at 30% 50%,black 0%,transparent 100%)}
.hero-bg-wash{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 15% 50%, rgba(106,190,189,0.13) 0%, transparent 60%),
    radial-gradient(ellipse 50% 70% at 85% 80%, rgba(101,205,184,0.10) 0%, transparent 55%),
    linear-gradient(160deg, rgba(106,190,189,0.07) 0%, transparent 50%);
}
.hero-diagonal{position:absolute;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden;}
.hero-diagonal::before{
  content:'';position:absolute;bottom:-20%;left:-10%;
  width:62%;height:85%;
  background:linear-gradient(135deg,rgba(106,190,189,0.11) 0%,rgba(106,190,189,0.04) 55%,transparent 100%);
  transform:skewY(-7deg);
  transform-origin:bottom left;
  border-top:1px solid rgba(106,190,189,0.12);
}
.hero-diagonal::after{
  content:'';position:absolute;top:0;left:44%;
  width:1px;height:100%;
  background:linear-gradient(to bottom,transparent 5%,rgba(106,190,189,0.22) 40%,rgba(106,190,189,0.10) 75%,transparent 100%);
}
.hero-line2{position:absolute;bottom:0;right:20%;width:1px;height:65%;background:linear-gradient(to top,transparent,rgba(106,190,189,0.14));pointer-events:none;z-index:0;}
.hero-slab2{position:absolute;top:-15%;right:-8%;width:45%;height:80%;background:linear-gradient(225deg,rgba(106,190,189,0.08) 0%,transparent 60%);transform:skewY(6deg);transform-origin:top right;pointer-events:none;z-index:0;}
.hero-blob{position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle at 40% 45%,rgba(101,205,184,.2) 0%,rgba(87,190,189,.08) 50%,transparent 75%);top:0;right:2%;pointer-events:none;animation:bpulse 6s ease-in-out infinite}
@keyframes bpulse{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.06) translateY(-14px)}}
.hero-eyebrow{color:rgba(87,190,189,0.8)!important;display:flex;align-items:center;gap:14px;font-family:var(--FM);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:3.5vh;position:relative;z-index:2}
.hero-eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--teal)}
.hero-h1{font-family:var(--FD);font-size:clamp(3rem,7vw,8rem);font-weight:700;line-height:0.95;letter-spacing:-.03em;color:var(--ink);margin-bottom:5vh;position:relative;z-index:2}
.hero-h1 .accent{color:var(--teal)}
.hero-h1 .light{font-weight:300}
.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:28px;position:relative;z-index:2}
.hero-desc{max-width:420px;color:var(--mid);font-size:1rem;line-height:1.8;font-weight:300}
.hero-btns{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn-main{background:var(--teal);color:#fff;font-family:var(--FB);font-weight:600;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;padding:15px 36px;border-radius:4px;text-decoration:none;transition:background .2s,box-shadow .2s,transform .2s;box-shadow:0 4px 28px rgba(106,190,189,.38)}
.btn-main:hover{background:var(--teal2);box-shadow:0 8px 36px rgba(106,190,189,.5);transform:translateY(-2px)}
.btn-line{color:var(--ink2);font-family:var(--FB);font-size:.82rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid rgba(87,190,189,.4);padding-bottom:1px;transition:color .2s,border-color .2s}
.btn-line:hover{color:var(--teal);border-color:var(--teal)}
.btn-line svg{transition:transform .2s}
.btn-line:hover svg{transform:translateX(4px)}
.scroll-tip{position:absolute;bottom:5vh;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--mid);font-family:var(--FM);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;animation:stip 2.5s ease-in-out infinite}
@keyframes stip{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}
.scroll-tip::after{content:'';display:block;width:1px;height:34px;background:linear-gradient(to bottom,var(--teal),transparent)}

/* ── STATEMENT ── */
.statement{min-height:100vh;display:flex;align-items:center;padding:12vh 6%;position:relative;overflow:hidden}
.st-inner{max-width:1280px;margin:0 auto;width:100%}
.big-h{font-family:var(--FD);font-size:clamp(3.5rem,9vw,10.5rem);font-weight:700;line-height:.95;letter-spacing:-.01em;color:var(--ink)}
.big-h .accent{color:var(--teal)}
.big-h .stroke{-webkit-text-stroke:1.5px rgba(87,190,189,.45);color:transparent}
.st-sub{color:var(--mid);font-size:1rem;line-height:1.85;font-weight:300;max-width:480px;margin-top:40px}
.side-tag{position:absolute;left:1.5%;top:50%;writing-mode:vertical-rl;font-family:var(--FM);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(87,190,189,.5);transform:translateY(-50%) rotate(180deg)}
.div-line{height:1px;background:linear-gradient(90deg,transparent,var(--teal),var(--teal2),var(--teal),transparent);opacity:.4}

/* ── SERVICES ── */
#services{padding:10vh 6%;background:var(--bg2);border-top:1px solid rgba(87,190,189,.15)}
.srv-head{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;flex-wrap:wrap;gap:24px;padding-bottom:28px;border-bottom:1px solid rgba(87,190,189,.18)}
.sect-num{font-family:var(--FM);font-size:.66rem;color:var(--teal);letter-spacing:.1em;margin-bottom:10px}
.sect-h{font-family:var(--FD);font-size:clamp(2.2rem,4.5vw,4rem);font-weight:700;letter-spacing:-.01em;line-height:.95;color:var(--ink)}
.sect-sub{color:var(--mid);font-size:.93rem;line-height:1.75;max-width:300px;font-weight:300}
.srv-list{max-width:1280px;margin:0 auto;display:flex;flex-direction:column}
.srv-row{display:grid;grid-template-columns:52px 1fr 220px;align-items:center;gap:28px;padding:26px 0;border-bottom:1px solid rgba(87,190,189,.15);cursor:default;position:relative;transition:padding-left .35s cubic-bezier(.16,1,.3,1);overflow:hidden}
.srv-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,rgba(106,190,189,.10),rgba(106,190,189,.04));transition:width .35s cubic-bezier(.16,1,.3,1)}
.srv-row:hover{padding-left:18px}
.srv-row:hover::before{width:100%}
.srv-n{font-family:var(--FM);font-size:.66rem;color:var(--mid)}
.srv-name{font-family:var(--FD);font-size:clamp(1.7rem,3.8vw,3rem);font-weight:700;letter-spacing:-.01em;transition:color .25s;color:var(--ink)}
.srv-row:hover .srv-name{color:var(--teal)}
.srv-tag{font-family:var(--FM);font-size:.66rem;color:var(--mid);text-align:right;line-height:1.6;letter-spacing:.04em}

/* ── SMS ── */
#sms{padding:10vh 6%;background:var(--bg);border-top:1px solid rgba(87,190,189,.15)}
.sms-wrap{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.phone-scene{display:flex;justify-content:center;position:relative}
.phone{width:248px;border-radius:38px;background:#fff;border:1.5px solid rgba(87,190,189,.3);box-shadow:0 0 0 8px rgba(87,190,189,.06),0 40px 70px rgba(15,26,20,.12);overflow:hidden;position:relative;z-index:2;flex-shrink:0}
.ph-notch{width:68px;height:19px;background:var(--bg);border-radius:0 0 12px 12px;margin:0 auto}
.ph-sb{display:flex;justify-content:space-between;padding:5px 14px 0;font-family:var(--FM);font-size:.57rem;color:var(--mid)}
.ph-hd{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(87,190,189,.1)}
.ph-av{width:27px;height:27px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--teal2));display:flex;align-items:center;justify-content:center;font-size:.57rem;font-weight:600;color:#fff;flex-shrink:0}
.ph-cn{font-size:.72rem;font-weight:600;color:var(--ink);font-family:var(--FB)}
.ph-cs{font-size:.57rem;color:var(--teal);font-family:var(--FB)}
.ph-body{padding:12px;display:flex;flex-direction:column;gap:7px;height:340px;overflow:hidden}
.bub{max-width:84%;padding:8px 11px;border-radius:14px;font-size:.68rem;line-height:1.45;font-family:var(--FB);opacity:0;transform:translateY(10px) scale(.95);transition:opacity .4s,transform .4s}
.bub.show{opacity:1;transform:translateY(0) scale(1)}
.bub.out{background:var(--teal);color:#fff;font-weight:500;align-self:flex-end;border-bottom-right-radius:4px}
.bub.inc{background:var(--bg2);border:1px solid rgba(87,190,189,.2);color:var(--ink);align-self:flex-start;border-bottom-left-radius:4px}
.bub-t{font-size:.53rem;margin-top:3px;text-align:right;color:rgba(255,255,255,.55);font-family:var(--FM)}
.bub.inc .bub-t{text-align:left;color:var(--mid)}
.typing{display:flex;gap:3px;padding:9px 13px;background:var(--bg2);border:1px solid rgba(87,190,189,.15);border-radius:14px;border-bottom-left-radius:4px;width:fit-content;opacity:0;transition:opacity .3s}
.typing.show{opacity:1}
.d{width:4px;height:4px;border-radius:50%;background:var(--teal);animation:db 1.2s ease-in-out infinite}
.d:nth-child(2){animation-delay:.2s}.d:nth-child(3){animation-delay:.4s}
@keyframes db{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
.pkt{position:absolute;background:#fff;border:1px solid rgba(87,190,189,.3);border-radius:6px;padding:5px 11px;font-family:var(--FM);font-size:.61rem;color:var(--teal);white-space:nowrap;animation:pktf linear infinite;z-index:3;box-shadow:0 2px 12px rgba(87,190,189,.12)}
.pkt::before{content:'▶ ';font-size:.5rem}
.pkt:nth-child(1){top:10%;right:-12px;animation-duration:3.5s}
.pkt:nth-child(2){top:33%;right:-22px;animation-duration:4.2s;animation-delay:-1.3s}
.pkt:nth-child(3){bottom:27%;right:-9px;animation-duration:3.8s;animation-delay:-2.1s}
.pkt:nth-child(4){bottom:13%;left:-14px;animation-duration:4s;animation-delay:-.7s}
.pkt:nth-child(5){top:52%;left:-22px;animation-duration:3.3s;animation-delay:-1.8s}
@keyframes pktf{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.sms-kpis{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}
.kpi{background:var(--card);border:1px solid rgba(87,190,189,.2);border-radius:10px;padding:18px 20px;transition:border-color .3s,transform .3s,box-shadow .3s;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.kpi:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 8px 24px rgba(87,190,189,.15)}
.kpi-n{font-family:var(--FD);font-size:2.2rem;font-weight:700;color:var(--teal);line-height:1}
.kpi-l{font-size:.76rem;color:var(--mid);margin-top:4px;line-height:1.45;font-family:var(--FB)}
.live-c{margin-top:22px;background:var(--card);border:1px solid rgba(87,190,189,.2);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:ld 1.5s ease-in-out infinite;flex-shrink:0}
@keyframes ld{0%,100%{opacity:1}50%{opacity:.3}}
.live-num{font-family:var(--FD);font-size:1.5rem;font-weight:600;color:var(--teal)}
.live-lbl{font-size:.77rem;color:var(--mid);line-height:1.4;font-family:var(--FB)}

/* ── API ── */
#api{padding:10vh 6%;background:var(--bg2);border-top:1px solid rgba(87,190,189,.15)}
.api-inner{max-width:1280px;margin:0 auto}
.api-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:start;margin-top:56px}
.code-tabs{display:flex;gap:2px}
.ctab{padding:7px 16px;font-family:var(--FM);font-size:.7rem;background:rgba(87,190,189,.06);color:var(--mid);border-radius:5px 5px 0 0;border:1px solid transparent;border-bottom:none;cursor:pointer;transition:all .2s}
.ctab.on{background:#0f1a14;color:var(--teal2);border-color:rgba(87,190,189,.25)}
.terminal{background:#0f1a14;border:1px solid rgba(87,190,189,.2);border-radius:0 10px 10px 10px;overflow:hidden;box-shadow:0 20px 50px rgba(15,26,20,.12)}
.t-bar{padding:10px 14px;background:#162010;border-bottom:1px solid rgba(87,190,189,.1);display:flex;align-items:center;gap:6px}
.td{width:10px;height:10px;border-radius:50%}
.td.r{background:#ff5f57}.td.y{background:#ffbd2e}.td.g{background:#28c840}
.t-ttl{flex:1;text-align:center;font-family:var(--FM);font-size:.66rem;color:rgba(87,190,189,.4)}
.t-body{padding:20px;font-family:var(--FM);font-size:.76rem;line-height:1.85;min-height:280px;color:#c8dbd0}
.tl{display:block;opacity:0;transform:translateY(3px);transition:opacity .3s ease,transform .3s ease}
.tl.on{opacity:1;transform:none}
.tc{color:#3a5545}.tk{color:#7bbfa8}.tv{color:#65cdb8}.ts{color:#c9a96e}
.tm{color:#e07d54}.tp{color:#4a6a58}.tg{color:var(--teal2)}.tw{color:#c8dbd0}
.cur-b{display:inline-block;width:7px;height:14px;background:var(--teal);animation:cb 1s step-end infinite;vertical-align:middle;margin-left:1px}
@keyframes cb{0%,100%{opacity:1}50%{opacity:0}}
.resp{margin-top:10px;background:rgba(87,190,189,.05);border:1px solid rgba(87,190,189,.18);border-radius:9px;padding:14px;font-family:var(--FM);font-size:.74rem;line-height:1.8;color:#0f1a14;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.resp.on{opacity:1;transform:none}
.resp-ok{display:inline-flex;align-items:center;gap:6px;background:rgba(87,190,189,.15);color:var(--teal);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:4px;margin-bottom:10px;font-family:var(--FM)}
.resp-ok::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--teal);animation:ld 1.5s ease-in-out infinite}
.resp .tk{color:#2a6868}.resp .ts{color:#7a5a20}.resp .tp{color:#5a7870}
.sdk-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px}
.chip{font-family:var(--FM);font-size:.7rem;background:#fff;border:1px solid rgba(87,190,189,.25);color:var(--ink2);padding:7px 14px;border-radius:4px;transition:border-color .2s,background .2s,color .2s;cursor:default;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.chip:hover{border-color:var(--teal);color:var(--teal);background:rgba(87,190,189,.05)}

/* ── TOPOLOGY (CSS connectors, no SVG) ── */
.flow{width:100%}
.topo-wrap{position:relative;width:100%;background:var(--ink);border-radius:16px;padding:48px 32px 36px;overflow:hidden;box-shadow:0 20px 50px rgba(15,26,20,.12)}
.topo-wrap::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(87,190,189,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(87,190,189,.06) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
/* 7-col grid: node | conn | node | conn | node | conn | node */
.topo-nodes{display:grid;grid-template-columns:1fr 80px 1fr 80px 1fr 80px 1fr;align-items:start;gap:0;position:relative;z-index:2}
.tnode{display:flex;flex-direction:column;align-items:center;gap:14px;cursor:default;opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.tnode.on{opacity:1;transform:none}
/* connector column */
.tconn{align-self:start;margin-top:35px;display:flex;flex-direction:column;align-items:stretch;gap:4px}
.tconn-track{height:2px;background:rgba(87,190,189,.15);background-image:repeating-linear-gradient(90deg,rgba(87,190,189,.25) 0,rgba(87,190,189,.25) 4px,transparent 4px,transparent 9px);border-radius:2px;overflow:hidden;position:relative}
.tconn-fill{position:absolute;inset:0;width:0%;background:linear-gradient(90deg,var(--teal),var(--teal2));box-shadow:0 0 8px rgba(87,190,189,.7);transition:width .7s cubic-bezier(.16,1,.3,1);border-radius:2px}
/* node states */
.tnode-circle{width:72px;height:72px;border-radius:50%;background:rgba(87,190,189,.08);border:1.5px solid rgba(87,190,189,.3);display:flex;align-items:center;justify-content:center;font-size:1.6rem;position:relative;transition:background .4s,border-color .4s,box-shadow .4s}
.tnode-circle::after{content:attr(data-n);position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--FM);font-size:.6rem;font-weight:500;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(87,190,189,.4)}
.tnode-dim .tnode-circle{opacity:.35}
.tnode-active .tnode-circle{background:rgba(101,205,184,.15);border-color:var(--teal2);box-shadow:0 0 0 8px rgba(87,190,189,.08),0 0 20px rgba(87,190,189,.25)}
@keyframes ring-pulse{0%{transform:scale(1);opacity:1}100%{transform:scale(1.45);opacity:0}}
.tnode-active .tnode-circle::before{content:'';position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(87,190,189,.4);animation:ring-pulse 1.8s ease-out infinite}
.tnode-label{text-align:center}
.tnode-label h5{font-family:var(--FB);font-size:.8rem;font-weight:700;color:#fff;margin-bottom:4px;letter-spacing:-.01em}
.tnode-label p{font-family:var(--FB);font-size:.7rem;color:rgba(255,255,255,.35);line-height:1.5}
.tnode-badge{font-family:var(--FM);font-size:.6rem;color:var(--teal2);background:rgba(87,190,189,.1);border:1px solid rgba(87,190,189,.2);padding:3px 9px;border-radius:20px;letter-spacing:.04em;margin-top:2px;display:inline-block}

/* ── FEATURES ── */
#features{padding:10vh 6%;background:var(--bg);border-top:1px solid rgba(87,190,189,.15)}
.feat-inner{max-width:1280px;margin:0 auto}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(87,190,189,.12);border-radius:12px;overflow:hidden;border:1px solid rgba(87,190,189,.12);margin-top:52px}
.fc{background:#fff;padding:34px 30px;position:relative;transition:background .3s}
.fc:hover{background:rgba(87,190,189,.04)}
.fc-bar{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal),var(--teal2));opacity:0;transition:opacity .3s}
.fc:hover .fc-bar{opacity:1}
.fc{border-left:2px solid transparent;transition:background .3s,border-color .3s}
.fc:hover{border-left-color:var(--teal)}
.fc-ico{font-size:1.4rem;margin-bottom:16px}
.fc h4{font-family:var(--FD);font-size:1.15rem;font-weight:600;margin-bottom:7px;color:var(--ink)}
.fc p{color:var(--mid);font-size:.84rem;line-height:1.65;font-family:var(--FB)}

/* ── MARQUEE ── */
.mq-strip{overflow:hidden;border-top:1px solid rgba(87,190,189,.15);border-bottom:1px solid rgba(87,190,189,.15);padding:16px 0;background:var(--bg2)}
.mq-track{display:flex;width:max-content;animation:mqscroll 22s linear infinite}
.mq-item{font-family:var(--FM);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);padding:0 34px;display:flex;align-items:center;gap:16px;white-space:nowrap}
.mq-dot{width:4px;height:4px;border-radius:50%;background:var(--teal);display:block}
@keyframes mqscroll{to{transform:translateX(-50%)}}

/* ── CTA ── */
#cta{min-height:72vh;display:flex;align-items:center;padding:10vh 6%;position:relative;overflow:hidden;background:var(--ink)}





/* ── CTA ── */
#cta{min-height:72vh;display:flex;align-items:center;padding:10vh 6%;position:relative;overflow:hidden;background:var(--ink)}
.cta-blob{position:absolute;width:700px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(87,190,189,.1) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.cta-inner{max-width:1280px;margin:0 auto;width:100%;text-align:center;position:relative;z-index:1}
.cta-big{font-family:var(--FD);font-size:clamp(2.8rem,7.5vw,8rem);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:#fff;margin-bottom:5vh}
.cta-big .accent{color:var(--teal2)}
.cta-line{display:block;overflow:visible;white-space:nowrap}
/* ── CONTACT ── */
#contact{padding:10vh 6%;background:var(--bg);border-top:1px solid rgba(87,190,189,.15)}
.contact-wrap{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px}
.c-detail{display:flex;flex-direction:column;gap:22px;margin-top:34px}
.c-row{display:flex;gap:14px;align-items:flex-start}
.c-ico{width:36px;height:36px;border-radius:8px;background:rgba(87,190,189,.08);border:1px solid rgba(87,190,189,.2);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.c-row h5{font-family:var(--FM);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:3px}
.c-row p{font-size:.93rem;color:var(--ink2);font-family:var(--FB)}
.c-form{display:flex;flex-direction:column;gap:13px;padding-top:34px}
.c-form h3{font-family:var(--FD);font-size:1.8rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin-bottom:4px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.fld{display:flex;flex-direction:column;gap:5px}
.fld label{font-family:var(--FM);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mid)}
.fld input,.fld textarea{background:#fff;border:1px solid rgba(87,190,189,.2);border-radius:6px;padding:12px 14px;color:var(--ink);font-family:var(--FB);font-size:.9rem;font-weight:300;outline:none;transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.fld input:focus,.fld textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(87,190,189,.1)}
.fld input::placeholder,.fld textarea::placeholder{color:#a8b8b0}
.fld textarea{resize:vertical;min-height:100px}
.btn-send{background:var(--teal);color:#fff;font-family:var(--FB);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;padding:14px 32px;border-radius:4px;border:none;cursor:pointer;transition:background .2s;box-shadow:0 4px 16px rgba(87,190,189,.28);width:fit-content}
.btn-send:hover{background:var(--teal2)}

/* ── FOOTER ── */
footer{padding:50px 6% 34px;background:var(--ink);border-top:1px solid rgba(87,190,189,.15)}
.foot-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:56px;padding-bottom:38px;border-bottom:1px solid rgba(87,190,189,.1)}
.foot-brand p{color:rgba(255,255,255,.4);font-size:.87rem;line-height:1.7;margin-top:12px;max-width:250px;font-weight:300;font-family:var(--FB)}
.foot-col h6{font-family:var(--FM);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:var(--teal);margin-bottom:16px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot-col ul a{text-decoration:none;color:rgba(255,255,255,.35);font-size:.87rem;transition:color .2s;font-weight:300;font-family:var(--FB)}
.foot-col ul a:hover{color:var(--teal2)}
.foot-btm{display:flex;justify-content:space-between;max-width:1280px;margin:26px auto 0;flex-wrap:wrap;gap:8px}
.foot-btm p{color:rgba(255,255,255,.25);font-size:.77rem;font-family:var(--FB)}

/* ── REVEAL ── */
.rv{transition:opacity .7s ease,transform .7s ease}
.js-anim .rv{opacity:0;transform:translateY(22px)}
.js-anim .rv.on{opacity:1;transform:translateY(0)}

/* ══════════════════════════
   MOBILE — nav hamburger
══════════════════════════ */
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none;z-index:800}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:all .3s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-mobile-menu{
  display:none;position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(247,248,246,.97);backdrop-filter:blur(20px);
  z-index:699;flex-direction:column;align-items:center;justify-content:center;gap:40px;
}
.nav-mobile-menu.open{display:flex}
.nav-mobile-menu a{font-family:var(--FD);font-size:2rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.02em;transition:color .2s}
.nav-mobile-menu a:hover,.nav-mobile-menu a.cta{color:var(--teal)}

/* ══════════════════════════
   RESPONSIVE BREAKPOINTS
══════════════════════════ */

/* Tablet — ≤1024px */
@media(max-width:1024px){
  .hero-h1{font-size:clamp(2.8rem,7vw,6rem)}
  .big-h{font-size:clamp(2.8rem,8vw,8rem)}
  .srv-name{font-size:clamp(1.6rem,4vw,3rem)}
  .api-layout{grid-template-columns:1fr;gap:40px}
  .sms-wrap{gap:50px}
  .cta-big{font-size:clamp(2.5rem,6vw,6rem)}
}

/* Mobile — ≤768px */
@media(max-width:768px){
  /* Nav */
  #cur,#cur-ring{display:none}
  .nav-ul{display:none}
  .nav-hamburger{display:flex}
  nav{padding:16px 5%}

  /* Hero */
  #hero{padding:60px 5% 8vh;min-height:75vh}
  .hero-h1{font-size:clamp(2.6rem,12vw,5rem);line-height:1.05}
  .hero-eyebrow{font-size:.6rem}
  .hero-bottom{flex-direction:column;align-items:flex-start;gap:20px}
  .hero-desc{font-size:.9rem;max-width:100%}
  .scroll-tip{display:none}

  /* Statements */
  .statement{padding:10vh 5%;min-height:auto}
  .big-h{font-size:clamp(2.4rem,10vw,5rem);line-height:1.05}
  .side-tag{display:none}
  .st-sub{font-size:.9rem;margin-top:24px}

  /* Services */
  #services{padding:8vh 5%}
  .srv-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}
  .srv-row{grid-template-columns:36px 1fr;gap:16px;padding:20px 0}
  .srv-name{font-size:clamp(1.4rem,6vw,2.4rem)}
  .srv-tag{display:none}
  .srv-row:hover{padding-left:0}

  /* SMS */
  #sms{padding:8vh 5%}
  .sms-wrap{grid-template-columns:1fr;gap:40px}
  .phone-scene{margin-bottom:0}
  .phone{width:220px}
  .ph-body{height:220px}
  .sms-kpis{grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
  .kpi{padding:14px 16px}
  .kpi-n{font-size:1.8rem}
  .pkt{display:none}

  /* API */
  #api{padding:8vh 5%}
  .api-layout{grid-template-columns:1fr;gap:32px}
  .terminal{border-radius:0 8px 8px 8px}
  .t-body{min-height:200px;font-size:.7rem}
  .sdk-chips{gap:6px}
  .chip{font-size:.65rem;padding:6px 11px}

  /* Topology */
  .topo-wrap{padding:32px 16px 24px}
  .topo-nodes{grid-template-columns:1fr 28px 1fr 28px 1fr 28px 1fr}
  .tnode-circle{width:52px;height:52px;font-size:1.2rem}
  .tnode-label h5{font-size:.7rem}
  .tnode-label p{display:none}
  .tnode-badge{font-size:.55rem;padding:2px 7px}

  /* Features */
  #features{padding:8vh 5%}
  .feat-grid{grid-template-columns:1fr 1fr}
  .fc{padding:24px 18px}
  .fc h4{font-size:1rem}
  .fc p{font-size:.78rem}

  /* CTA */
  #cta{padding:8vh 5%;min-height:auto}
  .cta-big{font-size:clamp(2.2rem,9vw,4.5rem);line-height:1.05}
  .cta-line{white-space:normal}

  /* Contact */
  #contact{padding:8vh 5%}
  .contact-wrap{grid-template-columns:1fr;gap:40px}
  .frow{grid-template-columns:1fr}
  .c-form{padding-top:0}
  .c-form h3{font-size:1.5rem}

  /* Footer */
  footer{padding:40px 5% 28px}
  .foot-grid{grid-template-columns:1fr;gap:32px}
  .foot-brand p{max-width:100%}
  .foot-btm{flex-direction:column;gap:6px}
}

/* Small mobile — ≤480px */
@media(max-width:480px){
  .hero-h1{font-size:clamp(2.2rem,11vw,4rem)}
  .big-h{font-size:clamp(2rem,9vw,3.5rem)}
  .feat-grid{grid-template-columns:1fr}
  .topo-nodes{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .tconn{display:none}
  .tnode{opacity:1!important;transform:none!important;flex-direction:row;align-items:center;gap:14px;text-align:left}
  .tnode-label{text-align:left}
  .tnode-circle{width:44px;height:44px;font-size:1rem;flex-shrink:0}
  .sms-kpis{grid-template-columns:1fr 1fr}
  .kpi-n{font-size:1.6rem}
}

/* ── 3D CANVAS HERO ── */
#globe-shadow{
  position:absolute;right:2%;top:50%;transform:translateY(-50%);
  width:52%;aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(106,190,189,0.22) 0%, rgba(106,190,189,0.10) 45%, transparent 72%);
  filter:blur(52px);
  pointer-events:none;z-index:0;
}
#hero-canvas{
  position:absolute;right:0;top:0;width:55%;height:100%;
  pointer-events:none;z-index:1;
}
#hero-canvas canvas{width:100%!important;height:100%!important}

/* ── FLOAT SHAPES (CSS 3D, statement sections) ── */
.shape3{
  position:absolute;pointer-events:none;
  transform-style:preserve-3d;animation:shape-float 8s ease-in-out infinite;
}
@keyframes shape-float{
  0%,100%{transform:translateY(0) rotateX(0) rotateY(0) rotateZ(0)}
  33%{transform:translateY(-22px) rotateX(15deg) rotateY(20deg) rotateZ(5deg)}
  66%{transform:translateY(-12px) rotateX(-8deg) rotateY(-15deg) rotateZ(-3deg)}
}
.shape3 svg{filter:drop-shadow(0 8px 24px rgba(87,190,189,.25))}

/* ── SMS 3D SCENE ── */

.phone-scene{position:relative}

/* hide canvases on very small screens */
@media(max-width:600px){
  #sms-canvas,.shape3{display:none}
}

/* ── GLOBE on mobile — right-anchored, natural teal blend ── */
@media(max-width:768px){
  #hero-canvas{
    width:90%;
    height:75%;
    top:50%;
    transform:translateY(-40%);
    right:-10%;
    opacity:1;
    mix-blend-mode:screen;
    filter:brightness(2.5) saturate(3) contrast(1.4);
  }
  #globe-shadow{
    width:80%;
    top:50%;
    right:0;
    transform:translateY(-40%);
    background:radial-gradient(ellipse at center, rgba(106,190,189,0.55) 0%, rgba(106,190,189,0.25) 45%, transparent 72%);
    filter:blur(40px);
  }
}

/* ══ PRELOADER ══════════════════════════════════════ */
#preloader{
  position:fixed;inset:0;z-index:99999;
  background:#0c1610;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:48px;
  pointer-events:all;
}
#preloader.pre-exit{
  animation:pre-fade-out .9s cubic-bezier(.77,0,.175,1) forwards;
}
@keyframes pre-fade-out{
  0%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.03);pointer-events:none}
}
#pre-logo-wrap{
  position:relative;
  width:min(340px,72vw);
}
/* filled logo — hidden until reveal */
#pre-svg-fill{
  position:absolute;inset:0;
  opacity:0;transition:opacity .55s ease .1s;
}
#pre-svg-fill.show{opacity:1}
/* stroke logo */
#pre-svg-stroke{width:100%}
.pp{
  fill:none;
  stroke:#57bebd;
  stroke-linejoin:round;
  stroke-linecap:round;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  /* individual transitions set by JS */
}
.pp-icon{stroke-width:1.8}
.pp-text{stroke-width:1.2}

/* tagline */
#pre-tagline{
  font-family:'DM Mono',monospace;
  font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(87,190,189,.35);
  opacity:0;
  animation:pre-tag-in .6s ease 1.4s forwards;
}
@keyframes pre-tag-in{to{opacity:1}}

/* progress bar */
#pre-bar-wrap{
  width:min(200px,52vw);
  height:1.5px;
  background:rgba(87,190,189,.12);
  border-radius:2px;
  overflow:hidden;
  opacity:0;
  animation:pre-tag-in .4s ease .2s forwards;
}
#pre-bar-fill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#57bebd,#65cdb8);
  border-radius:2px;
  transition:none;
}
/* ══ END PRELOADER ══════════════════════════════════ */