:root{--bg:#0b1424;--bg2:#0f1b30;--card:#13223b;--line:#22365a;--tx:#e6edf7;--mu:#9fb0c8;--ac:#2bb3ff;--ac2:#5ee1d9;--r:16px;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--ac)}h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em}h2{font-size:clamp(1.6rem,4.5vw,2.4rem);letter-spacing:-.02em}h3{font-size:1.15rem}h4{font-size:1.05rem}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:99;background:#fff;color:#000;padding:8px}
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:12px clamp(14px,4vw,40px);transition:background .3s,backdrop-filter .3s,box-shadow .3s}
.nav.scrolled{background:#0b1424cc;backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.logo{display:flex;align-items:center;gap:10px;color:var(--tx);text-decoration:none;font-weight:700}.logo img{border-radius:50%}
.nav nav{display:flex;gap:18px;align-items:center}.nav nav a:not(.btn){color:var(--mu);text-decoration:none;font-size:.95rem;transition:color .2s}.nav nav a:not(.btn):hover{color:var(--tx)}
@media(max-width:640px){.nav nav a:not(.btn){display:none}}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;background:linear-gradient(135deg,var(--ac),#3a7bff);color:#fff;font-weight:600;text-decoration:none;min-height:44px;box-shadow:0 6px 24px #2bb3ff40;transition:transform .25s var(--ease),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #2bb3ff66}.btn:active{transform:translateY(0) scale(.98)}.btn span{transition:transform .25s var(--ease)}.btn:hover span{transform:translateX(4px)}
.btn-ghost{background:transparent;border:1px solid var(--line);box-shadow:none;color:var(--tx)}.btn-ghost:hover{border-color:var(--ac);box-shadow:none}.btn-sm{padding:8px 14px;min-height:36px;font-size:.9rem}.btn-lg{padding:15px 26px;font-size:1.05rem}
:focus-visible{outline:2px solid var(--ac2);outline-offset:3px}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;padding:100px 18px 70px;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#163057 0%,var(--bg) 65%)}
#grid{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.hero-inner{position:relative;max-width:820px}
.hero-logo{border-radius:50%;animation:float 6s ease-in-out infinite,pop .9s var(--ease) both;filter:drop-shadow(0 0 24px #2bb3ff55)}
.eyebrow{color:var(--ac);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;margin:.6em 0}
h1{font-size:clamp(2.1rem,7vw,4.2rem);letter-spacing:-.03em;margin:.2em 0 .4em}
.split{display:inline-block;animation:rise .9s var(--ease) both}.split+.split{animation-delay:.15s}
.grad{background:linear-gradient(90deg,var(--ac),var(--ac2),var(--ac));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise .9s .15s var(--ease) both,shine 6s linear infinite}
.lead{color:var(--mu);font-size:clamp(1rem,2.6vw,1.2rem);max-width:640px;margin:0 auto 1.6em;animation:rise .9s .3s var(--ease) both}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:rise .9s .45s var(--ease) both}
.flow{list-style:none;padding:0;margin:44px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;font-size:.82rem;color:var(--mu)}
.flow li{position:relative;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#0f1b30aa;opacity:0;animation:rise .6s var(--ease) both}
.flow li:not(:last-child){margin-right:22px}.flow li:not(:last-child)::after{content:"";position:absolute;right:-20px;top:50%;width:18px;height:1px;background:linear-gradient(90deg,var(--ac),transparent)}
.flow li:nth-child(1){animation-delay:.7s}.flow li:nth-child(2){animation-delay:.8s}.flow li:nth-child(3){animation-delay:.9s}.flow li:nth-child(4){animation-delay:1s}.flow li:nth-child(5){animation-delay:1.1s;color:var(--ac2);border-color:var(--ac2)}
.scroll-cue{position:absolute;bottom:22px;left:50%;width:24px;height:38px;border:2px solid var(--mu);border-radius:14px;transform:translateX(-50%)}.scroll-cue span{position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--ac);animation:cue 1.8s infinite}
.section{padding:clamp(56px,10vw,110px) clamp(16px,5vw,48px);max-width:1200px;margin:0 auto}.alt{max-width:none;background:var(--bg2)}.alt>*{max-width:1200px;margin-left:auto;margin-right:auto}
.sub{color:var(--mu);margin-top:-.3em;margin-bottom:2em}
.grid2,.grid3,.grid4{display:grid;gap:16px}@media(min-width:700px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.grid4{grid-template-columns:repeat(4,1fr)}}
.card{position:relative;background:linear-gradient(180deg,var(--card),#101d33);border:1px solid var(--line);border-radius:var(--r);padding:20px;transition:transform .35s var(--ease),border-color .35s,box-shadow .35s}
.card p{color:var(--mu);margin:.2em 0 .6em}
.card:hover,.card:focus-visible{transform:translateY(-4px);border-color:#2bb3ff88;box-shadow:0 14px 40px #00000055,0 0 0 1px #2bb3ff22}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),#2bb3ff1f,transparent 40%);opacity:0;transition:opacity .3s;pointer-events:none}.card:hover::before{opacity:1}
.card-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.num{font-weight:800;font-size:1.3rem;color:var(--ac);font-variant-numeric:tabular-nums}
.ico{width:26px;height:26px;fill:none;stroke:var(--ac2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease)}.card:hover .ico{transform:rotate(-8deg) scale(1.12)}
.badge{margin-left:auto;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:999px;white-space:nowrap}
.soon{background:#ffffff0d;color:var(--mu);border:1px solid var(--line)}
.live-b{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;background:#12d48a22;color:#45e3a3;border:1px solid #45e3a366}.live-b i{width:8px;height:8px;border-radius:50%;background:#45e3a3;box-shadow:0 0 0 0 #45e3a3;animation:pulse 2s infinite}
.feats{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}.feats li{font-size:.78rem;padding:3px 9px;border-radius:999px;background:#2bb3ff14;border:1px solid #2bb3ff33;color:#bfe6ff}
.feats.big{display:grid;gap:8px;margin:14px 0 22px}.feats.big li{font-size:.95rem;border-radius:10px;padding:8px 12px;background:#ffffff08;border-color:var(--line);color:var(--tx)}.feats.big li::before{content:"✓ ";color:#45e3a3;font-weight:700}
.module{margin-bottom:8px}.mod-head{margin:10px 0 18px}.mod-tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ac2);margin-right:10px}
.mod-head h3{font-size:1.5rem;margin:.2em 0}.mod-sub{color:var(--ac);margin:0;font-weight:600}.mod-desc{color:var(--mu);max-width:760px}
.gate{display:flex;justify-content:center;margin:26px 0}.gate span{position:relative;padding:8px 18px;border-radius:999px;border:1px dashed var(--ac2);color:var(--ac2);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--bg2)}
.gate::before{content:"";position:absolute;width:1px;height:60px;background:linear-gradient(transparent,var(--ac2),transparent);margin-top:-14px;z-index:-1}
.principle{margin-top:34px;padding:16px 20px;border-left:3px solid var(--ac);background:#2bb3ff0f;border-radius:0 12px 12px 0;color:var(--mu)}
.live{display:grid;gap:24px;padding:clamp(20px,4vw,40px);border-color:#45e3a355;background:linear-gradient(135deg,#0f2a2e,#13223b 60%)}@media(min-width:860px){.live{grid-template-columns:1.2fr 1fr;align-items:center}}
.lead-sm{color:var(--mu);font-size:1.1rem}.fine{font-size:.85rem;color:var(--mu);margin-top:14px}
.live-vis .ph{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#b88a5c 0 8%,#e9e4dc 8% 62%,#8d6a4a 62% 64%,#cfc3b2 64%);box-shadow:inset 0 0 60px #0006}
.live-vis .ph::after{content:"";position:absolute;left:0;right:0;top:0;height:62%;background:repeating-linear-gradient(90deg,#6b4628 0 9px,#7c5233 9px 14px);clip-path:polygon(0 12%,45% 12%,45% 100%,0 100%)}
.rg{position:absolute;border:2px solid #ff4d5a;background:#ff4d5a1c;border-radius:4px;opacity:0;transform:scale(.9);z-index:2}.rg b{position:absolute;top:-2px;left:-2px;background:#ff4d5a;color:#fff;font-size:.75rem;padding:0 6px;border-radius:3px 0 3px 0}
.r1{left:2%;top:12%;width:42%;height:50%}.r2{left:50%;top:20%;width:46%;height:38%;border-style:dashed;border-color:#ffa53a;background:#ffa53a1c}.r2 b{background:#ffa53a}.r3{left:2%;top:66%;width:96%;height:30%}
.in .rg{animation:box .6s var(--ease) forwards}.in .r1{animation-delay:.5s}.in .r2{animation-delay:.9s}.in .r3{animation-delay:1.3s}
.scan{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 45%,#5ee1d966 50%,transparent 55%);background-size:100% 200%;animation:scan 3s linear infinite;mix-blend-mode:screen;z-index:3}
.vaastu{border-color:#ffffff22}.vaastu .badge{margin-left:0}
.steps{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px;counter-reset:s}@media(min-width:900px){.steps{grid-template-columns:repeat(5,1fr)}}
.steps li{counter-increment:s;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--card)}.steps li::before{content:counter(s,decimal-leading-zero);display:block;color:var(--ac);font-weight:800;font-size:.85rem}.steps span{display:block;color:var(--mu);font-size:.9rem}
.steps .hl{border-color:var(--ac2);box-shadow:0 0 0 1px #5ee1d955,0 10px 40px #5ee1d922}
.gates .card b{color:var(--ac2)}
.final{text-align:center}.final .cta{animation:none}
footer{padding:30px 16px 40px;text-align:center;color:var(--mu);font-size:.9rem;border-top:1px solid var(--line)}footer img{vertical-align:middle;border-radius:50%}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms)}.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pop{from{opacity:0;transform:scale(.6)}}
@keyframes float{50%{transform:translateY(-8px)}}@keyframes shine{to{background-position:200% center}}@keyframes cue{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
@keyframes pulse{70%{box-shadow:0 0 0 10px #45e3a300}100%{box-shadow:0 0 0 0 #45e3a300}}@keyframes box{to{opacity:1;transform:none}}@keyframes scan{from{background-position:0 100%}to{background-position:0 -100%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal,.flow li,.rg{opacity:1!important;transform:none!important}#grid{display:none}.scan{display:none}}

.init{background:#2bb3ff1f;color:#7fd0ff;border:1px solid #2bb3ff66}.open{display:inline-block;margin-top:10px;font-weight:600;color:var(--ac2);text-decoration:none}.open:hover{text-decoration:underline}
/* ---- data-flow chart ---- */
#flowchart{position:relative;margin-top:18px}
.flow-svg{width:100%;height:auto;display:block;overflow:visible}
.flow-d{display:none}
@media (min-width:860px){.flow-m{display:none}.flow-d{display:block}}
.flow-m{max-width:440px;margin:0 auto}
.fband{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.fedge{fill:none;stroke-width:1.6;opacity:.18;transition:opacity .6s var(--ease)}
.fedge.dash{stroke-dasharray:5 5}
.fedge.on{opacity:.65}
.flab{font-size:10px;fill:var(--mu)}
.fnode .fshape{fill:var(--card);stroke:var(--line);stroke-width:1.5;transition:stroke .5s var(--ease),fill .5s var(--ease),filter .5s var(--ease)}
.fnode .dashb{stroke-dasharray:5 4}
.fnode .ft{font-size:11.5px;font-weight:700;fill:var(--mu);transition:fill .5s}
.fnode .fs{font-size:9.5px;fill:var(--mu);opacity:.75}
.fnode{opacity:.55;transition:opacity .5s var(--ease)}
.fnode.on{opacity:1}
.fnode.on .fshape{stroke:var(--c);fill:color-mix(in srgb,var(--c) 12%,var(--card));filter:drop-shadow(0 0 6px color-mix(in srgb,var(--c) 45%,transparent))}
.fnode.on .ft{fill:var(--tx)}
.k-gate.on .fshape{fill:var(--bg2);stroke-dasharray:4 3}
.k-gate .ft{fill:var(--ac2)!important;font-size:10.5px}
a:focus-visible .fshape,a:hover .fshape{stroke:var(--tx)!important;stroke-width:2.2}
a .fnode{cursor:pointer}
.flow-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.8rem;color:var(--mu);margin-top:12px}
.flow-legend i{display:inline-block;width:18px;height:0;border-top:2px solid var(--ac);vertical-align:middle;margin-right:6px}
.flow-legend i.d{border-top-style:dashed;border-color:#f5b942}
.flow-legend i.g{width:10px;height:10px;border:1.5px dashed var(--ac2);transform:rotate(45deg)}
@media (prefers-reduced-motion:reduce){.fnode,.fedge,.fshape{transition:none}}
.flow-svg .flow-m text{font-size:10px}
