/* ============================================================
   Saket Tulsan — Personal Site
   Production stylesheet. Mobile-first; breakpoints at 560, 720, 1024, 1180.
   Built on the Thinkbridge Partners design system tokens.

   Structure
     1  Tokens          6  Hero
     2  Reset           7  Companies
     3  Type            8  About
     4  Layout          9  Impact
     5  Header         10  Work / Acts
                       11  Services
                       12  Pull quote
                       13  Credibility timeline
                       14  Contact
                       15  Footer
                       16  Dark theme
                       17  Print
============================================================ */
/* Google Fonts loaded via <link> in HTML for parallel loading — see index.html */

/* ============================================================ 1. TOKENS */
:root {
  /* --- Brand palette --- */
  --tb-navy-900:#00132C; --tb-navy-800:#011F43; --tb-navy-700:#0A2A55;
  --tb-navy-500:#41618F; --tb-navy-300:#8FA6C2; --tb-navy-200:#B8C7DB;
  --tb-navy-100:#DCE5F0; --tb-navy-050:#F1F4F9;
  --tb-ivory-050:#FBFAF7; --tb-ivory-100:#F5F3EE; --tb-ivory-200:#E9E6DE;
  --tb-ink-900:#14171C; --tb-ink-700:#353A44; --tb-ink-500:#5F6672;
  --tb-ink-400:#9AA1AE; --tb-ink-300:#C8CCD3; --tb-ink-100:#ECEEF1;
  --tb-gold-700:#8C6A1F; --tb-gold-500:#B89149; --tb-gold-200:#E8D9B4;

  /* --- Semantic surfaces --- */
  --bg-page:var(--tb-ivory-050);
  --bg-surface:#FFF;
  --bg-alt:var(--tb-ivory-100);
  --bg-raise:#FFFDF7;             /* highlighted card wash */
  --bg-inverse:var(--tb-navy-800);
  --fg-1:var(--tb-ink-900);
  --fg-2:var(--tb-ink-700);
  --fg-3:var(--tb-ink-500);
  --border-1:#D5D8DE;             /* structural hairline */
  --border-2:var(--tb-ink-100);   /* internal divider */
  --border-strong:var(--tb-navy-800);
  --accent:var(--tb-gold-500);
  --accent-ink:var(--tb-gold-700);/* accent used as small text — light/dark safe */
  --ring:var(--tb-navy-800);
  --ring-inverse:var(--tb-gold-200);
  --shadow-card:0 1px 2px rgba(1,31,67,.04);
  --shadow-lift:0 12px 32px -18px rgba(1,31,67,.32),0 2px 6px -3px rgba(1,31,67,.10);
  --shadow-lift-dark:0 12px 32px -18px rgba(0,0,0,.6);

  /* --- Space scale --- */
  --s-1:4px;  --s-2:8px;  --s-3:12px; --s-4:16px; --s-5:20px;
  --s-6:24px; --s-7:32px; --s-8:40px; --s-9:48px; --s-10:64px;
  --s-11:80px; --s-12:96px; --s-13:120px;
  --section-y:clamp(64px,8.5vw,132px);
  --gutter:clamp(20px,4vw,48px);
  --container:1240px;

  /* --- Type --- */
  --font-display:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --font-serif:"Source Serif 4","Source Serif Pro",Georgia,serif;
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --fs-body:17px;
  --fs-micro:11px;
  --track-label:0.2em;

  /* --- Motion & depth --- */
  --dur:200ms;
  --ease:cubic-bezier(.22,.61,.36,1);
  --radius:3px;
  --radius-lg:5px;
  --z-header:50;
  --z-skip:100;

  color-scheme:light;
}

/* ============================================================ 2. RESET */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
html,body{overflow-x:clip;max-width:100%}
body{
  margin:0;padding-top:var(--site-header-h,64px);
  font-family:var(--font-serif);font-size:var(--fs-body);line-height:1.62;
  color:var(--fg-1);background:var(--bg-page);
  font-feature-settings:"kern" 1,"liga" 1,"onum" 1;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0}
h1,h2,h3,h4,h5,h6,p,figure,blockquote{margin:0}
button{font:inherit}
::selection{background:var(--tb-gold-200);color:var(--tb-navy-900)}
[id]{scroll-margin-top:calc(var(--site-header-h,64px) + 20px)}

/* Focus: one visible ring everywhere, light and dark. */
:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:2px}
.hero :focus-visible,.section--dark :focus-visible,.site-header :focus-visible,
.site-footer :focus-visible,.mobile-menu :focus-visible{outline-color:var(--ring-inverse)}

.skip-link{
  position:absolute;left:var(--s-4);top:var(--s-2);z-index:var(--z-skip);
  transform:translateY(-160%);
  background:var(--tb-gold-200);color:var(--tb-navy-900);
  font-family:var(--font-sans);font-size:13px;font-weight:600;
  padding:12px 18px;border-radius:var(--radius);
  transition:transform var(--dur) var(--ease);
}
.skip-link:focus-visible{transform:translateY(0)}

