/* ==========================================================================
   BalancePro — Business Intelligence
   Corporate, photo-led design system (white canvas, navy + logo blue)
   ========================================================================== */

:root{
  --navy-950:#050E1C;
  --navy-900:#0A1628;
  --navy-800:#10213A;
  --ink:#0B1220;
  --ink-2:#26324A;
  --muted:#58687F;
  --muted-2:#8595AB;
  --paper:#F4F7FB;
  --white:#FFFFFF;
  --line:#E1E8F1;
  --line-2:#C9D6E6;
  --bp:#6EB0DE;          /* logo blue */
  --blue:#1F6FB2;        /* action blue */
  --blue-dark:#16568C;
  --bp-soft:#E8F2FA;
  --mint:#2FB388;

  --head:"Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --logo:"Fraunces", Georgia, serif;

  --r-sm:8px; --r:12px; --r-lg:18px;
  --shadow:0 12px 32px -14px rgba(11,18,32,.25);
  --shadow-lg:0 30px 60px -24px rgba(5,14,28,.4);
  --wrap:1240px;
  --gutter:clamp(16px, 4vw, 40px);
  --header-h:80px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:#fff; color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ display:block; max-width:100%; }
svg{ display:block; }
a{ color:inherit; }
p{ margin:0 0 1em; }
h1,h2,h3,h4{ margin:0; font-family:var(--head); font-weight:700; letter-spacing:-.02em; line-height:1.15; color:var(--ink); }
h3{ font-size:1.2rem; letter-spacing:-.01em; }
:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; border-radius:4px; }
.wrap{ width:100%; max-width:calc(var(--wrap) + var(--gutter)*2); margin:0 auto; padding:0 var(--gutter); }
.skip{ position:absolute; left:-999px; top:8px; background:var(--ink); color:#fff; padding:8px 14px; border-radius:8px; z-index:300; }
.skip:focus{ left:8px; }
.hidden{ display:none !important; }

.kicker{ display:inline-block; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); margin-bottom:16px; }
.on-photo .kicker, .dark .kicker{ color:var(--bp); }

