/* ============================================================
   TILT — v3 "Index" UI
   Brand-aligned: dark, mint, DM Sans + Lora, sharp corners
   ============================================================ */

:root {
  --g:   #27eaa6;
  --g-d: #1bb880;
  --g-light: #5ef2bc;
  --bk:  #121212;
  --bk1: #191919;
  --bk2: #252525;
  --wh:  #fefefe;
  --gr:  rgba(254,254,254,0.42);
  --gr2: rgba(254,254,254,0.60);
  --line: rgba(255,255,255,0.10);
  --line-soft: rgba(255,255,255,0.06);
  --mono: 'DM Sans', sans-serif;
  --serif: 'Lora', serif;
  --rail: 268px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background: #121212; }
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--bk); color: var(--wh);
  -webkit-font-smoothing: antialiased; line-height: 1.5;
  font-feature-settings: 'ss01' on;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.wm { font-style: normal; text-transform: uppercase; font-family: 'DM Sans', sans-serif; font-weight: 700; letter-spacing: -0.045em; }
.wm i { font-style: italic; }
::selection { background: var(--g); color: #0a0a0a; }

/* ── scroll progress ── */
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--g); z-index: 300; }

/* ── TOP NAV ── */
nav {
  position: sticky; top: 0; z-index: 80;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 56px; background: rgba(15,15,15,0.72); backdrop-filter: blur(20px);
}
.nav-logo { height: 44px; }
/* boxed nav (Gates-Notes style) — inner pages */
.box-nav { display: block; position: fixed; top: 0; left: 0; right: 0; z-index: 60; max-width: 1480px; margin: 0 auto; padding: 14px 32px; background: transparent; backdrop-filter: none; border-bottom: none; box-shadow: none; }
.box-nav .bn-bar { display: flex; align-items: stretch; height: 60px; overflow: hidden; background: #191919; border: 1px solid var(--line); }
.box-nav .bn-brand { display: flex; align-items: center; padding: 0 24px; }
.box-nav .bn-brand img { height: 44px; display: block; }
.box-nav .bn-center { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; }
.box-nav .bn-center a { position: relative; font-size: 14px; color: var(--gr2); text-decoration: none; padding: 0 22px; line-height: 58px; transition: color .2s; }
.box-nav .bn-center a:hover { color: var(--wh); }
.box-nav .bn-center a.active { color: var(--wh); }
.box-nav .bn-center a.active::after { content: ''; position: absolute; left: 22px; right: 22px; bottom: 12px; height: 2px; background: var(--g); }
.box-nav .bn-end { display: flex; align-items: center; padding: 0 24px; font-size: 13px; font-weight: 600; letter-spacing: .02em; color: #121212; background: var(--g); text-decoration: none; white-space: nowrap; }
.box-nav .bn-end:hover { background: var(--wh); }
.box-nav .bn-burger { display: none; }

/* shared mobile nav — burger + full-screen overlay (homepage .hx-bar + inner .bn-bar) */
.mnav-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 60px; flex-shrink: 0; background: var(--g); border: none; cursor: pointer; align-items: center; }
.mnav-burger span { width: 22px; height: 2px; background: #121212; transition: transform .3s, opacity .2s; }
.mnav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mnav-burger.open span:nth-child(2) { opacity: 0; }
.mnav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mnav-overlay { position: fixed; inset: 0; z-index: 120; background: rgba(15,15,15,0.97); backdrop-filter: blur(8px); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.mnav-overlay.open { opacity: 1; pointer-events: auto; }
.mnav-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(80vw, 360px); background: #191919; border-left: 1px solid var(--line); display: flex; flex-direction: column; padding: 92px 0 32px; transform: translateX(100%); transition: transform .34s cubic-bezier(.16,1,.3,1); }
.mnav-overlay.open .mnav-panel { transform: none; }
.mnav-panel a { font-size: 20px; font-weight: 500; color: var(--wh); padding: 20px 32px; border-top: 1px solid var(--line-soft); transition: color .2s, background .2s; }
.mnav-panel a:first-child { border-top: none; }
.mnav-panel a.active { color: var(--g); }
.mnav-panel a:active { background: rgba(255,255,255,0.04); }
.mnav-panel .mnav-cta { margin: 24px 32px 0; padding: 16px 24px; background: var(--g); color: #121212; font-weight: 600; text-align: center; border: none; }
@media (max-width: 760px) {
  .box-nav { padding: 12px 16px; }
  .box-nav .bn-center { display: none; }
  .box-nav .bn-end { display: none; }
  .box-nav .bn-brand { flex: 1; }
  .box-nav .mnav-burger { display: flex; }
}
.nav-links { display: flex; align-items: center; gap: 8px; }
.nav-links a.nl {
  display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 16px;
  font-size: 14px; color: var(--gr2); transition: color 180ms;
}
.nav-links a.nl .n { font-family: var(--mono); font-size: 10px; color: var(--g); }
.nav-links a.nl:hover { color: var(--wh); }
.nav-links a.nl.active { color: var(--wh); }
.nav-cta {
  margin-left: 14px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: 0.03em;
  color: #121212; background: var(--g); padding: 10px 16px; white-space: nowrap; transition: background 180ms;
}
.nav-cta:hover { background: var(--g-light); }
.nav-burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 6px; }
.nav-burger span { width: 22px; height: 2px; background: var(--wh); transition: 0.3s; }

/* nav scroll behaviour + link underline */
nav { transition: transform .4s cubic-bezier(.16,1,.3,1), background .3s, border-color .3s, padding .3s; }
nav.nav-solid { background: rgba(18,18,18,0.86); backdrop-filter: blur(14px); }
nav.nav-hidden { transform: translateY(-100%); }
.nl { position: relative; }
.nl::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -3px; height: 1px; background: var(--g); transition: right .32s cubic-bezier(.16,1,.3,1); }
.nl:hover::after { right: 0; }
.hero-cta, .nav-cta, .cta-btn { will-change: auto; }
.hero-cta, .nav-cta { transition: background .2s; }

/* mobile top bar (unused on desktop) */
.topbar { display: none; }

/* ── MAIN ── */
.main { max-width: 1480px; margin: 0 auto; min-height: 100vh; }
.main.people-bg { position: relative; }
.page-texture { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.page-texture img { position: fixed; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.1; filter: grayscale(100%) contrast(1.1); }
.main.people-bg > * { position: relative; z-index: 1; }
.kicker { font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--g); }
.kicker.dim { color: var(--gr); }

/* ── BENTO GRID ── */
.bento { display: grid; grid-template-columns: repeat(12, 1fr); border-top: 1px solid var(--line); }
.cell { grid-column: span 4; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 60px 56px; position: relative; min-height: 240px; display: flex; flex-direction: column; }
.cell:nth-child(12n) { border-right: none; }
.bento.b3 .cell:nth-child(3n) { border-right: none; }
.cell.s12 { grid-column: span 12; border-right: none; }
.cell.s8 { grid-column: span 8; }
.cell.s6 { grid-column: span 6; }
.cell.s5 { grid-column: span 5; }
.cell.s7 { grid-column: span 7; }
.cell.s3 { grid-column: span 3; }
.cell.edge-r { border-right: none; }

/* image cell (used sparingly) */
.cell.media { padding: 0; min-height: 320px; overflow: hidden; }
.cell.media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(35%) contrast(1.05) brightness(0.9); transition: transform 1.2s cubic-bezier(0.16,1,0.3,1), filter 0.6s; }
.cell.media:hover img { transform: scale(1.05); filter: grayscale(0%) contrast(1.06); }
.cell.media .cap { position: absolute; left: 0; bottom: 0; padding: 18px 22px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wh); background: linear-gradient(0deg, rgba(10,10,10,0.85), transparent); width: 100%; }

/* masthead */
.masthead { padding: 56px 56px; min-height: 0; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
.masthead h1 { font-size: clamp(46px, 5.4vw, 84px); font-weight: 700; letter-spacing: -0.022em; line-height: 0.98; margin-top: 24px; }
.masthead h1 .accent { color: var(--g); }
.masthead .sub { margin-top: 30px; max-width: 620px; font-size: 19px; font-weight: 300; color: var(--gr2); line-height: 1.6; }
.masthead .sub strong { color: var(--wh); font-weight: 500; }

/* masthead split (text + image) */
.mh-split { display: grid; grid-template-columns: 1.1fr 0.9fr; border-bottom: 1px solid var(--line); }
.mh-split .masthead { border-bottom: none; border-right: 1px solid var(--line); }
.mh-img { position: relative; overflow: hidden; min-height: 440px; }
.mh-img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(30%) contrast(1.06) brightness(0.82); }
.mh-img .cap { position: absolute; left: 0; bottom: 0; width: 100%; padding: 18px 24px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wh); background: linear-gradient(0deg, rgba(10,10,10,0.9), transparent); }

