@font-face {
   font-family: 'Poppins';
   src: url('../fonts/Poppins-Light.ttf') format('truetype');
   font-weight: 300;
   font-style: normal;
   font-display: swap;
}
@font-face {
   font-family: 'Poppins';
   src: url('../fonts/Poppins-Regular.ttf') format('truetype');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
}
@font-face {
   font-family: 'Poppins';
   src: url('../fonts/Poppins-Medium.ttf') format('truetype');
   font-weight: 500;
   font-style: normal;
   font-display: swap;
}
@font-face {
   font-family: 'Poppins';
   src: url('../fonts/Poppins-SemiBold.ttf') format('truetype');
   font-weight: 600;
   font-style: normal;
   font-display: swap;
}

:root {
   --navy: #0d1b33;
   --navy-deep: #081124;
   --navy-soft: #1c2f52;
   --gold: #a9822f;
   --gold-bright: #c9a35a;
   --paper: #f8f6f2;
   --paper-alt: #efece4;
   --ink: #24283a;
   --muted: #5c6170;
   --line: #e2ddd2;
   --placeholder-bg: #f4ede0;
   --placeholder-border: #d8c9a8;
   --placeholder-ink: #8a6d2f;
   --serif: 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
   --max: 1120px;
   --nav-h: 72px;
   --nav-h-small: 58px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
   margin: 0;
   background: var(--paper);
   color: var(--ink);
   font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
   font-weight: 400;
   line-height: 1.7;
   -webkit-font-smoothing: antialiased;
   overflow-x: hidden;
}

a { color: inherit; }
img { max-width: 100%; display: block; }

::selection { background: var(--gold); color: #fff; }

.wrap {
   max-width: var(--max);
   margin: 0 auto;
   padding: 0 28px;
}

section, footer.contact { scroll-margin-top: var(--nav-h); }

.ph {
   background: var(--placeholder-bg);
   border: 1px dashed var(--placeholder-border);
   color: var(--placeholder-ink);
   border-radius: 3px;
   padding: 1px 6px;
   font-style: italic;
   font-size: 0.95em;
}

/* ---------- preloader ---------- */
.preloader {
   position: fixed;
   inset: 0;
   z-index: 4000;
   background: var(--navy-deep);
   display: flex;
   align-items: center;
   justify-content: center;
}
.preloader-word {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(20px, 3.4vw, 34px);
   letter-spacing: 0.32em;
   text-transform: uppercase;
   color: #f6f1e6;
   display: flex;
   overflow: hidden;
}
.preloader-word span {
   display: inline-block;
   transform: translateY(110%);
   white-space: pre;
}
.preloader-rule {
   position: absolute;
   left: 50%;
   bottom: 34%;
   width: 0;
   height: 1px;
   background: var(--gold-bright);
   transform: translateX(-50%);
}
@media (prefers-reduced-motion: reduce) {
   .preloader { display: none; }
}

/* ---------- scroll progress ---------- */
.scroll-progress {
   position: fixed;
   top: 0; left: 0;
   height: 2px;
   width: 100%;
   background: var(--gold);
   transform-origin: 0 50%;
   transform: scaleX(0);
   z-index: 3000;
   pointer-events: none;
}

/* ---------- custom cursor ---------- */
.cursor-dot, .cursor-ring {
   position: fixed;
   top: 0; left: 0;
   pointer-events: none;
   border-radius: 50%;
   z-index: 5000;
   opacity: 0;
}
.cursor-dot {
   width: 6px; height: 6px;
   background: var(--gold-bright);
   transform: translate(-50%, -50%);
}
.cursor-ring {
   width: 34px; height: 34px;
   border: 1px solid rgba(169, 130, 47, 0.55);
   transform: translate(-50%, -50%);
   transition: width 0.28s ease, height 0.28s ease, border-color 0.28s ease, background 0.28s ease;
}
body.cursor-hover .cursor-ring {
   width: 56px; height: 56px;
   border-color: rgba(169, 130, 47, 0.9);
   background: rgba(169, 130, 47, 0.08);
}
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
   .cursor-dot, .cursor-ring { display: none; }
}

