/* ════ PROJECT SHWETA — Deep Earth system v4 (India hero · motif · product · a11y) ════ */
:root{
  --paper:#f5f2ea;--paper-2:#efeadd;--paper-3:#e9e3d3;--surface:#ffffff;--surface-2:#fbf9f3;
  --ink:#1c2531;--ink-soft:#54606f;--ink-dim:#8b94a1;
  --line:rgba(27,35,48,0.10);--line-strong:rgba(27,35,48,0.20);
  --accent:#b45309;--accent-bright:#f59e0b;--signal:#0f766e;--signal-bright:#0d9488;
  --shadow-sm:0 2px 12px rgba(27,35,48,0.05);--shadow:0 14px 36px rgba(27,35,48,0.10);--shadow-lg:0 30px 70px rgba(27,35,48,0.16);
  --c-signal:#0f766e;--c-accent:#b45309;--c-trace:#8a94a1;--c-ink:#1c2531;--r:16px;--depth:0;
}
[data-theme="dark"]{
  --paper:#15130e;--paper-2:#1b1813;--paper-3:#211d16;--surface:#1a1712;--surface-2:#201c15;
  --ink:#f0ebe0;--ink-soft:#b9b2a2;--ink-dim:#7c7567;
  --line:rgba(240,235,224,0.18);--line-strong:rgba(240,235,224,0.35);
  --accent:#e6953a;--accent-bright:#f3b259;--signal:#34c4a4;--signal-bright:#48d8b6;
  --shadow-sm:0 2px 14px rgba(0,0,0,0.4);--shadow:0 16px 42px rgba(0,0,0,0.5);--shadow-lg:0 30px 70px rgba(0,0,0,0.62);
  --c-signal:#34c4a4;--c-accent:#e6953a;--c-trace:#7c7567;--c-ink:#f0ebe0;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;max-width:100vw;}
body{background:var(--paper);color:var(--ink);font-family:'IBM Plex Sans',sans-serif;line-height:1.65;overflow-x:hidden;width:100%;max-width:100vw;position:relative;-webkit-font-smoothing:antialiased;transition:background .5s,color .5s;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

#boot{position:fixed;inset:0;z-index:99999;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:opacity .8s,visibility .8s;}
#boot.done{opacity:0;visibility:hidden;}
.boot-ring{width:60px;height:60px;border-radius:50%;border:2px solid color-mix(in srgb,var(--signal) 22%,transparent);border-top-color:var(--signal);animation:spin .9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.boot-txt{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;color:var(--ink-soft);text-transform:uppercase;}
.boot-txt b{color:var(--signal);font-weight:500;}

#fieldCanvas{position:fixed;inset:0;z-index:-3;pointer-events:none;}
.bg-layer{position:fixed;inset:0;z-index:-4;background:radial-gradient(circle at 50% -8%,color-mix(in srgb,var(--surface) 80%,transparent),transparent 50%),radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 40%),radial-gradient(circle at 10% 88%,color-mix(in srgb,var(--signal) 7%,transparent),transparent 46%),linear-gradient(180deg,var(--paper),var(--paper-2));}
.depth-tint{position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 50% 120%,color-mix(in srgb,var(--signal) 10%,transparent),transparent 60%);opacity:calc(.3 + var(--depth)*.7);transition:opacity .2s linear;}
.bg-grid{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(color-mix(in srgb,var(--ink) 3%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ink) 3%,transparent) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 38%,black,transparent 80%);-webkit-mask-image:radial-gradient(circle at 50% 38%,black,transparent 80%);transform:translateY(calc(var(--depth)*-32px));}
.progress-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--signal),var(--accent));z-index:1001;width:calc(var(--depth)*100%);}

.depth-gauge{position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:900;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;opacity:0;transition:opacity .6s;}
.depth-gauge.show{opacity:.85;}
.gauge-label{font-size:10px;letter-spacing:.12em;color:var(--ink-dim);}
.gauge-track{width:2px;height:170px;background:var(--line);position:relative;border-radius:2px;}
.gauge-fill{position:absolute;top:0;left:0;width:100%;background:linear-gradient(180deg,var(--accent),var(--signal));height:calc(var(--depth)*100%);}
.gauge-marker{position:absolute;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--signal);top:calc(var(--depth)*100%);transform:translateY(-50%);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 18%,transparent);}
.gauge-depth{font-size:11px;color:var(--signal);letter-spacing:.05em;}
@media(max-width:1100px){.depth-gauge{display:none;}}

nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(14px,3.8vw,44px);transition:all .4s;border-bottom:1px solid transparent;}
nav.scrolled{background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:11px clamp(14px,3.8vw,44px);}
.nav-logo{font-family:'IBM Plex Mono',monospace;color:var(--ink);display:flex;align-items:center;gap:8px;text-decoration:none;min-width:0;flex-shrink:1;overflow:hidden;}
.nav-logo .dot{width:9px;height:9px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 14%,transparent);animation:pulse2 2.6s ease-in-out infinite;flex-shrink:0;}
@keyframes pulse2{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.45;transform:scale(.7);}}
.logo-text{display:flex;flex-direction:column;line-height:1.12;min-width:0;overflow:hidden;}
.logo-name{font-size:15px;font-weight:500;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* logo-full base — white-space controlled per breakpoint */
.logo-full{font-family:'IBM Plex Mono',monospace;font-size:8px;font-weight:400;letter-spacing:.06em;color:var(--ink-dim);text-transform:uppercase;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.nav-right{display:flex;align-items:center;gap:16px;flex-shrink:0;}
.nav-links{display:flex;gap:24px;align-items:center;}
.nav-links a{color:var(--ink-soft);text-decoration:none;font-size:13px;transition:color .25s;position:relative;white-space:nowrap;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--accent);transition:width .3s;}
.nav-links a:hover,.nav-links a.active{color:var(--ink);}.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.status-chip{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--signal);border:1px solid color-mix(in srgb,var(--signal) 34%,transparent);padding:3px 9px;border-radius:999px;white-space:nowrap;}
@media(max-width:980px){.status-chip{display:none;}}
.theme-toggle{width:36px;height:36px;flex-shrink:0;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;font-size:15px;transition:all .3s;}
.theme-toggle:hover{border-color:var(--accent);transform:rotate(18deg);}
.nav-cta{padding:8px 16px;border:1px solid var(--ink);border-radius:999px;color:var(--ink)!important;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;transition:all .3s;text-decoration:none;white-space:nowrap;flex-shrink:0;}
.nav-cta:hover{background:var(--ink);color:var(--paper)!important;}.nav-cta::after{display:none;}
.nav-toggle{display:none;background:none;border:none;color:var(--ink);font-size:23px;cursor:pointer;line-height:1;flex-shrink:0;padding:2px;}
/* mobile nav backdrop overlay */
.nav-overlay{display:none;position:fixed;inset:0;z-index:1040;background:rgba(0,0,0,0.35);backdrop-filter:blur(1px);}
.nav-overlay.open{display:block;}

section{padding:clamp(72px,10vw,130px) clamp(16px,4vw,44px);max-width:1180px;margin:0 auto;position:relative;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:14px;margin-bottom:26px;}
.eyebrow::before{content:'';width:30px;height:1.5px;background:var(--accent);}
h2.heading{font-family:'IBM Plex Serif',serif;font-weight:300;font-size:clamp(30px,4vw,46px);line-height:1.15;color:var(--ink);margin-bottom:22px;}
h2.heading em{font-style:italic;color:var(--accent);}
.lead{color:var(--ink-soft);font-size:17px;font-weight:300;max-width:680px;}
.page-head{padding-top:clamp(110px,15vw,172px);padding-bottom:24px;}

/* signature motif: surface ── subsurface */
.motif{display:flex;align-items:center;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);}
.motif .ln{flex:1;height:1px;background:linear-gradient(90deg,var(--accent),var(--signal));position:relative;min-width:clamp(40px,8vw,90px);}
.motif .ln::before{content:'';position:absolute;left:20%;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--accent);}
.motif .ln::after{content:'';position:absolute;left:64%;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--signal);}
.divider{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,44px);}
.divider .motif{opacity:.7;}