/* ── FULL-BLEED HERO (home, undivided first fold) ── */
.hero { position: relative; min-height: 84vh; display: flex; align-items: flex-end; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-img { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 72%; filter: grayscale(100%) contrast(1.06) brightness(0.95); will-change: transform; }
@media (prefers-reduced-motion: no-preference) { .hero-img img { animation: heroZoom 24s ease-in-out infinite alternate; } }
@keyframes heroZoom { from { transform: scale(1.02); } to { transform: scale(1.13); } }
.hero-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,15,15,0.7) 0%, rgba(15,15,15,0.34) 55%, rgba(15,15,15,0.2) 100%), linear-gradient(180deg, rgba(15,15,15,0.1) 0%, rgba(15,15,15,0) 40%, rgba(15,15,15,0.6) 100%); }
.hero-inner { position: relative; z-index: 2; padding: 60px 56px 116px; width: 100%; }
.hero-inner h1, .hero-inner .sub { text-shadow: 0 2px 24px rgba(10,12,10,0.55); }
.hero-inner .sub { color: rgba(255,255,255,0.92); }
.hero .kicker { margin-bottom: 24px; }
.hero h1 { font-size: clamp(48px, 7vw, 98px); font-weight: 700; letter-spacing: -0.022em; line-height: 0.98; }
.hero h1 .accent { color: var(--g); }
.hero .sub { margin-top: 28px; max-width: 600px; font-size: 19px; font-weight: 300; color: rgba(254,254,254,0.84); line-height: 1.6; }
.hero .sub strong { color: var(--wh); font-weight: 500; }
.hero-cta { margin-top: 34px; white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: #121212; background: var(--g); padding: 16px 26px; transition: gap 200ms, background 200ms; }
.hero-cta:hover { background: var(--g-light); }
.scroll-cue { position: absolute; right: 56px; bottom: 56px; z-index: 2; font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(254,254,254,0.55); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.scroll-cue .bar { width: 1px; height: 40px; background: linear-gradient(var(--g), transparent); }

/* ── QUOTES ── */
.q-head { padding: 88px 56px 64px; border-bottom: 1px solid var(--line); }
.q-head .tag { margin-bottom: 18px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--g); }
.q-head h2 { font-size: clamp(30px, 3.6vw, 48px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.02; max-width: 1280px; text-wrap: pretty; }
.q-head h2 .accent { color: var(--g); }
@media (max-width: 700px){
  .q-head { padding: 72px 24px 28px; }
  .q-head h2 { font-size: 27px; line-height: 1.14; letter-spacing: -0.02em; }
  .testimonials .q-head { padding: 84px 24px 24px; }
  .testimonials .q-head h2 .accent { text-decoration-thickness: 3px; text-underline-offset: 4px; }
}
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); }
.qcell { padding: 52px 48px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; min-height: 360px; }
.qcell:nth-child(3n) { border-right: none; }
.qcell .qmark { font-family: var(--serif); font-size: 64px; line-height: 0.5; color: var(--g); height: 30px; }
.qcell .qtheme { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--g); margin-bottom: 16px; }
.qcell .qtext { font-family: var(--serif); font-style: italic; font-size: 19px; font-weight: 400; line-height: 1.46; color: rgba(254,254,254,0.9); flex: 1; }
.qcell .qdraft { align-self: flex-start; margin-top: 22px; font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gr); border: 1px solid var(--line); padding: 4px 11px; }
.qcell .qby { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line-soft); }
.qcell .qname { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.qcell .qrole { font-family: var(--mono); font-size: 11px; color: var(--gr); margin-top: 5px; letter-spacing: 0.02em; }
@media (max-width: 900px) { .quotes { grid-template-columns: 1fr; } .qcell { border-right: none !important; } }

/* testimonials as a white light-surface section */
.testimonials { background: var(--wh); color: var(--bk); }
.testimonials .q-head { border-bottom: none; padding: 104px 56px 30px; }
.testimonials .q-head .tag { color: #515151; }
.testimonials .q-head h2 { color: var(--bk); }
.testimonials .q-head h2 .accent { color: var(--bk); text-decoration: underline; text-decoration-color: var(--g); text-decoration-thickness: 4px; text-underline-offset: 6px; text-decoration-skip-ink: none; }
.testimonials .qcell { border-right: 1px solid rgba(0,0,0,0.12); border-bottom: 1px solid rgba(0,0,0,0.12); }
.testimonials .qcell:nth-child(3n) { border-right: none; }
.testimonials .qmark { color: #27eaa6; }
.testimonials .qtheme { color: #515151; }
.testimonials .qtext { color: #1a1a1a; }
.testimonials .qdraft { color: #515151; border-color: rgba(0,0,0,0.18); }
.testimonials .qby { border-top: 1px solid rgba(0,0,0,0.10); }
.testimonials .qname { color: var(--bk); }
.testimonials .qrole { color: #515151; }

/* E / F testimonial layouts (used by index-E / index-F) */
.testimonials .e-wrap { display:grid; grid-template-columns: repeat(3,1fr); gap: 44px; padding: 64px 56px 88px; }
.testimonials .e-card { display:flex; flex-direction:column; padding-top: 26px; border-top: 2px solid var(--g); min-height: 300px; }
.testimonials .e-card .eq { font-family: var(--serif); font-style:italic; font-size: 22px; line-height:1.4; color:#1a1a1a; margin: 20px 0 0; flex:1; }
.testimonials .e-card .emeta { margin-top: 28px; }
.testimonials .f-wrap { display:grid; grid-template-columns: repeat(3,1fr); gap: 44px; padding: 36px 56px 80px; align-items:start; }
.testimonials .f-card { padding: 26px 0 0; border-top: 2px solid var(--g); display:flex; flex-direction:column; }
.testimonials .f-card:nth-child(2){ margin-top: 0; }
.testimonials .f-card:nth-child(3){ margin-top: 0; }
.testimonials .f-card .fqm { font-family: var(--serif); font-size: 46px; line-height:.5; color: var(--g); height: 20px; }
.testimonials .f-card .fq { font-family: var(--serif); font-style:italic; font-size: 22px; line-height:1.4; color:#1a1a1a; margin-top: 18px; }
.testimonials .f-card .fmeta { margin-top: 26px; }
.testimonials .ttheme { font-family: var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#515151; margin-bottom: 8px; }
.testimonials .tname { font-size: 18px; font-weight:700; letter-spacing:-0.01em; color:#121212; }
.testimonials .qby { display:flex; align-items:center; gap:16px; margin-top:8px; }
.testimonials .qav { width:88px; height:88px; border-radius:0; overflow:hidden; flex-shrink:0; background:#e8e8e6; display:flex; align-items:center; justify-content:center; }
.testimonials .qav img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); }
.testimonials .qav-initials { background:#121212; color:var(--g); font-weight:700; font-size:26px; letter-spacing:.02em; }
/* 2-col featured testimonial layout */
.testimonials .t-feat2.govt-two { grid-template-columns:1fr 1fr; }
.testimonials .t-feat2.govt-two .tf-row { align-items:center; }
.testimonials .t-feat2 { display:grid; grid-template-columns:1fr 1.08fr; gap:64px; align-items:start; padding:20px 56px 120px; }
.testimonials .tf-lead { display:grid; grid-template-columns:248px 1fr; gap:36px; align-items:start; }
.testimonials .tf-photo { width:248px; aspect-ratio:3/4; background:#e8e8e6; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.testimonials .tf-photo img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); }
.testimonials .tf-photo .qav-initials { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:60px; }
.testimonials .tf-body { display:flex; flex-direction:column; }
.testimonials .tf-lead .fqm { font-size:40px; }
.testimonials .tf-lead .fq { font-size:23px; line-height:1.36; margin:6px 0 22px; }
.testimonials .tf-side { display:flex; flex-direction:column; gap:52px; border-left:1px solid rgba(0,0,0,0.1); padding-left:52px; }
.testimonials .tf-row { display:grid; grid-template-columns:172px 1fr; gap:30px; align-items:start; }
.testimonials .tf-sph { width:172px; height:172px; background:#e8e8e6; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.testimonials .tf-sph img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); }
.testimonials .tf-sph .qav-initials { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:28px; }
.testimonials .fq.sm { font-size:19px; line-height:1.5; margin-bottom:18px; color:#1a1a1a; }
.testimonials .tf-side .fmeta { margin-top:0; }
.testimonials .tf-side .ttheme { margin-bottom:6px; }
@media (max-width:960px){
  .testimonials .t-feat2 { grid-template-columns:1fr; gap:48px; padding:8px 24px 72px; }
  .testimonials .tf-side { border-left:none; padding-left:0; border-top:1px solid rgba(0,0,0,0.1); padding-top:36px; }
}
@media (max-width:560px){
  .testimonials .tf-lead { grid-template-columns:1fr; gap:22px; }
  .testimonials .tf-photo { width:100%; aspect-ratio:4/5; }
  .testimonials .tf-row { grid-template-columns:1fr; gap:18px; }
  .testimonials .tf-sph { width:100%; height:auto; aspect-ratio:4/5; }
}
.testimonials .qby .tname { margin:0; }
.testimonials .qby .trole { margin-top:3px; }
.testimonials .trole { font-family: var(--mono); font-size: 12px; color:#515151; margin-top:5px; }
.testimonials .tdraft { display:inline-block; margin-top:16px; font-family: var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#515151; border:1px solid rgba(0,0,0,.18); padding:4px 11px; }
.ver-badge { position: fixed; bottom: 16px; left: 16px; z-index: 200; font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #0a0a0a; background: var(--g); padding: 8px 13px; }
@media (max-width:900px){ .testimonials .e-wrap, .testimonials .f-wrap { grid-template-columns:1fr; gap: 36px; } .testimonials .f-card:nth-child(2), .testimonials .f-card:nth-child(3){ margin-top:0; } }

/* ── CTA BAND (founders + partners, stacked full-width) ── */
.cta-band { display: grid; grid-template-columns: 1fr; border-bottom: 1px solid var(--line); }
.cta-cell { padding: 80px 48px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: block; position: relative; }
.cta-right { margin-top: 22px; }
.cta-cell:last-child { border-bottom: none; }
.cta-cell.light { background: var(--wh); color: var(--bk); }
.cta-cell .tag { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--g); }
.cta-cell.light .tag { color: #515151; }
.cta-cell h3 { font-size: clamp(30px, 3.4vw, 46px); font-weight: 700; letter-spacing: -0.018em; line-height: 1.08; margin-top: 18px; }
.cta-right { display: flex; flex-direction: column; align-items: flex-start; }
.cta-cell p { font-size: 17px; font-weight: 300; line-height: 1.64; margin: 0; max-width: 600px; color: rgba(254,254,254,0.80); }
.cta-cell.light p { color: #515151; font-weight: 400; }
.cta-btn { align-self: flex-start; margin-top: 36px; white-space: nowrap; font-family: var(--mono); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; padding: 16px 26px; display: inline-flex; align-items: center; gap: 10px; transition: gap 200ms, background 200ms, color 200ms; }
.cta-cell.light .cta-btn { background: var(--g); color: #121212; }
.cta-cell.light .cta-btn:hover { background: var(--g-d); }
.cta-cell.dark .cta-btn { background: var(--g); color: #121212; }
.cta-cell.dark .cta-btn:hover { background: var(--g-light); }
.cta-cell .sub-link { margin-top: 18px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; color: var(--gr); }
.cta-cell.light .sub-link { color: #515151; }
.cta-cell .sub-link a { color: inherit; border-bottom: 1px solid currentColor; }
@media (max-width: 900px) { .cta-cell { padding: 48px 24px; grid-template-columns: 1fr; gap: 28px; } }

/* statement cell — spacious full-width block */
.cell.statement { padding: 100px 56px; min-height: 0; align-items: flex-start; }
@media (max-width: 700px){ .cell.statement { padding: 56px 24px; } .cell .lead-txt { font-size: 28px; line-height: 1.4; } }
.cell .lead-txt { font-size: 34px; font-weight: 600; letter-spacing: -0.025em; line-height: 1.45; max-width: 1000px; margin-top: 28px; }
.cell .lead-txt .accent { color: var(--g); }
.cell .body { font-size: 16px; font-weight: 300; color: var(--gr2); line-height: 1.66; }

/* stat cell */
.cell.stat { justify-content: flex-start; padding: 44px 34px; min-height: 200px; }
.cell.stat .num { font-size: clamp(36px, 2.6vw, 52px); font-weight: 700; letter-spacing: -0.04em; line-height: 0.9; color: var(--wh); margin-top: 28px; white-space: nowrap; }
.cell.stat.mint-num .num { color: var(--g); }
.cell.stat .lbl { font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gr); margin-top: 16px; }
/* big stat — Digital & Financial, larger numbers side by side */
.cell.stat.big { min-height: 300px; padding: 52px 48px; }
.cell.stat.big .num { font-size: clamp(56px, 6.4vw, 100px); margin-top: 22px; line-height: 0.88; }
.cell.stat.big .lbl { font-size: 13px; max-width: 360px; }
/* hero stat — featured full-width number */
.cell.stat.hero { display: grid; grid-template-columns: auto 1fr; column-gap: 48px; align-items: baseline; padding: 48px 56px 52px; min-height: 0; }
.cell.stat.hero .tag { grid-column: 1 / -1; margin-bottom: 8px; }
.cell.stat.hero .num { font-size: clamp(72px, 9vw, 140px); margin-top: 0; line-height: 0.86; }
.cell.stat.hero .lbl { font-size: 15px; letter-spacing: 0.08em; line-height: 1.4; margin-top: 0; max-width: 300px; align-self: flex-end; padding-bottom: 14px; }
@media (max-width: 640px) {
  .cell.stat.hero { grid-template-columns: 1fr; column-gap: 0; }
  .cell.stat.hero .lbl { margin-top: 16px; padding-bottom: 0; }
}
.cell .tag { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--g); }

/* mint promise cell */
.cell.mint { background: var(--g); color: #0a0a0a; justify-content: flex-start; }
.cell.mint .tag { color: rgba(0,0,0,0.55); }
.cell.mint .pitch { font-family: var(--serif); font-style: italic; font-size: 25px; font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; margin: 22px 0 0; }
.cell.mint .go { margin-top: 20px; font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; display: inline-flex; gap: 8px; transition: gap 200ms; }
.cell.mint:hover .go { gap: 16px; }

/* index link cells */
.cell.idx { transition: background 200ms; cursor: pointer; min-height: 330px; padding: 60px 48px; }
.cell.idx:hover { background: var(--bk1); }
.cell.idx .n { font-family: var(--mono); font-size: 12px; color: var(--g); letter-spacing: 0.1em; }
.cell.idx h3 { font-size: 30px; font-weight: 700; letter-spacing: -0.03em; margin-top: 22px; white-space: nowrap; }
.cell.idx p { font-size: 15px; font-weight: 300; color: var(--gr2); line-height: 1.6; margin-top: 18px; max-width: 340px; }
.cell.idx .go { margin-top: auto; padding-top: 40px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; color: var(--g); display: inline-flex; gap: 8px; transition: gap 200ms; }
.cell.idx:hover .go { gap: 16px; }
.cell.idx::after { content: ''; position: absolute; top: 0; left: 0; height: 2px; width: 0; background: var(--g); transition: width 360ms cubic-bezier(0.16,1,0.3,1); }
.cell.idx:hover::after { width: 100%; }

/* focus list cell */
.cell.focus { gap: 0; padding-bottom: 20px; }
.focus-row { display: flex; align-items: baseline; gap: 16px; padding: 15px 0; border-top: 1px solid var(--line-soft); }
.focus-row:first-of-type { border-top: none; }
.focus-row .fn { font-family: var(--mono); font-size: 11px; color: var(--g); width: 26px; }
.focus-row .ft { font-size: 18px; font-weight: 500; letter-spacing: -0.01em; }
.focus-row .fm { margin-left: auto; font-family: var(--mono); font-size: 11px; color: var(--gr); }

/* section heading row (inner pages) */
.srow { display: grid; grid-template-columns: 1fr 2fr; }

/* ── reveal (transform-only: content is never invisible) — scroll-triggered ── */
.reveal:not(.tl-item) { transform: translateY(22px); transition: transform .72s cubic-bezier(0.16,1,0.3,1); will-change: transform; }
.reveal.in { transform: none; }
.reveal[data-d="1"]{transition-delay:.07s}.reveal[data-d="2"]{transition-delay:.14s}.reveal[data-d="3"]{transition-delay:.21s}.reveal[data-d="4"]{transition-delay:.28s}
@media (prefers-reduced-motion: reduce){ .reveal:not(.tl-item){ transform: none; transition: none; } }

/* ── FOOTER ── */
/* ── FOOTER ── */
.foot-signoff { padding: 88px 56px; border-bottom: 1px solid var(--line); }
.foot-signoff .big { font-family: var(--serif); font-style: italic; font-size: clamp(28px, 3.4vw, 44px); font-weight: 500; letter-spacing: -0.015em; line-height: 1.16; max-width: 900px; }
.site-footer { background: var(--bk); }
.site-footer .wm { font-family: 'DM Sans', sans-serif; }
.footer-grid { display: grid; grid-template-columns: 1.9fr 1fr 1fr; gap: 56px; padding: 72px 56px; border-bottom: 1px solid var(--line); }
.footer-brand img { height: 56px; margin-bottom: 24px; }
.footer-signoff-text { font-family: var(--serif); font-style: italic; font-size: 26px; font-weight: 500; line-height: 1.24; letter-spacing: -0.01em; color: var(--wh); margin-bottom: 22px; max-width: 460px; }
.footer-tagline { font-family: var(--mono); font-size: 12px; font-weight: 600; color: var(--g); letter-spacing: 0.02em; margin-bottom: 16px; }
.footer-brand p { font-size: 14px; color: var(--gr2); max-width: 320px; line-height: 1.65; }
.footer-col h5 { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--g); margin-bottom: 18px; }
.footer-col a { display: block; font-size: 14px; color: var(--gr2); margin-bottom: 10px; transition: color 180ms; }
.footer-col a:hover { color: var(--wh); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; padding: 28px 56px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; color: var(--gr); }
@media (max-width: 900px) {
  .foot-signoff { padding: 56px 24px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; padding: 48px 24px; }
  .footer-bottom { padding: 24px; }
}
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  nav { padding: 14px 20px; }
  .hero-inner { padding: 44px 20px; }
  .scroll-cue { right: 20px; }
  .nav-links { position: fixed; top: 60px; left: 0; right: 0; flex-direction: column; gap: 0; align-items: stretch;
    background: rgba(15,15,15,0.97); backdrop-filter: blur(20px); border-bottom: 1px solid var(--line);
    max-height: 0; overflow: hidden; transition: max-height 320ms ease; }
  .nav-links.open { max-height: 360px; }
  .nav-links a.nl { padding: 16px 22px; border-top: 1px solid var(--line-soft); font-size: 16px; }
  .nav-cta { margin: 14px 22px; text-align: center; }
  .nav-burger { display: flex; }
  .mh-split { grid-template-columns: 1fr; }
  .mh-split .masthead { border-right: none; border-bottom: 1px solid var(--line); }
  .mh-img { min-height: 300px; }
  .cell, .cell.s8, .cell.s6, .cell.s5, .cell.s7, .cell.s3 { grid-column: span 6; }
  .cell:nth-child(odd) { border-right: 1px solid var(--line); }
  .masthead { padding: 48px 24px; }
  .cell { padding: 32px 24px; min-height: 170px; }
  .foot { padding: 40px 24px; }
}
@media (max-width: 560px) {
  .cell, .cell.s8, .cell.s6, .cell.s5, .cell.s7, .cell.s3, .cell.s12 { grid-column: span 12; border-right: none; }
  .cell.stat .num { font-size: 52px; }
  .masthead h1 { letter-spacing: -0.03em; }
}

/* ============================================================
   INNER PAGES (Purpose / Path / People)
   ============================================================ */
.hero.inner { min-height: 62vh; }
.hero.inner.no-img { min-height: 0; align-items: flex-start; background: var(--bk); border-bottom: 1px solid var(--line); }
.people-bg .hero.inner.no-img { background: transparent; }
.hero.inner.no-img .hero-inner { padding: 96px 56px 80px; }
.hero.inner .hero-inner { padding-top: 132px; }
.believe-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; margin-top: 8px; }
.believe-img { aspect-ratio: 4/3; overflow: hidden; }
.believe-img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(20%) contrast(1.05) brightness(0.92); }
/* what we believe — text + separate image */
.believe-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:96px 56px; border-bottom:1px solid var(--line); }
/* gap valley-of-death curve */
.gap-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-top:8px; }
.gap-grid .look-statement { font-size:clamp(22px,2.4vw,30px); }
.gap-curve { max-width:560px; }
@media (max-width:860px){ .gap-grid { grid-template-columns:1fr; gap:36px; } }
.gap-curve svg { width:100%; height:auto; display:block; }
.gap-curve-cap { display:flex; justify-content:space-between; margin-top:14px; font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--gr); }
.gap-curve-cap span:last-child { text-align:right; width:38%; }
.believe-text .big-h { margin-top:30px; }
.believe-text .prose { margin-top:24px; }
.believe-fig { margin:0; aspect-ratio:1/1; overflow:hidden; background:#1a1a1a; }
.believe-fig img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) contrast(1.04) brightness(0.98); }
@media (max-width:860px){
  .believe-split { grid-template-columns:1fr; gap:40px; padding:64px 24px; }
  .believe-fig { aspect-ratio:16/10; }
}
/* notes tabs */
.notes { margin-top:36px; }
.notes-tabs { display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid var(--line); margin-bottom:36px; counter-reset:ntab; }
.ntab { background:none; border:none; font-family:inherit; font-size:22px; font-weight:700; letter-spacing:-0.02em; color:var(--gr2); cursor:pointer; padding:0 0 16px; margin-right:36px; position:relative; transition:color .2s; counter-increment:ntab; display:inline-flex; align-items:baseline; gap:10px; }
.ntab::before { content:counter(ntab, decimal-leading-zero); font-family:var(--mono); font-size:12px; font-weight:600; color:var(--g); letter-spacing:.04em; }
.ntab:hover { color:var(--wh); }
.ntab.active { color:var(--wh); }
.ntab.active::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--g); }
.npanel { display:none; max-width:760px; }
.npanel.active { display:grid; grid-template-columns:360px 1fr; gap:56px; align-items:start; max-width:none; }
.npic { width:360px; max-width:100%; aspect-ratio:4/5; overflow:hidden; background:#1a1a1a; display:flex; align-items:center; justify-content:center; }
.npic img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); }
.npic.ini { background:#121212; color:var(--g); font-weight:700; font-size:40px; }
/* people photo cards (name/role over image, click opens bio) */
.pcard-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pcard { position:relative; aspect-ratio:3/4; overflow:hidden; border:none; padding:0; cursor:pointer; background:#1a1a1a; display:block; }
.pcard img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); transition:transform .8s cubic-bezier(.16,1,.3,1), filter .4s; }
.pcard:hover img { transform:scale(1.05); filter:contrast(1.04) saturate(1.05); }
.pcard::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 45%, rgba(8,10,8,0.9)); }
.pcard-ov { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:24px; text-align:left; }
.pcard-name { font-size:22px; font-weight:700; letter-spacing:-0.02em; color:#fff; }
.pcard-role { font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--g); margin-top:6px; }
@media (max-width:760px){ .pcard-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .pcard-grid { grid-template-columns:1fr; } .pcard { max-width:340px; margin:0 auto; } }
/* candid full-bleed band */
.people-band { padding:0; max-width:1480px; margin:0 auto; height:46vh; overflow:hidden; }
.people-band img { width:100%; height:100%; object-fit:cover; object-position:center 30%; filter:grayscale(20%) contrast(1.12) brightness(0.86) saturate(1.05); }
@media (max-width:640px){ .npanel.active { grid-template-columns:1fr; gap:24px; } .npic { width:140px; } }
/* notes on white surface */
.notes-light { background:var(--wh); color:var(--bk); }
.notes-light .section-num { color:#515151; }
.notes-light .section-num b { color:var(--g-d); }
.notes-light.section h2.big-h .accent, .notes-light h2.big-h .accent { color:#121212 !important; text-decoration:underline; text-decoration-color:var(--g); text-decoration-thickness:4px; text-underline-offset:6px; text-decoration-skip-ink:none; }
.notes-light .notes-tabs { border-bottom:1px solid rgba(0,0,0,0.14); }
.notes-light .ntab { color:#6a6a6a; }
.notes-light .ntab::before { color:var(--g-d); }
.notes-light .ntab:hover, .notes-light .ntab.active { color:var(--bk); }
.notes-light .npanel .nlead { color:var(--bk); }
.notes-light .npanel p + p { color:#515151; }
.notes-light .npic { background:#e8e8e6; }
.notes-light .npic.ini { background:var(--bk); color:var(--g); }
.notes-light .npanel.active { grid-template-columns:1fr 360px; align-items:start; gap:56px; max-width:none; }
.notes-light .npanel .npic { order:2; aspect-ratio:4/5; width:100%; }
.notes-light .npanel .ntext { order:1; }
.notes-light .npanel .nlead { max-width:none; }
.notes-light .npanel .ntext { order:1; }
@media (max-width:640px){ .notes-light .npanel.active { grid-template-columns:1fr; } .notes-light .npanel .npic { order:1; } .notes-light .npanel .ntext { order:2; } }
.npanel .nlead { font-family:var(--serif); font-style:italic; font-size:clamp(22px,2.6vw,30px); line-height:1.4; color:var(--wh); letter-spacing:-0.01em; }
.npanel .nname { font-size:clamp(26px,2.8vw,38px); font-weight:700; letter-spacing:-0.025em; line-height:1.04; color:var(--wh); }
.npanel .nrole { font-family:var(--mono); font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--g); margin-top:0; }
.npanel .nname + .nrole + .nlead, .npanel .nrole + .nlead { margin-top:24px; }
.notes-light .npanel .nname { color:var(--bk); }
.notes-light .npanel .nrole { color:var(--g-d); }
.bio-link { display:inline-flex; align-items:center; gap:8px; margin-top:18px; background:none; border:none; cursor:pointer; font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--g); padding:0; transition:color .2s; }
.npic[data-bio] { cursor:pointer; }
.bio-link:hover { color:var(--g-light); }
.notes-light .bio-link { color:var(--g); }
.notes-light .bio-link:hover { color:#0a6e47; }

/* IC & advisors — auto-scroll spotlight (Option A) */
.ica { margin-top:36px; }
.ica-stage { display:grid; grid-template-columns:1fr auto; gap:64px; align-items:center; min-height:380px; }
.ica-slides { position:relative; }
.ica-slide { position:absolute; inset:0; opacity:0; transform:translateY(14px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); pointer-events:none; }
.ica-slide.on { position:relative; opacity:1; transform:none; pointer-events:auto; }
.ica-mark { font-family:var(--serif); font-style:italic; font-size:60px; line-height:0.5; color:rgba(22,23,15,0.22); display:block; height:34px; }
.ica-quote { font-family:var(--serif); font-style:italic; font-size:clamp(24px,2.6vw,34px); line-height:1.4; letter-spacing:-0.01em; color:var(--bk); margin-top:20px; max-width:760px; text-wrap:pretty; }
.ica-by { margin-top:26px; font-size:20px; font-weight:700; color:var(--bk); }
.ica-tag { display:inline-block; font-family:var(--mono); font-style:normal; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#0f3d2c; background:rgba(39,234,166,0.22); padding:4px 10px; vertical-align:middle; margin-left:4px; }
.ica-by span { display:block; font-family:var(--mono); font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#515151; margin-top:6px; }
.ica-vp { display:inline-flex; align-items:center; gap:8px; margin-top:24px; font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#515151; text-decoration:none; transition:gap .2s, color .2s; }
.ica-vp:hover { gap:12px; color:#121212; }
.ica-photo { width:380px; aspect-ratio:3/4; overflow:hidden; background:#e8e8e6; flex-shrink:0; }
.ica-photo img { width:100%; height:100%; object-fit:cover; object-position:center 12%; filter:contrast(1.02); transition:opacity .5s ease; }
.ica-photo img.swapping { opacity:0; }
.ica-foot { display:flex; align-items:center; justify-content:space-between; margin-top:30px; padding-top:24px; border-top:1px solid rgba(0,0,0,0.12); }
.ica-dots { display:flex; gap:9px; }
.ica-dot { width:9px; height:9px; border-radius:50%; background:rgba(0,0,0,0.16); border:none; padding:0; cursor:pointer; transition:all .25s; }
.ica-dot.on { background:var(--g); transform:scale(1.25); }
.ica-actl { display:flex; align-items:center; gap:22px; }
.ica-actl .bio-link { margin-top:0; }
.ica-toggle { width:40px; height:40px; padding:0; display:inline-flex; align-items:center; justify-content:center; background:none; border:1px solid rgba(0,0,0,0.18); cursor:pointer; transition:all .2s; }
.ica-toggle:hover { border-color:var(--g); background:rgba(27,184,128,0.08); }
.ica-toggle .tx { display:none; }
.ica-ic { width:10px; height:11px; position:relative; flex-shrink:0; }
.ica-ic::before { content:''; position:absolute; left:1px; top:0; border-left:8px solid #121212; border-top:5.5px solid transparent; border-bottom:5.5px solid transparent; }
.ica-toggle:hover .ica-ic::before { border-left-color:var(--g); }
.ica-toggle.playing .ica-ic::before { border:none; left:0; width:3px; height:11px; background:#121212; box-shadow:6px 0 0 #121212; }
.ica-toggle.playing:hover .ica-ic::before { background:var(--g); box-shadow:6px 0 0 var(--g); }
@media (max-width:760px){
  .ica-stage { grid-template-columns:1fr; gap:28px; min-height:0; }
  .ica-photo { order:-1; width:100%; aspect-ratio:4/5; height:auto; }
  .ica-foot { flex-wrap:wrap; gap:16px; }
  .ica-actl { gap:16px; }
}
.npanel p + p { margin-top:20px; font-family:'DM Sans',sans-serif; font-style:normal; font-size:18px; font-weight:300; line-height:1.7; color:rgba(254,254,254,0.72); }
.npanel .nby { margin-top:28px; font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--g); }
/* what we believe — full-bleed image background */
.believe-bg { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.believe-bg-img { position: absolute; inset: 0; z-index: 0; }
.believe-bg-img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(28%) contrast(1.08) brightness(0.42); }
.believe-bg-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15,15,15,0.92) 0%, rgba(15,15,15,0.62) 52%, rgba(15,15,15,0.5) 100%); }
.believe-content { position: relative; z-index: 2; padding: 120px 56px; max-width: 920px; }
.believe-content .prose { color: rgba(254,254,254,0.86); }
.believe-content .big-h { font-size: clamp(38px, 5.4vw, 80px); font-weight: 800; letter-spacing: -0.045em; line-height: 0.98; max-width: 1080px; margin-bottom: 28px; }
@media (max-width: 860px) {
  .believe-grid { grid-template-columns: 1fr; gap: 36px; }
  .hero.inner.no-img .hero-inner { padding: 110px 24px 64px; }
  .believe-content { padding: 72px 24px; }
}
/* gap section — text + photo */
.gap-grid { display: grid; grid-template-columns: 1fr 0.92fr; gap: 64px; align-items: stretch; margin-top: 8px; }
.gap-text { display: flex; flex-direction: column; justify-content: center; }
.gap-text .prose:first-child { font-size: clamp(22px, 2.4vw, 30px); font-weight: 400; line-height: 1.4; color: rgba(254,254,254,0.92); letter-spacing: -0.015em; }
.gap-text .prose:first-child strong { color: var(--wh); font-weight: 600; }
.gap-text .prose + .prose { margin-top: 28px; font-size: 17px; color: rgba(254,254,254,0.62); }
.gap-fig { margin: 0; display: flex; flex-direction: column; }
.gap-fig img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; filter: grayscale(35%) contrast(1.06) brightness(0.9); }
.gap-fig figcaption { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gr); margin-top: 14px; }
/* full-bleed image band with quote */
.img-band { position: relative; min-height: 64vh; display: flex; align-items: flex-end; overflow: hidden; border-bottom: 1px solid var(--line); }
.img-band-bg { position: absolute; inset: 0; z-index: 0; }
.img-band-bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(40%) contrast(1.08) brightness(0.5); }
.img-band-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(15,15,15,0.85)); }
.img-band-quote { position: relative; z-index: 2; padding: 56px; max-width: 1000px; }
.img-band-quote p { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 3.4vw, 44px); font-weight: 500; line-height: 1.22; letter-spacing: -0.015em; color: #fff; }
@media (max-width: 860px) {
  .gap-grid { grid-template-columns: 1fr; gap: 32px; }
  .gap-fig { order: -1; }
  .gap-fig img { min-height: 0; aspect-ratio: 16/10; }
  .img-band-quote { padding: 36px 24px; }
}
.hero.inner .hero-img img { filter: grayscale(24%) contrast(1.08) brightness(0.5); }
.hero.inner .hero-img.sharp img { filter: grayscale(15%) contrast(1.15) brightness(0.72) saturate(1.05); object-position: center 22%; }
.hero.inner .hero-img.vivid img { filter: grayscale(0%) saturate(1.12) contrast(1.02) brightness(0.92); }
.hero.inner .hero-img.drone img { object-position: center top; }
.hero-eyebrow { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--g); margin-bottom: 22px; display: flex; align-items: center; gap: 14px; }
.hero-eyebrow .idx { color: rgba(254,254,254,0.5); }
.hero.inner .kicker-lead { margin-top: 26px; max-width: 720px; font-size: 21px; font-weight: 300; color: rgba(254,254,254,0.86); line-height: 1.5; }

/* generic content section */
.section { padding: 92px 56px; border-bottom: 1px solid var(--line); }
.section-num { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gr); margin-bottom: 38px; display: flex; align-items: baseline; gap: 14px; }
.section-num b { color: var(--g); font-weight: 700; }
.section h2.big-h { font-size: clamp(30px, 4vw, 56px); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; max-width: 1280px; text-wrap: pretty; }
.section h2.big-h .accent { color: var(--g); }
.prose { font-size: 20px; font-weight: 300; line-height: 1.7; color: rgba(254,254,254,0.82); max-width: 760px; }
.prose + .prose { margin-top: 22px; }
.prose strong { color: var(--wh); font-weight: 600; }
.section .big-h + .prose { margin-top: 34px; }

/* pull quote band */
.pullquote { padding: 104px 56px; border-bottom: 1px solid var(--line); border-left: 2px solid var(--g); display: flex; flex-direction: column; }
.pullquote p { font-family: var(--serif); font-style: italic; font-size: clamp(28px, 4vw, 52px); font-weight: 500; line-height: 1.2; letter-spacing: -0.02em; max-width: 1700px; }
.pullquote .accent { color: var(--g); }
.pullquote .attr { order: -1; margin: 0 0 26px; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gr); }
/* white pull-quote band (light moment on inner pages) */
.pullquote.light { background: var(--wh); color: var(--bk); border-bottom: 1px solid rgba(0,0,0,0.12); }
.pullquote.light p { color: #1a1a1a; }
.pullquote.light .accent { color: #121212; text-decoration: underline; text-decoration-color: var(--g); text-decoration-thickness: 4px; text-underline-offset: 6px; text-decoration-skip-ink: none; }
.pullquote.light .attr { color: #6a6a6a; }

/* sector explorer (Path) */
.sector-explore { display: grid; grid-template-columns: 1fr 0.82fr; gap: 64px; padding: 72px 56px 100px; align-items: start; border-bottom: 1px solid var(--line); }
.se-list { display: flex; flex-direction: column; }
.se-item { border-top: 1px solid rgba(255,255,255,0.10); }
.se-item:last-child { border-bottom: 1px solid var(--line); }
.se-head { width: 100%; background: none; border: none; cursor: pointer; text-align: left; color: var(--wh); font-family: inherit; display: flex; align-items: baseline; gap: 20px; padding: 26px 4px 26px 0; position: relative; }
.se-head::before { content: none; }
.se-item.active .se-head { padding-left: 0; }
.se-item.active .se-head::before { width: 0; }
.se-title { font-size: 25px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; color: rgba(254,254,254,0.5); transition: color .25s; flex: 1; }
.se-head:hover .se-title { color: rgba(254,254,254,0.92); }
.se-item.active .se-title { color: var(--g); }
.se-tag { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gr); white-space: nowrap; opacity: 0; transition: opacity .3s; }
.se-item.active .se-tag, .se-head:hover .se-tag { opacity: 1; }
.se-panel { max-height: 0; overflow: hidden; transition: max-height .5s cubic-bezier(.16,1,.3,1); }
.se-item.active .se-panel { max-height: 420px; }
.se-panel p { font-size: 15px; color: rgba(254,254,254,0.66); line-height: 1.64; padding: 2px 4px 28px 0; max-width: 540px; }
.se-media { position: sticky; top: 100px; aspect-ratio: 4/5; overflow: hidden; background: #1a1a1a; }
.se-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(18%) contrast(1.05) brightness(0.82); opacity: 0; }
.se-img.active { opacity: 1; }

/* sector cards — image with hover-reveal text */
.sector-cards { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; padding: 0 56px 100px; border-bottom: 1px solid var(--line); }
.sc-card { grid-column: span 2; position: relative; aspect-ratio: 4/5; overflow: hidden; display: block; }
.sector-cards .sc-card:nth-child(4) { grid-column: span 3; }
.sector-cards .sc-card:nth-child(5) { grid-column: span 3; }
.sector-cards .sc-card:nth-child(4), .sector-cards .sc-card:nth-child(5) { aspect-ratio: 16/9; }
.sc-img { position: absolute; inset: 0; }
.sc-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; filter: grayscale(30%) contrast(1.06) brightness(0.7); transition: transform 1.1s cubic-bezier(.16,1,.3,1), filter .5s; }
.sc-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 30%, rgba(10,12,10,0.55) 70%, rgba(10,12,10,0.9) 100%); transition: background .4s; }
.sc-card:hover .sc-img img { transform: scale(1.06); filter: grayscale(0%) contrast(1.06) brightness(0.5); }
.sc-card:hover::after { background: linear-gradient(rgba(10,12,10,0.55), rgba(10,12,10,0.82)); }
.sc-body { position: absolute; inset: 0; z-index: 2; padding: 30px; display: flex; flex-direction: column; justify-content: flex-end; }
.sc-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--g); margin-bottom: 12px; opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s; }
.sc-title { font-size: 34px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.02; color: #fff; transition: transform .45s cubic-bezier(.16,1,.3,1); }
/* what we offer */
.offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 56px; }
.offer { background: var(--bk); padding: 44px 40px 48px; display: flex; flex-direction: column; }
.offer-n { font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: .1em; color: var(--g); margin-bottom: 36px; }
.offer h3 { font-size: 25px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; margin-bottom: 16px; }
.offer p { font-size: 16px; font-weight: 300; line-height: 1.62; color: rgba(254,254,254,0.66); }
@media (max-width: 860px) { .offer-grid { grid-template-columns: 1fr; } }
/* what we look for — numbered criteria */
.look-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin-top: 56px; border-top: 1px solid var(--line); }
.look-item { display: flex; align-items: baseline; gap: 24px; padding: 32px 0; border-bottom: 1px solid var(--line); }
.look-item:nth-child(odd) { padding-right: 56px; border-right: 1px solid var(--line); }
.look-item:nth-child(even) { padding-left: 56px; }
.look-n { font-family: var(--mono); font-size: 14px; font-weight: 700; letter-spacing: .08em; color: var(--g); flex-shrink: 0; }
.look-t { font-size: 26px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.18; color: var(--wh); }
@media (max-width: 720px) {
  .look-grid { grid-template-columns: 1fr; }
  .look-item, .look-item:nth-child(odd) { padding: 26px 0; border-right: none; }
  .look-item:nth-child(even) { padding-left: 0; }
  .look-t { font-size: 21px; }
}
/* what we look for — big editorial statement */
.look-statement { font-size: clamp(30px, 4.4vw, 60px); font-weight: 700; letter-spacing: -0.035em; line-height: 1.22; color: rgba(254,254,254,0.42); max-width: 1320px; margin-top: 8px; text-wrap: pretty; }
.look-statement .hl { color: var(--wh); box-shadow: inset 0 -0.5em 0 rgba(255,255,255,0.07); }
.look-statement .hl::after { content: none; }
@media (max-width: 720px) { .look-statement .hl { white-space: normal; } }
/* gap split — two-column contrast under the statement */
.gap-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 56px; }
.gap-col { background: var(--bk); padding: 40px 40px 44px; }
.gap-k { font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--g); margin-bottom: 16px; }
.gap-col p { font-size: 20px; font-weight: 300; line-height: 1.5; color: rgba(254,254,254,0.78); letter-spacing: -0.01em; }
@media (max-width: 720px) { .gap-split { grid-template-columns: 1fr; } }
/* gap scale — philanthropy → gap (Tilt) → venture capital */
.gap-scale { margin-top: 64px; }
.gs-track { position: relative; height: 2px; background: var(--line); margin: 0 0 40px; }
.gs-fill { position: absolute; left: 33%; right: 33%; top: 0; height: 100%; background: var(--g); }
.gs-dot { position: absolute; top: 50%; width: 13px; height: 13px; border-radius: 50%; transform: translate(-50%,-50%); background: var(--gr2); }
.gs-dot.gs-start { left: 0; } .gs-dot.gs-end { left: 100%; }
.gs-dot.gs-mid { left: 50%; background: var(--g); box-shadow: 0 0 0 6px rgba(39,234,166,0.16); }
.gs-labels { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 40px; }
.gs-col.gs-c { text-align: center; }
.gs-col.gs-r { text-align: right; }
.gs-k { font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gr2); margin-bottom: 12px; }
.gs-k.gs-mint { color: var(--g); }
.gs-col p { font-size: 16px; font-weight: 300; line-height: 1.55; color: rgba(254,254,254,0.6); }
.gs-col.gs-c p { color: rgba(254,254,254,0.85); }
@media (max-width: 720px) {
  .gs-track { display: none; }
  .gs-labels { grid-template-columns: 1fr; gap: 0; }
  .gs-col, .gs-col.gs-c, .gs-col.gs-r { text-align: left; padding: 22px 0; border-top: 1px solid var(--line); }
  .gs-col.gs-c { border-left: 2px solid var(--g); padding-left: 18px; }
}
.sc-desc { font-size: 14px; line-height: 1.55; color: rgba(255,255,255,0.82); margin-top: 14px; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s cubic-bezier(.16,1,.3,1), opacity .4s, margin-top .4s; }
.sc-arrow { margin-top: 18px; font-size: 18px; color: var(--g); opacity: 0; transform: translateX(-6px); transition: opacity .4s .05s, transform .4s .05s; }
.sc-card:hover .sc-tag { opacity: 1; transform: none; }
.sc-card:hover .sc-desc { max-height: 220px; opacity: 1; }
.sc-card:hover .sc-arrow { opacity: 1; transform: none; }
@media (max-width: 860px) {
  .sector-cards { grid-template-columns: repeat(2, 1fr); padding: 0 24px 72px; }
  .sc-card, .sector-cards .sc-card:nth-child(4), .sector-cards .sc-card:nth-child(5) { grid-column: span 1; aspect-ratio: 4/5; }
  .sc-desc { max-height: 220px; opacity: 1; }
  .sc-tag { opacity: 1; transform: none; }
}
@media (max-width: 520px) { .sector-cards, .sector-cards .sc-card:nth-child(4), .sector-cards .sc-card:nth-child(5) { grid-template-columns: 1fr; grid-column: 1 / -1; } }
/* image counter + caption overlay */
.se-media .se-counter { position: absolute; top: 20px; left: 22px; z-index: 3; display: flex; align-items: baseline; gap: 6px; font-family: var(--mono); letter-spacing: 0.04em; mix-blend-mode: difference; }
.se-media .se-cap-num { font-size: 30px; font-weight: 700; color: #fff; line-height: 1; }
.se-media .se-cap-tot { font-size: 13px; color: rgba(255,255,255,0.8); }
.se-media .se-caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 56px 24px 22px; display: flex; flex-direction: column; gap: 4px; background: linear-gradient(transparent, rgba(8,10,8,0.82)); }
.se-media .se-cap-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--g); }
.se-media .se-cap-title { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; color: #fff; }

/* people grid (People) */
.people { padding: 72px 56px 96px; border-bottom: 1px solid var(--line); }
.people-head { margin-bottom: 52px; }
.people-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.person { cursor: pointer; display: flex; flex-direction: column; }
.person-photo { aspect-ratio: 3/4; overflow: hidden; background: #1a1a1a; position: relative; }
.person-photo::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 40px; background: var(--g); transition: width .35s cubic-bezier(.16,1,.3,1); z-index: 2; }
.person:hover .person-photo::after { width: 100%; }
.person-photo img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.02); transition: transform 1s cubic-bezier(.16,1,.3,1), filter .5s; }
.person:hover .person-photo img { transform: scale(1.05); filter: contrast(1.04) saturate(1.05); }
.person-info { padding-top: 18px; }
.person-role { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--g); margin-bottom: 8px; }
.person h4 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
.person-cred { font-family: var(--mono); font-size: 12px; color: var(--gr); margin-top: 6px; line-height: 1.5; }
.person-more { margin-top: 14px; font-family: var(--mono); font-size: 11px; font-weight: 600; color: var(--g); display: inline-flex; gap: 6px; transition: gap .2s; }
.person:hover .person-more { gap: 12px; }
/* team C3 — two-column, square photo per row */
.team-c3 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.tc-label { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--g); margin-bottom: 8px; }
.team-c3 .rc { display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: center; width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--line); cursor: pointer; font-family: inherit; color: var(--wh); padding: 20px 0; transition: padding-left .3s cubic-bezier(.16,1,.3,1); }
.tc-col .rc:last-child { border-bottom: 1px solid var(--line); }
.team-c3 .rc:hover { padding-left: 10px; }
.tc-sq { aspect-ratio: 1/1; overflow: hidden; background: #1a1a1a; position: relative; }
.tc-sq::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--g); transition: width .35s cubic-bezier(.16,1,.3,1); z-index: 2; }
.team-c3 .rc:hover .tc-sq::after { width: 100%; }
.tc-sq img { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; filter: contrast(1.02); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .5s; }
.team-c3 .rc:hover .tc-sq img { transform: scale(1.05); filter: contrast(1.04) saturate(1.05); }
.team-c3 .rc-name { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; }
.team-c3 .rc:hover .rc-name { color: var(--g); }
.team-c3 .rc-role { font-family: var(--mono); font-size: 12px; color: var(--gr); margin-top: 6px; }
@media (max-width: 860px) { .team-c3 { grid-template-columns: 1fr; gap: 36px; } }
@media (max-width: 460px) { .team-c3 .rc { grid-template-columns: 100px 1fr; gap: 16px; } .team-c3 .rc-name { font-size: 20px; } }
/* team split — text beside tiles */
.team-split { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; align-items: center; margin-top: 8px; }
.ts-text { display: flex; flex-direction: column; }
.ts-quote { font-family: var(--serif); font-style: italic; font-size: clamp(24px, 2.6vw, 34px); font-weight: 500; line-height: 1.3; letter-spacing: -0.015em; color: var(--wh); }
.ts-attr { margin-top: 24px; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--g); }
.ts-tiles { display: flex; flex-direction: column; }
.ts-tiles .rc { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: center; width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--line); cursor: pointer; font-family: inherit; color: var(--wh); padding: 18px 0; transition: padding-left .3s cubic-bezier(.16,1,.3,1); }
.ts-tiles .rc:last-child { border-bottom: 1px solid var(--line); }
.ts-tiles .rc:hover { padding-left: 10px; }
.ts-tiles .rc:hover .tc-sq img { transform: scale(1.05); filter: contrast(1.04) saturate(1.05); }
.ts-tiles .rc:hover .rc-name { color: var(--g); }
.ts-tiles .rc-name { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.ts-tiles .rc-role { font-family: var(--mono); font-size: 12px; color: var(--gr); margin-top: 6px; }
@media (max-width: 860px) {
  .team-split, .team-split.flip { grid-template-columns: 1fr; gap: 36px; }
  .team-split.flip .ts-tiles { order: 2; }
  .team-split.flip .ts-text { order: 1; }
}
@media (max-width: 460px) { .ts-tiles .rc { grid-template-columns: 90px 1fr; gap: 16px; } .ts-tiles .rc-name { font-size: 19px; } }
/* mobile hero polish */
@media (max-width: 560px) {
  .hero { min-height: 78vh; }
  .hero-inner { padding: 36px 20px 80px; }
  .hero h1 { font-size: clamp(40px, 12vw, 56px); }
  .hero .sub { font-size: 17px; margin-top: 20px; }
  .hero-cta { margin-top: 26px; }
  .home-sectors { padding: 56px 20px; }
  .hub-core, .hub-editorial { padding: 28px 22px; }
  .hub-stmt { font-size: 26px; }
}
/* people roster — compact grid, all visible */
.ppl-tabs { display: flex; gap: 8px; margin-bottom: 40px; }
.ppl-tab { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gr2); background: none; border: 1px solid var(--line); padding: 11px 22px; cursor: pointer; transition: color .2s, border-color .2s, background .2s; }
.ppl-tab:hover { color: var(--wh); }
.ppl-tab.active { color: var(--bk); background: var(--g); border-color: var(--g); }
.roster-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.roster-grid[hidden] { display: none; }
/* people row — horizontal scroll carousel */
.people-bar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
.rrow-nav { display: flex; gap: 10px; flex-shrink: 0; }
.rrow-arrow { width: 48px; height: 48px; border: 1px solid var(--line); background: none; color: var(--wh); font-size: 18px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.rrow-arrow:hover { background: var(--g); color: var(--bk); border-color: var(--g); }
.rrow { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 14px; margin: 0 -56px; padding-left: 56px; padding-right: 56px; scrollbar-width: none; }
.rrow::-webkit-scrollbar { display: none; }
.rrow .rc { flex: 0 0 300px; scroll-snap-align: start; }
@media (max-width: 640px) { .rrow { margin: 0 -24px; padding-left: 24px; padding-right: 24px; } .rrow .rc { flex-basis: 250px; } }
.rc { background: none; border: none; padding: 0; text-align: left; cursor: pointer; font-family: inherit; display: flex; flex-direction: column; color: var(--wh); }
.rc-photo { aspect-ratio: 1/1; overflow: hidden; background: #1a1a1a; position: relative; }
.rc-photo::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--g); transition: width .35s cubic-bezier(.16,1,.3,1); z-index: 2; }
.rc:hover .rc-photo::after { width: 100%; }
.rc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; filter: contrast(1.02); transition: transform 1s cubic-bezier(.16,1,.3,1), filter .5s; }
.rc:hover .rc-photo img { transform: scale(1.05); filter: contrast(1.04) saturate(1.05); }
.rc-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--g); margin: 16px 0 8px; }
.rc-tag.adv { color: var(--gr); }
.rc-name { font-size: 21px; font-weight: 700; letter-spacing: -0.015em; }
.rc-role { font-family: var(--mono); font-size: 12px; color: var(--gr); margin-top: 5px; }
@media (max-width: 760px) { .roster-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (max-width: 460px) { .roster-grid { grid-template-columns: 1fr; max-width: 320px; } }

/* bio modal */
.bio-modal { position: fixed; inset: 0; z-index: 1000; background: rgba(8,8,8,0.86); backdrop-filter: blur(2px); display: none; align-items: center; justify-content: center; padding: 40px; }
.bio-modal.open { display: flex; animation: modalIn .24s cubic-bezier(.16,1,.3,1); }
@keyframes modalIn { from { opacity: 0; } to { opacity: 1; } }
.bio-modal-inner { max-width: 960px; width: 100%; max-height: 90vh; background: #121212; display: grid; grid-template-columns: 360px 1fr; position: relative; overflow: hidden; border-top: 2px solid var(--g); } var(--g); }
.bio-modal-photo { overflow: hidden; background: #1a1a1a; }
.bio-modal-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; filter: contrast(1.02); }
.bio-modal-body { padding: 56px; overflow-y: auto; }
.bio-modal-role { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--g); margin-bottom: 24px; }
.bio-modal-name { font-size: 40px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 10px; }
.bio-modal-quote { font-family: var(--serif); font-style: italic; font-size: 21px; line-height: 1.5; color: var(--wh); letter-spacing: -0.01em; padding-left: 20px; border-left: 3px solid var(--g); margin-top: 26px; }
.bio-modal-text { font-size: 16px; line-height: 1.7; color: rgba(254,254,254,0.78); margin-bottom: 14px; }
.bio-modal-placeholder { font-size: 15px; line-height: 1.7; color: rgba(254,254,254,0.4); font-style: italic; margin-bottom: 26px; }
.bio-modal-creds { font-family: var(--mono); padding-top: 18px; border-top: 1px solid var(--line); font-size: 12px; letter-spacing: .04em; color: var(--gr); }

/* team cards (People · section 02) */
.team-cards { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.team-cards > .tcard, .team-cards > .tcard-wrap { grid-column: span 2; }
.team-cards > .tcard:nth-child(4), .team-cards > .tcard-wrap:nth-child(4) { grid-column: 2 / span 2; }
.team-cards > .tcard:nth-child(5), .team-cards > .tcard-wrap:nth-child(5) { grid-column: 4 / span 2; }
@media (max-width: 1100px) { .team-cards { grid-template-columns: repeat(2, 1fr); }
  .team-cards > .tcard, .team-cards > .tcard:nth-child(4), .team-cards > .tcard:nth-child(5),
  .team-cards > .tcard-wrap, .team-cards > .tcard-wrap:nth-child(4), .team-cards > .tcard-wrap:nth-child(5) { grid-column: auto; } }
.tcard { position: relative; display: block; padding: 0; border: none; background: none; cursor: pointer; text-align: left; overflow: hidden; }
.tcard.is-link { text-decoration: none; color: inherit; }

/* ── profile pages ── */
.prof { max-width: 1100px; margin: 0 auto; padding: 132px 56px 40px; }
.prof-back { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gr2); margin-bottom: 64px; transition: color .2s; }
.prof-back:hover { color: var(--g); }
.prof-top { display: grid; grid-template-columns: 0.82fr 1fr; gap: 72px; align-items: start; }
.prof-photo { aspect-ratio: 4/5; overflow: hidden; background: #1a1a1a; align-self: start; }
.prof-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; filter: contrast(1.02); }
.prof-role { font-family: var(--mono); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--g); margin: 0 0 18px; }
.prof-name { font-size: clamp(40px, 4.6vw, 60px); font-weight: 700; letter-spacing: -0.022em; line-height: 1.0; margin-bottom: 28px; }
.prof-bio { font-size: 18px; font-weight: 400; line-height: 1.72; color: rgba(254,254,254,0.84); max-width: 34em; }
.prof-bio p + p { margin-top: 18px; }
.prof-creds { font-family: var(--mono); font-size: 12px; letter-spacing: .06em; color: var(--gr); margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.prof-quote { margin: 64px 0 0; padding: 8px 0 8px 40px; border-left: 4px solid var(--g); }
.prof-quote .pq-lbl { font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--g); margin-bottom: 22px; }
.prof-quote blockquote { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 3.2vw, 42px); line-height: 1.4; letter-spacing: -0.01em; color: var(--wh); margin: 0; max-width: 1040px;text-wrap: pretty; }
.prof-persp { margin-top: 100px; padding-top: 44px; border-top: 1px solid var(--line); }
.prof-persp h2 { font-size: 12px; font-family: var(--mono); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gr2); margin-bottom: 12px; }
.prof-persp-list { display: flex; flex-direction: column; }
.pp-link { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding-left .25s; }
.pp-link:first-child { border-top: 1px solid var(--line); }
.pp-link:hover { padding-left: 14px; }
.pp-link .pp-t { font-size: 22px; font-weight: 500; letter-spacing: -0.01em; color: var(--wh); transition: color .2s; }
.pp-link:hover .pp-t { color: var(--g); }
.pp-link .pp-c { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gr); flex-shrink: 0; }
@media (max-width: 820px) {
  .prof { padding: 104px 24px 32px; }
  .prof-top { grid-template-columns: 1fr; gap: 36px; }
  .prof-photo { max-width: 300px; }
  .prof-quote { margin-top: 56px; padding: 4px 0 4px 24px; }
  .prof-persp { margin-top: 72px; }
  .pp-link .pp-t { font-size: 19px; }
}
.tcard-img { aspect-ratio: 3/4; overflow: hidden; background: #1a1a1a; }
.tcard-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; filter: contrast(1.02); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .4s; }
.tcard:hover .tcard-img img { transform: scale(1.045); filter: contrast(1.05) saturate(1.06); }
.tcard-meta { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 28px 26px; background: linear-gradient(to top, rgba(0,0,0,0.82) 18%, rgba(0,0,0,0) 100%); }
.tcard-name { font-size: 27px; font-weight: 700; letter-spacing: -0.02em; color: #fefefe; }
.tcard-role { font-family: var(--mono); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--g); margin-top: 8px; }
.team-quote { margin: 40px 0 0; padding: 0 0 0 40px; border-left: 3px solid var(--g); }
.team-quote .tq-mark { display: block; font-family: var(--serif); font-style: italic; font-size: 72px; line-height: 0.8; color: var(--g); }
.team-quote blockquote { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 3.4vw, 42px); line-height: 1.34; letter-spacing: -0.01em; color: var(--wh); margin: 18px 0 0; max-width: 1180px; text-wrap: pretty; }
.team-quote figcaption { font-size: 18px; color: var(--gr2); margin-top: 30px; }
@media (max-width: 860px) {
  .team-cards { grid-template-columns: 1fr; gap: 16px; }
  .tcard-img { aspect-ratio: 3/4; }
}
.bio-modal-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; background: rgba(0,0,0,0.4); color: var(--wh); border: 1px solid rgba(255,255,255,0.2); cursor: pointer; font-size: 20px; line-height: 1; z-index: 3; transition: all .18s; }
.bio-modal-close:hover { background: var(--g); color: var(--bk); border-color: var(--g); }