/* ---------- nav ---------- */
.site-nav {
   position: fixed;
   top: 0; left: 0; right: 0;
   height: var(--nav-h);
   z-index: 1000;
   transition: background 0.4s ease, border-color 0.4s ease, transform 0.4s ease, height 0.35s ease;
   border-bottom: 1px solid transparent;
}
.site-nav.nav-hidden { transform: translateY(-100%); }
.site-nav.scrolled {
   height: var(--nav-h-small);
   background: rgba(248, 246, 242, 0.94);
   -webkit-backdrop-filter: saturate(150%) blur(8px);
   backdrop-filter: saturate(150%) blur(8px);
   border-bottom-color: var(--line);
}

.site-nav .wrap {
   height: 100%;
   display: flex;
   align-items: center;
   justify-content: space-between;
   position: relative;
}

.brand-mark {
   font-weight: 600;
   font-size: 15px;
   line-height: 1;
   letter-spacing: 0.02em;
   color: #f6f1e6;
   text-decoration: none;
   transition: color 0.4s ease, font-size 0.35s ease;
   display: block;
}
.site-nav.scrolled .brand-mark { color: var(--navy); font-size: 14px; }

.nav-links {
   display: flex;
   gap: 36px;
   list-style: none;
   margin: 0;
   padding: 0;
}
.nav-links a {
   display: block;
   text-decoration: none;
   font-size: 13px;
   font-weight: 500;
   line-height: 1;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: rgba(246, 241, 230, 0.85);
   transition: color 0.4s ease;
}
.site-nav.scrolled .nav-links a { color: var(--navy); }
.nav-links a:hover, .nav-links a.active { color: var(--gold); }
.site-nav.scrolled .nav-links a:hover,
.site-nav.scrolled .nav-links a.active { color: var(--gold); }

/* letter-roll hover */
.nav-links a .roll {
   position: relative;
   display: inline-block;
   overflow: hidden;
   vertical-align: top;
}
.nav-links a .roll-t, .nav-links a .roll-b { display: block; white-space: pre; }
.nav-links a .roll-t span, .nav-links a .roll-b span {
   display: inline-block;
   transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-links a .roll-b {
   position: absolute;
   left: 0; top: 0;
}
.nav-links a .roll-b span { transform: translateY(110%); }
.nav-links a:hover .roll-t span { transform: translateY(-110%); }
.nav-links a:hover .roll-b span { transform: translateY(0); }

/* traveling underline */
.nav-underline {
   position: absolute;
   bottom: 16px;
   left: 0;
   height: 1px;
   width: 0;
   background: var(--gold);
   transition: left 0.4s cubic-bezier(0.22, 1, 0.36, 1), width 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
   opacity: 0;
   pointer-events: none;
}
.site-nav.scrolled .nav-underline { bottom: 12px; }

.nav-toggle {
   display: none;
   background: none;
   border: none;
   cursor: pointer;
   width: 36px; height: 36px;
   padding: 0;
   position: relative;
   z-index: 1002;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
   content: '';
   position: absolute;
   left: 6px; right: 6px;
   height: 2px;
   background: #f6f1e6;
   transition: transform 0.25s ease, opacity 0.25s ease, background 0.4s ease;
}
.site-nav.scrolled .nav-toggle span,
.site-nav.scrolled .nav-toggle span::before,
.site-nav.scrolled .nav-toggle span::after { background: var(--navy); }
.nav-toggle span { top: 17px; }
.nav-toggle span::before { top: -8px; }
.nav-toggle span::after { top: 8px; }
.nav-toggle.open span { background: transparent !important; }
.nav-toggle.open span::before { transform: translateY(8px) rotate(45deg); }
.nav-toggle.open span::after { transform: translateY(-8px) rotate(-45deg); }

main { padding-top: 0; }

/* ---------- hero ---------- */
.hero {
   position: relative;
   height: 100vh;
   height: 100svh;
   min-height: 580px;
   max-height: 1080px;
   overflow: hidden;
   background: var(--navy-deep);
}
.hero-bg {
   position: absolute;
   inset: -8% 0;
   z-index: 0;
   will-change: transform;
}
.hero-bg img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transform-origin: center;
}
@media (prefers-reduced-motion: no-preference) {
   .hero-bg img { animation: heroKenBurns 42s ease-in-out infinite alternate; }
}
@keyframes heroKenBurns {
   from { transform: scale(1); }
   to { transform: scale(1.07); }
}