/* hero */
#hero{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding-top:clamp(100px,13vw,150px);max-width:min(1240px,100%);}
.hero-copy{position:relative;z-index:2;}
.hero-tag{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;color:var(--ink-soft);margin-bottom:26px;text-transform:uppercase;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);padding:6px 14px;border-radius:999px;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .1s forwards;}
.hero-tag b{color:var(--signal);}
h1{font-family:'IBM Plex Serif',serif;font-weight:300;font-size:clamp(38px,5.2vw,68px);line-height:1.04;letter-spacing:-.01em;color:var(--ink);margin-bottom:24px;}
h1 .em{font-style:italic;color:var(--accent);}
h1 .word{display:inline-block;opacity:0;transform:translateY(22px);animation:rise .9s cubic-bezier(.16,1,.3,1) forwards;}
@keyframes rise{to{opacity:1;transform:translateY(0);}}
.hero-sub{font-size:18px;font-weight:300;color:var(--ink-soft);max-width:520px;margin-bottom:22px;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .6s forwards;}
.hero-stat{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;color:var(--ink-dim);margin-bottom:24px;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .7s forwards;}
.hero-stat b{color:var(--accent);font-weight:500;}
.hero-motif{margin-bottom:30px;max-width:360px;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .8s forwards;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .9s forwards;}
.btn{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.05em;padding:14px 26px;border-radius:999px;cursor:pointer;border:1px solid var(--line-strong);display:inline-flex;align-items:center;gap:10px;text-decoration:none;transition:all .3s;background:none;color:var(--ink);}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:500;}
.btn-primary:hover{filter:brightness(1.06);box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 28%,transparent);transform:translateY(-2px);}
.btn-ghost:hover{background:var(--surface);border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.btn .arr{transition:transform .3s;}.btn:hover .arr{transform:translateX(4px);}

/* India hero map */
.map-wrap{position:relative;display:flex;align-items:center;justify-content:center;z-index:2;}
.map-glow{position:absolute;width:56%;height:56%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--signal) 14%,transparent),transparent 70%);filter:blur(22px);animation:breathe 7s ease-in-out infinite;}
@keyframes breathe{0%,100%{opacity:.4;transform:scale(1);}50%{opacity:.58;transform:scale(1.04);}}
.india-hero{width:100%;max-width:470px;height:auto;position:relative;overflow:visible;}
.land{fill:none;stroke:var(--signal);stroke-width:1;stroke-linejoin:round;}
.land-fill{fill:color-mix(in srgb,var(--signal) 7%,transparent);}
.grain{fill:none;stroke:var(--ink);stroke-width:.5;opacity:.06;}
.basin{fill:none;stroke:var(--accent);stroke-width:.7;opacity:.10;}
.corridor{fill:color-mix(in srgb,var(--accent) 18%,transparent);filter:blur(10px);opacity:.5;}
.dot{fill:var(--signal);opacity:.8;transform-box:fill-box;transform-origin:center;transition:transform .2s,opacity .2s;cursor:pointer;}
.dot:hover{transform:scale(1.7);opacity:1;}
.dot.focal,.dot.cluster{fill:var(--accent);opacity:.95;}
.pulse{fill:none;stroke:var(--accent);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center;animation:pulseRing 3.4s ease-out infinite;}
@keyframes pulseRing{0%{opacity:.65;r:4;}100%{opacity:0;r:24;}}
.map-cap{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;}

.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:translateY(0);}

.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:start;}
.about-grid p{color:var(--ink-soft);font-weight:300;margin-bottom:18px;}.about-grid p strong{color:var(--ink);font-weight:500;}
.about-aside{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:34px;box-shadow:var(--shadow);}
.about-aside h4{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.13em;color:var(--signal);text-transform:uppercase;margin-bottom:18px;}
.about-aside p{font-size:15px;color:var(--ink-soft);font-weight:300;margin-bottom:14px;}
.about-aside .tagline{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-family:'IBM Plex Serif',serif;font-style:italic;font-size:16px;color:var(--ink);}

#signal{max-width:1100px;text-align:center;}
.signal-wrap{max-width:760px;margin:0 auto;}
.signal-canvas-box{margin:44px auto 0;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:26px 22px 16px;}
#signalCanvas{width:100%;height:180px;display:block;}
.signal-cap{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--ink-dim);text-transform:uppercase;margin-top:8px;}
.signal-cap .now{color:var(--signal);}

.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.mv-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:44px;transition:all .4s;box-shadow:var(--shadow-sm);}
.mv-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--ac);transform:scaleX(0);transform-origin:left;transition:transform .5s;}
.mv-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}.mv-card:hover::before{transform:scaleX(1);}
.mv-card.mission{--ac:var(--accent);}.mv-card.vision{--ac:var(--signal);}
.mv-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Serif',serif;font-size:22px;margin-bottom:24px;background:var(--paper-2);border:1px solid var(--line);color:var(--ac);}
.mv-card h3{font-family:'IBM Plex Serif',serif;font-weight:400;font-size:24px;color:var(--ink);margin-bottom:14px;}
.mv-card p{color:var(--ink-soft);font-weight:300;}