/* prev / next pager */
.pager { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }
.pager a { padding: 48px 56px; transition: background .2s; }
.pager a:hover { background: var(--bk1); }
.pager a.next { text-align: right; border-left: 1px solid var(--line); }
.pager .pl { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--gr); margin-bottom: 10px; }
.pager .pt { font-size: 26px; font-weight: 700; letter-spacing: -0.025em; }
.pager a:hover .pt { color: var(--g); }

@media (max-width: 900px) {
  .section, .pullquote, .people { padding-left: 24px; padding-right: 24px; }
  .sector-explore { grid-template-columns: 1fr; gap: 32px; padding: 56px 24px 72px; }
  .se-media { position: relative; top: 0; order: -1; aspect-ratio: 16/10; }
  .people-grid { grid-template-columns: repeat(2, 1fr); }
  .pager a { padding: 36px 24px; }
  .pager a.next { text-align: left; border-left: none; }
  .bio-modal { padding: 16px; }
  .bio-modal-inner { grid-template-columns: 1fr; max-height: 92vh; }
  .bio-modal-photo { max-height: 240px; aspect-ratio: 4/3; }
  .bio-modal-body { padding: 32px 28px; }
  .bio-modal-name { font-size: 30px; }
}
@media (max-width: 560px) {
  .people-grid { grid-template-columns: 1fr; }
  .person { max-width: 340px; margin: 0 auto; width: 100%; }
  .pager { grid-template-columns: 1fr; }
}

