/* Area pages: the 5 borough camera pages (/security-cameras-<borough>/) and 5 NJ city
   pages (/security-installation-<city>-nj/). Loaded only by those pages, after
   cam-props.css (the shared camera-page layer) and with cam-props.js.
   Same rules as cam-props.css: scoped under main.cam; animations use only transform,
   opacity, stroke-dashoffset and offset-distance; a shape whose fill or stroke changes
   with the state comes as one copy per state (.msv, faded with .ms-off); a colour pulse
   is an opacity pulse. Page code prefixes: .bk- .qn- .bx- .mn- .si- (boroughs),
   .jc- .nw- .hb- .by- .fl- (NJ). */
.cam .q{margin:0;font-size:16px;line-height:1.65;color:#dfe6f2}
.cam .rv{gap:16px}
.cam .stars{color:#f5c46b;letter-spacing:3px;font-size:15px}
.cam .hoods{display:flex;flex-direction:column;gap:14px;padding:22px 24px;margin-bottom:28px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:rgba(9,14,24,.6)}
.cam .hoods ul{margin:0;padding:0;list-style:none;columns:4 180px;column-gap:28px}
.cam .hoods li{font-size:14.5px;line-height:1.9;color:#c9d2e0;break-inside:avoid}
.cam .bx-map{display:flex;flex-wrap:wrap;border-bottom:1px solid rgba(120,170,255,.14)}
.cam .bx-mc{flex:1 1 300px;min-width:0;position:relative;background:#03060b}
.cam .bx-mc svg{display:block;width:100%;height:auto}
.cam .bx-leg{flex:1 1 230px;min-width:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-left:1px solid rgba(120,170,255,.14);background:linear-gradient(180deg,rgba(13,22,40,.9),rgba(7,11,20,.9))}
.cam .bx-leg .t{font-size:19px}
.cam .bx-leg svg{display:block;width:100%;height:auto;border:1px solid rgba(120,170,255,.12);border-radius:3px;background:#04070d}
.cam .bx-rows{display:flex;flex-direction:column}
.cam .bx-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-top:1px dashed rgba(120,170,255,.16);font-size:13px;line-height:1.35;color:#c9d2e0}
.cam .bx-row b{flex:none;font:600 11px var(--mono);letter-spacing:.08em;color:#8bbcff}
.cam .bx-cnt{display:flex;align-items:baseline;gap:10px;padding-top:8px;border-top:1px solid rgba(120,170,255,.22)}
.cam .bx-cnt b{font:800 26px/1 var(--sans);letter-spacing:-.02em;color:#e8edf5}
.cam .bx-hoods{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 18px}
.cam .bx-hoods .perm{min-height:26px;font-size:10.5px}
.cam .bx-hl{fill:rgba(77,158,255,.3);stroke:#8bbcff;stroke-width:.9;animation:bxhl 2.6s ease-in-out infinite}
@keyframes bxhl{50%{opacity:.68}}
.cam .bx-glare{transform-box:fill-box;transform-origin:center;animation:bxgl 2.4s ease-in-out infinite}
@keyframes bxgl{50%{transform:scale(1.12);opacity:.85}}
.cam .bx-px{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}
.cam .bx-ctl{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
@media (max-width:600px){.cam .bx-leg{border-left:0;border-top:1px solid rgba(120,170,255,.14)}}
.cam .bx-fv{display:grid;grid-template-columns:minmax(0,544fr) minmax(0,352fr);align-items:center;gap:0 8px;padding:4px 8px 4px 0;background:#04070d;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .bx-fv svg{display:block;width:100%;height:auto}
@media (max-width:700px){.cam .bx-fv{grid-template-columns:minmax(0,1fr);padding:0}}
.cam .bk-map{display:flex;flex-wrap:wrap;border-bottom:1px solid rgba(120,170,255,.14)}
.cam .bk-mc{flex:1 1 300px;min-width:0;position:relative;background:#03060b}
.cam .bk-mc svg{display:block;width:100%;height:auto}
.cam .bk-leg{flex:1 1 230px;min-width:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-left:1px solid rgba(120,170,255,.14);background:linear-gradient(180deg,rgba(13,22,40,.9),rgba(7,11,20,.9))}
.cam .bk-leg .t{font-size:19px}
.cam .bk-leg svg{display:block;width:100%;height:auto;border:1px solid rgba(120,170,255,.12);border-radius:3px;background:#04070d}
.cam .bk-rows{display:flex;flex-direction:column}
.cam .bk-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-top:1px dashed rgba(120,170,255,.16);font-size:13px;line-height:1.35;color:#c9d2e0}
.cam .bk-row b{flex:none;font:600 11px var(--mono);letter-spacing:.08em;color:#8bbcff}
.cam .bk-cnt{display:flex;align-items:baseline;gap:10px;padding-top:8px;border-top:1px solid rgba(120,170,255,.22)}
.cam .bk-cnt b{font:800 26px/1 var(--sans);letter-spacing:-.02em;color:#e8edf5}
.cam .bk-hoods{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 18px}
.cam .bk-hoods .perm{min-height:26px;font-size:10.5px}
.cam .bk-hl{fill:rgba(77,158,255,.3);stroke:#8bbcff;stroke-width:.9;animation:bkhl 2.6s ease-in-out infinite}
@keyframes bkhl{50%{opacity:.68}}
.cam .bk-glare{transform-box:fill-box;transform-origin:center;animation:bkgl 2.4s ease-in-out infinite}
@keyframes bkgl{50%{transform:scale(1.12);opacity:.85}}
.cam .bk-px{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}
.cam .bk-ctl{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
@media (max-width:600px){.cam .bk-leg{border-left:0;border-top:1px solid rgba(120,170,255,.14)}}
.cam .bk-fv{display:grid;grid-template-columns:minmax(0,544fr) minmax(0,352fr);align-items:center;gap:0 8px;padding:4px 8px 4px 0;background:#04070d;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .bk-fv svg{display:block;width:100%;height:auto}
@media (max-width:700px){.cam .bk-fv{grid-template-columns:minmax(0,1fr);padding:0}}
.cam .mn-hero{display:flex;flex-wrap:wrap;align-items:stretch}
.cam .mn-map{flex:1 1 300px;min-width:0;display:flex;justify-content:center;align-items:center;background:#04070d}
.cam .mn-map svg{display:block;width:100%;max-width:440px;height:auto}
.cam .mn-side{flex:0 1 232px;min-width:0;padding:18px 18px 16px;border-left:1px solid rgba(120,170,255,.14);background:linear-gradient(180deg,rgba(9,14,24,.9),rgba(5,8,16,.9))}
@media (max-width:640px){.cam .mn-side{flex-basis:100%;border-left:0;border-top:1px solid rgba(120,170,255,.14)}}
.cam .mn-side{display:grid}
.cam .mn-lg{grid-area:1/1;display:flex;flex-direction:column;gap:10px;animation:mn-in .5s ease both}
.cam .mn-lg.off{visibility:hidden;animation:none;opacity:0}
@keyframes mn-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cam .mn-lg .mn-ico{width:100%;height:40px;border:1px solid rgba(120,170,255,.14);border-radius:3px;background:rgba(4,7,13,.7)}
.cam .mn-ttl{font-size:16px;font-weight:800;letter-spacing:-.015em;line-height:1.2;color:#e8edf5}
.cam .mn-cnt{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:8px 0;border-top:1px solid rgba(120,170,255,.12);border-bottom:1px solid rgba(120,170,255,.12)}
.cam .mn-big{font:800 30px/1 var(--sans);letter-spacing:-.03em;color:var(--a)}
.cam .mn-u{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#a3adbd}
.cam .mn-pl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cam .mn-pl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;font-size:13px;line-height:1.35;color:#c9d2e0}
.cam .mn-pl i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--a);border-radius:50%;font:700 9.5px var(--mono);font-style:normal;color:var(--a)}
.cam .mn-chips{display:flex;flex-wrap:wrap;gap:5px}
.cam .mn-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--a);border-radius:999px;font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#e8edf5;background:rgba(5,8,16,.6)}
.cam .mn-zl{font:500 9.5px var(--mono);letter-spacing:.08em;color:#7d92b3;line-height:1.5}
.cam .mn-ml{font:700 8.6px var(--mono);letter-spacing:.07em;paint-order:stroke;stroke:#04070d;stroke-width:3px;stroke-linejoin:round}
.cam .mn-ms{font:500 6.6px var(--mono);letter-spacing:.1em;fill:#9fb0c8;paint-order:stroke;stroke:#04070d;stroke-width:2.4px;stroke-linejoin:round}
.cam .mn-rv{font:500 6px var(--mono);letter-spacing:.32em;fill:rgba(139,188,255,.42)}
.cam .mn-gt{font:500 5.6px var(--mono);letter-spacing:.08em;fill:rgba(125,146,179,.7)}
.cam .mn-zh{animation:mn-zp 2.8s ease-in-out infinite}
@keyframes mn-zp{50%{opacity:.5}}
@keyframes mn-sw{0%{transform:translateY(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateY(340px);opacity:0}}
.cam .mn-sweep{animation:mn-sw 7s linear infinite}
.cam .mn-pd{transform-box:fill-box;transform-origin:center;animation:cam-ping 2.2s ease-out infinite}
.cam .mn-fx{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}
.cam .mn-fx>div{min-width:0}
.cam .mn-fx .mn-bd{flex:5 1 460px;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:#04070d}
.cam .mn-fx .mn-mon{flex:3 1 280px;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:#04070d}
.cam .mn-fx svg{display:block;width:100%;height:auto}
.cam .mn-t1{font:700 12px var(--mono);letter-spacing:.07em;paint-order:stroke;stroke:#04070d;stroke-width:4px;stroke-linejoin:round}
.cam .mn-t2{font:500 10.5px var(--mono);letter-spacing:.08em;fill:#8a9bb5}
.cam .mn-vt{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px}
.cam .mn-pane{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:rgba(5,8,16,.6);transition:opacity .3s}
.cam .mn-pane.fail.on{border-color:rgba(255,107,107,.55);background:rgba(255,107,107,.06)}
.cam .mn-pane.fix.on{border-color:rgba(74,222,128,.55);background:rgba(74,222,128,.06)}
.cam .mn-pane.dim{opacity:.5}
.cam .mn-pane .n{display:flex;align-items:center;gap:8px}
.cam .mn-pane.fail .n{color:#ff8a8a}
.cam .mn-pane.fix .n{color:#8bf0b0}
.cam .mn-glare{transform-box:fill-box;transform-origin:center;animation:mn-gl 2.6s ease-in-out infinite}
@keyframes mn-gl{50%{transform:scale(1.18);opacity:.75}}
@keyframes mn-sig{0%{opacity:0;transform:scale(.4)}40%{opacity:.9}100%{opacity:0;transform:scale(1.4)}}
.cam .mn-sig{transform-box:fill-box;transform-origin:center bottom;animation:mn-sig 2.4s ease-out infinite}
.cam .mn-noise{animation:cam-blink .18s step-end infinite}
.cam .mn-pf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px}
.cam .mn-pf .c{padding:18px;gap:8px}
.cam .mn-pf svg{width:100%;height:54px}
@keyframes mn-lift{0%,15%{transform:translateY(0)}45%,60%{transform:translateY(-60px)}90%,100%{transform:translateY(0)}}
.cam .mn-lift{animation:mn-lift 5s ease-in-out infinite}
@media (max-width:640px){.cam .mn-fcard{padding:14px !important}}
@media (max-width:640px){.cam .mn-bd .mn-t1{font-size:14px}}
@media (max-width:640px){.cam .mn-bd .mn-t2{font-size:12px}}
@media (max-width:640px){.cam .mn-pf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cam .mn-pf .c{padding:14px}}
.cam .qn-map{display:flex;flex-wrap:wrap;border-bottom:1px solid rgba(120,170,255,.14)}
.cam .qn-mc{flex:1 1 300px;min-width:0;position:relative;background:#03060b}
.cam .qn-mc svg{display:block;width:100%;height:auto}
.cam .qn-leg{flex:1 1 230px;min-width:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-left:1px solid rgba(120,170,255,.14);background:linear-gradient(180deg,rgba(13,22,40,.9),rgba(7,11,20,.9))}
.cam .qn-leg .t{font-size:19px}
.cam .qn-leg svg{display:block;width:100%;height:auto;border:1px solid rgba(120,170,255,.12);border-radius:3px;background:#04070d}
.cam .qn-rows{display:flex;flex-direction:column}
.cam .qn-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-top:1px dashed rgba(120,170,255,.16);font-size:13px;line-height:1.35;color:#c9d2e0}
.cam .qn-row b{flex:none;font:600 11px var(--mono);letter-spacing:.08em;color:#8bbcff}
.cam .qn-cnt{display:flex;align-items:baseline;gap:10px;padding-top:8px;border-top:1px solid rgba(120,170,255,.22)}
.cam .qn-cnt b{font:800 26px/1 var(--sans);letter-spacing:-.02em;color:#e8edf5}
.cam .qn-hoods{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 18px}
.cam .qn-hoods .perm{min-height:26px;font-size:10.5px}
.cam .qn-hl{fill:rgba(77,158,255,.3);stroke:#8bbcff;stroke-width:.9;animation:qnhl 2.6s ease-in-out infinite}
@keyframes qnhl{50%{opacity:.68}}
.cam .qn-glare{transform-box:fill-box;transform-origin:center;animation:qngl 2.4s ease-in-out infinite}
@keyframes qngl{50%{transform:scale(1.12);opacity:.85}}
.cam .qn-px{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px}
.cam .qn-ctl{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
@media (max-width:600px){.cam .qn-leg{border-left:0;border-top:1px solid rgba(120,170,255,.14)}}
.cam .qn-fv{display:grid;grid-template-columns:minmax(0,544fr) minmax(0,352fr);align-items:center;gap:0 8px;padding:4px 8px 4px 0;background:#04070d;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .qn-fv svg{display:block;width:100%;height:auto}
@media (max-width:700px){.cam .qn-fv{grid-template-columns:minmax(0,1fr);padding:0}}
.cam .si-hero{display:flex;flex-wrap:wrap;align-items:stretch}
.cam .si-map{flex:1 1 300px;min-width:0;display:flex;justify-content:center;align-items:center;background:#04070d}
.cam .si-map svg{display:block;width:100%;max-width:440px;height:auto}
.cam .si-side{flex:0 1 232px;min-width:0;padding:18px 18px 16px;border-left:1px solid rgba(120,170,255,.14);background:linear-gradient(180deg,rgba(9,14,24,.9),rgba(5,8,16,.9))}
@media (max-width:640px){.cam .si-side{flex-basis:100%;border-left:0;border-top:1px solid rgba(120,170,255,.14)}}
.cam .si-side{display:grid}
.cam .si-lg{grid-area:1/1;display:flex;flex-direction:column;gap:10px;animation:si-in .5s ease both}
.cam .si-lg.off{visibility:hidden;animation:none;opacity:0}
@keyframes si-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cam .si-lg .si-ico{width:100%;height:40px;border:1px solid rgba(120,170,255,.14);border-radius:3px;background:rgba(4,7,13,.7)}
.cam .si-ttl{font-size:16px;font-weight:800;letter-spacing:-.015em;line-height:1.2;color:#e8edf5}
.cam .si-cnt{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:8px 0;border-top:1px solid rgba(120,170,255,.12);border-bottom:1px solid rgba(120,170,255,.12)}
.cam .si-big{font:800 30px/1 var(--sans);letter-spacing:-.03em;color:var(--a)}
.cam .si-u{font:600 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#a3adbd}
.cam .si-pl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cam .si-pl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;font-size:13px;line-height:1.35;color:#c9d2e0}
.cam .si-pl i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--a);border-radius:50%;font:700 9.5px var(--mono);font-style:normal;color:var(--a)}
.cam .si-chips{display:flex;flex-wrap:wrap;gap:5px}
.cam .si-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--a);border-radius:999px;font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#e8edf5;background:rgba(5,8,16,.6)}
.cam .si-zl{font:500 9.5px var(--mono);letter-spacing:.08em;color:#7d92b3;line-height:1.5}
.cam .si-ml{font:700 8.6px var(--mono);letter-spacing:.07em;paint-order:stroke;stroke:#04070d;stroke-width:3px;stroke-linejoin:round}
.cam .si-ms{font:500 6.6px var(--mono);letter-spacing:.1em;fill:#9fb0c8;paint-order:stroke;stroke:#04070d;stroke-width:2.4px;stroke-linejoin:round}
.cam .si-rv{font:500 6px var(--mono);letter-spacing:.32em;fill:rgba(139,188,255,.42)}
.cam .si-gt{font:500 5.6px var(--mono);letter-spacing:.08em;fill:rgba(125,146,179,.7)}
.cam .si-zh{animation:si-zp 2.8s ease-in-out infinite}
@keyframes si-zp{50%{opacity:.5}}
@keyframes si-sw{0%{transform:translateY(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateY(340px);opacity:0}}
.cam .si-sweep{animation:si-sw 7s linear infinite}
.cam .si-pd{transform-box:fill-box;transform-origin:center;animation:cam-ping 2.2s ease-out infinite}
.cam .si-fx{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}
.cam .si-fx>div{min-width:0}
.cam .si-fx .si-bd{flex:5 1 460px;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:#04070d}
.cam .si-fx .si-mon{flex:3 1 280px;border:1px solid rgba(120,170,255,.16);border-radius:4px;background:#04070d}
.cam .si-fx svg{display:block;width:100%;height:auto}
.cam .si-t1{font:700 12px var(--mono);letter-spacing:.07em;paint-order:stroke;stroke:#04070d;stroke-width:4px;stroke-linejoin:round}
.cam .si-t2{font:500 10.5px var(--mono);letter-spacing:.08em;fill:#8a9bb5}
.cam .si-vt{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px}
.cam .si-pane{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:rgba(5,8,16,.6);transition:opacity .3s}
.cam .si-pane.fail.on{border-color:rgba(255,107,107,.55);background:rgba(255,107,107,.06)}
.cam .si-pane.fix.on{border-color:rgba(74,222,128,.55);background:rgba(74,222,128,.06)}
.cam .si-pane.dim{opacity:.5}
.cam .si-pane .n{display:flex;align-items:center;gap:8px}
.cam .si-pane.fail .n{color:#ff8a8a}
.cam .si-pane.fix .n{color:#8bf0b0}
.cam .si-glare{transform-box:fill-box;transform-origin:center;animation:si-gl 2.6s ease-in-out infinite}
@keyframes si-gl{50%{transform:scale(1.18);opacity:.75}}
@keyframes si-sig{0%{opacity:0;transform:scale(.4)}40%{opacity:.9}100%{opacity:0;transform:scale(1.4)}}
.cam .si-sig{transform-box:fill-box;transform-origin:center bottom;animation:si-sig 2.4s ease-out infinite}
.cam .si-noise{animation:cam-blink .18s step-end infinite}
.cam .si-pf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px}
.cam .si-pf .c{padding:18px;gap:8px}
.cam .si-pf svg{width:100%;height:54px}
@keyframes si-lift{0%,15%{transform:translateY(0)}45%,60%{transform:translateY(-60px)}90%,100%{transform:translateY(0)}}
.cam .si-lift{animation:si-lift 5s ease-in-out infinite}
@media (max-width:640px){.cam .si-fcard{padding:14px !important}}
@media (max-width:640px){.cam .si-bd .si-t1{font-size:14px}}
@media (max-width:640px){.cam .si-bd .si-t2{font-size:12px}}
@media (max-width:640px){.cam .si-pf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cam .si-pf .c{padding:14px}}
.cam .si-ml{font-size:10px}
.cam .si-ms{font-size:7.4px}
.cam .si-gt{font-size:6.4px}
.cam .si-rv{font-size:6.6px}
.cam .si-side{flex:0 1 214px}
.cam .si-lg .si-ico{height:34px}
.cam .si-chips{gap:4px}
.cam .si-chip{min-height:21px;padding:0 6px;font-size:9px;letter-spacing:.04em}
@media (max-width:640px){.cam .si-side{flex-basis:100%}}
.cam .by-hb{display:flex;flex-wrap:wrap}
.cam .by-map{flex:1 1 340px;min-width:0;display:flex;align-items:center;background:#04070d}
.cam .by-lg{flex:1 1 250px;min-width:0;display:grid;padding:16px 18px;box-shadow:-1px 0 0 rgba(120,170,255,.14),0 -1px 0 rgba(120,170,255,.14);background:rgba(9,14,24,.6)}
.cam .by-lgs{grid-area:1/1;display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.cam .by-lgs.on{opacity:1;visibility:visible}
.cam .by-lh{font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.25;color:#e8edf5;margin:2px 0 4px}
.cam .by-lr{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px dashed rgba(120,170,255,.14)}
.cam .by-lr.opt{opacity:.5}
.cam .by-li{display:inline-grid;place-items:center;width:26px;height:22px;border:1px solid;border-radius:3px;font:700 9.5px var(--mono);letter-spacing:.06em;background:rgba(5,8,16,.7)}
.cam .by-lt{display:flex;flex-direction:column;gap:2px;min-width:0}
.cam .by-ln{font-size:13px;font-weight:600;color:#e8edf5}
.cam .by-lw{font-size:12.5px;line-height:1.45;color:#a3adbd}
.cam .by-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 18px;border-top:1px solid rgba(120,170,255,.14)}
.cam .by-chip{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:0 11px;border:1px solid rgba(120,170,255,.2);border-radius:999px;font-size:12.5px;font-weight:500;color:#8a95a8;background:rgba(5,8,16,.5)}
.cam .by-chip i{width:6px;height:6px;border-radius:50%;background:#33415a}
.cam .by-chip.on{border-color:rgba(245,196,107,.55);color:#f7e6c4;background:rgba(245,196,107,.08)}
.cam .by-chip.on i{background:#f5c46b}
.cam .by-glow{opacity:0;transition:opacity .6s}
.cam .by-glow.on{opacity:1}
.cam .by-pin{fill:#4a5b7a}
.cam .by-pin.on{fill:#f5c46b}
.cam .by-ring{fill:none;stroke:#f5c46b;stroke-width:1.2;opacity:0}
.cam .by-ring.on{opacity:1;transform-box:fill-box;transform-origin:center;animation:cam-ping 2.2s ease-out infinite}
.cam .by-nl{font:700 12.5px var(--mono);letter-spacing:.08em;fill:#7d8fae;paint-order:stroke;stroke:#04070d;stroke-width:3px;stroke-linejoin:round}
.cam .by-nl.on{fill:#ffe2a8}
.cam .by-ld{fill:none;stroke:rgba(125,146,179,.45);stroke-width:1}
.cam .by-ld.on{stroke:#f5c46b}
.cam .by-st{fill:none;stroke:rgba(139,188,255,.38);stroke-width:1.6;stroke-dasharray:5 4}
.cam .by-st.on{stroke:#f5c46b;stroke-width:2.6;animation:cam-flow 1.6s linear infinite;stroke-dasharray:6 6}
.cam .by-sl{font:700 10.5px var(--mono);letter-spacing:.12em;fill:#6f81a0;paint-order:stroke;stroke:#04070d;stroke-width:3px}
.cam .by-sl.on{fill:#ffe2a8}
.cam .by-wl{font:500 10.5px var(--mono);letter-spacing:.2em;fill:#3f5578}
.cam .by-cl{font:500 10px var(--mono);letter-spacing:.16em;fill:#5d6f8d}
.cam .by-zp{font:600 9.5px var(--mono);letter-spacing:.12em;fill:#7d92b3}
.cam .by-fx{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:22px;align-items:start}
.cam .by-fd{min-width:0;display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:#04070d}
.cam .by-fp{display:grid;min-width:0}
.cam .by-pn{grid-area:1/1;display:flex;flex-direction:column;gap:12px;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.cam .by-pn.on{opacity:1;visibility:visible}
.cam .by-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.cam .by-ul li{position:relative;padding-left:16px;font-size:14.5px;line-height:1.55;color:#a3adbd}
.cam .by-ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:1px;background:#4d9eff}
.cam .by-ul b{color:#e8edf5;font-weight:600}
.cam .by-ly{opacity:.13;transition:opacity .45s}
.cam .by-ly.on{opacity:1}
.cam .by-ly text{opacity:0;transition:opacity .3s}
.cam .by-ly.on text{opacity:1}
.cam .by-cap{font:700 10px var(--mono);letter-spacing:.08em}
.cam .by-bn{font:600 9.5px var(--mono);letter-spacing:.12em;fill:#7d92b3}
@media (max-width:860px){.cam .by-fx{grid-template-columns:minmax(0,1fr)}}
.cam .by-fs{min-width:0}
.cam .by-sw{display:none}
@media (max-width:640px){.cam .by-fs{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px}}
@media (max-width:640px){.cam .by-fs svg{min-width:600px}}
@media (max-width:640px){.cam .by-sw{display:inline}}
.cam .fl-hb{display:flex;flex-wrap:wrap}
.cam .fl-map{flex:1 1 340px;min-width:0;display:flex;align-items:center;background:#04070d}
.cam .fl-lg{flex:1 1 250px;min-width:0;display:grid;padding:16px 18px;box-shadow:-1px 0 0 rgba(120,170,255,.14),0 -1px 0 rgba(120,170,255,.14);background:rgba(9,14,24,.6)}
.cam .fl-lgs{grid-area:1/1;display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.cam .fl-lgs.on{opacity:1;visibility:visible}
.cam .fl-lh{font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.25;color:#e8edf5;margin:2px 0 4px}
.cam .fl-lr{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px dashed rgba(120,170,255,.14)}
.cam .fl-lr.opt{opacity:.5}
.cam .fl-li{display:inline-grid;place-items:center;width:26px;height:22px;border:1px solid;border-radius:3px;font:700 9.5px var(--mono);letter-spacing:.06em;background:rgba(5,8,16,.7)}
.cam .fl-lt{display:flex;flex-direction:column;gap:2px;min-width:0}
.cam .fl-ln{font-size:13px;font-weight:600;color:#e8edf5}
.cam .fl-lw{font-size:12.5px;line-height:1.45;color:#a3adbd}
.cam .fl-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 18px;border-top:1px solid rgba(120,170,255,.14)}
.cam .fl-chip{display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:0 11px;border:1px solid rgba(120,170,255,.2);border-radius:999px;font-size:12.5px;font-weight:500;color:#8a95a8;background:rgba(5,8,16,.5)}
.cam .fl-chip i{width:6px;height:6px;border-radius:50%;background:#33415a}
.cam .fl-chip.on{border-color:rgba(245,196,107,.55);color:#f7e6c4;background:rgba(245,196,107,.08)}
.cam .fl-chip.on i{background:#f5c46b}
.cam .fl-glow{opacity:0;transition:opacity .6s}
.cam .fl-glow.on{opacity:1}
.cam .fl-pin{fill:#4a5b7a}
.cam .fl-pin.on{fill:#f5c46b}
.cam .fl-ring{fill:none;stroke:#f5c46b;stroke-width:1.2;opacity:0}
.cam .fl-ring.on{opacity:1;transform-box:fill-box;transform-origin:center;animation:cam-ping 2.2s ease-out infinite}
.cam .fl-nl{font:700 9.5px var(--mono);letter-spacing:.08em;fill:#7d8fae;paint-order:stroke;stroke:#04070d;stroke-width:2.5px;stroke-linejoin:round}
.cam .fl-nl.on{fill:#ffe2a8}
.cam .fl-ld{fill:none;stroke:rgba(125,146,179,.45);stroke-width:1}
.cam .fl-ld.on{stroke:#f5c46b}
.cam .fl-st{fill:none;stroke:rgba(139,188,255,.38);stroke-width:1.6;stroke-dasharray:5 4}
.cam .fl-st.on{stroke:#f5c46b;stroke-width:2.6;animation:cam-flow 1.6s linear infinite;stroke-dasharray:6 6}
.cam .fl-sl{font:700 8.5px var(--mono);letter-spacing:.12em;fill:#6f81a0;paint-order:stroke;stroke:#04070d;stroke-width:3px}
.cam .fl-sl.on{fill:#ffe2a8}
.cam .fl-wl{font:500 8.5px var(--mono);letter-spacing:.2em;fill:#3f5578}
.cam .fl-cl{font:500 8px var(--mono);letter-spacing:.16em;fill:#5d6f8d}
.cam .fl-zp{font:600 8px var(--mono);letter-spacing:.12em;fill:#7d92b3}
.cam .fl-fx{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:22px;align-items:start}
.cam .fl-fd{min-width:0;display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid rgba(120,170,255,.14);border-radius:4px;background:#04070d}
.cam .fl-fp{display:grid;min-width:0}
.cam .fl-pn{grid-area:1/1;display:flex;flex-direction:column;gap:12px;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.cam .fl-pn.on{opacity:1;visibility:visible}
.cam .fl-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.cam .fl-ul li{position:relative;padding-left:16px;font-size:14.5px;line-height:1.55;color:#a3adbd}
.cam .fl-ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:1px;background:#4d9eff}
.cam .fl-ul b{color:#e8edf5;font-weight:600}
.cam .fl-ly{opacity:.13;transition:opacity .45s}
.cam .fl-ly.on{opacity:1}
.cam .fl-ly text{opacity:0;transition:opacity .3s}
.cam .fl-ly.on text{opacity:1}
.cam .fl-cap{font:700 10px var(--mono);letter-spacing:.08em}
.cam .fl-bn{font:600 9.5px var(--mono);letter-spacing:.12em;fill:#7d92b3}
@media (max-width:860px){.cam .fl-fx{grid-template-columns:minmax(0,1fr)}}
.cam .fl-fs{min-width:0}
.cam .fl-sw{display:none}
@media (max-width:640px){.cam .fl-fs{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px}}
@media (max-width:640px){.cam .fl-fs svg{min-width:600px}}
@media (max-width:640px){.cam .fl-sw{display:inline}}
.cam .fl-pl{font:700 8.5px var(--mono);letter-spacing:.24em;fill:#6f81a0}
.cam .fl-pl.on{fill:#ffe2a8}
@keyframes flwalk{0%{transform:translateX(0)}100%{transform:translateX(64px)}}
.cam .fl-walk{animation:flwalk 5s ease-in-out infinite alternate}
@keyframes flcar{0%,15%{transform:translateX(36px)}70%,100%{transform:translateX(0)}}
.cam .fl-car{animation:flcar 4.6s ease-in-out infinite alternate}
.cam .hb-hero{display:flex;gap:18px;padding:16px 18px 14px;align-items:stretch}
.cam .hb-map{flex:0 0 auto;align-self:flex-start;width:300px;height:auto;display:block;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .hb-ctx{fill:#0e1728;stroke:rgba(120,170,255,.18);stroke-width:.5}
.cam .hb-ol{fill:none;stroke:#4d9eff;stroke-width:1.3;stroke-linejoin:round}
.cam .hb-z{fill:rgba(77,158,255,.03);stroke:rgba(120,170,255,.3);stroke-width:.6}
.cam .hb-z.on.s1{fill:rgba(77,158,255,.3);stroke:#8bbcff}
.cam .hb-z.on.s1:not(.ms-off){animation:hbp0 2.4s ease-in-out infinite}
.cam .hb-z.on.s0{fill:rgba(255,184,64,.42);stroke:#f5c46b}
.cam .hb-z.on.s0:not(.ms-off){animation:hbp1 2.4s ease-in-out infinite}
.cam .hb-z.on.s2{fill:rgba(74,222,128,.24);stroke:#4ade80}
.cam .hb-z.on.s2:not(.ms-off){animation:hbp2 2.4s ease-in-out infinite}
@keyframes hbp0{50%{opacity:.6}}
@keyframes hbp1{50%{opacity:.62}}
@keyframes hbp2{50%{opacity:.54}}
.cam .hb-ml{font:700 9.2px var(--mono);letter-spacing:.04em;paint-order:stroke;stroke:#04070d;stroke-width:2.6px;stroke-linejoin:round}
.cam .hb-cl{font:600 7.4px var(--mono);letter-spacing:.16em;fill:#3c5170}
.cam .hb-wl{font:500 6.6px var(--mono);letter-spacing:.3em;fill:#2c4266}
.cam .hb-legs{flex:1 1 0;min-width:0;display:grid;grid-template-rows:1fr auto;gap:10px}
.cam .hb-lp{grid-area:1/1;display:flex;flex-direction:column;gap:6px;transition:opacity .45s}
.cam .hb-lp.off{opacity:0;visibility:hidden}
.cam .hb-lt{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#e8edf5}
.cam .hb-ln{font-size:13.5px;line-height:1.45;color:#a3adbd}
.cam .hb-lz{font:600 10.5px var(--mono);letter-spacing:.1em;color:#7d92b3}
.cam .hb-rows{display:flex;flex-direction:column;margin-top:8px;border:1px solid rgba(120,170,255,.16);border-radius:3px;background:rgba(9,14,24,.7)}
.cam .hb-rh{display:block;padding:8px 10px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7d92b3}
.cam .hb-rows .hb-rh{border-bottom:1px solid rgba(120,170,255,.12)}
.cam .hb-row{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:8px;padding:7px 10px;border-bottom:1px solid rgba(120,170,255,.08)}
.cam .hb-row:last-child{border-bottom:0}
.cam .hb-row i,.cam .hb-key i{width:8px;height:8px;border-radius:50%;margin-top:4px;border:1.5px solid var(--hb,#4d9eff)}
.cam .hb-row.k i{background:var(--hb,#4d9eff)}
.cam .hb-row.o{opacity:.75}
.cam .hb-sv{font-size:13px;font-weight:700;color:#e8edf5}
.cam .hb-wh{grid-column:2;font-size:12.5px;line-height:1.4;color:#a3adbd}
.cam .hb-key{display:flex;gap:14px;font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7d92b3}
.cam .hb-key span{display:inline-flex;align-items:center;gap:6px}
.cam .hb-key i{margin:0;border-color:#8bbcff}
.cam .hb-key i.k{background:#8bbcff}
.cam .hb-chips{display:flex;flex-direction:column;gap:10px;padding:14px 18px 16px;border-top:1px solid rgba(120,170,255,.14)}
.cam .hb-cw{display:flex;flex-wrap:wrap;gap:6px}
.cam .hb-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(120,170,255,.18);border-radius:999px;font-size:12.5px;font-weight:600;color:#8a95a8}
.cam .hb-chip.on.s1{color:#fff;border-color:#4d9eff;background:rgba(29,123,255,.16)}
.cam .hb-chip.on.s0{color:#fff;border-color:#f5c46b;background:rgba(245,196,107,.12)}
.cam .hb-chip.on.s2{color:#fff;border-color:#4ade80;background:rgba(74,222,128,.1)}
.cam .hb-fw{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:24px;align-items:center}
.cam .hb-fl{font:600 9.5px var(--mono);letter-spacing:.1em;fill:#8bbcff}
.cam .hb-fs{font:500 7.5px var(--mono);letter-spacing:.12em;fill:#5d7396}
.cam .hb-stack{display:grid}
.cam .hb-pn{grid-area:1/1;display:flex;flex-direction:column;gap:10px;transition:opacity .4s}
.cam .hb-pn.off{opacity:0;visibility:hidden}
.cam .hb-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(120,170,255,.12)}
.cam .hb-ul li{padding:9px 0 9px 18px;position:relative;border-bottom:1px solid rgba(120,170,255,.12);font-size:14.5px;line-height:1.45;color:#c9d2e0}
.cam .hb-ul li::before{content:"";position:absolute;left:2px;top:16px;width:7px;height:7px;border:1.5px solid #4d9eff;transform:rotate(45deg)}
@media (max-width:900px){.cam .hb-fw{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.cam .hb-hero{flex-direction:column;padding:12px}}
@media (max-width:640px){.cam .hb-map{width:100%;max-width:340px;align-self:center}}
@media (max-width:640px){.cam .hb-chips{padding:12px}}
.cam .hb-xx{font:600 7px var(--mono);letter-spacing:.24em;fill:#334a6e}
.cam .hb-zl{font:700 8.6px var(--mono);letter-spacing:.08em;fill:#6f84a6;paint-order:stroke;stroke:#04070d;stroke-width:2.6px;stroke-linejoin:round}
.cam .hb-zl.on.s0{fill:#ffe2a8}
.cam .hb-zl.on.s1{fill:#cfe0ff}
.cam .hb-zl.on.s2{fill:#b8f5cf}
.cam .hb-wash{fill:none;stroke:rgba(74,222,128,0);stroke-width:8;stroke-linecap:round}
.cam .hb-wash.on{stroke:rgba(74,222,128,.5)}
.cam .hb-wash.on:not(.ms-off){animation:hbw 2.4s ease-in-out infinite}
@keyframes hbw{50%{opacity:.56}}
.cam .hb-ap{font:500 6.4px var(--mono);letter-spacing:.12em;fill:#4d6487}
.cam .jc-hero{display:flex;gap:18px;padding:16px 18px 14px;align-items:stretch}
.cam .jc-map{flex:0 0 auto;align-self:flex-start;width:290px;height:auto;display:block;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .jc-ctx{fill:#0e1728;stroke:rgba(120,170,255,.18);stroke-width:.5}
.cam .jc-ol{fill:none;stroke:#4d9eff;stroke-width:1.3;stroke-linejoin:round}
.cam .jc-z{fill:rgba(77,158,255,.03);stroke:rgba(120,170,255,.3);stroke-width:.6}
.cam .jc-z.on.s0{fill:rgba(77,158,255,.3);stroke:#8bbcff}
.cam .jc-z.on.s0:not(.ms-off){animation:jcp0 2.4s ease-in-out infinite}
.cam .jc-z.on.s1{fill:rgba(255,184,64,.42);stroke:#f5c46b}
.cam .jc-z.on.s1:not(.ms-off){animation:jcp1 2.4s ease-in-out infinite}
.cam .jc-z.on.s2{fill:rgba(74,222,128,.24);stroke:#4ade80}
.cam .jc-z.on.s2:not(.ms-off){animation:jcp2 2.4s ease-in-out infinite}
@keyframes jcp0{50%{opacity:.6}}
@keyframes jcp1{50%{opacity:.62}}
@keyframes jcp2{50%{opacity:.54}}
.cam .jc-ml{font:700 8.2px var(--mono);letter-spacing:.04em;paint-order:stroke;stroke:#04070d;stroke-width:2.6px;stroke-linejoin:round}
.cam .jc-cl{font:600 6.8px var(--mono);letter-spacing:.16em;fill:#3c5170}
.cam .jc-wl{font:500 6.6px var(--mono);letter-spacing:.3em;fill:#2c4266}
.cam .jc-legs{flex:1 1 0;min-width:0;display:grid;grid-template-rows:1fr auto;gap:10px}
.cam .jc-lp{grid-area:1/1;display:flex;flex-direction:column;gap:6px;transition:opacity .45s}
.cam .jc-lp.off{opacity:0;visibility:hidden}
.cam .jc-lt{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#e8edf5}
.cam .jc-ln{font-size:13.5px;line-height:1.45;color:#a3adbd}
.cam .jc-lz{font:600 10.5px var(--mono);letter-spacing:.1em;color:#7d92b3}
.cam .jc-rows{display:flex;flex-direction:column;margin-top:8px;border:1px solid rgba(120,170,255,.16);border-radius:3px;background:rgba(9,14,24,.7)}
.cam .jc-rh{display:block;padding:8px 10px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7d92b3}
.cam .jc-rows .jc-rh{border-bottom:1px solid rgba(120,170,255,.12)}
.cam .jc-row{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:8px;padding:7px 10px;border-bottom:1px solid rgba(120,170,255,.08)}
.cam .jc-row:last-child{border-bottom:0}
.cam .jc-row i,.cam .jc-key i{width:8px;height:8px;border-radius:50%;margin-top:4px;border:1.5px solid var(--jc,#4d9eff)}
.cam .jc-row.k i{background:var(--jc,#4d9eff)}
.cam .jc-row.o{opacity:.75}
.cam .jc-sv{font-size:13px;font-weight:700;color:#e8edf5}
.cam .jc-wh{grid-column:2;font-size:12.5px;line-height:1.4;color:#a3adbd}
.cam .jc-key{display:flex;gap:14px;font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7d92b3}
.cam .jc-key span{display:inline-flex;align-items:center;gap:6px}
.cam .jc-key i{margin:0;border-color:#8bbcff}
.cam .jc-key i.k{background:#8bbcff}
.cam .jc-chips{display:flex;flex-direction:column;gap:10px;padding:14px 18px 16px;border-top:1px solid rgba(120,170,255,.14)}
.cam .jc-cw{display:flex;flex-wrap:wrap;gap:6px}
.cam .jc-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(120,170,255,.18);border-radius:999px;font-size:12.5px;font-weight:600;color:#8a95a8}
.cam .jc-chip.on.s0{color:#fff;border-color:#4d9eff;background:rgba(29,123,255,.16)}
.cam .jc-chip.on.s1{color:#fff;border-color:#f5c46b;background:rgba(245,196,107,.12)}
.cam .jc-chip.on.s2{color:#fff;border-color:#4ade80;background:rgba(74,222,128,.1)}
.cam .jc-fw{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:24px;align-items:center}
.cam .jc-fl{font:600 9.5px var(--mono);letter-spacing:.1em;fill:#8bbcff}
.cam .jc-fs{font:500 7.5px var(--mono);letter-spacing:.12em;fill:#5d7396}
.cam .jc-stack{display:grid}
.cam .jc-pn{grid-area:1/1;display:flex;flex-direction:column;gap:10px;transition:opacity .4s}
.cam .jc-pn.off{opacity:0;visibility:hidden}
.cam .jc-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(120,170,255,.12)}
.cam .jc-ul li{padding:9px 0 9px 18px;position:relative;border-bottom:1px solid rgba(120,170,255,.12);font-size:14.5px;line-height:1.45;color:#c9d2e0}
.cam .jc-ul li::before{content:"";position:absolute;left:2px;top:16px;width:7px;height:7px;border:1.5px solid #4d9eff;transform:rotate(45deg)}
@media (max-width:900px){.cam .jc-fw{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.cam .jc-hero{flex-direction:column;padding:12px}}
@media (max-width:640px){.cam .jc-map{width:100%;max-width:340px;align-self:center}}
@media (max-width:640px){.cam .jc-chips{padding:12px}}
.cam .nw-hero{display:flex;gap:18px;padding:16px 18px 14px;align-items:stretch}
.cam .nw-map{flex:0 0 auto;align-self:flex-start;width:330px;height:auto;display:block;border:1px solid rgba(120,170,255,.16);border-radius:3px}
.cam .nw-ctx{fill:#0e1728;stroke:rgba(120,170,255,.18);stroke-width:.5}
.cam .nw-ol{fill:none;stroke:#4d9eff;stroke-width:1.3;stroke-linejoin:round}
.cam .nw-z{fill:rgba(77,158,255,.03);stroke:rgba(120,170,255,.3);stroke-width:.6}
.cam .nw-z.on.s1{fill:rgba(77,158,255,.3);stroke:#8bbcff}
.cam .nw-z.on.s1:not(.ms-off){animation:nwp0 2.4s ease-in-out infinite}
.cam .nw-z.on.s0{fill:rgba(255,184,64,.42);stroke:#f5c46b}
.cam .nw-z.on.s0:not(.ms-off){animation:nwp1 2.4s ease-in-out infinite}
.cam .nw-z.on.s2{fill:rgba(74,222,128,.24);stroke:#4ade80}
.cam .nw-z.on.s2:not(.ms-off){animation:nwp2 2.4s ease-in-out infinite}
@keyframes nwp0{50%{opacity:.6}}
@keyframes nwp1{50%{opacity:.62}}
@keyframes nwp2{50%{opacity:.54}}
.cam .nw-ml{font:700 9.2px var(--mono);letter-spacing:.04em;paint-order:stroke;stroke:#04070d;stroke-width:2.6px;stroke-linejoin:round}
.cam .nw-cl{font:600 7.4px var(--mono);letter-spacing:.16em;fill:#3c5170}
.cam .nw-wl{font:500 6.6px var(--mono);letter-spacing:.3em;fill:#2c4266}
.cam .nw-legs{flex:1 1 0;min-width:0;display:grid;grid-template-rows:1fr auto;gap:10px}
.cam .nw-lp{grid-area:1/1;display:flex;flex-direction:column;gap:6px;transition:opacity .45s}
.cam .nw-lp.off{opacity:0;visibility:hidden}
.cam .nw-lt{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#e8edf5}
.cam .nw-ln{font-size:13.5px;line-height:1.45;color:#a3adbd}
.cam .nw-lz{font:600 10.5px var(--mono);letter-spacing:.1em;color:#7d92b3}
.cam .nw-rows{display:flex;flex-direction:column;margin-top:8px;border:1px solid rgba(120,170,255,.16);border-radius:3px;background:rgba(9,14,24,.7)}
.cam .nw-rh{display:block;padding:8px 10px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#7d92b3}
.cam .nw-rows .nw-rh{border-bottom:1px solid rgba(120,170,255,.12)}
.cam .nw-row{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:8px;padding:7px 10px;border-bottom:1px solid rgba(120,170,255,.08)}
.cam .nw-row:last-child{border-bottom:0}
.cam .nw-row i,.cam .nw-key i{width:8px;height:8px;border-radius:50%;margin-top:4px;border:1.5px solid var(--nw,#4d9eff)}
.cam .nw-row.k i{background:var(--nw,#4d9eff)}
.cam .nw-row.o{opacity:.75}
.cam .nw-sv{font-size:13px;font-weight:700;color:#e8edf5}
.cam .nw-wh{grid-column:2;font-size:12.5px;line-height:1.4;color:#a3adbd}
.cam .nw-key{display:flex;gap:14px;font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7d92b3}
.cam .nw-key span{display:inline-flex;align-items:center;gap:6px}
.cam .nw-key i{margin:0;border-color:#8bbcff}
.cam .nw-key i.k{background:#8bbcff}
.cam .nw-chips{display:flex;flex-direction:column;gap:10px;padding:14px 18px 16px;border-top:1px solid rgba(120,170,255,.14)}
.cam .nw-cw{display:flex;flex-wrap:wrap;gap:6px}
.cam .nw-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(120,170,255,.18);border-radius:999px;font-size:12.5px;font-weight:600;color:#8a95a8}
.cam .nw-chip.on.s1{color:#fff;border-color:#4d9eff;background:rgba(29,123,255,.16)}
.cam .nw-chip.on.s0{color:#fff;border-color:#f5c46b;background:rgba(245,196,107,.12)}
.cam .nw-chip.on.s2{color:#fff;border-color:#4ade80;background:rgba(74,222,128,.1)}
.cam .nw-fw{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:24px;align-items:center}
.cam .nw-fl{font:600 9.5px var(--mono);letter-spacing:.1em;fill:#8bbcff}
.cam .nw-fs{font:500 7.5px var(--mono);letter-spacing:.12em;fill:#5d7396}
.cam .nw-stack{display:grid}
.cam .nw-pn{grid-area:1/1;display:flex;flex-direction:column;gap:10px;transition:opacity .4s}
.cam .nw-pn.off{opacity:0;visibility:hidden}
.cam .nw-ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(120,170,255,.12)}
.cam .nw-ul li{padding:9px 0 9px 18px;position:relative;border-bottom:1px solid rgba(120,170,255,.12);font-size:14.5px;line-height:1.45;color:#c9d2e0}
.cam .nw-ul li::before{content:"";position:absolute;left:2px;top:16px;width:7px;height:7px;border:1.5px solid #4d9eff;transform:rotate(45deg)}
@media (max-width:900px){.cam .nw-fw{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.cam .nw-hero{flex-direction:column;padding:12px}}
@media (max-width:640px){.cam .nw-map{width:100%;max-width:340px;align-self:center}}
@media (max-width:640px){.cam .nw-chips{padding:12px}}
.cam .nw-wd{font:600 7px var(--mono);letter-spacing:.24em;fill:#334a6e}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Menlo'),local('Consolas'),local('DejaVu Sans Mono'),local('Noto Mono'),local('Liberation Mono'),local('Courier New');ascent-override:102%;descent-override:30%;line-gap-override:0%}
main.cam{--mono:'JetBrains Mono','JetBrains Mono Fallback','Fira Code',monospace}
@keyframes cam-car{0%{transform:translateX(-40px)}100%{transform:translateX(240px)}}
.cam .car{animation:cam-car 4s linear infinite}