.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* ============================================================ 3. TYPE */
.h1{font-family:var(--font-display);font-weight:300;font-size:clamp(42px,6.4vw,78px);line-height:1.03;letter-spacing:-0.025em;text-wrap:balance}
.h2{font-family:var(--font-display);font-weight:300;font-size:clamp(32px,4.6vw,58px);line-height:1.06;letter-spacing:-0.02em;text-wrap:balance}
.lead{font-family:var(--font-serif);font-size:clamp(16px,1.6vw,19px);line-height:1.68;color:var(--fg-2);max-width:58ch;text-wrap:pretty}
em{font-style:italic}
p{text-wrap:pretty}

.eyebrow{font-family:var(--font-sans);font-size:var(--fs-micro);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--tb-navy-800);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.eyebrow.gold{color:var(--tb-gold-500)}

.editorial-rule{display:block;border:0;border-top:1px solid var(--border-strong);width:48px;margin:0 0 var(--s-6)}
.editorial-rule.light{border-top-color:var(--accent)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ============================================================ 4. LAYOUT */
.container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}

.section{padding-block:var(--section-y)}
.section--alt{background:var(--bg-alt);border-block:1px solid var(--border-2)}
.section--dark{background:var(--tb-navy-900);color:#fff;border-top:1px solid var(--tb-navy-700)}
.section--dark .h2{color:#fff}
.section--highlight{background:linear-gradient(180deg,var(--bg-alt) 0%,var(--bg-page) 62%);border-top:1px solid var(--border-2)}

.section-label{
  display:flex;align-items:baseline;gap:var(--s-6);
  font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--fg-3);font-weight:500;
  padding-bottom:var(--s-4);border-bottom:1px solid var(--border-1);margin-bottom:var(--s-9);
}
.section--dark .section-label{color:var(--tb-navy-200);border-bottom-color:rgba(255,255,255,.18)}
@media(min-width:1024px){.section-label{margin-bottom:var(--s-10)}}

/* Shared two-column editorial head: title left, supporting copy right */
.split{display:grid;grid-template-columns:1fr;gap:var(--s-6);margin-bottom:var(--s-9)}
@media(min-width:1024px){.split{grid-template-columns:minmax(280px,.9fr) 1.5fr;gap:var(--s-12);margin-bottom:var(--s-10);align-items:start}}

.editorial{display:grid;grid-template-columns:1fr;gap:var(--s-7)}
@media(min-width:1024px){.editorial{grid-template-columns:minmax(280px,.85fr) 1.6fr;gap:var(--s-12);align-items:start}}
@media(min-width:1024px){.editorial__title-col{position:sticky;top:calc(var(--site-header-h,64px) + var(--s-8))}}

/* ============================================================ 5. HEADER */
.site-header{
  position:fixed;inset:0 0 auto;z-index:var(--z-header);
  background:rgba(0,19,44,.94);
  backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid rgba(255,255,255,.10);
  padding-block:12px;
}
@media(max-width:767px){.site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,19,44,.98)}}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}

.wordmark{display:inline-flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
.wordmark__name{font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.3;color:#fff;letter-spacing:-0.01em;white-space:nowrap;transition:color var(--dur) var(--ease)}
.wordmark__name:hover{color:var(--tb-gold-200)}
.wordmark__role{display:inline-flex;align-items:center;min-height:26px;font-family:var(--font-sans);font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--tb-navy-200);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--dur) var(--ease)}
.wordmark__role:hover{color:var(--tb-gold-200)}
@media(max-width:620px){.wordmark__role{display:none}}

