/* Capability cards with the moving-edge animation from Argus's demo button. */
.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;margin:28px 0 0;padding:0}
.capability-card{position:relative;isolation:isolate;overflow:hidden;min-width:0;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);outline:none;transition:background .22s,box-shadow .22s,transform .22s,border-color .22s}
.capability-top{display:flex;align-items:center;justify-content:flex-start;margin-bottom:14px}
.capability-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r);background:var(--accent-faint);color:var(--accent);transition:background .22s,color .22s}
.capability-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.capability-card h3{font-size:18px;line-height:1.25;letter-spacing:-.025em;margin:0 0 8px;color:var(--txt)}
.capability-card p{font-size:14px;line-height:1.55;color:var(--txt-2);margin:0}
.capability-card::before,.capability-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background-repeat:no-repeat;transition:opacity .2s;border-radius:inherit}
.capability-card::before{background-image:linear-gradient(90deg,transparent,#b8b5ff,#fff),linear-gradient(270deg,transparent,#b8b5ff,#fff);background-size:55% 2px,55% 2px;background-position:-125% 0,225% 100%}
.capability-card::after{background-image:linear-gradient(180deg,transparent,#d6d3ff,#fff),linear-gradient(0deg,transparent,#d6d3ff,#fff);background-size:2px 75%,2px 75%;background-position:100% -250%,0 350%}
.capability-card:is(:hover,:focus-visible){background:var(--accent-hover);border-color:var(--accent);box-shadow:0 8px 26px var(--accent-b),inset 0 0 0 1px #9290ee;transform:translateY(-2px)}
.capability-card:is(:hover,:focus-visible) h3{color:white}
.capability-card:is(:hover,:focus-visible) p{color:#f2f1ff}
.capability-card:is(:hover,:focus-visible) .capability-icon{background:#ffffff18;color:white}
.capability-card:is(:hover,:focus-visible)::before{opacity:1;animation:cap-edge-x 1.5s linear infinite}
.capability-card:is(:hover,:focus-visible)::after{opacity:1;animation:cap-edge-y 1.5s linear infinite}
@keyframes cap-edge-x{from{background-position:-125% 0,225% 100%}to{background-position:225% 0,-125% 100%}}
@keyframes cap-edge-y{from{background-position:100% -250%,0 350%}to{background-position:100% 350%,0 -250%}}
@media(max-width:900px){.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.capability-grid{grid-template-columns:1fr;gap:16px}.capability-card{padding:20px}}
@media(prefers-reduced-motion:reduce){.capability-card,.capability-icon,.capability-card::before,.capability-card::after{transition:none}.capability-card:is(:hover,:focus-visible){transform:none}.capability-card:is(:hover,:focus-visible)::before,.capability-card:is(:hover,:focus-visible)::after{animation:none}}

/* Large editorial cards: heading, graphic, supporting copy. */
.caps-band{padding-block:64px}.capability-grid{gap:24px;margin-top:36px}.capability-card{padding:26px;display:flex;flex-direction:column;gap:24px}.capability-card h3{font-size:28px;line-height:1.12;letter-spacing:-.045em;min-height:63px;margin:0}.capability-card>p{font-size:16px;line-height:1.55;margin:0}.cap-visual{position:relative;aspect-ratio:1.35;overflow:hidden;border:1px solid #ffffff24;border-radius:var(--r-sm);background:#17236b;color:white;isolation:isolate}.cap-visual>img{width:100%;height:100%;object-fit:cover}.visual-label{position:absolute;z-index:2;top:14px;left:14px;font:9px monospace;letter-spacing:.1em;color:#dce3ff}.visual-status{position:absolute;bottom:12px;left:12px;right:12px;padding:9px 11px;background:#273b91ee;border:1px solid #ffffff30;font-size:11px;color:white}.target-box{position:absolute;left:38%;top:28%;width:27%;height:43%;border:2px solid #c6ffd6}.target-box span{position:absolute;left:-2px;bottom:100%;white-space:nowrap;background:#c6ffd6;color:#142c26;padding:4px;font:8px monospace}.scan-line{position:absolute;top:25%;width:100%;height:1px;background:#c6ffd699;transition:top 1s}.capability-card:is(:hover,:focus-visible) .scan-line{top:72%}.speaker-ring{width:76px;height:76px;border:1px solid #8c9eeb;border-radius:50%;display:grid;place-items:center;margin:45px auto 12px;box-shadow:0 0 0 14px #ffffff08,0 0 0 28px #ffffff05}.speaker-ring svg{width:32px;fill:none;stroke:#e0e6ff;stroke-width:1.4}.sound-wave{display:flex;justify-content:center;align-items:center;gap:5px;height:30px}.sound-wave i{height:calc(6px + mod(var(--n), 5)*5px);min-height:9px;width:3px;background:#acbaff;transform-origin:center}.sound-wave i:nth-child(3n){height:25px}.sound-wave i:nth-child(2n){height:16px}.capability-card:is(:hover,:focus-visible) .sound-wave i{animation:cap-wave .7s ease-in-out infinite alternate;animation-delay:calc(var(--n)*-.07s)}.dispatch-flow{display:grid;justify-items:center;gap:5px;padding:45px 24px 20px}.dispatch-flow>span{padding:11px;width:100%;text-align:center;border:1px solid #ffffff30;font-size:12px;background:#ffffff08}.dispatch-flow b{font-size:15px;color:#aabaff}.dispatch-flow .verified{background:#c6ffd61a;border-color:#a3d6bb;color:#c6ffd6}.site-map>img{object-fit:contain;opacity:.48;padding:30px 10px}.site-map>i{position:absolute;width:8px;height:8px;background:#bdffdc;border-radius:50%;box-shadow:0 0 0 6px #bdffdc18}.capability-card:is(:hover,:focus-visible) .site-map>i{animation:cap-pulse 1.2s infinite alternate}.report-paper{margin:42px 22px 20px;background:#f6f7ff;color:#1f2b58;padding:16px;transform:rotate(-3deg);transition:transform .3s;box-shadow:8px 8px 0 #ffffff10}.capability-card:is(:hover,:focus-visible) .report-paper{transform:rotate(0)}.report-title{font-size:12px;font-weight:600;display:flex;justify-content:space-between}.report-bars{height:60px;display:flex;align-items:end;gap:8px;margin:12px 0;border-bottom:1px solid #d9deef}.report-bars i{flex:1;height:40%;background:#889ae5}.report-bars i:nth-child(2n){height:70%}.report-bars i:nth-child(3n){height:90%;background:#435bc3}.report-event{font-size:8px;padding:7px 0;border-top:1px solid #d9deef}.report-event span{margin-right:8px;color:#68769c}.portal-window{margin:44px 18px 22px;background:#f8f9ff;color:#28336a;border:1px solid #bec7ed;min-height:155px}.portal-heading{padding:13px;border-bottom:1px solid #d9def1;font-size:10px;font-weight:700;display:flex;justify-content:space-between}.portal-heading span{font-size:6px;color:#8996cb}.portal-layout{display:grid;grid-template-columns:65px 1fr;gap:12px;padding:13px}.portal-layout aside{font-size:8px;line-height:2.5;color:#7681a8}.portal-layout b{font-size:10px}.portal-tiles{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:12px}.portal-tiles i{height:26px;background:#e0e5f7;border:1px solid #d0d8f1}
.haven .cap-visual{background:#302e79}.haven .visual-status{background:#48458fee}.haven .report-bars i:nth-child(3n){background:#6661c9}.haven .report-bars i{background:#aaa6e5}
@keyframes cap-wave{to{transform:scaleY(.35)}}@keyframes cap-pulse{to{box-shadow:0 0 0 12px #bdffdc05}}
@media(max-width:1100px){.capability-card{padding:22px;gap:20px}.capability-card h3{font-size:25px}.capability-card>p{font-size:15px}}
@media(max-width:560px){.caps-band{padding-block:44px}.capability-card h3{min-height:0;font-size:28px}.cap-visual{aspect-ratio:1.45}.capability-card>p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.capability-card *{animation:none!important;transition:none!important}}

#capabilities{scroll-margin-top:110px}

.dispatch-flow{position:absolute;inset:36px 20px 14px;padding:0;gap:3px;grid-template-rows:1fr 15px 1fr 15px 1fr;align-items:center}.dispatch-flow>span{padding:8px;font-size:11px}.dispatch-flow b{line-height:15px}