/* timeline (People) — horizontal */
.timeline { display: grid; grid-template-columns: repeat(3, 1fr); }
.tl-item { border-top: 1px solid var(--line); padding: 30px 44px 8px 0; position: relative; }
.tl-item::before { content: ''; position: absolute; top: -6px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--g); }
.tl-year { font-family: var(--mono); font-size: 14px; font-weight: 700; letter-spacing: .06em; color: var(--g); }
.tl-body { margin-top: 18px; }
.tl-body h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.tl-body p { font-size: 15px; color: rgba(254,254,254,0.66); line-height: 1.6; margin-top: 10px; }
@media (max-width: 760px) {
  .timeline { grid-template-columns: 1fr; }
  .tl-item { padding: 26px 0 8px 24px; border-top: none; border-left: 1px solid var(--line); }
  .tl-item::before { top: 0; left: -6px; }
}
/* timeline dot pops in with the item */
.tl-item .tl-pop { display: inline-block; }
.tl-item::before { transform: scale(0); transition: transform .5s cubic-bezier(.34,1.56,.64,1) .15s; }
.tl-item.reveal::before { transform: scale(1); }

/* home sectors list */
.home-sectors { padding: 96px 56px; border-bottom: 1px solid var(--line); }
.hs-head { margin-bottom: 44px; }
.hs-head .tag { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--g); }
.hs-head h2 { font-size: clamp(30px, 4vw, 56px); font-weight: 700; letter-spacing: -0.04em; line-height: 1.0; max-width: 1000px; margin-top: 18px; }
.hs-head h2 .accent { color: var(--g); }
/* hub (mission block + editorial sector names) */
.home-sectors .hub { display: grid; grid-template-columns: 0.85fr 1.15fr; border: 1px solid var(--line); }
.hub-core { padding: 48px; display: flex; flex-direction: column; justify-content: center; background: #161616; color: var(--wh); position: relative; overflow: hidden; }
/* full-section background variant */
.home-sectors.has-bg { position: relative; overflow: hidden; }
.home-sectors.has-bg > .hs-head, .home-sectors.has-bg > .hub { position: relative; z-index: 2; }
.hs-bg { position: absolute; inset: 0; z-index: 0; }
.hs-bg img { width: 100%; height: 100%; object-fit: cover; }
.hs-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(rgba(18,18,18,0.9), rgba(18,18,18,0.95)); }
.home-sectors.has-bg .hub { border-color: rgba(255,255,255,0.18); }
.home-sectors.has-bg .hub-core { background: rgba(18,18,18,0.5); backdrop-filter: blur(2px); }
.home-sectors.has-bg .hub-core::before { display: none; }
.home-sectors.has-bg .hub-editorial { background: rgba(18,18,18,0.5); backdrop-filter: blur(2px); }
.hub-core img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; filter: none; z-index: 0; }
.hub-core::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, rgba(18,18,18,0.92) 0%, rgba(18,18,18,0.7) 55%, rgba(18,18,18,0.5) 100%); }
.hub-core > * { position: relative; z-index: 2; }
.hc-k { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--g); margin-bottom: 16px; }
.hc-t { font-size: 38px; font-weight: 800; letter-spacing: -0.04em; line-height: 0.98; }
.hc-t .accent { color: var(--g); }
.hc-p { font-size: 15px; line-height: 1.5; color: rgba(254,254,254,0.6); margin-top: 18px; max-width: 280px; }
.hub-editorial { padding: 48px; display: flex; flex-direction: column; justify-content: center; }
.hub-stmt { font-size: clamp(28px,3.2vw,44px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.28; color: rgba(254,254,254,0.4); }
.hub-stmt .hl { color: #fff; box-shadow: inset 0 -0.42em 0 rgba(255,255,255,0.08); }
.hub-stmt-link { margin-top: 28px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--g); display: inline-flex; gap: 8px; transition: gap .2s; }
.hub-stmt-link:hover { gap: 16px; }

/* perspectives index */
.persp-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.persp-card { background: var(--bk); padding: 48px 44px 40px; display: flex; flex-direction: column; min-height: 280px; transition: background .25s; position: relative; }
.persp-card:hover { background: var(--bk1); }
.persp-card::after { content: ''; position: absolute; top: 0; left: 0; height: 2px; width: 0; background: var(--g); transition: width .36s cubic-bezier(.16,1,.3,1); }
.persp-card:hover::after { width: 100%; }
.pc-meta { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 28px; }
.pc-cat { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--g); }
.pc-date { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--gr); }
.pc-title { font-size: 28px; font-weight: 700; letter-spacing: -0.025em; line-height: 1.1; }
.pc-excerpt { font-size: 15px; font-weight: 300; line-height: 1.6; color: rgba(254,254,254,0.6); margin-top: 16px; }
.pc-go { margin-top: auto; padding-top: 28px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--g); display: inline-flex; gap: 8px; transition: gap .2s; }
.persp-card:hover .pc-go { gap: 16px; }
@media (max-width: 720px) { .persp-list { grid-template-columns: 1fr; } .persp-card { padding: 36px 24px; min-height: 0; } }

