/* Lunar Network (/network/): how Lunar Systems runs and secures its network and infrastructure. In the Lunar
   family (lunar.css) with its own identity, "the night side": a deeper ink ground, a lunar limb ringed by five
   orbits (the layers of defence), strokes in limb white and earthshine. Amber marks only the In development and
   Planned status chips; green marks only what is live. Owned by the Network page builder, with
   src/assets/pages/network/: network.js runs the page's motion figures (kit.js, rings.js, chain.js, watch.js, sos.js,
   sign.js) and pauses the cover's CSS loops off screen; favicon.svg. */
:root{
  --bg:#070a0f; --panel:#0b1017; --panel2:#0f151e;
  --ln1:#141b25; --ln2:#1a2330; --ln3:#232e3c;
  --nw-limb:#e6eefa; --nw-earth:#7f9cc4; --nw-muted:#778393;
}
body[data-page="network"]{
  background:var(--bg);
  --chrome-bg:rgba(7,10,15,.72);
  --chrome-menu-bg:#070a0f;
  --chrome-line:#18212c;
}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ---- status chips: a lunar phase for each state. Full = live (green), half = in development, empty with a
   dashed rule = planned (both amber). The word is always written out, so colour is never the only cue. */
.nw-st{display:inline-flex;align-items:center;gap:7px;flex:none;box-sizing:border-box;font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:5px 8px 5px 7px;border:1px solid;border-radius:4px;white-space:nowrap;vertical-align:middle}
.nw-st::before{content:"";flex:none;box-sizing:border-box;width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor}
.nw-st.live{color:var(--live);border-color:rgba(79,209,139,.45);background:rgba(79,209,139,.07)}
.nw-st.live::before{background:currentColor}
.nw-st.dev{color:var(--warn);border-color:rgba(240,182,74,.45);background:rgba(240,182,74,.06)}
.nw-st.dev::before{background:linear-gradient(90deg,transparent 50%,currentColor 50%)}
.nw-st.plan{color:var(--warn);border-color:rgba(240,182,74,.55);border-style:dashed;background:transparent}
.nw-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:auto;padding-top:6px;font-size:13.5px;line-height:1.45;color:var(--nw-muted)}
.nw-status-line{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px 14px;margin:0 0 22px;font-size:14.5px;line-height:1.5;color:var(--t2)}
.nw-status-line .nw-st{margin-top:-1px}
.nw-micro{font:500 11.5px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--nw-earth)}

/* ---- hero: the limb, five orbits, a terminator sweeping the disc, one dot drifting on each orbit */
.nw-cover{min-height:min(100svh,940px)}
.nw-cover .cover-bg{background:var(--bg)}
.nw-sky{position:absolute;inset:0;width:100%;height:100%}
.nw-scrim{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(7,10,15,.94) 0%,rgba(7,10,15,.8) 30%,rgba(7,10,15,.2) 58%,transparent 74%),
  linear-gradient(180deg,rgba(7,10,15,.6) 0%,transparent 16%,transparent 80%,var(--bg) 100%)}
