.pf-tech .hero.ptx-hero {display:block;min-height:0;isolation:isolate;background:#090d32;padding:0 0 100px;color:#fff;overflow:hidden}
.pf-tech .ptx-main {position:relative;min-height:clamp(570px,48vw,720px);display:flex;align-items:center}
.pf-tech .ptx-world {position:absolute;inset:0;margin:0;overflow:hidden}
.pf-tech .ptx-world img,.pf-tech .ptx-network {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.pf-tech .ptx-world::after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#090d32 0%,#090d32ed 19%,#090d32aa 32%,#090d3200 58%),linear-gradient(0deg,#090d32 0%,#090d3200 15%);pointer-events:none}
.pf-tech .ptx-hero .ptx-wrap {position:relative;z-index:2;width:100%;max-width:1280px;margin:auto;padding-inline:clamp(22px,4vw,48px)}
.pf-tech .ptx-copy {max-width:440px;padding:52px 0 72px}
.pf-tech .ptx-kicker {display:flex;align-items:center;gap:12px;color:#a8c9fa;font-size:10px;font-weight:700;letter-spacing:.18em;margin:0 0 25px}
.pf-tech .ptx-kicker::before {content:"";width:26px;height:1px;background:#89caff}
.pf-tech .ptx-hero h1 {color:#fff;font-size:clamp(44px,5.5vw,76px);line-height:1.01;letter-spacing:-.055em;margin:0 0 24px;max-width:9ch;text-shadow:none;font-weight:800}
.pf-tech .ptx-hero h1 span {display:block;color:#9eceff}
.pf-tech .ptx-sub {font-size:clamp(14px,1.35vw,17px);line-height:1.75;color:#c6d4ec;max-width:36ch;margin:0 0 26px;text-wrap:pretty}
.pf-tech .ptx-actions {display:flex;align-items:center;flex-wrap:wrap;gap:18px}
.pf-tech .ptx-actions .hb1 {border-radius:5px;background:#fff;color:#0a0e36;margin:0;padding:15px 18px;font-size:12px;box-shadow:none}
.pf-tech .ptx-actions .hb1:hover {background:#c9e5ff;color:#0a0e36}
.pf-tech .ptx-actions .hb2 {border:0;border-bottom:1px solid #7f9fc7;border-radius:0;background:none;color:#fff;padding:9px 0;font-size:12px}
.pf-tech .ptx-actions .hb2:hover {border-color:#fff;background:none;color:#bbddff}
.pf-tech .ptx-signature {margin:30px 0 0;display:flex;align-items:center;gap:10px;font-size:10px;font-weight:500;color:#9cb3d4;letter-spacing:.05em}
.pf-tech .ptx-signature svg {width:19px;height:19px;stroke:#9eceff;fill:none;stroke-width:1.2;flex:none}
.pf-tech .ptx-location {position:absolute;z-index:3;right:5%;bottom:40px;display:flex;align-items:center;gap:9px;color:#c5ddfa;font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.pf-tech .ptx-location span {width:5px;height:5px;border:1px solid #83cfff;transform:rotate(45deg)}
.pf-tech .ptx-network {pointer-events:none;color:#a4e5ff}
.pf-tech .ptx-network .ptx-layer {opacity:0;transition:opacity .5s}
.pf-tech [data-layer="patrols"] .ptx-layer-patrols,.pf-tech [data-layer="monitoring"] .ptx-layer-monitoring,.pf-tech [data-layer="reporting"] .ptx-layer-reporting {opacity:1}
.pf-tech .ptx-route {fill:none;stroke:#a4e5ff;stroke-width:2.5;stroke-dasharray:6 15;animation:ptx-route 10s linear infinite}
.pf-tech .ptx-node {fill:#f4fcff;stroke:#71cfff;stroke-width:3}
.pf-tech .ptx-ring {fill:none;stroke:#9edfff;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:ptx-ring 4s ease-out infinite}
.pf-tech .ptx-ring-late {animation-delay:2s}
.pf-tech .ptx-report-line {fill:none;stroke:#a4e5ff;stroke-width:2;stroke-dasharray:8 18;animation:ptx-route 8s linear infinite}
.pf-tech .ptx-console {position:relative;z-index:4;width:calc(100% - clamp(44px,8vw,96px));max-width:1184px;margin:-10px auto 0;border-top:1px solid #7c9dcb50;border-bottom:1px solid #7c9dcb50;display:grid;grid-template-columns:1.15fr 1.7fr;gap:36px;padding:23px 0 24px;background:#090d32}
.pf-tech .ptx-console-title {display:flex;align-items:center;gap:14px;font-size:9px;color:#8eacd4;letter-spacing:.14em;text-transform:uppercase;margin-bottom:15px}
.pf-tech .ptx-pause {background:none;box-shadow:none;color:#b8cce9;border:0;border-left:1px solid #52709a;border-radius:0;font:inherit;letter-spacing:0;padding:3px 0 3px 14px;cursor:pointer;min-height:24px;text-transform:none}
.pf-tech .ptx-pause:hover {background:none;color:#fff}
.pf-tech .ptx-selector {display:flex;gap:8px 22px;flex-wrap:wrap}
.pf-tech .ptx-selector button {font:600 12px/1.4 Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;margin:0;padding:7px 0 12px;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;color:#9eb3d2;cursor:pointer;box-shadow:none;min-height:44px}
.pf-tech .ptx-selector button span {font-size:9px;font-weight:400;margin-right:8px;color:#7895bd}
.pf-tech .ptx-selector button[aria-pressed="true"] {color:#fff;border-color:#9edfff}
.pf-tech .ptx-selector button:hover {color:#fff;background:none}
.pf-tech .ptx-insight {display:grid;grid-template-columns:46px 1fr;align-items:start;gap:18px;padding-top:4px;min-width:0}
.pf-tech .ptx-insight-number {font-size:35px;line-height:1;font-weight:300;letter-spacing:-.06em;color:#5d81b3}
.pf-tech .ptx-insight strong {display:block;font-size:clamp(16px,1.7vw,22px);font-weight:600;line-height:1.2;color:#edf5ff;letter-spacing:-.02em;margin-bottom:8px}
.pf-tech .ptx-insight p {font-size:12px;line-height:1.65;color:#a7bedc;max-width:57ch;margin:0;min-height:40px}
.pf-tech .ptx-paused .ptx-route,.pf-tech .ptx-paused .ptx-ring,.pf-tech .ptx-paused .ptx-report-line {animation-play-state:paused}
.pf-tech .ptx-hero :is(a,button):focus-visible {outline:2px solid #a4e5ff;outline-offset:5px}
@keyframes ptx-route {to {stroke-dashoffset:-210}}
@keyframes ptx-ring {0% {transform:scale(.65);opacity:0}25% {opacity:.9}100% {transform:scale(1.3);opacity:0}}
@media(min-width:1600px) {.pf-tech .ptx-world img,.pf-tech .ptx-network {object-position:center 54%}.pf-tech .ptx-copy {max-width:470px}}
@media(max-width:1000px) and (min-width:821px) {.pf-tech .ptx-copy {max-width:340px}.pf-tech .ptx-hero h1 {font-size:60px}.pf-tech .ptx-sub {max-width:31ch}.pf-tech .ptx-world::after {background:linear-gradient(90deg,#090d32,#090d32d9 30%,transparent 60%),linear-gradient(0deg,#090d32,transparent 20%)}}
@media(max-width:820px) {
 .pf-tech .hero.ptx-hero {padding-bottom:40px}
 .pf-tech .ptx-main {display:flex;flex-direction:column;min-height:0}
 .pf-tech .ptx-hero .ptx-wrap {order:0}
 .pf-tech .ptx-copy {max-width:640px;padding:40px 0 0}
 .pf-tech .ptx-hero h1 {font-size:clamp(42px,8.8vw,64px);max-width:none;margin-bottom:20px}
 .pf-tech .ptx-hero h1 span {display:inline}
 .pf-tech .ptx-kicker {font-size:9px;margin-bottom:22px}
 .pf-tech .ptx-sub {font-size:14px;max-width:48ch;margin-bottom:22px}
 .pf-tech .ptx-signature {margin-top:22px}
 .pf-tech .ptx-world {position:relative;order:1;width:100%;height:clamp(300px,62vw,480px);margin-top:8px}
 .pf-tech .ptx-world img {object-position:75% center}
 .pf-tech .ptx-network {display:none}
 .pf-tech .ptx-world::after {background:linear-gradient(0deg,#090d32 0%,transparent 20%,transparent 80%,#090d32 100%)}
 .pf-tech .ptx-location {position:relative;order:2;right:auto;bottom:auto;align-self:flex-end;margin:-16px 24px 22px;font-size:8px}
 .pf-tech .ptx-console {margin:0 auto;grid-template-columns:1fr;gap:18px;padding:22px 0}
 .pf-tech .ptx-insight {padding:16px 0 0;border-top:1px solid #7c9dcb30;min-height:114px}
 .pf-tech .ptx-console-title {margin-bottom:9px}
 .pf-tech .ptx-pause {display:none}
}
@media(max-width:420px) {.pf-tech .ptx-hero h1 span {display:block}.pf-tech .ptx-selector {gap:18px}.pf-tech .ptx-selector button {font-size:11px}.pf-tech .ptx-selector button span {margin-right:5px}.pf-tech .ptx-insight {grid-template-columns:30px 1fr;gap:12px}.pf-tech .ptx-insight-number {font-size:29px}}
@media(prefers-reduced-motion:reduce) {.pf-tech .ptx-network .ptx-layer {transition:none}.pf-tech .ptx-route,.pf-tech .ptx-ring,.pf-tech .ptx-report-line {animation:none}.pf-tech .ptx-ring {opacity:.6}.pf-tech .ptx-pause {display:none}}
/* PFL red: perimeter coverage and the internal guard patrol. */
.pf-tech .ptx-security {fill:none;stroke-linecap:round;stroke-linejoin:round}
.pf-tech .ptx-security-glow {stroke:#ee253b;stroke-width:10;opacity:.19;filter:blur(3px)}
.pf-tech .ptx-boundary-line {stroke:#ef263c;stroke-width:2.6;opacity:.85}
.pf-tech .ptx-patrol-line {stroke:#ef263c;stroke-width:2.6;stroke-dasharray:3 4;opacity:.85}
.pf-tech .ptx-tracer {stroke:#ff7581;stroke-width:3.3;filter:drop-shadow(0 0 4px #ff1738);animation:ptx-security-travel 18s linear infinite}
.pf-tech .ptx-perimeter-tracer {stroke-dasharray:44 289.333;stroke-dashoffset:0}
.pf-tech .ptx-patrol-tracer {stroke:#ffabb1;stroke-width:3;stroke-dasharray:18 482;animation-duration:24s;animation-delay:-6s}
.pf-tech .ptx-checkpoint {fill:#fff1f2;stroke:#ed263b;stroke-width:3}
.pf-tech .ptx-paused .ptx-tracer {animation-play-state:paused}
.pf-tech .ptx-location {flex-wrap:wrap;justify-content:flex-end;max-width:280px;gap:8px}
.pf-tech .ptx-location span {border-color:#ff6170;background:#e52338;box-shadow:0 0 10px #ed263b80}
.pf-tech .ptx-location small {flex-basis:100%;text-align:right;font-size:8px;letter-spacing:.1em;color:#8ca5c8}
@keyframes ptx-security-travel {to {stroke-dashoffset:-1000}}
@media(max-width:820px) {
 .pf-tech .ptx-network {display:block}
 .pf-tech .ptx-pause {display:block;min-height:44px}
 .pf-tech .ptx-location {margin-top:-8px}
}
@media(prefers-reduced-motion:reduce) {
 .pf-tech .ptx-tracer {animation:none}
 .pf-tech .ptx-pause {display:none}
}
/* Small upright officer; feet stay anchored to the actual patrol path. */
.pf-tech .ptx-guard-shadow {fill:#05091c;opacity:.6;stroke:none}
.pf-tech .ptx-guard-halo {fill:#ef263c22;stroke:#ff5c70;stroke-width:1.5}
.pf-tech .ptx-guard-person {filter:drop-shadow(0 1px 2px #05091c)}
.pf-tech .ptx-guard-leg,.pf-tech .ptx-guard-arm {stroke:#d5e4f5;stroke-width:4;fill:none}
.pf-tech .ptx-guard-leg {transform-origin:0 -15px;animation:ptx-guard-step .85s ease-in-out infinite alternate}
.pf-tech .ptx-guard-leg-right {animation-delay:-.85s}
.pf-tech .ptx-guard-uniform {fill:#172a48;stroke:#e6efff;stroke-width:1.2}
.pf-tech .ptx-guard-shoulder {stroke:#ef263c;stroke-width:3}
.pf-tech .ptx-guard-badge {fill:#fff;stroke:none}
.pf-tech .ptx-guard-belt {stroke:#ef263c;stroke-width:2}
.pf-tech .ptx-guard-face {fill:#e6bb99;stroke:#16253c;stroke-width:1}
.pf-tech .ptx-guard-cap {fill:#172a48;stroke:#e6efff;stroke-width:1}
.pf-tech .ptx-guard-cap-band {stroke:#ef263c;stroke-width:2}
.pf-tech .ptx-guard-stopped .ptx-guard-leg {animation-play-state:paused}
@keyframes ptx-guard-step {from {transform:rotate(-12deg)}to {transform:rotate(12deg)}}
@media(prefers-reduced-motion:reduce) {.pf-tech .ptx-guard-leg {animation:none}}