.site-header__right{display:flex;align-items:center;gap:var(--s-2)}
.site-nav{display:none;align-items:center;gap:var(--s-6);margin-right:var(--s-2)}
@media(min-width:1024px){.site-nav{display:flex}}
.site-nav a{
  position:relative;font-family:var(--font-sans);font-size:13px;font-weight:500;
  color:rgba(255,255,255,.72);letter-spacing:.01em;padding:6px 0;
  transition:color var(--dur) var(--ease);
}
.site-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.site-nav a:hover{color:#fff}
.site-nav a:hover::after{transform:scaleX(1)}
.site-nav a[aria-current="true"]{color:#fff}
.site-nav a[aria-current="true"]::after{transform:scaleX(1);background:var(--accent)}

/* Header actions — visible at every width (previously desktop-only) */
.header-cta{
  display:inline-flex;align-items:center;gap:8px;min-height:38px;
  padding:9px 16px;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius);
  font-family:var(--font-sans);font-size:13px;font-weight:500;color:#fff;white-space:nowrap;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
.header-cta:hover{background:#fff;color:var(--tb-navy-800);border-color:#fff}
.header-cta:active{transform:translateY(1px)}
.header-cta__short{display:inline}
.header-cta__long{display:none}
@media(min-width:560px){.header-cta__short{display:none}.header-cta__long{display:inline}}

.theme-toggle{
  width:38px;height:38px;flex:0 0 auto;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;padding:0;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.theme-toggle:hover{border-color:#fff;background:rgba(255,255,255,.10)}
.theme-toggle__icon--dark{display:none}
[data-theme="dark"] .theme-toggle__icon--light{display:none}
[data-theme="dark"] .theme-toggle__icon--dark{display:inline}

.menu-toggle{
  display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;
  background:none;border:1px solid transparent;border-radius:var(--radius);color:#fff;cursor:pointer;
  font-family:var(--font-sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.menu-toggle:hover{border-color:rgba(255,255,255,.35)}
@media(min-width:1024px){.menu-toggle{display:none}}
.menu-toggle__bars{display:inline-block;width:18px;height:10px;position:relative}
.menu-toggle__bars::before,.menu-toggle__bars::after{content:"";position:absolute;left:0;right:0;height:1px;background:#fff;transition:transform var(--dur) var(--ease)}
.menu-toggle__bars::before{top:2px}
.menu-toggle__bars::after{bottom:2px}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::before{transform:translateY(3px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::after{transform:translateY(-3px) rotate(-45deg)}

.mobile-menu{display:none;border-top:1px solid rgba(255,255,255,.12);margin-top:12px;padding:var(--s-2) 0 var(--s-3)}
.mobile-menu.open{display:block}
.mobile-menu ul{list-style:none;display:grid;gap:2px}
.mobile-menu a{
  display:flex;align-items:center;justify-content:space-between;min-height:48px;
  font-family:var(--font-sans);font-size:15px;color:#fff;padding:12px 14px;border-radius:var(--radius);
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.mobile-menu a:hover{background:rgba(255,255,255,.08);color:var(--tb-gold-200)}
.mobile-menu a[aria-current="true"]{background:rgba(184,145,73,.16);color:var(--tb-gold-200)}
.mobile-menu__cta{margin-top:var(--s-2);border-top:1px solid rgba(255,255,255,.12);padding-top:var(--s-3)}
.mobile-menu__cta a{background:#fff;color:var(--tb-navy-800);justify-content:center;font-weight:600}
.mobile-menu__cta a:hover{background:var(--tb-gold-200);color:var(--tb-navy-900)}

/* ============================================================ BUTTONS */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:.01em;
  min-height:48px;padding:14px 24px;border-radius:var(--radius);border:1px solid transparent;
  cursor:pointer;line-height:1.2;max-width:100%;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),
             border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn--primary-light{background:#fff;color:var(--tb-navy-800);border-color:#fff}
.btn--primary-light:hover{background:var(--tb-gold-200);border-color:var(--tb-gold-200)}
.btn--secondary-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.42)}
.btn--secondary-light:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn--primary{background:var(--tb-navy-800);color:#fff;border-color:var(--tb-navy-800)}
.btn--primary:hover{background:var(--tb-navy-900);border-color:var(--tb-navy-900)}
.btn--ghost{background:transparent;color:var(--fg-1);border-color:var(--border-1)}
.btn--ghost:hover{border-color:var(--border-strong);background:var(--bg-surface)}

/* Tertiary text action — used to end sections without shouting */
.textlink{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;
  font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--fg-1);
}
.textlink span{border-bottom:1px solid var(--accent);padding-bottom:2px;transition:border-color var(--dur) var(--ease)}
.textlink:hover span{border-bottom-color:var(--fg-1)}
.textlink__arrow{transition:transform var(--dur) var(--ease)}
.textlink:hover .textlink__arrow{transform:translateX(3px)}

/* Section-closing action row */
.section-cta{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-7);
  margin-top:var(--s-9);padding-top:var(--s-6);border-top:1px solid var(--border-1);
}
.section-cta__note{font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--fg-2);flex:1 1 260px;margin:0}

/* ============================================================ 6. HERO */
.hero{background:var(--tb-navy-900);color:#fff;position:relative;overflow:hidden}
.hero__grid-bg{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 30% 45%,#000 10%,transparent 78%);
          mask-image:radial-gradient(ellipse 80% 70% at 30% 45%,#000 10%,transparent 78%);
}
.hero__inner{position:relative;display:grid;grid-template-columns:1fr;gap:var(--s-9);padding-block:var(--s-9) var(--s-11)}
@media(min-width:1024px){
  .hero__inner{grid-template-columns:1.25fr 1fr;gap:var(--s-12);padding-block:var(--s-11) var(--s-12);min-height:calc(88dvh - var(--site-header-h,64px));align-items:center}
}
.hero__copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
.hero__title{margin-top:var(--s-5);color:#fff;max-width:16ch}
.hero__title em{font-weight:300;font-style:italic;color:var(--tb-gold-200)}
.hero__tagline{
  margin-top:var(--s-4);font-family:var(--font-display);font-weight:300;font-style:italic;
  font-size:clamp(19px,2vw,25px);line-height:1.25;letter-spacing:-0.01em;color:var(--tb-gold-200);
}
.hero__lead{margin-top:var(--s-6);font-family:var(--font-serif);font-size:clamp(16px,1.55vw,18px);line-height:1.7;color:var(--tb-navy-200);max-width:58ch}
.hero__firm-link{color:#fff;border-bottom:1px solid rgba(232,217,180,.55);transition:border-color var(--dur) var(--ease)}
.hero__firm-link:hover{border-bottom-color:var(--tb-gold-200)}
.hero__ctas{margin-top:var(--s-8);display:flex;flex-wrap:wrap;gap:var(--s-3)}
.hero__meta{
  margin-top:var(--s-9);padding-top:var(--s-6);border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-6);
  font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--tb-navy-300);
}
.hero__meta .status{color:var(--tb-gold-500);display:inline-flex;align-items:center;gap:8px}
.hero__meta .status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

.hero__aside{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}
@media(min-width:560px) and (max-width:1023px){
  .hero__aside{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:stretch}
  .portrait{max-height:none}
  .index-card{display:flex;flex-direction:column;justify-content:center}
}
@media(min-width:1024px){.hero__aside{border-left:1px solid rgba(255,255,255,.09);padding-left:var(--s-9)}}
.portrait{position:relative;margin:0;width:100%;aspect-ratio:1/1;max-height:480px;background:linear-gradient(180deg,var(--tb-navy-800),var(--tb-navy-700));border:1px solid rgba(255,255,255,.15);overflow:hidden}
@media(min-width:560px){.portrait{aspect-ratio:4/5}}
@media(min-width:1024px){.portrait{aspect-ratio:1/1;max-height:none}}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.portrait figcaption{
  position:absolute;inset:auto 0 0 0;padding:28px 18px 12px;
  background:linear-gradient(180deg,transparent,rgba(0,19,44,.82));
  font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--tb-navy-200);
}
.index-card{padding:var(--s-7) var(--s-7) var(--s-6);border:1px solid rgba(255,255,255,.14);background:rgba(0,19,44,.45)}
.index-card__label{font-family:var(--font-sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--tb-gold-500);font-weight:500;margin-bottom:var(--s-5)}
.index-card__quote{font-family:var(--font-display);font-weight:300;font-size:clamp(23px,2.4vw,29px);line-height:1.24;color:#fff;letter-spacing:-0.015em}
.index-card__quote em{font-style:italic;color:var(--tb-gold-200)}
.index-card__foot{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid rgba(255,255,255,.10);font-family:var(--font-mono);font-size:11px;color:var(--tb-navy-300);letter-spacing:.04em}

/* ============================================================ 7. COMPANIES */
.companies{padding-block:clamp(56px,6vw,88px);border-block:1px solid var(--border-2);background:var(--bg-page)}
.companies__head{display:grid;grid-template-columns:1fr;gap:var(--s-5);margin-bottom:var(--s-8)}
@media(min-width:1024px){.companies__head{grid-template-columns:minmax(280px,.85fr) 1.5fr;gap:var(--s-11);margin-bottom:var(--s-9);align-items:end}}
.companies__big{margin:0;font-family:var(--font-display);font-weight:400;font-style:italic;font-size:clamp(34px,4.6vw,56px);line-height:1.02;letter-spacing:-0.025em;color:var(--tb-navy-800);text-wrap:balance}
.companies__sub{display:block;margin-top:var(--s-3);text-wrap:balance;max-width:34ch;font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);font-weight:500}
.companies__lede{font-family:var(--font-serif);font-size:clamp(15px,1.4vw,17px);line-height:1.68;color:var(--fg-2);max-width:52ch}

.companies__grid{display:grid;grid-template-columns:1fr;gap:var(--s-3)}
@media(min-width:560px){.companies__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.companies__grid{grid-template-columns:repeat(3,1fr);gap:var(--s-4)}}

.company-card{
  position:relative;display:flex;flex-direction:column;gap:var(--s-2);
  padding:var(--s-6) var(--s-5) var(--s-5);
  background:var(--bg-surface);border:1px solid var(--border-1);border-radius:var(--radius-lg);
  color:inherit;box-shadow:var(--shadow-card);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.company-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.company-card:active{transform:translateY(0)}
.company-card__brand{font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.15;color:var(--tb-navy-800);letter-spacing:-0.01em;padding-right:22px}
.company-card__brand--current{color:var(--accent-ink)}
.company-card__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.company-card__role{font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--tb-navy-700);text-transform:uppercase}
.company-card__period{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--fg-3)}
.company-card__loc{font-family:var(--font-serif);font-size:14px;line-height:1.5;color:var(--fg-2);margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border-2)}
.company-card__cue{
  position:absolute;top:var(--s-6);right:var(--s-5);
  font-family:var(--font-sans);font-size:13px;color:var(--tb-ink-400);
  transition:color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.company-card:hover .company-card__cue{color:var(--accent-ink);transform:translate(2px,-2px)}
.company-card--current{border-color:var(--accent);background:linear-gradient(180deg,var(--bg-raise) 0%,var(--bg-surface) 58%)}
.company-card--current .company-card__role{color:var(--accent-ink)}

/* ============================================================ 8. ABOUT */
.profile__opener{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:clamp(22px,2.4vw,28px);line-height:1.34;color:var(--tb-navy-800);letter-spacing:-0.005em;margin-bottom:var(--s-7)}
.profile__body p{margin-bottom:var(--s-5);font-family:var(--font-serif);font-size:17px;line-height:1.76;color:var(--fg-1);max-width:66ch}
.profile__body p.muted{color:var(--fg-2)}
.profile__intro{font-family:var(--font-serif);font-style:italic;font-size:16px;line-height:1.7;color:var(--fg-2);max-width:38ch;margin-top:var(--s-6)}
.profile__meta{margin-top:var(--s-7);padding-top:var(--s-6);border-top:1px solid var(--border-1);display:grid;grid-template-columns:auto 1fr;row-gap:10px;column-gap:var(--s-5);font-family:var(--font-sans);font-size:13px}
.profile__meta dt{color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;font-size:10px;padding-top:3px}
.profile__meta dd{margin:0;color:var(--fg-1)}
.profile__sign{
  margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--border-2);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2) var(--s-4);
}
.profile__sign-name{font-family:var(--font-display);font-style:italic;font-size:26px;line-height:1;color:var(--tb-navy-800)}
.profile__sign-role{font-family:var(--font-sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3)}

/* Pillars run the full section width, below the two columns */
.pillars{
  margin-top:var(--s-10);padding-top:var(--s-7);border-top:1px solid var(--border-1);
  display:grid;grid-template-columns:1fr;gap:var(--s-6);
}
@media(min-width:720px){.pillars{grid-template-columns:repeat(3,1fr);gap:var(--s-9)}}
.pillar__num{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--accent-ink);margin-bottom:10px}
.pillar__title{font-family:var(--font-display);font-weight:400;font-size:23px;line-height:1.2;letter-spacing:-0.01em;color:var(--tb-navy-800);margin-bottom:8px}
.pillar__body{font-family:var(--font-serif);font-size:15.5px;line-height:1.6;color:var(--fg-2);max-width:40ch}

/* ============================================================ 9. IMPACT */
.impact-grid{display:grid;grid-template-columns:1fr;border-top:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18)}
@media(min-width:520px){.impact-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.impact-grid{grid-template-columns:repeat(3,1fr)}}
.stat{
  padding:var(--s-7) var(--s-6) var(--s-6);
  border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);
  display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-5);
}
@media(min-width:1024px){.stat{min-height:236px}}
.stat__num{font-family:var(--font-display);font-weight:300;font-size:clamp(44px,5.4vw,76px);line-height:1;letter-spacing:-0.025em;color:#fff;font-feature-settings:"lnum" 1,"tnum" 1}
.stat__label{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--tb-gold-500);margin-bottom:10px}
.stat__note{font-family:var(--font-serif);font-size:14px;line-height:1.58;color:var(--tb-navy-200)}
.impact-foot{margin-top:var(--s-7);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--tb-navy-300)}

/* ============================================================ 10. WORK / ACTS */
.acts{display:grid;gap:var(--s-10)}
@media(min-width:1024px){.acts{gap:var(--s-12)}}
.act{display:grid;grid-template-columns:1fr;gap:var(--s-6);padding-top:var(--s-7);border-top:1px solid var(--border-1)}
.act:first-child{padding-top:0;border-top:0}
@media(min-width:1024px){.act{grid-template-columns:minmax(260px,.8fr) 1.9fr;gap:var(--s-11);align-items:start}}
@media(min-width:1024px){.act__head{position:sticky;top:calc(var(--site-header-h,64px) + var(--s-8))}}
.act__num{font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink);font-weight:600;margin-bottom:6px}
.act__year{font-family:var(--font-mono);font-size:12px;color:var(--fg-3);letter-spacing:.04em;margin-bottom:var(--s-4)}
.act__title{font-family:var(--font-display);font-weight:400;font-size:clamp(26px,2.7vw,34px);line-height:1.1;letter-spacing:-0.015em;color:var(--tb-navy-800);margin-bottom:var(--s-3);text-wrap:balance}
.act__lede{font-family:var(--font-serif);font-size:15px;line-height:1.65;color:var(--fg-2);max-width:42ch}
.act--current .act__title::after{
  content:"";display:inline-block;width:9px;height:9px;border-radius:50%;
  background:var(--accent);margin-left:10px;vertical-align:middle;
  animation:livedot 2.6s ease-in-out infinite;
}
@keyframes livedot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}

