/* Seiretsu — light parallax theme */
:root{
--bg-app:#F7F8FA;--bg-panel:#FFFFFF;--bg-panel-alt:#F0F3F8;--bg-tint-cyan:#EAF2FA;--bg-tint-violet:#FDEEEC;
--border:#E4E8F0;--border-strong:#D5DBE7;--ink:#0F1424;--ink-soft:#4A5368;--muted:#6B748A;
--active-pill:#0F1424;--active-pill-text:#FFFFFF;
--fiber-cyan:#1F6FB5;--fiber-cyan-text:#14578F;--fiber-cyan-dim:rgba(31,111,181,.12);
--wireless-violet:#EE3B2F;--wireless-violet-text:#C3281D;--wireless-violet-dim:rgba(238,59,47,.12);
--grad-brand:linear-gradient(120deg,#1F6FB5 0%,#EE3B2F 100%);
--success:#16A34A;--warning:#D68A1F;--danger:#DC2626;
--shadow-sm:0 1px 2px rgba(15,20,36,.05);--shadow-md:0 8px 24px rgba(15,20,36,.08);--shadow-lg:0 24px 60px rgba(15,20,36,.14);
--shadow-glow-cyan:0 12px 40px rgba(31,111,181,.28);--shadow-glow-violet:0 12px 40px rgba(238,59,47,.28);
--r-card:14px;--r-panel:24px;--r-pill:999px;
--dur-fast:180ms;--dur-base:350ms;--dur-slow:700ms;--dur-cine:1200ms;
--ease-out:cubic-bezier(.22,1,.36,1);--ease-cine:cubic-bezier(.65,0,.35,1);
--f-display:"Space Grotesk",system-ui,sans-serif;--f-body:"Plus Jakarta Sans",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg-app);color:var(--ink);font:400 16px/1.65 var(--f-body);overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:var(--fiber-cyan-text);text-underline-offset:3px}a:hover{color:var(--ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--fiber-cyan-text);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;letter-spacing:-.03em;line-height:1.05;color:var(--ink)}
h1{font-size:clamp(44px,7vw,104px);letter-spacing:-.04em;font-weight:700}
h2{font-size:clamp(34px,5vw,68px)}h3{font-size:clamp(20px,2vw,26px);letter-spacing:-.02em;line-height:1.2}
p{color:var(--ink-soft)}
.lead{font-size:clamp(17px,1.5vw,21px);max-width:60ch}
.mono{font-family:var(--f-mono)}
.eyebrow{font:500 12px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fiber-cyan-text);display:inline-flex;align-items:center;gap:10px;margin-bottom:20px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.eyebrow.wl,.wl-t{color:var(--wireless-violet-text)}
.grad-t{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.skip{position:fixed;left:16px;top:-60px;z-index:400;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;transition:top var(--dur-fast)}.skip:focus{top:16px;color:#fff}
.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
.sec{position:relative;z-index:1;padding:clamp(72px,11vw,150px) 0}
.sec-head{max-width:760px;margin-bottom:clamp(36px,5vw,72px)}
.sec-head p{margin-top:20px}
.center{text-align:center;margin-inline:auto}
.grid{display:grid;gap:24px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.stack>*+*{margin-top:16px}
.icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico-box{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--fiber-cyan-dim);color:var(--fiber-cyan-text)}
.wl .ico-box,.ico-box.wl{background:var(--wireless-violet-dim);color:var(--wireless-violet-text)}

/* fiber layer */
#fiber{position:absolute;left:0;top:0;width:100%;pointer-events:none;z-index:0;overflow:visible}
#fiber .track{fill:none;stroke:var(--border-strong);stroke-width:1;opacity:.7}
#fiber .line{fill:none;stroke:url(#fiberGrad);stroke-width:2.5;stroke-linecap:round}
#fiber .pulse{fill:#fff;stroke:url(#fiberGrad);stroke-width:2;filter:drop-shadow(0 0 8px rgba(31,111,181,.7))}

/* nav */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;gap:6px;padding:7px 7px 7px 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:var(--shadow-md);transition:transform var(--dur-base) var(--ease-out),padding var(--dur-base) var(--ease-out),box-shadow var(--dur-base),gap var(--dur-base);max-width:calc(100vw - 24px)}
.nav.small{padding:4px 4px 4px 8px;box-shadow:var(--shadow-lg)}
.nav.hide{transform:translate(-50%,-150%)}
.logo{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:0;background:none;cursor:pointer;font:700 18px var(--f-display);letter-spacing:-.03em;border-radius:var(--r-pill)}
.logo:hover{background:var(--bg-panel-alt)}
.logo-mark{width:30px;height:30px}
.nav-links{display:flex;gap:2px;list-style:none;padding:0}
.nav-links a{display:block;padding:9px 15px;border-radius:var(--r-pill);font-size:14px;font-weight:500;color:var(--ink-soft);text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast)}
.nav-links a:hover{background:var(--bg-panel-alt);color:var(--ink)}
.nav-links a[aria-current=page]{background:var(--active-pill);color:var(--active-pill-text)}
.nav .btn{padding:10px 18px;font-size:14px}
.menu-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer}
.menu-btn:hover{border-color:var(--ink)}