#heroParticles {
   position: absolute;
   inset: 0;
   z-index: 1;
   pointer-events: none;
}

.hero-scrim {
   position: absolute;
   inset: 0;
   z-index: 2;
   background: linear-gradient(
      to top,
      rgba(8, 17, 36, 0.9) 0%,
      rgba(8, 17, 36, 0.55) 30%,
      rgba(8, 17, 36, 0.2) 58%,
      rgba(8, 17, 36, 0.12) 100%
   );
}

.hero-bottom {
   position: absolute;
   z-index: 3;
   left: 0; right: 0; bottom: 0;
   padding-bottom: 104px;
}

.hero .eyebrow {
   text-transform: uppercase;
   letter-spacing: 0.26em;
   font-size: 12px;
   font-weight: 600;
   color: var(--gold-bright);
   margin: 0 0 22px;
   text-shadow: 0 1px 14px rgba(8, 17, 36, 0.7);
}

.hero h1 {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(34px, 5.8vw, 70px);
   line-height: 1.18;
   color: #f6f1e6;
   margin: 0;
   letter-spacing: 0.002em;
}
.hero h1 .line { display: block; overflow: hidden; }
.hero h1 .line-inner { display: block; will-change: transform; }

.hero-rule {
   width: 0;
   height: 1px;
   background: var(--gold-bright);
   border: none;
   margin: 28px 0 0;
}

.scroll-cue {
   position: absolute;
   z-index: 3;
   right: 36px;
   bottom: 44px;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 10px;
   color: rgba(246, 241, 230, 0.75);
   font-size: 11px;
   font-weight: 500;
   letter-spacing: 0.2em;
   text-transform: uppercase;
   text-decoration: none;
}
.scroll-cue-line {
   position: relative;
   width: 1px;
   height: 40px;
   overflow: hidden;
   background: rgba(246, 241, 230, 0.3);
}
.scroll-cue-line::before {
   content: '';
   position: absolute;
   top: -100%;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(246, 241, 230, 0.9);
}
@media (prefers-reduced-motion: no-preference) {
   .scroll-cue-line::before { animation: scrollCue 2.4s ease-in-out infinite; }
}
@keyframes scrollCue {
   0% { top: -100%; }
   60% { top: 100%; }
   100% { top: 100%; }
}

/* ---------- section heads ---------- */
.section-head {
   margin: 0 0 48px;
   display: flex;
   align-items: baseline;
   gap: 18px;
}
.section-head .index {
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.14em;
   color: var(--gold);
}
.section-head h2 {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(28px, 3.6vw, 40px);
   color: var(--navy);
   margin: 0;
   letter-spacing: 0.01em;
}
.section-head .rule {
   flex: 1;
   height: 1px;
   background: var(--line);
   border: none;
   margin: 0;
   transform-origin: 0 50%;
}

.r-up, .r-fade { opacity: 1; }

/* ---------- about ---------- */
.about {
   background: var(--paper-alt);
   border-top: 1px solid var(--line);
   border-bottom: 1px solid var(--line);
   padding: 104px 0;
   position: relative;
}

.about-intro {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(20px, 2.4vw, 27px);
   line-height: 1.55;
   color: var(--navy);
   max-width: 30em;
   margin: 0 0 64px;
}

