/* PatrolCore v9 cinematic intro: short transitions, strict non-overlap zones, local-only animation. */
.pcf9{position:fixed;inset:0;z-index:99999;overflow:hidden;background:#01050a;color:#f4f9ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;opacity:1;transition:opacity .38s ease}
.pcf9.leaving{opacity:0;pointer-events:none}.pcf9[hidden]{display:none!important}.pcf9-bg{position:absolute;inset:0;background:radial-gradient(circle at 58% 42%,rgba(15,108,205,.11),transparent 34%),linear-gradient(#020812,#010409)}
.pcf9-corewall{position:absolute;inset:-10%;background-image:url('patrolcore-icon.png');background-repeat:repeat;background-size:150px 140px;opacity:.045;transform:rotate(-5deg) scale(1.08);animation:pcf9Wall 70s linear infinite;filter:brightness(.72)}
.pcf9-sweep{position:absolute;inset:0;background:linear-gradient(108deg,transparent 25%,rgba(42,151,255,.09) 48%,transparent 69%);transform:translateX(-120%);animation:pcf9Sweep 8s ease-in-out infinite}
.pcf9-top{position:absolute;z-index:50;left:clamp(20px,3vw,52px);right:clamp(20px,3vw,52px);top:20px;height:42px;display:flex;align-items:center;justify-content:space-between}.pcf9-logo{width:170px}.pcf9-actions{display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.15em;color:#6f8da7}.pcf9-time{font-variant-numeric:tabular-nums;color:#b6d9f7}.pcf9-actions button{border:1px solid rgba(69,157,243,.26);background:#061321;color:#d8edff;border-radius:999px;padding:9px 13px;cursor:pointer}.pcf9-actions button:hover{border-color:#3ba2ff;box-shadow:0 0 20px rgba(49,153,245,.15)}
.pcf9-stage{position:absolute;inset:0}.pcf9-scene{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .34s ease,visibility .34s ease}.pcf9-scene.active{opacity:1;visibility:visible;pointer-events:auto}.pcf9-copy{position:relative;z-index:4}.pcf9-centre{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:min(980px,88vw)}.pcf9-tag,.pcf9-caption>span{display:inline-block;font-size:10px;letter-spacing:.2em;font-weight:800;color:#66bdff;border:1px solid rgba(52,151,244,.28);background:rgba(5,19,32,.78);padding:8px 11px;border-radius:999px}.pcf9-copy h1{font-size:clamp(48px,6.3vw,96px);line-height:.94;letter-spacing:-.055em;margin:22px 0 18px;text-shadow:0 0 24px rgba(65,158,245,.09)}.pcf9-copy h1 em,.pcf9-caption h2 em{font-style:normal;color:#2e91f5;text-shadow:0 0 24px rgba(46,145,245,.24)}.pcf9-copy p{font-size:clamp(15px,1.4vw,20px);line-height:1.6;color:#8ea9bf;max-width:820px;margin:auto}.pcf9-watermark{position:absolute;width:min(56vw,700px);left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);opacity:.045;animation:pcf9Mark 10s ease-in-out infinite}.pcf9-watermark.final{opacity:.07}.active .pcf9-tag{animation:pcf9Up .38s .04s both}.active .pcf9-copy h1{animation:pcf9Up .48s .1s both}.active .pcf9-copy p{animation:pcf9Up .45s .17s both}
/* Hard split: caption and product never occupy the same horizontal zone. */
.pcf9-caption{position:absolute;z-index:10;top:50%;width:min(31vw,470px);transform:translateY(-50%)}.pcf9-caption.left{left:clamp(28px,4.5vw,78px)}.pcf9-caption.right{right:clamp(28px,4.5vw,78px)}.pcf9-caption h2{font-size:clamp(38px,4vw,68px);line-height:.97;letter-spacing:-.05em;margin:15px 0}.pcf9-caption p{font-size:15px;line-height:1.62;color:#8ca7bd;margin:0}.active .pcf9-caption.left{animation:pcf9Left .44s .03s both}.active .pcf9-caption.right{animation:pcf9Right .44s .03s both}.pcf9-danger .pcf9-caption>span{color:#ff8a8f;border-color:rgba(255,90,100,.34);background:rgba(73,10,18,.3)}.pcf9-danger .pcf9-caption h2 em{color:#ff646d;text-shadow:0 0 25px rgba(255,70,80,.22)}
.pcf9-window{position:absolute;z-index:5;border:1px solid rgba(55,152,247,.34);background:linear-gradient(145deg,#071828 0%,#030c15 100%);border-radius:20px;box-shadow:0 34px 100px rgba(0,0,0,.62),0 0 32px rgba(27,128,224,.08);overflow:hidden}.active .pcf9-window{animation:pcf9Window .5s .05s cubic-bezier(.2,.75,.16,1) both}.pcf9-bar{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid rgba(60,153,240,.16);background:#071625}.pcf9-bar b{display:flex;align-items:center;gap:7px}.pcf9-bar img{width:18px;height:18px;object-fit:contain}.pcf9-bar i{font-style:normal;color:#8ba9c1;font-weight:500}.pcf9-bar strong{font-size:9px;color:#57d39a;letter-spacing:.12em}
/* Command */
.pcf9-command{width:min(62vw,980px);height:min(66vh,610px);right:3.5vw;top:52%;transform:translateY(-50%)}.pcf9-commandbody{height:calc(100% - 46px);display:grid;grid-template-columns:145px 1fr}.pcf9-commandbody aside{padding:16px 10px;background:#04101b;border-right:1px solid rgba(62,151,236,.13);display:flex;flex-direction:column;gap:7px}.pcf9-commandbody aside b{font-size:9px;letter-spacing:.18em;color:#5ab5ff;margin:0 8px 5px}.pcf9-commandbody aside span{padding:9px;border-radius:8px;font-size:11px;color:#7e9aaf}.pcf9-commandbody aside .on{background:#0a2d4e;color:#fff}.pcf9-dash{padding:17px;background:#05111e}.pcf9-dash>small{font-size:9px;color:#62b8fb;letter-spacing:.14em}.pcf9-dash h3{margin:5px 0 0;font-size:18px}.pcf9-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0}.pcf9-kpis article{background:#081c2e;border:1px solid rgba(57,151,239,.14);border-radius:10px;padding:10px}.pcf9-kpis small{display:block;font-size:8px;color:#7792a8}.pcf9-kpis b{display:block;font-size:22px;margin:3px 0}.pcf9-kpis em{font-style:normal;font-size:8px;color:#5dd198}.pcf9-mainmap{position:relative;height:calc(100% - 112px);min-height:250px;border:1px solid rgba(58,153,240,.16);border-radius:13px;background:linear-gradient(rgba(30,107,177,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(30,107,177,.09) 1px,transparent 1px),#061725;background-size:38px 38px;overflow:hidden}.pcf9-mainmap>i{position:absolute;width:11px;height:11px;border:3px solid #57baff;border-radius:50%;background:#0c4b82;box-shadow:0 0 0 8px rgba(55,153,243,.08),0 0 16px rgba(55,153,243,.45)}.pcf9-mainmap .m1{left:20%;top:30%}.pcf9-mainmap .m2{left:43%;top:48%}.pcf9-mainmap .m3{left:67%;top:33%}.pcf9-mainmap .m4{left:79%;top:66%}.pcf9-route{position:absolute;left:14%;top:56%;width:72%;height:2px;background:#1a80d7;transform:rotate(-10deg)}.pcf9-sitecard{position:absolute;left:16px;bottom:16px;background:rgba(4,15,25,.9);border:1px solid rgba(62,155,242,.2);padding:10px 12px;border-radius:10px}.pcf9-sitecard small,.pcf9-sitecard b,.pcf9-sitecard em{display:block}.pcf9-sitecard small{font-size:8px;color:#62b9fa}.pcf9-sitecard b{font-size:12px;margin:2px 0}.pcf9-sitecard em{font-size:9px;color:#87a3ba}
/* GPS */
.pcf9-gps{left:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px)}.pcf9-mapgrid{position:absolute;inset:0 195px 0 0;background:linear-gradient(rgba(43,126,201,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(43,126,201,.09) 1px,transparent 1px),#051521;background-size:40px 40px}.pcf9-mapgrid .route{position:absolute;height:2px;width:80%;left:8%;top:45%;background:#1479d0;transform:rotate(-11deg)}.pcf9-mapgrid .route.b{top:68%;transform:rotate(23deg)}.pcf9-mapgrid .unit{position:absolute;display:grid;grid-template-columns:17px auto;column-gap:7px;color:#fff}.pcf9-mapgrid .unit i{grid-row:1/3;width:13px;height:13px;border-radius:50%;background:#2a97f6;border:3px solid #072b49;box-shadow:0 0 0 7px rgba(42,151,246,.08),0 0 14px #1886e5}.pcf9-mapgrid .unit b{font-size:9px}.pcf9-mapgrid .unit small{font-size:8px;color:#82a1b9}.pcf9-mapgrid .u1{left:20%;top:28%;animation:pcf9Unit 2.3s ease-in-out infinite}.pcf9-mapgrid .u2{left:50%;top:52%}.pcf9-mapgrid .u3{left:70%;top:26%}.pcf9-gpscard{position:absolute;left:16px;bottom:16px;background:#061522;border:1px solid rgba(55,153,244,.24);padding:12px 14px;border-radius:11px}.pcf9-gpscard small,.pcf9-gpscard b,.pcf9-gpscard span,.pcf9-gpscard em{display:block}.pcf9-gpscard small{font-size:8px;color:#62bafb}.pcf9-gpscard b{font-size:14px;margin:3px 0;color:#dff1ff}.pcf9-gpscard b strong{color:#5fd79c}.pcf9-gpscard span{font-size:10px}.pcf9-gpscard em{font-size:8px;color:#72a9d5;margin-top:5px}.pcf9-phone,.pcf9-bolophone,.pcf9-ai-phone{position:absolute;background:#02080e;border:1px solid #33485a;border-radius:29px;box-shadow:0 20px 50px rgba(0,0,0,.5);overflow:hidden}.pcf9-phone{width:168px;right:14px;top:28px;bottom:28px;padding:24px 13px 13px}.notch{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:54px;height:12px;background:#000;border-radius:9px}.pcf9-phone>small,.pcf9-bolophone>small,.pcf9-ai-phone>small{font-size:8px;color:#8da7bc}.pcf9-phone h3{font-size:15px;margin:8px 0}.pcf9-phone .duty{padding:10px;background:#071a29;border-radius:10px;border:1px solid rgba(57,150,237,.13)}.pcf9-phone .duty>*{display:block}.pcf9-phone .duty b{font-size:9px;color:#5ed492}.pcf9-phone .duty span{font-size:10px;margin:5px 0}.pcf9-phone .duty em{font-size:7px;color:#63b9f8;font-style:normal}.pcf9-phone button,.pcf9-bolophone button,.pcf9-ai-phone button{position:absolute;left:13px;right:13px;bottom:38px;border:0;background:#0876df;color:white;border-radius:8px;padding:10px;font-weight:700}.pcf9-phone nav{position:absolute;left:0;right:0;bottom:0;padding:11px 7px;font-size:6px;color:#6e889d;text-align:center;border-top:1px solid #162431}
/* SOS */
.pcf9-sos{right:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px);border-color:rgba(255,76,87,.45)}.pcf9-sosmap{position:absolute;inset:0;background:linear-gradient(rgba(111,39,48,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(111,39,48,.06) 1px,transparent 1px),#10080b;background-size:42px 42px}.pcf9-sospin{position:absolute;left:42%;top:49%;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ff4e5a;color:#fff;font-style:normal;font-weight:900;box-shadow:0 0 28px rgba(255,65,78,.7)}.pcf9-sospulse{position:absolute;left:calc(42% + 17px);top:calc(49% + 17px);width:70px;height:70px;border:1px solid #ff5965;border-radius:50%;transform:translate(-50%,-50%);animation:pcf9Pulse 1.5s ease-out infinite}.pcf9-sospulse.p2{animation-delay:.6s}.pcf9-sosroute{position:absolute;left:44%;top:52%;width:31%;height:2px;background:#ef5662;transform:rotate(21deg)}.pcf9-alert,.pcf9-nearest{position:absolute;background:rgba(27,8,12,.94);border:1px solid rgba(255,80,92,.32);border-radius:12px;padding:14px}.pcf9-alert{right:16px;top:16px;width:260px}.pcf9-alert small{font-size:8px;color:#ff7c83}.pcf9-alert h3{margin:5px 0;font-size:20px}.pcf9-alert b,.pcf9-alert span{display:block;font-size:10px}.pcf9-alert span{color:#9db2c3;margin-top:3px}.pcf9-alert>strong{display:block;font-size:30px;margin:15px 0;font-variant-numeric:tabular-nums}.pcf9-alert>strong i{font-style:normal}.pcf9-alert button{width:100%;border:0;background:#e62f3d;color:#fff;border-radius:8px;padding:10px;font-weight:800}.pcf9-nearest{right:16px;bottom:16px;width:260px}.pcf9-nearest small{font-size:8px;color:#ff8389}.pcf9-nearest p{display:flex;justify-content:space-between;margin:9px 0;padding-top:9px;border-top:1px solid rgba(255,87,98,.12)}.pcf9-nearest p b{font-size:10px}.pcf9-nearest p span{font-size:8px;color:#92a8b9}.pcf9-nearest em{font-style:normal;font-size:8px;color:#78a8ce}
/* BOLO + risk */
.pcf9-bolo{left:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px);display:grid;grid-template-columns:1fr 210px;gap:18px;padding:20px}.pcf9-bololist{position:relative}.pcf9-bololist>small,.pcf9-person>small,.pcf9-audit>small{font-size:9px;color:#59b5fa;letter-spacing:.15em}.pcf9-bololist h3,.pcf9-person h3{font-size:22px;margin:6px 0 18px}.pcf9-silhouette,.mini-sil{background:linear-gradient(#142738,#07111b);position:relative;overflow:hidden}.pcf9-silhouette{width:190px;height:240px;border-radius:16px;border:1px solid rgba(68,151,228,.22);float:left;margin-right:18px}.pcf9-silhouette:before,.mini-sil:before{content:"";position:absolute;width:36%;aspect-ratio:1;border-radius:50%;background:#31475a;left:32%;top:18%}.pcf9-silhouette:after,.mini-sil:after{content:"";position:absolute;width:68%;height:48%;border-radius:50% 50% 18% 18%;background:#253b4d;left:16%;bottom:8%}.pcf9-bolodata p{display:grid;grid-template-columns:85px 1fr;gap:10px;margin:0;padding:11px 0;border-bottom:1px solid rgba(61,145,225,.12)}.pcf9-bolodata b{font-size:9px;color:#7290aa}.pcf9-bolodata span{font-size:11px}.pcf9-bolodata em{font-style:normal;font-size:8px;color:#5faee9;display:block;margin-top:13px}.pcf9-bolophone{position:relative;width:auto;right:auto;top:auto;bottom:auto;padding:28px 13px 14px}.pcf9-bolophone .push{display:block;background:#0a63b4;color:#fff;border-radius:8px;padding:9px;margin:12px 0;font-size:8px;font-weight:800}.mini-sil{height:145px;border-radius:10px}.pcf9-bolophone h3{font-size:13px;margin:10px 0 3px}.pcf9-bolophone p{font-size:9px;color:#8ba4b9}.pcf9-risk{right:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px);display:grid;grid-template-columns:1.25fr .9fr;gap:18px;padding:22px}.pcf9-person{padding:4px}.mini-sil.big{width:100px;height:120px;float:left;margin:0 18px 12px 0}.pcf9-marker{display:inline-block;background:#851e2a;border:1px solid #e34d59;color:#fff;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:900;box-shadow:0 0 18px rgba(229,67,79,.18);animation:pcf9Marker .5s .45s both}.pcf9-riskfields{clear:both;padding-top:12px}.pcf9-riskfields p{display:grid;grid-template-columns:100px 1fr;padding:11px 0;margin:0;border-top:1px solid rgba(58,147,232,.12)}.pcf9-riskfields b{font-size:9px;color:#7c97ad}.pcf9-riskfields span{font-size:11px}.pcf9-audit{background:#061522;border:1px solid rgba(60,150,237,.14);border-radius:12px;padding:14px}.pcf9-audit div{display:grid;grid-template-columns:24px 1fr auto;align-items:center;padding:13px 0;border-top:1px solid rgba(59,143,221,.12)}.pcf9-audit i{font-style:normal;color:#5bd49a}.pcf9-audit b{font-size:10px}.pcf9-audit span{font-size:8px;color:#718da4}
/* response */
.pcf9-response{left:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px)}.pcf9-statusrail{height:72px;display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid rgba(58,151,238,.14)}.pcf9-statusrail div{display:grid;grid-template-columns:22px 1fr;grid-template-rows:1fr 1fr;align-content:center;padding:10px;color:#607f98;border-right:1px solid rgba(58,151,238,.1)}.pcf9-statusrail b{font-size:9px;color:#8aa4b8}.pcf9-statusrail span{font-size:8px}.pcf9-statusrail .done{color:#58d496}.pcf9-statusrail .active{color:#51b7ff;background:#08253f}.pcf9-statusrail .active b{color:#fff}.pcf9-responsemap{position:absolute;left:0;right:0;top:72px;bottom:0;background:linear-gradient(rgba(43,126,201,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(43,126,201,.08) 1px,transparent 1px),#051521;background-size:42px 42px}.pcf9-responsemap .road{position:absolute;left:15%;top:58%;width:70%;height:3px;background:#157acb;transform:rotate(-12deg)}.pcf9-responsemap .car{position:absolute;left:27%;top:54%;font-style:normal;color:#42b2ff;font-size:27px;animation:pcf9Car 2.2s ease-in-out infinite}.pcf9-responsemap .dest{position:absolute;right:18%;top:31%;font-style:normal;color:#ff6570;font-size:28px}.pcf9-carcard{position:absolute;right:18px;bottom:18px;width:230px;padding:14px;background:#071827;border:1px solid rgba(54,150,241,.2);border-radius:12px}.pcf9-carcard>*{display:block}.pcf9-carcard small{font-size:8px;color:#5bb8fb}.pcf9-carcard h3{font-size:18px;margin:4px 0}.pcf9-carcard b{font-size:10px}.pcf9-carcard span{font-size:9px;color:#87a3b8;margin:4px 0 12px}.pcf9-carcard button{width:100%;border:0;background:#0a74d9;color:#fff;padding:10px;border-radius:8px;font-weight:800}
/* AI */
.pcf9-ai{right:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px);display:grid;grid-template-columns:210px 52px 1fr;align-items:center;padding:22px}.pcf9-ai-phone{position:relative;width:190px;height:470px;right:auto;top:auto;bottom:auto;padding:28px 14px 14px}.pcf9-ai-phone h3{font-size:16px}.pcf9-record{margin-top:18px;padding:14px;background:#071927;border:1px solid rgba(58,150,238,.14);border-radius:12px}.pcf9-record>i{display:inline-block;color:#ff5360;font-style:normal;margin-right:6px;animation:pcf9Rec 1s infinite}.pcf9-record>b{display:block;font-size:10px;line-height:1.5;margin:9px 0;color:#dcecff}.wave{height:48px;display:flex;align-items:center;gap:4px}.wave em{display:block;width:4px;height:16px;background:#3ba6fb;border-radius:3px;animation:pcf9Wave .8s ease-in-out infinite}.wave em:nth-child(2){animation-delay:.1s}.wave em:nth-child(3){animation-delay:.2s}.wave em:nth-child(4){animation-delay:.3s}.wave em:nth-child(5){animation-delay:.4s}.wave em:nth-child(6){animation-delay:.5s}.pcf9-aiarrow{font-size:36px;color:#349cf2;text-align:center;animation:pcf9Arrow 1.4s ease-in-out infinite}.pcf9-draft{align-self:stretch;background:#061522;border:1px solid rgba(58,151,238,.14);border-radius:13px;padding:18px}.pcf9-draft>small{font-size:8px;color:#61b8fa;letter-spacing:.15em}.pcf9-draft h3{font-size:22px;margin:6px 0 12px}.pcf9-draft p{display:grid;grid-template-columns:82px 1fr;gap:10px;margin:0;padding:10px 0;border-top:1px solid rgba(59,145,229,.12)}.pcf9-draft b{font-size:9px;color:#7894aa}.pcf9-draft span{font-size:10px}.pcf9-draft em{display:block;color:#64b8f5;font-style:normal;font-size:8px;margin-top:11px}.pcf9-draft button{margin-top:13px;border:0;background:#0a72d5;color:#fff;border-radius:8px;padding:10px 14px;font-weight:800}
/* display */
.pcf9-display{left:3.5vw;top:52%;transform:translateY(-50%);width:min(62vw,980px);height:min(66vh,610px);background:#06121d}.pcf9-displaytop{height:32px;display:flex;justify-content:space-between;align-items:center;padding:0 14px;border-bottom:1px solid rgba(60,151,238,.14);font-size:8px}.pcf9-displaytop b{color:#ffb14a}.pcf9-displaytop span{color:#6abcfb}.pcf9-display>header{height:60px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;border-bottom:1px solid rgba(60,151,238,.14)}.pcf9-display header small{font-size:8px;color:#5fb8fa}.pcf9-display header h3{font-size:20px;margin:2px 0}.pcf9-display header strong{font-size:23px;font-variant-numeric:tabular-nums}.pcf9-displaykpis{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:9px}.pcf9-displaykpis article{padding:10px;background:#0a1d2f;border:1px solid rgba(60,151,238,.13);border-radius:9px}.pcf9-displaykpis small{display:block;font-size:7px;color:#7793aa}.pcf9-displaykpis b{font-size:19px}.pcf9-display main{display:grid;grid-template-columns:.65fr 1.3fr .85fr;gap:9px;padding:0 9px 9px;height:calc(100% - 153px)}.pcf9-ring,.pcf9-displaymap,.pcf9-displayalerts{background:#081a29;border:1px solid rgba(61,151,238,.13);border-radius:11px}.pcf9-ring{align-self:stretch;display:grid;place-items:center;align-content:center;border-radius:50%;aspect-ratio:1;margin:auto;width:min(75%,190px);border:15px solid #0b3150;border-top-color:#2d99f5;border-right-color:#2d99f5}.pcf9-ring b{font-size:29px}.pcf9-ring span{font-size:7px;color:#7690a6}.pcf9-displaymap{position:relative;background:linear-gradient(rgba(43,126,201,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(43,126,201,.08) 1px,transparent 1px),#061827;background-size:34px 34px}.pcf9-displaymap i{position:absolute;width:10px;height:10px;border-radius:50%;background:#48b8ff;border:3px solid #092b48;box-shadow:0 0 12px #2699ec}.pcf9-displaymap i:nth-child(1){left:20%;top:25%}.pcf9-displaymap i:nth-child(2){left:54%;top:45%}.pcf9-displaymap i:nth-child(3){left:72%;top:20%}.pcf9-displaymap i:nth-child(4){left:67%;top:70%}.pcf9-displaymap span{position:absolute;left:38%;top:30%;width:100px;height:100px;border:1px dashed rgba(83,181,250,.45);border-radius:50%}.pcf9-displayalerts{padding:12px}.pcf9-displayalerts small{font-size:8px;color:#5bb6f7}.pcf9-displayalerts .mini-sil{height:110px;margin:10px 0}.pcf9-displayalerts b,.pcf9-displayalerts span,.pcf9-displayalerts em{display:block}.pcf9-displayalerts b{font-size:10px}.pcf9-displayalerts span{font-size:8px;color:#819db1;margin:4px 0}.pcf9-displayalerts em{font-style:normal;color:#ff7b84;font-size:8px;font-weight:800}
.pcf9-final{display:flex;gap:10px;justify-content:center;margin-top:26px}.pcf9-final button,.pcf9-final a{padding:12px 17px;border-radius:10px;font-weight:800;font-size:13px;text-decoration:none}.pcf9-final button{border:0;background:#0878df;color:#fff;cursor:pointer;box-shadow:0 12px 30px rgba(18,120,219,.22)}.pcf9-final a{border:1px solid rgba(66,159,244,.3);color:#dceeff;background:#061522}
.pcf9-bottom{position:absolute;z-index:50;left:clamp(20px,3vw,52px);right:clamp(20px,3vw,52px);bottom:20px;display:flex;align-items:center;gap:16px}.pcf9-progress{height:2px;flex:1;background:#16324a;border-radius:3px;overflow:hidden}.pcf9-progress i{display:block;width:0;height:100%;background:#39a7ff;box-shadow:0 0 10px #2c9cf3;transition:width .12s linear}.pcf9-dots{display:flex;gap:6px}.pcf9-dots button{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:#294963;cursor:pointer}.pcf9-dots button.active{width:20px;border-radius:4px;background:#48b2ff}
@keyframes pcf9Wall{to{transform:rotate(-5deg) scale(1.08) translate3d(150px,140px,0)}}@keyframes pcf9Sweep{0%,100%{transform:translateX(-120%)}48%,52%{transform:translateX(120%)}}@keyframes pcf9Mark{50%{transform:translate(-50%,-50%) rotate(4deg) scale(1.04)}}@keyframes pcf9Up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes pcf9Left{from{opacity:0;transform:translate(-28px,-50%)}to{opacity:1;transform:translate(0,-50%)}}@keyframes pcf9Right{from{opacity:0;transform:translate(28px,-50%)}to{opacity:1;transform:translate(0,-50%)}}@keyframes pcf9Window{from{opacity:0;transform:translateY(-48%) scale(.985)}to{opacity:1;transform:translateY(-50%) scale(1)}}@keyframes pcf9Unit{50%{transform:translate(20px,-10px)}}@keyframes pcf9Pulse{from{opacity:.85;transform:translate(-50%,-50%) scale(.2)}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}@keyframes pcf9Marker{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes pcf9Car{50%{transform:translate(70px,-17px) rotate(-5deg)}}@keyframes pcf9Rec{50%{opacity:.25}}@keyframes pcf9Wave{50%{height:42px}}@keyframes pcf9Arrow{50%{transform:translateX(8px);opacity:.55}}
@media(max-width:980px){.pcf9-caption{top:84px!important;left:24px!important;right:24px!important;width:auto!important;transform:none!important;max-width:720px}.pcf9-caption h2{font-size:38px;margin:10px 0}.pcf9-caption p{display:none}.pcf9-window{left:22px!important;right:22px!important;top:auto!important;bottom:54px!important;width:auto!important;height:58vh!important;transform:none!important}.active .pcf9-window{animation:pcf9Mobile .42s ease both}.pcf9-commandbody{grid-template-columns:110px 1fr}.pcf9-kpis{grid-template-columns:repeat(2,1fr)}.pcf9-mainmap{height:calc(100% - 172px)}.pcf9-ai{grid-template-columns:180px 35px 1fr}.pcf9-ai-phone{width:160px;height:90%}.pcf9-display main{grid-template-columns:.7fr 1.3fr}.pcf9-displayalerts{display:none}}@keyframes pcf9Mobile{from{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:650px){.pcf9-top{left:14px;right:14px;top:13px}.pcf9-logo{width:145px}.pcf9-actions>span:first-child,.pcf9-time{display:none}.pcf9-caption{top:72px!important}.pcf9-caption h2{font-size:30px}.pcf9-window{left:10px!important;right:10px!important;bottom:47px!important;height:62vh!important}.pcf9-commandbody aside{display:none}.pcf9-commandbody{grid-template-columns:1fr}.pcf9-kpis{grid-template-columns:repeat(2,1fr)}.pcf9-gps .pcf9-mapgrid{right:0}.pcf9-phone,.pcf9-bolophone{display:none}.pcf9-bolo{grid-template-columns:1fr}.pcf9-risk{grid-template-columns:1fr}.pcf9-audit{display:none}.pcf9-ai{grid-template-columns:1fr 25px 1.25fr;padding:10px}.pcf9-ai-phone{width:auto;height:92%;padding:24px 9px 9px}.pcf9-record>b{font-size:8px}.pcf9-draft{padding:10px}.pcf9-draft h3{font-size:16px}.pcf9-draft p{grid-template-columns:55px 1fr;padding:7px 0}.pcf9-displaykpis{grid-template-columns:repeat(3,1fr)}.pcf9-displaykpis article:nth-child(n+4){display:none}.pcf9-display main{grid-template-columns:1fr 1.4fr}.pcf9-ring{width:80%;border-width:11px}.pcf9-bottom{left:12px;right:12px;bottom:12px}.pcf9-dots button{display:none}.pcf9-dots button.active{display:block}.pcf9-copy h1{font-size:45px}.pcf9-copy p{font-size:14px}.pcf9-final{flex-direction:column;align-items:center}}
@media(prefers-reduced-motion:reduce){.pcf9 *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* PatrolCore v10 film refinement: logo assembly, slower storytelling, blended scene hand-offs and stricter layout safety. */
.pcf9{transition:opacity .58s ease;background:#010408}
.pcf9-scene{transition:opacity .62s cubic-bezier(.22,.68,.22,1),transform .62s cubic-bezier(.22,.68,.22,1),filter .62s ease;transform:translate3d(0,0,0) scale(1);filter:none}
.pcf9-scene.active{visibility:visible}
.pcf9-scene.pcf10-out{opacity:0;visibility:visible;pointer-events:none;filter:brightness(.72)}
.pcf9-scene.pcf10-out.pcf10-prev{transform:translate3d(-2.2vw,0,0) scale(.985)}
.pcf9-scene.pcf10-out.pcf10-next{transform:translate3d(2.2vw,0,0) scale(.985)}
.pcf9-scene.pcf10-in{opacity:1;visibility:visible}
.pcf9-scene.pcf10-in.pcf10-next{opacity:0;transform:translate3d(2.8vw,0,0) scale(1.012)}
.pcf9-scene.pcf10-in.pcf10-prev{opacity:0;transform:translate3d(-2.8vw,0,0) scale(1.012)}

/* True non-overlap split on desktop. */
@media(min-width:981px){
  .pcf9-caption{width:min(27.5vw,430px)}
  .pcf9-caption.left{left:clamp(30px,3.4vw,62px)}
  .pcf9-caption.right{right:clamp(30px,3.4vw,62px)}
  .pcf9-window{width:min(60vw,940px)!important;height:min(64vh,590px)!important}
  .pcf9-command,.pcf9-ai{right:2.8vw!important}
  .pcf9-gps,.pcf9-bolo,.pcf9-risk,.pcf9-response,.pcf9-display{left:2.8vw!important}
  .pcf9-caption h2{font-size:clamp(34px,3.5vw,58px)}
  .pcf9-caption p{font-size:14px;max-width:405px}
}

/* Opening logo build: three independent hexagons fly/rotate into the exact Core cluster, then wordmark resolves. */
.pcf10-logo-scene{display:grid;place-items:center}
.pcf10-logo-build{position:relative;width:min(860px,88vw);height:360px;display:grid;place-items:center;text-align:center}
.pcf10-core-assembly{position:absolute;left:50%;top:42%;width:220px;height:190px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 24px rgba(45,143,241,.24));animation:pcf10CoreSettle .75s 1.75s cubic-bezier(.16,.78,.2,1) both}
.pcf10-hex{position:absolute;width:106px;height:106px;overflow:visible;filter:drop-shadow(0 0 11px rgba(47,145,244,.38))}
.pcf10-hex polygon{fill:none;stroke:#2f8ff1;stroke-width:10;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.pcf10-hex.hx-a{left:12px;top:40px;animation:pcf10HexA 1.45s cubic-bezier(.16,.82,.24,1) both}
.pcf10-hex.hx-b{left:94px;top:0;animation:pcf10HexB 1.55s .08s cubic-bezier(.16,.82,.24,1) both}
.pcf10-hex.hx-c{left:94px;top:82px;animation:pcf10HexC 1.62s .16s cubic-bezier(.16,.82,.24,1) both}
.pcf10-wordmark{position:absolute;left:50%;top:67%;width:min(500px,66vw);transform:translate(-50%,-50%) scale(.94);opacity:0;animation:pcf10Wordmark .85s 1.78s cubic-bezier(.18,.75,.22,1) forwards;filter:drop-shadow(0 0 18px rgba(30,129,224,.12))}
.pcf10-logo-line{position:absolute;top:79%;left:50%;height:1px;width:0;background:linear-gradient(90deg,transparent,#2d8eea,transparent);transform:translateX(-50%);box-shadow:0 0 10px rgba(45,142,234,.45);animation:pcf10Line .7s 2.05s ease forwards}
.pcf10-logo-sub{position:absolute;top:82%;left:50%;transform:translateX(-50%) translateY(8px);opacity:0;margin:0;font-size:10px;letter-spacing:.24em;color:#7897b2;white-space:nowrap;animation:pcf10Sub .55s 2.2s ease forwards}

/* Staged micro-animation makes each scene feel like a film instead of a slide deck. */
.active .pcf9-kpis article{animation:pcf10Pop .45s both}.active .pcf9-kpis article:nth-child(1){animation-delay:.55s}.active .pcf9-kpis article:nth-child(2){animation-delay:.7s}.active .pcf9-kpis article:nth-child(3){animation-delay:.85s}.active .pcf9-kpis article:nth-child(4){animation-delay:1s}
.active .pcf9-mainmap>i{animation:pcf10Pin .4s both}.active .pcf9-mainmap .m1{animation-delay:1.15s}.active .pcf9-mainmap .m2{animation-delay:1.3s}.active .pcf9-mainmap .m3{animation-delay:1.45s}.active .pcf9-mainmap .m4{animation-delay:1.6s}
.active .pcf9-bolophone{animation:pcf10PhonePush .55s 1.15s both}.active .pcf9-marker{animation:pcf10MarkerAdd .55s 1s cubic-bezier(.16,.82,.24,1) both}
.active .pcf9-audit>div{opacity:0;animation:pcf10Audit .35s both}.active .pcf9-audit>div:nth-child(2){animation-delay:1.35s}.active .pcf9-audit>div:nth-child(3){animation-delay:1.7s}.active .pcf9-audit>div:nth-child(4){animation-delay:2.05s}.active .pcf9-audit>div:nth-child(5){animation-delay:2.4s}
.active .pcf9-draft p{opacity:0;animation:pcf10DraftRow .38s both}.active .pcf9-draft p:nth-of-type(1){animation-delay:1.45s}.active .pcf9-draft p:nth-of-type(2){animation-delay:1.8s}.active .pcf9-draft p:nth-of-type(3){animation-delay:2.15s}.active .pcf9-draft p:nth-of-type(4){animation-delay:2.5s}.active .pcf9-draft em{opacity:0;animation:pcf10DraftRow .38s 2.9s both}.active .pcf9-draft button{opacity:0;animation:pcf10DraftRow .38s 3.2s both}
.active .pcf9-displaykpis article{opacity:0;animation:pcf10Pop .35s both}.active .pcf9-displaykpis article:nth-child(1){animation-delay:.65s}.active .pcf9-displaykpis article:nth-child(2){animation-delay:.8s}.active .pcf9-displaykpis article:nth-child(3){animation-delay:.95s}.active .pcf9-displaykpis article:nth-child(4){animation-delay:1.1s}.active .pcf9-displaykpis article:nth-child(5){animation-delay:1.25s}

@keyframes pcf10HexA{0%{opacity:0;transform:translate(-340px,130px) rotate(-280deg) scale(.35)}55%{opacity:1}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@keyframes pcf10HexB{0%{opacity:0;transform:translate(30px,-300px) rotate(330deg) scale(.3)}55%{opacity:1}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@keyframes pcf10HexC{0%{opacity:0;transform:translate(360px,180px) rotate(-360deg) scale(.32)}55%{opacity:1}100%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
@keyframes pcf10CoreSettle{0%{transform:translate(-50%,-50%) scale(1.08)}100%{transform:translate(-50%,-50%) scale(.56) translateY(-48px)}}
@keyframes pcf10Wordmark{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes pcf10Line{to{width:min(520px,68vw)}}
@keyframes pcf10Sub{to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes pcf10Pop{from{opacity:0;transform:translateY(9px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pcf10Pin{from{opacity:0;transform:scale(.25)}to{opacity:1;transform:scale(1)}}
@keyframes pcf10PhonePush{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes pcf10MarkerAdd{0%{opacity:0;transform:scale(.65);box-shadow:0 0 0 rgba(255,83,96,0)}65%{opacity:1;transform:scale(1.08);box-shadow:0 0 34px rgba(255,83,96,.38)}100%{opacity:1;transform:scale(1)}}
@keyframes pcf10Audit{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes pcf10DraftRow{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media(max-width:980px){.pcf10-logo-build{height:300px}.pcf10-core-assembly{transform:translate(-50%,-50%) scale(.9)}.pcf10-wordmark{width:min(440px,76vw)}.pcf10-logo-sub{font-size:8px;letter-spacing:.16em}.pcf9-scene{transition-duration:.48s}}
@media(max-width:650px){.pcf10-core-assembly{transform:translate(-50%,-50%) scale(.72)}.pcf10-wordmark{width:80vw}.pcf10-logo-sub{white-space:normal;width:88vw;line-height:1.5}.pcf9-caption p{display:block;font-size:11px;line-height:1.4}.pcf9-caption h2{font-size:28px}.pcf9-window{height:56vh!important}.pcf9-top{z-index:80}}

/* PatrolCore v10a: improved cinematic pacing, FLIP-style match/move hand-offs, obvious skip control and risk-scene overlap fix. */
.pcf9-top{z-index:120}
.pcf9[data-current-scene="0"] .pcf9-logo{opacity:0;transform:translateY(-6px);pointer-events:none}
.pcf9-logo{transition:opacity .45s ease,transform .45s ease}
.pcf10-skip{display:flex!important;align-items:center;gap:10px!important;padding:11px 16px!important;border-color:rgba(74,171,255,.75)!important;background:linear-gradient(180deg,#0b78df,#075db2)!important;color:#fff!important;font-weight:850!important;font-size:10px!important;letter-spacing:.14em!important;box-shadow:0 0 0 1px rgba(80,175,255,.12),0 10px 30px rgba(0,91,179,.32),inset 0 1px rgba(255,255,255,.15)!important;animation:pcf10SkipPulse 3.4s ease-in-out infinite}
.pcf10-skip b{font-size:15px;line-height:1;transition:transform .2s ease}.pcf10-skip:hover b{transform:translateX(3px)}.pcf10-skip:hover{filter:brightness(1.1)}
.pcf10-match-frame{position:fixed;z-index:44;pointer-events:none;border:1px solid rgba(76,175,255,.72);border-radius:20px;box-shadow:0 0 0 1px rgba(83,182,255,.08),0 0 28px rgba(31,139,240,.25),inset 0 0 22px rgba(31,139,240,.035);opacity:0;will-change:left,top,width,height,opacity,border-radius}
.pcf10-transition-flash{position:absolute;z-index:43;inset:-5%;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent 35%,rgba(58,161,255,.11) 49%,rgba(140,213,255,.055) 53%,transparent 66%);transform:translateX(-90%)}
.pcf9.is-matching .pcf10-transition-flash{animation:pcf10TransitionSweep .9s cubic-bezier(.22,.61,.36,1) both}
/* Keep scene copy and app surfaces separated. The risk scene had both on the left. */
@media(min-width:981px){
  .pcf9-risk{left:auto!important;right:2.8vw!important}
  .pcf9-risk .pcf9-person{min-width:0;overflow:hidden}
  .pcf9-riskfields p{grid-template-columns:92px minmax(0,1fr)!important}
  .pcf9-riskfields span{min-width:0;overflow-wrap:anywhere}
  .pcf9-audit{min-width:0}
  .pcf9-caption{z-index:24}
  .pcf9-window{z-index:8}
}
/* Opening: assembly resolves, then the brand gets a deliberate hold before the tagline arrives. */
.pcf10-core-assembly{animation:pcf10CoreSettleA .85s 1.6s cubic-bezier(.16,.78,.2,1) both}
.pcf10-wordmark{animation:pcf10WordmarkA .9s 1.72s cubic-bezier(.18,.75,.22,1) forwards}
.pcf10-logo-line{opacity:0;animation:pcf10LineA .8s 3.85s ease forwards}
.pcf10-logo-sub{opacity:0;animation:pcf10SubA .7s 4.15s ease forwards}
.pcf10-logo-build:after{content:"";position:absolute;left:50%;top:58%;width:340px;height:140px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(35,144,245,.12),transparent 70%);opacity:0;animation:pcf10LogoBreath 2.4s 2.1s ease-in-out infinite;pointer-events:none}
/* Better scene handoff: old product settles back while new product inherits its visual momentum. */
.pcf9-scene{transition:opacity .78s cubic-bezier(.22,.68,.22,1),transform .9s cubic-bezier(.16,.8,.22,1),filter .78s ease}
.pcf9-scene.pcf10-out{filter:brightness(.76) saturate(.88);transform:scale(.982)}
.pcf9-scene.pcf10-out.pcf10-prev{transform:translate3d(-1.2vw,0,0) scale(.982)}
.pcf9-scene.pcf10-out.pcf10-next{transform:translate3d(1.2vw,0,0) scale(.982)}
.pcf9-scene.pcf10-in.pcf10-next{opacity:0;transform:translate3d(1.5vw,0,0) scale(1.008)}
.pcf9-scene.pcf10-in.pcf10-prev{opacity:0;transform:translate3d(-1.5vw,0,0) scale(1.008)}
@keyframes pcf10SkipPulse{0%,72%,100%{box-shadow:0 0 0 1px rgba(80,175,255,.12),0 10px 30px rgba(0,91,179,.28),inset 0 1px rgba(255,255,255,.15)}82%{box-shadow:0 0 0 4px rgba(70,166,255,.07),0 10px 36px rgba(0,108,216,.44),0 0 26px rgba(42,151,255,.18),inset 0 1px rgba(255,255,255,.15)}}
@keyframes pcf10TransitionSweep{0%{opacity:0;transform:translateX(-90%)}22%{opacity:1}100%{opacity:0;transform:translateX(90%)}}
@keyframes pcf10CoreSettleA{0%{transform:translate(-50%,-50%) scale(1.08)}100%{transform:translate(-50%,-50%) scale(.58) translateY(-42px)}}
@keyframes pcf10WordmarkA{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes pcf10LineA{0%{opacity:0;width:0}100%{opacity:1;width:min(520px,68vw)}}
@keyframes pcf10SubA{0%{opacity:0;transform:translateX(-50%) translateY(10px);letter-spacing:.31em}100%{opacity:1;transform:translateX(-50%) translateY(0);letter-spacing:.24em}}
@keyframes pcf10LogoBreath{0%,100%{opacity:.22;transform:translate(-50%,-50%) scale(.92)}50%{opacity:.55;transform:translate(-50%,-50%) scale(1.07)}}
@media(max-width:980px){.pcf10-skip{padding:10px 13px!important}.pcf10-match-frame{display:none}.pcf9.is-matching .pcf10-transition-flash{animation-duration:.65s}}
