/* ============================================================
   IntelAgent Media · Industries page styles ONLY.
   Loaded by /industries/ after the master styles.css.
   Everything shared (tokens, header, footer, buttons, bloom,
   sections, reveal) comes from assets/css/styles.css.
   ============================================================ */

/* Sub-page hero (same treatment as the approved sub-pages) */
.page-hero{position:relative;overflow:hidden;padding:178px 0 88px;text-align:center}
.page-hero .hero-calm{background:radial-gradient(ellipse 72% 60% at 50% 34%,rgba(5,8,13,1) 0%,rgba(5,8,13,.95) 44%,rgba(5,8,13,.5) 68%,rgba(5,8,13,0) 90%)}
.page-hero .eyebrow{justify-content:center}
.page-hero-inner{position:relative;max-width:1080px;margin:0 auto}
.page-hero h1{font-size:clamp(38px,4.3vw,56px);margin-bottom:22px;max-width:900px;margin-left:auto;margin-right:auto}
.page-hero .hero-sub{margin:0 auto;max-width:720px}
.page-hero .hero-cta{justify-content:center}

/* ============================================================
   HERO · industry operating matrix. One central growth system,
   five industry nodes around it, each activating with its own
   operational emphasis. 13s loop; reduced motion = lit state.
   ============================================================ */