.act__cards{display:grid;grid-template-columns:1fr;gap:var(--s-4);min-width:0}
@media(min-width:760px){.act__cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}

.ac{
  background:var(--bg-surface);border:1px solid var(--border-1);border-radius:var(--radius-lg);
  padding:var(--s-6) var(--s-5);box-shadow:var(--shadow-card);min-width:0;
  display:flex;flex-direction:column;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.ac:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.ac:target{border-color:var(--accent);box-shadow:0 0 0 3px rgba(184,145,73,.22)}
.ac__brand{font-family:var(--font-display);font-weight:500;font-size:21px;line-height:1.15;letter-spacing:-0.005em;color:var(--tb-navy-800);margin-bottom:6px}
.ac__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tb-navy-700);margin-bottom:var(--s-3)}
.ac__meta .ac__sep{color:var(--border-1);font-weight:400}
.ac__meta .ac__where{color:var(--fg-3);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:400}
.ac__why{font-family:var(--font-serif);font-size:14.5px;line-height:1.6;color:var(--fg-2);margin-bottom:var(--s-4)}
.ac__points{list-style:none;margin:0;padding:var(--s-4) 0 0;border-top:1px solid var(--border-2);display:grid;gap:8px}
.ac__points li{font-family:var(--font-serif);font-size:14px;line-height:1.55;color:var(--fg-2);padding-left:18px;position:relative}
.ac__points li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--accent-ink)}
.ac--feature{border-color:var(--border-strong)}
.ac--current{border-color:var(--accent);background:linear-gradient(180deg,var(--bg-raise) 0%,var(--bg-surface) 68%)}