.about-row {
   display: grid;
   grid-template-columns: 220px 1fr;
   gap: 44px;
   padding: 48px 0;
   border-top: 1px solid var(--line);
   position: relative;
}
.about-row:last-child { border-bottom: 1px solid var(--line); }
.about-row::before {
   content: '';
   position: absolute;
   top: -1px; left: 0;
   width: 100%;
   height: 1px;
   background: var(--gold);
   transform: scaleX(0);
   transform-origin: 0 50%;
   transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.about-row:hover::before { transform: scaleX(1); }
.about-row:last-child::after {
   content: '';
   position: absolute;
   bottom: -1px; left: 0;
   width: 100%;
   height: 1px;
   background: var(--gold);
   transform: scaleX(0);
   transform-origin: 0 50%;
   transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.row-head { display: flex; align-items: baseline; gap: 14px; }
.row-num {
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.14em;
   color: var(--gold);
}
.row-head h3 {
   font-family: var(--serif);
   font-weight: 300;
   font-size: 23px;
   color: var(--navy);
   margin: 0;
   letter-spacing: 0.01em;
}

.row-body p {
   font-size: 15px;
   color: var(--ink);
   margin: 0;
   max-width: 64ch;
}

.phil-item {
   display: grid;
   grid-template-columns: 36px 1fr;
   gap: 16px;
   margin-bottom: 22px;
}
.phil-item:last-child { margin-bottom: 0; }
.phil-num {
   font-family: var(--serif);
   font-style: italic;
   font-size: 15px;
   color: var(--gold);
   line-height: 1.7;
}
.phil-item p {
   font-size: 15px;
   color: var(--ink);
   margin: 0;
   max-width: 64ch;
}

.criteria-list {
   list-style: none;
   margin: 0;
   padding: 0;
}
.criteria-list li { margin-bottom: 20px; padding-left: 0; max-width: 64ch; }
.criteria-list li:last-child { margin-bottom: 0; }
.criteria-list .label {
   display: block;
   font-weight: 600;
   color: var(--navy-soft);
   font-size: 12px;
   text-transform: uppercase;
   letter-spacing: 0.08em;
   margin-bottom: 4px;
}
.criteria-list li { font-size: 15px; color: var(--ink); }

/* ---------- investments / globe ---------- */
.investments {
   padding: 104px 0;
   background: var(--paper);
}

.inv-hint {
   font-size: 12px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--muted);
   margin: 0 0 32px;
   display: flex;
   align-items: center;
   gap: 10px;
}
.inv-hint::after {
   content: '';
   width: 42px;
   height: 1px;
   background: var(--gold);
}

.globe-layout, .company-detail { display: none; }

.globe-on .globe-layout {
   display: grid;
   grid-template-columns: minmax(240px, 340px) 1fr;
   gap: 40px;
   align-items: start;
}
.globe-on .company-detail { display: block; }
.globe-on .cards-fallback { display: none; }

.company-list {
   list-style: none;
   margin: 0;
   padding: 0;
}
.company-list li { border-top: 1px solid var(--line); }
.company-list li:last-child { border-bottom: 1px solid var(--line); }
.company-list button {
   display: flex;
   width: 100%;
   align-items: baseline;
   justify-content: space-between;
   gap: 12px;
   background: none;
   border: none;
   cursor: pointer;
   font-family: inherit;
   text-align: left;
   padding: 13px 4px;
   transition: padding-left 0.35s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease;
}
.company-list button .c-name {
   font-size: 15px;
   font-weight: 500;
   color: var(--navy);
   transition: color 0.3s ease;
}
.company-list button .c-city {
   font-size: 11px;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--muted);
   white-space: nowrap;
}
.company-list button:hover { padding-left: 12px; }
.company-list button:hover .c-name { color: var(--gold); }
.company-list li.sel button { padding-left: 12px; background: rgba(169, 130, 47, 0.06); }
.company-list li.sel .c-name { color: var(--gold); }

