/* EIM site — shared chrome + page components (the story page keeps its own scene CSS in index.html) */
@font-face{font-family:"PP Neue Montreal";src:url("/fonts/PPNeueMontreal-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"PP Neue Montreal";src:url("/fonts/PPNeueMontreal-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"PP Neue Montreal";src:url("/fonts/PPNeueMontreal-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"PP Neue Montreal";src:url("/fonts/PPNeueMontreal-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --bg:#001B1E; --bg-2:#01363F; --ink:#E7F1F1; --muted:#8FB5B2; --dim:#557C7B; --aqua:#66CCC0; --pale:#B9EDEA;
  --line:rgba(185,237,234,.14); --line-strong:rgba(185,237,234,.32);
  --teal:#38E0CF; --green:#5FD98A; --teal-dim:rgba(56,224,207,.35); --coral:#F0705E; --amber:#E8B85B;
  --serif:"Instrument Serif","Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"PP Neue Montreal","Helvetica Neue",Arial,sans-serif;
  --mono:"DM Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --rail:68px; --col:96px; --right:184px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
::selection{background:var(--teal);color:#001B1E}
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}

/* ---------- header / nav (shared by every page incl. the story) ---------- */
.site-head{position:fixed;top:0;left:0;right:0;height:68px;z-index:60;background:var(--bg);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px 0 20px}
.site-head .logo{display:block;width:64px;height:22px}
.site-head .logo svg{width:100%;height:100%}
.topnav{display:flex;align-items:center;gap:6px}
.topnav a{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:4px;transition:color .2s,background .2s}
.topnav a:hover{color:var(--ink);background:rgba(185,237,234,.06)}
.topnav a.on{color:var(--teal)}
.topnav a.pill{margin-left:10px}
.topnav a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.menu-btn{display:none;background:none;border:1px solid var(--line-strong);border-radius:4px;color:var(--ink);font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;padding:9px 12px;cursor:pointer}
.pill{display:inline-flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border:1px solid var(--line-strong);border-radius:4px;background:rgba(0,27,30,.7);color:var(--ink);font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:border-color .2s,color .2s}
.pill .arr{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid var(--line-strong);border-radius:3px;font-size:11px}
.pill:hover{border-color:var(--teal);color:var(--teal)}
.pill.solid{background:var(--teal);color:#001B1E;border-color:var(--teal)}
.pill.solid .arr{border-color:rgba(0,27,30,.4)}
.pill.solid:hover{background:var(--pale);border-color:var(--pale);color:#001B1E}
.pill:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media (max-width:900px){
  .topnav{position:fixed;inset:68px 0 0 0;background:var(--bg);flex-direction:column;align-items:flex-start;padding:28px 22px;gap:4px;display:none}
  .topnav.open{display:flex}
  .topnav a{font-size:14px;padding:14px 8px}
  .topnav a.pill{margin:16px 0 0}
  .menu-btn{display:inline-block}
}

/* ---------- page skeleton ---------- */
.page{padding-top:68px}
.frame-lines{position:fixed;inset:0;pointer-events:none;z-index:1}
.frame-lines .rail{position:absolute;top:0;bottom:0;left:var(--rail);width:1px;background:var(--line)}
.frame-lines .rrail{position:absolute;top:68px;bottom:0;right:var(--right);width:1px;background:var(--line)}
.wrap{position:relative;z-index:2;padding:0 calc(var(--right) + 40px) 0 var(--col)}
.eyebrow{display:flex;align-items:center;gap:14px;color:var(--muted);font:400 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--line-strong)}
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;line-height:.98}
.display em{font-style:italic;color:var(--teal)}
.lbl{display:inline-block;padding:6px 10px;border-radius:3px;background:rgba(185,237,234,.06);border:1px solid var(--line);color:var(--muted);font:500 10.5px/1.6 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.lbl.teal{color:var(--teal);border-color:var(--teal-dim);background:rgba(56,224,207,.06)}
.num{font-variant-numeric:tabular-nums}

.hero-p{min-height:62vh;display:grid;align-content:end;gap:22px;padding:120px 0 64px;position:relative}
.hero-p h1{font-size:clamp(44px,6.4vw,104px);max-width:14ch}
.hero-p .sub{font-family:var(--serif);font-size:clamp(20px,2vw,28px);line-height:1.2;color:var(--muted);max-width:34ch}
.hero-p.photo{min-height:78vh;isolation:isolate}
.hero-p.photo img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.85)}
.hero-p.photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,27,30,.92) 0%,rgba(0,27,30,.7) 45%,rgba(0,27,30,.2) 100%),linear-gradient(180deg,rgba(0,27,30,.4) 0%,rgba(0,27,30,0) 40%,rgba(0,27,30,.95) 100%)}
.hero-p.photo{margin:0 calc(-1 * (var(--right) + 40px)) 0 calc(-1 * var(--col));padding-left:var(--col);padding-right:calc(var(--right) + 40px)}

