/* Accumulating Impact · v5 production styles.
   Desktop values are the 1440 design; phone values (< 700px) are the 390 design. Nav collapses below 1100px. */

/* Geist and Geist Mono, self-hosted (SIL OFL 1.1, see /fonts/OFL.txt). Variable weight files, Latin subsets. */
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/geist-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/geist-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Geist Mono'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/geist-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Geist Mono'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(/fonts/geist-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --ink: #000d10; --muted: #5e5e66; --pebble: #d5d3d4; --gold: #E8C66A; --clay: #bc7155; --paper: #F4EFE6;
  --px: 64px;
  --font: 'Geist', 'Helvetica Neue', Helvetica, sans-serif;
  --mono: 'Geist Mono', ui-monospace, monospace;
}
@media (max-width: 699px) { :root { --px: 20px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
html.panel-open { overflow: hidden; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
p, h1, h2, h3, h4, blockquote, figure { margin: 0; }
h1, h2, h3 { font-weight: 700; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
button { font: inherit; }
main:focus { outline: none; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; box-shadow: 0 0 0 5px #fff; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -80px; z-index: 300; background: #fff; color: var(--ink); padding: 12px 18px; border-radius: 1000px; font-weight: 700; }
.skip:focus { top: 12px; }
.u-link { border-bottom: 1px solid currentColor; }
.nw { white-space: nowrap; }
.only-phone { display: none; }
@media (max-width: 699px) { .only-desk { display: none; } .only-phone { display: inline; } }

/* Buttons: pills, 52px, 17/700, no shadows. Hover inverts. */
.btn { height: 52px; padding: 0 24px; border-radius: 1000px; display: inline-flex; align-items: center; justify-content: center; flex: none; white-space: nowrap;
  font-family: var(--font); font-size: 17px; font-weight: 700; line-height: 1; border: 1px solid transparent; background: transparent; color: inherit; cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s; }
.btn-48 { height: 48px; }
.btn-40 { height: 40px; padding: 0 18px; font-size: 15px; }
.btn-gold { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.btn-gold:hover { background: #fff; border-color: #fff; }
.btn-ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.btn-ink:hover { background: #fff; border-color: #fff; color: var(--ink); }
.btn-line-light { border-color: #fff; color: #fff; }
.btn-line-light:hover { background: #fff; color: var(--ink); }
.btn-line-ink { border-color: var(--ink); color: var(--ink); }
.btn-line-ink:hover { outline: 3px solid rgba(0, 13, 16, .15); outline-offset: 2px; }
html:not(.js) [data-toggle], html:not(.js) .deals-more, html:not(.js) .deals-hint { display: none; }

/* ---------- Nav ---------- */
.nav { position: relative; z-index: 20; height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 var(--px); color: var(--ink); }
.nav--dark { color: #fff; }
.nav-brand { display: flex; align-items: center; gap: 12px; color: inherit; }
.nav-brand img { display: block; height: 40px; width: auto; }
.nav-brand span { font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1; white-space: nowrap; }
.nav-desk { display: flex; align-items: center; gap: 8px; }
.nav-pill { display: flex; align-items: center; gap: 4px; padding: 4px; border-radius: 1000px; background: rgba(0, 13, 16, .05); }
.nav--dark .nav-pill { background: rgba(255, 255, 255, .08); }
.nav-pill a { height: 40px; padding: 0 18px; border-radius: 1000px; white-space: nowrap; display: inline-flex; align-items: center; font-size: 17px; transition: opacity .2s; }
.nav-pill a:hover { opacity: .7; }
.nav-pill a[aria-current="page"] { background: var(--ink); color: #fff; opacity: 1; }
.nav--dark .nav-pill a[aria-current="page"] { background: #fff; color: var(--ink); }
.icon-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid currentColor; background: transparent; color: inherit; display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none; padding: 0; }
.icon-btn:hover { opacity: .7; }
.i-search { position: relative; display: block; width: 16px; height: 16px; }
.i-search span:first-child { position: absolute; left: 0; top: 0; width: 12px; height: 12px; border: 2px solid currentColor; border-radius: 50%; }
.i-search span:last-child { position: absolute; left: 10px; top: 11px; width: 7px; height: 2px; background: currentColor; transform: rotate(45deg); transform-origin: 0 50%; }
.nav-cta { height: 48px; padding: 0 22px; border-radius: 1000px; white-space: nowrap; display: inline-flex; align-items: center; font-size: 17px; font-weight: 700; background: var(--ink); color: #fff; transition: opacity .2s; }
.nav--dark .nav-cta { background: #fff; color: var(--ink); }
.nav-cta:hover { opacity: .7; }
.nav-mob { display: none; align-items: center; gap: 8px; flex: none; }
.nav-burger { width: 48px; height: 48px; border-radius: 50%; border: none; background: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; flex: none; padding: 0; }
.nav-burger span { display: block; width: 18px; height: 2px; background: #fff; }
.nav--dark .nav-burger { background: #fff; }
.nav--dark .nav-burger span { background: var(--ink); }
@media (max-width: 1099px) { .nav-desk { display: none; } .nav-mob { display: flex; } }
@media (max-width: 699px) { .nav { height: 76px; } .nav-brand img { height: 32px; } .nav-brand span { font-size: 17px; } }
@media (max-width: 374px) { .nav-brand span { white-space: normal; width: min-content; line-height: 1.05; } }
@media (max-width: 359px) { .nav { gap: 12px; } .nav-brand { gap: 8px; } .nav-brand span { font-size: 16px; } }

/* ---------- Menu and search panels ---------- */
.panel { position: fixed; left: 0; right: 0; top: 0; z-index: 100; background: var(--ink); color: #fff; display: flex; flex-direction: column; padding: 0 var(--px); overflow-y: auto; max-height: 100vh; max-height: 100dvh; }
.panel[hidden] { display: none; }
.panel-top { height: 104px; display: flex; align-items: center; justify-content: space-between; flex: none; }
.close-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #fff; background: transparent; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; flex: none; padding: 0; }
.close-btn:hover { background: #fff; color: var(--ink); }
.panel-menu { height: 100vh; height: 100dvh; padding-bottom: 32px; }
.menu-links { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.menu-links a { display: block; padding: 14px 0; font-weight: 700; font-size: 44px; line-height: 1; letter-spacing: -.03em; }
.menu-links a[aria-current="page"] { color: var(--gold); }
.menu-mail { font-size: 18px; color: #8e8e95; }
.panel-search { min-height: 640px; padding-bottom: 64px; }
.search-body { display: flex; flex-direction: column; gap: 32px; width: 100%; max-width: 1100px; padding-top: 40px; }
.search-label { display: flex; flex-direction: column; gap: 14px; }
.search-label > span { font-size: 17px; color: #8e8e95; }
.panel-search input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid #fff; border-radius: 0; outline: none; color: #fff; -webkit-appearance: none; appearance: none;
  font-family: var(--font); font-weight: 700; font-size: 56px; line-height: 1.1; letter-spacing: -.03em; padding: 0 0 16px; }
.panel-search input:focus-visible { box-shadow: 0 1px 0 #fff; outline: none; }
.panel-search input::placeholder { color: #5e5e66; }
.panel-search input::-webkit-search-cancel-button { display: none; }
.search-count { font-size: 17px; color: #8e8e95; }
.search-count[hidden], .search-none[hidden] { display: none; }
.search-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 64px; max-height: 520px; overflow: auto; }
.search-groups:empty { display: none; }
.sg { display: flex; flex-direction: column; }
.sg-label { margin: 0 0 12px; font-size: 17px; font-weight: 700; color: var(--gold); }
.sr { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.sr:hover { opacity: .7; }
.sr-t { font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: -.015em; text-wrap: pretty; }
.sr-s { font-size: 15px; line-height: 1.5; color: #8e8e95; }
.sr-more { padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .16); font-size: 15px; }
.search-none { font-size: 18px; line-height: 1.5; }
.search-none a { border-bottom: 1px solid #fff; }
@media (max-width: 1099px) { .search-groups { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 699px) {
  .panel-top { height: 76px; }
  .panel-search { min-height: 100vh; min-height: 100dvh; padding-bottom: 32px; }
  .search-body { padding-top: 16px; gap: 24px; }
  .panel-search input { font-size: 32px; }
  .sr-t { font-size: 18px; }
  .search-groups { max-height: none; overflow: visible; }
}

/* ---------- Footer ---------- */
.footer { background: var(--ink); color: #fff; padding: 104px var(--px) 40px; display: flex; flex-direction: column; gap: 96px; }
.footer-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 64px; }
.fcol { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.fcol--cta { align-items: flex-end; }
.flabel { margin: 0 0 8px; font-size: 17px; color: #8e8e95; }
.fcol > a:not(.btn), .fcol > span { font-size: 20px; }
.fcol > a:not(.btn):hover, .footer-base a:hover { color: #8e8e95; }
.footer-mark { font-weight: 700; font-size: min(150px, calc((100vw - 128px) / 6.8)); line-height: .86; letter-spacing: -.045em; }
.footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 24px; border-top: 1px solid rgba(213, 211, 212, .2); font-size: 17px; }
.footer-base > span { color: #8e8e95; }
.footer-base > div { display: flex; gap: 28px; }
@media (min-width: 700px) and (max-width: 1099px) {
  .footer-cols { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .fcol--cta { align-items: flex-start; }
}
@media (max-width: 699px) {
  .footer { padding-top: 64px; gap: 56px; }
  .footer-cols { grid-template-columns: 1fr; }
  .fcol--cta { align-items: flex-start; }
  .footer-mark { font-size: min(52px, calc((100vw - 40px) / 6.8)); }
}

/* ---------- Page head (PageHeadV5) ---------- */
.ph { position: relative; overflow: hidden; background: linear-gradient(180deg, #C6D6E3 0%, #D9E3EB 40%, #ECEAE3 80%, #F4EFE6 100%); color: var(--ink);
  min-height: 620px; display: flex; flex-direction: column; container-type: inline-size; }
.ph--visual { min-height: 680px; color: #fff; background: #0B1220; }
.ph-visual { position: absolute; inset: 0; }
.ph-shade { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(15,15,28,.78) 0%, rgba(15,15,28,.45) 40%, rgba(15,15,28,0) 70%), linear-gradient(0deg, rgba(15,15,28,.6) 0%, rgba(15,15,28,0) 45%); }
.ph-img { position: absolute; inset: 0; mix-blend-mode: multiply; opacity: .4; }
.ph-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05) brightness(1.5); }
.ph-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 55%; background: linear-gradient(0deg, rgba(244,239,230,.95), rgba(244,239,230,0)); }
.ph-body { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: 20px; padding: 0 var(--px) 64px; }
.ph-eyebrow { font-size: 17px; line-height: 1.4; }
.ph--visual .ph-eyebrow { text-shadow: 0 1px 12px rgba(15,15,28,.75), 0 0 2px rgba(15,15,28,.6); }
.ph-title { font-weight: 700; font-size: min(150px, 15cqw); line-height: .88; letter-spacing: -.045em; text-wrap: balance; }
.ph--blocks .ph-title { font-size: min(150px, 13.5cqw); }
.ph--ring .ph-title { max-width: 46%; }
/* Subscribe (video loop) and Privacy (still), made with HyperFrames; narrower shade so the ring right of the title stays bright */
.ph-notes, .ph-still { overflow: hidden; background: #0B1220; }
.ph-notes img, .ph-notes video, .ph-still img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 95% 30%; }
.ph-notes video { opacity: 0; transition: opacity .5s ease; }
.ph-notes video.is-on { opacity: 1; }
.ph--notes .ph-shade, .ph--privacy .ph-shade { background: linear-gradient(90deg, rgba(15,15,28,.72) 0%, rgba(15,15,28,.35) 30%, rgba(15,15,28,0) 52%), linear-gradient(0deg, rgba(15,15,28,.6) 0%, rgba(15,15,28,0) 40%); }
@media (min-width: 700px) { .ph--privacy .ph-title { font-size: min(150px, 11cqw); } } /* one line, clear of the picture */
@media (max-width: 1099.98px) {
  /* the ring reaches the left edge here: shade only under the title */
  .ph--notes .ph-shade, .ph--privacy .ph-shade { background: linear-gradient(0deg, rgba(15,15,28,.75) 0%, rgba(15,15,28,0) 42%); }
}
@media (max-width: 599px) {
  .ph-notes img, .ph-notes video, .ph-still img { object-position: 50% 0%; }
}
@media (max-width: 699px) {
  .ph, .ph--visual { min-height: 480px; }
  .ph-body { padding-bottom: 40px; }
  .ph-title, .ph--blocks .ph-title { font-size: 56px; }
  .ph--ring .ph-title { max-width: none; }
}

/* Contact on phones and tablets: smaller title so the 30-minute ring fits in full above it (scenes.js places the ring) */
@media (max-width: 1179.98px) {
  .ph--ring .ph-title { max-width: none; font-size: min(10cqw, 104px); }
  .ph--ring .ph-shade, .ph--blocks .ph-shade { background: linear-gradient(0deg, rgba(15,15,28,.72) 0%, rgba(15,15,28,0) 42%); } /* centred picture: shade only under the title, not its left half */
}
@media (max-width: 699px) { .ph--ring { min-height: 540px; } .ph--ring .ph-title { font-size: 44px; } }

/* Canvas scenes (HeaderSceneV5): 1920x1080 stage scaled by scenes.js */
.scene { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse 80% 70% at 60% 35%, #22324A 0%, #121B2B 55%, #0B1220 100%); }
.scene-stage { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; transform-origin: 0 0; font-family: var(--font); color: #fff; }
.scene-stage canvas { position: absolute; inset: 0; width: 1920px; height: 1080px; }

/* Photo slideshow (PhotoSlidesV5) */
.slides { position: absolute; inset: 0; overflow: hidden; background: #0B1220; }
.slides-stage, .slide, .slide-kb { position: absolute; inset: 0; }
.slide-kb { background-size: cover; background-repeat: no-repeat; }
.slides-shade { position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(11,18,32,.78) 0%, rgba(11,18,32,.35) 45%, rgba(11,18,32,0) 70%), linear-gradient(0deg, rgba(11,18,32,.85) 0%, rgba(11,18,32,0) 50%), linear-gradient(180deg, rgba(11,18,32,.55) 0%, rgba(11,18,32,0) 25%); }
.slides-bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--gold); transform-origin: 0 50%; transform: scaleX(0); }

/* Quote reel (QuoteReelV5) */
.reel { position: absolute; inset: 0; overflow: hidden; background: #0B1220; color: #fff; font-family: var(--font); }
.reel-stage { position: absolute; inset: 0; }
.reel a:hover { opacity: .8; }

/* ---------- Shared section bits ---------- */
.split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 64px; }
.grid-4-8 { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 80px; }
.label { font-size: 17px; line-height: 1.4; color: var(--muted); }
.label-2 { font-size: 17px; line-height: 2; color: var(--muted); }
.h2-52 { font-size: 52px; line-height: 1; letter-spacing: -.025em; text-wrap: balance; }
.h2-61 { font-size: 61px; line-height: 1; letter-spacing: -.025em; text-wrap: balance; }
.h2xl { font-size: 104px; line-height: .92; letter-spacing: -.04em; }
.clay { background: var(--clay); color: #fff; padding: 64px 64px 72px; display: flex; flex-direction: column; gap: 28px; }
.clay > .btn { align-self: flex-start; }
.clay-body { font-size: 20px; line-height: 1.55; max-width: 560px; }
.clay-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 8px; }
.clay-mail { font-size: 18px; border-bottom: 1px solid #fff; padding-bottom: 2px; }
/* The 104px title must fit the panel: on tablets the Home panel is narrower than "ambition." at full size. */
@media (min-width: 700px) { .clay { container-type: inline-size; } .clay .h2xl { font-size: min(104px, 100cqi / 4.3); } }
/* Tablets (700 to 1099, where the nav collapses): the 4/8 columns are too narrow for the headings and lists, so stack them as on phones. */
@media (min-width: 700px) and (max-width: 1099.98px) {
  .split { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .grid-4-8 { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (min-width: 1100px) and (max-width: 1279px) { .th-head .h2-61, .sp-head .h2-61 { font-size: min(61px, calc((100vw - 224px) * .066)); } }
@media (max-width: 699px) {
  .split { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .grid-4-8 { grid-template-columns: 1fr; gap: 28px; }
  .h2-52 { font-size: 36px; }
  .h2-61 { font-size: 35px; }
  .h2xl { font-size: 48px; }
  .clay { padding: 40px 24px; }
}
@media (max-width: 359px) { .clay { padding: 32px 20px; } .clay .btn { padding: 0 20px; } }

/* ---------- Home ---------- */
.hero { position: relative; height: 920px; background: #0B1220; overflow: hidden; display: flex; flex-direction: column; color: #fff; }
.hero-scene { position: absolute; inset: 0; z-index: 1; } /* Rising field (hero.js) fills the hero; it frames itself around the text */
.hero-field canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hero-nav { position: relative; z-index: 5; }
.hero-body { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; justify-content: space-between; padding: 40px var(--px) 56px; }
.hero-lead { align-self: flex-start; display: flex; flex-direction: column; gap: 20px; max-width: 660px; }
.hero-eyebrow { font-size: 17px; line-height: 1.4; color: var(--gold); }
.hero h1 { font-size: 46px; line-height: 1.02; letter-spacing: -.025em; text-wrap: balance; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.hero-mark { font-weight: 700; font-size: min(176px, calc((100vw - 128px) / 6.6)); line-height: .84; letter-spacing: -.05em; }
@media (max-width: 1179px) { .hero { height: 1200px; } }
@media (max-width: 699px) {
  .hero { height: 1080px; }
  .hero-body { padding: 24px var(--px) 32px; }
  .hero-lead { max-width: 360px; }
  .hero h1 { font-size: 30px; }
  .hero-mark { font-size: min(54px, calc((100vw - 40px) / 6.6)); }
}

.h-sec { padding: 136px var(--px); background: #fff; }
.split--head { margin-bottom: 80px; }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 48px; }
@media (max-width: 1279px) { .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.stat { border-top: 1px solid var(--pebble); padding: 28px 0 64px; display: flex; flex-direction: column; gap: 14px; }
.stat-v { font-weight: 700; font-size: 56px; line-height: 1; letter-spacing: -.035em; }
.stat-l { font-size: 18px; line-height: 1.61; color: var(--muted); max-width: 320px; }

.deals { padding: 136px 0; background: #2E3D52; color: #fff; scroll-margin-top: 0; }
.deals > .split { padding: 0 var(--px); }
.label--slate { color: #c3ccd8; }
.deals-media { padding: 0 var(--px); margin-top: 72px; }
/* Transactions globe (option T3, 14 Oct 2026; replaced the corridors animation and the city map). Drawn by globe.js. */
.globe { position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 520px; background: #02070d; overflow: hidden; touch-action: pan-y; cursor: grab; }
.globe.is-drag { cursor: grabbing; }
.globe canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.globe-hud { position: absolute; left: 28px; top: 26px; max-width: 34%; pointer-events: none; }
.globe-k { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.globe-r { margin: 10px 0 0; font-size: clamp(28px, 3.2vw, 46px); font-weight: 700; letter-spacing: -.02em; line-height: 1; color: #fff; }
.globe-s { margin: 10px 0 0; font-size: 15px; line-height: 1.45; color: #c3ccd8; }
.globe-s span { font-family: var(--mono); color: var(--gold); }
.globe-tot { position: absolute; right: 28px; top: 26px; text-align: right; pointer-events: none; }
.globe-tot p { margin: 0 0 14px; font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #c3ccd8; }
.globe-tot b { display: block; margin-bottom: 6px; font-family: var(--font); font-size: clamp(40px, 4.6vw, 64px); line-height: .9; font-weight: 700; letter-spacing: -.03em; color: var(--gold); }
.globe-tour { position: absolute; left: 24px; bottom: 22px; display: flex; flex-wrap: wrap; gap: 8px; }
.globe-tour button { height: 34px; padding: 0 14px; border-radius: 1000px; border: 1px solid rgba(255,255,255,.35); background: rgba(2,7,13,.6); color: #fff; font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; }
.globe-tour button[aria-pressed="true"] { background: #fff; color: var(--ink); border-color: #fff; }
.globe-legend { position: absolute; right: 26px; bottom: 22px; text-align: right; font-size: 13px; line-height: 1.6; color: #c3ccd8; pointer-events: none; }
.globe-legend p { margin: 0; }
.globe-legend i { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 8px var(--gold); vertical-align: 1px; }
.globe-legend em { display: inline-block; width: 2px; height: 14px; margin: 0 11px 0 3px; background: linear-gradient(to top, var(--gold), rgba(232,198,106,0)); vertical-align: -2px; }
.globe-tip { position: absolute; z-index: 2; width: 300px; max-width: calc(100% - 16px); padding: 12px 14px; border: 1px solid rgba(232,198,106,.45); border-radius: 4px; background: rgba(10,20,34,.94); color: #fff;
  font-size: 14px; line-height: 1.4; pointer-events: none; opacity: 0; transition: opacity .15s; }
.globe-tip.show { opacity: 1; }
.globe-tip .tip-k { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: .08em; color: var(--gold); }
.globe-tip .tip-n { margin: 3px 0 0; font-size: 17px; font-weight: 700; }
.globe-tip ul { margin: 8px 0 0; padding: 0; list-style: none; color: #c3ccd8; }
.globe-tip li { margin-top: 3px; }
.globe-tip li b { color: #fff; font-weight: 600; }
.globe:not(.is-ready) .globe-tour, .globe:not(.is-ready) .globe-legend { visibility: hidden; }
.deals-hint { margin: 16px var(--px) 0; font-size: 17px; color: #c3ccd8; }
.deals-countries { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 var(--px); margin-top: 16px; }
.city-chip { height: 40px; padding: 0 14px; border-radius: 1000px; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; font: inherit; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.city-chip span { font-family: var(--mono); font-size: 13px; color: var(--gold); }
.city-chip[aria-pressed="true"] { background: #fff; color: var(--ink); border-color: #fff; }
.city-chip[aria-pressed="true"] span { color: var(--ink); }
.deals-table { padding: 0 var(--px); margin-top: 80px; scroll-margin-top: 120px; }
.deals-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 28px; }
.deals-filter[hidden] { display: none; }
.deals-filter-label { font-family: var(--mono); font-size: 15px; letter-spacing: .04em; color: var(--gold); }
.drow { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.1fr) minmax(0, 2fr) 116px; gap: 32px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: 18px; line-height: 1.45; }
.drow--head { padding: 0 0 16px; border-bottom-color: #fff; font-size: 17px; color: #c3ccd8; }
.dc { font-weight: 700; }
.dk, .dy { color: #c3ccd8; }
.dy { text-align: right; font-variant-numeric: tabular-nums; }
.drow--head .dy { font-weight: 400; }
/* The kind of deal in plain words above the detail (4B, 15 Oct 2026), for readers outside business development. */
.dtag { display: block; margin-bottom: 2px; font-size: 16px; font-weight: 700; color: #E8C66A; }
/* Under the table: what is public, and the full record counted by type (15 Oct 2026). */
.deals-note { margin: 40px var(--px) 0; max-width: 820px; font-size: 17px; line-height: 1.6; color: #c3ccd8; }
.deals-note p + p { margin-top: 8px; }
.deals-note b { color: #fff; font-weight: 700; }
@media (max-width: 699px) { .deals-note { margin-top: 32px; font-size: 16px; } }
/* The full record by category, public and confidential (15 Oct 2026). An agreement can count in more than one. */
.rec { margin: 48px var(--px) 0; }
.rec { margin-top: 96px; }
.rec-split { margin-bottom: 40px; }
.rec-split h3 { margin: 0; color: #fff; }
/* Deals heading and full-record heading: one column from the left edge on every screen (Yariv, 15 Oct 2026). */
.split--wide { grid-template-columns: minmax(0, 1fr); }
.split--wide > .label:empty { display: none; }
.split--wide > .h2-52 { max-width: 1080px; }
.rec-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); }
.rec-i b { display: block; font-size: 40px; line-height: 1.05; font-weight: 700; letter-spacing: -.02em; color: #E8C66A; font-variant-numeric: tabular-nums; }
.rec-i span { display: block; margin-top: 6px; font-size: 16px; line-height: 1.4; color: #c3ccd8; }
.rec-note { margin: 24px 0 0; font-size: 15px; color: #c3ccd8; }
@media (max-width: 1099px) { .rec-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 699px) { .rec { margin-top: 40px; } .rec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; } .rec-i b { font-size: 32px; } .rec-i span { font-size: 15px; } }
.js .dtable.is-collapsed .drow.is-extra, .js .dtable.is-collapsed .drow--conf, .js .dtable.is-filtered .drow--conf { display: none; }
.js .dtable.is-filtered .drow:not(.drow--head) { display: none; }
.js .dtable.is-filtered .drow.is-match { display: grid; }
.deals-more { margin-top: 32px; display: flex; }
@media (max-width: 699px) {
  .h-sec { padding: 88px var(--px); }
  .split--head { margin-bottom: 40px; }
  .stats { grid-template-columns: 1fr; column-gap: 0; }
  .stat { padding: 24px 0 36px; }
  .stat-v { font-size: 44px; }
  .deals { padding: 88px 0; }
  .deals-media { padding: 0; margin-top: 40px; }
  .globe { aspect-ratio: 4 / 5; min-height: 0; }
  .globe-hud { left: 20px; top: 20px; max-width: calc(100% - 40px); }
  .globe-r { font-size: 30px; }
  .globe-tot, .globe-legend { display: none; }
  .globe-tour { left: 16px; bottom: 16px; }
  .deals-table { margin-top: 48px; }
}
/* Phones and narrow tablets: the four-column transactions table becomes stacked rows. */
@media (max-width: 899.98px) {
  .dtable { border-top: 1px solid #fff; }
  .drow--head { display: none; }
  .drow { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "c y" "t t" "k k"; gap: 6px 16px; align-items: baseline; }
  .dc { grid-area: c; font-size: 18px; line-height: 1.35; }
  .dy { grid-area: y; font-size: 17px; }
  .dt { grid-area: t; font-size: 18px; line-height: 1.5; }
  .dk { grid-area: k; font-size: 17px; line-height: 1.4; }
}

.band { background: #0f0f1c; color: #fff; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: 720px; }
.band-img { position: relative; overflow: hidden; min-height: 720px; }
.band-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
.band-body { display: flex; flex-direction: column; justify-content: flex-end; gap: 32px; padding: 120px 64px 96px 80px; }
.band-quote { font-weight: 700; font-size: 52px; line-height: 1.05; letter-spacing: -.025em; text-wrap: balance; }
.band-by { font-size: 18px; line-height: 1.4; color: #b4b4ba; }
@media (max-width: 699px) {
  .band { grid-template-columns: 1fr; min-height: 0; }
  .band-img { min-height: 440px; }
  .band-body { padding: 48px 20px 72px; }
  .band-quote { font-size: 32px; }
}

.pr-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.pr-card { display: flex; flex-direction: column; gap: 20px; padding-top: 24px; border-top: 1px solid var(--pebble); }
.pr-n { font-size: 17px; color: var(--muted); font-variant-numeric: tabular-nums; }
.pr-card h3 { font-size: 30px; line-height: 1.05; letter-spacing: -.02em; min-height: 64px; }
.pr-card p { font-size: 16px; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.pr-arrow { margin-top: auto; width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; transition: transform .2s; }
.pr-card:hover .pr-arrow { transform: translateX(4px); }
@media (max-width: 699px) { .pr-grid { grid-template-columns: 1fr; gap: 48px; } .pr-card h3 { min-height: 0; } }
@media (min-width: 700px) and (max-width: 899px) { .pr-card h3 { font-size: min(30px, calc((100vw - 208px) / 19)); } }

/* ---------- Impact Notes (ImpactNotesV5) ---------- */
.notes { background: #151623; color: #fff; padding: 160px var(--px); }
.notes-inner { display: flex; flex-direction: column; gap: 80px; }
.notes-head { display: flex; flex-direction: column; gap: 24px; padding-bottom: 56px; border-bottom: 1px solid rgba(213,211,212,.25); }
.notes-eyebrow { font-size: 17px; line-height: 1.4; color: #b4b4ba; }
.notes-title { font-size: 168px; line-height: .9; letter-spacing: -.045em; }
.notes-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: start; }
.notes-copy { display: flex; flex-direction: column; gap: 20px; }
.notes-line { font-weight: 700; font-size: 40px; line-height: 1.1; letter-spacing: -.025em; text-wrap: balance; }
.notes-text { font-size: 20px; line-height: 1.55; color: #d5d3d4; max-width: 560px; text-wrap: pretty; }
.notes-side, .notes-ask { display: flex; flex-direction: column; gap: 16px; }
.notes-ask[hidden], .notes-done[hidden], .notes-msg[hidden] { display: none; }
.notes-form { display: flex; gap: 8px; padding: 6px; border-radius: 1000px; background: #fff; border: 2px solid #fff; }
.notes-form:focus-within { box-shadow: 0 0 0 3px var(--gold); }
.notes-form.is-invalid { border-color: var(--clay); }
.notes-form label { flex: 1; display: flex; align-items: center; min-width: 0; }
.notes-form input { width: 100%; height: 48px; border: none; background: transparent; font-family: var(--font); font-size: 18px; color: var(--ink); outline: none; padding: 0 18px; }
.notes-form input:focus-visible { box-shadow: none; }
.notes-form button { height: 48px; padding: 0 24px; border-radius: 1000px; border: none; background: var(--ink); color: #fff; font-family: var(--font); font-size: 17px; font-weight: 700; cursor: pointer; flex: none; }
.notes-form button:disabled { cursor: progress; }
.notes-msg { font-size: 17px; line-height: 1.5; font-weight: 700; }
.notes-msg a { text-decoration: underline; border: 0; }
.notes-fine { font-size: 17px; line-height: 1.5; color: #b4b4ba; }
.notes-done { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(213,211,212,.25); }
.notes-done:focus { outline: none; }
.notes-done-t { font-size: 23px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; }
.notes-done-f { font-size: 18px; line-height: 1.61; color: #b4b4ba; }
.notes-done .btn { align-self: flex-start; margin-top: 8px; padding: 0 22px; }
@media (min-width: 700px) and (max-width: 1099px) {
  .notes-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .notes-side { max-width: 560px; }
}
@media (max-width: 699px) {
  .notes { padding: 96px var(--px); }
  .notes-inner, .notes-grid { gap: 40px; }
  .notes-head { padding-bottom: 32px; }
  .notes-title { font-size: 64px; }
  .notes-line { font-size: 28px; }
  .notes-grid { grid-template-columns: 1fr; }
  .notes-form { flex-direction: column; border-radius: 28px; }
}

/* ---------- What we do ---------- */
.jump { padding: 72px var(--px) 0; display: flex; flex-wrap: wrap; gap: 12px; }
.areas { margin-top: 28px; font-size: 22px; line-height: 1.5; color: var(--muted); max-width: 680px; text-wrap: pretty; }
.areas strong { color: var(--ink); font-weight: 600; }
.wwd-areas { padding: 72px var(--px) 0; }
.wwd-areas .areas { margin-top: 0; }
.wwd-areas + .jump { padding-top: 28px; }
.jump .btn { padding: 0 20px; }
.practice { padding: 110px var(--px) 0; }
.practice-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 80px; border-top: 1px solid var(--pebble); padding-top: 40px; }
.practice-head { display: flex; flex-direction: column; gap: 16px; }
.practice-body { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.practice-body > .btn { align-self: flex-start; }
.practice-desc { font-size: 18px; line-height: 1.5; max-width: 680px; text-wrap: pretty; }
.practice-covers { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--pebble); font-size: 16px; line-height: 1.6; color: var(--muted); max-width: 680px; text-wrap: pretty; }
.practice-covers strong { color: var(--ink); font-weight: 600; }
.cases { display: flex; flex-direction: column; gap: 20px; }
.js .cases.is-collapsed .is-extra { display: none; }
.case { border-top: 1px solid var(--ink); padding-top: 40px; display: flex; flex-direction: column; gap: 18px; }
.case-label { font-size: 17px; line-height: 1.9; color: var(--muted); }
.case h3 { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; text-wrap: balance; }
.case-body { font-size: 17px; line-height: 1.5; max-width: 700px; text-wrap: pretty; }
.case-parts { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 6px; padding-top: 22px; border-top: 1px solid var(--pebble); }
.case-parts > div { display: flex; flex-direction: column; gap: 10px; }
.case-parts h4 { font-size: 17px; font-weight: 400; }
.case-parts p { font-size: 16px; line-height: 1.5; }
.wwd-end { padding: 110px var(--px); }
@media (max-width: 699px) {
  .jump { padding-top: 48px; }
  .wwd-areas { padding-top: 48px; }
  .wwd-areas + .jump { padding-top: 24px; }
  .areas { font-size: 18px; }
  .practice { padding-top: 72px; }
  .practice-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 28px; }
  .practice-desc { font-size: 17px; }
  .practice-body { gap: 32px; }
  .case { padding-top: 24px; }
  .case h3 { font-size: 22px; }
  .case-parts { grid-template-columns: 1fr; }
  .wwd-end { padding: 72px var(--px); }
}
@media (max-width: 379px) { .jump .btn { padding: 0 16px; font-size: 15px; } }
/* Tablets: the 4/11 heading column is too narrow for "cross-border" at 61px, so stack below 1024 and scale the heading above it. */
@media (min-width: 700px) and (max-width: 1099.98px) { .practice-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
@media (min-width: 1100px) and (max-width: 1279px) { .practice-head .h2-61 { font-size: calc((100vw - 224px) * .0577); } }

/* ---------- Who we are ---------- */
.who { padding: 130px var(--px); }
.who-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 96px; align-items: start; }
.who-fig { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #0f0f1c; }
.who-fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.who-q { display: flex; flex-direction: column; gap: 36px; padding-top: 24px; }
.who-q blockquote { font-weight: 700; font-size: 36px; line-height: 1.05; letter-spacing: -.03em; text-wrap: pretty; }
.who-card { display: flex; flex-direction: column; gap: 8px; padding-top: 24px; border-top: 1px solid var(--ink); }
.who-card h2 { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.who-card p { font-size: 17px; line-height: 1.5; }
.who-card a { align-self: flex-start; margin-top: 8px; font-size: 16px; border-bottom: 1px solid var(--pebble); padding-bottom: 2px; }
.who-card a:hover, .ct-mail:hover { color: var(--muted); }
.who-links { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.who-bio { padding: 0 var(--px) 130px; }
.who-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; }
.who-col { display: flex; flex-direction: column; gap: 24px; border-top: 1px solid var(--ink); padding-top: 32px; }
.who-paras { display: flex; flex-direction: column; gap: 18px; }
.who-col p { font-size: 18px; line-height: 1.5; text-wrap: pretty; }
@media (max-width: 699px) {
  .who { padding: 72px var(--px); }
  .who-grid, .who-cols { grid-template-columns: 1fr; gap: 40px; }
  .who-q { padding-top: 0; }
  .who-q blockquote { font-size: 26px; }
  .who-bio { padding-bottom: 72px; }
  .who-col p { font-size: 16px; }
}

/* ---------- Thinking ---------- */
.th-group { padding: 120px var(--px) 0; }
.th-head { display: flex; flex-direction: column; gap: 16px; }
.th-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.th-list li { border-bottom: 1px solid var(--pebble); }
.th-row { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 48px; align-items: center; padding: 32px 0; }
.th-text { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.th-meta { font-size: 17px; line-height: 1.9; color: var(--muted); }
.th-row h3 { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; text-wrap: balance; transition: color .2s; }
.th-row:hover h3 { color: var(--muted); }
.th-by { font-size: 15px; line-height: 1.5; }
.th-link { margin-top: 6px; font-size: 17px; }
.th-thumb { width: 240px; aspect-ratio: 16 / 9; overflow: hidden; background: #0f0f1c; justify-self: end; }
.th-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.th-end { height: 120px; }
@media (max-width: 699px) {
  .th-group { padding-top: 72px; }
  .th-row { grid-template-columns: minmax(0, 1fr) 88px; gap: 16px; padding: 24px 0; }
  .th-row h3 { font-size: 20px; }
  .th-thumb { width: 88px; }
  .th-end { height: 72px; }
}

/* ---------- Article ---------- */
.art-head { position: relative; background: #0f0f1c; color: #fff; overflow: hidden; }
.art-head-body { position: relative; padding: 56px var(--px) 110px; display: flex; flex-direction: column; gap: 28px; max-width: 1080px; }
.art-back { align-self: flex-start; font-size: 17px; }
.art-back:hover { color: #8e8e95; }
.art-kicker, .art-meta { font-size: 17px; line-height: 2; }
.art-head h1 { font-size: 61px; line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.art-orig { margin-top: -12px; font-size: 17px; line-height: 1.5; color: #c3ccd8; }
.art-orig a { color: #fff; }
.art-orig a:hover { color: #8e8e95; }
.art-stand { font-size: 18px; line-height: 1.5; max-width: 700px; text-wrap: pretty; }
.art-cover { padding: 72px var(--px) 0; display: flex; justify-content: center; }
.art-cover img { display: block; width: 100%; height: auto; max-width: 1000px; aspect-ratio: 16 / 9; object-fit: cover; }
.art-wrap { padding: 72px var(--px) 140px; display: flex; justify-content: center; }
.ai-body { width: 100%; max-width: 680px; }
.ai-body p { margin: 0 0 26px; font-size: 18px; line-height: 1.5; text-wrap: pretty; }
.ai-body a { text-decoration: underline; text-decoration-color: var(--pebble); text-underline-offset: 3px; }
.ai-body a:hover { color: var(--muted); }
.ai-body sup { font-size: .7em; line-height: 0; }
.ai-body sup a { text-decoration: none; padding: 0 2px; }
.ai-body ul, .ai-body ol { margin: 0 0 28px; padding-left: 22px; font-size: 18px; line-height: 1.5; }
.ai-body li { margin-bottom: 8px; }
.ai-body h2 { margin: 56px 0 22px; font-size: 36px; line-height: 1; letter-spacing: -.03em; }
.ai-body h3 { margin: 36px 0 16px; font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.ai-body p.ai-num { margin: 56px 0 -46px; font-size: 17px; color: var(--muted); }
.ai-body blockquote { margin: 44px 0; padding: 28px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font-weight: 700; font-size: 36px; line-height: 1.05; letter-spacing: -.03em; }
.ai-body figure { margin: 40px 0; }
.ai-body figure img { display: block; width: 100%; height: auto; }
.ai-body figcaption { margin-top: 12px; font-size: 17px; color: var(--muted); }
.ai-refs { margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--ink); overflow-wrap: anywhere; }
.ai-refs h2 { margin: 0 0 22px; font-size: 17px; font-weight: 400; line-height: 1.4; letter-spacing: 0; color: var(--muted); }
.ai-body .ai-refs ol { margin: 0; padding-left: 22px; font-size: 14px; line-height: 1.5; }
.ai-refs li { margin-bottom: 12px; scroll-margin-top: 24px; }
.ai-refs li:target { background: var(--paper); }
.ai-body .art-end { margin: 64px 0 0; }
.ai-body .art-end a { text-decoration: none; padding: 0 24px; }
@media (max-width: 699px) {
  .art-head-body { padding: 32px var(--px) 64px; }
  .art-head h1 { font-size: 36px; }
  .art-stand { font-size: 17px; }
  .art-cover { padding-top: 32px; }
  .art-wrap { padding: 40px var(--px) 88px; }
  .ai-body p, .ai-body ul, .ai-body ol { font-size: 17px; }
  .ai-body h2 { font-size: 28px; }
  .ai-body blockquote { font-size: 28px; }
}

/* ---------- Speaking ---------- */
.sp-sec { padding: 120px var(--px) 0; }
.sp-intro { display: flex; flex-direction: column; gap: 28px; }
.sp-intro .btn { align-self: flex-start; padding: 0 28px; }
.lead { font-size: 18px; line-height: 1.5; max-width: 700px; text-wrap: pretty; }
.sp-head { display: flex; flex-direction: column; gap: 14px; }
.sp-note { font-size: 17px; line-height: 1.9; color: var(--muted); }
.sp-listwrap { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.sp-listwrap .btn { align-self: flex-start; }
.sp-listwrap .btn[hidden] { display: none; }
.ev-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.js .ev-list.is-collapsed .is-extra { display: none; }
.ev { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.5fr) 150px 110px; gap: 32px; padding: 18px 0; border-bottom: 1px solid var(--pebble); font-size: 15px; line-height: 1.45; align-items: baseline; }
.ev-name { font-weight: 700; font-size: 16px; }
.ev-date { font-variant-numeric: tabular-nums; }
.ev-city { text-align: right; }
.photos { padding: 120px var(--px) 0; }
.photos-set { display: flex; flex-direction: column; gap: 20px; }
.ph-row { display: grid; gap: 20px; }
.ph-row--top { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.ph-row--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ph-cell { position: relative; overflow: hidden; background: #0f0f1c; }
.ph-cell img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.photos--phone { display: none; }
.invite { margin-top: 120px; background: var(--paper); padding: 140px var(--px); scroll-margin-top: 0; }
.invite-form { display: flex; flex-direction: column; gap: 32px; }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.field input, .field textarea { width: 100%; min-width: 0; }
.field > span, .chips legend { font-size: 17px; color: var(--muted); }
.field input, .field textarea { height: 44px; border: none; border-bottom: 1px solid var(--muted); border-radius: 0; background: transparent; font-family: var(--font); font-size: 17px; color: var(--ink); outline: none; padding: 0; }
.field textarea { height: auto; line-height: 1.5; padding: 8px 0; resize: vertical; }
.field input:focus, .field textarea:focus { border-bottom-color: var(--ink); box-shadow: 0 1px 0 var(--ink); }
.chips { border: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.chips legend { padding: 0; margin-bottom: 14px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { position: relative; height: 48px; padding: 0 18px; border-radius: 1000px; border: 1px solid var(--ink); font-size: 15px; cursor: pointer; display: flex; align-items: center; gap: 8px; user-select: none; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.chip-dot { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--ink); }
.chip:has(input:checked) { background: rgba(255, 255, 255, .6); }
.chip input:checked + .chip-dot { background: var(--ink); }
.chip:has(input:focus-visible) { outline: 2px solid var(--ink); outline-offset: 3px; }
.send { display: flex; align-items: center; gap: 20px; }
.send .btn { padding: 0 36px; }
.fine { font-size: 14px; line-height: 1.5; color: var(--muted); }
.invite-msg { font-size: 17px; line-height: 1.5; font-weight: 700; }
.invite-msg[hidden] { display: none; }
.invite-form .btn:disabled { cursor: progress; opacity: .7; }
/* Phones and tablets: each event as a short stacked row (name, role, then date and city). */
@media (max-width: 1099.98px) {
  .ev { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 16px 0; }
  .ev-name, .ev-role { grid-column: 1 / 3; }
}
@media (max-width: 699px) {
  .sp-sec { padding-top: 72px; }
  .lead { font-size: 17px; }
  .photos { padding-top: 72px; }
  .photos--desk { display: none; }
  .photos--phone { display: flex; }
  .photos-set, .ph-row { gap: 12px; }
  .ph-row--top, .ph-row--four { grid-template-columns: 1fr 1fr; }
  .invite { margin-top: 72px; padding: 88px var(--px); }
  .fields { grid-template-columns: 1fr; }
  .send { flex-direction: column; align-items: flex-start; }
}

/* ---------- Contact ---------- */
.ct { padding: 140px var(--px); }
.ct-body { display: flex; flex-direction: column; gap: 36px; max-width: 680px; }
.ct-lead { font-weight: 700; font-size: 36px; line-height: 1.15; letter-spacing: -.02em; text-wrap: pretty; }
.ct-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; padding-top: 32px; border-top: 1px solid var(--ink); }
.ct-ctas .btn { padding: 0 28px; }
.ct-mail { font-size: 18px; border-bottom: 1px solid var(--pebble); padding-bottom: 2px; }
/* Contact: project form, "Prefer email?" line (copies the address too), Hubble for short paid advice */
.ct-form { padding-top: 32px; border-top: 1px solid var(--ink); }
.field--wide { grid-column: 1 / -1; }
.email-line { font-size: 18px; line-height: 1.6; }
.email-line .ct-mail { overflow-wrap: anywhere; }
@media (max-width: 359px) { .email-line { font-size: 16px; } }
.copied { font-size: 15px; color: var(--muted); margin-left: 6px; white-space: nowrap; }
.copied[hidden] { display: none; }
.hubble { border-top: 1px solid var(--ink); padding-top: 28px; display: flex; flex-direction: column; gap: 10px; }
.hubble-t { font-weight: 700; font-size: 22px; line-height: 1.3; letter-spacing: -.01em; }
.hubble-l { font-size: 18px; line-height: 1.6; }
.btn-hubble { align-self: flex-start; gap: 12px; padding: 0 24px; margin-top: 6px; }
.btn-hubble .hubble-mark { display: block; flex: none; }
.btn-hubble:hover { background: #24303d; border-color: #24303d; color: #fff; } /* stays dark: Hubble's mark is white only */
.email-line--light .ct-mail { border-bottom-color: #fff; }
.email-line--light .copied { color: rgba(255,255,255,.85); }
.hubble--light { border-top-color: rgba(255,255,255,.6); }
.hubble--light .hubble-a:hover, .email-line--light .ct-mail:hover { color: #fff; opacity: .8; }
@media (max-width: 699px) {
  .ct { padding: 72px var(--px); }
  .ct .grid-4-8 { gap: 0; }
  .ct-lead { font-size: 26px; }
  .ct-ctas { flex-direction: column; align-items: flex-start; }
}

/* ---------- Privacy ---------- */
.pv { padding: 110px var(--px); display: flex; justify-content: center; }
.pv-inner { width: 100%; max-width: 680px; }
.pv-sec { display: flex; flex-direction: column; gap: 14px; padding: 32px 0; border-top: 1px solid var(--pebble); }
.pv-sec h2 { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.pv-sec p { font-size: 17px; line-height: 1.5; text-wrap: pretty; }
@media (max-width: 699px) { .pv { padding: 56px var(--px); } .pv-sec h2 { font-size: 22px; } }

/* ---------- 404 ---------- */
.nf { position: relative; color: #fff; min-height: 900px; display: flex; flex-direction: column; background: #0f0f1c; overflow: hidden; }
.nf-map { position: absolute; inset: 0; }
.nf-still { background: #0B1220; }
.nf-still img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; }
@media (max-width: 1099.98px) { .nf-still img { object-position: 100% 30%; } } /* portrait still; notfound.js fine-tunes */
.mapscene { position: relative; width: 100%; height: 100%; overflow: hidden; background: #0f0f1c; }
.mapscene img { max-width: none; }
.nf-body { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 28px; padding: 48px var(--px) 96px; max-width: 900px; }
.nf-code { font-size: 17px; }
.nf h1 { font-size: 150px; line-height: .88; letter-spacing: -.045em; }
.nf-line { font-weight: 700; font-size: 36px; line-height: 1.15; letter-spacing: -.02em; }
.nf-links { list-style: none; margin: 24px 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.3); max-width: 620px; }
.nf-links li { border-bottom: 1px solid rgba(255,255,255,.3); }
.nf-links a { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; }
.nf-links a:hover { color: #b4b4ba; }
.nf-l { display: flex; flex-direction: column; gap: 4px; }
.nf-l b { font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.nf-l small { font-size: 14px; color: #fff; }
.nf-arrow { width: 48px; height: 48px; flex: none; border-radius: 50%; background: #fff; color: var(--ink); display: flex; align-items: center; justify-content: center; }
.nf-help { font-size: 15px; line-height: 1.5; }
.nf-help a { border-bottom-color: rgba(255,255,255,.3); }
@media (min-width: 700px) and (max-width: 1099.98px) { .nf h1 { font-size: min(150px, 10vw); } .nf-line { font-size: 28px; } } /* tablets: the 150px title ran to three lines; smaller, as on Contact */
@media (max-width: 699px) {
  .nf { min-height: 844px; } .nf h1 { font-size: 56px; } .nf-line { font-size: 24px; }
  .nf-map::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(15, 15, 28, 0) 25%, rgba(15, 15, 28, .55) 50%, rgba(15, 15, 28, .7) 100%); }
}

/* ---------- What we do: one ground per practice (option 1A, approved 14 Oct 2026) ---------- */
.practice { padding-bottom: 110px; }
.practice--dark { background: #0B1220; color: #fff; }
.practice--beige { background: #F4EFE6; }
/* on dark and beige the change of colour already marks the edge, so no rule under it */
.practice--dark .practice-grid, .practice--beige .practice-grid { border-top: 0; padding-top: 0; }
.practice--dark .label-2, .practice--dark .case-label, .practice--dark .practice-covers { color: #c3ccd8; }
.practice--dark .practice-covers { border-top-color: rgba(255, 255, 255, .22); }
.practice--dark .practice-covers strong { color: #fff; }
.practice--dark .case { border-top-color: #fff; }
.practice--dark .case-parts { border-top-color: rgba(255, 255, 255, .22); }
.practice--dark .btn-line-ink { border-color: #fff; color: #fff; }
.practice--dark .btn-line-ink:hover { outline-color: rgba(255, 255, 255, .25); }
.practice--dark :focus-visible { outline-color: #fff; box-shadow: 0 0 0 5px #0B1220; }
@media (max-width: 699px) { .practice { padding-bottom: 72px; } }

/* ---------- Blocks fade in and rise slightly the first time they come into view (option 2A, approved 14 Oct 2026) ----------
   reveal.js adds .rv only to blocks below the first screen, so nothing visible on arrival ever blinks.
   Reduced motion: a short fade, no movement. */
.js .rv { opacity: 0; transform: translate3d(0, 16px, 0); }
.js .rv.rv-in { opacity: 1; transform: none; transition: opacity .62s cubic-bezier(.23, 1, .32, 1), transform .62s cubic-bezier(.23, 1, .32, 1); transition-delay: var(--rv-d, 0ms); }
@media (prefers-reduced-motion: reduce) { .js .rv { transform: none; } .js .rv.rv-in { transition: opacity .22s ease-out; } }
@media print { .js .rv { opacity: 1 !important; transform: none !important; } }

/* ---------- Home: the line that stays (option 3A, approved 14 Oct 2026) ----------
   Slides up after the hero, its gold line fills as you scroll, slides away at the footer (reveal.js). */
.growth-strip { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; height: 46px; display: flex; align-items: center; padding: 0 var(--px);
  background: #0B1220; color: #c3ccd8; pointer-events: none; transform: translateY(100%); transition: transform .32s cubic-bezier(.23, 1, .32, 1); }
.growth-strip.is-on { transform: none; }
.growth-strip::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: rgba(232, 198, 106, .2); }
.gs-line { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--gold); transform-origin: 0 50%; transform: scaleX(var(--gs, 0)); }
.growth-strip p { font-size: 15px; line-height: 1; letter-spacing: .005em; white-space: nowrap; }
.growth-strip b { color: var(--gold); font-weight: 700; }
html.panel-open .growth-strip { display: none; }
@media (max-width: 699px) { .growth-strip { height: 38px; } .growth-strip p { font-size: 13px; } }
@media (prefers-reduced-motion: reduce) { .growth-strip { transition: none; } }

/* Counting figures keep their width while the digits change (count.js, approved 14 Oct 2026) */
[data-count] { font-variant-numeric: tabular-nums; }

/* ---------- Thinking: "Letters and notes" on white, "Interviews and podcasts" on beige (approved 14 Oct 2026) ---------- */
.th-group--beige { background: #F4EFE6; padding-bottom: 120px; }
.th-group--beige + .th-end { display: none; }
@media (max-width: 699px) { .th-group--beige { padding-bottom: 72px; } }

/* ---------- Speaking: Upcoming on white, Past on dark (option C, approved 14 Oct 2026). The invitation form below stays
   the only beige block, so it still reads as the place to act. ---------- */
.sp-sec--past { background: #0B1220; color: #fff; padding-bottom: 120px; }
.sp-sec--past .sp-note { color: #c3ccd8; }
.sp-sec--past .ev-list { border-top-color: #fff; }
.sp-sec--past .ev { border-bottom-color: rgba(255, 255, 255, .18); }
.sp-sec--past .btn-line-ink { border-color: #fff; color: #fff; }
.sp-sec--past .btn-line-ink:hover { outline-color: rgba(255, 255, 255, .25); }
.sp-sec--past :focus-visible { outline-color: #fff; box-shadow: 0 0 0 5px #0B1220; }
@media (max-width: 699px) { .sp-sec--past { padding-bottom: 72px; } }

/* ---------- Logo (approved 14 Oct 2026) ----------
   Menu bar and panels: Yariv's stacked logo at 100px, the bar 132px tall (S2). Footer: the same logo larger (C). */
.nav, .panel-top { height: 132px; }
.nav-brand .brand-logo { height: 100px; width: auto; }
.footer-logo { display: block; align-self: flex-start; width: auto; height: min(240px, 34vw); }
@media (max-width: 699px) { .nav, .panel-top { height: 92px; } .nav-brand .brand-logo { height: 70px; } }

/* ---------- Impact Notes confirmation page, /subscribed (approved A, 18 Oct 2026) ----------
   Readers arrive from the confirmation email. The ring is shown full width at the top, never cut at the sides, and
   fades into the page; the heading, text and button start below its words, so the turning words never run under them.
   From 600px (wide cut, 16:9, F = 56.25vw tall): the band is at most 60% of the screen height, cut 30% from the top;
   the words end about 60% down the cut, i.e. at 0.3 F + 0.3 band = 16.9vw + 0.3 band. */
.ph--confirmed { min-height: 0; }
.ph--confirmed .ph-visual { bottom: auto; height: min(56.25vw, 60svh); }
.ph--confirmed .ph-visual::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: linear-gradient(0deg, #0B1220, rgba(11,18,32,0)); }
.ph--confirmed .ph-shade { display: none; }
.ph--confirmed .ph-body { justify-content: flex-start; padding-top: calc(16.9vw + 0.3 * min(56.25vw, 60svh) + 16px - 132px); } /* 132px: the menu bar above */
.ph--confirmed .ph-title { font-size: min(96px, 6.6cqw); line-height: .95; }
.ph--confirmed .ph-title span { display: block; }
.ph--confirmed .ph-text { max-width: 560px; font-size: 20px; line-height: 1.55; color: #d5d6dc; }
.ph--confirmed .btn { align-self: flex-start; margin-top: 8px; padding: 0 22px; }
@media (max-width: 1099.98px) { .ph--confirmed .ph-title { font-size: min(96px, 9cqw); } }
@media (max-width: 699px) {
  .ph--confirmed .ph-body { padding-top: calc(16.9vw + 0.3 * min(56.25vw, 60svh) + 16px - 92px); } /* 92px menu bar */
  .ph--confirmed .ph-title { font-size: 44px; }
  .ph--confirmed .ph-text { font-size: 17px; }
}
/* Phones get the portrait cut (4:5), shown whole: 125vw tall, the words end about 86% down */
@media (max-width: 599px) {
  .ph--confirmed .ph-visual { height: 125vw; }
  .ph--confirmed .ph-visual::after { height: 22%; }
  .ph--confirmed .ph-body { padding-top: calc(107vw - 92px); padding-bottom: 56px; }
}
