/* ---- engagement layer for inner pages (see engage.js) ---- */
.eg_prog{position:fixed;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--accent,#0090D8),#5cc2ff);transform-origin:left;transform:scaleX(0);z-index:200;pointer-events:none}
.eg_top{position:fixed;right:22px;bottom:96px;width:44px;height:44px;border-radius:50%;background:#101C2F;border:0;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(10px);transition:all .3s;z-index:90}
.eg_top.on{opacity:1;transform:none}
.eg_top svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* sticky section chips */
.eg_sentinel{height:1px}
.eg_chips{position:sticky;top:64px;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #e6e9ee;transition:box-shadow .3s}
.eg_chips.stuck{box-shadow:0 8px 24px rgba(16,28,47,.08)}
.eg_chips_in{max-width:1240px;margin:0 auto;padding:10px 24px;display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none}
.eg_chips_in::-webkit-scrollbar{display:none}
.eg_chips_k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7a8594;margin-right:10px;white-space:nowrap}
.eg_chips a{flex:none;font-size:13.5px;color:#3d4653;padding:7px 13px;border:1px solid transparent;border-radius:999px;white-space:nowrap;transition:all .25s}
.eg_chips a:hover{background:#f1f5f9}
.eg_chips a.on{background:#101C2F;color:#fff}
section[id^="sec-"],section[id]{scroll-margin-top:124px}

/* scrollytelling feature rows */
.eg_story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:80px;padding:30px 0 40px}
.eg_story_t{display:flex;flex-direction:column}
.eg_step{min-height:72vh;display:flex;flex-direction:column;justify-content:center;opacity:.28;transition:opacity .5s}
.eg_step.on{opacity:1}
.eg_step .rrow_t{max-width:520px}
.eg_step_n{font:500 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:var(--accent,#0090D8);margin-bottom:14px}
.eg_step .eg_m{display:none}
.eg_story_v{position:sticky;top:calc(50vh - 260px);height:520px;align-self:start}
.eg_layer{position:absolute !important;inset:0;opacity:0;transform:scale(.96) translateY(18px);transition:opacity .6s ease,transform .8s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.eg_layer.on{opacity:1;transform:none;pointer-events:auto}
.eg_layer .ph{height:100%}
.eg_layer .ph img{height:100%;object-fit:cover}
.eg_story_n{position:absolute;left:-36px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.eg_story_n i{width:8px;height:8px;border-radius:50%;background:#cfd6df;cursor:pointer;transition:all .3s}
.eg_story_n i.on{background:var(--accent,#0090D8);height:26px;border-radius:5px}
.rrows .eg_story .rrow_v{order:0}
@media (max-width:999px){
  .eg_story{grid-template-columns:1fr;gap:0}
  .eg_story_v{display:none}
  .eg_step{min-height:0;opacity:1;padding:40px 0;border-bottom:1px dashed #dfe3e8}
  .eg_step .eg_m{display:block;position:relative;height:300px;margin:0 0 26px}
  .eg_step .eg_m .ph{height:100%}.eg_step .eg_m .ph img{height:100%;object-fit:cover}
}

/* staggered reveals */
.rv{transition-delay:calc(var(--eg-i,0) * 80ms)}
.eg_reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.eg_reveal.eg_in{opacity:1;transform:none}
.rcmp_col li{opacity:0;transform:translateX(-12px);transition:opacity .45s ease,transform .45s ease;transition-delay:calc(var(--eg-i,0) * 110ms + .2s)}
.rcmp_col.new li{transform:translateX(12px);transition-delay:calc(var(--eg-i,0) * 110ms + .6s)}
.rcmp_box.eg_in li{opacity:1;transform:none}
.rcmp_col.old li{position:relative}
.rcmp_col.old li::after{content:"";position:absolute;left:34px;right:20%;top:50%;height:1px;background:#c0392b;opacity:.45;transform:scaleX(0);transform-origin:left;transition:transform .5s ease;transition-delay:calc(var(--eg-i,0) * 110ms + .9s)}
.rcmp_box.eg_in .rcmp_col.old li::after{transform:scaleX(1)}

/* card spotlight */
.eg_spot{position:relative;isolation:isolate}
.eg_spot::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(0,144,216,.10),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:-1}
.eg_spot:hover::before{opacity:1}
.eg_spot{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.eg_spot:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(16,28,47,.08)}

/* photo motion */
.rband{overflow:hidden}
.rband img{will-change:transform;transition:transform .1s linear}
.ruse_i{overflow:hidden}.ruse_i img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.ruse:hover .ruse_i img{transform:scale(1.06)}

@media (prefers-reduced-motion:reduce){.eg_reveal,.rcmp_col li{opacity:1;transform:none;transition:none}.eg_layer{transition:none}.eg_spot:hover{transform:none}}
@media (max-width:760px){.eg_chips{top:60px}.eg_top{right:14px;bottom:88px}}
.eg_step.rrow{display:flex;grid-template-columns:none;gap:0;align-items:stretch;padding:0;border:0}
.eg_step.rrow:nth-child(even) .rrow_v{order:0}

/* explore: tabbed explorer */
.xp{display:grid;grid-template-columns:300px minmax(0,1fr);gap:0;margin-top:40px;border:1px solid #e3e7ec;background:#fff;min-height:420px}
.sec-explore.grey .xp,.psec.grey .xp{background:#fff}
.xp_tabs{display:flex;flex-direction:column;border-right:1px solid #e3e7ec;background:#f7f9fb}
.xp_tab{display:flex;align-items:center;gap:12px;text-align:left;padding:17px 20px;border:0;border-bottom:1px solid #e9edf1;background:none;font:inherit;font-size:15px;color:#4a5361;cursor:pointer;position:relative;transition:all .25s}
.xp_tab svg{width:20px;height:20px;flex:none;opacity:.7}
.xp_tab:hover{background:#eef3f8}
.xp_tab.on{background:#fff;color:#101C2F;font-weight:600}
.xp_tab.on::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,#0090D8)}
.xp_tab.on::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:1px;background:#fff}
.xp_panels{position:relative}
.xp_p{display:none;padding:42px 46px}
.xp_p.on{display:block;animation:xpin .5s cubic-bezier(.2,.7,.2,1)}
@keyframes xpin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.xp_acc{display:none}
.xp_n{font:500 12px ui-monospace,Menlo,monospace;letter-spacing:.12em;color:var(--accent,#0090D8)}
.xp_p h3{font-size:28px;font-weight:500;letter-spacing:-.015em;line-height:1.2;margin:12px 0 14px;max-width:640px}
.xp_p p{font-size:16.5px;line-height:1.65;color:#4a5361;max-width:680px}
.xp_p ul{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:10px;max-width:680px}
.xp_p li{position:relative;padding-left:26px;font-size:15.5px;line-height:1.55;color:#2b3340}
.xp_p li::before{content:"";position:absolute;left:4px;top:8px;width:9px;height:9px;border-radius:50%;border:2px solid var(--accent,#0090D8)}
.xp_params{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:#e3e7ec;border:1px solid #e3e7ec;margin:28px 0 0}
.xp_params div{background:#f7f9fb;padding:14px 16px}
.xp_params dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a8594}
.xp_params dd{margin:6px 0 0;font-size:14.5px;color:#101C2F;line-height:1.45}
@media (max-width:899px){
  .xp{grid-template-columns:1fr;min-height:0}
  .xp_tabs{display:none}
  .xp_p{display:block;padding:0;border-bottom:1px solid #e3e7ec;animation:none}
  .xp_acc{display:flex;width:100%;align-items:center;gap:12px;padding:18px;border:0;background:none;font:inherit;font-size:16px;font-weight:600;text-align:left;cursor:pointer}
  .xp_acc svg{width:20px;height:20px}
  .xp_body{display:none;padding:0 18px 24px}
  .xp_p.open .xp_body{display:block}
  .xp_p h3{font-size:22px}
}

/* sysmap: clickable systems map */
.sm{margin-top:40px}
.sm_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sm_grid.n4,.sm_grid.n8{grid-template-columns:repeat(4,1fr)}
.sm_t{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px 20px 18px;text-align:left;background:#fff;border:1px solid #e3e7ec;font:inherit;cursor:pointer;transition:all .3s;overflow:hidden}
.sm_t:hover{border-color:#b9d7ef;transform:translateY(-2px)}
.sm_t b{font-size:16px;font-weight:600;color:#101C2F}
.sm_t small{font-size:13px;line-height:1.45;color:#6a7482}
.sm_ic{width:40px;height:40px;display:grid;place-items:center;background:#eef5fb;border-radius:50%}
.sm_ic svg{width:22px;height:22px}
.sm_t.on{background:#101C2F;border-color:#101C2F}
.sm_t.on b{color:#fff}.sm_t.on small{color:#9fb0c3}.sm_t.on .sm_ic{background:rgba(255,255,255,.1)}
.sm_pulse{position:absolute;right:16px;top:18px;width:8px;height:8px;border-radius:50%;background:#f28c00;opacity:0}
.sm.live .sm_pulse{animation:smp 2.4s ease-out infinite;animation-delay:calc(var(--d,0) * 1s)}
.sm_t:nth-child(3n+1) .sm_pulse{--d:.2}.sm_t:nth-child(3n+2) .sm_pulse{--d:1.1}.sm_t:nth-child(3n) .sm_pulse{--d:.6}
@keyframes smp{0%{opacity:0;box-shadow:0 0 0 0 rgba(242,140,0,.6)}20%{opacity:1}100%{opacity:0;box-shadow:0 0 0 12px rgba(242,140,0,0)}}
.sm_d{margin-top:14px;border:1px solid #e3e7ec;background:#fff}
.sm_dp{display:none;padding:30px 32px}
.sm_dp.on{display:block;animation:xpin .45s ease}
.sm_dh{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.sm_dh svg{width:26px;height:26px}
.sm_dh h3{font-size:22px;font-weight:500}
.sm_cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.sm_cols .mono{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a8594}
.sm_cols p{font-size:15px;line-height:1.6;color:#2b3340;margin-top:8px}
.sm_cols .aq{border-left:3px solid var(--accent,#0090D8);padding-left:18px}
@media (max-width:899px){.sm_grid,.sm_grid.n4,.sm_grid.n8{grid-template-columns:1fr 1fr}.sm_cols{grid-template-columns:1fr;gap:18px}.sm_t small{display:none}}

/* stats */
.kst{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:0;margin-top:40px;border-top:1px solid #dfe4ea}
.kst.n2{--n:2}.kst.n3{--n:3}.kst.n4{--n:4}
.kst_i{padding:28px 26px 26px 0;border-right:1px solid #dfe4ea;margin-right:26px}
.kst_i:last-child{border-right:0}
.kst_i b{display:block;font-size:clamp(40px,4.4vw,60px);font-weight:400;letter-spacing:-.03em;line-height:1;color:#101C2F}
.kst_i p{font-size:15.5px;line-height:1.5;color:#4a5361;margin-top:12px;max-width:300px}
.kst_src{display:inline-block;margin-top:14px;font-size:12px;color:#7a8594;text-decoration:underline;text-underline-offset:3px}
@media (max-width:760px){.kst{grid-template-columns:1fr}.kst_i{border-right:0;border-bottom:1px solid #dfe4ea;margin-right:0}}

/* rollout */
.ro{position:relative;margin-top:50px}
.ro_track{position:absolute;left:20px;right:20px;top:20px;height:2px;background:#dfe4ea}
.ro_fill{position:absolute;inset:0;background:var(--accent,#0090D8);transform-origin:left;transform:scaleX(0);transition:transform .15s linear}
.ro_items{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:24px;position:relative}
.ro_items.n3{--n:3}.ro_items.n4{--n:4}.ro_items.n5{--n:5}
.ro_dot{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #dfe4ea;font-weight:600;color:#7a8594;transition:all .4s}
.ro_i.lit .ro_dot{background:var(--accent,#0090D8);border-color:var(--accent,#0090D8);color:#fff;box-shadow:0 0 0 6px rgba(0,144,216,.12)}
.ro_when{font:500 12px ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent,#0090D8);margin-top:18px}
.ro_i h4{font-size:18px;font-weight:600;margin-top:8px}
.ro_i p{font-size:14.5px;line-height:1.6;color:#4a5361;margin-top:8px}
.psec.dark .ro_dot{background:#101C2F}
@media (max-width:899px){.ro_track{left:20px;right:auto;top:20px;bottom:20px;width:2px;height:auto}.ro_fill{transform-origin:top;transform:scaleY(0)}.ro_items,.ro_items.n3,.ro_items.n4,.ro_items.n5{grid-template-columns:1fr;gap:28px}.ro_i{padding-left:62px;position:relative}.ro_dot{position:absolute;left:0;top:0}.ro_when{margin-top:10px}}

/* sources */
.srcs{padding:20px 0 40px !important}
.srcs_d{border-top:1px solid #dfe4ea;border-bottom:1px solid #dfe4ea;padding:16px 0}
.srcs_d summary{cursor:pointer;display:flex;gap:16px;align-items:baseline;list-style:none}
.srcs_d summary::-webkit-details-marker{display:none}
.srcs_d summary .mono{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a8594}
.srcs_d summary b{font-weight:500;font-size:15px}
.srcs_d ol{margin:16px 0 4px 18px;display:grid;gap:8px}
.srcs_d a{font-size:14px;color:#3d4653;text-decoration:underline;text-underline-offset:3px}

/* review fixes: step rows sized to their count, outcome grids collapse on phones */
.steps.n3{grid-template-columns:repeat(3,1fr)}.steps.n4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.steps.n3,.steps.n4{grid-template-columns:1fr}.ways_grid,.proofs_grid{grid-template-columns:1fr !important}}