.iom{max-width:960px;margin:56px auto 0}
.iom svg{width:100%;height:auto;display:block;overflow:visible}
.iom-core rect.frame{fill:rgba(12,29,51,.62);stroke:rgba(34,55,80,1);stroke-width:1.4}
.iom-core .title{fill:#8FA6C9;font-size:9px;font-weight:800;letter-spacing:.16em;text-anchor:middle;font-family:inherit}
.iom-core .row text{fill:#B8C2CF;font-size:10.5px;font-weight:800;letter-spacing:.06em;font-family:inherit}
.iom-core .row circle{fill:var(--blue)}
.iom-blip{fill:var(--yellow);opacity:0;animation:iomBlip 13s ease-in-out infinite}
@keyframes iomBlip{0%,4%{opacity:0}6%,8%{opacity:.9}10%{opacity:0}
  23%,25%{opacity:0}26%,28%{opacity:.9}30%{opacity:0}
  43%,45%{opacity:0}46%,48%{opacity:.9}50%{opacity:0}
  63%,65%{opacity:0}66%,68%{opacity:.9}70%{opacity:0}
  83%,85%{opacity:0}86%,88%{opacity:.9}90%,100%{opacity:0}}
.iom-link{fill:none;stroke:rgba(34,55,80,.95);stroke-width:1.3}
.iom-pulse{fill:none;stroke:#19C6F4;stroke-width:2;stroke-linecap:round;stroke-dasharray:12 88;stroke-dashoffset:112;opacity:0}
.iom-pulse.n1{animation:iomP 13s linear infinite}
.iom-pulse.n2{animation:iomP 13s linear infinite 2.6s}
.iom-pulse.n3{animation:iomP 13s linear infinite 5.2s}
.iom-pulse.n4{animation:iomP 13s linear infinite 7.8s}
.iom-pulse.n5{animation:iomP 13s linear infinite 10.4s}
@keyframes iomP{0%,1%{stroke-dashoffset:112;opacity:0}3%{opacity:.9}9%{stroke-dashoffset:-12;opacity:.9}11%,100%{stroke-dashoffset:-12;opacity:0}}
.iom-node rect{fill:rgba(12,29,51,.6);stroke:rgba(34,55,80,1);stroke-width:1.3}
.iom-node .name{fill:var(--white);font-size:11px;font-weight:800;letter-spacing:.05em;text-anchor:middle;font-family:inherit}
.iom-node .emph{fill:#5E7A99;font-size:8.5px;font-weight:800;letter-spacing:.08em;text-anchor:middle;font-family:inherit}
.iom-node.a1 rect{animation:iomN 13s ease-in-out infinite}
.iom-node.a2 rect{animation:iomN 13s ease-in-out infinite 2.6s}
.iom-node.a3 rect{animation:iomN 13s ease-in-out infinite 5.2s}
.iom-node.a4 rect{animation:iomN 13s ease-in-out infinite 7.8s}
.iom-node.a5 rect{animation:iomN 13s ease-in-out infinite 10.4s}
@keyframes iomN{0%,6%{stroke:rgba(34,55,80,1)}12%,60%{stroke:rgba(25,198,244,.85)}72%,100%{stroke:rgba(34,55,80,1)}}
.iom-node.a1 .emph{animation:iomE 13s ease-in-out infinite}
.iom-node.a2 .emph{animation:iomE 13s ease-in-out infinite 2.6s}
.iom-node.a3 .emph{animation:iomE 13s ease-in-out infinite 5.2s}
.iom-node.a4 .emph{animation:iomE 13s ease-in-out infinite 7.8s}
.iom-node.a5 .emph{animation:iomE 13s ease-in-out infinite 10.4s}
@keyframes iomE{0%,6%{fill:#5E7A99}12%,60%{fill:#19C6F4}72%,100%{fill:#5E7A99}}
.iom-cap{fill:#5E6E85;font-size:9px;font-weight:800;letter-spacing:.16em;text-anchor:middle;font-family:inherit}
@media (prefers-reduced-motion:reduce){
  .iom-pulse{display:none}
  .iom-node rect{stroke:rgba(25,198,244,.85);animation:none}
  .iom-node .emph{fill:#19C6F4;animation:none}
  .iom-blip{opacity:.7;animation:none}
}
.iom-mobile{display:none}
@media (max-width:900px){
  .iom svg{display:none}
  .iom{margin-top:44px}
  .iom-mobile{display:block;max-width:380px;margin:0 auto}
  .iomm-core{border-radius:var(--r-card);padding:18px 18px 16px;background:rgba(12,29,51,.62);border:1px solid rgba(25,198,244,.4);text-align:center}
  .iomm-core b{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;color:#8FA6C9;margin-bottom:10px}
  .iomm-core .sys{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}
  .iomm-core .sys span{font-size:10.5px;font-weight:800;letter-spacing:.05em;color:#B8C2CF;padding:7px 10px;border-radius:7px;background:rgba(5,8,13,.5);border:1px solid rgba(34,55,80,1)}
  .iomm-arrow{width:10px;height:10px;margin:14px auto;border-right:1.6px solid rgba(25,198,244,.8);border-bottom:1.6px solid rgba(25,198,244,.8);transform:rotate(45deg)}
  .iomm-nodes{display:grid;gap:8px}
  .iomm-nodes span{display:flex;flex-direction:column;gap:2px;text-align:center;padding:11px 14px;border-radius:9px;background:rgba(12,29,51,.6);border:1px solid rgba(34,55,80,1)}
  .iomm-nodes b{font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--white)}
  .iomm-nodes i{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.08em;color:#19C6F4}
}


/* ============================================================
   WHERE WE OPERATE · R1 architecture with icon accents.
   One wide Education panel (content left, focus areas right)
   + a 2x2 grid of four compact industry blocks. Each card's
   custom inline-SVG icon sits in the header as an accent
   (number/category upper-left, icon upper-right) and never
   gets its own column or panel. No specialization badge.
   One-time entrance per card (rise + icon draw + signal +
   endpoint); hover replay on fine pointers. Scoped ind-* (D32).
   ============================================================ */
.ind-feature{margin-top:54px;padding:30px 38px 30px;position:relative;overflow:hidden}
.ind-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.ind-num{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);padding-top:10px}
.ind-ico{flex:none}
.ind-ico svg{height:54px;width:auto;max-width:100%;display:block;overflow:visible}
.ind-feature h3{font-size:26px;color:#182536;margin:2px 0 6px;letter-spacing:-0.015em}
.ind-pos{font-size:15.5px;font-weight:700;color:#134A9E;margin-bottom:14px}
.ind-feature .ind-copy>p.body{font-size:15.5px;line-height:1.7;color:#46566A;max-width:620px}
.ind-grid2{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"copy focus" "ctas focus";gap:0 44px;align-items:start}
.ind-copy{grid-area:copy}
.ind-focus{grid-area:focus}
.ind-grid2 .ind-ctas{grid-area:ctas}
.ind-focus h4{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-gray);margin:6px 0 12px}
.ind-chips{display:flex;flex-wrap:wrap;gap:8px}
.ind-chips span{font-size:12.5px;font-weight:700;color:#134A9E;padding:8px 13px;border-radius:7px;background:rgba(22,119,255,.06);border:1px solid rgba(22,119,255,.3);transition:background .3s ease,border-color .3s ease}
.ind-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:24px}
.ind-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.ind-block{padding:26px 28px 24px;display:flex;flex-direction:column}
.ind-block .ind-ico svg{height:46px}
.ind-block h3{font-size:21px;color:#182536;margin:4px 0 4px;letter-spacing:-0.015em}
.ind-block .ind-pos{font-size:14px;margin-bottom:10px}
.ind-block>p.body{font-size:14.5px;line-height:1.62;color:#46566A}
.ind-block .ind-chips{margin-top:14px}
.ind-block .ind-cta{margin-top:auto;padding-top:18px}
.ind-feature.reveal,.ind-block.reveal{transform:translateY(14px)}
.ind-feature.reveal.in,.ind-block.reveal.in{transform:none}

/* icon line vocabulary (scoped to .ind-ico) */
.ind-ico .im{stroke:#8AA0BC;stroke-width:1;fill:none;opacity:.18}
.ind-ico .imn{fill:#8AA0BC;opacity:.2}
.ind-ico .icn{stroke:#B4C2D4;stroke-width:1.4;stroke-dasharray:3 4;fill:none}
.ind-ico .ib{stroke:#7E93AC;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.ind-ico .id{stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.ind-ico .ic{stroke:var(--cyan);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.ind-ico .iyf{fill:var(--yellow)}

/* one-time entrance sequence, keyed off the shared reveal observer */
.ind-ico .idraw{stroke-dasharray:100;stroke-dashoffset:100}
.ind-feature.in .ind-ico .idraw,.ind-block.in .ind-ico .idraw{animation:indDraw .5s cubic-bezier(.2,.7,.3,1) var(--icd,0s) forwards}
@keyframes indDraw{to{stroke-dashoffset:0}}
.ind-ico .isig,.ind-ico .isig2{stroke:var(--cyan);stroke-width:2.4;stroke-linecap:round;fill:none;stroke-dasharray:16 84;stroke-dashoffset:116;opacity:0}
.ind-feature.in .ind-ico .isig,.ind-block.in .ind-ico .isig{animation:indSig .5s ease-in-out calc(var(--icd,0s) + .32s) forwards}
@keyframes indSig{0%{opacity:1;stroke-dashoffset:116}88%{opacity:1}100%{opacity:0;stroke-dashoffset:-16}}
.ind-ico .iend{opacity:.25}
.ind-feature.in .ind-ico .iend,.ind-block.in .ind-ico .iend{animation:indEnd .28s ease calc(var(--icd,0s) + .64s) forwards}
@keyframes indEnd{to{opacity:1}}
/* stagger 02 -> 05 when several grid cards enter together */
.ind-cards .ind-block:nth-child(2){--icd:.07s}
.ind-cards .ind-block:nth-child(3){--icd:.14s}
.ind-cards .ind-block:nth-child(4){--icd:.21s}

/* hover replay + brightening, fine pointers only.
   Card rise / border / shadow come from .section.light .bloom:hover. */
@media (hover:hover) and (pointer:fine){
  .ind-feature:hover .ind-ico .isig2,.ind-block:hover .ind-ico .isig2{animation:indSig .5s ease-in-out forwards}
  .ind-feature:hover .ind-ico .id,.ind-block:hover .ind-ico .id{stroke:#4A93FF}
  .ind-feature:hover .ind-ico .ic,.ind-block:hover .ind-ico .ic{stroke:#3ED2F8}
  .ind-feature:hover .ind-chips span,.ind-block:hover .ind-chips span{background:rgba(22,119,255,.1);border-color:rgba(22,119,255,.45)}
}

@media (prefers-reduced-motion:reduce){
  .ind-feature.in .ind-ico .idraw,.ind-block.in .ind-ico .idraw,.ind-ico .idraw{animation:none;stroke-dasharray:none;stroke-dashoffset:0}
  .ind-feature.in .ind-ico .isig,.ind-block.in .ind-ico .isig,.ind-ico .isig,.ind-ico .isig2{animation:none;display:none}
  .ind-feature.in .ind-ico .iend,.ind-block.in .ind-ico .iend,.ind-ico .iend{animation:none;opacity:1}
}
/* ============================================================
   Government-funded education specialty feature (dark)
   ============================================================ */
.gfe-panel{
  margin-top:54px;border-radius:var(--r-lg);padding:44px 44px 40px;position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(0deg,rgba(22,119,255,.05) 0 1px,transparent 1px 44px),
    repeating-linear-gradient(90deg,rgba(22,119,255,.05) 0 1px,transparent 1px 44px),
    rgba(12,29,51,.4);
  border:1px solid rgba(34,55,80,.9);
}
.gfe-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start}
.gfe-panel h3{font-size:24px;color:var(--white);letter-spacing:-0.015em;margin:0 0 12px}
.gfe-panel h3 .grad-text{display:inline}
.gfe-panel p.lead{font-size:15.5px;line-height:1.7;color:var(--light-gray);max-width:560px}
.gfe-programs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 4px}
.gfe-programs span{font-size:11.5px;font-weight:800;letter-spacing:.06em;color:#B8C2CF;padding:8px 12px;border-radius:8px;background:rgba(12,29,51,.6);border:1px solid rgba(34,55,80,1)}
.gfe-side h4{font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-gray);margin:0 0 14px}
.gfe-list{display:grid;gap:10px}
.gfe-list li{position:relative;padding-left:20px;font-size:14px;line-height:1.55;color:var(--light-gray)}
.gfe-list li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:1.5px;background:var(--cyan);border-radius:2px}
.gfe-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:26px}
.gfe-note{margin-top:26px;padding-top:20px;border-top:1px solid rgba(34,55,80,.7);font-size:12px;line-height:1.7;color:var(--muted-gray);max-width:820px}

/* ============================================================
   The variables · CSS-only operating-variable console.
   Desktop: selector list + display panel. Mobile: stacked.
   ============================================================ */
.vars{margin-top:54px}
.vars input{position:absolute;opacity:0;pointer-events:none}
.vars-shell{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:22px;align-items:stretch}
.vars-menu{display:grid;gap:10px;align-content:start}
.vars-menu label{
  display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:11px;cursor:pointer;
  background:rgba(12,29,51,.45);border:1px solid rgba(34,55,80,.9);
  font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8FA6C9;
  transition:border-color .3s ease,color .3s ease,background .3s ease;
}
.vars-menu label i{width:8px;height:8px;border-radius:50%;background:#3A5170;flex:none;transition:background .3s ease}
.vars-panel{position:relative;border-radius:var(--r-lg);background:rgba(12,29,51,.45);border:1px solid rgba(34,55,80,.9);padding:34px 36px;overflow:hidden}
.vars-view{display:none}
.vars-view .vv-num{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--cyan)}
.vars-view h3{font-size:23px;color:var(--white);margin:10px 0 12px;letter-spacing:-0.015em}
.vars-view p{font-size:15.5px;line-height:1.7;color:var(--light-gray);max-width:520px}
.vv-spec{margin-top:26px}
.vv-spec .lab{display:flex;justify-content:space-between;font-size:10.5px;font-weight:800;letter-spacing:.12em;color:var(--muted-gray);margin-bottom:8px}
.vv-spec .track{position:relative;height:6px;border-radius:6px;background:rgba(34,55,80,.8)}
.vv-spec .track i{position:absolute;top:0;bottom:0;left:0;border-radius:6px;background:linear-gradient(90deg,#1677FF,#19C6F4)}
.vv-spec .track b{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:#0C1D33;border:2.5px solid var(--cyan);box-shadow:0 0 12px rgba(25,198,244,.5)}
.vv-note{margin-top:10px;font-size:12px;line-height:1.6;color:var(--muted-gray)}
#var1:checked ~ .vars-shell .vars-menu label[for="var1"],
#var2:checked ~ .vars-shell .vars-menu label[for="var2"],
#var3:checked ~ .vars-shell .vars-menu label[for="var3"],
#var4:checked ~ .vars-shell .vars-menu label[for="var4"],
#var5:checked ~ .vars-shell .vars-menu label[for="var5"]{
  border-color:rgba(25,198,244,.7);color:var(--white);background:rgba(12,29,51,.75)}
#var1:checked ~ .vars-shell .vars-menu label[for="var1"] i,
#var2:checked ~ .vars-shell .vars-menu label[for="var2"] i,
#var3:checked ~ .vars-shell .vars-menu label[for="var3"] i,
#var4:checked ~ .vars-shell .vars-menu label[for="var4"] i,
#var5:checked ~ .vars-shell .vars-menu label[for="var5"] i{background:var(--cyan)}
#var1:checked ~ .vars-shell .vars-panel .vars-view.v1,
#var2:checked ~ .vars-shell .vars-panel .vars-view.v2,
#var3:checked ~ .vars-shell .vars-panel .vars-view.v3,
#var4:checked ~ .vars-shell .vars-panel .vars-view.v4,
#var5:checked ~ .vars-shell .vars-panel .vars-view.v5{display:block;animation:vvIn .4s ease}
@keyframes vvIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .vars-view{animation:none}
}
@media (max-width:880px){
  .vars-shell{grid-template-columns:1fr}
  .vars-menu{display:none}
  .vars-panel{padding:0;background:none;border:none;border-radius:0}
  .vars-view{display:block;margin-bottom:16px;padding:26px 24px;border-radius:var(--r-card);background:rgba(12,29,51,.45);border:1px solid rgba(34,55,80,.9);animation:none}
  .vars-view:last-child{margin-bottom:0}
}

/* ============================================================
   Same principles, different execution · comparison matrix
   ============================================================ */
.matx{margin-top:54px}
.matx-head{display:grid;grid-template-columns:170px repeat(5,1fr);gap:10px;margin-bottom:12px}
.matx-head span{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);text-align:center;padding:10px 6px;border-radius:8px;background:rgba(22,119,255,.08);border:1px solid rgba(22,119,255,.3)}
.matx-head span:first-child{background:none;border:none}
.matx-row{display:grid;grid-template-columns:170px repeat(5,1fr);gap:10px;margin-bottom:10px;align-items:stretch}
.matx-row .ind{display:flex;align-items:center;font-size:12.5px;font-weight:800;letter-spacing:.04em;color:var(--white);padding:12px 14px;border-radius:9px;background:rgba(12,29,51,.62);border:1px solid rgba(34,55,80,1)}
.matx-row .cell{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11.5px;line-height:1.4;font-weight:700;color:#8FA6C9;padding:12px 10px;border-radius:9px;background:rgba(12,29,51,.4);border:1px solid rgba(34,55,80,.8)}
.matx-row .cell.fin{color:#D8CFA8;background:rgba(33,29,8,.35);border-color:rgba(255,213,31,.3)}
@media (hover:hover) and (pointer:fine){
  .matx-row:hover .ind{border-color:rgba(25,198,244,.6)}
  .matx-row:hover .cell{border-color:rgba(25,198,244,.45);color:#B8C2CF}
  .matx-row:hover .cell.fin{border-color:rgba(255,213,31,.6);color:#F0E4B0}
}
.matx-note{margin-top:20px;font-size:12.5px;line-height:1.6;color:var(--muted-gray);max-width:720px}
.matx-mobile{display:none}
@media (max-width:880px){
  .matx-head,.matx-row{display:none}
  .matx-mobile{display:grid;gap:16px}
  .mm-block{padding:20px 20px 18px;border-radius:var(--r-card);background:rgba(12,29,51,.45);border:1px solid rgba(34,55,80,.9)}
  .mm-block b{display:block;font-size:13px;font-weight:800;letter-spacing:.05em;color:var(--white);margin-bottom:12px}
  .mm-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
  .mm-flow span{font-size:11px;font-weight:700;color:#8FA6C9;padding:7px 10px;border-radius:7px;background:rgba(5,8,13,.4);border:1px solid rgba(34,55,80,.8)}
  .mm-flow span.fin{color:#D8CFA8;background:rgba(33,29,8,.35);border-color:rgba(255,213,31,.3)}
  .mm-flow i{width:7px;height:7px;border-top:1.4px solid rgba(22,119,255,.6);border-right:1.4px solid rgba(22,119,255,.6);transform:rotate(45deg);flex:none}
}

/* ============================================================
   Partnership criteria (Soft Slate)
   ============================================================ */
.fit-panel{margin-top:52px;padding:34px 36px 30px}
.fit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 40px}
.fit-list li{display:flex;align-items:flex-start;gap:13px;font-size:15px;line-height:1.55;color:#46566A}
.fit-list .fit-check{margin-top:1px}
.fit-callout{margin-top:26px;padding:18px 22px;border-radius:var(--r-card);position:relative;font-size:15.5px;line-height:1.65;font-weight:700;background:#EEF2F6;border:1px solid #D0D9E4;color:#182536;box-shadow:0 8px 30px rgba(8,24,45,.08)}
.fit-callout::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--grad)}
.fit-cta{margin-top:30px;text-align:center}

/* ============================================================
   WHAT WE SOLVE · diagnostic slideshow. All selectors are
   scoped to diag-* component classes ONLY (the R3 bug came
   from a generic .cell rule leaking into .matx-row .cell;
   nothing in this block may use unscoped class names).
   One slide at a time: THE LEAK → THE SYSTEM → THE OPERATING
   STATE. Auto-advance 6s via the progress-line animation;
   pauses on hover/focus/hidden tab; reduced motion = manual,
   completed states.
   ============================================================ */
.diag{
  margin-top:54px;border-radius:var(--r-lg);padding:28px 34px 22px;position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(0deg,rgba(22,119,255,.04) 0 1px,transparent 1px 44px),
    repeating-linear-gradient(90deg,rgba(22,119,255,.04) 0 1px,transparent 1px 44px),
    rgba(12,29,51,.4);
  border:1px solid rgba(34,55,80,.9);
}
.diag-slides{position:relative;transition:height .3s ease}
.diag-slide{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none}
.diag-slide.is-active{position:relative;opacity:1;visibility:visible;pointer-events:auto;animation:diagSlideIn .38s ease}
.diag-slide.is-exit{opacity:0;visibility:visible;transform:translateY(-14px);transition:opacity .3s ease,transform .3s ease}
@keyframes diagSlideIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.diag-meta{display:flex;align-items:baseline;gap:14px}
.diag-count{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--muted-gray)}
.diag-cat{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.diag-slide h3{font-size:20px;color:var(--white);margin:8px 0 6px;letter-spacing:-0.015em}
.diag-slide .diag-copy{font-size:14px;line-height:1.6;color:#8FA6C9;max-width:680px}
.diag-stagerow{display:grid;grid-template-columns:1fr 44px 1fr 44px 1fr;margin:20px 0 6px}
.diag-stagerow span{font-size:10px;font-weight:800;letter-spacing:.16em;text-align:center;color:var(--muted-gray)}
.diag-stagerow span:nth-child(3){color:var(--cyan)}
.diag-stagerow span:nth-child(5){color:#B8C2CF}
.diag-lanevis{display:grid;grid-template-columns:1fr 44px 1fr 44px 1fr;align-items:stretch}
.diag-cell{border-radius:11px;padding:12px 12px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transform:translateY(6px)}
.diag-cell .diag-stage{display:none;font-size:9px;font-weight:800;letter-spacing:.16em;color:var(--muted-gray)}
.diag-cv{height:46px;display:flex;align-items:center;justify-content:center;gap:6px}
.diag-cv svg{height:44px;width:auto;display:block;overflow:visible}
.diag-clab{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-align:center;line-height:1.45}
.diag-cell.left{background:rgba(5,8,13,.35);border:1px solid rgba(58,81,112,.55)}
.diag-cell.left .diag-clab{color:#7C8DA3}
.diag-cell.mid{background:rgba(12,29,51,.72);border:1px solid rgba(34,55,80,1)}
.diag-cell.mid .diag-clab{color:var(--cyan)}
.diag-cell.right{background:rgba(12,29,51,.55);border:1px solid rgba(34,55,80,1);position:relative}
.diag-cell.right .diag-clab{color:#E7EEF7}
.diag-cell.right .ydot{position:absolute;top:9px;right:9px;width:6px;height:6px;border-radius:50%;background:var(--yellow);opacity:0}
/* mini-visual vocabulary, all scoped under .diag-cv */
.diag-cv .person{stroke:#7C8DA3;stroke-width:1.6;fill:none;stroke-linecap:round}
.diag-cv .person.on{stroke:var(--cyan)}
.diag-cv .person.dim{stroke:#4E6076}
.diag-cv .glyph{stroke:#8FB4DA;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.diag-cv .glyph.cy{stroke:var(--cyan)}
.diag-cv .warn{stroke:#7C8DA3;stroke-width:1.6;fill:none;stroke-linecap:round}
.diag-cv .chip{font-size:8px;font-weight:800;letter-spacing:.06em;color:#8FA6C9;padding:4px 7px;border-radius:5px;background:rgba(5,8,13,.5);border:1px solid rgba(58,81,112,.7);white-space:nowrap}
.diag-cv .chip.on{color:#BFEAF9;border-color:rgba(25,198,244,.5)}
.diag-cv .chip.dim{color:#5E7089}
.diag-cv .mini-arrow{width:6px;height:6px;border-top:1.3px solid rgba(22,119,255,.7);border-right:1.3px solid rgba(22,119,255,.7);transform:rotate(45deg);flex:none}
.diag-cv .broke{width:12px;border-top:2px dashed #4E6076;flex:none}
.diag-conn{position:relative;align-self:center;height:2px;background:rgba(34,55,80,.9);margin:0 6px}
.diag-conn::after{content:"";position:absolute;right:-1px;top:50%;width:7px;height:7px;transform:translateY(-50%) rotate(45deg);border-top:1.6px solid rgba(34,55,80,1);border-right:1.6px solid rgba(34,55,80,1)}
.diag-conn i{position:absolute;left:0;top:-1px;width:16px;height:4px;border-radius:4px;background:var(--cyan);opacity:0}
/* one-time sequence each time a slide becomes active */
@keyframes diagCellIn{to{opacity:1;transform:none}}
@keyframes diagMidOn{to{border-color:rgba(25,198,244,.75)}}
@keyframes diagRightOn{to{border-color:rgba(25,198,244,.5)}}
@keyframes diagConnGo{0%{opacity:0;transform:translateX(0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(30px)}}
@keyframes diagYdot{to{opacity:1}}
.diag-slide.is-active .diag-cell.left{animation:diagCellIn .25s ease .35s forwards}
.diag-slide.is-active .diag-conn.c1 i{animation:diagConnGo .25s linear .56s forwards}
.diag-slide.is-active .diag-cell.mid{animation:diagCellIn .25s ease .68s forwards,diagMidOn .3s ease .78s forwards}
.diag-slide.is-active .diag-conn.c2 i{animation:diagConnGo .25s linear .9s forwards}
.diag-slide.is-active .diag-cell.right{animation:diagCellIn .3s ease 1.02s forwards,diagRightOn .3s ease 1.1s forwards}
.diag-slide.is-active .diag-cell.right .ydot{animation:diagYdot .3s ease 1.25s forwards}
/* controls */
.diag-controls{display:flex;align-items:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(34,55,80,.55)}
.diag-prev,.diag-next{
  width:34px;height:34px;border-radius:50%;flex:none;cursor:pointer;
  background:rgba(12,29,51,.7);border:1px solid rgba(34,55,80,1);
  display:inline-flex;align-items:center;justify-content:center;padding:0;
  transition:border-color .25s ease;
}
.diag-prev svg,.diag-next svg{width:14px;height:14px;stroke:#B8C2CF;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.diag-prev:hover,.diag-next:hover{border-color:rgba(25,198,244,.6)}
.diag-dots{display:flex;gap:8px}
.diag-dot{
  min-width:32px;height:28px;border-radius:8px;cursor:pointer;padding:0 8px;
  font-family:inherit;font-size:11px;font-weight:800;letter-spacing:.08em;color:#7C8DA3;
  background:rgba(12,29,51,.55);border:1px solid rgba(34,55,80,.9);
  transition:color .25s ease,border-color .25s ease;
}
.diag-dot.is-on{color:var(--cyan);border-color:rgba(25,198,244,.7);background:rgba(12,29,51,.85)}
.diag-progress{flex:1;height:2px;border-radius:2px;background:rgba(34,55,80,.8);overflow:hidden}
.diag-progress i{display:block;height:100%;width:100%;border-radius:2px;background:linear-gradient(90deg,#1677FF,#19C6F4);transform:scaleX(0);transform-origin:left center}
@keyframes diagProg{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.diag.is-playing .diag-progress i{animation:diagProg 6s linear forwards}
.diag.is-paused .diag-progress i{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){
  .diag-slide.is-active{animation:none}
  .diag-slide.is-exit{transition:none;transform:none}
  .diag-cell,.diag-slide.is-active .diag-cell{opacity:1;transform:none;animation:none}
  .diag-cell.mid,.diag-slide.is-active .diag-cell.mid{border-color:rgba(25,198,244,.75)}
  .diag-cell.right,.diag-slide.is-active .diag-cell.right{border-color:rgba(25,198,244,.5)}
  .diag-cell.right .ydot,.diag-slide.is-active .diag-cell.right .ydot{opacity:1;animation:none}
  .diag-conn i{display:none}
  .diag-progress{visibility:hidden}
  .diag.is-playing .diag-progress i{animation:none}
}
@media (max-width:760px){
  .diag{padding:22px 18px 18px}
  .diag-stagerow{display:none}
  .diag-cell .diag-stage{display:block}
  .diag-lanevis{grid-template-columns:1fr}
  .diag-conn{width:2px;height:22px;margin:8px auto;align-self:center}
  .diag-conn::after{right:auto;left:50%;top:auto;bottom:-1px;transform:translateX(-50%) rotate(135deg)}
  .diag-conn i{left:-1px;top:0;width:4px;height:16px}
  @keyframes diagConnGo{0%{opacity:0;transform:translateY(0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
  .diag-controls{flex-wrap:wrap;gap:10px}
  /* 44px touch targets on touch-first widths */
  .diag-prev,.diag-next{width:44px;height:44px}
  .diag-prev svg,.diag-next svg{width:16px;height:16px}
  .diag-dots{gap:7px;flex-wrap:wrap}
  .diag-dot{min-width:44px;height:44px;border-radius:10px;padding:0 6px;font-size:11.5px}
  .diag-progress{flex-basis:100%;order:4}
}
/* Where We Operate · responsive */
@media (max-width:1080px){
  .ind-grid2{grid-template-columns:1fr;grid-template-areas:"copy" "focus" "ctas";gap:0}
  .ind-focus{margin-top:22px}
  .ind-grid2 .ind-ctas{margin-top:24px}
  .ind-ico svg{height:50px}
  .ind-block .ind-ico svg{height:44px}
}
@media (max-width:900px){
  .ind-cards{grid-template-columns:1fr}
}
@media (max-width:720px){
  .ind-feature{padding:24px 20px 22px}
  .ind-block{padding:22px 18px 20px}
  .ind-ico svg{height:44px}
  .ind-block .ind-ico svg{height:40px}
  .ind-ctas .btn{width:100%;max-width:100%;height:auto;min-height:48px;padding:12px 18px;white-space:normal;text-align:center;line-height:1.3}
}

.leak-ctas{margin-top:44px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 38px}
.leak-ctas .tlink.sub{font-size:14px;opacity:.75}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1180px){
  .gfe-grid{grid-template-columns:1fr;gap:30px}
  .matx-head,.matx-row{grid-template-columns:140px repeat(5,1fr)}
}
@media (max-width:720px){
  .page-hero{padding:148px 0 68px}
  .gfe-panel{padding:30px 22px 28px}
  .fit-list{grid-template-columns:1fr}
  .fit-panel{padding:26px 22px 24px}
  .vars-panel .vars-view{padding:22px 18px}
}