.nw-stars circle{fill:#cfdcef;opacity:.4}
.nw-orbits use{fill:none;stroke:var(--nw-earth);stroke-opacity:.34;stroke-width:1}
.nw-orbits use.in{stroke:var(--nw-limb);stroke-opacity:.3}
.nw-ticks{fill:none;stroke:var(--nw-earth);stroke-opacity:.45;stroke-width:7;stroke-dasharray:1.2 25}
.nw-maria circle{fill:var(--nw-limb);opacity:.016}
.nw-limb{fill:none;stroke:url(#nw-limb);stroke-width:1.8}
.nw-labels text{font:500 12px var(--mono);letter-spacing:.26em;fill:var(--nw-earth)}
.nw-labels text.in{fill:#cfdcef}
.nw-term{transform-box:view-box;transform:translateX(230px);animation:nw-sweep 24s ease-in-out infinite alternate}
@keyframes nw-sweep{from{transform:translateX(440px)}to{transform:translateX(20px)}}
.nw-dot{transform-box:view-box;transform-origin:1500px 1150px;transform:rotate(var(--a0));animation:nw-drift var(--t) ease-in-out var(--d) infinite alternate}
.nw-dot circle{fill:var(--nw-limb);filter:drop-shadow(0 0 5px rgba(230,238,250,.85))}
@keyframes nw-drift{from{transform:rotate(var(--a0))}to{transform:rotate(var(--a1))}}
.nw-dot.d1{--a0:50deg;--a1:84deg;--t:52s;--d:-9s}
.nw-dot.d2{--a0:64deg;--a1:26deg;--t:46s;--d:-20s}
.nw-dot.d3{--a0:44deg;--a1:84deg;--t:41s;--d:-5s}
.nw-dot.d4{--a0:76deg;--a1:32deg;--t:37s;--d:-14s}
.nw-dot.d5{--a0:36deg;--a1:70deg;--t:33s;--d:-3s}

.nw-hero{padding-block:72px 64px}
.nw-kicker{display:flex;align-items:center;gap:12px;font:500 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--nw-earth)}
.nw-glyph{position:relative;flex:none;width:18px;height:18px;box-sizing:border-box;border:1.5px solid var(--nw-limb);border-radius:50%;overflow:hidden}
.nw-glyph::after{content:"";position:absolute;top:0;bottom:0;left:0;width:50%;background:var(--nw-limb)}
.nw-glyph::before{content:"";position:absolute;inset:-6px;border:1px solid var(--nw-earth);border-radius:50%}
.nw-hero h1{font-size:clamp(42px,6.3vw,90px);line-height:.98;letter-spacing:-.04em;max-width:10.5em;margin-top:26px;color:var(--t0)}
.nw-hero h1 em{color:var(--moon)}
.nw-hero .lede{max-width:600px;margin-top:26px;font-size:18.5px}
.nw-flag{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:26px;font-size:15.5px;color:var(--t1)}
.nw-hero .btns{margin-top:32px}
.nw-readout{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:64px;font:500 11px/1 var(--mono);letter-spacing:.24em;color:var(--nw-earth)}
.nw-readout i{font-style:normal;color:var(--t4)}
.nw-readout span:last-child{color:#cfdcef}

/* ---- where things stand */
.nw-where-in{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px 48px;padding:30px 0;border-top:1px solid var(--ln2);border-bottom:1px solid var(--ln2)}
.nw-where-in h2{padding-top:4px}
.nw-where-in > p{font-size:16px;color:var(--t2);max-width:760px}
.nw-legend{grid-column:2;display:flex;flex-wrap:wrap;gap:12px 28px;margin:4px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--nw-muted)}
.nw-legend li{display:flex;align-items:center;gap:10px}

/* ---- cards and panels */
.nw-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.nw-rule,.nw-panel{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;padding:28px 26px 24px;border:1px solid var(--ln2);border-radius:14px;background:linear-gradient(180deg,rgba(15,21,30,.92),rgba(9,13,19,.92));overflow:hidden}
.nw-rule::before,.nw-rule::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.nw-rule::before{right:-120px;top:-120px;width:230px;height:230px;border:1px solid rgba(127,156,196,.22)}
.nw-rule::after{right:-70px;top:-70px;width:130px;height:130px;border:1px solid rgba(230,238,250,.2);background:radial-gradient(circle at 30% 70%,rgba(207,220,239,.08),transparent 60%)}
.nw-num{font:500 12px/1 var(--mono);letter-spacing:.2em;color:var(--nw-earth)}
.nw-rule h3,.nw-panel h3{font-size:22px;line-height:1.2;letter-spacing:-.02em;color:var(--t0)}
.nw-rule > p:not([class]),.nw-panel > p:not([class]){font-size:15.5px;color:var(--t2)}
.nw-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}

/* bulleted lists: each bullet a small orbit */
.nw-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.nw-list li{position:relative;padding-left:22px;font-size:15px;line-height:1.5;color:var(--val)}
.nw-list li::before{content:"";position:absolute;left:1px;top:.5em;width:8px;height:8px;box-sizing:border-box;border:1.5px solid var(--nw-earth);border-radius:50%}

/* ---- the five rings */
.nw-axis{display:flex;align-items:center;gap:14px;margin:0 0 14px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nw-earth)}
.nw-axis span:last-child{color:#cfdcef}
.nw-axis span{white-space:nowrap}
.nw-axis i{min-width:12px}
.nw-axis i{position:relative;flex:1;height:1px;background:linear-gradient(90deg,rgba(127,156,196,.2),rgba(230,238,250,.6))}
.nw-axis i::after{content:"";position:absolute;right:-1px;top:-3.5px;border-left:7px solid rgba(230,238,250,.75);border-top:4px solid transparent;border-bottom:4px solid transparent}
.nw-rings{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--ln2);border-radius:16px;overflow:hidden;background:radial-gradient(60% 150% at 106% 50%,rgba(207,220,239,.13),rgba(207,220,239,.03) 55%,transparent 72%),linear-gradient(180deg,#0b1017,#080b11)}
.nw-ring{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0;padding:26px 20px 24px 42px}
/* each ring's boundary is the left edge of a tall ellipse centred to its right: an arc bulging towards the open
   internet, more tightly curved the nearer the ring is to the core */
.nw-ring::before{content:"";position:absolute;top:-40%;bottom:-40%;left:6px;width:var(--w);box-sizing:border-box;border-left:1px solid var(--rc);border-radius:50% 0 0 50%/50% 0 0 50%;pointer-events:none}
.nw-ring.r1{--w:150px;--rc:rgba(127,156,196,.3)}
.nw-ring.r2{--w:200px;--rc:rgba(127,156,196,.38)}
.nw-ring.r3{--w:250px;--rc:rgba(127,156,196,.46)}
.nw-ring.r4{--w:300px;--rc:rgba(160,184,216,.52)}
.nw-ring.r5{--w:350px;--rc:rgba(230,238,250,.58)}
.nw-ring-id{display:flex;align-items:baseline;gap:10px;font:500 11.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--nw-earth);transition:color .45s}
.nw-ring-id b{font-weight:500;color:var(--nw-muted);letter-spacing:.1em}
.nw-ring.r5 .nw-ring-id{color:#cfdcef}
.nw-ring h3{font-size:19px;line-height:1.25;letter-spacing:-.015em;color:var(--t0)}
.nw-ring > p:not([class]){font-size:14.5px;line-height:1.55;color:var(--t2)}
.nw-ring .nw-state{font-size:13px}

/* ---- the edge appliance */
.nw-chain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.nw-chain li{position:relative;display:flex;flex-direction:column;gap:2px;padding:0 0 16px 30px}
.nw-chain li::before{content:"";position:absolute;left:0;top:4px;width:12px;height:12px;box-sizing:border-box;border:1.5px solid var(--nw-limb);border-radius:50%;background:var(--panel)}
.nw-chain li::after{content:"";position:absolute;left:5.5px;top:18px;bottom:0;width:1px;background:linear-gradient(180deg,rgba(230,238,250,.45),rgba(127,156,196,.25))}
.nw-chain li:last-child{padding-bottom:0}
.nw-chain li:last-child::after{display:none}
.nw-chain li:last-child::before{background:var(--nw-limb)}
/* the chain verified link by link (chain.js): a light fills each link, each mark seals as it arrives */
.nw-chain li::before{transition:background-color .5s,box-shadow .5s}
.nw-chain li::after{background:linear-gradient(180deg,rgba(230,238,250,calc(.9 * var(--fa,0))) var(--f,0%),transparent var(--f,0%)),linear-gradient(180deg,rgba(230,238,250,.45),rgba(127,156,196,.25))}
.nw-chain li.is-ok::before{background-color:var(--nw-limb)}
.nw-chain li.is-now::before{box-shadow:0 0 0 5px rgba(230,238,250,.1),0 0 14px rgba(230,238,250,.6)}
.nw-hold-at{position:absolute;top:22px;right:22px}
.nw-chain b{font-weight:500;font-size:15.5px;color:var(--t0)}
.nw-chain span{font-size:14.5px;color:var(--t2)}
.nw-after{margin-top:6px;padding-top:14px;border-top:1px solid var(--ln2);font-size:14.5px;color:var(--t2)}
.nw-strip{display:grid;grid-template-columns:minmax(0,1fr);gap:16px 40px;align-items:center;margin-top:20px;padding:24px 26px;border:1px solid var(--ln2);border-radius:14px;background:var(--panel)}
.nw-strip h3{font-size:19px;letter-spacing:-.015em;color:var(--t0)}
.nw-strip p{margin-top:8px;font-size:15px;color:var(--t2)}
.nw-strip .nw-state{margin:0;padding:0}

/* ---- access: the break-glass steps */
.nw-steps{position:relative;list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.nw-steps li:not(:last-child)::after{content:"";position:absolute;left:52px;right:-10px;top:21px;height:1px;background:linear-gradient(90deg,rgba(127,156,196,.5),rgba(230,238,250,.35))}
.nw-steps li{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0}
.nw-step-n{display:grid;place-items:center;width:42px;height:42px;box-sizing:border-box;border:1px solid var(--nw-earth);border-radius:50%;background:var(--bg);font:500 13px/1 var(--mono);color:var(--nw-limb);margin-bottom:8px}
.nw-steps li:nth-child(4) .nw-step-n{border-style:dashed}
.nw-steps h3{font-size:17px;color:var(--t0)}
.nw-steps li p:not([class]){font-size:14.5px;color:var(--t2)}

/* ---- detection: what happens to a flagged SBC */
.nw-flow{margin:0 0 20px;padding:22px 24px 24px;border:1px solid var(--ln2);border-radius:14px;background:var(--panel)}
.nw-flow ol{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.nw-flow li{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:16px 16px 18px;border:1px solid var(--ln3);border-radius:10px;background:var(--panel2)}
.nw-flow li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:26px;border-left:7px solid var(--nw-earth);border-top:4px solid transparent;border-bottom:4px solid transparent}
.nw-flow li.q{border-style:dashed;border-color:rgba(127,156,196,.6)}
.nw-flow li.p{border-color:rgba(230,238,250,.5);background:linear-gradient(180deg,rgba(207,220,239,.07),var(--panel2))}
.nw-flow b{font-weight:500;font-size:15px;color:var(--t0)}
/* the watchers (watch.js): the machines on their orbit above the flow; the card for the step under way lights */
.nw-flow{position:relative}
.nw-flow .nw-hold-at{top:13px;right:16px}
.nw-watch-art{height:clamp(150px,14vw,190px);margin-top:12px}
.nw-flow li{transition:border-color .45s,box-shadow .45s}
.nw-flow li.is-at{border-color:rgba(230,238,250,.75);box-shadow:0 0 0 1px rgba(230,238,250,.1),0 0 24px rgba(207,220,239,.07)}
.nw-flow span{font-size:13.5px;line-height:1.5;color:var(--t2)}
.nw-grid-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--ln2)}
.nw-grid-list li{padding:20px 0;border-bottom:1px solid var(--ln1)}
.nw-grid-list h3{font-size:17px;color:var(--t0)}
.nw-grid-list p{margin-top:6px;font-size:15px;color:var(--t2)}

/* ---- emergency first */
.nw-sos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 56px;align-items:center;padding:40px;border:1px solid var(--ln2);border-radius:18px;background:radial-gradient(80% 120% at 0% 50%,rgba(207,220,239,.06),transparent 60%),var(--panel)}
.nw-sos-art svg{display:block;width:100%;height:auto}
.nw-sos-art .rings path{fill:none;stroke:var(--nw-earth);stroke-opacity:.42}
.nw-sos-art .rings path:first-child{stroke:var(--nw-limb);stroke-opacity:.5}
.nw-sos-art .core{fill:rgba(207,220,239,.12);stroke:var(--nw-limb);stroke-width:1.5}
.nw-sos-art .route{stroke:var(--nw-limb);stroke-width:2;stroke-opacity:.35}
/* the queue held at the checks, the gates, and the emergency call past them (sos.js moves them) */
.nw-sos{position:relative}
.nw-sos > .nw-hold-at{top:16px;right:16px}
.nw-sos-art .pulse{fill:none;stroke:var(--nw-limb);stroke-width:1.5}
.nw-sos-art .gates path{fill:none;stroke:var(--nw-limb);stroke-width:2.4;stroke-linecap:round}
.nw-sos-art .queue circle{fill:#0e131b;stroke:var(--nw-earth);stroke-width:1.6}
.nw-sos-art .halo{fill:rgba(230,238,250,.16)}
.nw-sos-art .call{fill:var(--nw-limb);filter:drop-shadow(0 0 5px rgba(230,238,250,.8))}
.nw-sos-art text.big{font:600 104px/1 var(--sans);letter-spacing:-.04em;fill:var(--nw-limb)}
.nw-sos-art text.small{font:500 22px/1 var(--mono);letter-spacing:.14em;fill:#cfdcef}
.nw-sos h2{font-size:clamp(30px,3.4vw,44px);line-height:1.06;letter-spacing:-.03em;color:var(--t0)}
.nw-sos-lead{margin-top:16px;font-size:22px;line-height:1.35;letter-spacing:-.01em;color:#cfdcef}
.nw-sos p:not([class]){margin-top:14px;font-size:16px;color:var(--t2)}
.nw-sos .nw-state{margin-top:18px}

/* ---- identity (sign.js): other networks, the edge and the tenants, each tenant with a key of its own */
.nw-sign{display:none;margin:0 0 20px}
.nw-js .nw-sign{display:block}
.nw-sign-key{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nw-earth)}
.nw-sign-key span:first-child{justify-self:start}
.nw-sign-key span:last-child{justify-self:end;color:#cfdcef}
.nw-sign-art{height:clamp(120px,11vw,150px)}

/* ---- customer data */
.nw-where-list{margin:0;display:flex;flex-direction:column}
.nw-where-list div{display:grid;grid-template-columns:128px minmax(0,1fr);gap:4px 16px;padding:12px 0;border-bottom:1px solid var(--ln1)}
.nw-where-list div:first-child{padding-top:0}
.nw-where-list div:last-child{border-bottom:0;padding-bottom:0}
.nw-where-list dt{font:500 11.5px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--nw-earth)}
.nw-where-list dd{margin:0;font-size:15px;color:var(--val)}
.nw-where-list dd .nw-st{margin-left:6px}

/* ---- our own ASN and IP space (planned: dashed rings, no fill) */
.nw-asn{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px 64px;align-items:center;padding:40px;border:1px dashed rgba(127,156,196,.4);border-radius:18px}
.nw-asn-art svg{display:block;width:100%;max-width:340px;height:auto;margin-inline:auto}
.nw-asn-art .rings circle{fill:none;stroke:var(--nw-earth);stroke-opacity:.55;stroke-dasharray:3 9}
.nw-asn-art .core{fill:none;stroke:var(--nw-limb);stroke-opacity:.7;stroke-dasharray:5 6}
.nw-asn-art text{font:500 30px/1 var(--sans);letter-spacing:.02em;fill:var(--nw-limb);text-anchor:middle}
.nw-asn-art text.sub{font:500 10px/1 var(--mono);letter-spacing:.14em;fill:var(--nw-earth);text-transform:uppercase}
.nw-asn h2{margin-top:14px;font-size:clamp(30px,3.4vw,44px);line-height:1.06;letter-spacing:-.03em;color:var(--t0)}
.nw-asn p:not([class]){margin-top:14px;font-size:16px;color:var(--t2);max-width:620px}
.nw-state.top{margin:0;padding:0}

/* ---- live today (the only green on the page) */
.nw-live{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.nw-live div{display:flex;flex-direction:column;gap:12px;padding:22px 20px;border:1px solid var(--ln2);border-radius:12px;background:var(--panel)}
.nw-live dt{display:flex;flex-direction:column;align-items:flex-start;gap:14px;font-size:19px;font-weight:500;letter-spacing:-.01em;color:var(--t0)}
.nw-live dd{margin:0;font-size:14.5px;color:var(--t2)}

/* ---- status table */
.nw-table-wrap{border:1px solid var(--ln2);border-radius:14px;overflow:hidden;background:var(--panel)}
.nw-table{width:100%;border-collapse:collapse;font-size:15px}
.nw-table th,.nw-table td{padding:14px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--ln1)}
.nw-table tbody tr:last-child th,.nw-table tbody tr:last-child td{border-bottom:0}
.nw-table thead th{padding-block:12px;font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--nw-earth);background:var(--panel2);border-bottom:1px solid var(--ln2)}
.nw-table tbody th{width:40%;font-weight:500;color:var(--t1)}
.nw-table td{color:var(--nw-muted);font-size:14px}
.nw-table td .nw-st{min-width:152px;margin-right:16px}
.nw-table td .nw-st + span{display:inline-block;max-width:calc(100% - 172px);vertical-align:top;padding-top:2px}
@media (max-width:760px){.nw-table td .nw-st{min-width:0;margin-right:0}.nw-table td .nw-st + span{display:block;max-width:none;margin-top:8px;padding-top:0}}

/* ---- contact */
.nw-closing{margin-top:112px;background:linear-gradient(var(--ln2),var(--ln2)) top center/calc(100% - 2 * var(--gutter)) 1px no-repeat}
.nw-back{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--t2)}

/* ---- the motion figures (network.js and its figures in /assets/pages/network/). Each canvas is decorative and shown
   only once the script has set html.nw-js; under reduced motion it holds one still frame. One "Pause motion" state
   for the page, shown on every figure's round button (hidden without the script and under reduced motion). */
.nw-art{display:none;position:relative}
.nw-js .nw-art{display:block}
.nw-art canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(180deg,transparent,#000 16%,#000 84%,transparent)}
.nw-fig{position:relative}
.nw-fig-top{display:flex;align-items:center;gap:16px;margin:0 0 12px}
.nw-fig-top > [aria-hidden]{flex:1;min-width:0;margin:0}
.nw-hold{flex:none;display:grid;place-items:center;width:32px;height:32px;padding:0;box-sizing:border-box;border:1px solid var(--ln3);border-radius:50%;background:rgba(7,10,15,.72);color:var(--t2);cursor:pointer;transition:color .2s,border-color .2s}
.nw-hold::before{content:"";width:8px;height:9px;background:linear-gradient(90deg,currentColor 3px,transparent 3px,transparent 5px,currentColor 5px)}
.nw-held .nw-hold::before{margin-left:2px;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%)}
.nw-hold:hover{color:var(--t0);border-color:var(--nw-earth)}
.nw-hold:focus-visible{border-radius:50%}
.nw-hold[hidden]{display:none}

/* the five rings: the call's path above the cards; the ring it has just reached lights its card */
.nw-orbit-art{height:clamp(120px,12vw,164px);margin:0 0 14px}
.nw-ring::before{transition:border-color .45s}
.nw-ring{transition:box-shadow .45s}
.nw-ring.is-hit{--rc:rgba(230,238,250,.85);box-shadow:inset 0 2px 0 rgba(230,238,250,.5)}
.nw-ring.is-hit .nw-ring-id{color:var(--nw-limb)}

/* ---- motion: paused off screen or in a hidden tab (network.js), frozen on a still frame for reduced motion */
.nw-paused,.nw-paused *,.nw-paused *::before,.nw-paused *::after{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  .nw-term,.nw-dot{animation:none}
}

@media (max-width:1100px){
  .nw-axis{display:none}
  .nw-js .nw-axis{display:flex}
  .nw-ring.is-hit{box-shadow:none}
  .nw-ring.is-hit::after{box-shadow:0 0 10px rgba(230,238,250,.7)}
  .nw-rings{grid-template-columns:1fr;background:linear-gradient(180deg,#0b1017,#080b11)}
  .nw-ring{padding:22px 22px 22px 70px;border-top:1px solid var(--ln2)}
  .nw-ring:first-child{border-top:0}
  .nw-ring::before{top:18px;bottom:auto;left:20px;width:30px;height:30px;border:1px solid var(--rc);border-radius:50%;box-shadow:0 0 0 5px rgba(7,10,15,0)}
  .nw-ring::after{content:"";position:absolute;left:31px;top:29px;width:8px;height:8px;border-radius:50%;background:var(--rc)}
  .nw-steps{grid-template-columns:1fr;gap:16px}
  .nw-steps li:not(:last-child)::after{left:21px;right:auto;top:44px;bottom:-16px;width:1px;height:auto;background:linear-gradient(180deg,rgba(127,156,196,.5),rgba(230,238,250,.35))}
  .nw-steps li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:2px 16px;align-items:start}
  .nw-steps li .nw-step-n{grid-row:1 / span 2;margin:0}
  .nw-flow ol{grid-template-columns:1fr;gap:12px}
  .nw-flow li:not(:last-child)::after{right:auto;left:22px;top:auto;bottom:-10px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid var(--nw-earth);border-bottom:0}
  .nw-live{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .nw-three,.nw-two,.nw-sos,.nw-asn,.nw-strip,.nw-grid-list{grid-template-columns:1fr}
  .nw-where-in{grid-template-columns:1fr}
  .nw-legend{grid-column:auto}
  .nw-sos,.nw-asn{padding:28px 24px}
  .nw-sos-art{max-width:460px;margin-top:22px}
  .nw-asn-art svg{max-width:240px;margin-inline:0}
  .nw-scrim{background:
    linear-gradient(180deg,rgba(7,10,15,.62) 0%,rgba(7,10,15,.8) 22%,rgba(7,10,15,.78) 58%,rgba(7,10,15,.3) 80%,rgba(7,10,15,.45) 92%,var(--bg) 100%)}
}
@media (max-width:560px){
  .nw-hero{padding-block:48px 44px}
  .nw-status-line{grid-template-columns:1fr;justify-items:start}
  .nw-hero .lede{font-size:17px}
  .nw-readout{margin-top:40px;gap:6px 8px;letter-spacing:.12em}
  .nw-axis,.nw-sign-key{gap:8px;font-size:10px;letter-spacing:.06em}
  .nw-fig-top{gap:10px}
  .nw-sky{transform:translateY(13%)}
  .nw-live{grid-template-columns:1fr}
  .nw-rule,.nw-panel{padding:22px 18px 20px}
  .nw-where-list div{grid-template-columns:1fr}
  .nw-table th,.nw-table td{padding:12px 14px}
  .nw-table tbody th{width:50%;font-size:14px}
  .nw-closing{margin-top:84px}
}
/* the cover's own "Pause motion" (the same control as each figure's; it holds the page), low on the right */
.nw-cover > .nw-hold-cover{top:auto;bottom:22px;right:max(16px,calc((100% - 1200px) / 2));z-index:2}