/* tools as products */
.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:14px;perspective:1200px;}
.tool-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:34px;cursor:pointer;transition:border-color .4s,box-shadow .4s,transform .4s;display:flex;flex-direction:column;min-height:340px;box-shadow:var(--shadow-sm);text-decoration:none;}
.tool-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-4px);}
.tool-badge{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;padding:5px 12px;border-radius:999px;align-self:flex-start;background:var(--paper-2);border:1px solid var(--line);color:var(--ink-soft);text-transform:uppercase;}
.tool-card.t2 .tool-badge{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);}
.tool-card h3{font-family:'IBM Plex Serif',serif;font-weight:400;font-size:26px;color:var(--ink);margin:18px 0 10px;}
.tool-card .desc{color:var(--ink-soft);font-weight:300;font-size:15px;flex:1;}
.tool-meta{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0;}
.chip{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-dim);background:var(--paper-2);border:1px solid var(--line);padding:5px 11px;border-radius:7px;}
.tool-launch{display:inline-flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.04em;color:var(--signal);font-weight:500;transition:gap .3s;}
.tool-card.t2 .tool-launch{color:var(--accent);}.tool-card:hover .tool-launch{gap:15px;}

/* stylised product mockup (no real data) */
.mockup{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow);}
.mockup .bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--paper-2);}
.mockup .bar i{width:9px;height:9px;border-radius:50%;background:var(--line-strong);display:block;}
.mockup .bar span{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--ink-dim);margin-left:8px;letter-spacing:.06em;}
.mockup svg{display:block;width:100%;height:auto;}
.mock-note{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--ink-dim);text-align:center;padding:8px;border-top:1px solid var(--line);letter-spacing:.05em;}

.ledger{margin-top:8px;}
.lrow{display:grid;grid-template-columns:clamp(130px,20vw,210px) 1fr;gap:24px;padding:22px 0;border-top:1px solid var(--line);align-items:baseline;}
.lrow:last-child{border-bottom:1px solid var(--line);}
.lrow .lk{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--signal);}
.lrow p{color:var(--ink-soft);font-weight:300;}
.tiers{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:26px;}
.tier{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);display:flex;align-items:center;gap:8px;}
.tier .d{width:8px;height:8px;border-radius:50%;}
.tier.b .d{background:var(--accent);}.tier.s .d{background:var(--ink-dim);}.tier.p .d{background:var(--signal);}
.tier-note{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-dim);}
.two{display:grid;grid-template-columns:.95fr 1.05fr;gap:54px;align-items:center;}
.two.flip .two-media{order:-1;}
.two p{color:var(--ink-soft);font-weight:300;margin-bottom:14px;}.two strong{color:var(--ink);font-weight:500;}
.method-strip{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px;}
.method-note{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-dim);margin-top:14px;}
.fusion svg{width:100%;height:auto;}
.fusion .flow{animation:dash 2.4s linear infinite;}@keyframes dash{to{stroke-dashoffset:-90;}}
.fusion .core{animation:cp 3s ease-in-out infinite;}@keyframes cp{0%,100%{opacity:.92;}50%{opacity:1;}}

.subsec-title{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin:54px 0 22px;display:flex;align-items:center;gap:12px;}
.subsec-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent);}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:16px;}
.member{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;transition:all .35s;box-shadow:var(--shadow-sm);}
.member:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:var(--shadow);}
.member-top{display:flex;align-items:center;gap:15px;}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--ink-soft);background:linear-gradient(135deg,color-mix(in srgb,var(--signal) 15%,transparent),color-mix(in srgb,var(--accent) 13%,transparent));opacity:0;transition:opacity .4s;}
.avatar.loaded,.avatar:not(img){opacity:1;}
.member:hover .avatar{border-color:var(--signal);}
.m-name{color:var(--ink);font-size:15px;font-weight:500;}
.m-badge{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.05em;color:var(--signal);text-transform:uppercase;margin-top:3px;}
.m-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.tag-chip{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:3px 8px;}
.partner-row{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0;}
.partner-box{background:var(--surface);border:1px solid var(--line);padding:16px 26px;border-radius:12px;display:inline-flex;align-items:center;font-family:'IBM Plex Serif',serif;font-weight:500;color:var(--ink);box-shadow:var(--shadow-sm);transition:all .3s;}
.partner-box:hover{transform:scale(1.03);border-color:var(--line-strong);}.partner-box img{max-height:42px;}
.collab-sub{font-family:'IBM Plex Mono',monospace;color:var(--signal);font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin:24px 0 12px;}
.collab-dept{color:var(--ink);font-size:16px;font-weight:500;margin-top:8px;font-family:'IBM Plex Serif',serif;}
.collab-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px;color:var(--ink-soft);font-size:13px;}
.collab-list div{display:flex;align-items:center;gap:8px;}.collab-list div::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0;}