/* perspectives — editorial stacked rows */
.persp-rows { border-top: 1px solid var(--line); }
.prow { display: grid; grid-template-columns: 180px 1fr auto; gap: 48px; align-items: start; padding: 44px 56px; border-bottom: 1px solid var(--line); color: var(--wh); transition: background .25s, padding-left .35s cubic-bezier(.16,1,.3,1); }
.prow:hover { background: var(--bk1); padding-left: 66px; }
.prow-meta { display: flex; flex-direction: column; gap: 8px; padding-top: 6px; }
.prow-title { font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.08; transition: color .2s; }
.prow:hover .prow-title { color: var(--g); }
.prow-ex { font-size: 15px; font-weight: 300; line-height: 1.6; color: rgba(254,254,254,0.55); margin-top: 14px; max-width: 620px; }
.prow-go { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--g); white-space: nowrap; padding-top: 10px; }
@media (max-width: 720px) {
  .prow { grid-template-columns: 1fr; gap: 12px; padding: 32px 24px; }
  .prow:hover { padding-left: 24px; }
  .prow-meta { flex-direction: row; gap: 16px; }
  .prow-go { display: none; }
}
/* perspectives accordion */
.persp-acc { border-top: 1px solid var(--line); }
.pa-item { border-bottom: 1px solid var(--line); }
.pa-head { width: 100%; background: none; border: none; cursor: pointer; font-family: inherit; color: var(--wh); display: grid; grid-template-columns: 150px 1fr auto 28px; gap: 28px; align-items: center; padding: 30px 4px; text-align: left; transition: padding-left .35s cubic-bezier(.16,1,.3,1); }
.pa-head:hover { padding-left: 14px; }
.pa-cat { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--g); }
.pa-title { font-size: clamp(22px,2.6vw,32px); font-weight: 700; letter-spacing: -0.025em; line-height: 1.1; transition: color .2s; }
.pa-item.active .pa-title, .pa-head:hover .pa-title { color: var(--g); }
.pa-date { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--gr); }
.pa-ico { position: relative; width: 16px; height: 16px; justify-self: end; }
.pa-ico::before, .pa-ico::after { content: ''; position: absolute; background: var(--g); border-radius: 2px; }
.pa-ico::before { top: 50%; left: 0; width: 100%; height: 2px; transform: translateY(-50%); }
.pa-ico::after { left: 50%; top: 0; width: 2px; height: 100%; transform: translateX(-50%); transition: opacity .25s; }
.pa-item.active .pa-ico::after { opacity: 0; }
.pa-panel { max-height: 0; overflow: hidden; transition: max-height .5s cubic-bezier(.16,1,.3,1); }
.pa-item.active .pa-panel { max-height: 900px; }
.pa-inner { padding: 0 4px 34px 178px; }
.pa-inner p { font-size: 18px; font-weight: 300; line-height: 1.7; color: rgba(254,254,254,0.75); max-width: 680px; }
.pa-inner p + p { margin-top: 18px; }
/* perspectives — featured standfirst + minimal list */
.persp2 { border-top: 1px solid var(--line); }
.persp2-feat { display: block; padding: 64px 56px 72px; border-bottom: 1px solid var(--line); }
.p2-meta { display: flex; justify-content: flex-start; gap: 14px; align-items: baseline; font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; max-width: 1000px; margin-bottom: 30px; }
.p2-meta .pc-date::before { content: "·"; margin-right: 14px; color: var(--gr); }
.p2-meta .pc-cat { color: var(--g); } .p2-meta .pc-date { color: var(--gr); }
.p2-meta .pc-cat, .p2-meta .pc-date { white-space: nowrap; }
.p2-lead { font-family: var(--serif); font-style: italic; font-size: clamp(34px,5vw,64px); font-weight: 500; line-height: 1.12; letter-spacing: -0.02em; color: var(--wh); max-width: 1000px; }
.p2-lead .hl { color: var(--g); }
.p2-sub { font-size: 18px; font-weight: 300; line-height: 1.6; color: rgba(254,254,254,0.55); margin-top: 26px; max-width: 640px; }
.p2-read { display: inline-block; margin-top: 28px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--g); transition: gap .2s; }
.persp2-feat:hover .p2-read { text-decoration: underline; text-underline-offset: 4px; }
.persp2-list { display: flex; flex-direction: column; }
.p2-row { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 28px 56px; border-bottom: 1px solid var(--line); color: var(--wh); transition: background .2s, padding-left .35s cubic-bezier(.16,1,.3,1); }
.p2-row:hover { background: var(--bk1); padding-left: 70px; }
.p2-rt { font-size: clamp(20px,2.2vw,28px); font-weight: 600; letter-spacing: -0.02em; transition: color .2s; }
.p2-row:hover .p2-rt { color: var(--g); }
.p2-rc { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gr); white-space: nowrap; }
@media (max-width: 720px) {
  .persp2-feat { padding: 44px 24px 48px; }
  .p2-row { padding: 24px; }
  .p2-row:hover { padding-left: 24px; }
}
.pa-read { display: inline-block; margin-top: 20px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--g); transition: gap .2s; }
@media (max-width: 720px) {
  .pa-head { grid-template-columns: 1fr 24px; gap: 8px 16px; padding: 24px 2px; }
  .pa-cat { grid-row: 1; }
  .pa-date { display: none; }
  .pa-ico { grid-row: 1; }
  .pa-title { grid-column: 1 / -1; }
  .pa-inner { padding: 0 2px 28px 2px; }
  .pa-inner p { font-size: 16px; }
}