/* menu */
.menu{position:fixed;inset:0;z-index:200;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);visibility:hidden;opacity:0;transition:opacity var(--dur-base) var(--ease-out),visibility 0s linear var(--dur-base);display:flex;flex-direction:column;padding:88px clamp(16px,4vw,56px) 32px;overflow:auto}
.menu.open{visibility:visible;opacity:1;transition-delay:0s}
.menu-close{position:absolute;top:22px;right:clamp(16px,4vw,56px);display:flex;gap:10px;align-items:center;border:1px solid var(--border);background:#fff;border-radius:var(--r-pill);padding:10px 18px;cursor:pointer;font-weight:600}
.menu-brand{position:absolute;top:26px;left:clamp(16px,4vw,56px);font:700 18px var(--f-display)}
.menu-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:16px;max-width:1400px;width:100%;margin:0 auto}
.mtile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:24px;border-radius:var(--r-panel);background:#fff;border:1px solid var(--border);text-decoration:none;color:var(--ink);overflow:hidden;min-height:150px;transition:box-shadow var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-out)}
.mtile:hover,.mtile:focus-visible{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-3px)}
.mtile.cy:hover{box-shadow:var(--shadow-glow-cyan)}.mtile.vi:hover{box-shadow:var(--shadow-glow-violet)}
.mtile .t{font:600 clamp(24px,2.8vw,40px) var(--f-display);letter-spacing:-.03em;line-height:1}
.mtile .d{font-size:14px;color:var(--ink-soft)}
.mtile .pv{position:absolute;inset:0 0 40% 0;display:grid;place-items:center;opacity:.95}
.mtile .pv svg{width:70%;height:100%}
.mtile.multi{justify-content:center}
.mtile.multi a{font:600 clamp(24px,2.6vw,36px) var(--f-display);letter-spacing:-.03em;color:var(--ink);text-decoration:none;display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}
.mtile.multi a:hover{color:var(--fiber-cyan-text)}.mtile.multi a:last-child{border:0}
@keyframes dash{to{stroke-dashoffset:-60}}@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseDot{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes drawLine{from{stroke-dashoffset:var(--len,400)}to{stroke-dashoffset:0}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes shimmer{from{background-position:-200% 0}to{background-position:200% 0}}
@keyframes charIn{from{opacity:0;transform:translateY(45%);filter:blur(14px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes bar{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
.anim-dash{stroke-dasharray:6 8;animation:dash 1.4s linear infinite}
.anim-spin{transform-origin:center;transform-box:fill-box;animation:spin 8s linear infinite}
.anim-bar{transform-origin:bottom;transform-box:fill-box;animation:bar 1.6s ease-in-out infinite}
.anim-float{animation:floatY 6s ease-in-out infinite}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:var(--r-pill);font-weight:600;font-size:15px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:box-shadow var(--dur-base),background var(--dur-fast),transform var(--dur-fast);white-space:nowrap}
.btn-primary{background:var(--active-pill);color:#fff;will-change:transform}.btn-primary:hover{color:#fff;box-shadow:var(--shadow-lg)}
.btn-secondary{background:linear-gradient(#fff,#fff) padding-box,var(--grad-brand) border-box;color:var(--ink)}.btn-secondary:hover{box-shadow:var(--shadow-md)}
.btn-wl{background:var(--wireless-violet-text);color:#fff}.btn-wl:hover{color:#fff;box-shadow:var(--shadow-glow-violet)}
.btn-sm{padding:10px 18px;font-size:14px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none}.link-arrow:hover .icon{transform:translateX(4px)}.link-arrow .icon{transition:transform var(--dur-fast)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--r-pill);font:500 12px var(--f-mono);background:var(--fiber-cyan-dim);color:var(--fiber-cyan-text);border:1px solid rgba(31,111,181,.25)}
.pill.wl{background:var(--wireless-violet-dim);color:var(--wireless-violet-text);border-color:rgba(238,59,47,.25)}
.pill.ok{background:rgba(22,163,74,.1);color:#116b34;border-color:rgba(22,163,74,.3)}.pill.warn{background:rgba(214,138,31,.12);color:#8a5410;border-color:rgba(214,138,31,.35)}.pill.bad{background:rgba(220,38,38,.08);color:#b01c1c;border-color:rgba(220,38,38,.3)}
.dot{position:relative;width:9px;height:9px;border-radius:50%;background:var(--success);display:inline-block;flex:none}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--success);animation:pulseDot 2s ease-out infinite}

/* glass */
.glass{--ac:var(--fiber-cyan);position:relative;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:28px;transition:box-shadow var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-out);transform-style:preserve-3d}
.glass.wl{--ac:var(--wireless-violet)}
.glass.lg{border-radius:var(--r-panel);padding:clamp(28px,4vw,48px)}
.glass:hover,.glass:focus-within{border-color:var(--ac);box-shadow:0 14px 44px color-mix(in srgb,var(--ac) 28%,transparent)}
.glass[data-tilt]:hover{transform:perspective(1000px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateZ(20px);transition:box-shadow var(--dur-base),border-color var(--dur-base),transform 120ms linear}
.mchip{position:absolute;top:-14px;right:20px;opacity:0;transform:translateY(12px);transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-out);padding:7px 14px;border-radius:var(--r-pill);background:var(--ink);color:#fff;font:500 12px var(--f-mono);box-shadow:var(--shadow-md);pointer-events:none}
.glass:hover .mchip,.glass:focus-within .mchip{opacity:1;transform:none}
.glass h3{margin:18px 0 10px}
.list{list-style:none;padding:0;display:grid;gap:10px}
.list li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-soft);font-size:15px}
.list .icon{color:var(--fiber-cyan-text);width:18px;height:18px;margin-top:3px}.wl .list .icon,.list.wl .icon{color:var(--wireless-violet-text)}
.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--r-pill);background:rgba(255,255,255,.8);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:14px;font-weight:500;white-space:nowrap}

/* hero */
.hero{position:relative;z-index:1;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:130px 0 90px;isolation:isolate}
.hero-layer{position:absolute;inset:0;pointer-events:none}
.hero-layer>*{pointer-events:auto}
.l1{background:radial-gradient(60% 55% at 15% 20%,rgba(31,111,181,.22),transparent 70%),radial-gradient(55% 55% at 85% 30%,rgba(238,59,47,.20),transparent 70%),radial-gradient(50% 50% at 55% 95%,rgba(31,111,181,.12),transparent 70%);inset:-12% 0}
.l2 svg{width:100%;height:100%}
.l2 path{fill:none;stroke:var(--fiber-cyan);stroke-width:1.2;opacity:.45}.l2 path:nth-child(even){stroke:var(--wireless-violet);opacity:.35}
[data-depth="1"]{filter:blur(2px)}[data-depth="2"]{filter:blur(1px)}
[data-depth="5"]{filter:drop-shadow(0 18px 24px rgba(15,20,36,.16))}[data-depth="4"]{filter:drop-shadow(0 10px 14px rgba(15,20,36,.1))}
.orb-wrap{position:absolute;right:-4%;top:50%;width:min(62vw,820px);aspect-ratio:1;margin-top:calc(min(62vw,820px)/-2 - 20px)}
#orb{position:absolute;inset:0;pointer-events:auto}
#orb canvas{width:100%!important;height:100%!important;display:block}
.orb-css{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,rgba(255,255,255,.85) 18%,transparent 44%),conic-gradient(from 200deg,#bcd6f4,#ffd0cb,#fff,#bcd6f4,#ffd0cb,#bcd6f4);box-shadow:inset -30px -40px 80px rgba(238,59,47,.25),inset 30px 30px 80px rgba(31,111,181,.25),0 40px 90px rgba(238,59,47,.2);animation:floatY 8s ease-in-out infinite;transition:opacity var(--dur-slow)}
.orb-css.sm{inset:0}
.hero-copy{position:relative;z-index:3}
.hero h1{margin:6px 0 26px;max-width:11ch;font-size:clamp(56px,10vw,152px);line-height:.92}
.hero h1 .w{display:inline-block;white-space:nowrap}
.char{display:inline-block}
.js .hero h1 .char{opacity:0;animation:charIn .9s var(--ease-out) forwards;animation-delay:calc(var(--i)*25ms + 150ms)}
.hero .lead{margin-bottom:34px}
.hero .row.ctas{margin-top:26px}
.chips-l{position:absolute;inset:0;pointer-events:none;z-index:4}
.fchip{position:absolute;display:flex;flex-direction:column;gap:2px;padding:14px 20px;border-radius:18px;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-lg)}
.fchip b{font:600 28px/1 var(--f-display);letter-spacing:-.03em}.fchip span{font:500 11px var(--f-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.fchip i{position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--fiber-cyan)}
.fchip.v i{background:var(--wireless-violet)}
.fchip .in{animation:floatY 6s ease-in-out infinite}
.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:10px;font:500 11px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.scroll-cue i{width:1px;height:46px;background:linear-gradient(var(--fiber-cyan),transparent);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--wireless-violet);animation:cue 1.8s var(--ease-cine) infinite}
@keyframes cue{to{top:110%}}

/* availability */
.avail{width:min(620px,100%)}
.avail form{display:flex;gap:6px;padding:6px;border-radius:var(--r-pill);background:rgba(255,255,255,.86);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);transition:box-shadow var(--dur-base),border-color var(--dur-base)}
.avail form:focus-within{border-color:var(--fiber-cyan);box-shadow:var(--shadow-glow-cyan)}
.avail .in{flex:1;display:flex;align-items:center;gap:10px;padding-left:16px;min-width:0;color:var(--muted)}
.avail input{flex:1;border:0;background:none;outline:0;min-width:0;padding:10px 0;color:var(--ink)}
.avail input::placeholder{color:var(--muted)}
.avail .btn{padding:13px 22px}
.avail .out{min-height:0;overflow:hidden;transition:min-height var(--dur-base)}
.avail .trace{display:none;height:64px;margin-top:10px}
.avail.busy .trace,.avail.done .trace{display:block}
.avail .trace path{fill:none;stroke:url(#traceGrad);stroke-width:3;stroke-linecap:round}
.avail .res{display:none;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.avail.done .res{display:flex;animation:fadeUp var(--dur-slow) var(--ease-out)}
.avail .err{color:var(--danger);font-size:13px;margin:8px 0 0 18px;min-height:0}
.avail small{display:block;margin:10px 0 0 18px;color:var(--muted);font-size:13px}

/* sections / bands */
.tint-cyan{--tc:var(--bg-tint-cyan)}
.pin-stage{position:relative;height:100svh;display:flex;align-items:center;overflow:hidden;z-index:1}
.pin-bg{position:absolute;inset:-10% 0;pointer-events:none}
.pin-bg.a{background:radial-gradient(40% 40% at 20% 70%,rgba(31,111,181,.18),transparent 70%)}
.pin-bg.b{background:radial-gradient(40% 40% at 80% 30%,rgba(238,59,47,.16),transparent 70%)}
.story{position:relative;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.story svg.net{width:100%;height:auto;max-height:70vh}
.story .path-bg{fill:none;stroke:var(--border-strong);stroke-width:2}
.story .path-fg{fill:none;stroke:url(#fiberGrad);stroke-width:4;stroke-linecap:round}
.story .nd{fill:#fff;stroke:var(--fiber-cyan);stroke-width:3}
.caps{position:relative;min-height:340px}
.cap{position:absolute;inset:0;margin:auto 0;height:fit-content}
.js .cap{opacity:0}
.cap .big{font:600 clamp(48px,6vw,88px)/1 var(--f-display);letter-spacing:-.04em}
.cap .big small{font:500 16px var(--f-mono);color:var(--muted);letter-spacing:0;margin-left:6px}
.steps-i{display:flex;gap:8px;margin-bottom:16px}.steps-i b{font:500 12px var(--f-mono);color:var(--muted)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.panel{position:relative;border-radius:var(--r-panel);padding:clamp(28px,4vw,56px);overflow:hidden;border:1px solid var(--border);min-height:460px;display:flex;flex-direction:column;justify-content:space-between;gap:36px}
.panel.cy{background:var(--bg-tint-cyan)}.panel.vi{background:var(--bg-tint-violet)}
.panel h3{font-size:clamp(30px,3.4vw,48px)}
.panel .specs{display:grid;gap:0;list-style:none;padding:0}
.panel .specs li{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid rgba(15,20,36,.1);font-size:15px;color:var(--ink-soft)}
.panel .specs b{font:500 15px var(--f-mono);color:var(--ink)}
.panel .bgsvg{position:absolute;right:-40px;top:-30px;width:60%;opacity:.55;pointer-events:none}

.metric .num{font:600 clamp(44px,5vw,72px)/1 var(--f-display);letter-spacing:-.04em;display:flex;align-items:baseline;gap:6px}
.metric .num u{text-decoration:none;font:500 15px var(--f-mono);color:var(--fiber-cyan-text);letter-spacing:0}
.metric p{margin-top:10px;font-size:14px}
.metric .spark{height:46px;margin-top:18px;opacity:0;transform:translateY(8px);transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-out)}
.metric:hover .spark,.metric:focus-within .spark{opacity:1;transform:none}
.spark path{fill:none;stroke:var(--fiber-cyan);stroke-width:2;stroke-dasharray:300;stroke-dashoffset:300}
.metric:hover .spark path{animation:drawLine 1.2s var(--ease-out) forwards;--len:300}

.stack{position:relative}
.stack-card{position:sticky;top:calc(96px + var(--i,0)*18px);margin-bottom:28px;min-height:360px;display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--r-panel);padding:clamp(28px,4vw,56px);box-shadow:var(--shadow-lg);transform-origin:50% 0}
.stack-card .n{font:500 13px var(--f-mono);color:var(--fiber-cyan-text)}
.stack-card h3{font-size:clamp(28px,3.4vw,46px);margin:12px 0 14px}
.stack-card .viz{height:240px;border-radius:var(--r-card);background:var(--bg-tint-cyan);display:grid;place-items:center;overflow:hidden}.stack-card:nth-child(even) .viz{background:var(--bg-tint-violet)}
.stack-card .viz svg{width:80%;height:80%}

.map-box{display:grid;grid-template-columns:1.6fr .8fr;gap:28px;align-items:center}
.map-box svg{width:100%;height:auto}
.isl{fill:#fff;stroke:var(--border-strong);stroke-width:2;filter:drop-shadow(0 20px 30px rgba(15,20,36,.1))}
.rt{fill:none;stroke:url(#fiberGrad);stroke-width:3;stroke-linecap:round}
.node{fill:var(--fiber-cyan)}.node-r{fill:var(--fiber-cyan);transform-box:fill-box;transform-origin:center;animation:pulseDot 2.4s ease-out infinite}
.nlab{font:500 12px var(--f-mono);fill:var(--ink-soft)}
#parishRing{fill:var(--fiber-cyan-dim);stroke:var(--fiber-cyan);stroke-width:1.5;opacity:0;transition:opacity var(--dur-base),cx var(--dur-base) var(--ease-out),cy var(--dur-base) var(--ease-out)}
.parishes{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.parishes button{width:100%;text-align:left;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:14px;display:flex;justify-content:space-between;gap:8px;transition:all var(--dur-fast)}
.parishes button:hover,.parishes button:focus-visible{border-color:var(--fiber-cyan);background:var(--bg-tint-cyan)}
.parishes em{font:normal 500 11px var(--f-mono);color:var(--fiber-cyan-text)}

.marq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marq .trk{display:flex;gap:14px;width:max-content;animation:marquee 40s linear infinite}
.marq:hover .trk{animation-play-state:paused}
.quote p{font:500 clamp(19px,1.8vw,24px)/1.4 var(--f-display);letter-spacing:-.02em;color:var(--ink)}
.quote footer{margin-top:22px;font-size:14px;color:var(--ink-soft);display:flex;gap:12px;align-items:center}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--grad-brand);flex:none}

.cta-final{text-align:center;padding-bottom:clamp(160px,18vw,260px)}
.cta-final .avail{margin:36px auto 0;text-align:left}
.cta-orb{position:relative;width:150px;height:150px;margin:0 auto 20px}

/* footer */
.footer{position:relative;z-index:2;background:#fff;border-top:1px solid var(--border);padding:72px 0 32px;overflow:hidden}
.footer .motif{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}
.footer .motif path{fill:none;stroke:var(--border-strong);stroke-width:1}
.foot-grid{position:relative;display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px}
.footer h4{font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.footer ul{list-style:none;padding:0;display:grid;gap:10px}
.footer a{color:var(--ink-soft);text-decoration:none;font-size:15px}.footer a:hover{color:var(--ink);text-decoration:underline}
.foot-bot{position:relative;margin-top:56px;padding-top:24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.status-pill{display:inline-flex;gap:10px;align-items:center;padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--border);background:#fff;font:500 12px var(--f-mono);color:var(--ink-soft)}

/* inner-page hero */
.phero{position:relative;z-index:1;padding:170px 0 clamp(50px,7vw,100px)}
.phero h1{font-size:clamp(44px,7vw,100px);max-width:14ch}
.phero .lead{margin-top:24px}
.phero .row{margin-top:32px}
.phero .art{position:absolute;right:0;top:90px;width:min(46vw,620px);aspect-ratio:1;pointer-events:none;z-index:-1;opacity:.9}

/* forms */
.form{display:grid;gap:18px}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:grid;gap:8px}
.fld label{font-size:13px;font-weight:600;color:var(--ink)}
.fld input,.fld select,.fld textarea{width:100%;padding:14px 16px;border:1px solid var(--border-strong);border-radius:12px;background:#fff;outline:0;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.fld textarea{min-height:130px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--fiber-cyan);box-shadow:0 0 0 4px var(--fiber-cyan-dim)}
.wl .fld input:focus,.wl .fld select:focus{border-color:var(--wireless-violet);box-shadow:0 0 0 4px var(--wireless-violet-dim)}
.fld.bad input,.fld.bad select,.fld.bad textarea{border-color:var(--danger)}
.fld .e{color:var(--danger);font-size:12.5px;display:none}.fld.bad .e{display:block}
.form-ok{display:none;text-align:center;padding:30px 10px}
.form-ok.show{display:block;animation:fadeUp var(--dur-slow) var(--ease-out)}
.form-ok .tick{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;background:rgba(22,163,74,.1);display:grid;place-items:center;color:var(--success)}
.form-ok .tick svg{width:34px;height:34px;stroke-dasharray:40;stroke-dashoffset:40}.form-ok.show .tick svg{animation:drawLine .8s .2s var(--ease-out) forwards;--len:40}
.radios{display:flex;gap:8px;flex-wrap:wrap}.radios label{cursor:pointer}
.radios input{position:absolute;opacity:0}
.radios span{display:inline-block;padding:10px 16px;border:1px solid var(--border-strong);border-radius:var(--r-pill);font-size:14px;background:#fff;transition:all var(--dur-fast)}
.radios input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.radios input:focus-visible+span{outline:2px solid var(--fiber-cyan-text);outline-offset:2px}

/* tables */
.tbl-w{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:640px}
th,td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--border)}
th{font:500 12px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg-panel-alt)}
tr:last-child td{border:0}td.m{font-family:var(--f-mono);font-weight:500}
.yes{color:var(--success)}.no{color:var(--muted)}
tbody tr:hover td{background:var(--bg-tint-cyan)}

/* plans */
.plan{display:flex;flex-direction:column;gap:6px}
.plan .speed{font:600 clamp(48px,5vw,72px)/1 var(--f-mono);letter-spacing:-.04em;display:flex;align-items:baseline;gap:8px;margin-top:10px}
.plan .speed u{text-decoration:none;font:500 16px var(--f-mono);color:var(--fiber-cyan-text);letter-spacing:0}
.wl .plan .speed u,.plan.wl .speed u{color:var(--wireless-violet-text)}
.plan .price{font:600 28px var(--f-display);margin:8px 0 18px}.plan .price small{font:500 14px var(--f-body);color:var(--muted)}
.plan .list{margin-bottom:26px;flex:1}
.plan .tag{position:absolute;top:-13px;left:24px}
.glass.feat{border-color:var(--ac)}

/* timeline */
.tl{position:relative;display:grid;gap:clamp(40px,6vw,80px);padding:10px 0}
.tl-line{position:absolute;left:28px;top:0;bottom:0;width:60px;height:100%;pointer-events:none;overflow:visible}
.tl-line path{fill:none;stroke-width:3;stroke-linecap:round}
.tl-line .bg{stroke:var(--border-strong);stroke-width:2}.tl-line .fg{stroke:url(#fiberGrad)}
.tl-i{position:relative;padding-left:96px;max-width:780px}
.tl-i .dotn{position:absolute;left:10px;top:0;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid var(--fiber-cyan);display:grid;place-items:center;font:500 12px var(--f-mono);color:var(--fiber-cyan-text);z-index:1;box-shadow:0 0 0 6px var(--bg-app)}
.tl-i h3{margin-bottom:8px}.tl-i .yr{font:500 13px var(--f-mono);color:var(--fiber-cyan-text);margin-bottom:6px}
.tl-i.vi .dotn{border-color:var(--wireless-violet);color:var(--wireless-violet-text)}

/* faq */
.faq{display:grid;gap:12px;max-width:860px}
.faq-i{background:#fff;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;transition:border-color var(--dur-fast)}
.faq-i.open{border-color:var(--fiber-cyan)}
.faq-q{width:100%;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 24px;border:0;background:none;cursor:pointer;text-align:left;font:600 17px var(--f-display);letter-spacing:-.01em}
.faq-q .icon{transition:transform var(--dur-base) var(--ease-out)}.faq-i.open .faq-q .icon{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-out)}.faq-i.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}.faq-a p{padding:0 24px 22px}

/* product art */
.prod{height:200px;border-radius:12px;background:linear-gradient(160deg,var(--bg-tint-cyan),#fff);display:grid;place-items:center;overflow:hidden;margin-bottom:6px}
.prod svg{width:70%;height:80%}
.wl .prod,.prod.wl{background:linear-gradient(160deg,var(--bg-tint-violet),#fff)}

/* tabs */
.tabs{display:flex;gap:6px;padding:6px;border-radius:var(--r-pill);background:#fff;border:1px solid var(--border);width:fit-content;max-width:100%;overflow-x:auto;margin-bottom:32px}
.tabs button{padding:11px 22px;border-radius:var(--r-pill);border:0;background:none;cursor:pointer;font-weight:600;font-size:14px;color:var(--ink-soft);white-space:nowrap}
.tabs button[aria-selected=true]{background:var(--active-pill);color:#fff}
.tabs button:not([aria-selected=true]):hover{background:var(--bg-panel-alt)}
.tp{display:none}.tp.on{display:grid;animation:fadeUp var(--dur-slow) var(--ease-out)}

/* diagrams */
.diagram{background:#fff;border:1px solid var(--border);border-radius:var(--r-panel);padding:clamp(16px,3vw,36px);box-shadow:var(--shadow-md)}
.diagram svg{width:100%;height:auto}
.flow{fill:none;stroke:var(--fiber-cyan);stroke-width:2.5;stroke-dasharray:4 10;stroke-linecap:round;animation:dash 1s linear infinite}.flow.v{stroke:var(--wireless-violet)}
.dbox{fill:#fff;stroke:var(--border-strong);stroke-width:1.5}
.dtxt{font:500 13px var(--f-mono);fill:var(--ink)}.dsub{font:400 11px var(--f-mono);fill:var(--muted)}
.layers{display:grid;gap:14px}
.layer{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;padding:22px 26px;background:#fff;border:1px solid var(--border);border-radius:var(--r-card);position:relative;overflow:hidden}
.layer .lt{font:500 12px var(--f-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.layer h3{margin-top:4px}
.layer .bus{position:relative;height:6px;border-radius:99px;background:var(--bg-panel-alt);margin-top:14px;overflow:hidden}
.layer .bus::after{content:"";position:absolute;top:0;bottom:0;width:22%;border-radius:99px;background:var(--grad-brand);animation:busmove 3s var(--ease-cine) infinite;animation-delay:var(--d,0s)}
@keyframes busmove{from{left:-25%}to{left:105%}}

.board{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.board .cell{padding:22px;border-radius:var(--r-card);background:#fff;border:1px solid var(--border)}
.board .cell .k{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.board .cell .v{font:600 clamp(30px,3vw,44px)/1.1 var(--f-display);letter-spacing:-.03em;margin-top:8px}.board .cell .v small{font:500 13px var(--f-mono);color:var(--muted);margin-left:4px}
.regions{display:grid;gap:10px;margin-top:16px}
.regions .rr{display:grid;grid-template-columns:1.2fr 1fr 1fr 90px;gap:14px;padding:14px 20px;background:#fff;border:1px solid var(--border);border-radius:12px;align-items:center;font-size:14px}
.regions .rr .mono{font-size:13px}

/* filters / case studies */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.filters .lab{font:500 12px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-right:6px}
.fbtn{padding:9px 18px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:#fff;cursor:pointer;font-size:14px;font-weight:500}
.fbtn[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.case{cursor:pointer;text-align:left;width:100%;display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);font:inherit}
.case .top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.case .res{font:600 40px/1 var(--f-display);letter-spacing:-.04em}.case .res small{font:500 13px var(--f-mono);color:var(--muted);margin-left:6px}
.overlay{position:fixed;inset:0;z-index:300;background:rgba(247,248,250,.94);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);overflow:auto;visibility:hidden;opacity:0;transition:opacity var(--dur-base),visibility 0s linear var(--dur-base)}
.overlay.open{visibility:visible;opacity:1;transition-delay:0s}
.overlay .in{width:min(1040px,100% - 40px);margin:0 auto;padding:100px 0 80px}
.overlay .x{position:fixed;top:22px;right:24px;z-index:2}
.cs-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.cs-m{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
.cs-m .glass b{font:600 clamp(36px,4vw,56px)/1 var(--f-display);letter-spacing:-.04em;display:block}

.big-search{display:flex;gap:8px;padding:8px;border-radius:var(--r-pill);background:#fff;border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);max-width:720px;align-items:center}
.big-search input{flex:1;border:0;outline:0;background:none;padding:12px 8px 12px 18px;font-size:17px;min-width:0}
.big-search:focus-within{border-color:var(--fiber-cyan);box-shadow:var(--shadow-glow-cyan)}
.art-list{list-style:none;padding:0;display:grid;gap:10px}
.art-list a{display:flex;justify-content:space-between;gap:16px;padding:18px 22px;background:#fff;border:1px solid var(--border);border-radius:var(--r-card);text-decoration:none;color:var(--ink);font-weight:500;transition:all var(--dur-fast)}
.art-list a:hover{border-color:var(--fiber-cyan);transform:translateX(4px)}
.art-list a span{color:var(--muted);font:500 12px var(--f-mono)}
.art-list li[hidden]{display:none}
.contact-i{display:flex;gap:16px;align-items:flex-start}
.contact-i b{display:block;font-family:var(--f-display);font-size:18px;letter-spacing:-.01em}.contact-i a,.contact-i span.v{color:var(--ink-soft);text-decoration:none;font-size:15px}.contact-i a:hover{color:var(--fiber-cyan-text)}
.hours{display:grid;gap:0}.hours div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px}.hours div:last-child{border:0}.hours b{font:500 14px var(--f-mono)}
.hours .today{color:var(--fiber-cyan-text);font-weight:600}

/* esim */
.esim{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}
.phone{position:relative;width:min(300px,100%);aspect-ratio:9/18;margin:auto;border-radius:44px;background:#fff;border:1px solid var(--border-strong);box-shadow:var(--shadow-lg),var(--shadow-glow-violet);padding:14px}
.phone .scr{position:absolute;inset:14px;border-radius:32px;background:var(--bg-tint-violet);display:grid;place-items:center;overflow:hidden}
.phone .scr>div{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:14px;text-align:center;opacity:0;transition:opacity var(--dur-base)}
.phone .scr>div.on{opacity:1}
.qr{width:150px;height:150px;display:grid;grid-template-columns:repeat(15,1fr);gap:1px;padding:8px;background:#fff;border-radius:12px}
.qr i{background:var(--ink);opacity:0;transform:scale(.2);transition:opacity .25s,transform .25s var(--ease-out)}.qr.built i.on{opacity:1;transform:none}
.beats{list-style:none;padding:0;display:grid;gap:10px}
.beats li{display:flex;gap:16px;align-items:center;padding:14px 18px;border-radius:var(--r-card);border:1px solid var(--border);background:#fff;opacity:.5;transition:all var(--dur-base)}
.beats li.on{opacity:1;border-color:var(--wireless-violet);box-shadow:var(--shadow-glow-violet)}
.beats li b{font:500 12px var(--f-mono);color:var(--wireless-violet-text)}
.bar-p{width:120px;height:6px;border-radius:9px;background:rgba(238,59,47,.2);overflow:hidden}.bar-p i{display:block;height:100%;width:0;background:var(--wireless-violet);transition:width 1.1s linear}

.ind{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.ind .glass{padding:24px;text-align:left}
.ind h3{font-size:20px;margin:16px 0 6px}.ind p{font-size:14px}
.sla-note{margin-top:14px;font-size:13px;color:var(--muted)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);align-items:start}
.sticky{position:sticky;top:110px}
.lmap svg{width:100%;height:auto;border-radius:var(--r-card);border:1px solid var(--border);background:var(--bg-tint-cyan)}
.person{text-align:center}
.person .ph{aspect-ratio:1;border-radius:var(--r-card);margin-bottom:16px;background:linear-gradient(160deg,var(--bg-tint-cyan),var(--bg-tint-violet));display:grid;place-items:center;color:var(--muted);overflow:hidden}
.person .ph svg{width:55%}.person h3{font-size:19px}.person p{font-size:14px}

/* start states */
.js [data-reveal]{opacity:0;transform:translateY(34px)}
.js [data-reveal=left]{transform:translateX(-90px)}.js [data-reveal=right]{transform:translateX(90px)}
.js [data-scale-in]{transform:scale(1.15);clip-path:inset(8% round 24px);will-change:transform}
.js.nogsap [data-reveal],.js.nogsap [data-scale-in],.js.nogsap .cap{opacity:1;transform:none;clip-path:none}
.js.nogsap .cap{position:static;margin:0 0 24px}
.js[data-motion=reduce] [data-reveal],.js[data-motion=reduce] [data-scale-in]{transform:none;clip-path:none}
.js[data-motion=reduce] .hero h1 .char{animation:fadeIn .6s forwards}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.marq .trk{animation:none}}

/* responsive */
@media (max-width:1100px){.nav-links a{padding:9px 11px}.foot-grid{grid-template-columns:1fr 1fr 1fr}.ind{grid-template-columns:repeat(3,1fr)}.board{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
.nav-links{display:none}
.g3,.g4,.g2,.split,.map-box,.cols,.esim,.stack-card,.story{grid-template-columns:1fr}
.g4{grid-template-columns:1fr 1fr}
.stack-card{position:relative;top:auto;min-height:0}
.pin-stage{height:auto;padding:80px 0;display:block}.caps{min-height:0;display:grid;gap:20px}.cap{position:static;margin:0}.js .cap{opacity:1}
.menu{padding-top:84px}.menu-grid{grid-template-columns:1fr;grid-template-rows:none}.mtile{min-height:96px;flex-direction:row;align-items:center;justify-content:flex-start;gap:16px;padding:16px 20px}.mtile .pv{position:static;width:90px;flex:none;inset:auto}.mtile .pv svg{width:90px;height:56px}.mtile .d{display:none}.mtile.multi{flex-direction:column;align-items:stretch}
.orb-wrap{right:-30%;width:100vw;margin-top:calc(-50vw - 140px);opacity:.75}
.hero h1{max-width:none}
.fchip{padding:10px 14px}.fchip b{font-size:20px}
.cs-blocks,.cs-m{grid-template-columns:1fr}
.layer{grid-template-columns:1fr}.regions .rr{grid-template-columns:1fr 1fr}
.phero .art{opacity:.35;width:80vw}.sticky{position:static}
.foot-grid{grid-template-columns:1fr 1fr}.form .two{grid-template-columns:1fr}
.tl-line{left:20px}.tl-i{padding-left:70px}.tl-i .dotn{left:2px}
}
@media (max-width:600px){.g4{grid-template-columns:1fr}.ind{grid-template-columns:1fr 1fr}.board{grid-template-columns:1fr 1fr}.parishes{grid-template-columns:1fr}.btn{padding:14px 20px}.nav .btn.hide-m{display:none}.avail form{flex-wrap:nowrap}.avail .btn span{display:none}.foot-grid{grid-template-columns:1fr}}
@media (min-width:1920px){.wrap{width:min(1400px,100% - 96px)}}

.m{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}.mi{display:inline-block}
.js [data-reveal=mask]{opacity:1;transform:none}
.fchip{translate:var(--cx,0) var(--cy,0)}
.nd{transform-box:fill-box;transform-origin:center}
.dev-out{margin-top:14px}.dev-out:empty{display:none}
.trace .tp{transition:none}
@media (max-width:600px){.hero h1{font-size:clamp(48px,16vw,80px)}}

.fchip .in{display:flex;flex-direction:column;gap:2px}

.fchip .in{padding-right:16px}

.logo-mark{flex:none;width:30px;height:30px;min-width:30px}
.fchip .in{padding-right:28px}
.hero .lead{max-width:44ch}

.logo-img{height:30px;width:auto;flex:none;mix-blend-mode:multiply}.nav .logo{padding:6px 10px}.menu-brand{display:flex}

.logo-img{max-width:none;width:auto;height:30px;flex:none}.menu-btn{flex:none;min-width:42px}.logo{flex:none}
