/* Reference direction: centered typography, restrained blue, editorial spacing,
   and illustrative interfaces. Shared institutional pages retain their layouts. */
:root{--mock-bg:#101215;--mock-line:#ffffff18;--mock-muted:#a0a9b7;--risk-critical:#f28891;--risk-high:#f4ae87;--risk-medium:#dfc98b;--risk-low:#b1c7e0;--motion-ease:cubic-bezier(.22,1,.36,1)}
.page-home{background:#080a0d}.page-home .container{max-width:1140px}.reference-hero{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:95px 0 0;background:radial-gradient(ellipse at 50% 0,#172d442d,transparent 62%)}.reference-hero>.container{position:relative}.reference-grid{position:absolute;inset:0 0 90px;z-index:-1;background-image:linear-gradient(#7195ba0a 1px,transparent 1px),linear-gradient(90deg,#7195ba0a 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse at center,#000,transparent 75%)}.reference-grid>span{position:absolute;width:4px;height:4px;background:#5ba7f9;box-shadow:0 0 20px 4px #2b8fff44;border-radius:50%}.reference-grid>span:first-child{left:14%;top:20%}.reference-grid>span:nth-child(2){right:15%;top:55%}.reference-grid>span:nth-child(3){left:33%;top:77%}.reference-hero .eyebrow{font-family:monospace;letter-spacing:.18em;font-size:11px;margin-bottom:28px}.reference-hero h1{font-size:clamp(38px,4.4vw,64px);font-weight:600;line-height:1.16;letter-spacing:-.055em;max-width:1000px;margin:0 auto 25px;text-wrap:balance}.reference-hero h1 span{color:#65aff9}.reference-hero-lead{font-size:20px;color:#c7d0dc;margin-bottom:12px}.reference-hero-description{font-size:16px;line-height:1.8;color:#98a5b6;margin:0 auto;max-width:640px}.reference-hero .hero-actions{justify-content:center;margin-top:30px;gap:25px}.reference-hero .button{background:#579fe8;color:#06101b;font-size:13px;padding:13px 20px;border-color:#75b7f9;border-radius:2px}.reference-secondary{font-size:13px;display:inline-flex;align-items:center;gap:18px;min-height:44px;color:#c1cedf}.reference-secondary:hover{color:var(--blue)}.reference-proof{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:35px;text-align:left;border-top:1px solid var(--line);margin-top:85px;padding:33px 0 0}.reference-proof>div{display:flex;flex-direction:column;gap:9px;align-items:center}.reference-proof strong{font:500 20px Montserrat,sans-serif;letter-spacing:-.025em}.reference-proof>div:first-child strong{font-size:18px}.reference-proof>div:nth-child(2) strong{font-size:28px}.reference-proof span{font-size:9px;letter-spacing:.15em;color:#8f9db0}.page-home .section{padding:105px 0}.centered-heading{text-align:center;margin:0 auto 45px;max-width:780px}.page-home .eyebrow{font-family:monospace;font-size:10px;font-weight:400;letter-spacing:.18em}.centered-heading h2{font-size:34px;margin-bottom:17px;font-weight:600}.centered-heading>p:last-child{font-size:16px;margin-bottom:0}.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.approach-grid article{border-top:1px solid var(--line);padding-top:23px}.step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.step-top svg{width:26px;height:26px;color:#9db8d0}.step-top span{font:11px monospace;color:#8092a7}.approach-grid h3{font-size:18px;letter-spacing:-.025em;margin-bottom:13px;font-weight:600}.approach-grid p{font-size:14px;line-height:1.8;margin:0}.page-home .mock-feature{padding:85px 0 105px}.mock-feature-grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:75px;align-items:center}.feature-copy h2{font-size:36px;line-height:1.25;font-weight:600;letter-spacing:-.045em;margin-bottom:22px}.feature-copy>p:not(.eyebrow){font-size:16px;line-height:1.8}.feature-copy h2 span,.defense-layout h2 span{color:#e2eaf4}.feature-list{padding:0;margin:28px 0;list-style:none}.feature-list li{display:flex;align-items:flex-start;gap:15px;margin-bottom:20px}.feature-list svg{color:#8baecb;width:23px;height:23px;flex-shrink:0;margin-top:2px}.feature-list h3{font-size:15px;letter-spacing:-.015em;margin-bottom:5px;font-weight:600}.feature-list p{font-size:13px;line-height:1.7;margin:0;color:#a0adbf}.feature-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:25px}.feature-actions>a{min-height:44px;display:inline-flex;align-items:center;font-size:12px}.feature-actions>a:not(.text-link){color:#9eaec2;border-bottom:1px solid #ffffff20}.feature-actions>a:hover{color:#b7d8ff}.feature-actions .text-link{font-size:13px;gap:13px}.mock-scene{min-width:0;position:relative;perspective:1000px}.mock-scene:before{content:'';position:absolute;inset:10% -10%;background:radial-gradient(ellipse,#1a5c9d15,transparent 70%);z-index:0;pointer-events:none}.mock-window{position:relative;background:radial-gradient(ellipse at 50% 40%,#18466a26,transparent 70%),#0b111a;border:1px solid #6390ba3b;border-radius:4px;box-shadow:0 18px 60px #0003;overflow:hidden;transform-origin:center}.mock-chrome{display:flex;gap:12px;align-items:center;min-height:43px;padding:11px 16px;background:transparent;border-bottom:1px solid #ffffff12;color:#9fb5ce;font:10px/1.5 "Ubuntu Mono",monospace;letter-spacing:.07em}.window-dots{display:flex;gap:5px;flex-shrink:0}.window-dots i{width:6px;height:6px;display:block;border-radius:50%;background:#6b7481}.window-dots i:first-child{background:#cb6b70}.window-dots i:nth-child(2){background:#c9ac65}.window-dots i:last-child{background:#6aaf8a}.mock-lock{margin-left:auto;color:#778ba4;font-size:18px}.dashboard-body{padding:22px 20px}.dashboard-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.mock-overline{font:8px/1.5 "Ubuntu Mono",monospace;letter-spacing:.12em;color:#93a0b4}.dashboard-title h3{font-size:15px;letter-spacing:-.03em;margin-top:6px;font-weight:500}.demo-tag{padding:3px 7px;color:#91b6dc;border:1px solid #6a9ccc40;font:8px "Ubuntu Mono",monospace;letter-spacing:.1em}.risk-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.risk-metric{border:1px solid #789bb640;border-top:2px solid currentColor;background:#0e1824;padding:9px 8px;text-align:center;border-radius:2px}.risk-metric span{display:block;color:#a6b3c4;font-size:10px}.risk-metric strong{display:block;font:500 21px Montserrat,sans-serif;margin-top:4px}.critical{color:var(--risk-critical)}.high{color:var(--risk-high)}.medium{color:var(--risk-medium)}.low{color:var(--risk-low)}.assessment-progress{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:#9facbf;font-size:9px;margin:18px 0}.assessment-progress>span:last-of-type{font-size:8px;color:#879ab0}.assessment-progress>div{width:100%;height:3px;background:#ffffff0b;overflow:hidden}.assessment-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#345c80,#7fc5ff);transform-origin:left}.findings{border:1px solid #6390ba3b;border-radius:3px;background:#0b1420;overflow:hidden}.finding{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:13px 10px;border-bottom:1px solid #ffffff13;min-height:59px}.finding:last-child{border-bottom:0}.finding strong{display:block;font-size:10px;font-weight:700;line-height:1.6}.finding small{display:block;font-size:8px;color:#8596ae}.severity{font-size:8px;border:1px solid currentColor;padding:2px 5px;border-radius:2px;opacity:.95}.finding-status{font-size:8px;color:#a7c6e1;background:#5895d014;padding:3px 5px}.finding:last-child .finding-status{color:#9aceb6;background:#65b58b12}.mock-delivery{display:flex;align-items:center;gap:8px;font-size:9px;color:#99abc0;padding-top:16px}.mock-delivery svg{width:15px;height:15px;color:#97c9b3}.checkmark{margin-left:auto;color:#9acdb5}.mock-caption{position:relative;display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:12px;color:#8fa0b6;font-size:10px;line-height:1.6}.replay-mock{background:none;border:0;color:#b0c0d5;font-size:10px;padding:6px 0 6px 8px;min-height:44px;white-space:nowrap;display:flex;align-items:center;gap:8px}.replay-mock:hover{color:var(--blue)}.replay-mock:disabled{opacity:.5;cursor:default}.ai-feature .mock-feature-grid{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}.terminal-body{padding:22px 18px 18px;font-family:"Ubuntu Mono",monospace;min-height:365px}.terminal-command{display:flex;align-items:center;gap:7px;border:1px solid #4a83bd3d;padding:11px 9px;background:#101e2d;font-size:10px;color:#d3e6fa;white-space:nowrap}.terminal-command>span:first-child{color:var(--blue)}.terminal-command>span:nth-child(2){color:#98b9da}.terminal-caret{display:inline-block;width:5px;height:12px;background:#a4caff;flex-shrink:0}.terminal-session{display:flex;justify-content:space-between;gap:10px;font-size:7px;letter-spacing:.03em;color:#91a4bc;margin:20px 0 14px}.terminal-line{display:grid;grid-template-columns:14px 44px minmax(0,1fr);gap:7px;align-items:start;font-size:9px;line-height:1.8;color:#bbc7d9;margin-bottom:12px}.terminal-line-number{color:#73849c}.terminal-tag{text-transform:uppercase;font-size:7px;letter-spacing:.02em;text-align:center;background:#ffffff08;color:#99abc2;padding:2px 0}.terminal-line small{grid-column:3;font-size:8px;color:#8eac9f;margin-top:-3px}.terminal-line.finding{padding:0;border:none;min-height:0}.terminal-line.finding .terminal-tag{background:#ef8a9015;color:#ec9fa5}.terminal-line.finding>span:nth-child(3){color:#e5a7ab}.terminal-result{display:flex;align-items:center;gap:12px;border-top:1px solid #ffffff12;margin-top:20px;padding-top:17px}.terminal-result svg{width:23px;height:23px;color:#8db5dd;flex-shrink:0}.terminal-result strong{display:block;font-size:10px;line-height:1.7}.terminal-result div>span{font-size:9px;color:#92a6bf}.continuous-defense{border-top:1px solid #ffffff09;border-bottom:1px solid #ffffff09;background:radial-gradient(ellipse at 80% 50%,#193a5818,transparent 65%)}.defense-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.defense-layout h2{font-size:35px;line-height:1.25;font-weight:600}.defense-layout>div>p:not(.eyebrow){font-size:16px}.defense-flow{padding:25px 0}.flow-label{display:block;color:#94a7be;font:9px monospace;letter-spacing:.14em;text-align:center;margin-bottom:25px}.flow-sources{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.flow-sources span{text-align:center;padding:10px 5px;border:1px solid #7ea5ce30;background:#12203325;color:#b8cee5;font-size:12px}.defense-flow>svg{display:block;width:100%;height:auto;max-height:100px}.defense-flow>svg path{stroke:#73a4d136;stroke-width:1}.defense-flow>svg .flow-signal{stroke:#81bfff;stroke-dasharray:12 230;stroke-dashoffset:0}.flow-core{display:flex;gap:15px;align-items:center;padding:20px;border:1px solid #6ea9e24a;background:#131e2c5e;box-shadow:0 0 35px #255d8e12}.flow-core>svg{width:29px;height:29px;color:#92c9fa;flex-shrink:0}.flow-core>span{font:11px/1.5 Montserrat,sans-serif;letter-spacing:.05em}.flow-core small{display:block;font:9px/1.8 Lato,sans-serif;letter-spacing:0;color:#9db0c7}.flow-core>strong{font:21px Montserrat,sans-serif;color:#a2cdf4;margin-left:auto;white-space:nowrap}.page-home .solutions .section-heading{display:block;text-align:center;max-width:760px;margin:0 auto 40px}.page-home .solutions .section-heading>p{margin:20px auto 0}.page-home .solutions h2{font-size:34px;font-weight:600}.page-home .pillar-grid{border:0;gap:35px}.page-home .pillar{padding:26px 0 0;border:0;border-top:1px solid var(--line);background:none}.page-home .pillar+.pillar{border-left:0}.page-home .pillar:hover{background:none}.page-home .pillar-icon{display:none}.page-home .pillar-index{position:static;display:block;font:9px monospace;color:#91aecb;margin-bottom:20px}.page-home .pillar h3{font-size:19px;font-weight:600}.page-home .pillar p{font-size:14px;min-height:76px}.page-home .reference-about{border-top:1px solid var(--line);padding:75px 0}.reference-about h2{font-size:33px;font-weight:600;line-height:1.3;margin-bottom:0}.reference-about h2 span{color:#cbd8e9}.reference-about p:not(.eyebrow){font-size:16px}.page-home .contact{border-top:0;padding-top:80px;background:radial-gradient(ellipse at 50% 50%,#17273815,transparent 70%)}.page-home .contact-grid{display:block;max-width:670px;margin:auto;border:1px solid var(--line);padding:45px;background:#0c0f14}.page-home .contact-grid>div{text-align:center}.page-home .contact-grid h2{font-size:32px;font-weight:600;line-height:1.25}.page-home .contact-grid h2 br{display:none}.page-home .contact-grid>div>p:not(.eyebrow){margin:0 auto 30px;max-width:500px}.page-home .contact-note{display:none}.page-home .contact .eyebrow{margin-bottom:18px}.page-home .contact form{text-align:left}.page-home .contact input,.page-home .contact select,.page-home .contact textarea{background:#101419}.page-home .contact .submit{background:#15243a;color:#b7d8fa;border:1px solid #5e99d54a}.page-home .contact .submit:hover{background:#1e3550}.page-home form .privacy-pending{font-size:11px}.languages a{min-width:30px;min-height:44px;display:inline-flex;justify-content:center;align-items:center}.nav-toggle{min-height:44px}.nav-group{padding:5px 0}.mock-step,.mock-progress,.flow-signal{backface-visibility:hidden}
@media(max-width:1100px){.mock-feature-grid,.ai-feature .mock-feature-grid{gap:40px}.feature-copy h2{font-size:31px}.terminal-line{font-size:8px;gap:5px}.terminal-command{font-size:9px;gap:5px}.defense-layout{gap:45px}.reference-proof strong{font-size:17px}.reference-proof>div:first-child strong{font-size:16px}}
@media(max-width:760px){.reference-hero{padding-top:60px}.reference-hero h1{font-size:clamp(33px,7.3vw,49px);letter-spacing:-.055em}.reference-hero .eyebrow{font-size:8px;letter-spacing:.1em}.reference-hero-lead{font-size:17px;line-height:1.7}.reference-hero-description{font-size:14px}.reference-hero-description br{display:none}.reference-hero .hero-actions{flex-direction:column;align-items:center;gap:12px}.reference-proof{grid-template-columns:1fr;gap:23px;margin-top:50px;padding-top:25px}.reference-proof>div{gap:6px}.reference-proof>div:first-child strong{font-size:16px}.reference-proof>div:nth-child(2) strong{font-size:23px}.reference-proof span{font-size:8px}.page-home .section{padding:65px 0}.centered-heading{margin-bottom:30px}.centered-heading h2{font-size:28px;line-height:1.3}.centered-heading>p:last-child{font-size:14px}.approach-grid{grid-template-columns:1fr;gap:25px}.approach-grid article{padding-top:18px}.step-top{margin-bottom:14px}.approach-grid h3{font-size:17px}.mock-feature-grid,.ai-feature .mock-feature-grid{grid-template-columns:1fr;gap:35px}.page-home .mock-feature{padding:55px 0}.feature-copy h2{font-size:30px}.feature-copy>p:not(.eyebrow){font-size:15px}.ai-feature .feature-copy{order:-1}.feature-actions{gap:12px 22px}.mock-caption{font-size:9px;gap:7px}.replay-mock{font-size:9px}.dashboard-body{padding:18px 12px}.finding{padding:12px 8px;gap:5px}.finding strong{font-size:9px}.finding small{font-size:7px}.severity,.finding-status{font-size:7px;padding:3px}.mock-chrome{font-size:9px;padding:10px 12px}.dashboard-title h3{font-size:14px}.terminal-body{padding:18px 12px}.terminal-line{font-size:9px;grid-template-columns:13px 43px minmax(0,1fr);gap:6px}.terminal-command{font-size:9px;gap:4px;flex-wrap:wrap}.terminal-session{font-size:6px}.terminal-result strong{font-size:9px}.terminal-result div>span{font-size:8px}.defense-layout{grid-template-columns:1fr;gap:20px}.defense-layout h2{font-size:30px}.defense-layout>div>p:not(.eyebrow){font-size:15px}.flow-sources{gap:12px}.flow-core{padding:16px;gap:10px}.flow-core>span{font-size:10px}.flow-core>strong{font-size:19px}.flow-core small{font-size:8px}.page-home .solutions h2{font-size:29px}.page-home .pillar-grid{gap:25px}.page-home .pillar p{min-height:0}.page-home .reference-about{padding:55px 0}.reference-about h2{font-size:28px}.reference-about p:not(.eyebrow){font-size:15px}.page-home .contact{padding-top:35px}.page-home .contact-grid{padding:30px 22px}.page-home .contact-grid h2{font-size:27px}.nav-group{padding:0}.nav-toggle{min-height:50px}.mock-window{box-shadow:0 16px 36px #0005}}
.mock-overline{font-size:9px}.risk-metric span{font-size:11px}.finding strong{font-size:11px}.finding small{font-size:9px}.severity,.finding-status{font-size:9px}.terminal-command{font-size:11px;flex-wrap:wrap}.terminal-line{font-size:11px;grid-template-columns:16px 46px minmax(0,1fr)}.terminal-tag{font-size:8px}.terminal-line small{font-size:10px}.terminal-session{font-size:8px}.terminal-result strong{font-size:11px}.terminal-result div>span{font-size:10px}.mock-caption,.replay-mock{font-size:11px}.mock-delivery{font-size:10px}.assessment-progress,.assessment-progress>span:last-of-type{font-size:9px}
@media(max-width:760px){.mock-caption,.replay-mock{font-size:10px}.terminal-line{font-size:10px;gap:5px;grid-template-columns:14px 42px minmax(0,1fr)}.terminal-command{font-size:10px}.terminal-session{font-size:7px}.finding strong{font-size:10px}.severity,.finding-status{font-size:8px}.finding small{font-size:8px}.mock-caption>span{max-width:58%}.dashboard-title h3{font-size:13px}}
@media(prefers-reduced-motion:reduce){.mock-step,.mock-window,.mock-progress,.flow-signal,[data-reveal]{animation:none!important;transition:none!important;transform:none!important}.terminal-caret{display:none}.flow-signal{stroke-dasharray:none;opacity:.6}}

/* Synchronized opposing trajectories converge at each lane's interception point. */
.reference-hero>.container{z-index:1}
.hero-particles{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;--defender-color:#6dbaff;--attack-color:#d7a077}
.particle-lane{position:absolute;left:0;right:0;top:var(--lane-top);height:1px}
.defender-flight,.attack-flight{position:absolute;top:0;height:2px;animation-duration:var(--lane-duration);animation-delay:var(--lane-delay);animation-timing-function:linear;animation-iteration-count:infinite;animation-play-state:paused;opacity:0}
.defender-flight{left:0;width:var(--meeting);color:var(--defender-color);animation-name:defender-intercept}
.attack-flight{right:0;width:calc(100% - var(--meeting));color:var(--attack-color);animation-name:attack-intercept}
.defender-flight:after,.attack-flight:after{content:'';position:absolute;top:-1px;width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.defender-flight:after{left:0}.attack-flight:after{right:0;width:3px;height:3px}
.defender-flight:before,.attack-flight:before{content:'';position:absolute;top:0;width:42px;height:1px}
.defender-flight:before{right:100%;background:linear-gradient(90deg,transparent,var(--defender-color))}
.attack-flight:before{left:100%;background:linear-gradient(90deg,var(--attack-color),transparent);width:30px}
.particle-impact{position:absolute;left:var(--meeting);top:0;width:1px;height:1px}
.particle-impact:before{content:'';position:absolute;left:-8px;top:-8px;width:16px;height:16px;border:1px solid var(--defender-color);border-radius:50%;box-shadow:0 0 12px #6dbaff33;opacity:0;animation:interception-pulse var(--lane-duration) ease-out var(--lane-delay) infinite paused}
.particle-impact i{position:absolute;top:0;left:0;width:3px;height:2px;border-radius:50%;background:var(--defender-color);opacity:0;animation:interception-spark var(--lane-duration) ease-out var(--lane-delay) infinite paused}
.particle-impact i:nth-child(1){--spark-x:22px;--spark-y:-16px}.particle-impact i:nth-child(2){--spark-x:30px;--spark-y:4px;background:var(--attack-color)}.particle-impact i:nth-child(3){--spark-x:15px;--spark-y:19px}
.hero-particles.is-floating .defender-flight,.hero-particles.is-floating .attack-flight,.hero-particles.is-floating .particle-impact:before,.hero-particles.is-floating .particle-impact i{animation-play-state:running}
@keyframes defender-intercept{0%{transform:translateX(0);opacity:0}7%{opacity:.16}55%{opacity:.22}58%{transform:translateX(100%);opacity:.28}66%{transform:translateX(108%);opacity:0}100%{transform:translateX(108%);opacity:0}}
@keyframes attack-intercept{0%{transform:translateX(0);opacity:0}7%{opacity:.12}55%{opacity:.17}58%{transform:translateX(-100%);opacity:.22}61%,100%{transform:translateX(-100%);opacity:0}}
@keyframes interception-pulse{0%,55%{transform:scale(.2);opacity:0}58%{transform:scale(.5);opacity:.2}70%,100%{transform:scale(2.3);opacity:0}}
@keyframes interception-spark{0%,57%{transform:translate(0,0);opacity:0}59%{opacity:.24}72%,100%{transform:translate(var(--spark-x),var(--spark-y));opacity:0}}
.particle-lane:nth-child(1){--lane-top:23%;--meeting:51%;--lane-duration:8s;--lane-delay:-1.13s;}
.particle-lane:nth-child(2){--lane-top:40%;--meeting:58%;--lane-duration:9s;--lane-delay:-2.26s;}
.particle-lane:nth-child(3){--lane-top:57%;--meeting:65%;--lane-duration:10s;--lane-delay:-3.39s;}
.particle-lane:nth-child(4){--lane-top:74%;--meeting:47%;--lane-duration:11s;--lane-delay:-4.52s;}
.particle-lane:nth-child(5){--lane-top:10%;--meeting:54%;--lane-duration:7s;--lane-delay:-5.65s;}
.particle-lane:nth-child(6){--lane-top:27%;--meeting:61%;--lane-duration:8s;--lane-delay:-6.78s;}
.particle-lane:nth-child(7){--lane-top:44%;--meeting:68%;--lane-duration:9s;--lane-delay:-7.91s;}
.particle-lane:nth-child(8){--lane-top:61%;--meeting:50%;--lane-duration:10s;--lane-delay:-9.04s;}
.particle-lane:nth-child(9){--lane-top:78%;--meeting:57%;--lane-duration:11s;--lane-delay:-10.17s;}
.particle-lane:nth-child(10){--lane-top:14%;--meeting:64%;--lane-duration:7s;--lane-delay:-11.3s;}
.particle-lane:nth-child(11){--lane-top:31%;--meeting:46%;--lane-duration:8s;--lane-delay:-12.43s;}
.particle-lane:nth-child(12){--lane-top:48%;--meeting:53%;--lane-duration:9s;--lane-delay:-13.56s;}
@media(max-width:760px){.particle-lane:nth-child(n+8){display:none}.defender-flight:before{width:25px}.attack-flight:before{width:20px}}
@media(prefers-reduced-motion:reduce){.hero-particles{display:none}.hero-particles *, .hero-particles :before{animation:none!important}}

/* Brand watermark sits above particles and below the hero content. */
.reference-hero>.container{z-index:2}.reference-hero>.hero-watermark{position:absolute;z-index:1;left:clamp(-90px,-4vw,-20px);top:46%;width:clamp(300px,38vw,560px);height:auto;opacity:.075;transform:translateY(-50%);pointer-events:none;user-select:none}@media(max-width:760px){.reference-hero>.hero-watermark{left:-110px;top:37%;width:330px;opacity:.05}}

.terminal-result{font-family:Lato,Arial,sans-serif}.terminal-result strong{font-family:Montserrat,Arial,sans-serif;font-weight:600}

/* Translucent neural network moves behind the AI section on scroll. */
.ai-feature{position:relative;isolation:isolate;overflow:hidden}
.ai-feature>.container{position:relative;z-index:1}
.ai-parallax-bg,.ai-parallax-glow{position:absolute;inset:-90px 0;pointer-events:none;z-index:0}
.ai-parallax-bg{opacity:.25;mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}
.ai-parallax-glow{background:radial-gradient(ellipse at 75% 45%,#3f9af50d,transparent 65%);opacity:.5}
@media(max-width:760px){.ai-parallax-bg{opacity:.18}}
@media(prefers-reduced-motion:reduce){.ai-parallax-bg,.ai-parallax-glow{transform:none!important}}

.ai-parallax-bg>svg{display:block;width:100%;height:100%}

/* Organic graph: local curved edges, soft nodes and synaptic transmissions. */
.ai-parallax-bg .graph-depth{transform-origin:center;animation:neural-drift 18s ease-in-out infinite alternate paused}


.ai-feature.is-graph-active .graph-depth{animation-play-state:running}
@keyframes neural-drift{from{transform:translate(-6px,3px) rotate(-.35deg)}to{transform:translate(7px,-5px) rotate(.35deg)}}
@media(prefers-reduced-motion:reduce){.ai-parallax-bg .graph-depth,}

/* Synaptic transmissions follow real graph edges; nodes respond on arrival. */
.ai-parallax-bg .synapse-aura,.ai-parallax-bg .synapse-tail,.ai-parallax-bg .synapse-head{stroke:#d6ae76;stroke-linecap:round;fill:none;opacity:0;animation:transmit-signal var(--synapse-duration) linear var(--synapse-delay) infinite paused}.ai-parallax-bg .synapse-aura{stroke:#c7955d;stroke-width:6;stroke-dasharray:.065 .935;filter:blur(2px)}.ai-parallax-bg .synapse-tail{stroke-width:2.5;stroke-dasharray:.04 .96;filter:blur(1px)}.ai-parallax-bg .synapse-head{stroke:#efd3a5;stroke-width:1.6;stroke-dasharray:.012 .988;filter:blur(.5px)}.synapse-node-halo,.synapse-node-core{transform-box:fill-box;transform-origin:center;opacity:0;animation-duration:var(--synapse-duration);animation-delay:var(--synapse-delay);animation-iteration-count:infinite;animation-play-state:paused;animation-timing-function:ease-out}.synapse-node-halo{fill:none;stroke:#d1ad76;stroke-width:1}.synapse-node-core{fill:#ead1aa}.ai-feature.is-graph-active .synapse-aura,.ai-feature.is-graph-active .synapse-tail,.ai-feature.is-graph-active .synapse-head,.ai-feature.is-graph-active .synapse-node-halo,.ai-feature.is-graph-active .synapse-node-core{animation-play-state:running}@keyframes transmit-signal{0%,8%{stroke-dashoffset:1;opacity:0}12%{opacity:.45}84%{opacity:.45}90%,100%{stroke-dashoffset:0;opacity:0}}
.synapse-0{--synapse-duration:4.2s;--synapse-delay:-0s;}
.synapse-node-0-0 circle{animation-name:neuron-0-0}
@keyframes neuron-0-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-0-1 circle{animation-name:neuron-0-1}
@keyframes neuron-0-1{0%,26.93%{opacity:0;transform:scale(.6)}29.93%{opacity:.55;transform:scale(1)}37.93%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-0-2 circle{animation-name:neuron-0-2}
@keyframes neuron-0-2{0%,59.15%{opacity:0;transform:scale(.6)}62.15%{opacity:.55;transform:scale(1)}70.15%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-0-3 circle{animation-name:neuron-0-3}
@keyframes neuron-0-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-1{--synapse-duration:4.53s;--synapse-delay:-0.78s;}
.synapse-node-1-0 circle{animation-name:neuron-1-0}
@keyframes neuron-1-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-1-1 circle{animation-name:neuron-1-1}
@keyframes neuron-1-1{0%,21.75%{opacity:0;transform:scale(.6)}24.75%{opacity:.55;transform:scale(1)}32.75%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-1-2 circle{animation-name:neuron-1-2}
@keyframes neuron-1-2{0%,58.09%{opacity:0;transform:scale(.6)}61.09%{opacity:.55;transform:scale(1)}69.09%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-1-3 circle{animation-name:neuron-1-3}
@keyframes neuron-1-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-2{--synapse-duration:4.86s;--synapse-delay:-1.56s;}
.synapse-node-2-0 circle{animation-name:neuron-2-0}
@keyframes neuron-2-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-2-1 circle{animation-name:neuron-2-1}
@keyframes neuron-2-1{0%,29.19%{opacity:0;transform:scale(.6)}32.19%{opacity:.55;transform:scale(1)}40.19%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-2-2 circle{animation-name:neuron-2-2}
@keyframes neuron-2-2{0%,57.23%{opacity:0;transform:scale(.6)}60.23%{opacity:.55;transform:scale(1)}68.23%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-2-3 circle{animation-name:neuron-2-3}
@keyframes neuron-2-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-3{--synapse-duration:5.19s;--synapse-delay:-2.34s;}
.synapse-node-3-0 circle{animation-name:neuron-3-0}
@keyframes neuron-3-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-3-1 circle{animation-name:neuron-3-1}
@keyframes neuron-3-1{0%,39.63%{opacity:0;transform:scale(.6)}42.63%{opacity:.55;transform:scale(1)}50.63%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-3-2 circle{animation-name:neuron-3-2}
@keyframes neuron-3-2{0%,69.85%{opacity:0;transform:scale(.6)}72.85%{opacity:.55;transform:scale(1)}80.85%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-3-3 circle{animation-name:neuron-3-3}
@keyframes neuron-3-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-4{--synapse-duration:5.52s;--synapse-delay:-3.12s;}
.synapse-node-4-0 circle{animation-name:neuron-4-0}
@keyframes neuron-4-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-4-1 circle{animation-name:neuron-4-1}
@keyframes neuron-4-1{0%,24.15%{opacity:0;transform:scale(.6)}27.15%{opacity:.55;transform:scale(1)}35.15%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-4-2 circle{animation-name:neuron-4-2}
@keyframes neuron-4-2{0%,54.37%{opacity:0;transform:scale(.6)}57.37%{opacity:.55;transform:scale(1)}65.37%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-4-3 circle{animation-name:neuron-4-3}
@keyframes neuron-4-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-5{--synapse-duration:5.85s;--synapse-delay:-3.9s;}
.synapse-node-5-0 circle{animation-name:neuron-5-0}
@keyframes neuron-5-0{0%,6.00%{opacity:0;transform:scale(.6)}9.00%{opacity:.55;transform:scale(1)}17.00%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-5-1 circle{animation-name:neuron-5-1}
@keyframes neuron-5-1{0%,33.01%{opacity:0;transform:scale(.6)}36.01%{opacity:.55;transform:scale(1)}44.01%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-5-2 circle{animation-name:neuron-5-2}
@keyframes neuron-5-2{0%,55.98%{opacity:0;transform:scale(.6)}58.98%{opacity:.55;transform:scale(1)}66.98%,100%{opacity:0;transform:scale(2.5)}}
.synapse-node-5-3 circle{animation-name:neuron-5-3}
@keyframes neuron-5-3{0%,88.00%{opacity:0;transform:scale(.6)}91.00%{opacity:.55;transform:scale(1)}99.00%,100%{opacity:0;transform:scale(2.5)}}
@media(prefers-reduced-motion:reduce){.neural-route{display:none}.ai-parallax-bg .neural-route *{animation:none!important}}

.synapse-0.synapse-echo{--synapse-delay:-2.1s;}
.synapse-1.synapse-echo{--synapse-delay:-3.045s;}
.synapse-2.synapse-echo{--synapse-delay:-3.99s;}
.synapse-3.synapse-echo{--synapse-delay:-4.935s;}
.synapse-4.synapse-echo{--synapse-delay:-5.88s;}
.synapse-5.synapse-echo{--synapse-delay:-6.825s;}

/* Context-specific icons retain the same stroke and sizing across the home. */
.page-home .pillar-icon{display:block;margin-bottom:18px;color:var(--blue)}
.page-home .pillar-icon>.icon{width:27px;height:27px}
.mock-lock>.icon{width:13px;height:13px;display:block}
.checkmark>.icon{width:13px;height:13px}
.flow-sources>span{display:flex;align-items:center;justify-content:center;gap:8px}
.flow-sources>span>.icon{width:18px;height:18px;color:#91b8db}
@media(max-width:760px){.flow-sources>span{flex-direction:column;gap:6px}}

.languages{gap:4px}
.languages a{width:44px;height:44px;padding:6px;border:1px solid transparent;border-radius:4px;opacity:.5;transition:opacity .2s,border-color .2s}
.languages a img{width:20px;height:13px;object-fit:contain}
@media(min-width:1051px){.languages a img{width:16px;height:11px}}
.languages a[aria-current="page"]{opacity:1;border-color:#7db7ef55;background:#589cdf0a}
.languages a:hover,.languages a:focus-visible{opacity:1}

.language-toggle,.language-close{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;padding:9px;border:1px solid var(--line);border-radius:4px;background:none;color:#b7c9df}
.language-toggle:hover,.language-close:hover{color:var(--blue);border-color:var(--blue)}
.language-toggle>.icon,.language-close>.icon{width:24px;height:24px}
body.language-open{overflow:hidden}
.language-dialog{position:fixed;inset:0;margin:auto;width:min(360px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:24px;border:1px solid #ffffff20;border-radius:12px;background:#0b1018;color:var(--text);box-shadow:0 24px 80px #0008;overflow:auto}
.language-dialog::backdrop{background:#000a}
.language-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.language-dialog h2{margin:0;font-size:20px;line-height:1.3}
.language-dialog .languages{display:grid;gap:12px;padding:0;letter-spacing:0}
.language-dialog .languages a{justify-content:flex-start;gap:14px;width:100%;height:auto;min-height:60px;padding:14px;border-color:var(--line);font:14px Lato,Arial,sans-serif;opacity:.75}
.language-dialog .languages a img{width:32px;height:22px}
.language-dialog .languages a[aria-current="page"]{opacity:1;border-color:#7db7ef80;background:#589cdf12}
.language-dialog .languages a:hover,.language-dialog .languages a:focus-visible{opacity:1;border-color:var(--blue)}

/* Past clients: supplied monochrome logos with keyboard-accessible tooltips. */
.past-clients{padding:65px 0 20px}
.clients-heading{text-align:center;margin-bottom:30px}
.clients-heading .eyebrow{margin-bottom:15px}
.clients-heading h2{font-size:23px;font-weight:500;letter-spacing:-.025em;margin:0;color:#c6d0de}
.clients-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 22px;list-style:none;margin:0;padding:0}
.client-logo{position:relative;display:flex;align-items:center;justify-content:center;min-height:112px;padding:20px 14px;border:1px solid transparent;border-radius:4px;transition:border-color .2s,background .2s}
.client-logo img{width:100%;max-width:174px;height:62px;object-fit:contain;opacity:.6;transition:opacity .2s}
.client-logo:hover,.client-logo:focus-visible{border-color:var(--line);background:#ffffff03;z-index:2}
.client-logo:hover img,.client-logo:focus-visible img{opacity:1}
.client-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);padding:8px 12px;max-width:260px;width:max-content;background:#18212d;border:1px solid #ffffff20;box-shadow:0 5px 20px #0005;color:#edf2f9;font:12px/1.5 Lato,sans-serif;text-align:center;border-radius:4px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,transform .15s,visibility .15s}
.client-logo:hover .client-tooltip,.client-logo:focus-visible .client-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto}
@media(max-width:1050px){.clients-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.clients-grid>li:last-child{grid-column:2}}
@media(max-width:760px){.past-clients{padding:50px 0 10px}.clients-heading h2{font-size:20px;line-height:1.4}.clients-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.clients-grid>li:last-child{grid-column:2}.client-logo{min-height:76px;padding:12px 6px}.client-logo img{height:40px;max-width:110px}.client-tooltip{max-width:180px}.clients-grid>li:nth-child(3n + 1) .client-tooltip{left:0;transform:translate(0,4px)}.clients-grid>li:nth-child(3n) .client-tooltip{left:auto;right:0;transform:translate(0,4px)}.clients-grid>li:nth-child(3n + 1) .client-logo:hover .client-tooltip,.clients-grid>li:nth-child(3n + 1) .client-logo:focus-visible .client-tooltip,.clients-grid>li:nth-child(3n) .client-logo:hover .client-tooltip,.clients-grid>li:nth-child(3n) .client-logo:focus-visible .client-tooltip{transform:translate(0,0)}.clients-grid>li:last-child .client-tooltip{left:50%;right:auto;transform:translate(-50%,4px)}.clients-grid>li:last-child .client-logo:hover .client-tooltip,.clients-grid>li:last-child .client-logo:focus-visible .client-tooltip{transform:translate(-50%,0)}}

.assessment-steps{display:inline-flex;align-items:center;gap:5px}.assessment-steps>.mdi-arrow-right{width:12px;height:12px;flex-shrink:0}

.approach-controls{display:none}
.dashboard-body .finding{grid-template-columns:minmax(0,1fr) 72px 72px}
.dashboard-body .severity,.dashboard-body .finding-status{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:72px;min-width:72px;max-width:72px;height:24px;min-height:24px;max-height:24px;padding:0;white-space:nowrap;line-height:1}
@media(max-width:760px){
 #research-cards{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 0 8px}
 #research-cards::-webkit-scrollbar{display:none}
 #research-cards>article{flex:0 0 calc(100% - 24px);min-width:0;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--panel);scroll-snap-align:start}
 #research-cards h3>.icon{flex-shrink:0}
}
@media(max-width:760px){
 .approach-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 0 8px}
 .approach-grid::-webkit-scrollbar{display:none}
 .approach-grid article{flex:0 0 calc(100% - 24px);min-width:0;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--panel);scroll-snap-align:start}
 .approach-grid .step-top{margin-bottom:24px}
 .approach-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px}
 .approach-controls button{display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--blue)}
 .approach-controls button:hover:not(:disabled){border-color:var(--blue)}
 .approach-controls button:disabled{opacity:.3;cursor:default}
 .approach-position{margin:0;min-width:40px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
}

@media(max-width:760px){.clients-grid>.client-desktop-only{display:none}.clients-grid>li:last-child{grid-column:auto}}

@media(max-width:760px){
 .page-home .pillar-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 0 8px}
 .page-home .pillar-grid::-webkit-scrollbar{display:none}
 .page-home .pillar-grid>.pillar{display:flex;flex-direction:column;flex:0 0 calc(100% - 24px);min-width:0;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--panel);scroll-snap-align:start}
 .page-home .pillar-grid .text-link{margin-top:auto;padding-top:10px}
}