.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:8px 0;flex-wrap:wrap;}
.tab{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);background:none;border:none;border-bottom:2px solid transparent;padding:0 0 12px;cursor:pointer;transition:.25s;}
.tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.panel{display:none;padding-top:30px;}.panel.show{display:block;}
.article{display:grid;grid-template-columns:clamp(80px,12vw,130px) 1fr auto;gap:16px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.article .date{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.article h4{font-family:'IBM Plex Serif',serif;font-weight:400;font-size:22px;color:var(--ink);margin-bottom:6px;}
.article p{color:var(--ink-soft);font-weight:300;font-size:15px;max-width:64ch;}
.article a.more{align-self:center;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--signal);text-decoration:none;}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;grid-auto-rows:200px;}
.ph{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:linear-gradient(135deg,color-mix(in srgb,var(--signal) 12%,transparent),color-mix(in srgb,var(--accent) 14%,transparent));display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-dim);transition:transform .35s;}
.ph:hover{transform:scale(1.015);}.ph.big{grid-column:span 2;grid-row:span 2;}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s;}.ph img.loaded{opacity:1;}
.lightbox{position:fixed;inset:0;background:rgba(8,10,8,.9);z-index:7000;display:none;align-items:center;justify-content:center;padding:40px;}
.lightbox.show{display:flex;}.lightbox img{max-width:90vw;max-height:86vh;border-radius:10px;box-shadow:var(--shadow-lg);}

.memorial-section{padding:96px 44px;max-width:900px;margin:0 auto;}
.memorial{position:relative;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 12%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);padding:56px 48px;border-radius:22px;text-align:center;box-shadow:var(--shadow);}
.memorial::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--accent-bright),transparent);}
.memorial .orn{color:var(--accent);letter-spacing:.5em;font-size:14px;margin-bottom:14px;}
.memorial .photo{width:104px;height:104px;border-radius:50%;margin:0 auto 22px;border:2px solid color-mix(in srgb,var(--accent) 40%,transparent);overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Serif',serif;font-style:italic;font-size:34px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));box-shadow:0 0 34px color-mix(in srgb,var(--accent) 22%,transparent);}
.memorial .photo img{width:100%;height:100%;object-fit:cover;}
.memorial .k{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.memorial .nm{font-family:'IBM Plex Serif',serif;font-style:italic;font-weight:400;font-size:clamp(36px,5vw,60px);color:var(--ink);line-height:1;margin-bottom:20px;}
.memorial p{color:var(--ink-soft);font-weight:300;font-size:17px;line-height:1.8;max-width:580px;margin:0 auto 14px;}
.memorial .sig{font-family:'IBM Plex Serif',serif;font-style:italic;color:var(--accent);font-size:17px;margin-top:8px;}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
.contact-info p{color:var(--ink-soft);font-weight:300;margin-bottom:26px;}
.contact-item{display:flex;gap:14px;margin-bottom:18px;}
.contact-item .ci-ic{color:var(--accent);font-family:'IBM Plex Mono',monospace;font-size:12px;min-width:80px;letter-spacing:.06em;padding-top:3px;}
.contact-item .ci-v{color:var(--ink);font-size:14.5px;}.contact-item .ci-v a{color:var(--signal);text-decoration:none;display:block;}.contact-item .ci-v a:hover{text-decoration:underline;}
.form-field{margin-bottom:16px;}.form-field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.09em;color:var(--ink-dim);text-transform:uppercase;margin-bottom:8px;}
.form-field input,.form-field textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 16px;color:var(--ink);font-family:'IBM Plex Sans';font-size:14px;transition:all .3s;resize:vertical;}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);}
.form-msg{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--signal);margin-top:12px;min-height:16px;}

footer{border-top:1px solid var(--line);padding:clamp(28px,5vw,44px) clamp(16px,4vw,44px);text-align:center;position:relative;z-index:2;max-width:1180px;margin:0 auto;}
.foot-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-bottom:16px;}
.foot-links a{color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;font-size:12px;text-decoration:none;}.foot-links a:hover{color:var(--accent);}
.footer-logo{font-family:'IBM Plex Mono',monospace;letter-spacing:.16em;color:var(--ink);font-size:14px;margin-bottom:10px;}
footer p{color:var(--ink-dim);font-size:13px;}footer p b{color:var(--accent);font-weight:500;}
.foot-credits{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-dim);margin-top:14px;line-height:1.7;opacity:.85;max-width:760px;margin-left:auto;margin-right:auto;}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120%);background:var(--ink);color:var(--paper);font-family:'IBM Plex Mono',monospace;font-size:13px;padding:14px 22px;border-radius:10px;z-index:6000;transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .4s;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto;}

