/* Shared site styles. Page-specific styles stay inline in each page. */

/* Compact header menu (tablets and phones). The button is hidden on desktop. */
.menu-btn{display:none;flex:none;width:44px;height:44px;padding:0;margin:0 -8px 0 0;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-btn span{display:block;width:24px;height:2px;background:#e3cd9f;transition:transform .3s ease,opacity .2s ease}
.menu-btn:focus-visible{outline:2px solid #c69a5b;outline-offset:2px}

@media (max-width:960px){
  header{flex-wrap:nowrap !important}
  .menu-btn{display:flex}
  html.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  html.menu-open .menu-btn span:nth-child(2){opacity:0}
  html.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  header nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;flex-wrap:nowrap !important;align-items:stretch !important;gap:0 !important;padding:6px 24px 22px;background:#12184a;border-top:1px solid rgba(255,255,255,.08);box-shadow:0 18px 30px rgba(5,8,40,.35);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
  html.menu-open header nav{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .25s ease}
  header nav a{padding:15px 0 !important;font-size:16px !important;border-bottom:1px solid rgba(255,255,255,.08)}
  header nav a:last-child{margin-top:18px;padding:14px 22px !important;text-align:center;border-bottom:0}
}
@media (prefers-reduced-motion:reduce){.menu-btn span,header nav{transition:none !important}}

/* India footprint map (map.js). Each page sets its own layout around .india-map. */
.im-year{font-family:'Playfair Display',serif;font-size:68px;font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(198,154,91,.75);font-variant-numeric:lining-nums tabular-nums}
.india-map{position:relative;aspect-ratio:1000/1122;width:100%}
.india-map svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.im-land{fill:rgba(198,154,91,0);stroke:#c69a5b;stroke-width:2.2;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s cubic-bezier(.45,0,.2,1),fill .9s ease 1.1s}
.is-drawn .im-land{stroke-dashoffset:0;fill:rgba(198,154,91,.11)}
.im-islands circle{fill:#c69a5b;opacity:0;transition:opacity .6s ease 1.2s}
.is-drawn .im-islands circle{opacity:.85}
.im-pin{cursor:pointer;outline:none}
.im-hit{fill:transparent}
.im-dot{fill:#12184a;stroke:#f8f5ee;stroke-width:3.5;transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .5s cubic-bezier(.34,1.7,.64,1),fill .25s ease}
.im-pin.is-on .im-dot{transform:scale(1)}
.im-pin.is-hi .im-dot{transform:scale(1.4);fill:#c69a5b}
.im-ring{fill:none;stroke:#c69a5b;stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center}
.is-done .im-pin.is-now .im-ring{animation:imPulse 2.4s ease-out infinite}
.im-pin.is-now .im-dot{fill:#c69a5b}
@keyframes imPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.1);opacity:0}}
.im-label{position:absolute;font-size:12px;font-weight:600;letter-spacing:.3px;color:#12184a;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(14px,-50%);transition:opacity .45s ease,color .25s ease;text-shadow:0 0 3px #f8f5ee,0 0 3px #f8f5ee,0 0 6px #f8f5ee}
.im-label.im-l{transform:translate(calc(-100% - 14px),-50%)}
.im-label.im-tl{transform:translate(calc(-100% - 8px),-135%)}
.im-label.is-on{opacity:1}
.im-label.is-hi{color:#9a7238}
.im-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:14px;font-size:12px;color:#6d7290}
.im-legend span{display:inline-flex;align-items:center;gap:8px}
.im-key-dot{width:10px;height:10px;border-radius:50%;background:#12184a;display:inline-block}
.im-key-ring{width:12px;height:12px;border-radius:50%;background:#c69a5b;box-shadow:0 0 0 3px rgba(198,154,91,.3);display:inline-block}
.im-replay{margin-left:auto;border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:#12184a;cursor:pointer;border-bottom:1.5px solid #c69a5b}
.im-list{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
.im-list li{display:flex;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid rgba(18,24,74,.09);font-size:14px;font-weight:600;color:#12184a;cursor:default;outline:none;transition:opacity .45s ease,color .25s ease}
.im-yr{font-family:'Playfair Display',serif;font-size:13px;font-weight:600;color:#c69a5b;min-width:36px}
.im-js .im-list li:not(.is-on){opacity:.3}
.im-list li.is-hi{color:#9a7238}
@media (prefers-reduced-motion:reduce){.im-land,.im-islands circle,.im-dot,.im-label,.im-list li{transition:none !important}.is-done .im-pin.is-now .im-ring{animation:none;opacity:.6;transform:scale(1.5)}}
@media (max-width:680px){
  .im-year{font-size:52px !important}
  .im-label{font-size:10px !important;transform:translate(9px,-50%) !important}
  .im-label.im-l{transform:translate(calc(-100% - 9px),-50%) !important}
  .im-label.im-tl{transform:translate(calc(-100% - 5px),-135%) !important}
}
