:root{
  --net-font-fa:var(--font-fa);
  --net-white:#ffffff;
  --net-brand:#206BEE;
  --net-ink-strong:#07184b;
  --net-ink:#0d2857;
  --net-text:#26374d;
  --net-muted:#5f6f83;
  --net-muted-soft:#68788a;
  --net-line-strong:#cfdeef;
  --net-line:#d6e3f3;
  --net-line-soft:#e2ebf6;
  --net-line-subtle:#edf1f6;
  --net-surface:#ffffff;
  --net-surface-soft:#fbfdff;
  --net-surface-alt:#f5f9fe;
  --net-surface-blue:#f8fbff;
  --net-surface-muted:#f6f8fb;
  --net-blue:#1166d9;
  --net-blue-dark:#0d5aa5;
  --net-blue-ink:#173c72;
  --net-blue-muted:#568ed2;
  --net-blue-line:#bed5f2;
  --net-blue-soft:#e3f0ff;
  --net-green:#2fa45a;
  --net-green-dark:#2f8b4b;
  --net-green-soft:#e7f6de;
  --net-green-line:#b8d9c2;
  --net-orange:#f39a22;
  --net-orange-dark:#e98918;
  --net-orange-line:#f2cda4;
  --net-neutral:#5f6570;
  --net-cta-start:#052957;
  --net-cta-end:#061a39;
  --net-index-start:#0c59b8;
  --net-index-end:#083576;
  --net-arrow-muted:#8eacd1;
  --product-hero-surface-start:#ffffff;
  --product-hero-surface-end:#fcfdff;
  --product-hero-ink:#07184b;
  --product-hero-text:#35486d;
  --product-hero-line:#dbe7f8;
  --product-hero-badge-bg:#e8f1ff;
  --product-hero-badge-text:#206bee;
  --net-radius:18px;
  --net-shell:1240px;
  --net-gutter:36px;
  --net-focus-color:rgba(32,107,238,.28);
  --net-focus:0 0 0 3px var(--net-focus-color);
  --net-index-shadow:rgba(5,55,119,.18);
  --net-product-shadow-dark:rgba(0,0,0,.24);
  --net-product-shadow-light:rgba(18,54,112,.12);
  --net-media-shadow:rgba(22,64,116,.06);
  --net-inverse-line:rgba(255,255,255,.13);
  --net-inverse-line-strong:rgba(255,255,255,.16);
  --product-hero-halo-strong:rgba(32,107,238,.075);
  --product-hero-halo-soft:rgba(32,107,238,.028);
  --product-hero-sheen-a:rgba(255,255,255,.04);
  --product-hero-sheen-b:rgba(32,107,238,.018);
  --product-hero-sheen-c:rgba(255,255,255,.02);
}
body{margin:0;font-family:var(--net-font-fa);background:var(--net-white);color:var(--net-text);font-synthesis:none}
.net-page,.net-page *{box-sizing:border-box}.net-page{overflow:clip;background:var(--net-white)}.net-shell{width:min(calc(100% - 2*var(--net-gutter)),var(--net-shell));margin-inline:auto}
.net-section{position:relative;padding:80px 0}.net-section__surface{border-radius:var(--net-radius);box-shadow:0 10px 32px rgba(8,35,66,.08);background:linear-gradient(180deg,var(--net-surface-soft) 0%,var(--net-surface-alt) 100%);padding:26px 30px;position:relative}
.net-section__head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}.net-section__title-wrap{margin-inline-start:auto;min-width:0}.net-section__title{margin:0;overflow-wrap:anywhere;color:var(--net-ink);font-size:28px;line-height:1.55;font-weight:800;letter-spacing:-.2px}.net-section__lead{margin:3px 0 0;color:var(--net-muted);font-size:14px;line-height:1.85}.net-section-index{width:52px;height:52px;border-radius:11px;background:linear-gradient(160deg,var(--net-index-start),var(--net-index-end));color:var(--net-white);display:grid;place-items:center;font:800 23px/1 var(--net-font-fa);direction:ltr;box-shadow:0 7px 18px var(--net-index-shadow);flex:0 0 auto}
/* hero — standardized full-bleed hero (matches AV64/KP11 exactly) */
.net-hero{position:relative;isolation:isolate;width:100%;min-height:500px;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto 1fr;align-content:stretch;row-gap:0;margin:0;border:0;overflow:hidden;background:linear-gradient(180deg,var(--product-hero-surface-start) 0%,var(--product-hero-surface-end) 100%);color:var(--product-hero-ink);padding-block:12px 28px;padding-inline:max(var(--net-gutter),calc((100% - var(--net-shell)) / 2))}
.net-hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(30deg,transparent 0 46px,rgba(32,107,238,.06) 46px 47px),repeating-linear-gradient(150deg,transparent 0 46px,rgba(32,107,238,.06) 46px 47px),repeating-radial-gradient(ellipse 46% 34% at 36% 54%,transparent 0 70px,rgba(32,107,238,.07) 70px 71px);-webkit-mask-image:radial-gradient(ellipse 75% 95% at 38% 55%,#000 0,rgba(0,0,0,.6) 55%,transparent 100%);mask-image:radial-gradient(ellipse 75% 95% at 38% 55%,#000 0,rgba(0,0,0,.6) 55%,transparent 100%)}
.net-hero .net-breadcrumb{grid-column:1/-1;margin-bottom:6px}
.net-hero__copy{position:relative;z-index:2;grid-column:1/-1;max-width:600px;align-self:center}
.net-hero__media{position:absolute;left:0;top:0;bottom:0;width:56%;z-index:0;pointer-events:none}
.net-hero__media img{position:absolute;left:24vw;top:13%;width:auto;height:73.6%;max-width:none;filter:drop-shadow(0 20px 24px var(--net-product-shadow-dark));}
.net-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;color:#66738b;font-size:12px}.net-breadcrumb a{text-decoration:none;color:#66738b}.net-breadcrumb a:hover{color:var(--net-brand)}.net-breadcrumb span{color:#8090aa}
.net-hero__badge{display:inline-block;padding:5px 10px;border-radius:7px;background:var(--product-hero-badge-bg);color:var(--product-hero-badge-text);font-size:13px;font-weight:800;margin-bottom:13px}
.net-hero h1{font:800 clamp(52px,4.7vw,68px)/1.02 var(--font-fa);margin:13px 0 5px;letter-spacing:-.045em;direction:ltr;text-align:right;color:var(--product-hero-ink)}
.net-hero__intro{margin:0;max-width:500px;font-size:17px;line-height:1.85;font-weight:520;color:var(--product-hero-text)}
.net-hero__actions{display:flex;gap:14px;margin-top:64px}
.net-button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;padding:0 26px;font-weight:800;font-size:14px;text-decoration:none;transition:.18s ease}
.net-button--primary{background:#1174f6;color:#fff;border:1.5px solid #2382ff;box-shadow:0 8px 18px rgba(13,104,235,.22)}
.net-button--primary:hover{background:#0d5aa5}
/* section 1 */
.net-topology{display:grid;grid-template-columns:1.1fr .85fr .8fr 1.35fr;gap:18px;align-items:center;direction:ltr;position:relative;min-height:260px}.net-node{text-align:center;position:relative;z-index:2;direction:rtl}.net-node__media{display:grid;place-items:center;min-height:150px}.net-node--panel img{width:145px;border-radius:8px}.net-node--module img{width:78px}.net-node__title{margin-top:5px;font-size:15px;font-weight:800;color:var(--net-ink);direction:ltr}.net-node__sub{font-size:13px;color:var(--net-muted);line-height:1.6}.net-transport__icon{width:102px;height:102px;border-radius:50%;border:1px solid var(--net-blue-line);display:grid;place-items:center;margin:0 auto 8px;background:var(--net-white);color:var(--net-blue-dark)}.net-transport__icon svg{width:70px;height:70px;fill:none;stroke:currentColor;stroke-width:1.5}.net-destinations{display:grid;gap:12px;direction:rtl}.net-destination{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:center;box-shadow:0 6px 18px rgba(16,38,74,.07);background:var(--net-white);border-radius:12px;padding:14px 16px;text-align:right}.net-destination svg{width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:1.5}.net-destination--web svg{color:var(--net-blue)}.net-destination--monitor svg{color:var(--net-neutral)}.net-destination__title{font-size:15px;font-weight:800;color:var(--net-ink);margin-bottom:4px}.net-destination--monitor .net-destination__title{color:var(--net-orange-dark)}.net-destination__text{font-size:12.5px;line-height:1.75;color:var(--product-hero-text)}.net-security-badge{display:inline-flex;margin-top:6px;padding:2px 8px;border-radius:99px;background:var(--net-green-soft);color:var(--net-green-dark);font-size:10px;direction:ltr}.net-connectors{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.net-connectors path{fill:none;stroke-width:1.8}.net-connector--green{stroke:var(--net-green);color:var(--net-green)}.net-connector--blue{stroke:var(--net-brand);color:var(--net-brand)}.net-connector--orange{stroke:var(--net-orange);color:var(--net-orange)}.net-parallel-note{margin-top:14px;width:min(440px,100%);border-radius:10px;box-shadow:0 6px 18px rgba(16,38,74,.06);padding:10px 16px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:var(--net-surface-blue);direction:rtl}.net-parallel-icons{display:flex;align-items:center;gap:11px;color:var(--net-blue-dark);direction:ltr}.net-parallel-icons svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.55}.net-parallel-note strong{font-size:13px;color:var(--net-blue-ink)}.net-parallel-note p{font-size:12px;line-height:1.75;margin:2px 0 0;color:var(--net-muted)}
/* section 2 */
.net-webserver{display:grid;grid-template-columns:1.45fr .9fr;gap:42px;align-items:center}.net-screenshot-wrap{margin:0;position:relative}.net-screenshot-frame{background:var(--net-white);padding:8px;border-radius:3px;box-shadow:0 10px 28px rgba(8,35,66,.1);overflow:hidden}.net-screenshot-frame img{width:100%;height:auto}.net-inline-note{width:80%;margin:-1px auto 0;background:var(--net-blue-soft);border-radius:0 0 8px 8px;padding:9px 18px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--net-blue-ink);font-size:12px;line-height:1.6}.net-inline-note svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;flex:0 0 auto}.net-feature-list{display:grid;gap:24px}.net-feature{display:grid;grid-template-columns:62px 1fr;gap:16px;align-items:center}.net-feature__icon{width:58px;height:58px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center}.net-feature__icon svg{width:33px;height:33px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.net-feature--green{color:var(--net-green)}.net-feature--orange{color:var(--net-orange)}.net-feature--blue{color:var(--net-blue)}.net-feature__title{font-size:16px;font-weight:800;margin:0 0 4px;color:currentColor}.net-feature__text{margin:0;color:var(--product-hero-text);font-size:13px;line-height:1.85}.net-feature[data-status="pending"] .net-feature__title::after,.net-fact[data-status="pending"] .net-fact__label::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--net-green-line);margin-inline-start:7px;vertical-align:middle}
/* section 3 */
.net-fit-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--net-line);border-bottom:1px solid var(--net-line)}.net-fit{padding:16px 20px;min-height:126px;border-inline-start:1px solid var(--net-line);position:relative}.net-fit:first-child{border-inline-start:0}.net-fit__index{font-size:13px;font-weight:800;direction:ltr;color:var(--net-blue-muted);margin-bottom:4px}.net-fit__title{font-size:15px;font-weight:850;margin:0 0 5px;color:var(--net-ink)}.net-fit__text{font-size:12.5px;line-height:1.8;color:var(--product-hero-text);margin:0}.net-fit--green .net-fit__title{color:var(--net-green-dark)}.net-fit--orange .net-fit__title{color:var(--net-orange-dark)}.net-fit--blue .net-fit__title{color:var(--net-blue-dark)}.net-fit--note{background:linear-gradient(90deg,var(--net-surface-muted),var(--net-white))}.net-fit--note .net-fit__title{color:var(--net-neutral)}.net-facts{margin-top:18px;display:grid;grid-template-columns:repeat(7,1fr);border-radius:11px;box-shadow:0 6px 20px rgba(16,38,74,.07);background:var(--net-white);overflow:hidden}.net-fact{min-height:76px;display:flex;gap:9px;align-items:center;justify-content:center;padding:10px 9px;border-inline-start:1px solid var(--net-line);text-align:center}.net-fact:first-child{border-inline-start:0}.net-fact svg{width:24px;height:24px;flex:0 0 auto;fill:none;stroke:var(--net-blue-ink);stroke-width:1.55}.net-fact__label{display:block;font-size:12.5px;font-weight:800;color:var(--net-ink);direction:ltr}.net-fact__text{display:block;font-size:10.5px;line-height:1.55;color:var(--net-muted);margin-top:2px}.net-supporting-facts{margin:12px auto 0;max-width:730px;display:grid;grid-template-columns:1fr 1fr;border-radius:10px;box-shadow:0 6px 20px rgba(16,38,74,.07);background:var(--net-white);overflow:hidden}.net-support-fact{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center;padding:12px 18px}.net-support-fact+ .net-support-fact{border-inline-start:1px solid var(--net-line-soft)}.net-support-fact svg{width:32px;height:32px;fill:none;stroke:var(--product-hero-text);stroke-width:1.45}.net-support-fact strong{display:block;color:var(--net-blue-ink);font-size:12.5px}.net-support-fact span{font-size:11px;color:var(--net-muted);line-height:1.6}
/* resources */
.net-resources{padding:10px 0 32px}.net-resources__grid{display:grid;grid-template-columns:4fr 5fr;gap:14px}
.net-page .gs-final-cta{margin-top:clamp(40px,5.2vw,88px)}.net-resource-block{border-radius:14px;box-shadow:0 6px 20px rgba(16,38,74,.07);background:var(--net-surface-soft);padding:15px 18px;min-height:154px}.net-resource-block h2{margin:0 0 12px;color:var(--net-ink);font-size:14px;font-weight:850}.net-docs{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.net-doc{min-height:98px;border-radius:8px;box-shadow:0 4px 14px rgba(24,66,125,.08);background:var(--net-white);padding:10px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--product-hero-text)}.net-doc svg{width:24px;height:24px;fill:none;stroke:var(--net-blue-dark);stroke-width:1.6;margin-bottom:6px}.net-doc span{font-size:10px;line-height:1.55}.net-doc small{font-size:9px;color:var(--net-arrow-muted);margin-top:3px}.net-related{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.net-related-card{min-width:0;text-align:center}.net-related-card__media{height:78px;border-radius:7px;background:var(--net-white);box-shadow:0 4px 14px rgba(24,66,125,.08);display:grid;place-items:center;overflow:hidden}.net-related-card img{max-height:68px;width:auto;max-width:88%;object-fit:contain}.net-related-card strong{display:block;margin-top:6px;font-size:10.5px;direction:ltr;color:var(--net-ink)}.net-related-card span{font-size:9.5px;color:var(--net-muted-soft)}.net-cta{border-radius:14px;background:linear-gradient(145deg,var(--net-cta-start),var(--net-cta-end));color:var(--net-white);padding:22px 24px;min-height:154px;display:flex;flex-direction:column;justify-content:center}.net-cta h2{font-size:18px;line-height:1.65;margin:0 0 6px}.net-cta p{font-size:12px;line-height:1.8;color:var(--net-line-soft);margin:0 0 13px}.net-cta__button{min-height:46px;border-radius:7px;background:var(--net-white);color:var(--net-blue-ink);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:850}.net-cta__button:focus-visible{outline:none;box-shadow:var(--net-focus)}
/* rtl/ltr helpers */
.net-ltr{direction:ltr;unicode-bidi:isolate}.net-pending{opacity:.8}
@media(max-width:1180px){:root{--net-shell:1120px;--net-gutter:30px}.net-hero h1{font-size:54px}.net-hero__intro{font-size:16px;max-width:460px}.net-hero__actions{margin-top:44px}.net-topology{grid-template-columns:1.05fr .75fr .78fr 1.42fr}.net-facts{grid-template-columns:repeat(4,1fr)}.net-fact:nth-child(5){border-inline-start:0}.net-resources__grid{grid-template-columns:1fr 1.2fr}.net-cta{grid-column:1/-1;min-height:130px}.net-docs{grid-template-columns:repeat(5,1fr)}}
@media(max-width:1023px){:root{--net-gutter:26px}.net-hero{min-height:460px}.net-hero__media{width:52%}.net-hero__media img{height:78.4%;top:11%;left:20vw}.net-hero h1{font-size:46px}.net-hero__intro{font-size:15px}.net-topology{grid-template-columns:1fr 1fr 1fr;grid-template-areas:"panel module network" "dest dest dest";gap:18px}.net-node--panel{grid-area:panel}.net-node--module{grid-area:module}.net-transport{grid-area:network}.net-destinations{grid-area:dest;grid-template-columns:1fr 1fr}.net-connectors{display:none}.net-parallel-note{margin-inline:auto}.net-webserver{grid-template-columns:1fr}.net-feature-list{grid-template-columns:repeat(3,1fr);gap:14px}.net-feature{display:block;text-align:center;padding:12px}.net-feature__icon{margin:0 auto 10px}.net-fit-grid{grid-template-columns:1fr 1fr}.net-fit:nth-child(3){border-inline-start:0;border-top:1px solid var(--net-line)}.net-fit:nth-child(4){border-top:1px solid var(--net-line)}.net-facts{grid-template-columns:repeat(3,1fr)}.net-fact:nth-child(4),.net-fact:nth-child(7){border-inline-start:0}.net-resources__grid{grid-template-columns:1fr}.net-cta{grid-column:auto}.net-resource-block,.net-cta{min-height:unset}}
@media(max-width:767px){:root{--net-gutter:22px}.net-section{padding:40px 0}.net-section__surface{padding:20px 16px;border-radius:14px}.net-section__head{gap:12px;margin-bottom:18px}.net-section-index{width:44px;height:44px;font-size:20px}.net-section__title{font-size:23px;line-height:1.55}.net-section__lead{font-size:13px}.net-hero{display:flex;flex-direction:column;min-height:0;padding-top:24px;margin-bottom:72px}.net-hero .net-breadcrumb{order:0;margin-bottom:14px}.net-hero__copy{grid-column:auto;width:100%;max-width:760px;order:1}.net-hero__badge{margin-bottom:8px}.net-hero h1{font-size:37px;margin:11px 0 5px}.net-hero__intro{font-size:14px;line-height:1.7}.net-hero__media{position:relative;left:auto;top:auto;bottom:auto;width:100%;height:310px;order:2;margin-top:8px}.net-hero__media img{position:relative;left:auto;top:auto;height:300px;width:auto;max-width:100%;object-fit:contain;margin-inline:auto}.net-hero__actions{order:3;margin-top:22px;width:100%;display:grid;grid-template-columns:1fr}.net-button{width:100%}.net-topology{display:flex;flex-direction:column;gap:8px;min-height:0}.net-node__media{min-height:auto}.net-node--panel img{width:118px}.net-node--module img{width:66px}.net-transport__icon{width:82px;height:82px}.net-transport__icon svg{width:56px;height:56px}.net-topology > *:not(:last-child)::after{content:"↓";display:block;font-size:24px;line-height:1;color:var(--net-arrow-muted);margin:6px auto}.net-destinations{width:100%;display:grid;grid-template-columns:1fr;gap:10px}.net-destinations::after{display:none!important}.net-destination{grid-template-columns:48px 1fr;padding:12px 13px}.net-destination svg{width:40px;height:40px}.net-parallel-note{grid-template-columns:1fr;text-align:center}.net-parallel-icons{justify-content:center}.net-webserver{gap:20px}.net-screenshot-frame{height:240px;padding:5px;overflow:hidden}.net-screenshot-frame img{width:165%;max-width:none;transform:translateX(18%);transform-origin:center top}.net-inline-note{width:94%;font-size:11px;padding:8px 10px}.net-feature-list{grid-template-columns:1fr;gap:18px}.net-feature{display:grid;grid-template-columns:52px 1fr;text-align:right;padding:0}.net-feature__icon{width:50px;height:50px;margin:0}.net-feature__icon svg{width:29px;height:29px}.net-feature__title{font-size:15px}.net-feature__text{font-size:12.5px}.net-fit-grid{display:block;border-bottom:0}.net-fit{border-inline-start:0!important;border-top:1px solid var(--net-line)!important;min-height:0;padding:14px 6px}.net-fit:first-child{border-top:0!important}.net-fit--note{margin-top:5px;padding:14px;background:var(--net-surface-muted);border-radius:8px}.net-facts{grid-template-columns:1fr 1fr;border-radius:10px}.net-fact{min-height:72px;border-top:1px solid var(--net-line-soft)}.net-fact:nth-child(-n+2){border-top:0}.net-fact:nth-child(odd){border-inline-start:0}.net-fact:nth-child(even){border-inline-start:1px solid var(--net-line-soft)}.net-fact__label{font-size:11.5px}.net-fact__text{font-size:10px}.net-supporting-facts{grid-template-columns:1fr;max-width:none}.net-support-fact+ .net-support-fact{border-inline-start:0;border-top:1px solid var(--net-line-soft)}.net-resources{padding-top:4px}.net-resource-block{padding:14px}.net-docs{grid-template-columns:1fr}.net-doc{min-height:58px;display:grid;grid-template-columns:34px 1fr auto;text-align:right;gap:8px;padding:8px 10px}.net-doc svg{margin:0}.net-doc small{margin:0}.net-related{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:11px;padding-bottom:5px;direction:rtl}.net-related-card{flex:0 0 74vw;scroll-snap-align:start}.net-related-card__media{height:116px}.net-related-card img{max-height:100px}.net-related-card strong{font-size:12px}.net-cta{padding:20px}.net-cta h2{font-size:18px}.net-cta p{font-size:12.5px}}
@media(max-width:380px){.net-hero h1{font-size:33px}.net-facts{grid-template-columns:1fr}.net-fact,.net-fact:nth-child(even),.net-fact:nth-child(odd){border-inline-start:0;border-top:1px solid var(--net-line-soft)}.net-fact:first-child{border-top:0}.net-screenshot-frame{height:220px}.net-related-card{flex-basis:80vw}}
@media(prefers-reduced-motion:reduce){.net-page *{scroll-behavior:auto!important;transition:none!important}}
/* v0.1 fidelity delta */
.net-section__title-wrap{margin-inline-start:0;flex:1}.net-section-index{order:-1}
.net-webserver{direction:ltr}.net-feature-list{direction:rtl}
.net-resources__grid{direction:ltr}.net-resource-block,.net-cta{direction:rtl}
@media(max-width:767px){.net-webserver{direction:rtl}.net-resources__grid{direction:rtl}.net-section-index{order:-1}}

/* Dynamic topology paths: static coordinates are replaced at runtime. */
.net-connectors path{vector-effect:non-scaling-stroke}

/* Step 7 responsive clarity: keep semantic continuity when desktop SVG connectors are removed. */
@media (min-width:768px) and (max-width:1023px){
  .net-node--panel::after,
  .net-node--module::after{
    content:"→";
    position:absolute;
    top:46%;
    inset-inline-end:-22px;
    transform:translateY(-50%);
    color:var(--net-arrow-muted);
    font:700 22px/1 sans-serif;
    direction:ltr;
  }
  .net-transport::after{
    content:"↓";
    display:block;
    color:var(--net-arrow-muted);
    font:700 22px/1 sans-serif;
    margin:8px auto -4px;
  }
}

/* Step 7 hidden-overflow fix: allow the related-products rail to size to its grid track,
   then overflow internally instead of forcing a clipped min-content width. */
.net-resources__grid,.net-resource-block,.net-related{min-width:0}
@media(max-width:767px){
  .net-related{width:100%;max-width:100%}
}

/* Step 7 tablet topology: use the same live SVG foundation in hybrid layout. */
@media (min-width:768px) and (max-width:1023px){
  .net-connectors{display:block}
  .net-node--panel::after,.net-node--module::after,.net-transport::after{content:none!important;display:none!important}
}

.net-related-card:focus-visible,.net-cta__button:focus-visible,.net-related:focus-visible{outline:none;box-shadow:var(--net-focus);border-radius:8px}

/* ===== standardization (mirrors CM10 / CM22) ===== */
.net-section__head{justify-content:center;text-align:center}
.net-section__title-wrap{flex:1}
.net-section__lead{margin-inline:auto}
.net-scope{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center}
.net-plain{list-style:none;margin:0;padding:0}
.net-plain li{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid #d5e0ef}
.net-plain li:first-child{padding-top:4px}
.net-plain li:last-child{border-bottom:0;padding-bottom:4px}
.net-plain svg{width:36px;height:36px;flex:0 0 auto;margin-top:2px;fill:none;stroke:#206bee;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.net-plain h3{margin:0 0 4px;font-size:18px;font-weight:800;color:#0b285a;line-height:1.5}
.net-plain p{margin:0;font-size:13.5px;line-height:1.8;color:#52617b}
.net-scope__art img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 14px 34px rgba(11,48,105,.18)}
#project-fit .net-section__surface{background:linear-gradient(145deg,#e8f5fb,#d3e9f5)}
#technical-specs .net-section__surface{background:var(--spec-bg)}
.net-section:first-of-type .net-section__surface,.net-topology{--flow-bg:1}
.net-section__surface:has(.net-topology){background:radial-gradient(90% 70% at 15% 0,#cfe2ff 0,transparent 62%),radial-gradient(70% 60% at 92% 100%,#d8e8ff 0,transparent 62%),#e9f2ff}
.spec-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.spec-list li{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:14px;background:#e3e9f0;transition:background-color .2s ease,box-shadow .2s ease}
.spec-list li:hover{background:#eaf5ff;box-shadow:0 10px 26px rgba(8,58,119,.13)}
.spec-icon{width:54px;height:54px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#fff;color:#206bee;transition:transform .25s ease}
.spec-list li:hover .spec-icon{transform:scale(1.1)}
.spec-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.spec-list h3{margin:0 0 4px;font-size:18px;font-weight:800;color:#0b285a;line-height:1.5}
.spec-list p{margin:0;font-size:13.5px;line-height:1.8;color:#52617b}
.rel-heading{margin:0 0 24px;font-size:24px;font-weight:850;color:#062d63;text-align:center}
.rel-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:16px}
.rel-tile{display:block;text-decoration:none;color:inherit;min-width:0}
.rel-tile__in{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;padding:20px 12px 18px;text-align:center;border-radius:14px;background:#e3e9f0;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}
.rel-tile:hover .rel-tile__in{background:#eaf5ff;box-shadow:0 10px 26px rgba(8,58,119,.13);transform:translateY(-2px)}
.rel-tile__img{width:100%;height:130px;display:flex;align-items:center;justify-content:center}
.rel-tile__img img{display:block;max-width:86%;max-height:130px;width:auto;height:auto;object-fit:contain;transition:transform .25s ease}
.rel-tile:hover .rel-tile__img img{transform:scale(1.1)}
.rel-tile strong{margin-top:6px;font-size:16px;font-weight:850;color:#123f70}
.rel-tile small{font-size:14px;font-weight:650;color:#5b7088}
.net-node--panel img{width:150px;height:auto}
.net-node--module img{width:auto;height:150px}
.net-node__media img{filter:drop-shadow(0 8px 12px rgba(20,60,120,.22))}
/* entrance: fade in left to right (opacity only, connector geometry stays exact) */
@keyframes netIn{from{opacity:0}}
.net-enter:not(.net-entered) :is(.net-node,.net-destination){opacity:0}
.net-entered :is(.net-node,.net-destination){animation:netIn .6s ease backwards;animation-delay:var(--d,0s)}
.net-entered .net-connectors{animation:netIn .6s ease .9s backwards}
.net-node,.net-destination{transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s}
.net-node--panel{cursor:pointer}
.net-node.is-active,.net-destination.is-active{transform:scale(1.05);filter:drop-shadow(0 0 14px rgba(32,107,238,.55))}
@media(max-width:1180px){.rel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.net-scope{grid-template-columns:1fr;gap:22px}.net-scope__art{order:-1}}
@media(max-width:767px){.spec-list{grid-template-columns:1fr;gap:10px}.spec-list li{padding:12px 14px;gap:12px}.spec-icon{width:42px;height:42px}.spec-icon svg{width:24px;height:24px}.spec-list h3,.net-plain h3{font-size:15px}.spec-list p,.net-plain p{font-size:12.5px}.net-plain svg{width:28px;height:28px}}
@media(max-width:620px){.rel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rel-tile__img{height:110px}}
@media(prefers-reduced-motion:reduce){.net-entered *{animation:none!important}}

/* Web app section (content from the Alerto page) */
.net-app__media{margin:0 0 22px}
.net-app__media img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 14px 34px rgba(11,48,105,.18)}
.net-app__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
.net-app__cta{display:flex;justify-content:center;margin-top:26px}
@media(max-width:767px){.net-app__list{grid-template-columns:1fr;gap:14px}}

/* Web app: content sits on the empty right side of the picture */
.net-app__stage{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(11,48,105,.18)}
.net-app__stage>img{display:block;width:100%;height:auto}
.net-app__panel{position:absolute;top:0;bottom:0;right:0;width:54%;padding:22px 34px;display:flex;flex-direction:column;justify-content:center;gap:14px;background:linear-gradient(270deg,rgba(255,255,255,.88) 0,rgba(255,255,255,.7) 70%,rgba(255,255,255,0) 100%)}
.net-app__panel .net-app__list{grid-template-columns:1fr;gap:12px}
.net-app__panel .net-app__cta{justify-content:flex-start;margin-top:6px}
@media(max-width:900px){
  .net-app__stage{border-radius:0;overflow:visible;box-shadow:none}
  .net-app__stage>img{border-radius:18px;box-shadow:0 14px 34px rgba(11,48,105,.18)}
  .net-app__panel{position:static;width:auto;padding:18px 0 0;background:none}
  .net-app__panel .net-app__cta{justify-content:center}
}

/* ===== NET500 network path (event flow) ===== */
.net-section__surface:has(.nf){background:radial-gradient(90% 70% at 15% 0,#cfe2ff 0,transparent 62%),radial-gradient(70% 60% at 92% 100%,#d8e8ff 0,transparent 62%),#e9f2ff}
.nf{position:relative;display:grid;grid-template-columns:.62fr 1fr .48fr .8fr .6fr .8fr 1.5fr;gap:16px;align-items:center;direction:ltr;min-height:300px;padding:4px 8px 44px}
.nf__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.nf__svg path{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 7;animation:nfFlow 1.4s linear infinite}
.nf__svg .p-event-panel{stroke:#f08a24}.nf__svg .p-panel-module{stroke:#2ca56b}.nf__svg .p-module-net{stroke:#2773db}.nf__svg .p-net-web{stroke:#2ca56b}.nf__svg .p-net-monitor{stroke:#ef9a2a}
@keyframes nfFlow{to{stroke-dashoffset:-18}}
.nf-node{position:relative;z-index:1;direction:rtl;text-align:center;display:grid;justify-items:center;align-content:center;min-width:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s}
.nf-node--panel,.nf-node--module{background:#fff;border-radius:22px;box-shadow:0 14px 34px rgba(30,80,160,.12);padding:18px 12px 16px}
.nf-node__media{height:130px;width:100%;display:grid;place-items:center}
.nf-node__media img{max-width:92%;max-height:126px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(20,60,120,.22))}
.nf-node__media--module{height:170px}.nf-node__media--module img{max-height:166px}
.nf-node strong{color:#0e377b;font-size:14px;margin-top:6px}
.nf-node>span:not(.nf-event__icon){color:#657892;font-size:12px;margin-top:3px}
.nf-node--panel.is-active,.nf-node--module.is-active{transform:scale(1.06);box-shadow:0 0 0 3px #206bee,0 18px 40px rgba(32,107,238,.3)}
.nf-bus{position:relative;z-index:2;text-align:center;direction:rtl;font-size:12px;color:#62768e}
.nf-bus bdi{display:inline-block;padding:5px 12px;border-radius:999px;background:linear-gradient(180deg,#34c785,#1fa568);color:#fff;font-weight:850;white-space:nowrap;box-shadow:0 6px 14px rgba(31,165,104,.3)}
.nf-bus span{display:block;margin-top:9px;white-space:nowrap}
.nf-node--event{appearance:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.nf-event__icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ffb45c,#f08a24);box-shadow:0 12px 26px rgba(240,138,36,.35);transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s}
.nf-event__icon svg{width:36px;height:36px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nf-node--event strong{margin-top:12px}
.nf-node--event:hover .nf-event__icon{transform:scale(1.08)}
.nf-node--event:focus-visible{outline:2px solid #f08a24;outline-offset:6px;border-radius:14px}
.nf-node--event.is-active .nf-event__icon{transform:scale(1.18);box-shadow:0 0 0 8px rgba(240,138,36,.22),0 14px 32px rgba(240,138,36,.5)}
.nf-globe{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff 52%,#e6f1ff 100%);box-shadow:0 0 0 9px rgba(32,107,238,.07),0 0 40px rgba(32,107,238,.25);transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s}
.nf-globe svg{width:78px;height:78px;fill:none;stroke:#1769c7;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.nf-node--net{position:relative}
.nf-node--net.is-active .nf-globe{transform:scale(1.08);box-shadow:0 0 0 10px rgba(32,107,238,.16),0 0 60px rgba(32,107,238,.55)}
.nf-label{position:absolute;top:100%;left:-20px;right:-20px;margin-top:12px;display:grid;justify-items:center}
.nf-label strong{color:#0e377b;font-size:16px}.nf-label span{color:#657892;font-size:12px;margin-top:3px}
.nf-dest{display:grid;gap:16px;direction:rtl;position:relative;z-index:1}
.nf-tile{display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-end;gap:16px;min-height:96px;padding:14px 18px;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(30,80,160,.12);transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s}
.nf-tile>div{text-align:right;min-width:0}
.nf-tile h3{margin:0 0 4px;font-size:16px;font-weight:800;color:#0b285a}
.nf-tile p{margin:0;font-size:12.5px;line-height:1.7;color:#52617b}
.nf-tile__icon{width:54px;height:54px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center}
.nf-tile__icon svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nf-tile--web .nf-tile__icon{background:linear-gradient(145deg,#3fd08e,#1fa568)}
.nf-tile--monitor .nf-tile__icon{background:linear-gradient(145deg,#ffb45c,#ef8a1f)}
.nf-badge{display:inline-block;margin-top:6px;padding:2px 10px;border-radius:999px;background:#e3f6ea;color:#1c7c48;font-size:11.5px;font-weight:800}
.nf-tile--web.is-active{transform:scale(1.04);box-shadow:0 0 0 3px #2ca56b,0 14px 32px rgba(44,165,107,.35)}
.nf-tile--monitor.is-active{transform:scale(1.04);box-shadow:0 0 0 3px #ef9a2a,0 14px 32px rgba(239,154,42,.35)}
/* entrance (keyframes with backwards fill: everything starts hidden and appears left to right) */
.nf-enter:not(.nf-entered) :is(.nf-node,.nf-bus,.nf-tile){opacity:0}
.nf-enter:not(.nf-entered) .nf__svg path{opacity:0}
.nf-entered :is(.nf-node,.nf-bus,.nf-tile){animation:nfIn .6s cubic-bezier(.22,1,.36,1) backwards;animation-delay:var(--d,0s)}
.nf-entered .nf__svg path{animation:nfDraw .55s ease backwards,nfFlow 1.4s linear infinite;animation-delay:var(--d,0s),0s}
@keyframes nfIn{from{opacity:0;transform:translateX(-34px)}}
@keyframes nfDraw{from{clip-path:inset(-12px calc(100% + 12px) -12px -12px)}}
@media(prefers-reduced-motion:reduce){.nf-entered :is(.nf-node,.nf-bus,.nf-tile),.nf-entered .nf__svg path{animation:none}.nf__svg path{animation:none}}
@media(max-width:900px){
  .nf{display:flex;flex-direction:column;align-items:center;gap:14px;min-height:0;padding:4px 0 8px}
  .nf__svg,.nf-spacer{display:none}
  .nf-node,.nf-dest,.nf-node--panel,.nf-node--module{width:100%;max-width:420px}
  .nf-label{position:static;margin-top:10px}
}

.nf__svg .p-net-app{stroke:#7a5ce0}
.nf-tile--app .nf-tile__icon{background:linear-gradient(145deg,#9b83f0,#6a4ad6)}
.nf-tile--app.is-active{transform:scale(1.04);box-shadow:0 0 0 3px #7a5ce0,0 14px 32px rgba(122,92,224,.35)}
.nf-dest{gap:14px}
.nf{min-height:340px}
/* Event icon on the row centre line (label hangs below) so its outgoing link is straight; Ethernet nudged left */
.nf-node--event{position:relative}
.nf-node--event strong{position:absolute;top:100%;left:-20px;right:-20px;margin-top:12px;white-space:nowrap}
.nf-node--net{left:-36px}
@media(max-width:900px){.nf-node--event strong{position:static;margin-top:12px}.nf-node--net{left:0}}
/* Mobile hero: product photo centred */
@media(max-width:900px){.net-hero__media{display:flex;justify-content:center;align-items:flex-start}.net-hero__media img{display:block;position:relative;left:auto;top:auto;margin:0}}

/* Web server section: new dashboard picture, larger bold features, own background */
#webserver .net-section__surface{background:linear-gradient(145deg,#edf1fb,#dde5f6)}
#webserver .net-screenshot-frame{padding:0;border-radius:16px;box-shadow:0 14px 34px rgba(11,48,105,.18)}
#webserver .net-screenshot-frame img{display:block;width:100%;height:auto}
/* feature sizes now follow the default (same as the web app section) */
@media(max-width:767px){
  #webserver .net-screenshot-frame{height:auto;padding:0}
  #webserver .net-screenshot-frame img{width:100%;transform:none}
}

/* BUS pill sits exactly on the link line; its caption hangs below */
.nf-bus span{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:8px;white-space:nowrap}
@media(max-width:900px){.nf-bus span{position:static;transform:none;display:block}}

/* Scope section without a photo: three cards in one row */
.net-scope{display:block}
.net-scope__art{display:none}
.net-plain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:8px 0 0;padding:0}
.net-plain li,.net-plain li:first-child,.net-plain li:last-child{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:28px 22px 26px;border:0;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(30,80,160,.12);transition:transform .25s ease,box-shadow .25s ease}
.net-plain li:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(30,80,160,.18)}
.net-plain svg{width:68px;height:68px;padding:16px;margin:0;border-radius:50%;background:linear-gradient(145deg,#4a97f5,#2773db);stroke:#fff;stroke-width:1.8;transition:transform .25s ease}
.net-plain li:hover svg{transform:scale(1.08)}
.net-plain h3{margin:0 0 6px;font-size:18px;font-weight:800;color:#0b285a;line-height:1.5}
.net-plain p{margin:0;font-size:13.5px;line-height:1.85;color:#52617b}
@media(max-width:900px){.net-plain{grid-template-columns:1fr;gap:12px}.net-plain li,.net-plain li:first-child,.net-plain li:last-child{flex-direction:row;text-align:right;padding:16px 16px;gap:14px}.net-plain svg{flex:0 0 auto;width:54px;height:54px;padding:13px}.net-plain h3{font-size:16px}.net-plain p{font-size:12.5px}}