/* ============================================================ 11. SERVICES */
.practice-grid{display:grid;grid-template-columns:1fr;border-top:1px solid var(--border-1);border-left:1px solid var(--border-1);background:var(--bg-surface)}
@media(min-width:640px){.practice-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.practice-grid{grid-template-columns:repeat(3,1fr)}}
.practice{
  padding:var(--s-7) var(--s-6);border-right:1px solid var(--border-1);border-bottom:1px solid var(--border-1);
  display:flex;flex-direction:column;transition:background var(--dur) var(--ease);
}
@media(min-width:1024px){.practice{min-height:272px}}
.practice:hover{background:var(--bg-page)}
.practice__num{font-family:var(--font-mono);font-size:11px;color:var(--accent-ink);margin-bottom:var(--s-4);letter-spacing:.04em}
.practice__title{font-family:var(--font-display);font-weight:400;font-size:24px;line-height:1.15;letter-spacing:-0.01em;color:var(--tb-navy-800);margin-bottom:var(--s-3)}
.practice__body{font-family:var(--font-serif);font-size:15px;line-height:1.62;color:var(--fg-2);max-width:38ch}
.practice__keywords{
  margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--border-2);
  font-family:var(--font-sans);font-size:11px;letter-spacing:.05em;color:var(--fg-3);
  display:flex;flex-wrap:wrap;gap:4px 10px;
}
.practice__keywords .sep{color:var(--border-1)}