.sec{padding:88px 0;border-top:1px solid var(--line)}
.sec .eyebrow{margin-bottom:22px}
.sec h2.display{font-size:clamp(34px,4.4vw,64px);max-width:18ch;margin-bottom:34px}
.lead{font-size:19px;line-height:1.5;max-width:64ch;color:var(--ink)}
.lead.dim{color:var(--muted)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.two .media{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg-2)}
.two .media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.grid{display:grid;gap:22px}
.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{border:1px solid var(--line);border-radius:6px;background:rgba(1,54,63,.35);padding:22px;display:flex;flex-direction:column;gap:12px}
.card .ph{margin:-22px -22px 8px;border-bottom:1px solid var(--line);overflow:hidden;background:var(--bg-2)}
.card .ph img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.85)}
.card h3{font-family:var(--serif);font-size:26px;line-height:1.1;letter-spacing:-.01em}
.card p{color:var(--muted);font-size:15px;line-height:1.5}
.card .ic{width:36px;height:36px;object-fit:contain}
.card .k{font:500 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.pair{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:0 28px;padding:26px 0;border-top:1px solid var(--line)}
.pair:last-child{border-bottom:1px solid var(--line)}
.pair .n{font:400 30px/1 var(--serif);color:var(--dim)}
.pair h3{font-family:var(--serif);font-size:26px;line-height:1.1;margin-bottom:8px}
.pair p{color:var(--muted);font-size:15px;line-height:1.5}
.pair .sol h3{color:var(--teal)}
.pair .tag{font:500 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:10px;display:block}

.person{display:grid;grid-template-columns:120px minmax(0,1fr);gap:26px;align-items:start;padding:30px 0;border-top:1px solid var(--line)}
.person img{width:120px;height:124px;object-fit:cover;border-radius:6px;border:1px solid var(--line);filter:saturate(.85)}
.person h3{font-family:var(--serif);font-size:30px;line-height:1.05}
.person .role{font:500 10.5px/1.6 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin:6px 0 14px}
.person p{color:var(--muted);font-size:15px;line-height:1.55;max-width:72ch}
.person p + p{margin-top:10px}

.quote{border:1px solid var(--line);border-radius:6px;padding:26px;display:flex;flex-direction:column;gap:18px;background:rgba(1,54,63,.25)}
.quote blockquote{margin:0;font-family:var(--serif);font-size:22px;line-height:1.28;letter-spacing:-.01em}
.quote blockquote::before{content:"“";color:var(--teal)}
.quote .who{display:flex;gap:14px;align-items:center;margin-top:auto}
.quote .who img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:top;border:1px solid var(--line)}
.quote .who b{display:block;font-weight:500;font-size:14px}
.quote .who span{font:400 10.5px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

.tl{display:grid;gap:0}
.tl .row{display:grid;grid-template-columns:130px 200px minmax(0,1fr);gap:26px;padding:22px 0;border-top:1px solid var(--line);align-items:start}
.tl .row time{font:500 11px/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.tl .row img{width:200px;aspect-ratio:3/2;object-fit:cover;border-radius:4px;border:1px solid var(--line);filter:saturate(.85)}
.tl .row h3{font-family:var(--serif);font-size:24px;line-height:1.1;margin-bottom:6px}
.tl .row p{color:var(--muted);font-size:15px;line-height:1.5;max-width:64ch}
.tl .row .meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px;font:400 10.5px/1.5 var(--mono);letter-spacing:.1em;color:var(--muted)}
.tl .row .meta b{color:var(--ink);font-weight:500}

table.data{width:100%;border-collapse:collapse;font-size:14.5px}
table.data th{text-align:left;font:500 10.5px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line-strong)}
table.data td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}
table.data .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--teal);margin-right:8px;vertical-align:middle}
table.data .dot.u{background:transparent;border:1.4px solid var(--teal)}
table.data .dot.p{background:var(--coral)}
table.data .dot.c{background:var(--amber);border-radius:1px;transform:rotate(45deg)}
.tally{display:grid;grid-template-columns:repeat(4,auto);gap:0 34px;padding:18px 22px;border:1px solid var(--line);border-radius:6px;background:rgba(0,27,30,.9);width:max-content}
.tally div{display:flex;flex-direction:column;gap:6px}
.tally .ic{width:22px;height:22px;object-fit:contain;margin-bottom:2px}
.tally b{font:400 34px/1 var(--serif);letter-spacing:-.01em}
.tally span{font:400 10px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.tally .tot{grid-column:1 / -1;border-top:1px solid var(--line);margin-top:12px;padding-top:12px;flex-direction:row;align-items:baseline;gap:10px}

.job{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:26px;align-items:center;padding:22px 0;border-top:1px solid var(--line)}
.job:last-child{border-bottom:1px solid var(--line)}
.job .k{font:500 10.5px/1.6 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.job h3{font-family:var(--serif);font-size:26px;line-height:1.1}
.job .meta{font:400 11px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}

.office{border-top:1px solid var(--line);padding:22px 0;display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px}
.office h3{font-family:var(--serif);font-size:24px;line-height:1.1}
.office p{color:var(--muted);font-size:15px;line-height:1.55}
.office a{color:var(--teal);text-decoration:none;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
form.enq{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.enq label{display:flex;flex-direction:column;gap:8px;font:500 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
form.enq label.full{grid-column:1 / -1}
form.enq input,form.enq textarea,form.enq select{background:rgba(1,54,63,.35);border:1px solid var(--line-strong);border-radius:4px;color:var(--ink);font:400 16px/1.4 var(--sans);padding:12px 14px;outline:none}
form.enq input:focus,form.enq textarea:focus,form.enq select:focus{border-color:var(--teal)}
form.enq textarea{min-height:130px;resize:vertical}
form.enq .actions{grid-column:1 / -1;display:flex;gap:16px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px}

.cta-band{margin-top:40px;border-top:1px solid var(--line);padding:72px 0 96px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end}
.cta-band h2{font-size:clamp(34px,4.4vw,64px);max-width:16ch}
.cta-band .btns{display:flex;gap:14px;flex-wrap:wrap}

.site-foot{position:relative;z-index:2;background:var(--bg);border-top:1px solid var(--line);padding:40px calc(var(--right) + 40px) 48px var(--col);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.site-foot h4{font:500 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.site-foot a{color:var(--muted);text-decoration:none;display:block;font-size:14px;line-height:1.7}
.site-foot a:hover{color:var(--ink)}
.site-foot p{color:var(--muted);font-size:13.5px;line-height:1.6}
.site-foot .legal{grid-column:1 / -1;border-top:1px solid var(--line);padding-top:18px;display:flex;flex-wrap:wrap;gap:12px 28px;color:var(--dim);font:400 10.5px/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.site-foot .legal a{display:inline;color:var(--pale);border-bottom:1px solid var(--line-strong);font:inherit}

@media (max-width:900px){
  :root{--rail:22px;--col:22px;--right:22px}
  .frame-lines{display:none}
  .wrap{padding:0 22px}
  .hero-p.photo{margin:0 -22px;padding:120px 22px 56px}
  .two,.grid.c3,.grid.c2,.grid.c4{grid-template-columns:1fr}
  .pair{grid-template-columns:1fr;gap:12px}
  .person{grid-template-columns:1fr}
  .tl .row{grid-template-columns:1fr;gap:12px}
  .tl .row img{width:100%}
  .job{grid-template-columns:1fr;gap:10px;align-items:start}
  .office{grid-template-columns:1fr}
  form.enq{grid-template-columns:1fr}
  .cta-band{grid-template-columns:1fr}
  .site-foot{grid-template-columns:1fr 1fr;padding:32px 22px 40px}
  .tally{grid-template-columns:repeat(2,auto)}
  .table-wrap{overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- image carousel ---------- */
.carousel{position:relative}
.carousel .track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:4px;scrollbar-width:none}
.carousel .track::-webkit-scrollbar{display:none}
.carousel .track:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.carousel .slide{flex:0 0 min(72%,720px);scroll-snap-align:start;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg-2)}
.carousel .slide img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:saturate(.9)}
.carousel .ctrls{display:flex;align-items:center;gap:16px;margin-top:20px}
.carousel .nav{width:40px;height:40px;border:1px solid var(--line-strong);border-radius:4px;background:rgba(0,27,30,.7);color:var(--ink);font-size:15px;cursor:pointer;transition:border-color .2s,color .2s}
.carousel .nav:hover{border-color:var(--teal);color:var(--teal)}
.carousel .nav:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.carousel .nav[disabled]{opacity:.35;cursor:default}
.carousel .nav[disabled]:hover{border-color:var(--line-strong);color:var(--ink)}
.carousel .dots{display:flex;gap:8px;flex:1}
.carousel .dots i{width:26px;height:2px;background:var(--line-strong);transition:background .25s}
.carousel .dots i.on{background:var(--teal)}
@media (max-width:900px){.carousel .slide{flex-basis:88%}}

/* ---------- India map (shared with the story) ---------- */
.india .state{fill:#012A31;stroke:rgba(185,237,234,.26);stroke-width:.8;vector-effect:non-scaling-stroke}
.india .outline{fill:none;stroke:rgba(185,237,234,.5);stroke-width:1.1;vector-effect:non-scaling-stroke}
.india .district{fill:none;stroke:rgba(185,237,234,.16);stroke-width:.6;vector-effect:non-scaling-stroke}
.india .dist-g{transition:opacity .6s}.india .dist-g.hide{opacity:0}
.india .stname{fill:var(--pale);opacity:.35;font:500 11px var(--mono);letter-spacing:.22em;pointer-events:none;transition:opacity .6s}
.india .stname.hide,.india .sea.hide{opacity:0}
.india .rt,.india .zone,.india .grat,.india .ex-ring,.india .up,.india .chg,.india .pulse{vector-effect:non-scaling-stroke}
.india .grat{stroke:var(--line);stroke-width:.6;stroke-dasharray:2 8}
.india .sea{fill:var(--dim);font:400 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;opacity:.7}
.india .st{transition:opacity .6s ease,transform .6s ease;transform-box:fill-box;transform-origin:center}
.india .st.hide{opacity:0;transform:scale(.4)}
.india .ex{fill:var(--teal)}
.india .ex-ring{fill:none;stroke:var(--teal);stroke-width:1;opacity:.55}
.india .up{fill:none;stroke:var(--teal);stroke-width:1.4}
.india .pl{fill:var(--coral)}
.india .chg{fill:var(--amber);stroke:var(--bg);stroke-width:1}
.india .chg.pend{fill:none;stroke:var(--amber);stroke-dasharray:2 2}
.india .chgn{font:500 9.5px var(--mono);fill:var(--amber);letter-spacing:.05em}
.india .chg-l{fill:var(--amber)}
.india .rt{fill:none;stroke:var(--teal);stroke-width:1.4;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 1.8s ease .2s,opacity .5s}
.india .rt.hide{opacity:0;transition:none}
.india .rt.pl{stroke:var(--coral);stroke-dasharray:5 5;transition:opacity .8s;stroke-dashoffset:0}
.india .zone{fill:none;stroke:var(--teal);stroke-width:1;stroke-dasharray:3 6;opacity:.6;transition:opacity .8s}
.india .zone.hide{opacity:0}
.india .zl{font:500 10.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;fill:var(--ink);transition:opacity .8s}
.india .zl .n{fill:var(--muted);font-weight:400}
.india .zl.hide{opacity:0}
.india .city{font:400 10.5px var(--mono);letter-spacing:.12em;fill:var(--ink);transition:opacity .6s}
.india .city.hide{opacity:0}
.india .city.dimc{fill:var(--muted)}
.pulse{transform-box:fill-box;transform-origin:center;animation:ping 2.4s ease-out infinite;fill:none;stroke:var(--teal);stroke-width:1}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.6);opacity:0}}
