/* ===== HOMEPAGE ===== */
.hl{color:var(--cyan)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(120,180,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(120,180,255,.06) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 60% at 70% 40%,#000,transparent 75%);mask-image:radial-gradient(70% 60% at 70% 40%,#000,transparent 75%)}
.section-dark{color:var(--text-on-dark);position:relative;overflow:hidden}
@media(min-width:981px){.hero-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.hero h1{font-size:clamp(2rem,3.2vw,3.15rem)}.hero h1 span{white-space:nowrap}}

/* --- device --- */
.hero-visual{position:relative;margin:0;padding:3% 4% 0}
.device{container-type:inline-size;position:relative;transform:perspective(1800px) rotateY(-11deg) rotateX(3deg);transform-origin:50% 60%}
.device::before{content:"";position:absolute;inset:-12% -8% 0;background:radial-gradient(50% 50% at 50% 45%,rgba(0,190,220,.32),transparent 70%);z-index:-1;filter:blur(10px)}
.lid{position:relative;padding:1.5cqi 1.5cqi 2.2cqi;border-radius:2.2cqi 2.2cqi .7cqi .7cqi;background:linear-gradient(160deg,#252e40,#0d1320 40%,#080c16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),inset 0 1px 0 rgba(255,255,255,.25)}
.cam{position:absolute;top:.55cqi;left:50%;width:.55cqi;height:.55cqi;border-radius:50%;background:#2a3346;box-shadow:0 0 0 1px #0a0e18}
.screen{position:relative;aspect-ratio:16/10;display:grid;grid-template-columns:19% 1fr;overflow:hidden;border-radius:.5cqi;background:radial-gradient(80% 60% at 70% 0%,rgba(0,120,180,.22),transparent 60%),linear-gradient(165deg,#06183a,#030b20 70%);font:500 1.32cqi/1.25 var(--font-body);color:#D9E6F5}
.screen::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.02) 28%,transparent 42%)}
.deck{position:relative;height:2.6cqi;margin:0 -7%;border-radius:.3cqi .3cqi 3cqi 3cqi/.3cqi .3cqi 2.2cqi 2.2cqi;background:linear-gradient(180deg,#e9edf3 0%,#b7c0cd 35%,#7b8698 75%,#4b5466 100%);box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
.deck::before{content:"";position:absolute;inset:0 0 auto;height:.35cqi;background:linear-gradient(90deg,#5c6577,#9aa4b4 50%,#5c6577);border-radius:.3cqi}
.notch{position:absolute;left:50%;top:0;width:13%;height:1cqi;transform:translateX(-50%);border-radius:0 0 1.2cqi 1.2cqi;background:linear-gradient(#8e98a9,#a9b2c0)}
.device-shadow{height:4cqi;margin:-.5cqi -2% 0;background:radial-gradient(50% 50% at 50% 0,rgba(0,0,0,.6),transparent 70%)}
/* ui */
.screen .ico{width:1.2em;height:1.2em}
.ui-side{display:flex;flex-direction:column;gap:.35em;padding:1.1em .8em;border-right:1px solid rgba(255,255,255,.06);background:rgba(2,8,26,.45);color:#8FA3BF}
.ui-side img{width:82%;height:auto;margin:0 0 1em .3em}
.ui-side span{display:flex;align-items:center;gap:.6em;padding:.55em .6em;border-radius:.5em;white-space:nowrap}
.ui-side .on{background:linear-gradient(90deg,rgba(0,216,224,.2),rgba(0,216,224,.04));color:#7FF0F4;box-shadow:inset 2px 0 0 #00D8E0}
.ui-side-foot{margin-top:auto}.ui-side-foot i{width:1.4em;height:1.4em;border-radius:50%;background:linear-gradient(135deg,#00D8E0,#2E8BFF)}
.ui-main{display:grid;grid-template-rows:auto auto 1fr auto;gap:.75em;padding:1em 1.1em;min-width:0;min-height:0}
.ui-top{display:flex;align-items:center;gap:.8em}.ui-top b{font:600 1.25em var(--font-display);margin-right:auto;color:#fff}
.ui-search{display:flex;align-items:center;width:22%;height:1.9em;padding:0 .6em;border-radius:1em;background:rgba(255,255,255,.06);color:#6f84a3}
.ui-status{display:flex;align-items:center;gap:.4em;font-size:.82em;color:#9fe9ec;padding:.35em .7em;border-radius:1em;background:rgba(0,216,224,.08);border:1px solid rgba(0,216,224,.25)}
.ui-status i{width:.55em;height:.55em;border-radius:50%;background:#2ee6a6;box-shadow:0 0 .6em #2ee6a6}
.ui-avatar{width:1.9em;height:1.9em;border-radius:50%;background:linear-gradient(135deg,#334a6e,#1a2a45);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.ui-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.6em}
.ui-kpi,.ui-panel{min-width:0;border-radius:.6em;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ui-kpi{padding:.65em .7em;display:grid;grid-template-columns:1fr auto;align-items:end;gap:.3em}
.ui-kpi small,.ui-panel small{grid-column:1/-1;font-size:.82em;color:#8FA3BF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sk{display:block;height:1.1em;width:70%;border-radius:.25em;background:linear-gradient(90deg,rgba(0,216,224,.75),rgba(46,139,255,.45) 50%,rgba(0,216,224,.75));background-size:200% 100%;animation:shimmer 5s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.ui-kpi svg{width:3.4em;height:1.1em}.ui-kpi path{fill:none;stroke:#5BE7EE;stroke-width:1.6;stroke-linejoin:round}
.ui-grid{display:grid;grid-template-columns:1.75fr 1fr;gap:.6em;min-height:0}
.ui-panel{padding:.7em .8em;display:flex;flex-direction:column;min-height:0}
.ui-chart header{display:flex;justify-content:space-between;align-items:center}
.ui-legend{display:flex;align-items:center;gap:.4em;font-size:.75em;color:#8FA3BF}.ui-legend i{width:.7em;height:.25em;border-radius:1em;background:#5BE7EE}.ui-legend i.b{background:#2E8BFF;margin-left:.4em}
.ui-chart svg{flex:1;width:100%;min-height:0;margin-top:.5em}
.ui-axis{display:flex;justify-content:space-between;font-size:.72em;color:#6f84a3;padding:.3em .2em 0}
.ui-map svg{flex:1;width:100%;min-height:0;margin-top:.3em}
.ui-flows{gap:.35em}.ui-row{display:flex;align-items:center;justify-content:space-between;padding:.35em .2em;border-top:1px solid rgba(255,255,255,.05)}
.ui-row span{display:flex;align-items:center;gap:.6em}.ui-row .ico{color:#5BE7EE}
.ui-row em{font-style:normal;font-size:.78em;padding:.2em .7em;border-radius:1em;background:rgba(143,163,191,.14);color:#AEBDD3}.ui-row em.run{background:rgba(46,230,166,.12);color:#6ff0c4}
.draw{stroke-dasharray:420;stroke-dashoffset:420;animation:draw 2.4s .4s var(--ease) forwards}@keyframes draw{to{stroke-dashoffset:0}}
.ping{transform-origin:290px 14px;animation:ping 2.6s ease-out infinite}@keyframes ping{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}
/* floating glass cards */
.float{position:absolute;z-index:2;display:flex;gap:12px;align-items:center;max-width:260px;padding:12px 16px 12px 12px;border-radius:14px;background:linear-gradient(160deg,rgba(14,42,85,.78),rgba(5,16,40,.72));border:1px solid rgba(0,216,224,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 40px -18px rgba(0,0,0,.7);font-size:.8rem;line-height:1.35;animation:bob 7s ease-in-out infinite}
.float small{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#7FF0F4;margin-bottom:2px}.float b{font-weight:500;color:#E8EEF7}
.f-ico{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:rgba(0,216,224,.15);color:var(--cyan)}
.f1{left:-7%;bottom:9%}.f2{right:-2%;top:-2%;animation-delay:-3.5s}
@keyframes bob{50%{transform:translateY(-8px)}}
.lap-note{margin-top:10px;text-align:center;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(200,215,235,.45)}
@media(max-width:980px){.device{transform:none}.hero-visual{max-width:640px;margin-inline:auto;width:100%;padding:0}.float{display:none}}

/* --- strip --- */
@media(max-width:980px){.strip{grid-template-columns:repeat(2,1fr);gap:14px 18px;padding-block:22px}.strip>div{font-size:.8rem;gap:10px}.strip .ico{width:24px;height:24px}.strip br{display:none}}

/* --- services bento --- */
.section-light{background:radial-gradient(60% 50% at 100% 0,rgba(0,216,224,.08),transparent 70%),radial-gradient(50% 50% at 0 100%,rgba(46,139,255,.06),transparent 70%),#F7FAFC}
.bento{display:grid;gap:16px;grid-template-columns:1.3fr 1fr 1fr;grid-template-areas:"f a b" "f c d" "w w all"}
.bento>:nth-child(1){grid-area:f}.bento>:nth-child(2){grid-area:a}.bento>:nth-child(3){grid-area:b}.bento>:nth-child(4){grid-area:c}.bento>:nth-child(5){grid-area:d}.bento>:nth-child(6){grid-area:w}.bento>:nth-child(7){grid-area:all}
.b-card,.b-all{position:relative;display:flex;flex-direction:column;gap:6px;padding:26px 24px;border-radius:18px;text-decoration:none;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.b-card{background:#fff;border:1px solid rgba(11,40,80,.08);box-shadow:0 1px 2px rgba(6,30,60,.04),0 10px 30px -18px rgba(6,40,80,.25)}
.b-card:hover{transform:translateY(-3px);border-color:rgba(0,200,215,.45);box-shadow:0 22px 44px -22px rgba(0,120,170,.4)}
.b-card h3{font-size:1.08rem;margin:6px 0 4px}.b-card p{margin:0;color:var(--text-dim);font-size:.9rem;line-height:1.55}
.b-card .ico-wrap{width:44px;height:44px;margin:0;border-radius:12px;background:linear-gradient(135deg,rgba(0,216,224,.18),rgba(46,139,255,.12));color:#07808a}
.b-card .card-go{position:absolute;right:20px;top:24px;bottom:auto}
.b-feature{background:radial-gradient(90% 70% at 100% 0,rgba(0,170,210,.35),transparent 60%),linear-gradient(165deg,#0a1f45,#030725);color:var(--text-on-dark);border:1px solid rgba(0,216,224,.25);padding:34px 32px}
.b-feature .flow{position:absolute;inset:auto -20% -10% -20%;width:140%;height:60%;opacity:.45;mix-blend-mode:screen;pointer-events:none}
.b-feature>*{position:relative}.b-feature .ico-wrap{background:rgba(0,216,224,.16);color:var(--cyan);margin-top:14px}
.b-feature h3{font-size:clamp(1.4rem,2vw,1.75rem);color:#fff;margin-top:14px}.b-feature p{color:#BFCDE1;font-size:.98rem}
.b-feature ul{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:9px;font-size:.9rem;color:#D9E6F5}
.b-feature li{display:flex;gap:10px;align-items:baseline}.b-feature li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--cyan);transform:translateY(-2px)}
.b-tag{font:600 .7rem var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:#07a0aa}.b-feature .b-tag,.b-all .b-tag{color:var(--cyan)}
.b-more{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:22px;font-weight:600;font-size:.92rem;color:var(--cyan)}
.b-feature:hover .b-more .ico,.b-all:hover .b-more .ico{transform:translateX(4px)}.b-more .ico{transition:transform .25s}
.b-wide{flex-direction:row;align-items:center;gap:22px}.b-wide>div{flex:1}.b-viz{flex:none;width:36%;max-width:220px;height:auto}.b-wide .card-go{position:static;flex:none}
.b-all{background:linear-gradient(150deg,#00C9D2,#0a8fd6);color:#03142e;border:0}.b-all .b-tag{color:#03203f;opacity:.75}.b-all b{font:600 1.05rem/1.4 var(--font-display);margin-top:8px}.b-all .b-more{color:#03142e}
.b-all:hover{transform:translateY(-3px);box-shadow:0 20px 40px -20px rgba(0,140,200,.7)}
@media(max-width:1020px){.bento{grid-template-columns:1fr 1fr;grid-template-areas:"f f" "a b" "c d" "w w" "all all"}.b-viz{width:30%}}
@media(max-width:640px){
  .bento{grid-template-columns:1fr;grid-template-areas:"f" "a" "b" "c" "d" "w" "all";gap:10px}
  .b-feature{padding:26px 22px}.b-feature ul{display:none}.b-feature .b-more{padding-top:16px}
  .b-card:not(.b-feature){display:grid;grid-template-columns:44px 1fr 28px;align-items:center;gap:14px;padding:16px}
  .b-card:not(.b-feature) h3{margin:0 0 2px;font-size:1rem}.b-card:not(.b-feature) p{font-size:.84rem;line-height:1.45}
  .b-card .card-go{position:static;width:28px;height:28px}.b-viz{display:none}
  .b-all{padding:20px 22px}.b-all b{font-size:.95rem}.b-all .b-more{padding-top:12px}
}

/* --- bigger picture (signature) --- */
.picture{padding-bottom:clamp(56px,7vw,88px);background:radial-gradient(55% 60% at 75% 45%,rgba(0,120,200,.22),transparent 70%),linear-gradient(180deg,#041029,#030725)}
.picture-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,5vw,72px);align-items:center}
.picture h2{font-size:clamp(1.8rem,3.1vw,2.6rem)}.picture-copy>p{color:#BFCDE1;max-width:34em}
.contrast{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.contrast>div{padding:16px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.contrast small{display:block;font:600 .7rem var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:#8FA3BF;margin-bottom:6px}
.contrast p{margin:0;font-size:.88rem;line-height:1.5;color:#AFC0D6}
.contrast .us{border-color:rgba(0,216,224,.45);background:linear-gradient(160deg,rgba(0,216,224,.12),rgba(0,216,224,.02))}.contrast .us small{color:var(--cyan)}.contrast .us p{color:#E8EEF7}
.sysmap{position:relative;width:100%;max-width:560px;margin-inline:auto;aspect-ratio:1}
.sysmap-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring{fill:none;stroke:rgba(120,190,255,.16);stroke-width:1;vector-effect:non-scaling-stroke}.r1{stroke-dasharray:2 5}.r3{stroke:rgba(120,190,255,.07)}
.r2{stroke-dasharray:1 6;stroke:rgba(0,216,224,.3)}
.spoke{fill:none;stroke:url(#spk);stroke-opacity:.55;stroke-width:1.3;vector-effect:non-scaling-stroke}
.cross{fill:none;stroke:rgba(91,231,238,.13);stroke-width:1;vector-effect:non-scaling-stroke}
.core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30%;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;background:radial-gradient(circle at 50% 35%,#0f2f5e,#04112b 70%);border:1px solid rgba(0,216,224,.55);box-shadow:0 0 0 8px rgba(0,216,224,.05),0 0 60px -6px rgba(0,216,224,.55),inset 0 1px 0 rgba(255,255,255,.12)}
.core img{width:72%;height:auto}.core small{font-size:clamp(.55rem,1.1vw,.68rem);letter-spacing:.14em;text-transform:uppercase;color:#7FF0F4;line-height:1.3}
.core-ring{position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(0,216,224,.16)}
.node{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:9px 14px 9px 10px;border-radius:999px;font-size:.86rem;font-weight:500;color:#E8EEF7;background:linear-gradient(160deg,rgba(14,42,85,.92),rgba(5,16,40,.92));border:1px solid rgba(0,216,224,.35);box-shadow:0 10px 24px -12px rgba(0,0,0,.8),0 0 0 4px rgba(0,216,224,.04);transition:border-color .3s,box-shadow .3s}
.node .ico{width:18px;height:18px;color:var(--cyan)}
.node:hover{border-color:var(--cyan);box-shadow:0 0 24px -4px rgba(0,216,224,.6)}
.picture .checklist{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:clamp(20px,2.5vw,28px) 0 0;border:0;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.picture .checklist li{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;line-height:1.45;color:#C9D6E8}.picture .checklist .ico{flex:none;width:20px;height:20px;color:var(--cyan)}
@media(max-width:1020px){.picture .checklist{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.picture-grid{grid-template-columns:1fr}.picture-visual{order:2}.sysmap{max-width:460px}}
@media(max-width:560px){.node{font-size:.72rem;padding:6px 10px 6px 7px;gap:5px}.node .ico{width:14px;height:14px}.core small{display:none}.contrast{grid-template-columns:1fr 1fr;gap:8px}.contrast>div{padding:12px 14px}.contrast p{font-size:.8rem}.picture .checklist{grid-template-columns:1fr;gap:12px}}

/* --- process --- */
.process{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);position:relative}
.process::before{content:"";position:absolute;top:23px;left:23px;right:12%;height:1px;background:linear-gradient(90deg,rgba(0,200,215,.7),rgba(46,139,255,.35) 70%,transparent)}
.process li{position:relative}.process h3{margin-bottom:.35em}
.num{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;border:1.5px solid rgba(0,200,215,.75);color:#07808a;font:600 .95rem var(--font-display);margin-bottom:18px;box-shadow:0 0 0 6px #fff}
.process p{color:var(--text-dim);font-size:.92rem;max-width:20em;margin:0}
@media(max-width:860px){
  .process{grid-template-columns:1fr;gap:0}.process::before{top:23px;bottom:23px;left:22px;right:auto;width:1px;height:auto;background:linear-gradient(180deg,rgba(0,200,215,.7),rgba(46,139,255,.3))}
  .process li{display:grid;grid-template-columns:46px 1fr;gap:16px;padding-bottom:22px}.process li:last-child{padding-bottom:0}.num{margin:0}.process h3{font-size:1.05rem;margin:10px 0 2px}.process p{font-size:.88rem}
}

/* --- mobile rhythm --- */
@media(max-width:640px){
  :root{--space-section:56px}
  .hero-grid{padding-top:calc(76px + 28px);gap:28px}
  .hero .actions{margin-top:1.5rem}.hero .actions .btn{flex:1 1 auto}
  .sec-head{margin-bottom:24px}.sec-head .sub{font-size:.95rem}
  .cta-inner .actions .btn{flex:1 1 auto}
}

/* ===== v3 refinements ===== */
/* hero atmosphere + data streams */
.hero::after{content:"";position:absolute;inset:auto 0 0;height:40%;pointer-events:none;background:radial-gradient(60% 100% at 70% 100%,rgba(0,150,200,.14),transparent 70%)}
.hero-copy{position:relative;z-index:2}
.hero-visual>.device,.hero-visual>.float,.hero-visual>figcaption{position:relative;z-index:1}.hero-visual>.float{position:absolute;z-index:2}
.hero-streams{position:absolute;z-index:0;left:-45%;width:145%;top:50%;transform:translateY(-52%);height:auto;overflow:visible;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 26%,#000 44%);mask-image:linear-gradient(90deg,transparent 0,transparent 26%,#000 44%)}
.hs-line{fill:none;stroke:url(#hsg);stroke-width:1.1;opacity:.55}
.hs-streak{fill:none;stroke:#7FF0F4;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 109;stroke-dashoffset:7;filter:drop-shadow(0 0 4px #00D8E0);animation:hs-flow 8s cubic-bezier(.45,0,.6,1) infinite;opacity:.85}
@keyframes hs-flow{to{stroke-dashoffset:-100}}
.hs-dot{filter:drop-shadow(0 0 3px rgba(0,216,224,.9))}
.device::before{animation:breathe 6s ease-in-out infinite}@keyframes breathe{50%{opacity:.6}}
@media(max-width:980px){.hero-streams{left:-12%;width:124%;transform:translateY(-50%)}.hs-line{opacity:.4}}
/* cinematic CTA */
.cta-band{background:#030725}
.cta-band .ridge{object-position:100% 100%}
.cta-band::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(3,7,37,.92) 0%,rgba(3,7,37,.65) 38%,rgba(3,7,37,0) 70%),linear-gradient(0deg,rgba(3,7,37,.55),transparent 30%)}
.cta-inner{z-index:1;padding-block:clamp(72px,10vw,132px)}
@media(max-width:760px){.cta-band .ridge{object-position:78% 100%}.cta-band::before{background:linear-gradient(180deg,rgba(3,7,37,.9) 0%,rgba(3,7,37,.55) 60%,rgba(3,7,37,.35) 100%)}}
/* service card polish */
.b-card{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid rgba(15,50,95,.075);box-shadow:inset 0 1px 0 #fff,0 1px 1px rgba(6,30,60,.03),0 4px 10px -4px rgba(6,30,60,.06),0 18px 36px -22px rgba(6,40,80,.22)}
.b-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;background:linear-gradient(160deg,rgba(0,216,224,.35),transparent 35%,transparent 70%,rgba(46,139,255,.18));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;transition:opacity .35s}
.b-card:hover{border-color:rgba(0,200,215,.3);box-shadow:inset 0 1px 0 #fff,0 2px 4px rgba(6,30,60,.04),0 12px 24px -10px rgba(0,110,160,.16),0 28px 56px -28px rgba(0,120,170,.38)}
.b-card:hover::after{opacity:1}
.b-feature{box-shadow:0 30px 60px -30px rgba(3,20,60,.65),0 0 0 1px rgba(0,216,224,.08) inset}.b-feature::after{background:linear-gradient(160deg,rgba(0,216,224,.6),transparent 40%,transparent 70%,rgba(46,139,255,.35))}
.b-card .ico-wrap{box-shadow:inset 0 0 0 1px rgba(0,180,200,.15)}
.b-all{box-shadow:0 22px 44px -26px rgba(0,120,190,.7),inset 0 1px 0 rgba(255,255,255,.35)}
.b-card.b-feature{background:radial-gradient(90% 70% at 100% 0,rgba(0,170,210,.35),transparent 60%),linear-gradient(165deg,#0a1f45,#030725);border-color:rgba(0,216,224,.25)}
@media(max-width:980px){.hero-streams{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent 0,#000 18%,#000 82%,transparent)}.hs-line{opacity:.6}}

/* ===== revision: Bigger Picture assembles once, then rests (approved) ===== */
/* bigger picture: the system assembles once when scrolled into view; hovering an area highlights its connection */
.sysmap .spoke,.sysmap .cross{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease),stroke-opacity .35s,stroke-width .35s}
.sysmap .cross{transition-delay:.7s}
.sysmap .node{opacity:0;transform:translate(-50%,-50%) scale(.96);transition:opacity .6s var(--ease),transform .6s var(--ease),border-color .3s,box-shadow .3s}
.sysmap .core{opacity:0;transition:opacity .8s var(--ease)}
.sysmap.is-in .spoke,.sysmap.is-in .cross{stroke-dashoffset:0}
.sysmap.is-in .node{opacity:1;transform:translate(-50%,-50%)}.sysmap.is-in .core{opacity:1}
.sysmap.is-in .node:nth-of-type(1){transition-delay:.35s}.sysmap.is-in .node:nth-of-type(2){transition-delay:.45s}.sysmap.is-in .node:nth-of-type(3){transition-delay:.55s}.sysmap.is-in .node:nth-of-type(4){transition-delay:.65s}.sysmap.is-in .node:nth-of-type(5){transition-delay:.75s}.sysmap.is-in .node:nth-of-type(6){transition-delay:.85s}.sysmap.is-in .node:nth-of-type(7){transition-delay:.95s}
.sysmap .spoke.hot{stroke-opacity:1;stroke-width:2}
.sysmap .node:hover{transition-delay:0s!important}
@media (prefers-reduced-motion:reduce){.sysmap .spoke,.sysmap .cross{stroke-dashoffset:0}.sysmap .node,.sysmap .core{opacity:1}}

/* hero is approved as-is: keep original heading/lede rendering */
.hero h1{text-wrap:wrap;letter-spacing:-.02em}.hero p{text-wrap:wrap}
/* Connected Operating Layer: slow continuous rotation of the ring, connections and labels.
   The centre logo and every label counter-rotate, so they stay stationary-upright and readable. */
.sysmap{animation:orbit 120s linear infinite}
.sysmap .node,.sysmap .core{transform-origin:0 0;animation:orbit-counter 120s linear infinite}
@keyframes orbit{to{rotate:360deg}}
@keyframes orbit-counter{to{rotate:-360deg}}
/* NeoLynk core: slow pulse; each pulse sends a signal out along one connection to an outer area (one at a time, in turn). */
.sysmap .core-ring{animation:core-pulse 6s ease-out infinite}
@keyframes core-pulse{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.32);opacity:0}}
.sysmap .core{animation:orbit-counter 120s linear infinite,core-glow 6s ease-in-out infinite}
@keyframes core-glow{0%,100%{box-shadow:0 0 0 8px rgba(0,216,224,.05),0 0 60px -6px rgba(0,216,224,.55),inset 0 1px 0 rgba(255,255,255,.12)}50%{box-shadow:0 0 0 10px rgba(0,216,224,.08),0 0 80px -4px rgba(0,216,224,.75),inset 0 1px 0 rgba(255,255,255,.12)}}
.signal{fill:none;stroke:#9FF6FA;stroke-width:.42;stroke-linecap:round;stroke-dasharray:.14 1.3;stroke-dashoffset:.14;opacity:0;filter:drop-shadow(0 0 3px #00D8E0)}
.sysmap.is-in .signal{opacity:1;animation:signal-out 6s cubic-bezier(.45,0,.35,1) infinite}
.sysmap.is-in .signal:nth-child(1){animation-delay:1.5s}.sysmap.is-in .signal:nth-child(2){animation-delay:2.36s}.sysmap.is-in .signal:nth-child(3){animation-delay:3.21s}.sysmap.is-in .signal:nth-child(4){animation-delay:4.07s}.sysmap.is-in .signal:nth-child(5){animation-delay:4.93s}.sysmap.is-in .signal:nth-child(6){animation-delay:5.79s}.sysmap.is-in .signal:nth-child(7){animation-delay:6.64s}
@keyframes signal-out{0%{stroke-dashoffset:.14}28%{stroke-dashoffset:-1}100%{stroke-dashoffset:-1}}
@media (prefers-reduced-motion:reduce){.signal{display:none}}
/* dash-based drawing needs path-length units, so these lines use viewBox-relative widths instead of non-scaling strokes */
.sysmap .spoke{vector-effect:none;stroke-width:.24}.sysmap .spoke.hot{stroke-width:.38}.sysmap .cross{vector-effect:none;stroke-width:.18}