/* ── Tablet (1024px) ── */
@media(max-width:1024px){
  .tools-grid{grid-template-columns:1fr 1fr;}
  .about-grid{grid-template-columns:1fr;gap:36px;}
  .two{grid-template-columns:1fr;gap:36px;}.two.flip .two-media{order:0;}
  .article{grid-template-columns:clamp(80px,12vw,130px) 1fr;gap:14px;}.article a.more{grid-column:2;justify-self:start;}
  .contact-grid{grid-template-columns:1fr;gap:36px;}
}

/* ── Mobile nav: hamburger drawer ── */
@media(max-width:860px){
  nav{padding:13px 16px;overflow:visible;}nav.scrolled{padding:10px 16px;}
  /* Nav drawer: slides in from the right */
  .nav-links{
    position:fixed;
    top:0;right:0;height:100vh;height:100dvh;
    width:82%;max-width:300px;
    background:color-mix(in srgb,var(--paper) 97%,transparent);
    backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    padding:80px 28px 40px;
    gap:10px;
    transform:translateX(110%);
    transition:transform .35s cubic-bezier(.16,1,.3,1);
    border-left:1px solid var(--line);
    z-index:1050;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{
    font-size:18px;
    font-weight:500;
    padding:10px 0;
    width:100%;
    border-bottom:1px solid var(--line);
    color:var(--ink);
  }
  .nav-links a::after{bottom:0;}
  .nav-toggle{display:block;z-index:1100;}
  /* Hero: single column */
  section,.memorial-section{padding:clamp(64px,10vw,86px) clamp(16px,5vw,20px);}.divider{padding:0 clamp(16px,5vw,20px);}
  #hero{grid-template-columns:1fr;text-align:center;gap:32px;padding-top:90px;min-height:auto;}
  .hero-copy { display: contents; }
  .hero-tag, #hero h1, .hero-sub, .hero-stat, .hero-motif, .hero-actions {
    position: relative;
    z-index: 2;
  }
  .hero-tag { order: 1; }
  #hero h1 { order: 2; }
  .map-wrap { order: 3; }
  .hero-sub { order: 4; }
  .hero-stat { order: 5; }
  .hero-motif { order: 6; }
  .hero-actions { order: 7; }
  .hero-tag,.hero-actions,.hero-motif{justify-content:center;}.hero-motif{margin-left:auto;margin-right:auto;}.hero-sub{margin-left:auto;margin-right:auto;}
  .about-grid,.mv-grid,.tools-grid,.contact-grid,.two{grid-template-columns:1fr;}.two.flip .two-media{order:0;}
  .lrow{grid-template-columns:1fr;gap:4px;}
  .article{grid-template-columns:1fr;gap:6px;}.article a.more{justify-self:start;}
  .ph.big{grid-column:span 1;grid-row:span 1;}
  .partner-row{justify-content:center;}
  .logo-tile{min-height:70px;padding:12px 18px;}
  .tabs{gap:10px;padding-bottom:6px;justify-content:center;border-bottom:none;}
  .tab{padding:8px 14px;font-size:12px;white-space:normal;background:var(--surface);border:1px solid var(--line);border-radius:999px;flex:1;text-align:center;min-width:100px;}
  .tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
  .mv-grid{grid-template-columns:1fr;}
  /* Nav dropdown inside drawer */
  .nav-links .nav-dd{width:100%;}
  .nav-links .nav-dd-toggle{justify-content:flex-start;width:100%;font-size:18px;font-weight:500;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink);}
  .nav-links .nav-dd-menu{position:static;transform:none;opacity:1;visibility:hidden;height:0;overflow:hidden;padding:0;border:none;box-shadow:none;background:none;min-width:0;transition:height .25s;}
  .nav-links .nav-dd-menu::before{display:none;}
  .nav-links .nav-dd.open .nav-dd-menu{visibility:visible;height:auto;padding:8px 0 4px;transform:none;}
  .nav-links .nav-dd-menu a{align-items:flex-start;padding:10px 12px;border-radius:8px;}
  .nav-links .nav-dd-menu .dd-name{font-size:15px;}
  /* Logo reorder */
  .nav-logo { flex: 1; min-width: 0; }
  .nav-right { order: 2; gap: 8px; }
  .nav-toggle { order: 3; margin-left: 6px; }
  /* Shrink CTA on mobile — hide at very small sizes */
  .nav-cta{padding:6px 12px;font-size:11px;}
  .theme-toggle{width:34px;height:34px;font-size:14px;}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}.reveal{opacity:1;transform:none;}#fieldCanvas{display:none;}.word{opacity:1!important;transform:none!important;}.hero-tag,.hero-sub,.hero-stat,.hero-motif,.hero-actions{opacity:1!important;animation:none!important;}}