/* ---------- Header + mega menu ---------- */
.site-header{ position:sticky; top:0; z-index:100; height:var(--header-h); background:#fff; border-bottom:1px solid var(--line); }
.site-header .wrap{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--ink); flex-shrink:0; }
.brand img{ width:40px; height:auto; }
.brand .wm{ border-left:1.5px solid var(--bp); padding-left:14px; line-height:1; }
.brand .word{ font-family:var(--logo); font-size:23px; font-weight:500; letter-spacing:-.02em; white-space:nowrap; }
.brand .word .pro{ color:var(--bp); }
.brand .tag{ display:block; margin-top:6px; font-size:9.5px; font-weight:600; letter-spacing:.26em; color:var(--muted); text-transform:uppercase; white-space:nowrap; }
.brand.on-dark{ color:#fff; } .brand.on-dark .tag{ color:var(--muted-2); }

.nav{ display:flex; align-items:stretch; height:100%; gap:4px; }
.nav > a, .nav .mm > button{
  font:inherit; font-size:15.5px; font-weight:600; color:var(--ink-2); text-decoration:none; background:none; border:0; cursor:pointer;
  padding:0 16px; display:flex; align-items:center; gap:6px; position:relative; height:100%;
}
.nav > a::after, .nav .mm > button::after{ content:""; position:absolute; left:16px; right:16px; bottom:-1px; height:3px; background:var(--blue); transform:scaleX(0); transition:transform .25s; }
.nav > a:hover::after, .nav .mm.open > button::after, .nav > a[aria-current="page"]::after, .nav .mm.current > button::after{ transform:scaleX(1); }
.nav > a:hover, .nav .mm > button:hover{ color:var(--ink); }
.nav .mm > button svg{ width:12px; height:12px; transition:transform .2s; }
.nav .mm.open > button svg{ transform:rotate(180deg); }
.mega{
  position:fixed; left:0; right:0; top:var(--header-h); background:#fff; border-bottom:1px solid var(--line); box-shadow:0 30px 40px -30px rgba(11,18,32,.3);
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:.22s;
}
.mm.open .mega{ opacity:1; visibility:visible; transform:none; }
.mega .wrap{ display:grid; grid-template-columns:280px 1fr; gap:40px; padding-top:36px; padding-bottom:40px; height:auto; align-items:start; }
.mega-intro h4{ font-size:22px; margin-bottom:10px; }
.mega-intro p{ font-size:15px; color:var(--muted); }
.mega-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.mega-card{ text-decoration:none; color:var(--ink); display:block; }
.mega-card .ph{ aspect-ratio:16/9; border-radius:var(--r); overflow:hidden; margin-bottom:14px; }
.mega-card .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.mega-card:hover .ph img{ transform:scale(1.05); }
.mega-card strong{ display:flex; align-items:center; gap:8px; font-family:var(--head); font-size:16.5px; line-height:1.3; }
.mega-card strong svg{ width:16px; height:16px; color:var(--blue); flex-shrink:0; transition:transform .2s; }
.mega-card:hover strong svg{ transform:translateX(4px); }
.mega-card span{ display:block; font-size:14px; color:var(--muted); margin-top:4px; line-height:1.5; }

.header-cta{ display:flex; align-items:center; gap:10px; }
.menu-btn{ display:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--line); background:#fff; cursor:pointer; place-items:center; }
.menu-btn span{ display:block; width:18px; height:2px; background:var(--ink); position:relative; transition:.25s; }
.menu-btn span::before,.menu-btn span::after{ content:""; position:absolute; left:0; width:18px; height:2px; background:var(--ink); transition:.25s; }
.menu-btn span::before{ top:-6px; } .menu-btn span::after{ top:6px; }
.menu-open .menu-btn span{ background:transparent; }
.menu-open .menu-btn span::before{ top:0; transform:rotate(45deg); }
.menu-open .menu-btn span::after{ top:0; transform:rotate(-45deg); }
.mobile-nav{ display:none; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font:inherit; font-size:15.5px; font-weight:600; text-decoration:none; cursor:pointer;
  padding:14px 24px; border-radius:6px; border:2px solid transparent; transition:background .2s, color .2s, border-color .2s, transform .2s; white-space:nowrap; }
.btn svg{ width:16px; height:16px; transition:transform .2s; }
.btn:hover svg{ transform:translateX(3px); }
.btn-primary{ background:var(--blue); color:#fff; }
.btn-primary:hover{ background:var(--blue-dark); }
.btn-dark{ background:var(--navy-900); color:#fff; }
.btn-dark:hover{ background:var(--blue); }
.btn-light{ background:#fff; color:var(--navy-900); }
.btn-light:hover{ background:var(--bp); }
.btn-outline{ border-color:currentColor; color:var(--ink); background:transparent; }
.btn-outline:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.on-photo .btn-outline, .dark .btn-outline{ color:#fff; }
.on-photo .btn-outline:hover, .dark .btn-outline:hover{ background:#fff; color:var(--navy-900); border-color:#fff; }
.btn-sm{ padding:10px 18px; font-size:14.5px; }
.link-arrow{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:15.5px; color:var(--blue); text-decoration:none; }
.link-arrow svg{ width:16px; height:16px; transition:transform .2s; }
.link-arrow:hover svg, a:hover .link-arrow svg{ transform:translateX(4px); }
.dark .link-arrow, .on-photo .link-arrow{ color:var(--bp); }

/* ---------- Sections ---------- */
.section{ padding:clamp(64px, 8vw, 104px) 0; }
.section-sm{ padding:clamp(44px, 6vw, 72px) 0; }
.bg-paper{ background:var(--paper); }
.dark{ background:var(--navy-900); color:#D6E1EE; }
.dark h2, .dark h3{ color:#fff; }
.dark p{ color:#A8B7CB; }
.head{ max-width:760px; margin-bottom:clamp(32px,5vw,52px); }
.head h2{ font-size:clamp(28px,3.4vw,42px); }
.head p{ font-size:18px; color:var(--muted); margin:16px 0 0; }
.dark .head p{ color:#A8B7CB; }
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:clamp(32px,5vw,52px); }
.head-row .head{ margin-bottom:0; }

/* ---------- Home hero carousel ---------- */
.carousel{ position:relative; height:clamp(560px, 82vh, 760px); overflow:hidden; background:var(--navy-900); color:#fff; }
.slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease, visibility .9s; }
.slide.active{ opacity:1; visibility:visible; }
.slide > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 8s ease-out; }
.slide.active > img{ transform:scale(1); }
.slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,14,28,.92) 0%, rgba(5,14,28,.72) 38%, rgba(5,14,28,.2) 72%, rgba(5,14,28,.05) 100%); }
.slide .wrap{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; padding-bottom:90px; }
.slide .copy{ max-width:640px; }
.slide h1, .slide h2{ font-size:clamp(36px, 5vw, 64px); line-height:1.06; letter-spacing:-.03em; color:#fff; }
.slide h1 em, .slide h2 em{ font-style:normal; color:var(--bp); }
.slide p{ font-size:clamp(17px,1.5vw,20px); color:#D0DBE8; margin:22px 0 32px; max-width:560px; }
.slide .actions{ display:flex; gap:12px; flex-wrap:wrap; }
.slide .copy > *{ opacity:0; transform:translateY(18px); transition:opacity .7s .25s, transform .7s .25s; }
.slide.active .copy > *{ opacity:1; transform:none; }
.slide.active .copy > *:nth-child(2){ transition-delay:.35s; } .slide.active .copy > *:nth-child(3){ transition-delay:.45s; } .slide.active .copy > *:nth-child(4){ transition-delay:.55s; }
.slide-tabs{ position:absolute; left:0; right:0; bottom:0; z-index:5; border-top:1px solid rgba(255,255,255,.18); background:linear-gradient(0deg, rgba(5,14,28,.6), transparent); }
.slide-tabs .wrap{ display:grid; grid-template-columns:repeat(3,1fr); }
.slide-tab{ position:relative; text-align:left; background:none; border:0; color:#AFC0D4; font:inherit; font-size:14.5px; font-weight:600; padding:20px 20px 22px 0; cursor:pointer; }
.slide-tab + .slide-tab{ padding-left:20px; border-left:1px solid rgba(255,255,255,.12); }
.slide-tab small{ display:block; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#7F93AE; margin-bottom:4px; font-weight:700; }
.slide-tab::before{ content:""; position:absolute; left:0; right:0; top:-1px; height:3px; background:rgba(255,255,255,0); }
.slide-tab .bar{ position:absolute; left:0; top:-1px; height:3px; width:0; background:var(--bp); }
.slide-tab.active{ color:#fff; }
.slide-tab.active .bar{ animation:progress 7s linear forwards; }
.carousel.paused .slide-tab.active .bar{ animation-play-state:paused; }
@keyframes progress{ from{ width:0; } to{ width:100%; } }

/* ---------- Page hero (photo) ---------- */
.page-hero{ position:relative; min-height:clamp(480px, 72vh, 640px); display:flex; align-items:flex-end; color:#fff; background:var(--navy-900); overflow:hidden; }
.page-hero > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,14,28,.9) 0%, rgba(5,14,28,.7) 42%, rgba(5,14,28,.15) 80%), linear-gradient(0deg, rgba(5,14,28,.5), transparent 50%); }
.page-hero .wrap{ position:relative; z-index:2; padding-top:64px; padding-bottom:clamp(48px,6vw,72px); }
.page-hero .copy{ max-width:700px; }
.crumbs{ font-size:13.5px; color:#AFC0D4; margin-bottom:22px; }
.crumbs a{ color:#D0DBE8; text-decoration:none; } .crumbs a:hover{ text-decoration:underline; }
.crumbs span{ margin:0 8px; opacity:.6; }
.page-hero h1{ font-size:clamp(34px,4.6vw,58px); line-height:1.08; letter-spacing:-.03em; color:#fff; }
.page-hero h1 em{ font-style:normal; color:var(--bp); }
.page-hero p{ font-size:clamp(17px,1.4vw,19.5px); color:#D0DBE8; margin:20px 0 30px; max-width:620px; }
.page-hero .actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Intro split (text + photo) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,80px); align-items:center; }
.split.flip .split-media{ order:-1; }
.split h2{ font-size:clamp(28px,3.4vw,42px); }
.split p{ color:var(--muted); font-size:17.5px; margin-top:18px; }
.split-media{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow); }
.split-media img{ width:100%; height:100%; object-fit:cover; }
.split-media .badge{ position:absolute; left:20px; bottom:20px; right:20px; background:rgba(255,255,255,.95); border-radius:var(--r); padding:16px 20px; display:flex; gap:24px; flex-wrap:wrap; }
.split-media .badge div{ font-size:13px; color:var(--muted); line-height:1.35; }
.split-media .badge strong{ display:block; font-family:var(--head); font-size:24px; color:var(--ink); letter-spacing:-.02em; }
.ticks{ list-style:none; padding:0; margin:22px 0 28px; display:grid; gap:10px; }
.ticks li{ display:grid; grid-template-columns:22px 1fr; gap:10px; font-size:16px; color:var(--ink-2); }
.ticks svg{ width:20px; height:20px; color:var(--blue); margin-top:3px; }
.dark .ticks li{ color:#D6E1EE; } .dark .ticks svg{ color:var(--bp); }

/* ---------- Big service cards (home) ---------- */
.svc-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.svc-card{ display:flex; flex-direction:column; text-decoration:none; color:var(--ink); background:#fff; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); transition:box-shadow .3s, transform .3s; }
.svc-card:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.svc-card .ph{ aspect-ratio:4/3; overflow:hidden; position:relative; }
.svc-card .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.svc-card:hover .ph img{ transform:scale(1.06); }
.svc-card .num{ position:absolute; left:18px; top:18px; background:#fff; color:var(--ink); font-weight:700; font-size:13px; padding:6px 10px; border-radius:6px; }
.svc-card .body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.svc-card h3{ font-size:22px; line-height:1.25; }
.svc-card p{ color:var(--muted); font-size:15.5px; margin:12px 0 22px; }
.svc-card .link-arrow{ margin-top:auto; }

/* ---------- Photo tiles (sub-services) ---------- */
.tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tile{ background:#fff; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); display:flex; flex-direction:column; }
.tile .ph{ aspect-ratio:16/10; overflow:hidden; }
.tile .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.tile:hover .ph img{ transform:scale(1.05); }
.tile .body{ padding:22px 24px 26px; }
.tile h3{ font-size:19px; margin-bottom:8px; }
.tile p{ color:var(--muted); font-size:15px; margin:0; }
.tile ul{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:6px; }
.tile li{ font-size:14.5px; color:var(--ink-2); padding-left:16px; position:relative; line-height:1.5; }
.tile li::before{ content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--bp); }

/* ---------- Tabs ---------- */
.tabs{ }
.tablist{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:clamp(28px,4vw,44px); overflow-x:auto; scrollbar-width:none; }
.tablist::-webkit-scrollbar{ display:none; }
.tab{ font:inherit; font-size:16px; font-weight:600; color:var(--muted); background:none; border:0; padding:14px 18px 16px; cursor:pointer; position:relative; white-space:nowrap; }
.tab::after{ content:""; position:absolute; left:18px; right:18px; bottom:-1px; height:3px; background:var(--blue); transform:scaleX(0); transition:transform .25s; }
.tab[aria-selected="true"]{ color:var(--ink); }
.tab[aria-selected="true"]::after{ transform:scaleX(1); }
.tab:hover{ color:var(--ink); }
.dark .tablist{ border-color:rgba(255,255,255,.14); }
.dark .tab{ color:#8FA3BC; } .dark .tab[aria-selected="true"], .dark .tab:hover{ color:#fff; }
.dark .tab::after{ background:var(--bp); }
.js .tabpanel:not(.active){ display:none; }
.tabpanel.active{ animation:fadein .4s ease; }
@keyframes fadein{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none; } }

/* Steps */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:s; }
.step{ padding:26px 24px; border-radius:var(--r); background:#fff; border:1px solid var(--line); position:relative; }
.step::before{ counter-increment:s; content:counter(s); display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--bp-soft); color:var(--blue); font-weight:700; font-size:15px; margin-bottom:16px; }
.step h3{ font-size:19px; margin-bottom:8px; }
.step p{ color:var(--muted); font-size:15px; margin:0; }
.step .when{ display:inline-block; margin-top:14px; font-size:12.5px; font-weight:600; color:var(--blue); }
.dark .step{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); }
.dark .step::before{ background:rgba(110,176,222,.15); color:var(--bp); }
.dark .step p{ color:#A8B7CB; } .dark .step .when{ color:var(--bp); }

/* Models */
.models{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.model{ border-radius:var(--r-lg); padding:30px; background:#fff; border:1px solid var(--line); }
.model.hl{ border:2px solid var(--blue); }
.models.two{ grid-template-columns:1fr 1fr; }
.model .when{ font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); }
.model h3{ font-size:22px; margin:10px 0 10px; }
.model p{ color:var(--muted); font-size:15px; }
.model ul{ margin:0; padding:0; list-style:none; display:grid; gap:9px; }
.model li{ font-size:15px; display:grid; grid-template-columns:18px 1fr; gap:10px; color:var(--ink-2); line-height:1.45; }
.model li svg{ width:16px; height:16px; color:var(--mint); margin-top:3px; }

/* Stack (AI) */
.stack{ display:grid; gap:12px; }
.layer{ display:grid; grid-template-columns:64px 1fr auto; gap:22px; align-items:center; padding:22px 26px; border-radius:var(--r); border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); }
.layer .ln{ font-family:var(--head); font-weight:700; font-size:34px; color:var(--bp); line-height:1; }
.layer h3{ font-size:19px; margin-bottom:4px; }
.layer p{ margin:0; font-size:15px; }
.layer .chips{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; max-width:300px; }
.chip{ font-size:12px; font-weight:600; padding:5px 10px; border-radius:999px; background:rgba(110,176,222,.16); color:#CFE3F4; white-space:nowrap; }
.layer.top{ background:linear-gradient(90deg, rgba(110,176,222,.22), rgba(110,176,222,.05)); border-color:rgba(110,176,222,.4); }
.layer.base{ border-style:dashed; background:transparent; }

/* Compare table */
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--r-lg); border:1px solid var(--line); }
.compare{ width:100%; border-collapse:collapse; background:#fff; font-size:15.5px; }
.compare th, .compare td{ text-align:left; padding:18px 22px; vertical-align:top; border-bottom:1px solid var(--line); }
.compare tr:last-child td{ border-bottom:0; }
.compare thead th{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); background:var(--paper); }
.compare thead th:last-child{ color:#fff; background:var(--blue); }
.compare td:first-child{ font-weight:600; width:24%; }
.compare td:nth-child(2){ color:var(--muted); }
.compare td:last-child{ background:var(--bp-soft); font-weight:500; }

/* Systems */
.systems{ display:flex; flex-wrap:wrap; gap:10px; }
.sys{ font-size:14.5px; font-weight:600; padding:10px 16px; border-radius:8px; background:#fff; border:1px solid var(--line); color:var(--ink-2); }
.sys small{ display:block; font-size:10.5px; letter-spacing:.12em; color:var(--muted-2); text-transform:uppercase; font-weight:700; }

/* ---------- Stat band (photo background) ---------- */
.stat-band{ position:relative; color:#fff; overflow:hidden; background:var(--navy-900); }
.stat-band > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.35; }
.stat-band::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,14,28,.95), rgba(5,14,28,.7)); }
.stat-band .wrap{ position:relative; z-index:2; }
.stat-band h2{ color:#fff; }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.18); }
.stats > div{ padding:30px 24px 6px 0; }
.stats > div + div{ padding-left:24px; border-left:1px solid rgba(255,255,255,.18); }
.stats strong{ display:block; font-family:var(--head); font-weight:700; font-size:clamp(34px,3.6vw,48px); letter-spacing:-.03em; line-height:1; color:#fff; }
.stats strong span{ color:var(--bp); }
.stats p{ margin:12px 0 0; font-size:14.5px; color:#B4C3D6; line-height:1.5; }
.note{ font-size:13px; color:#8FA3BC !important; margin-top:26px !important; }

/* ---------- Projects ---------- */
.filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
.filter{ font:inherit; font-size:14.5px; font-weight:600; padding:9px 18px; border-radius:999px; border:1.5px solid var(--line-2); background:#fff; color:var(--ink-2); cursor:pointer; transition:.2s; }
.filter[aria-pressed="true"], .filter:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.proj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.proj{ display:flex; flex-direction:column; text-align:left; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; cursor:pointer; padding:0; font:inherit; color:inherit; transition:box-shadow .3s, transform .3s; text-decoration:none; }
.proj:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.proj .ph{ aspect-ratio:16/10; overflow:hidden; position:relative; }
.proj .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.proj:hover .ph img{ transform:scale(1.05); }
.proj .tag{ position:absolute; left:16px; top:16px; font-size:12px; font-weight:700; padding:6px 10px; border-radius:6px; background:rgba(255,255,255,.95); color:var(--ink); }
.proj .body{ padding:22px 24px 24px; display:flex; flex-direction:column; flex:1; }
.proj .metric{ font-family:var(--head); font-weight:700; font-size:30px; letter-spacing:-.02em; color:var(--blue); line-height:1; }
.proj h3{ font-size:19px; margin:12px 0 8px; line-height:1.35; }
.proj p{ color:var(--muted); font-size:15px; margin:0 0 18px; }
.proj .link-arrow{ margin-top:auto; font-size:14.5px; }
.proj[hidden]{ display:none; }

/* Dialog */
dialog.case{ width:min(920px, calc(100vw - 32px)); max-height:calc(100vh - 48px); border:0; border-radius:var(--r-lg); padding:0; box-shadow:var(--shadow-lg); color:var(--ink); }
dialog.case::backdrop{ background:rgba(5,14,28,.65); backdrop-filter:blur(3px); }
.case-ph{ aspect-ratio:21/8; overflow:hidden; position:relative; }
.case-ph img{ width:100%; height:100%; object-fit:cover; }
.case-body{ padding:clamp(24px,4vw,40px); display:grid; grid-template-columns:.9fr 1.1fr; gap:36px; }
.case-body .metric{ font-family:var(--head); font-weight:700; font-size:clamp(36px,4vw,48px); letter-spacing:-.03em; color:var(--blue); line-height:1; }
.case-body h2{ font-size:26px; margin:16px 0 18px; }
.case-body .meta{ display:grid; gap:12px; font-size:14.5px; color:var(--muted); }
.case-body .meta b{ display:block; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-2); }
.case-body dl{ margin:0; display:grid; gap:20px; }
.case-body dt{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); margin-bottom:6px; }
.case-body dd{ margin:0; font-size:16px; color:var(--ink-2); }
.case-body ul{ margin:6px 0 0; padding-left:18px; } .case-body li{ margin-bottom:5px; }
.close{ position:absolute; right:14px; top:14px; width:42px; height:42px; border-radius:50%; border:0; background:rgba(255,255,255,.95); cursor:pointer; display:grid; place-items:center; z-index:2; }
.close svg{ width:18px; height:18px; }

/* Timeline */
.timeline{ border-top:1px solid var(--line); }
.tl{ display:grid; grid-template-columns:160px 1fr 1.4fr; gap:28px; padding:22px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.tl .yr{ font-size:14px; font-weight:600; color:var(--blue); }
.tl h3{ font-size:19px; }
.tl .co{ font-size:14px; color:var(--muted); margin-top:4px; }
.tl p{ margin:0; font-size:15.5px; color:var(--ink-2); }

/* Founders */
.founders{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.founder{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:34px; display:flex; flex-direction:column; }
.founder .top{ display:flex; gap:20px; align-items:center; margin-bottom:20px; }
.avatar{ flex:0 0 88px; height:88px; border-radius:50%; display:grid; place-items:center; font-family:var(--head); font-weight:700; font-size:30px; color:#fff; background:linear-gradient(135deg, var(--navy-800), var(--blue)); overflow:hidden; }
.avatar img{ width:100%; height:100%; object-fit:cover; }
.founder h3{ font-size:22px; }
.founder .role{ font-size:15px; color:var(--blue); font-weight:600; margin-top:4px; }
.founder p{ color:var(--muted); font-size:15.5px; }
.pills{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.pill{ font-size:12.5px; font-weight:600; padding:5px 12px; border-radius:999px; background:var(--bp-soft); color:var(--blue-dark); }
.founder .focus{ margin-top:auto; padding-top:20px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; }
.founder .focus span{ font-size:14.5px; color:var(--ink-2); display:flex; gap:10px; line-height:1.45; }
.founder .focus span::before{ content:""; flex:0 0 6px; height:6px; margin-top:8px; border-radius:50%; background:var(--bp); }

/* Values */
.values{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.value{ padding-top:20px; border-top:3px solid var(--blue); }
.value h3{ font-size:19px; margin-bottom:8px; }
.value p{ color:var(--muted); font-size:15px; margin:0; }

/* ---------- CTA band (photo) ---------- */
.cta-band{ position:relative; overflow:hidden; color:#fff; background:var(--navy-900); display:flex; align-items:center; min-height:clamp(320px, 24vw, 344px); }
.cta-band > .wrap{ width:100%; }
.cta-band > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cta-band::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,14,28,.92) 0%, rgba(5,14,28,.75) 50%, rgba(5,14,28,.35) 100%); }
.cta-band .wrap{ position:relative; z-index:2; padding-top:clamp(56px,7vw,88px); padding-bottom:clamp(56px,7vw,88px); display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.cta-band h2{ color:#fff; font-size:clamp(28px,3.4vw,42px); max-width:640px; }
.cta-band p{ color:#D0DBE8; margin:14px 0 0; font-size:17.5px; max-width:560px; }
.cta-band .actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,5vw,56px); align-items:start; }
.contact-card{ background:var(--navy-900); color:#fff; border-radius:var(--r-lg); overflow:hidden; }
.contact-card .ph{ aspect-ratio:16/9; overflow:hidden; } .contact-card .ph img{ width:100%; height:100%; object-fit:cover; }
.contact-card .in{ padding:28px 30px 30px; }
.contact-card h2{ font-size:24px; color:#fff; }
.contact-list{ list-style:none; padding:0; margin:18px 0 0; }
.contact-list > a, .contact-list > div{ display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:center; padding:13px 0; border-top:1px solid rgba(255,255,255,.1); text-decoration:none; color:#fff; }
.contact-list .ic{ width:42px; height:42px; border-radius:10px; background:rgba(110,176,222,.16); color:var(--bp); display:grid; place-items:center; }
.contact-list .ic svg{ width:20px; height:20px; }
.contact-list small{ display:block; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8FA3BC; }
.contact-list div > span{ font-size:16px; font-weight:600; word-break:break-word; }
.contact-list a:hover div > span{ color:var(--bp); }
.form{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(24px,4vw,40px); }
.form h2{ font-size:28px; }
.form h2 + p{ color:var(--muted); margin-top:8px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:14px; font-weight:600; color:var(--ink-2); }
.field label .opt{ font-weight:400; color:var(--muted-2); }
.field input, .field select, .field textarea{ font:inherit; font-size:16px; color:var(--ink); background:var(--paper); border:1.5px solid var(--line); border-radius:8px; padding:13px 14px; width:100%; transition:border-color .2s, box-shadow .2s, background .2s; }
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--blue); background:#fff; box-shadow:0 0 0 4px rgba(31,111,178,.14); }
.interest{ display:flex; flex-wrap:wrap; gap:10px; }
.interest label{ position:relative; cursor:pointer; }
.interest input{ position:absolute; opacity:0; inset:0; }
.interest span{ display:inline-block; padding:10px 16px; border-radius:999px; border:1.5px solid var(--line-2); font-size:14.5px; font-weight:600; color:var(--ink-2); background:#fff; transition:.2s; }
.interest input:checked + span{ background:var(--blue); border-color:var(--blue); color:#fff; }
.interest input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:2px; }
.submit-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:24px; }
.fine{ font-size:13px; color:var(--muted); margin:0; max-width:340px; }
.form-success{ text-align:center; padding:40px 10px; }
.form-success .ok{ width:64px; height:64px; margin:0 auto 20px; border-radius:50%; background:rgba(47,179,136,.14); color:var(--mint); display:grid; place-items:center; }
.form-success .ok svg{ width:30px; height:30px; }
.faq{ max-width:880px; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:22px 44px 22px 0; font-size:17.5px; font-weight:600; position:relative; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:6px; top:50%; width:14px; height:14px; margin-top:-7px; background:linear-gradient(var(--blue),var(--blue)) center/14px 2px no-repeat, linear-gradient(var(--blue),var(--blue)) center/2px 14px no-repeat; transition:transform .25s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ color:var(--muted); padding:0 44px 22px 0; margin:0; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy-950); color:#9FB0C6; padding:64px 0 28px; font-size:15px; }
.footer-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-top h4{ font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#fff; font-weight:700; margin-bottom:18px; }
.footer-top ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer-top a{ color:#9FB0C6; text-decoration:none; } .footer-top a:hover{ color:#fff; }
.footer-about p{ margin:22px 0 0; max-width:340px; }
.footer-bottom{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-top:24px; font-size:13.5px; color:#6C7C92; }

/* ---------- Reveal ---------- */
.js .reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.js .reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; transition:none; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .nav, .header-cta .btn{ display:none; }
  .menu-btn{ display:grid; }
  .mobile-nav{ display:block; position:fixed; inset:var(--header-h) 0 0 0; background:#fff; z-index:99; padding:12px var(--gutter) 40px; overflow-y:auto; opacity:0; visibility:hidden; transition:.25s; }
  .menu-open .mobile-nav{ opacity:1; visibility:visible; }
  .menu-open{ overflow:hidden; }
  .mobile-nav a{ display:block; padding:16px 4px; font-size:19px; font-weight:600; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line); }
  .mobile-nav .label{ display:block; padding:20px 4px 6px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .mobile-nav .sub a{ font-size:16.5px; padding:13px 4px 13px 16px; color:var(--ink-2); }
  .mobile-nav .btn{ margin-top:28px; width:100%; padding:16px; color:#fff; border-bottom:0; }
  .svc-cards, .tiles, .proj-grid, .models{ grid-template-columns:1fr 1fr; }
  .steps, .values{ grid-template-columns:1fr 1fr; }
  .stats{ grid-template-columns:1fr 1fr; }
  .stats > div:nth-child(3){ padding-left:0; border-left:0; }
  .stats > div:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.18); }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .tl{ grid-template-columns:130px 1fr; } .tl p{ grid-column:2; }
  .case-body{ grid-template-columns:1fr; gap:20px; }
}
@media (max-width:760px){
  body{ font-size:16px; }
  :root{ --header-h:68px; }
  .brand img{ width:34px; } .brand .word{ font-size:20px; } .brand .tag{ font-size:8.5px; letter-spacing:.2em; } .brand{ gap:11px; } .brand .wm{ padding-left:11px; }
  .carousel{ height:auto; min-height:620px; }
  .slide .wrap{ justify-content:flex-end; padding-bottom:120px; padding-top:80px; }
  .slide::after{ background:linear-gradient(0deg, rgba(5,14,28,.95) 0%, rgba(5,14,28,.75) 55%, rgba(5,14,28,.35) 100%); }
  .slide-tab{ font-size:12.5px; padding:14px 8px 16px 0; } .slide-tab + .slide-tab{ padding-left:10px; }
  .slide-tab small{ display:none; }
  .page-hero::after{ background:linear-gradient(0deg, rgba(5,14,28,.95) 0%, rgba(5,14,28,.7) 60%, rgba(5,14,28,.4) 100%); }
  .split, .svc-cards, .tiles, .proj-grid, .models, .models.two, .steps, .values, .founders, .contact-grid{ grid-template-columns:1fr; }
  .split.flip .split-media{ order:0; }
  .stats{ grid-template-columns:1fr; }
  .stats > div, .stats > div + div{ padding:22px 0 4px; border-left:0; }
  .stats > div + div{ border-top:1px solid rgba(255,255,255,.18); }
  .form-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; gap:30px; }
  .tl{ grid-template-columns:1fr; gap:4px; } .tl p{ grid-column:auto; margin-top:6px; }
  .layer{ grid-template-columns:44px 1fr; padding:18px; } .layer .ln{ font-size:26px; }
  .layer .chips{ grid-column:1 / -1; justify-content:flex-start; max-width:none; }
  .founder{ padding:24px; } .founder .focus{ grid-template-columns:1fr; }
  .compare{ min-width:640px; }
  .case-ph{ aspect-ratio:16/9; }
  .tab{ font-size:15px; padding:12px 14px 14px; }
}

/* ---------- Visual polish ---------- */
.marquee{ border-bottom:1px solid var(--line); background:#fff; overflow:hidden; padding:22px 0; }
.marquee .lbl{ text-align:center; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); margin-bottom:12px; }
.marquee .track{ display:flex; width:max-content; animation:scroll 38s linear infinite; }
.marquee:hover .track{ animation-play-state:paused; }
.marquee ul{ display:flex; gap:64px; list-style:none; margin:0; padding:0 32px; }
.marquee li{ font-family:var(--head); font-weight:700; font-size:20px; color:#9AA8BB; white-space:nowrap; letter-spacing:-.01em; }
@keyframes scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.industries{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ind{ position:relative; aspect-ratio:3/4; border-radius:var(--r-lg); overflow:hidden; color:#fff; text-decoration:none; display:block; isolation:isolate; }
.ind img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); z-index:-2; }
.ind::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,14,28,0) 30%, rgba(5,14,28,.88) 100%); z-index:-1; transition:background .4s; }
.ind:hover img{ transform:scale(1.08); }
.ind:hover::before{ background:linear-gradient(180deg, rgba(31,111,178,.15) 0%, rgba(5,14,28,.92) 100%); }
.ind .in{ position:absolute; left:0; right:0; bottom:0; padding:24px; }
.ind h3{ color:#fff; font-size:22px; }
.ind p{ color:#D0DBE8; font-size:14.5px; margin:8px 0 0; max-height:0; opacity:0; overflow:hidden; transition:max-height .45s, opacity .45s; }
.ind:hover p, .ind:focus-visible p{ max-height:120px; opacity:1; }
.ind .ix{ position:absolute; top:18px; left:18px; width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.14); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); display:grid; place-items:center; }
.ind .ix svg{ width:20px; height:20px; color:#fff; }

.svc-card .ph::after, .tile .ph{ position:relative; }
.svc-card .ph::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(5,14,28,.35)); }
.svc-card .num{ z-index:1; }
.svc-card .body{ border-top:3px solid transparent; transition:border-color .3s; }
.svc-card:hover .body{ border-top-color:var(--blue); }
.tile{ transition:box-shadow .3s, transform .3s; }
.tile:hover{ box-shadow:var(--shadow); transform:translateY(-4px); }
.kicker::before{ content:""; display:inline-block; width:22px; height:2px; background:currentColor; vertical-align:middle; margin:-3px 10px 0 0; }
.split-media::before{ content:""; position:absolute; right:-14px; bottom:-14px; width:45%; height:45%; border-radius:var(--r-lg); background:var(--bp-soft); z-index:-1; }
.split-media{ overflow:visible; isolation:isolate; }
.split-media img{ border-radius:var(--r-lg); }
.split-media .badge{ z-index:1; }

@media (max-width:1100px){ .industries{ grid-template-columns:1fr 1fr; } }
@media (max-width:760px){
  .industries{ grid-template-columns:1fr 1fr; gap:12px; }
  .ind .in{ padding:16px; } .ind h3{ font-size:17px; } .ind p{ display:none; }
  .marquee li{ font-size:17px; } .marquee ul{ gap:40px; }
  .split-media::before{ display:none; }
}
@media (prefers-reduced-motion: reduce){ .marquee .track{ animation:none; flex-wrap:wrap; } }

/* ---------- Logo strip ---------- */
.logos{ background:#fff; border-top:1px solid var(--line); }
.logos .lbl{ text-align:center; font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); margin-bottom:30px; }
.logo-row{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7,1fr); gap:18px; align-items:end; }
.logo-row li{ display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
.logo-row img{ height:34px; width:auto; max-width:130px; object-fit:contain; filter:grayscale(1); opacity:.62; transition:filter .3s, opacity .3s; }
.logo-row img.sq{ height:46px; }
.logo-row li:hover img{ filter:none; opacity:1; }
.logo-row span{ font-size:12.5px; font-weight:600; color:var(--muted); line-height:1.3; min-height:2.6em; }
@media (max-width:1100px){ .logo-row{ grid-template-columns:repeat(4,1fr); row-gap:30px; } }
@media (max-width:760px){ .logo-row{ grid-template-columns:repeat(2,1fr); } .logo-row img{ height:30px; } }

/* Ticker with logos */
.marquee li{ display:flex; align-items:center; gap:14px; }
.marquee li img{ height:30px; width:auto; max-width:120px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .3s, opacity .3s; }
.marquee li img.sq{ height:38px; }
.marquee li span{ font-family:var(--head); font-weight:700; font-size:18px; color:#8A99AE; white-space:nowrap; }
.marquee li:hover img{ filter:none; opacity:1; }
.marquee li:hover span{ color:var(--ink-2); }
.marquee ul{ gap:72px; padding:0 36px; align-items:center; }
@media (max-width:760px){ .marquee li img{ height:24px; } .marquee li img.sq{ height:30px; } .marquee li span{ font-size:15px; } .marquee ul{ gap:44px; } }

/* Colour logos (supplied files) */
.marquee{ padding:26px 0 30px; }
.marquee li{ gap:0; }
.marquee li span{ display:none; }
.marquee li img, .marquee li img.sq{ height:40px; max-width:170px; filter:none; opacity:1; }
.marquee li img.tall{ height:52px; }
.marquee ul{ gap:80px; }
.logo-row{ grid-template-columns:repeat(9,1fr); align-items:center; }
.logo-row img, .logo-row img.sq{ height:36px; max-width:120px; filter:none; opacity:1; }
.logo-row img.tall{ height:48px; }
.logo-row li:hover img{ transform:scale(1.06); } .logo-row img{ transition:transform .3s; }
@media (max-width:1100px){ .logo-row{ grid-template-columns:repeat(5,1fr); } }
@media (max-width:760px){ .marquee li img, .marquee li img.sq{ height:30px; } .marquee li img.tall{ height:40px; } .marquee ul{ gap:48px; } .logo-row{ grid-template-columns:repeat(3,1fr); } }

/* Hero + logo ticker fit on the first screen */
.carousel{ height:calc(100vh - var(--header-h) - 104px); height:calc(100svh - var(--header-h) - 104px); min-height:500px; max-height:780px; }
.marquee{ padding:14px 0 18px; }
.marquee .lbl{ margin-bottom:8px; }
.marquee li img, .marquee li img.sq{ height:36px; }
.marquee li img.tall{ height:44px; }
.slide .wrap{ padding-bottom:80px; }
@media (max-width:760px){ .carousel{ height:auto; min-height:560px; max-height:none; } }
/* keep the logo ticker moving even when the OS has reduced animations switched on */
@media (prefers-reduced-motion: reduce){ .marquee .track{ animation:scroll 60s linear infinite !important; flex-wrap:nowrap; } }

.marquee li img.panel, .logo-row img.panel{ border-radius:6px; }

/* ---------- Logo ticker: optically balanced, contained ---------- */
.marquee{ padding:16px 0 20px; }
.marquee .viewport{ max-width:1000px; margin:0 auto; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); }
.marquee .track{ animation-duration:28s; }
.marquee ul{ gap:64px; padding:0 32px; align-items:center; height:52px; }
.marquee li img.lg{ width:auto; max-width:none; filter:none; opacity:1; border-radius:0; }
.logo-row img.lg{ width:auto; max-width:none; filter:none; opacity:1; }
.marquee li img.lg-reliance{ height:45px; }
.marquee li img.lg-metro-group{ height:24px; }
.marquee li img.lg-walmart{ height:34px; }
.marquee li img.lg-tata{ height:46px; }
.marquee li img.lg-bata{ height:29px; }
.marquee li img.lg-deloitte{ height:25px; }
.marquee li img.lg-croma{ height:37px; }
.logo-row img.lg-reliance{ height:39px; }
.logo-row img.lg-metro-group{ height:21px; }
.logo-row img.lg-walmart{ height:30px; }
.logo-row img.lg-tata{ height:40px; }
.logo-row img.lg-bata{ height:25px; }
.logo-row img.lg-deloitte{ height:22px; }
.logo-row img.lg-croma{ height:33px; }
@media (max-width:760px){ .marquee .viewport{ max-width:100%; } .marquee ul{ gap:44px; height:44px; } .marquee li img.lg{ transform:scale(.82); } }
@media (prefers-reduced-motion: reduce){ .marquee .track{ animation:scroll 40s linear infinite !important; } }

/* optical tweaks after visual review */
.marquee li img.lg-reliance{ height:52px; } .marquee li img.lg-walmart{ height:38px; } .marquee li img.lg-bata{ height:26px; } .marquee li img.lg-deloitte{ height:24px; }
.logo-row img.lg-reliance{ height:44px; } .logo-row img.lg-walmart{ height:33px; } .logo-row img.lg-bata{ height:23px; } .logo-row img.lg-deloitte{ height:21px; }

.marquee .viewport{ -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }

/* ---------- Ticker: full width, generous spacing, brand sparkles between logos ---------- */
.marquee .viewport{ max-width:none; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%); }
.marquee ul{ gap:0; padding:0; }
.marquee li{ position:relative; padding:0 64px; }
.marquee li::after{ content:""; position:absolute; right:-9px; top:50%; width:18px; height:18px; margin-top:-9px;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239FD0F0%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%231F6FB2%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22url(%23g)%22%20d%3D%22M12%200c.9%206.6%205.4%2011.1%2012%2012-6.6.9-11.1%205.4-12%2012-.9-6.6-5.4-11.1-12-12C6.6%2011.1%2011.1%206.6%2012%200z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat; opacity:.85; animation:twinkle 3.2s ease-in-out infinite; }
.marquee li:nth-child(2n)::after{ animation-delay:1.1s; width:12px; height:12px; margin-top:-6px; right:-6px; }
.marquee li:nth-child(3n)::after{ animation-delay:2.2s; }
@keyframes twinkle{ 0%,100%{ transform:scale(.75) rotate(0deg); opacity:.55; } 50%{ transform:scale(1.1) rotate(45deg); opacity:1; } }
.marquee .track{ animation-duration:48s; }
.marquee::before{ content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:linear-gradient(90deg, transparent, rgba(110,176,222,.35) 20%, rgba(110,176,222,.35) 80%, transparent); pointer-events:none; }
.marquee{ position:relative; }
.marquee .lbl{ position:relative; z-index:1; }
.marquee .viewport{ position:relative; z-index:1; }
.marquee li img.lg{ position:relative; z-index:1; background:#fff; box-shadow:0 0 0 14px #fff; }
@media (max-width:760px){ .marquee li{ padding:0 38px; } .marquee li::after{ width:12px; height:12px; margin-top:-6px; right:-6px; } }
@media (prefers-reduced-motion: reduce){ .marquee li::after{ animation:none !important; } }

.marquee::before{ content:none; }
.marquee .viewport::before{ content:''; position:absolute; left:0; right:0; top:50%; height:1px; background:linear-gradient(90deg, transparent, rgba(110,176,222,.4) 15%, rgba(110,176,222,.4) 85%, transparent); pointer-events:none; }
.marquee .track{ position:relative; }

/* About logo row: centred, evenly spaced */
.logo-row{ display:flex; flex-wrap:wrap; justify-content:space-evenly; align-items:center; gap:28px 40px; max-width:1100px; margin:0 auto; }
.logo-row li{ flex:0 0 auto; }
.logo-row span{ display:none; }

/* Contact card: one block per founder */
.contact-list.people{ display:grid; gap:14px; margin-top:20px; }
.person{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:16px 18px; display:grid; gap:10px; }
.contact-list.people > .person{ display:grid; grid-template-columns:none; border-top:1px solid rgba(255,255,255,.1); }
.person .who strong{ display:block; font-family:var(--head); font-size:17px; color:#fff; }
.person .who small{ display:block; font-size:12.5px; color:#8FA3BC; margin-top:2px; }
.person a{ display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:center; color:#fff; text-decoration:none; padding:0; border:0; font-size:15.5px; font-weight:600; word-break:break-word; }
.person a:hover span{ color:var(--bp); }
.person .ic, .contact-list .office .ic{ width:34px; height:34px; border-radius:9px; }
.person .ic svg, .contact-list .office .ic svg{ width:17px; height:17px; }
.contact-list.people > .office{ display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:center; border-top:0; padding:4px 2px 0; color:#D6E1EE; font-size:15px; font-weight:600; }

.contact-list.people > .person{ padding:16px 18px; align-items:start; }
.person .who small{ text-transform:none; letter-spacing:0; font-weight:500; }

.founder .ticks{ margin:6px 0 0; }
.founder .ticks li{ font-size:15px; }

/* ---------- Header: full width with constellation + moving sheen ---------- */
.site-header .wrap{ max-width:none; padding:0 clamp(20px, 3.2vw, 64px); position:relative; }
.site-header .nav{ margin-left:auto; }
.site-header::before{ content:""; position:absolute; top:0; bottom:0; left:clamp(300px, 26vw, 460px); right:clamp(520px, 40vw, 720px);
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20900%2080%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20stroke%3D%22%236EB0DE%22%20stroke-width%3D%220.8%22%3E%3Cline%20x1%3D%2220%22%20y1%3D%2265%22%20x2%3D%2270%22%20y2%3D%2226%22%20stroke-opacity%3D%220.31%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22303%22%20y2%3D%2255%22%20stroke-opacity%3D%220.16%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22306%22%20y2%3D%2219%22%20stroke-opacity%3D%220.12%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22316%22%20y2%3D%2250%22%20stroke-opacity%3D%220.11%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22264%22%20y2%3D%2232%22%20stroke-opacity%3D%220.29%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.14%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.46%22%2F%3E%3Cline%20x1%3D%22201%22%20y1%3D%2254%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.41%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22340%22%20y2%3D%2230%22%20stroke-opacity%3D%220.38%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22306%22%20y2%3D%2219%22%20stroke-opacity%3D%220.41%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22388%22%20y2%3D%2228%22%20stroke-opacity%3D%220.21%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22316%22%20y2%3D%2250%22%20stroke-opacity%3D%220.50%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22264%22%20y2%3D%2232%22%20stroke-opacity%3D%220.38%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.50%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.23%22%2F%3E%3Cline%20x1%3D%22303%22%20y1%3D%2255%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.29%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22517%22%20y2%3D%2265%22%20stroke-opacity%3D%220.42%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22388%22%20y2%3D%2228%22%20stroke-opacity%3D%220.16%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22499%22%20y2%3D%2254%22%20stroke-opacity%3D%220.50%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22458%22%20y2%3D%2235%22%20stroke-opacity%3D%220.42%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22463%22%20y2%3D%2220%22%20stroke-opacity%3D%220.40%22%2F%3E%3Cline%20x1%3D%22487%22%20y1%3D%2251%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.45%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22629%22%20y2%3D%2252%22%20stroke-opacity%3D%220.18%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22608%22%20y2%3D%2238%22%20stroke-opacity%3D%220.11%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22714%22%20y2%3D%2217%22%20stroke-opacity%3D%220.51%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22814%22%20y2%3D%2251%22%20stroke-opacity%3D%220.18%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22802%22%20y2%3D%2213%22%20stroke-opacity%3D%220.24%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22762%22%20y2%3D%2248%22%20stroke-opacity%3D%220.37%22%2F%3E%3Cline%20x1%3D%22722%22%20y1%3D%2225%22%20x2%3D%22828%22%20y2%3D%2234%22%20stroke-opacity%3D%220.14%22%2F%3E%3Cline%20x1%3D%22629%22%20y1%3D%2252%22%20x2%3D%22608%22%20y2%3D%2238%22%20stroke-opacity%3D%220.45%22%2F%3E%3Cline%20x1%3D%22629%22%20y1%3D%2252%22%20x2%3D%22714%22%20y2%3D%2217%22%20stroke-opacity%3D%220.20%22%2F%3E%3Cline%20x1%3D%22629%22%20y1%3D%2252%22%20x2%3D%22517%22%20y2%3D%2265%22%20stroke-opacity%3D%220.12%22%2F%3E%3Cline%20x1%3D%22608%22%20y1%3D%2238%22%20x2%3D%22714%22%20y2%3D%2217%22%20stroke-opacity%3D%220.13%22%2F%3E%3Cline%20x1%3D%22608%22%20y1%3D%2238%22%20x2%3D%22517%22%20y2%3D%2265%22%20stroke-opacity%3D%220.18%22%2F%3E%3Cline%20x1%3D%22608%22%20y1%3D%2238%22%20x2%3D%22499%22%20y2%3D%2254%22%20stroke-opacity%3D%220.13%22%2F%3E%3Cline%20x1%3D%22714%22%20y1%3D%2217%22%20x2%3D%22814%22%20y2%3D%2251%22%20stroke-opacity%3D%220.14%22%2F%3E%3Cline%20x1%3D%22714%22%20y1%3D%2217%22%20x2%3D%22802%22%20y2%3D%2213%22%20stroke-opacity%3D%220.21%22%2F%3E%3Cline%20x1%3D%22714%22%20y1%3D%2217%22%20x2%3D%22762%22%20y2%3D%2248%22%20stroke-opacity%3D%220.33%22%2F%3E%3Cline%20x1%3D%22714%22%20y1%3D%2217%22%20x2%3D%22828%22%20y2%3D%2234%22%20stroke-opacity%3D%220.11%22%2F%3E%3Cline%20x1%3D%22814%22%20y1%3D%2251%22%20x2%3D%22802%22%20y2%3D%2213%22%20stroke-opacity%3D%220.40%22%2F%3E%3Cline%20x1%3D%22814%22%20y1%3D%2251%22%20x2%3D%22762%22%20y2%3D%2248%22%20stroke-opacity%3D%220.35%22%2F%3E%3Cline%20x1%3D%22814%22%20y1%3D%2251%22%20x2%3D%22828%22%20y2%3D%2234%22%20stroke-opacity%3D%220.47%22%2F%3E%3Cline%20x1%3D%22517%22%20y1%3D%2265%22%20x2%3D%22499%22%20y2%3D%2254%22%20stroke-opacity%3D%220.47%22%2F%3E%3Cline%20x1%3D%22517%22%20y1%3D%2265%22%20x2%3D%22458%22%20y2%3D%2235%22%20stroke-opacity%3D%220.30%22%2F%3E%3Cline%20x1%3D%22517%22%20y1%3D%2265%22%20x2%3D%22463%22%20y2%3D%2220%22%20stroke-opacity%3D%220.28%22%2F%3E%3Cline%20x1%3D%22517%22%20y1%3D%2265%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.32%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22306%22%20y2%3D%2219%22%20stroke-opacity%3D%220.41%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22388%22%20y2%3D%2228%22%20stroke-opacity%3D%220.37%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22458%22%20y2%3D%2235%22%20stroke-opacity%3D%220.10%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22316%22%20y2%3D%2250%22%20stroke-opacity%3D%220.43%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22264%22%20y2%3D%2232%22%20stroke-opacity%3D%220.26%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.41%22%2F%3E%3Cline%20x1%3D%22340%22%20y1%3D%2230%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.15%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22388%22%20y2%3D%2228%22%20stroke-opacity%3D%220.23%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22316%22%20y2%3D%2250%22%20stroke-opacity%3D%220.42%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22264%22%20y2%3D%2232%22%20stroke-opacity%3D%220.38%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.46%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.18%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2219%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.26%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22499%22%20y2%3D%2254%22%20stroke-opacity%3D%220.11%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22458%22%20y2%3D%2235%22%20stroke-opacity%3D%220.28%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22316%22%20y2%3D%2250%22%20stroke-opacity%3D%220.26%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22463%22%20y2%3D%2220%22%20stroke-opacity%3D%220.26%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.23%22%2F%3E%3Cline%20x1%3D%22388%22%20y1%3D%2228%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.25%22%2F%3E%3Cline%20x1%3D%22499%22%20y1%3D%2254%22%20x2%3D%22458%22%20y2%3D%2235%22%20stroke-opacity%3D%220.38%22%2F%3E%3Cline%20x1%3D%22499%22%20y1%3D%2254%22%20x2%3D%22463%22%20y2%3D%2220%22%20stroke-opacity%3D%220.36%22%2F%3E%3Cline%20x1%3D%22499%22%20y1%3D%2254%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.41%22%2F%3E%3Cline%20x1%3D%22458%22%20y1%3D%2235%22%20x2%3D%22463%22%20y2%3D%2220%22%20stroke-opacity%3D%220.49%22%2F%3E%3Cline%20x1%3D%22458%22%20y1%3D%2235%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.52%22%2F%3E%3Cline%20x1%3D%22802%22%20y1%3D%2213%22%20x2%3D%22762%22%20y2%3D%2248%22%20stroke-opacity%3D%220.35%22%2F%3E%3Cline%20x1%3D%22802%22%20y1%3D%2213%22%20x2%3D%22828%22%20y2%3D%2234%22%20stroke-opacity%3D%220.42%22%2F%3E%3Cline%20x1%3D%22316%22%20y1%3D%2250%22%20x2%3D%22264%22%20y2%3D%2232%22%20stroke-opacity%3D%220.34%22%2F%3E%3Cline%20x1%3D%22316%22%20y1%3D%2250%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.50%22%2F%3E%3Cline%20x1%3D%22316%22%20y1%3D%2250%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.18%22%2F%3E%3Cline%20x1%3D%22316%22%20y1%3D%2250%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.24%22%2F%3E%3Cline%20x1%3D%22463%22%20y1%3D%2220%22%20x2%3D%22464%22%20y2%3D%2240%22%20stroke-opacity%3D%220.47%22%2F%3E%3Cline%20x1%3D%22264%22%20y1%3D%2232%22%20x2%3D%22306%22%20y2%3D%2242%22%20stroke-opacity%3D%220.38%22%2F%3E%3Cline%20x1%3D%22264%22%20y1%3D%2232%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.34%22%2F%3E%3Cline%20x1%3D%22264%22%20y1%3D%2232%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.43%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2242%22%20x2%3D%22221%22%20y2%3D%2264%22%20stroke-opacity%3D%220.21%22%2F%3E%3Cline%20x1%3D%22306%22%20y1%3D%2242%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.28%22%2F%3E%3Cline%20x1%3D%22221%22%20y1%3D%2264%22%20x2%3D%22236%22%20y2%3D%2245%22%20stroke-opacity%3D%220.46%22%2F%3E%3Cline%20x1%3D%22762%22%20y1%3D%2248%22%20x2%3D%22828%22%20y2%3D%2234%22%20stroke-opacity%3D%220.29%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%236EB0DE%22%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2265%22%20r%3D%221.7%22%2F%3E%3Ccircle%20cx%3D%22201%22%20cy%3D%2254%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22303%22%20cy%3D%2255%22%20r%3D%222.6%22%2F%3E%3Ccircle%20cx%3D%22487%22%20cy%3D%2251%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22722%22%20cy%3D%2225%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22629%22%20cy%3D%2252%22%20r%3D%221.3%22%2F%3E%3Ccircle%20cx%3D%22608%22%20cy%3D%2238%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22714%22%20cy%3D%2217%22%20r%3D%222.1%22%2F%3E%3Ccircle%20cx%3D%22814%22%20cy%3D%2251%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22517%22%20cy%3D%2265%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%22340%22%20cy%3D%2230%22%20r%3D%222.7%22%2F%3E%3Ccircle%20cx%3D%22306%22%20cy%3D%2219%22%20r%3D%221.7%22%2F%3E%3Ccircle%20cx%3D%22388%22%20cy%3D%2228%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22499%22%20cy%3D%2254%22%20r%3D%222.8%22%2F%3E%3Ccircle%20cx%3D%2270%22%20cy%3D%2226%22%20r%3D%222.2%22%2F%3E%3Ccircle%20cx%3D%22458%22%20cy%3D%2235%22%20r%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%22802%22%20cy%3D%2213%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22316%22%20cy%3D%2250%22%20r%3D%222.9%22%2F%3E%3Ccircle%20cx%3D%22463%22%20cy%3D%2220%22%20r%3D%221.9%22%2F%3E%3Ccircle%20cx%3D%22264%22%20cy%3D%2232%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22306%22%20cy%3D%2242%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22221%22%20cy%3D%2264%22%20r%3D%222.0%22%2F%3E%3Ccircle%20cx%3D%22762%22%20cy%3D%2248%22%20r%3D%222.3%22%2F%3E%3Ccircle%20cx%3D%22464%22%20cy%3D%2240%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%22828%22%20cy%3D%2234%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22236%22%20cy%3D%2245%22%20r%3D%221.8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center/100% 100% no-repeat; opacity:.55; pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); mask-image:linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
  animation:drift 14s ease-in-out infinite alternate; }
.site-header::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; pointer-events:none;
  background:linear-gradient(90deg, rgba(110,176,222,0) 0%, rgba(110,176,222,.9) 25%, #1F6FB2 50%, rgba(110,176,222,.9) 75%, rgba(110,176,222,0) 100%);
  background-size:200% 100%; animation:sheen 9s linear infinite; opacity:.85; }
@keyframes sheen{ from{ background-position:200% 0; } to{ background-position:0 0; } }
@keyframes drift{ from{ transform:translateX(-12px); opacity:.45; } to{ transform:translateX(12px); opacity:.65; } }
.site-header.scrolled{ box-shadow:0 8px 24px -18px rgba(11,18,32,.35); }
@media (max-width:1100px){ .site-header::before{ left:180px; right:80px; opacity:.35; } }
@media (max-width:760px){ .site-header::before{ display:none; } }
@media (prefers-reduced-motion: reduce){ .site-header::before, .site-header::after{ animation:none !important; } }

@keyframes drift{ from{ transform:translateX(-12px); opacity:.6; } to{ transform:translateX(12px); opacity:.85; } }

/* Slide tabs span the full width, aligned with the full-width header */
.slide-tabs .wrap{ max-width:none; padding:0 clamp(20px, 3.2vw, 64px); }
.slide-tab{ padding-left:28px !important; padding-right:28px; }
.slide-tab:first-child{ padding-left:0 !important; }
.slide-tab .bar{ left:0; }
.slide .wrap{ max-width:none; padding-left:clamp(20px, 3.2vw, 64px); padding-right:clamp(20px, 3.2vw, 64px); }

/* Slimmer logo ticker (height) */
.marquee{ padding:8px 0 10px; }
.marquee .lbl{ margin-bottom:2px; font-size:11px; }
.marquee ul{ height:44px; }
.marquee li img.lg-reliance{ height:44px; } .marquee li img.lg-tata{ height:38px; } .marquee li img.lg-walmart{ height:32px; }
.marquee li img.lg-metro-group{ height:21px; } .marquee li img.lg-bata{ height:23px; } .marquee li img.lg-deloitte{ height:21px; } .marquee li img.lg-croma{ height:30px; }
.marquee li::after{ width:15px; height:15px; margin-top:-7.5px; right:-7.5px; }
.carousel{ height:calc(100vh - var(--header-h) - 82px); height:calc(100svh - var(--header-h) - 82px); }
@media (max-width:760px){ .carousel{ height:auto; } }
.carousel{ max-height:960px; }

/* Slower logo ticker */
.marquee .track{ animation-duration:90s; }


/* Logo strip: same layout, no movement */
.marquee.static .track{ animation:none !important; transform:none !important; }
.marquee.static .track{ width:100%; }
.marquee.static ul{ width:100%; }
.marquee.static li{ flex:1 1 auto; display:flex; justify-content:center; padding:0 24px; }
.marquee.static li:last-child::after{ display:none; }
@media (max-width:760px){ .marquee.static ul{ flex-wrap:wrap; height:auto; row-gap:12px; } .marquee.static li::after{ display:none; } }


/* Brighter hero: shade only behind the text, let the photo breathe */
.slide::after{ background:linear-gradient(90deg, rgba(5,14,28,.80) 0%, rgba(5,14,28,.58) 30%, rgba(5,14,28,.14) 56%, rgba(5,14,28,0) 74%); }
.slide > img{ filter:saturate(1.15) contrast(1.04); }
.slide .copy{ text-shadow:0 2px 20px rgba(3,10,22,.45); }
@media (max-width:760px){ .slide::after{ background:linear-gradient(0deg, rgba(5,14,28,.92) 0%, rgba(5,14,28,.6) 55%, rgba(5,14,28,.2) 100%); } }


/* ---------- Slide tabs: icons instead of numbers, frosted glass ---------- */
.slide-tabs{ background:linear-gradient(0deg, rgba(6,16,32,.55), rgba(6,16,32,.28)); -webkit-backdrop-filter:blur(14px) saturate(1.25); backdrop-filter:blur(14px) saturate(1.25); border-top:1px solid rgba(255,255,255,.16); }
.slide-tab{ display:flex; align-items:center; gap:14px; padding-top:18px; padding-bottom:18px; font-size:15px; font-weight:600; color:#C4D2E3; letter-spacing:.005em; transition:color .3s ease; }
.slide-tab small{ display:none; }
.slide-tab .ico{ flex:none; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; color:#DCE7F3; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.28); transition:background .35s ease, border-color .35s ease, box-shadow .35s ease, color .35s ease, transform .35s ease; }
.slide-tab .ico svg{ width:19px; height:19px; }
.slide-tab:hover{ color:#fff; }
.slide-tab:hover .ico{ border-color:rgba(255,255,255,.6); transform:translateY(-1px); }
.slide-tab.active{ color:#fff; }
.slide-tab.active .ico{ color:#fff; background:linear-gradient(135deg, #3A8FD0, #1F6FB2); border-color:transparent; box-shadow:0 0 0 5px rgba(58,143,208,.22), 0 6px 18px -6px rgba(31,111,178,.9); }
.slide-tab .bar{ height:2px; top:-1px; background:linear-gradient(90deg, rgba(110,176,222,.4), #8CC6EE 60%, #fff); box-shadow:0 0 10px rgba(140,198,238,.85); border-radius:2px; }
.slide-tab + .slide-tab{ border-left:1px solid rgba(255,255,255,.1); }
@media (max-width:760px){
  .slide-tab{ gap:8px; font-size:12.5px; padding-top:12px; padding-bottom:12px; }
  .slide-tab .ico{ width:30px; height:30px; } .slide-tab .ico svg{ width:15px; height:15px; }
  .slide-tab.active .ico{ box-shadow:0 0 0 3px rgba(58,143,208,.22); }
}
@media (max-width:480px){ .slide-tab .ico{ display:none; } }

/* Slower slide rotation: 15s per slide */
.slide-tab.active .bar{ animation-duration:15s; }


/* ---------- Slide tabs: no moving progress line (user, 2026-09-26) ---------- */
.slide-tab .bar, .slide-tab.active .bar{ display:none; animation:none; }

/* ---------- About: mission & vision – signature script style (user, 2026-09-26) ---------- */
.mv{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:56px; }
.mv-card{ border-radius:20px; padding:38px 44px 44px; background:#F3F7FC; border-left:4px solid var(--blue); }
.mv-lab{ font:400 48px/1 "Great Vibes", cursive; color:var(--blue); }
.mv-card p{ font:italic 400 23px/1.45 Fraunces, Georgia, serif; color:var(--ink); margin:14px 0 0; }
.mv-card p em{ font-style:italic; font-weight:500; color:var(--blue); }
@media (max-width:760px){ .mv{ grid-template-columns:1fr; } .mv-card{ padding:30px 26px 32px; } .mv-lab{ font-size:40px; } .mv-card p{ font-size:20px; } }

/* ---------- Logo strip: Harvard Business School + University of Michigan (user, 2026-09-26) ---------- */
.marquee li img.lg-hbs{ height:46px; }
.marquee li img.lg-umich{ height:26px; }
.marquee.static li{ padding:0 18px; }

.logo-row img.lg-hbs{ height:44px; }

/* ---------- Header constellation: a little more visible, still subtle (user, 2026-09-26) ---------- */
.site-header::before{ filter:brightness(.7) saturate(1.5); }
@keyframes drift{ from{ transform:translateX(-12px); opacity:.85; } to{ transform:translateX(12px); opacity:1; } }
@media (max-width:1100px){ .site-header::before{ opacity:.6; } }
/* ---------- Services landing page (user, 2026-09-26) ---------- */
.svc-row + .svc-row{ margin-top:clamp(56px,8vw,96px); padding-top:clamp(56px,8vw,96px); border-top:1px solid var(--line); }
.svc-kicker{ display:inline-flex; align-items:center; gap:12px; }
.svc-ico{ display:inline-grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--blue); color:#fff; flex:none; }
.svc-ico svg{ width:20px; height:20px; }
.svc-row h2 em{ font-style:normal; color:var(--blue); }
.svc-row .split-media img{ aspect-ratio:4/3; object-fit:cover; }

.svc-kicker::before{ display:none; }

/* ---------- Slimmer home page (user, 2026-09-26) ---------- */
.who-founders{ display:grid; gap:14px; margin:22px 0 26px; }
.who-founders > div{ display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:center; }
.who-founders .avatar{ flex:none; width:48px; height:48px; font-size:17px; }
.who-founders strong{ display:block; font-family:var(--head); font-size:17px; color:var(--ink); }
.who-founders span{ display:block; font-size:14.5px; color:var(--muted); line-height:1.45; }
.explore-sec{ padding-top:clamp(48px,6vw,72px); padding-bottom:clamp(48px,6vw,72px); }
.explore{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.explore-card{ display:grid; grid-template-columns:48px 1fr 24px; gap:16px; align-items:center; padding:24px; border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; text-decoration:none; color:inherit; transition:border-color .2s, box-shadow .2s; }
.explore-card:hover{ border-color:var(--blue); box-shadow:0 14px 34px -22px rgba(14,27,44,.35); }
.explore-card h3{ font-size:19px; margin:0 0 4px; }
.explore-card p{ font-size:14.5px; color:var(--muted); margin:0; line-height:1.45; }
.ex-ico{ display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#EAF2FB; color:var(--blue); }
.ex-ico svg{ width:22px; height:22px; }
.ex-go{ color:var(--blue); } .ex-go svg{ width:20px; height:20px; }
@media (max-width:900px){ .explore{ grid-template-columns:1fr; } }

/* ---------- Service pages: pinned section menu (user, 2026-09-26) ---------- */
.subnav{ position:sticky; top:var(--header-h); z-index:90; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 10px 24px -22px rgba(11,18,32,.4); }
.subnav .wrap{ display:flex; align-items:center; gap:clamp(20px,3vw,44px); overflow-x:auto; scrollbar-width:none; }
.subnav .wrap::-webkit-scrollbar{ display:none; }
.subnav a:not(.btn){ position:relative; padding:19px 0; font-size:15px; font-weight:600; color:var(--muted); text-decoration:none; white-space:nowrap; transition:color .2s; }
.subnav a:not(.btn):hover{ color:var(--ink); }
.subnav a.active{ color:var(--blue); }
.subnav a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--blue); }
.subnav .sub-cta{ margin-left:auto; padding:10px 18px; font-size:14.5px; white-space:nowrap; }
.subnav .sub-cta svg{ width:16px; height:16px; }
.subnav ~ section[id]{ scroll-margin-top:calc(var(--header-h) - 30px); }
@media (max-width:760px){ .subnav .sub-cta{ display:none; } .subnav a:not(.btn){ padding:15px 0; font-size:14px; } }

/* Hero tabs: centre each tab's icon + label */
.slide-tab, .slide-tab:first-child{ justify-content:center; text-align:center; padding-left:20px !important; padding-right:20px; }
@media (max-width:640px){ .slide-tab, .slide-tab:first-child{ padding-left:8px !important; padding-right:8px; } }


/* Contact form: required markers and validation errors */
.req{ color:#C8102E; font-weight:700; margin-left:2px; }
.field.is-invalid input, .field.is-invalid textarea, .field.is-invalid select{ border-color:#C8102E; box-shadow:0 0 0 3px rgba(200,16,46,.12); }
.field.is-invalid .interest{ outline:2px solid rgba(200,16,46,.55); outline-offset:6px; border-radius:6px; }
.field .err{ display:block; margin-top:6px; font-size:13px; line-height:1.4; color:#C8102E; }
.form-error{ margin:0 0 14px; padding:10px 14px; border-radius:8px; background:rgba(200,16,46,.08); color:#8E0C20; font-size:14px; font-weight:600; }


/* Contact form: thank-you pop-up */
dialog.ack{ width:min(520px, calc(100vw - 32px)); border:0; border-radius:var(--r-lg); padding:clamp(32px,5vw,48px) clamp(24px,4vw,40px); box-shadow:var(--shadow-lg); color:var(--ink); text-align:center; }
dialog.ack::backdrop{ background:rgba(5,14,28,.65); backdrop-filter:blur(3px); }
dialog.ack .ok{ width:72px; height:72px; margin:0 auto 20px; border-radius:50%; background:rgba(47,179,136,.14); color:var(--mint); display:grid; place-items:center; }
dialog.ack .ok svg{ width:34px; height:34px; }
dialog.ack h2{ font-size:26px; line-height:1.2; margin:0 0 12px; }
dialog.ack p{ color:var(--muted); font-size:16px; margin:0 0 10px; }
dialog.ack .ack-sub{ font-size:14px; }
dialog.ack .ack-close{ margin-top:22px; }


/* Home: quick links inside the track-record band (replaces the separate explore section) */
.stat-band .band-links{ display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:28px; }
.stat-band .band-links .link-arrow{ color:#fff; }
.stat-band .band-links .link-arrow svg{ color:#8CC6EE; }


/* Consistency pass 27 Sep 2026: equal CTA band height on mobile */
@media (max-width:760px){ .cta-band{ min-height:380px; } }

/* ==========================================================================
   Responsive pass — 27 Sep 2026
   Adds a real tablet tier between 761px and 1100px, fixes orphaned cards,
   stacks cramped two-column layouts, enlarges touch targets.
   ========================================================================== */
h1, h2, h3{ overflow-wrap:break-word; hyphens:manual; }

/* Tablet landscape / small laptop: 3-card rows still fit at 3 columns */
@media (min-width:900px) and (max-width:1100px){
  .svc-cards, .models, .proj-grid, .tiles{ grid-template-columns:repeat(3,1fr); gap:18px; }
}
/* Tablet portrait: 2 columns, a lone last card spans the full row */
@media (min-width:761px) and (max-width:899px){
  .svc-cards > :last-child:nth-child(odd),
  .models > :last-child:nth-child(odd),
  .proj-grid > :last-child:nth-child(odd),
  .tiles > :last-child:nth-child(odd){ grid-column:1 / -1; }
  .svc-cards > :last-child:nth-child(odd) .ph,
  .tiles > :last-child:nth-child(odd) .ph,
  .proj-grid > :last-child:nth-child(odd) .ph{ aspect-ratio:21/9; }
}
/* Stack two-column layouts that get cramped below 900px */
@media (max-width:899px){
  .split, .founders, .contact-grid{ grid-template-columns:1fr; }
  .split .split-media{ max-width:640px; }
}
/* Very small phones */
@media (max-width:380px){
  .industries{ grid-template-columns:1fr; }
  .brand .tag{ font-size:9px; letter-spacing:.16em; }
}
@media (max-width:760px){ .brand .tag{ font-size:9.5px; } }
/* Touch screens: comfortable tap targets for small text links */
@media (pointer:coarse){
  .site-footer li a, .crumbs a{ display:inline-block; padding-block:8px; margin-block:-4px; }
  .site-footer li{ margin-bottom:4px; }
}

/* Page-hero alignment — 27 Sep 2026: title block starts the same distance below the header
   bar on every inner page (was bottom-anchored, so the gap varied with headline length). */
.page-hero{ align-items:flex-start; }
.page-hero .wrap{ padding-top:clamp(72px, 8vw, 112px); padding-bottom:clamp(56px, 6vw, 80px); }
@media (max-width:760px){
  .page-hero{ min-height:0; }
  .page-hero .wrap{ padding-top:64px; padding-bottom:64px; }
  .page-hero::after{ background:linear-gradient(180deg, rgba(5,14,28,.9) 0%, rgba(5,14,28,.78) 55%, rgba(5,14,28,.6) 100%); }
}

/* Services dropdown — 27 Sep 2026: the header's .wrap padding reset (line ~654) was also
   stripping the dropdown's own padding, so its content sat flush against the header bar. */
.site-header .mega .wrap{ height:auto; padding-top:36px; padding-bottom:40px; }
.mega-intro .mega-title{ font-family:var(--head); font-weight:700; font-size:22px; letter-spacing:-.02em; color:var(--ink); margin:0 0 10px; }
.mega-card strong{ white-space:nowrap; }

/* Hyphenated compounds in headings stay on one line (span added by build.js keepCompounds) */
.nw, .nwr{ display:inline !important; font:inherit !important; color:inherit !important; letter-spacing:inherit !important;
  text-transform:inherit !important; margin:0 !important; padding:0 !important; background:none !important; border:0 !important; gap:0 !important; }
.nw{ white-space:nowrap !important; }
.nw::before, .nw::after, .nwr::before, .nwr::after{ content:none !important; display:none !important; }

/* Contact emails never split across lines on small phones */
.person a{ overflow-wrap:normal; word-break:normal; }
@media (max-width:380px){ .person a{ font-size:14px; white-space:nowrap; } }

/* Home hero images (27 Sep 2026) */
.slide img.hero-img-team{ object-position:center 40%; }
.slide img.hero-img-lead{ object-position:65% center; }
@media (max-width:760px){ .slide img.hero-img-team{ object-position:68% center; } .slide img.hero-img-lead{ object-position:72% center; } }

/* Logo strip additions (27 Sep 2026): University of Michigan, NTU Singapore, Microsoft Research */
.marquee li img.lg-umich{ height:22px; } .marquee li img.lg-ntu{ height:44px; } .marquee li img.lg-msr{ height:34px; }
.logo-row img.lg-umich{ height:20px; } .logo-row img.lg-ntu{ height:40px; } .logo-row img.lg-msr{ height:30px; }
@media (max-width:760px){ .marquee li img.lg-umich{ height:16px; } .marquee li img.lg-ntu{ height:34px; } .marquee li img.lg-msr{ height:26px; } }
/* With 10 logos: static strip wraps into centred rows instead of running off the edge */
.marquee.static .viewport{ -webkit-mask-image:none; mask-image:none; max-width:var(--wrap); }
.marquee.static ul{ flex-wrap:wrap; justify-content:center; height:auto; row-gap:18px; padding:6px 0; }
.marquee.static li{ flex:0 0 auto; padding:0 22px; }
.marquee.static li::after{ display:none; }
.marquee.static li img.lg{ transform:scale(.86); }
.logo-row{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); justify-items:center; gap:34px 24px; max-width:1100px; }
@media (max-width:760px){ .logo-row{ grid-template-columns:repeat(2,minmax(0,1fr)); } .marquee.static li{ padding:0 14px; } }
.marquee.static .viewport::before{ display:none; }
@media (min-width:761px){ .marquee.static ul{ max-width:1100px; margin:0 auto; } .marquee.static li{ flex:0 0 20%; justify-content:center; padding:0 12px; } }
@media (min-width:761px){
  .marquee.static ul{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; column-gap:24px; }
  .marquee.static li{ flex:none; padding:0; min-width:0; }
  .marquee.static li img.lg{ max-width:100%; object-fit:contain; }
}

/* ==========================================================================
   First view (27 Sep 2026): header + hero + the full logo strip fit in one
   screen. The strip has a fixed height; the hero takes whatever is left.
   ========================================================================== */
:root{ --strip-h:132px; }
.carousel{ height:calc(100vh - var(--header-h) - var(--strip-h)); height:calc(100svh - var(--header-h) - var(--strip-h)); min-height:440px; max-height:960px; }
.marquee.static{ height:var(--strip-h); padding:12px 0; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; }
.marquee.static .lbl{ margin-bottom:8px; font-size:11px; }
.marquee.static ul{ row-gap:10px; padding:0; }
.marquee.static li img.lg{ transform:none; height:28px !important; }
.marquee.static li img.lg-hbs, .marquee.static li img.lg-ntu{ height:36px !important; }
.marquee.static li img.lg-reliance, .marquee.static li img.lg-tata{ height:34px !important; }
.marquee.static li img.lg-umich{ height:18px !important; }
.marquee.static li img.lg-metro-group, .marquee.static li img.lg-deloitte, .marquee.static li img.lg-bata{ height:22px !important; }
@media (max-width:760px){
  :root{ --strip-h:118px; }
  .carousel{ min-height:0; }
  .marquee.static ul{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; justify-items:center; column-gap:10px; row-gap:8px; padding:0 var(--gutter); height:auto; flex-wrap:nowrap; }
  .marquee.static li{ padding:0; min-width:0; }
  .marquee.static li img.lg{ max-width:100%; object-fit:contain; height:22px !important; }
  .marquee.static li img.lg-hbs, .marquee.static li img.lg-ntu, .marquee.static li img.lg-reliance, .marquee.static li img.lg-tata{ height:30px !important; }
  .marquee.static li img.lg-umich{ height:14px !important; }
  .marquee.static li img.lg-metro-group, .marquee.static li img.lg-deloitte, .marquee.static li img.lg-bata{ height:17px !important; }
}
/* Phones: logos in a 4-column grid (wide wordmarks span two cells so they stay legible);
   hero content sits clear of the slide tabs and tightens on short screens. */
@media (max-width:760px){
  :root{ --strip-h:160px; }
  .marquee.static{ padding:10px 0; }
  .marquee.static .lbl{ margin-bottom:8px; font-size:10.5px; }
  .marquee.static ul{ grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:12px; row-gap:10px; grid-auto-rows:30px; }
  .marquee.static li{ height:30px; display:flex; align-items:center; justify-content:center; overflow:visible; }
  .marquee.static li:has(.lg-umich), .marquee.static li:has(.lg-msr){ grid-column:span 2; }
  .marquee.static li img.lg{ height:20px !important; max-height:30px; }
  .marquee.static li img.lg-hbs, .marquee.static li img.lg-ntu{ height:28px !important; }
  .marquee.static li img.lg-reliance, .marquee.static li img.lg-tata{ height:26px !important; }
  .marquee.static li img.lg-umich{ height:18px !important; }
  .marquee.static li img.lg-msr{ height:26px !important; }
  .marquee.static li img.lg-metro-group, .marquee.static li img.lg-deloitte, .marquee.static li img.lg-bata{ height:16px !important; }
  .slide .wrap{ padding-top:24px; padding-bottom:calc(86px + 22px); }
}
@media (max-width:760px) and (max-height:760px){
  .slide h1, .slide h2{ font-size:30px; }
  .slide p{ font-size:15.5px; margin:12px 0 16px; }
  .slide .kicker{ margin-bottom:10px; }
  .slide .btn{ padding:12px 18px; }
}
@media (max-width:760px) and (max-height:660px){
  .slide p{ display:none; }
  .slide h1, .slide h2{ margin-bottom:18px; }
}

/* ==========================================================================
   Logo strip, one line (27 Sep 2026). Replaces the two-row layout above.
   ≥900px: all ten logos static in one row, sized to the viewport.
   <900px: one-line ticker that loops through all ten.
   ========================================================================== */
:root{ --strip-h:92px; }
.marquee.static{ height:var(--strip-h); padding:10px 0 12px; }
.marquee.static .lbl{ margin-bottom:10px; font-size:10.5px; }
.marquee.static .viewport{ max-width:var(--wrap); padding:0 var(--gutter); overflow:hidden; }
.marquee.static .track{ display:flex; width:100%; }
.marquee.static ul, .marquee.static ul.dup{ display:flex !important; flex-wrap:nowrap; justify-content:space-between; align-items:center;
  width:100%; max-width:none; height:auto; margin:0; padding:0; gap:clamp(14px, 2vw, 36px); grid-template-columns:none; }
.marquee.static ul.dup{ display:none !important; }
.marquee.static li, .marquee.static li:has(.lg-umich), .marquee.static li:has(.lg-msr){ flex:0 0 auto; padding:0; height:auto; grid-column:auto; }
.marquee.static li img.lg{ --u:clamp(18px, 2vw, 30px); max-width:none; transform:none; height:calc(var(--u) * .74) !important; }
.marquee.static li img.lg-hbs, .marquee.static li img.lg-ntu, .marquee.static li img.lg-reliance{ height:var(--u) !important; }
.marquee.static li img.lg-tata{ height:calc(var(--u) * .95) !important; }
.marquee.static li img.lg-umich{ height:calc(var(--u) * .52) !important; }
.marquee.static li img.lg-metro-group{ height:calc(var(--u) * .56) !important; }
.marquee.static li img.lg-deloitte{ height:calc(var(--u) * .6) !important; }
.marquee.static li img.lg-bata{ height:calc(var(--u) * .66) !important; }
.marquee.static li img.lg-msr{ height:calc(var(--u) * .86) !important; }
@media (max-width:899px){
  :root{ --strip-h:84px; }
  .marquee.static .viewport{ padding:0; -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%); }
  .marquee.static .track{ width:max-content; animation:logoTicker 32s linear infinite !important; }
  .marquee.static ul, .marquee.static ul.dup{ display:flex !important; width:auto; justify-content:flex-start; gap:36px; padding-right:36px; }
  .marquee.static li img.lg{ --u:28px; }
}
@media (max-width:899px) and (prefers-reduced-motion:reduce){ .marquee.static .track{ animation-duration:80s !important; } }
/* undo the phone-only hero tightening; the shorter strip leaves room again */
@media (max-width:760px) and (max-height:660px){ .slide p{ display:block; } }
@keyframes logoTicker{ from{ translate:0 0; } to{ translate:-50% 0; } }
/* Logo row spans the full width, aligned with the header's side margins */
@media (min-width:900px){
  .marquee.static .viewport{ max-width:none !important; width:100%; padding:0 clamp(20px, 3.2vw, 64px); }
  .marquee.static .track, .marquee.static ul{ width:100% !important; max-width:none !important; margin:0 !important; }
  .marquee.static li img.lg{ --u:clamp(18px, 2.15vw, 34px); }
}
/* CFO page hero: keep the executive on the right, clear of the headline */
.page-hero > img.hero-cfo{ object-position:right 20%; }
@media (max-width:760px){ .page-hero > img.hero-cfo{ object-position:82% 20%; } }