.globe-stage {
   position: relative;
   width: 100%;
   aspect-ratio: 1 / 1;
   max-height: 560px;
}
#globeCanvas {
   width: 100%;
   height: 100%;
   display: block;
   cursor: grab;
   touch-action: none;
}
#globeCanvas.dragging { cursor: grabbing; }
.company-detail {
   margin-top: 36px;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 10px;
   padding: 30px 34px;
   position: relative;
   overflow: hidden;
}
.company-detail::after {
   content: '';
   position: absolute;
   left: 0; top: 0; bottom: 0;
   width: 3px;
   background: var(--gold);
}
.detail-inner {
   display: grid;
   grid-template-columns: 180px 1fr;
   gap: 30px;
   align-items: start;
}
.detail-inner .logo-mark { margin-bottom: 0; height: 52px; }
.detail-inner .logo-mark img { filter: none; opacity: 1; }
.detail-meta .c-city {
   display: block;
   font-size: 11px;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--muted);
   margin-top: 10px;
}
.detail-body h4 {
   font-size: 18px;
   font-weight: 600;
   color: var(--navy);
   margin: 0 0 10px;
}
.detail-body h4 a {
   color: var(--navy);
   text-decoration: none;
   border-bottom: 1px solid var(--line);
   transition: color 0.3s ease, border-color 0.3s ease;
}
.detail-body h4 a:hover { color: var(--gold); border-bottom-color: var(--gold); }
.detail-body p { font-size: 14.5px; color: var(--muted); margin: 0; }

/* fallback cards (also the copy source) */
.cards-fallback {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
   gap: 24px;
}

.investment-card {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 10px;
   padding: 28px;
   display: flex;
   flex-direction: column;
   position: relative;
   overflow: hidden;
   transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.investment-card:hover {
   transform: translateY(-8px);
   box-shadow: 0 30px 60px -24px rgba(16, 32, 63, 0.35);
}

.logo-mark {
   height: 48px;
   display: flex;
   align-items: center;
   margin-bottom: 20px;
}
.logo-mark img {
   max-height: 100%;
   max-width: 100%;
   width: auto;
   object-fit: contain;
}
.logo-word {
   font-weight: 600;
   font-size: 21px;
   letter-spacing: 0.01em;
   color: #79ad37;
   margin-left: 10px;
   line-height: 1;
}
.logo-mark--dark {
   background: var(--navy);
   border-radius: 6px;
   padding: 10px 14px;
   display: inline-flex;
   box-sizing: border-box;
}

.investment-card h4 {
   font-size: 17px;
   font-weight: 600;
   color: var(--navy);
   margin: 0 0 10px;
}
.investment-card h4 a {
   color: var(--navy);
   text-decoration: none;
   border-bottom: 1px solid var(--line);
   transition: color 0.3s ease, border-color 0.3s ease;
}
.investment-card h4 a:hover { color: var(--gold); border-bottom-color: var(--gold); }
.investment-card p {
   font-size: 14px;
   color: var(--muted);
   margin: 0 0 6px;
}
.investment-card p:last-child { margin-bottom: 0; }

/* ---------- people ---------- */
.people {
   background: var(--navy-deep);
   padding: 112px 0;
   position: relative;
   overflow: hidden;
}
.people .section-head h2 { color: #f6f1e6; }
.people .section-head .rule { background: rgba(246, 241, 230, 0.16); }

.people-grid {
   display: grid;
   grid-template-columns: repeat(6, 1fr);
   gap: 40px;
}
.person-card { grid-column: span 2; }
.person-card:nth-child(4) { grid-column: 2 / span 2; }
.person-card:nth-child(5) { grid-column: 4 / span 2; }

.person-card { text-align: center; }
.person-photo {
   width: min(210px, 68%);
   aspect-ratio: 1 / 1;
   border-radius: 50%;
   background: var(--navy-soft);
   margin: 0 auto 22px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: rgba(255,255,255,0.45);
   font-size: 12px;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   overflow: hidden;
   position: relative;
}
.person-photo::after {
   content: '';
   position: absolute;
   inset: 0;
   border: 1px solid rgba(246, 241, 230, 0.12);
   border-radius: 50%;
   transition: border-color 0.4s ease;
}
.person-card:hover .person-photo::after { border-color: var(--gold); }

.person-card h4 {
   font-family: var(--serif);
   font-size: 21px;
   font-weight: 300;
   color: #f6f1e6;
   margin: 0 0 4px;
   letter-spacing: 0.01em;
}
.person-role {
   font-size: 12px;
   color: var(--gold-bright);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.1em;
   margin: 0 0 14px;
}
.person-card .bio {
   font-size: 14px;
   color: rgba(246, 241, 230, 0.65);
   line-height: 1.75;
   text-align: left;
}

/* ---------- contact ---------- */
.contact {
   padding: 120px 0 64px;
   background: var(--paper);
}
.contact-inner {
   max-width: 640px;
   margin: 0 auto;
   text-align: center;
}
.contact h2 {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(30px, 4vw, 44px);
   color: var(--navy);
   margin: 0 0 10px;
}
.contact .city {
   font-size: 13px;
   color: var(--muted);
   text-transform: uppercase;
   letter-spacing: 0.18em;
   margin: 0 0 28px;
}
.contact p.body-text {
   font-size: 16px;
   color: var(--muted);
   margin: 0 auto 32px;
}

.form-notice {
   display: none;
   margin: 0 0 24px;
   font-size: 14px;
}
.form-notice.show { display: block; }

.contact-form {
   max-width: 560px;
   margin: 0 auto;
   text-align: left;
}
.form-row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 20px;
}
.form-field { margin-bottom: 20px; }
.form-field label {
   display: block;
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--muted);
   margin-bottom: 8px;
}
.form-field input,
.form-field textarea {
   width: 100%;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 10px;
   padding: 13px 16px;
   font-family: inherit;
   font-size: 14px;
   color: var(--ink);
   transition: border-color 0.3s ease, box-shadow 0.3s ease;
   box-sizing: border-box;
}
.form-field textarea { resize: vertical; min-height: 120px; }
.form-field input:focus,
.form-field textarea:focus {
   outline: none;
   border-color: var(--gold);
   box-shadow: 0 0 0 3px rgba(169, 130, 47, 0.12);
}