/* perspective article reading view */
.article { max-width: 760px; margin: 0 auto; padding: 130px 24px 100px; }
.article-back { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--gr2); transition: color .2s; }
.article-back:hover { color: var(--g); }
.article-meta { display: flex; gap: 16px; align-items: baseline; margin: 40px 0 20px; }
.pc-date, .pc-cat, .p2-meta { font-feature-settings: "tnum" 1; font-variant-numeric: tabular-nums; }
.article-title { font-size: clamp(34px, 5vw, 60px); font-weight: 800; letter-spacing: -0.04em; line-height: 1.0; }
.article-standfirst { font-family: var(--serif); font-style: italic; font-size: 22px; line-height: 1.45; color: rgba(254,254,254,0.7); margin-top: 28px; }
.article-body { margin-top: 44px; border-top: 1px solid var(--line); padding-top: 40px; }
.article-body p { font-size: 19px; font-weight: 300; line-height: 1.75; color: rgba(254,254,254,0.82); }
.article-body p + p { margin-top: 26px; }
.article-foot { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: .04em; color: var(--gr); }
.article-cta { color: var(--g); font-weight: 600; }
@media (max-width: 720px) { .article { padding: 100px 24px 72px; } .article-body p { font-size: 17px; } }
@media (max-width: 720px) {
  .home-sectors { padding: 64px 24px; }
  .home-sectors .hub { grid-template-columns: 1fr; }
  .hub-core, .hub-editorial { padding: 32px 28px; }
}
/* sector expanding-panel strip */
.hs-strip { display: flex; gap: 10px; height: 460px; }
.hsp { position: relative; flex: 1; overflow: hidden; display: block; transition: flex 0.6s cubic-bezier(.16,1,.3,1); }
.hs-strip:hover .hsp { flex: 1; }
.hs-strip .hsp:hover, .hsp.active { flex: 4.2; }
.hsp img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(45%) contrast(1.06) brightness(0.55); transition: filter .5s, transform 1s cubic-bezier(.16,1,.3,1); }
.hsp:hover img, .hsp.active img { filter: grayscale(0%) contrast(1.06) brightness(0.6); }
.hsp::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 40%, rgba(8,10,8,0.9)); }
.hsp-lbl { position: absolute; inset: 0; z-index: 2; padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; }
.hsp-m { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--g); opacity: 0; transition: opacity .4s .1s; }
.hsp-t { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.06; color: #fff; white-space: nowrap; writing-mode: vertical-rl; transform: rotate(180deg); transition: writing-mode 0s, transform .4s; }
.hsp:hover .hsp-t, .hsp.active .hsp-t { writing-mode: horizontal-tb; transform: none; white-space: normal; }
.hsp:hover .hsp-m, .hsp.active .hsp-m { opacity: 1; }
@media (max-width: 720px) {
  .hs-strip { flex-direction: column; height: auto; }
  .hsp { height: 130px; }
  .hs-strip .hsp:hover, .hsp.active { flex: 1; }
  .hsp-t { writing-mode: horizontal-tb; transform: none; white-space: normal; font-size: 21px; }
  .hsp-m { opacity: 1; }
}
/* sector bento mosaic */
.hs-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 14px; }
.hst { position: relative; overflow: hidden; display: block; }
.hst img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(35%) contrast(1.06) brightness(0.62); transition: transform 1s cubic-bezier(.16,1,.3,1), filter .5s; }
.hst::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(8,10,8,0.88)); }
.hst:hover img { transform: scale(1.06); filter: grayscale(0%) contrast(1.06) brightness(0.5); }
.hst-in { position: absolute; inset: 0; z-index: 2; padding: 22px; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; }
.hst-m { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--g); }
.hst-t { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; color: #fff; }
.hst-a { grid-column: span 2; grid-row: span 2; }
.hst-a .hst-t { font-size: 32px; }
.hst-b { grid-column: span 2; }
.hst-c { grid-column: span 2; }
.hst-d { grid-column: span 2; }
.hst-e { grid-column: span 2; }
@media (max-width: 720px) {
  .hs-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
  .hst-a, .hst-b, .hst-c, .hst-d, .hst-e { grid-column: span 1; grid-row: span 1; }
  .hst-a .hst-t { font-size: 22px; }
}

/* forward arrow on all action buttons (static — no motion) */
.cta-btn, .hero-cta, .hx-cta, .nav-cta { display: inline-flex; align-items: center; gap: 10px; }
.cta-btn::after, .hero-cta::after, .hx-cta::after, .nav-cta::after {
  content: '\2192'; transition: transform .25s cubic-bezier(.16,1,.3,1);
}
.cta-btn:hover::after, .hero-cta:hover::after, .hx-cta:hover::after, .nav-cta:hover::after {
  transform: none;
}

/* ── self-drawing gap diagram (Purpose · section 01) ──
   No-JS / no-IO fallback: lines & labels render fully (no .js-draw class added). */
.gap-curve.js-draw .gap-base,
.gap-curve.js-draw .gap-hi { stroke-dasharray: 1; stroke-dashoffset: 1; }
.gap-curve.js-draw .gap-dot,
.gap-curve.js-draw .gap-lbl { opacity: 0; }
.gap-curve.js-draw.drawn .gap-base { animation: gapDraw 1.15s cubic-bezier(.65,0,.35,1) forwards; }
.gap-curve.js-draw.drawn .gap-hi   { animation: gapDraw .55s cubic-bezier(.65,0,.35,1) 1.0s forwards; }
.gap-curve.js-draw.drawn .gap-dot  { animation: gapFade .4s ease 1.45s forwards; }
.gap-curve.js-draw.drawn .gap-lbl  { animation: gapFade .5s ease 1.55s forwards; }
@keyframes gapDraw { to { stroke-dashoffset: 0; } }
@keyframes gapFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce){
  .gap-curve.js-draw .gap-base, .gap-curve.js-draw .gap-hi { stroke-dashoffset: 0; }
  .gap-curve.js-draw .gap-dot, .gap-curve.js-draw .gap-lbl { opacity: 1; }
}