/* SCD field — very small candidate points (illustrative) */
.scd-field{pointer-events:none;}
.scd{fill:var(--signal);}
.dot.focal{r:2.3;}

/* geoscience composite hero: markers, faults, zones, site, legend */
.scd{fill:var(--signal);}
.mk-geo{fill:none;stroke:var(--ink-soft);stroke-width:1;opacity:.7;}
.mk-gp{fill:none;stroke:var(--signal);stroke-width:1;opacity:.85;}
.mk-gc{fill:var(--accent);opacity:.8;}
.mk-rs{stroke:var(--ink-dim);stroke-width:1;opacity:.7;}
.mk-sat{stroke:var(--signal);stroke-width:.9;opacity:.62;fill:none;}
.fault{fill:none;stroke:var(--accent);stroke-width:1.1;opacity:.5;}
.fault-t{stroke:var(--accent);stroke-width:1;opacity:.45;fill:none;}
.zone{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:var(--accent);stroke-width:1.2;stroke-dasharray:4 4;opacity:.9;}
.zone-2{fill:color-mix(in srgb,var(--signal) 12%,transparent);stroke:var(--signal);}
.site{cursor:pointer;}
.site .site-h{fill:color-mix(in srgb,var(--accent) 16%,transparent);stroke:none;animation:breathe 4s ease-in-out infinite;}
.site>circle:not(.site-h){fill:var(--accent);}
.site>path{stroke:var(--accent);stroke-width:1.2;fill:none;}
.map-wrap{flex-direction:column;width:100%;max-width:100%;overflow:hidden;}
.india-hero{width:100%;height:auto;max-width:100%;}
.map-cap{position:static;left:auto;transform:none;margin-top:10px;}
.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:12px;max-width:470px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.03em;text-transform:uppercase;}
.map-legend .lg{display:inline-flex;align-items:center;gap:5px;font-weight:600;}
.map-legend .lg em{color:var(--ink-dim);font-style:normal;font-weight:400;}