.send-btn {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   margin: 8px auto 0;
   padding: 16px 48px;
   border-radius: 999px;
   border: none;
   background: var(--navy);
   color: #f6f1e6;
   font-family: inherit;
   font-size: 14px;
   font-weight: 500;
   letter-spacing: 0.04em;
   cursor: pointer;
   transition: background 0.35s ease;
   will-change: transform;
}
.send-btn .arrow {
   display: inline-block;
   transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.send-btn:hover { background: var(--gold); }
.send-btn:hover .arrow { transform: translateX(5px); }
.contact-form .btn-row { text-align: center; }

.legal {
   margin-top: 64px;
   padding-top: 28px;
   border-top: 1px solid var(--line);
   font-size: 12px;
   color: var(--muted);
}

/* ---------- responsive ---------- */
@media (max-width: 980px) {
   .globe-on .globe-layout { grid-template-columns: 1fr; gap: 24px; }
   .globe-stage { max-width: 480px; margin: 0 auto; order: -1; }
}

@media (max-width: 900px) {
   .about-row { grid-template-columns: 1fr; gap: 20px; padding: 36px 0; }
   .people-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
   .person-card, .person-card:nth-child(4), .person-card:nth-child(5) { grid-column: auto; }
}

@media (max-width: 860px) {
   .hero-bottom { padding-bottom: 80px; }
}

@media (max-width: 700px) {
   .brand-mark { font-size: 13px; }
   .nav-underline { display: none; }
   .nav-links {
      position: absolute;
      top: 100%;
      left: 0; right: 0;
      background: var(--paper);
      border-bottom: 1px solid var(--line);
      flex-direction: column;
      gap: 0;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease;
   }
   .nav-links.open { max-height: 420px; }
   .nav-links li { width: 100%; border-top: 1px solid var(--line); }
   .nav-links li:first-child { border-top: none; }
   .nav-links a {
      display: block;
      padding: 16px 28px;
      color: var(--navy) !important;
      line-height: 1.2;
   }
   .nav-toggle { display: block; }
   .section-head { flex-wrap: wrap; gap: 10px 14px; }
   .section-head .rule { flex-basis: 100%; }
   .detail-inner { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 560px) {
   .form-row { grid-template-columns: 1fr; gap: 0; }
}

@media (max-width: 480px) {
   .hero { min-height: 500px; }
   .hero-bottom { padding-bottom: 64px; }
   .scroll-cue { right: 22px; bottom: 26px; }
   .about, .investments { padding: 72px 0; }
   .people { padding: 72px 0; }
   .contact { padding: 72px 0 44px; }
   .send-btn { width: 100%; justify-content: center; }
}

/* ---------- news ---------- */
.news {
   padding: 104px 0;
   background: var(--paper);
   border-bottom: 1px solid var(--line);
}
.news-list { list-style: none; margin: 0; padding: 0; }
.news-item { border-top: 1px solid var(--line); position: relative; }
.news-item:last-child { border-bottom: 1px solid var(--line); }
.news-item::before {
   content: '';
   position: absolute;
   top: -1px; left: 0;
   width: 100%;
   height: 1px;
   background: var(--gold);
   transform: scaleX(0);
   transform-origin: 0 50%;
   transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.news-item:hover::before { transform: scaleX(1); }
.news-link {
   display: grid;
   grid-template-columns: 200px 1fr 40px;
   gap: 32px;
   align-items: baseline;
   padding: 26px 0;
   text-decoration: none;
}
.news-meta { display: flex; flex-direction: column; gap: 2px; }
.news-date {
   font-size: 11px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--gold);
   font-weight: 600;
}
.news-source { font-size: 12px; color: var(--muted); }
.news-title {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(18px, 2vw, 23px);
   color: var(--navy);
   line-height: 1.4;
   transition: color 0.3s ease;
}
.news-link:hover .news-title { color: var(--gold); }
.news-arrow {
   font-size: 16px;
   color: var(--muted);
   justify-self: end;
   transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease;
}
.news-link:hover .news-arrow { transform: translate(4px, -4px); color: var(--gold); }
.news-all {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   margin-top: 32px;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--navy);
   text-decoration: none;
   transition: color 0.3s ease;
}
.news-all .arrow { transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
.news-all:hover { color: var(--gold); }
.news-all:hover .arrow { transform: translateX(5px); }

/* ---------- subpages (news archive, press releases) ---------- */
.site-nav.solid {
   background: rgba(248, 246, 242, 0.94);
   -webkit-backdrop-filter: saturate(150%) blur(8px);
   backdrop-filter: saturate(150%) blur(8px);
   border-bottom-color: var(--line);
}
.site-nav.solid .brand-mark { color: var(--navy); }
.site-nav.solid .nav-links a { color: var(--navy); }
.site-nav.solid .nav-links a:hover,
.site-nav.solid .nav-links a.active { color: var(--gold); }
.site-nav.solid .nav-toggle span,
.site-nav.solid .nav-toggle span::before,
.site-nav.solid .nav-toggle span::after { background: var(--navy); }

.page-main {
   padding: calc(var(--nav-h) + 72px) 0 104px;
   min-height: 70vh;
}
.release { max-width: 720px; }
.release .eyebrow-tag {
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--gold);
   margin: 0 0 18px;
}
.release h1 {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(30px, 4.4vw, 48px);
   line-height: 1.22;
   color: var(--navy);
   margin: 0 0 14px;
}
.release .release-date {
   font-size: 12px;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--muted);
   margin: 0 0 40px;
}
.release p { font-size: 15.5px; color: var(--ink); margin: 0 0 22px; max-width: 66ch; }
.back-link {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   margin-top: 40px;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--navy);
   text-decoration: none;
   transition: color 0.3s ease;
}
.back-link:hover { color: var(--gold); }