/* ── tilt-hover: subtle lean on interactive cards (reads the brand name) ── */
@media (hover: hover) and (pointer: fine) {
  .sc-card, .pcard, .persp2-feat {
    transition: transform .55s cubic-bezier(.16,1,.3,1), box-shadow .55s cubic-bezier(.16,1,.3,1);
    transform-origin: center center;
  }
  .sc-card:hover, .pcard:hover, .persp2-feat:hover {
    transform: perspective(1100px) rotateX(2.4deg) rotateY(-3deg) translateY(-6px);
    box-shadow: 0 26px 54px -26px rgba(0,0,0,0.7);
    z-index: 3;
  }
  .persp2-feat { will-change: transform; }
}
@media (prefers-reduced-motion: reduce){
  .sc-card:hover, .pcard:hover, .persp2-feat:hover { transform: none; }
}

/* profile linkedin link */
.prof-social { display: inline-flex; align-items: center; margin-top: 22px; transition: opacity .2s; }
.prof-social:hover { opacity: .7; }
.prof-social img { flex-shrink: 0; width: 26px; height: auto; display: block; }

/* team card linkedin badge */
.tcard-wrap { position: relative; display: flex; flex-direction: column; }
.tcard-li { position: static; align-self: flex-start; margin-top: 12px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.18); color: var(--gr2); transition: background .2s, color .2s, border-color .2s; }
.tcard-li:hover { background: var(--g); border-color: var(--g); color: #0a0a0a; }

/* placeholder while a licensed photo is sourced */
.sc-img-pending { background: #1a1a1a; }
.sc-img-pending::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(39,234,166,0.10) 0%, rgba(39,234,166,0) 60%); }

