/* KAMELEON KENYA — immersive layer: motion and decoration only, page content unchanged */
.im-h{font-size:clamp(34px,4vw,58px);line-height:1;margin:0 0 22px;letter-spacing:-2px;font-weight:700;color:#d2d2d2}
.im-h em{font-style:normal;color:#ed1528}
.im-w{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .02em .04em;margin:-.12em -.02em -.04em}
.im-w>span{display:inline-block;transform:translateY(115%);transition:transform 1s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0)*60ms)}
.im-in .im-w>span{transform:none}
.im-lead{margin:0 0 30px;max-width:470px;font-size:17px;line-height:1.6;color:#b3b3b8}

/* mapping step by step */
.im-map{position:relative;height:340vh}
.im-map-stick{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);gap:clamp(28px,5vw,88px);
  align-items:center;padding:110px 5vw 40px;max-width:1500px;margin:0 auto}
.im-steps{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.im-steps li{position:relative;padding:0 0 0 64px;font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.35);transition:color .3s}
.im-steps li:before{content:"";position:absolute;left:0;top:50%;width:46px;height:2px;background:rgba(255,255,255,.15)}
.im-steps li i{position:absolute;left:0;top:50%;height:2px;width:0;max-width:46px;background:#ed1528;box-shadow:0 0 8px #ed1528}
.im-steps li.on{color:#fff}
.im-stage{position:relative;aspect-ratio:4/3;max-height:76vh;width:100%;border-radius:20px;overflow:hidden;background:#000;border:1px solid #4c1017;box-shadow:0 0 70px #ed152826}
.im-stage img,.im-stage video{position:absolute!important;inset:0;width:100%!important;height:100%!important;max-width:none;object-fit:cover;display:block;margin:0}
.im-scan{position:absolute;top:0;bottom:0;width:4px;margin-left:-2px;background:#fff;z-index:5;display:none;box-shadow:0 0 18px 6px rgba(237,21,40,.85),0 0 60px 20px rgba(237,21,40,.35)}
.im-stage-label{position:absolute;left:20px;bottom:18px;z-index:6;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#fff;
  background:rgba(5,5,5,.72);padding:9px 14px;border-radius:999px;backdrop-filter:blur(6px)}

/* Kenya map */
.im-mapa-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,5vw,80px);align-items:center;max-width:1400px;margin:0 auto}
.im-panel{border:1px solid #2a2a2a;border-radius:20px;padding:24px 26px;background:rgba(255,255,255,.02);min-height:230px}
.im-panel-city{font-size:26px;font-weight:900;text-transform:uppercase;letter-spacing:-.01em;color:#fff}
.im-panel-n{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#ed1528;margin:6px 0 14px}
.im-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.im-panel li a,.im-panel li span.t{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#fff;text-decoration:none;font-size:15px;font-weight:600}
.im-panel li a em{font-style:normal;color:#8a8a92;font-weight:500;white-space:nowrap}
.im-panel li a:hover{color:#ed1528}
.im-cta{display:inline-flex;margin-top:18px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-decoration:none;
  border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:10px 16px}
.im-cta:hover{border-color:#ed1528;color:#ed1528}
.im-map-box{position:relative;width:100%;max-width:520px;margin-left:auto;aspect-ratio:585/703}
.im-map-box img{position:absolute;inset:0;width:100%;height:100%}
.im-map-box canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.im-city{position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;border:0;background:none;padding:0;cursor:pointer;z-index:2}
.im-city i{position:absolute;left:50%;top:50%;width:var(--s,12px);height:var(--s,12px);transform:translate(-50%,-50%) scale(var(--on,0));border-radius:50%;background:#ed1528;
  box-shadow:0 0 0 4px rgba(237,21,40,.25),0 0 22px 6px rgba(237,21,40,.7);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.im-city:after{content:"";position:absolute;left:50%;top:50%;width:var(--s,12px);height:var(--s,12px);border-radius:50%;border:2px solid #ed1528;transform:translate(-50%,-50%);opacity:0}
.im-city.lit:after{animation:imPulse 2.4s ease-out infinite}
@keyframes imPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}100%{transform:translate(-50%,-50%) scale(4);opacity:0}}
.im-city b{position:absolute;top:50%;transform:translateY(-50%);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#fff;
  opacity:var(--on,0);transition:opacity .4s;text-shadow:0 2px 8px #000;left:calc(50% + 14px)}
.im-city.l b{left:auto;right:calc(50% + 14px)}
.im-city.t b{left:50%;top:auto;bottom:calc(50% + 12px);transform:translateX(-50%)}
.im-city.sel i{background:#fff;box-shadow:0 0 0 5px rgba(237,21,40,.6),0 0 30px 10px rgba(237,21,40,.8)}

@media (max-width:900px){
  .im-map{height:240vh}
  .im-map-stick{grid-template-columns:1fr;align-content:center;gap:22px;padding-top:100px}
  .im-map .im-lead{display:none}
  .im-steps{grid-template-columns:repeat(4,1fr);gap:8px}
  .im-steps li{padding:12px 0 0;font-size:9px;letter-spacing:.06em}
  .im-steps li:before,.im-steps li i{top:0}
  .im-steps li:before{width:auto;right:6px}
  .im-steps li i{max-width:none}
  .im-stage{max-height:52vh}
  .im-mapa-grid{grid-template-columns:1fr}
  .im-map-box{margin:0 auto;order:-1;max-width:420px}
}
@media (prefers-reduced-motion:reduce){.im-w>span{transform:none;transition:none}}