.page-footer {
   border-top: 1px solid var(--line);
   padding: 28px 0 40px;
   font-size: 12px;
   color: var(--muted);
}

@media (max-width: 700px) {
   .news-link { grid-template-columns: 1fr; gap: 8px; }
   .news-arrow { display: none; }
   .news { padding: 72px 0; }
}

/* ---------- globe labels & tooltip ---------- */
.globe-label {
   position: absolute;
   transform: translate(-50%, -135%);
   pointer-events: none;
   text-align: center;
   opacity: 0;
   transition: opacity 0.35s ease;
   background: rgba(8, 17, 36, 0.78);
   border: 1px solid rgba(201, 163, 90, 0.45);
   border-radius: 999px;
   padding: 7px 14px;
   white-space: nowrap;
   z-index: 4;
}
.globe-label .l1 {
   display: block;
   font-size: 10px;
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--gold-bright);
   line-height: 1.5;
}
.globe-label .l2 {
   display: block;
   font-size: 10px;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: rgba(246, 241, 230, 0.8);
   line-height: 1.4;
}
.globe-tip {
   position: absolute;
   pointer-events: none;
   background: #fff;
   border: 1px solid var(--line);
   border-radius: 8px;
   padding: 8px 14px;
   opacity: 0;
   transition: opacity 0.2s ease;
   box-shadow: 0 14px 32px -14px rgba(16, 32, 63, 0.4);
   white-space: nowrap;
   z-index: 5;
}
.globe-tip .t-name {
   display: block;
   font-size: 13px;
   font-weight: 600;
   color: var(--navy);
}
.globe-tip .t-city {
   display: block;
   font-size: 11px;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--muted);
}