/* partner / supporter logo tiles */
.logo-tile{display:flex;align-items:center;justify-content:center;border-radius:14px;padding:16px 26px;min-height:88px;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform .3s,box-shadow .3s;}
.logo-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.logo-tile img{display:block;width:auto;max-height:48px;}
.logo-tile.light{background:#ffffff;border-color:rgba(27,35,48,.12);}
.logo-tile.dark{background:#0b1130;border-color:rgba(255,255,255,.14);}
.logo-tile.sess img{max-height:74px;}

/* ───────── larger, more readable type scale ───────── */
body{font-size:17px;}
.lead{font-size:19px;}
.hero-sub{font-size:20px;}
.hero-tag,.hero-stat{font-size:12.5px;}
.about-grid p,.two p,.contact-info p,.mv-card p,.lrow p{font-size:16.5px;}
.about-aside p{font-size:16px;}
.about-aside .tagline{font-size:17px;}
.tool-card .desc{font-size:16px;}
.tool-card h3{font-size:28px;}
.mv-card h3{font-size:26px;}
.article p{font-size:16px;}
.article h4{font-size:24px;}
.collab-list{font-size:14px;}
.collab-dept{font-size:17px;}
.m-name{font-size:16px;}
.m-badge,.m-role{font-size:13px;}
.memorial p{font-size:19px;}
.memorial .sig{font-size:18px;}
.contact-item .ci-v{font-size:15.5px;}
.form-field input,.form-field textarea{font-size:16px;}
.nav-links a{font-size:14px;}
.btn,.tool-launch,.nav-cta{font-size:14px;}
.chip,.tool-badge,.tier,.tag-chip{font-size:12px;}
.eyebrow,.subsec-title,.collab-sub,.lrow .lk,.tab,.article .date,.about-aside h4{font-size:13px;}
.foot-links a,footer p{font-size:13px;}
.logo-name{font-size:16px;}.logo-full{font-size:8.5px;}
.status-chip{font-size:11px;}

/* ───────── contrast + legibility fixes ───────── */
/* darker greys (light theme) so muted text, nav links and tabs read clearly */
:root{--ink-soft:#3f4856;--ink-dim:#5e6776;}
[data-theme="dark"]{--ink-soft:#cbc4b5;--ink-dim:#9c9586;}
/* full-form line under the wordmark: larger + darker */
.logo-full{font-size:11px;color:var(--ink-soft);letter-spacing:.03em;font-weight:400;}
/* nav links + tabs: a touch stronger weight for crispness */
.nav-links a{font-weight:500;}
.tab{font-weight:500;}

/* ───────── logo-full: visible but wrapping on narrow screens ───────── */
/* Single canonical rule — overrides earlier display:none at 1024px */
.logo-full{
  display:block;
  white-space:normal;
  max-width:min(72vw,440px);
  line-height:1.25;
}
@media(max-width:860px){
  .logo-full{max-width:48vw;font-size:9px;letter-spacing:.02em;line-height:1.2;}
}
@media(max-width:480px){
  .logo-full{display:none;}
}

/* ───────── display headings → IBM Plex Sans (option 2) ───────── */
h1,h2.heading,.heading,.mv-card h3,.tool-card h3,.article h4,.collab-dept{
  font-family:'IBM Plex Sans',sans-serif;font-weight:600;letter-spacing:-.02em;
}
/* accent words: drop the italic, keep the ochre */
h1 .em,h2.heading em,.heading em,.heading .em{font-style:normal;color:var(--accent);}

/* ───────── body copy: light(300) → regular(400) so it isn't thin/faint ───────── */
.lead,.hero-sub,.about-grid p,.about-aside p,.mv-card p,.tool-card .desc,
.article p,.memorial p,.contact-info p,.two p,.lrow p,.collab-list{font-weight:400;}

/* ───────── nav "Tools" dropdown (PrescientProspect / PrescientProbe) ───────── */
.nav-dd{position:relative;display:inline-block;}
.nav-dd::after{content:'';position:absolute;top:100%;left:-20px;right:-20px;height:24px;}
.nav-dd-toggle{font-family:'IBM Plex Sans',sans-serif;font-size:14px;font-weight:500;color:var(--ink-soft);background:none;border:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:6px;transition:color .25s;}
.nav-dd-toggle:hover,.nav-dd.open>.nav-dd-toggle,.nav-dd-toggle.active{color:var(--ink);}
.dd-caret{font-size:10px;transition:transform .25s;}
.nav-dd.open .dd-caret{transform:rotate(180deg);}
.nav-dd-menu{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(6px);min-width:236px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;transition:opacity .25s,transform .25s;z-index:1200;}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu,.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dd-menu::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);}
.nav-dd-menu a{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:9px;text-decoration:none;transition:background .2s;}
.nav-dd-menu a::after{display:none;}
.nav-dd-menu a:hover{background:var(--paper-2);}
.nav-dd-menu a.active{background:var(--paper-2);}
.nav-dd-menu .dd-name{font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:14px;color:var(--ink);letter-spacing:-.01em;}
.nav-dd-menu a.active .dd-name{color:var(--accent);}
.nav-dd-menu .dd-sub{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-dim);letter-spacing:.04em;text-transform:uppercase;}
/* nav dropdown mobile rules now handled in the main @media(max-width:860px) block above */

/* ── Hide nav-cta at 600px — prevent nav bar crowding ── */
@media(max-width:600px){
  .nav-cta{display:none;}
}

/* ── Extra-narrow phones (< 420px) ── */
@media(max-width:420px){
  .btn{padding:10px 16px;font-size:12px;gap:8px;}
  .hero-actions{gap:8px;}
  .lrow{padding:14px 0;}
  .article{padding:16px 0;}
  .mv-card,.tool-card{padding:24px 18px;}
  .memorial{padding:32px 20px;}
  h2.heading{font-size:clamp(24px,8vw,36px);}
  .page-head{padding-top:90px;}
}

/* nav brand logo image */
.nav-logo-img{height:34px;width:auto;display:block;flex-shrink:0;}
nav.scrolled .nav-logo-img{height:30px;}
@media(max-width:860px){.nav-logo-img{height:30px;}}

/* ── User Avatar ── */
.user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--c-accent, #5aaeff);
  color: #fff;
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  text-decoration: none;
  margin-left: 14px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: opacity 0.2s, transform 0.2s;
  cursor: pointer;
  outline: none;
}
.user-avatar:hover {
  opacity: 0.85;
  transform: scale(1.05);
}

/* team member biography */
.m-bio{margin-top:14px;color:var(--ink-soft);font-size:14px;line-height:1.6;text-align:justify;hyphens:auto;-webkit-hyphens:auto;}

/* reusable justify helper — add class="justify" to any paragraph */
.justify{ text-align: justify; hyphens: auto; -webkit-hyphens: auto; }