/* short-page footer anchoring — opt-in per page, so wide-content pages keep normal block flow */
.main.short-page { display: flex; flex-direction: column; min-width: 0; width: 100%; min-height: 100vh; min-height: 100dvh; }
.main.short-page > .site-footer { margin-top: auto; }

/* small-screen tuning */
@media (max-width: 760px){
  .section { padding: 60px 24px; }
  .hero.inner { min-height: 62vh; }
  .big-h { font-size: clamp(28px, 8vw, 40px); }
  .team-cards, .adv-grid { gap: 14px; }
  .tcard-meta, .adv-meta { padding: 20px 18px 18px; }
  .tcard-name, .adv-name { font-size: 19px; }
  .tcard-role, .adv-role, .adv-tilt { font-size: 11px; }
  .timeline { gap: 28px; }
  .cta-band { grid-template-columns: 1fr; }
  .cta-cell { padding: 44px 24px; }
  img { max-width: 100%; height: auto; }
}
@media (max-width: 420px){
  .section { padding: 48px 18px; }
  .team-cards, .adv-grid { grid-template-columns: 1fr; }
}

/* footer follow-us mark */
.footer-li { display: inline-flex; align-items: center; transition: opacity .2s; }
.footer-li:hover { opacity: .7; }
.footer-li img { width: 24px; height: auto; display: block; }

.footer-sub-h5 { margin-top: 26px; }

/* half-width hero image — preserves a portrait source's ratio */
.hero.inner .hero-img.hero-half { left: auto; right: 0; top: 96px; bottom: 0; width: auto; aspect-ratio: 1280 / 1707; }
.hero.inner .hero-img.hero-half img { animation: none; transform: scale(1.42); transform-origin: 0% bottom; }
.hero.inner .hero-img.hero-half::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,18,18,0.85) 0%, rgba(18,18,18,0.25) 14%, rgba(18,18,18,0) 30%); }
@media (max-width: 900px){
  .hero.inner:has(.hero-img.hero-half) { flex-direction: column; align-items: stretch; min-height: 0; }
  .hero.inner .hero-img.hero-half { position: relative; inset: auto; width: 100%; flex: 0 0 auto; aspect-ratio: 4 / 3; }
  
  .hero.inner .hero-img.hero-half::after { background: linear-gradient(180deg, rgba(18,18,18,0.1) 0%, rgba(18,18,18,0.55) 70%, var(--bk) 100%); }
}

/* hero-half: reserve text column — panel is absolutely positioned, so the text needs its own right bound */
.hero.inner:has(.hero-img.hero-half) .hero-inner { padding-right: calc((84vh - 96px) * 0.75 + 56px); }
@media (max-width: 900px){
  .hero.inner:has(.hero-img.hero-half) .hero-inner { padding-right: 0; }
}