/* ---------- company list scalability ---------- */
/* fallback cap for the stacked mobile layout; on wide screens JS pins this
   to the globe's own height so the two feet line up exactly */
.company-list.scrolly {
   max-height: 500px;
   overflow-y: auto;
   padding-right: 8px;
   scrollbar-width: thin;
   scrollbar-color: var(--line) transparent;
   /* soft fade at the foot only: the next company peeks through and dissolves
      away rather than being cut off hard, hinting there's more to scroll to */
   -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 80px), transparent 100%);
   mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 80px), transparent 100%);
}
.company-list.scrolly::-webkit-scrollbar { width: 4px; }
.company-list.scrolly::-webkit-scrollbar-thumb { background: var(--line); border-radius: 2px; }

/* text wordmark for companies without a logo file yet */
.logo-text {
   font-weight: 600;
   font-size: 18px;
   letter-spacing: 0.01em;
   color: var(--navy);
   line-height: 1.1;
}

/* ---------- sector filters ---------- */
.sector-filters {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: 0 0 22px;
}
.sector-filters button {
   font-family: inherit;
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--muted);
   background: none;
   cursor: pointer;
   border: 1px solid var(--line);
   border-radius: 999px;
   padding: 7px 14px;
   transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.sector-filters button:hover { color: var(--gold); border-color: var(--gold); }
.sector-filters button.on {
   color: #f6f1e6;
   background: var(--navy);
   border-color: var(--navy);
}

/* ---------- globe zoom controls ---------- */
.globe-zoom {
   position: absolute;
   right: 10px;
   bottom: 10px;
   display: flex;
   flex-direction: column;
   gap: 8px;
   z-index: 4;
}
.globe-zoom button {
   width: 38px;
   height: 38px;
   border-radius: 50%;
   border: 1px solid var(--line);
   background: rgba(255, 255, 255, 0.92);
   color: var(--navy);
   font-family: inherit;
   font-size: 18px;
   line-height: 1;
   cursor: pointer;
   transition: color 0.3s ease, border-color 0.3s ease;
}
.globe-zoom button:hover { color: var(--gold); border-color: var(--gold); }

.person-photo img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: 50%;
}

/* ---------- form thank-you state ---------- */
.form-done {
   display: none;
   padding: 24px 0 8px;
}
.form-done.show { display: block; }
.form-done .done-title {
   font-family: var(--serif);
   font-weight: 300;
   font-size: clamp(26px, 3.4vw, 36px);
   color: var(--navy);
   margin: 0 0 12px;
}
.form-done .done-body {
   font-size: 15px;
   color: var(--muted);
   max-width: 44ch;
   margin: 0 auto 28px;
}
.form-notice { color: var(--gold); }