/* ============================================================ 12. PULL QUOTE */
.pullquote-section{padding-block:clamp(64px,7vw,110px)}
.pullquote__label{font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent-ink);font-weight:500;margin-bottom:var(--s-6)}
.pullquote{
  font-family:var(--font-display);font-weight:300;font-style:italic;
  font-size:clamp(24px,3.2vw,42px);line-height:1.26;letter-spacing:-0.015em;color:var(--tb-navy-800);
  border-left:2px solid var(--accent);padding:var(--s-2) 0 var(--s-2) var(--s-6);max-width:22ch;
  max-inline-size:920px;text-wrap:pretty;
}
@media(min-width:720px){.pullquote{padding-left:var(--s-8)}}

/* ============================================================ 13. TIMELINE */
.timeline{list-style:none;position:relative;display:grid;gap:var(--s-5);margin:0;padding:var(--s-2) 0}
.timeline::before{content:"";position:absolute;left:14px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent 0,var(--border-1) 8%,var(--border-1) 92%,transparent 100%)}
.timeline__item{position:relative;padding-left:var(--s-8)}
.timeline__item::before{content:"";position:absolute;left:9px;top:9px;width:11px;height:11px;border-radius:50%;background:var(--bg-page);border:2px solid var(--border-strong);z-index:1}
.timeline__item--accent::before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px rgba(184,145,73,.18)}
.timeline__item--current::before{background:var(--border-strong);box-shadow:0 0 0 4px rgba(1,31,67,.16)}
.timeline__year{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--accent-ink);margin-bottom:8px;font-weight:500}
.timeline__card{background:var(--bg-surface);border:1px solid var(--border-1);border-radius:var(--radius-lg);padding:var(--s-5);box-shadow:var(--shadow-card);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.timeline__item:hover .timeline__card{border-color:var(--border-strong);box-shadow:var(--shadow-lift)}
.timeline__item--accent .timeline__card{border-color:var(--accent)}
.timeline__item--current .timeline__card{border-color:var(--border-strong);background:linear-gradient(180deg,var(--bg-raise) 0%,var(--bg-surface) 68%)}
.timeline__tag{display:inline-block;margin-bottom:8px;font-family:var(--font-sans);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}
.timeline__what{font-family:var(--font-display);font-weight:500;font-size:clamp(17px,1.4vw,19px);line-height:1.24;color:var(--tb-navy-800);letter-spacing:-0.005em;margin-bottom:8px;text-wrap:balance}
.timeline__detail{font-family:var(--font-serif);font-size:13.5px;line-height:1.6;color:var(--fg-2)}
@media(min-width:1180px){
  .timeline{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding-top:var(--s-6);align-items:stretch}
  .timeline::before{left:0;right:0;top:38px;bottom:auto;height:1px;width:auto;background:linear-gradient(90deg,transparent 0,var(--border-1) 4%,var(--border-1) 96%,transparent 100%)}
  .timeline__item{display:flex;flex-direction:column;padding:0 var(--s-2);height:100%}
  .timeline__item::before{left:50%;top:33px;transform:translateX(-50%)}
  .timeline__year{text-align:center;margin-bottom:var(--s-8);min-height:16px;font-size:11px;white-space:nowrap}
  .timeline__card{flex:1 1 auto;margin-top:var(--s-2);padding:var(--s-5) var(--s-5) var(--s-6)}
}

/* ============================================================ 14. CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--s-9);align-items:start}
@media(min-width:1024px){.contact-grid{grid-template-columns:1.35fr 1fr;gap:var(--s-11)}}
.contact-title em{color:var(--tb-gold-200);font-weight:300;font-style:italic}
.contact-lead{margin-top:var(--s-6);font-family:var(--font-serif);font-size:clamp(16px,1.6vw,18px);line-height:1.7;color:var(--tb-navy-200);max-width:58ch}
.contact-ctas{margin-top:var(--s-7);display:flex;gap:var(--s-3);flex-wrap:wrap;max-width:100%}
.contact-reply{margin-top:var(--s-5);font-family:var(--font-sans);font-size:12px;letter-spacing:.05em;color:var(--tb-navy-300)}

.directory{border:1px solid rgba(255,255,255,.18);padding:var(--s-6) var(--s-6) var(--s-5);background:rgba(0,19,44,.55);max-width:100%;overflow:hidden}
.directory__label{font-family:var(--font-sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--tb-gold-500);font-weight:500;margin-bottom:var(--s-5)}
.directory__rows{display:grid;gap:var(--s-4);margin-bottom:var(--s-4)}
.directory__row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid rgba(255,255,255,.10)}
.directory__row dt{font-family:var(--font-sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--tb-navy-300);padding-top:4px}
.directory__row dd{margin:0;min-width:0;font-family:var(--font-serif);font-size:15px;color:#fff;line-height:1.45;overflow-wrap:break-word}
.directory__row dd.mono{font-family:var(--font-mono);font-size:13.5px}
.directory__row dd a{display:inline-block;max-width:100%;min-height:28px;border-bottom:1px solid rgba(255,255,255,.4);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.directory__row dd a:hover{border-bottom-color:var(--tb-gold-200);color:var(--tb-gold-200)}
.directory__row dd.email a{font-size:14px;letter-spacing:-0.005em}
.directory__foot{font-family:var(--font-mono);font-size:10px;color:var(--tb-navy-300);letter-spacing:.04em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}
.directory__foot .available{color:var(--tb-gold-500)}

/* ============================================================ 15. FOOTER */
.site-footer{background:var(--tb-navy-900);color:#fff;padding:var(--s-9) 0 var(--s-6);border-top:1px solid rgba(255,255,255,.08)}
.site-footer__cols{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-7) var(--s-6);padding-bottom:var(--s-7);border-bottom:1px solid rgba(255,255,255,.10)}
@media(min-width:900px){.site-footer__cols{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--s-8)}}
.site-footer .wordmark{flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:4px}
.site-footer .wordmark__name{color:#fff}
.site-footer .wordmark__role{white-space:normal;overflow:visible;text-overflow:clip;display:inline-block;max-width:100%}
@media(max-width:620px){.site-footer .wordmark__role{display:inline-block}}
.site-footer__about{font-family:var(--font-serif);font-size:14.5px;line-height:1.65;color:var(--tb-navy-200);margin-top:var(--s-4);max-width:38ch}
.site-footer h2{font-family:var(--font-sans);font-size:var(--fs-micro);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--tb-navy-300);margin-bottom:var(--s-4)}
.site-footer ul{list-style:none;display:grid;gap:2px}
.site-footer li{font-family:var(--font-serif);font-size:14.5px;color:#fff}
.site-footer li a,.site-footer li span{display:inline-flex;align-items:center;min-height:34px}
.site-footer .wordmark__role{min-height:26px;display:inline-flex;align-items:center}
.site-footer li a{border-bottom:1px solid rgba(255,255,255,.18);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.site-footer li a:hover{border-bottom-color:var(--tb-gold-200);color:var(--tb-gold-200)}
.site-footer__legal{padding-top:var(--s-5);display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-6);font-family:var(--font-sans);font-size:11px;color:var(--tb-navy-300);letter-spacing:.05em}
.to-top{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--tb-navy-200);transition:color var(--dur) var(--ease)}
.to-top:hover{color:#fff}

/* ============================================================ 16. DARK THEME */
[data-theme="dark"]{
  color-scheme:dark;
  --bg-page:#0B1933;
  --bg-surface:#12244A;
  --bg-alt:#0A1A33;
  --bg-raise:#1A2C51;
  --fg-1:#ECEEF1;
  --fg-2:#C2CFE0;
  --fg-3:#9FB2CA;
  --border-1:rgba(255,255,255,.16);
  --border-2:rgba(255,255,255,.08);
  --border-strong:var(--tb-gold-500);
  --accent-ink:#D9B676;
  --ring:var(--tb-gold-200);
  --shadow-card:0 1px 2px rgba(0,0,0,.35);
  --shadow-lift:var(--shadow-lift-dark);
}
[data-theme="dark"] .h2,
[data-theme="dark"] .companies__big,
[data-theme="dark"] .profile__opener,
[data-theme="dark"] .profile__sign-name,
[data-theme="dark"] .pillar__title,
[data-theme="dark"] .practice__title,
[data-theme="dark"] .pullquote,
[data-theme="dark"] .act__title,
[data-theme="dark"] .ac__brand,
[data-theme="dark"] .ac__meta,
[data-theme="dark"] .company-card__brand,
[data-theme="dark"] .company-card__role,
[data-theme="dark"] .timeline__what{color:var(--fg-1)}
[data-theme="dark"] .editorial-rule{border-top-color:var(--accent)}
[data-theme="dark"] .eyebrow{color:var(--accent)}
[data-theme="dark"] .company-card__brand--current{color:var(--accent)}
[data-theme="dark"] .section--highlight{background:linear-gradient(180deg,#102243 0%,var(--bg-page) 62%);border-top-color:var(--border-2)}
[data-theme="dark"] .section--alt{background:var(--bg-alt)}
[data-theme="dark"] .section--dark,
[data-theme="dark"] .hero,
[data-theme="dark"] .site-footer{background:#00132C}
[data-theme="dark"] .timeline__item::before{background:var(--bg-page);border-color:var(--accent)}
[data-theme="dark"] .timeline__item--current::before{background:var(--accent)}
[data-theme="dark"] .ac--feature{border-color:var(--accent)}
[data-theme="dark"] .practice:hover{background:var(--bg-alt)}
[data-theme="dark"] .practice-grid{background:var(--bg-surface)}
[data-theme="dark"] .btn--primary{background:var(--tb-gold-200);color:var(--tb-navy-900);border-color:var(--tb-gold-200)}
[data-theme="dark"] .btn--primary:hover{background:#fff;border-color:#fff}
[data-theme="dark"] .btn--ghost{color:var(--fg-1);border-color:var(--border-1)}
[data-theme="dark"] .btn--ghost:hover{border-color:var(--accent);background:var(--bg-surface)}
[data-theme="dark"] .textlink{color:var(--fg-1)}
[data-theme="dark"] .textlink:hover span{border-bottom-color:var(--fg-1)}
[data-theme="dark"] ::selection{background:var(--tb-gold-500);color:var(--tb-navy-900)}

/* ============================================================ MOTION */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ---- Small-screen density: same structure, tighter rhythm ---- */
@media(max-width:639px){
  .acts{gap:var(--s-9)}
  .act{padding-top:var(--s-6);gap:var(--s-5)}
  .stat{padding:var(--s-6) var(--s-5);gap:var(--s-4)}
  .practice{padding:var(--s-6) var(--s-5)}
  .practice__keywords{margin-top:var(--s-5);padding-top:var(--s-3)}
  .section-cta{margin-top:var(--s-7);padding-top:var(--s-5)}
  .pillars{margin-top:var(--s-8);padding-top:var(--s-6)}
  .hero__ctas .btn,.contact-ctas .btn{flex:1 1 auto}
  .index-card{padding:var(--s-6) var(--s-6) var(--s-5)}
  .directory{padding:var(--s-5)}
}
@media(max-width:419px){
  .site-footer__cols{grid-template-columns:1fr}
}

/* ============================================================ 17. PRINT */
@media print{
  .site-header,.mobile-menu,.skip-link,.theme-toggle,.menu-toggle,.hero__grid-bg,.section-cta,.to-top{display:none!important}
  body{padding-top:0;background:#fff;color:#000;font-size:11pt}
  .hero,.section--dark,.site-footer{background:#fff!important;color:#000!important}
  .hero *,.section--dark *,.site-footer *{color:#000!important}
  .section{padding-block:18pt}
  .ac,.company-card,.timeline__card,.practice{break-inside:avoid;box-shadow:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#444}
}
