:root {
  --ink: #101c38;
  --muted: #6d695f;
  --paper: #f7f4ea;
  --white: #fffdf7;
  --green: #6b1235;
  --green-light: #ede3ca;
  --gold: #c3a23a;
  --forest: #103f36;
  --burgundy: #6b1235;
  --line: rgba(16, 28, 56, .14);
  --pad: clamp(22px, 4.2vw, 76px);
  --serif: Iowan Old Style, Baskerville, "Times New Roman", serif;
  --sans: Inter, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { display: block; max-width: 100%; }
p, h1, h2, h3, h4, li, a, button { overflow-wrap: normal; word-break: normal; hyphens: none; }
::selection { color: #fff; background: var(--green); }
.skip-link { position: fixed; z-index: 100; top: -80px; left: 20px; padding: 12px 18px; background: #fff; border-radius: 99px; }
.skip-link:focus { top: 20px; }

.site-header {
  position: fixed;
  z-index: 50;
  top: 16px;
  left: var(--pad);
  right: var(--pad);
  height: 62px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  padding: 0 13px 0 18px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  color: var(--ink);
  background: rgba(255,255,255,.34);
  backdrop-filter: blur(18px);
  transition: background .4s, border-color .4s, box-shadow .4s, top .4s;
}
.site-header.scrolled { top: 10px; background: rgba(255,255,255,.9); border-color: rgba(16,21,18,.08); box-shadow: 0 10px 35px rgba(25,43,34,.08); }
.brand { display: inline-flex; width: fit-content; align-items: center; gap: 11px; }
.brand-mark { width: 35px; height: 35px; object-fit: contain; flex: 0 0 35px; }
.brand-lockup { display: grid; gap: 1px; }
.brand-name { font-size: 15px; font-weight: 750; letter-spacing: .16em; }
.brand-lockup small { color: var(--gold); font: 600 8px/1 var(--serif); letter-spacing: .08em; }
.brand-bloom { position: relative; width: 20px; height: 20px; display: inline-block; transform: rotate(45deg); }
.brand-bloom i { position: absolute; width: 9px; height: 9px; border: 1.5px solid currentColor; border-radius: 9px 2px 9px 2px; }
.brand-bloom i:nth-child(1) { top: 0; left: 0; }
.brand-bloom i:nth-child(2) { top: 0; right: 0; transform: rotate(90deg); }
.brand-bloom i:nth-child(3) { bottom: 0; right: 0; transform: rotate(180deg); }
.brand-bloom i:nth-child(4) { bottom: 0; left: 0; transform: rotate(270deg); }
.desktop-nav { justify-self: center; display: flex; gap: clamp(20px, 2.6vw, 46px); align-items: center; font-size: 12px; }
.desktop-nav a { position: relative; padding: 9px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 3px; height: 1px; background: var(--ink); transition: right .3s; }
.desktop-nav a:hover::after { right: 0; }
.nav-cta { justify-self: end; display: inline-flex; align-items: center; gap: 16px; padding: 13px 17px; border-radius: 999px; color: #fff; background: var(--ink); font-size: 11px; letter-spacing: .04em; }
.nav-cta span { font-size: 14px; }
.menu-button { display: none; justify-self: end; width: 42px; height: 42px; padding: 11px 9px; border: 0; border-radius: 50%; background: var(--ink); cursor: pointer; }
.menu-button span { display: block; width: 100%; height: 1px; margin: 4px 0; background: #fff; }
.mobile-menu { position: fixed; z-index: 49; inset: 0; padding: 100px 20px 24px; color: var(--ink); background: rgba(247,248,244,.97); backdrop-filter: blur(25px); overflow-y: auto; }
.mobile-menu.open { display: grid; grid-template-rows: auto 1fr; animation: menuIn .4s ease both; }
.mobile-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 18px; border-bottom: 1px solid var(--line); font-size: 11px; text-transform: uppercase; letter-spacing: .14em; }
.mobile-menu-head button { padding: 8px 0; border: 0; background: transparent; cursor: pointer; }
.mobile-menu > a { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-content: center; padding: 20px 4px; border-bottom: 1px solid var(--line); }
.mobile-menu a small { grid-column: 1 / -1; color: var(--muted); text-transform: uppercase; letter-spacing: .12em; }
.mobile-menu a strong { font: 400 clamp(30px, 10vw, 48px)/.88 var(--serif); letter-spacing: -.05em; }
.mobile-menu a > span { max-width: 140px; align-self: end; font-size: 11px; line-height: 1.45; }
.mobile-menu a b { float: right; color: var(--green); font-size: 20px; }
.mobile-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-content: end; padding: 24px 4px calc(98px + env(safe-area-inset-bottom)); }
.mobile-access-card { min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; border: 1px solid rgba(255,255,255,.15); border-radius: 25px; background: rgba(255,255,255,.05); }
.mobile-access-card small { color: #d7ba62 !important; font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase; }
.mobile-access-card strong { font: 400 clamp(30px,9vw,46px)/.92 var(--serif) !important; letter-spacing: -.045em; }
.mobile-access-card span { max-width: none !important; color: rgba(255,253,247,.7); font-size: 14px !important; line-height: 1.45; }
.mobile-access-card b { color: var(--scan-core) !important; }

.hero { position: relative; min-height: 100svh; height: 100svh; overflow: hidden; color: var(--ink); background: #dce9f2; }
.cloud-flight { position: absolute; inset: -5%; }
.cloud-flight img { width: 110%; height: 110%; max-width: none; object-fit: cover; animation: cloudCruise 28s ease-in-out infinite alternate; will-change: transform; }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(247,248,244,.1) 0%, rgba(247,248,244,.08) 42%, rgba(247,248,244,.64) 100%), linear-gradient(90deg, rgba(255,255,255,.28), transparent 55%); }
.hero-copy { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 108px var(--pad) 80px; }
.hero h1 { width: min(1160px, 88vw); margin: 0; font: 400 clamp(51px, 7.6vw, 132px)/.84 var(--serif); letter-spacing: -.066em; text-wrap: balance; text-shadow: 0 1px 22px rgba(255,255,255,.2); }
.hero h1 { animation: heroIntro 1.4s .2s cubic-bezier(.2,.8,.2,1) both; }
.hero-bottom { display: flex; align-items: flex-end; gap: 34px; width: min(680px, 75vw); margin: 42px 0 0 auto; }
.hero-bottom p { max-width: 400px; margin: 0; font-size: clamp(14px, 1.2vw, 18px); line-height: 1.55; }
.round-link { flex: 0 0 102px; height: 102px; display: flex; justify-content: space-between; flex-direction: column; padding: 18px; border: 1px solid rgba(16,21,18,.45); border-radius: 50%; font-size: 10px; line-height: 1.25; text-transform: uppercase; letter-spacing: .08em; transition: color .3s, background .3s, transform .3s; }
.round-link b { align-self: flex-end; font-size: 15px; }
.round-link:hover { color: #fff; background: var(--ink); transform: rotate(-5deg); }
.hero-coordinate { position: absolute; z-index: 2; bottom: 27px; left: var(--pad); display: flex; gap: 10px; align-items: center; font-size: 9px; letter-spacing: .15em; }
.hero-coordinate i { width: 52px; height: 1px; background: rgba(16,21,18,.5); }
.motion-toggle { position: absolute; z-index: 3; right: var(--pad); bottom: 20px; display: flex; align-items: center; gap: 10px; padding: 8px 0; border: 0; background: transparent; font-size: 9px; text-transform: uppercase; letter-spacing: .14em; cursor: pointer; }
.motion-toggle > span { display: inline-flex; gap: 2px; height: 10px; align-items: flex-end; }
.motion-toggle i { width: 2px; height: 5px; background: var(--ink); animation: pulse 1.2s ease-in-out infinite alternate; }
.motion-toggle i:nth-child(2) { height: 9px; animation-delay: .25s; }
.motion-toggle i:nth-child(3) { height: 7px; animation-delay: .5s; }

.eyebrow { display: flex; align-items: center; gap: 18px; margin: 0 0 24px; color: var(--green); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 27px; height: 1px; background: currentColor; }
.eyebrow span { color: var(--muted); font-weight: 400; }
.origin { position: relative; background: linear-gradient(180deg, #fff 0%, #fff 62%, #fbfcfa 78%, var(--paper) 100%); overflow: clip; }
.origin-scroll { position: relative; min-height: 215vh; }
.origin-sticky { position: sticky; top: 0; height: 100svh; display: flex; align-items: flex-start; padding: 13vh var(--pad) 6vh; isolation: isolate; }
.origin-sticky::before { content: ""; position: absolute; z-index: 0; inset: 9% 3%; opacity: .32; background-image: linear-gradient(rgba(47,111,181,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(47,111,181,.07) 1px, transparent 1px); background-size: 54px 54px; mask-image: radial-gradient(ellipse at 64% 55%, #000, transparent 68%); }
.origin-copy { position: relative; z-index: 4; width: min(640px, 53vw); }
.origin-copy h2, .section-head h2, .method h2, .mandate h2 { margin: 0; font: 400 clamp(52px, 6.3vw, 108px)/.9 var(--serif); letter-spacing: -.06em; }
.origin-copy h2 { text-shadow: 0 0 4px rgba(255,255,255,1), 0 0 16px rgba(255,255,255,.98), 0 0 36px rgba(255,255,255,.92), 0 0 62px rgba(47,111,181,.24); }
.origin-copy h2 em, .method h2 em { color: var(--green); font-weight: 400; }
.origin-copy > p { text-shadow: 0 0 4px rgba(255,255,255,1), 0 0 13px rgba(255,255,255,.98), 0 0 28px rgba(255,255,255,.9), 0 0 44px rgba(47,111,181,.2); }
.origin-copy > .origin-story { position: relative; z-index: 5; max-width: 500px; margin: 42px 0 0; color: #203630; font-size: 16px; font-weight: 500; line-height: 1.72; text-shadow: none; }
.origin-story > span { display: block; }
.soil-contact-copy { display: none; }
.bloom-stage { position: absolute; z-index: 2; inset: 3.5vh -5vw -1vh -8vw; overflow: hidden; pointer-events: none; --scan-left: 0px; --scan-opacity: 0; }
.bloom-source { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 1; filter: saturate(1.03) contrast(1.035); transform: scale(var(--bloom-scale,.985)); transform-origin: left bottom; will-change: transform; }
.bloom-stage::after { display: none; }
.origin-manifesto { position: relative; z-index: 3; min-height: clamp(230px,31svh,360px); display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .18em; margin: 0; padding: clamp(72px,10vh,120px) var(--pad); background: linear-gradient(180deg,rgba(255,253,247,.2),#fffdf7 35%,var(--paper) 100%); font: 400 clamp(27px,4vw,68px)/1.05 var(--serif); letter-spacing: -.045em; text-align: right; }
.origin-manifesto span { color: var(--green); }

.offerings { padding: 13vh 0 14vh var(--pad); background: var(--paper); overflow: hidden; }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; padding-right: var(--pad); margin-bottom: 70px; }
.section-head h2 { font-size: clamp(48px, 5.3vw, 88px); }
.carousel-controls { display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: 10px; letter-spacing: .13em; }
.carousel-controls button { width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; transition: .25s; }
.carousel-controls button:hover { color: #fff; background: var(--ink); }
.carousel-controls b { color: var(--ink); }
.offering-track { display: grid; grid-auto-columns: minmax(400px, 42vw); grid-auto-flow: column; gap: 18px; padding: 0 var(--pad) 18px 0; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-width: none; }
.offering-track::-webkit-scrollbar { display: none; }
.offering-card { position: relative; min-height: 670px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 28px; border: 1px solid var(--line); border-radius: 4px; background: #fff; scroll-snap-align: start; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s; }
.offering-card:hover { transform: translateY(-7px); box-shadow: 0 24px 80px rgba(35,54,43,.1); }
.card-art { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.card-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0 43%, rgba(255,255,255,.2) 51%, #fff 68%); }
.card-art img { width: 100%; height: 54%; object-fit: cover; opacity: 1; transform: scale(1.005); transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .8s; filter: saturate(.78) contrast(1.02); }
.legacy .card-art img { object-position: center 43%; }
.capital .card-art img { object-position: center 48%; }
.impact .card-art img { object-position: center 48%; }
.card-art span { position: absolute; z-index: 2; top: 47%; left: 28px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); background: rgba(255,255,255,.88); backdrop-filter: blur(10px); font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }
.offering-card:hover .card-art img { transform: scale(1.045); filter: saturate(.96) contrast(1.02); }
.card-top > span, .card-top small { padding: 7px 9px; border-radius: 99px; background: rgba(255,255,255,.86); backdrop-filter: blur(9px); }
.card-top, .card-copy { position: relative; z-index: 2; }
.card-top { min-height: 52px; display: flex; justify-content: space-between; align-items: flex-start; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.card-top small { max-width: 190px; color: var(--muted); text-align: right; line-height: 1.45; }
.card-copy { display: grid; grid-template-rows: 126px 84px auto; align-content: end; }
.card-copy h3 { margin: 0; font: 400 clamp(41px, 3.55vw, 61px)/.86 var(--serif); letter-spacing: -.06em; }
.card-copy h3 span { display: block; white-space: nowrap; }
.card-copy p { width: min(360px, 86%); margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.card-copy > b { display: flex; align-items: center; justify-content: space-between; padding-top: 18px; border-top: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.card-copy i { color: var(--green); font-size: 19px; font-style: normal; transition: transform .3s; }
.offering-card:hover .card-copy i { transform: translate(4px,-4px); }
.swipe-hint { display: none; }

.foundation { position: relative; padding: 16vh var(--pad); overflow: hidden; background: #eef3f8; }
.foundation::before { content: "17"; position: absolute; right: -2vw; top: 36%; color: rgba(47,111,181,.045); font: 400 clamp(260px,40vw,650px)/.7 var(--serif); letter-spacing: -.1em; pointer-events: none; }
.foundation-intro { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); gap: clamp(45px,8vw,140px); align-items: end; padding: 0 0 11vh; border-bottom: 1px solid rgba(25,48,74,.16); }
.foundation h2 { margin: 0; font: 400 clamp(50px,6vw,98px)/.9 var(--serif); letter-spacing: -.058em; }
.foundation h2 em { color: var(--green); font-weight: 400; }
.company-statement { max-width: 610px; margin: 0 0 7px; color: #425363; font-size: clamp(16px,1.35vw,20px); line-height: 1.72; }
.mission-vision { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid rgba(25,48,74,.16); }
.mission-vision article { padding: clamp(46px,6vw,90px) clamp(0px,5vw,80px) clamp(55px,7vw,105px) 0; }
.mission-vision article + article { padding-right: 0; padding-left: clamp(35px,5vw,80px); border-left: 1px solid rgba(25,48,74,.16); }
.mission-vision span { color: var(--green); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.mission-vision p { max-width: 690px; margin: 28px 0 0; color: #253647; font: 400 clamp(23px,2.2vw,36px)/1.28 var(--serif); letter-spacing: -.025em; }
.thematic-scope { position: relative; z-index: 1; min-height: 730px; margin-top: 14vh; overflow: hidden; transition: color .45s ease, background .45s ease, box-shadow .45s ease; }
.thematic-default { display: grid; grid-template-columns: minmax(280px,35%) minmax(0,65%); gap: clamp(40px,7vw,120px); }
.scope-heading h3 { margin: 0; font: 400 clamp(43px,4.5vw,72px)/.92 var(--serif); letter-spacing: -.05em; }
.theme-instruction { max-width: 270px; margin: 34px 0 0; color: #4f6172; font-size: 13px; line-height: 1.6; }
.theme-click-cue { display: flex; align-items: center; gap: 14px; width: fit-content; margin-top: 24px; color: var(--ink); }
.theme-click-cue > span:last-child { display: grid; gap: 4px; }
.theme-click-cue b { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.theme-click-cue small { color: #657687; font-size: 11px; }
.theme-cue-orbit { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(5,143,69,.3); border-radius: 50%; box-shadow: inset 0 0 16px rgba(0,233,104,.07); }
.theme-cue-orbit::before, .theme-cue-orbit::after { content: ""; position: absolute; inset: -1px; border: 1px solid rgba(0,233,104,.42); border-radius: inherit; animation: themeCuePulse 2.8s ease-out infinite; }
.theme-cue-orbit::after { animation-delay: 1.4s; }
.theme-cue-orbit i { width: 6px; height: 6px; border-radius: 50%; background: var(--scan-core); box-shadow: 0 0 8px var(--scan-core), 0 0 20px var(--scan-glow); }
.theme-list { position: relative; list-style: none; margin: 0; padding: 0; overflow: hidden; border-bottom: 1px solid rgba(25,48,74,.18); }
.theme-list::after { content: ""; position: absolute; z-index: 2; top: 0; right: 0; left: 0; height: 1px; opacity: 0; pointer-events: none; background: linear-gradient(90deg,transparent 0%,var(--scan-deep) 12%,var(--scan-core) 48%,var(--scan-hot) 58%,var(--scan-mid) 84%,transparent 100%); box-shadow: 0 0 8px var(--scan-core), 0 0 22px var(--scan-glow); animation: themeListScan 7s cubic-bezier(.45,0,.2,1) infinite; }
.theme-list li { min-height: 84px; border-top: 1px solid rgba(25,48,74,.18); }
.theme-trigger { position: relative; z-index: 1; width: 100%; min-height: 84px; display: grid; grid-template-columns: 55px 1fr 28px; align-items: center; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; transition: color .3s, padding .35s cubic-bezier(.2,.8,.2,1), background .3s; }
.theme-trigger:hover, .theme-trigger:focus-visible { padding-left: 13px; color: var(--green); background: rgba(255,255,255,.34); outline: 0; }
.theme-trigger > span { color: var(--green); font-size: 10px; letter-spacing: .14em; }
.theme-trigger > b { color: var(--green); font-size: 15px; font-weight: 400; opacity: .42; transform: none; transition: opacity .25s, transform .3s; }
.theme-trigger:hover > b, .theme-trigger:focus-visible > b { opacity: 1; transform: none; }
.theme-list strong { font: 400 clamp(29px,3vw,46px)/1 var(--serif); letter-spacing: -.035em; }
.theme-list i { color: var(--green); font: inherit; }
.thematic-scope.is-dashboard { min-height: 730px; color: #f4f8fc; background: #0c2037; box-shadow: 0 28px 80px rgba(11,34,58,.2); }
.thematic-scope.is-dashboard::before { content: ""; position: absolute; inset: 0; opacity: .28; pointer-events: none; background-image: linear-gradient(rgba(116,185,239,.11) 1px, transparent 1px), linear-gradient(90deg,rgba(116,185,239,.11) 1px,transparent 1px), radial-gradient(circle at 78% 28%,rgba(62,149,222,.24),transparent 32%); background-size: 44px 44px,44px 44px,100% 100%; }
.thematic-scope.is-dashboard .thematic-default { display: none; }
.theme-dashboard { position: relative; z-index: 1; display: none; min-height: 730px; padding: clamp(26px,3.6vw,56px); }
.thematic-scope.is-dashboard .theme-dashboard { display: grid; grid-template-rows: auto 1fr auto; animation: dashboardReveal .46s cubic-bezier(.2,.75,.2,1) both; }
.theme-dashboard-head, .theme-dashboard-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.theme-dashboard-head { padding-bottom: 24px; border-bottom: 1px solid rgba(194,223,247,.18); }
.theme-dashboard-head > p { margin: 0; color: #95c9ef; font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.theme-dashboard-head > p span { color: #fff; }
.theme-dashboard-close { display: inline-flex; align-items: center; gap: 12px; padding: 10px 0; border: 0; color: rgba(244,248,252,.68); background: none; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.theme-dashboard-close:hover, .theme-dashboard-close:focus-visible { color: #fff; outline: none; }
.theme-dashboard-grid { display: grid; grid-template-columns: minmax(290px,.82fr) minmax(440px,1.18fr); gap: clamp(45px,6vw,96px); align-items: center; padding: clamp(42px,6vh,72px) 0; }
.theme-dashboard-signal { margin: 0 0 14px; color: #82c5f5; font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.theme-dashboard-copy h3 { margin: 0; font: 400 clamp(58px,6.8vw,104px)/.86 var(--serif); letter-spacing: -.055em; }
.theme-dashboard-description { max-width: 560px; margin: 28px 0 0; color: rgba(236,245,252,.7); font-size: 15px; line-height: 1.65; }
.theme-dashboard-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 38px; border-top: 1px solid rgba(194,223,247,.18); border-bottom: 1px solid rgba(194,223,247,.18); }
.theme-dashboard-metrics article { min-width: 0; padding: 20px 18px 20px 0; }
.theme-dashboard-metrics article + article { padding-left: 18px; border-left: 1px solid rgba(194,223,247,.18); }
.theme-dashboard-metrics span { display: block; color: rgba(236,245,252,.5); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.theme-dashboard-metrics strong { display: block; margin-top: 8px; color: #fff; font: 400 clamp(23px,2.2vw,34px)/1 var(--serif); white-space: nowrap; }
.theme-dashboard-metrics small { display: block; min-height: 1em; margin-top: 6px; color: #79bce9; font-size: 9px; }
.theme-dashboard-lens { display: grid; grid-template-columns: 118px 1fr; gap: 20px; margin-top: 28px; }
.theme-dashboard-lens span { color: #82c5f5; font-size: 9px; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.theme-dashboard-lens p { margin: 0; color: rgba(236,245,252,.78); font-size: 13px; line-height: 1.6; }
.theme-chart { min-width: 0; margin: 0; padding: clamp(22px,2.6vw,38px); border: 1px solid rgba(194,223,247,.18); background: rgba(6,22,39,.56); box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 26px 60px rgba(1,13,27,.22); }
.theme-chart figcaption { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 28px; }
.theme-chart figcaption div { display: grid; gap: 7px; }
.theme-chart figcaption span { color: rgba(236,245,252,.58); font-size: 10px; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; }
.theme-chart figcaption strong { color: #fff; font-size: 12px; letter-spacing: .1em; }
.theme-chart figcaption small { color: #82c5f5; font-size: 10px; }
.theme-chart-bars { display: grid; gap: 14px; }
.theme-bar { display: grid; grid-template-columns: 92px minmax(0,1fr) 68px; gap: 14px; align-items: center; }
.theme-bar-label { color: rgba(236,245,252,.72); font-size: 11px; white-space: nowrap; }
.theme-bar-track { position: relative; height: 13px; overflow: hidden; background: rgba(171,213,245,.08); }
.theme-bar-track::after { content: ""; position: absolute; inset: 0; opacity: .4; background: linear-gradient(90deg,transparent 24.7%,rgba(255,255,255,.12) 25%,transparent 25.3%,transparent 49.7%,rgba(255,255,255,.12) 50%,transparent 50.3%,transparent 74.7%,rgba(255,255,255,.12) 75%,transparent 75.3%); }
.theme-bar-track i { display: block; position: relative; z-index: 1; width: var(--bar); height: 100%; background: linear-gradient(90deg,#2f77b9,#8ed4ff); box-shadow: 0 0 14px rgba(73,171,238,.52); transform-origin: left; animation: dataBar .68s cubic-bezier(.2,.75,.2,1) both; }
.theme-bar-value { color: #fff; font-size: 11px; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.theme-chart-scale { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; margin: 18px 0 0 106px; color: rgba(236,245,252,.34); font-size: 9px; }
.theme-chart-scale i { height: 1px; background: rgba(194,223,247,.16); }
.theme-dashboard-foot { padding-top: 22px; border-top: 1px solid rgba(194,223,247,.18); }
.theme-dashboard-tabs { display: flex; align-items: center; gap: 7px; }
.theme-dashboard-tabs button { width: 31px; height: 31px; padding: 0; border: 1px solid rgba(194,223,247,.18); border-radius: 50%; color: rgba(236,245,252,.52); background: transparent; font-size: 9px; cursor: pointer; transition: color .25s,border-color .25s,background .25s; }
.theme-dashboard-tabs button:hover, .theme-dashboard-tabs button:focus-visible, .theme-dashboard-tabs button.active { color: #071a2e; border-color: #9bd5fb; background: #9bd5fb; outline: none; }
.theme-dashboard-source { color: #a5d5f5; font-size: 11px; letter-spacing: .04em; }
.theme-dashboard-source:hover, .theme-dashboard-source:focus-visible { color: #fff; outline: none; }
@keyframes dashboardReveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes dataBar { from { transform: scaleX(0); filter: brightness(1.6); } to { transform: scaleX(1); filter: brightness(1); } }
@keyframes themeCuePulse { 0% { opacity: .7; transform: scale(.82); } 72%,100% { opacity: 0; transform: scale(1.48); } }
@keyframes themeListScan { 0%,10% { top: 0; opacity: 0; } 16% { opacity: .9; } 74% { opacity: .68; } 88%,100% { top: 100%; opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .theme-cue-orbit::before, .theme-cue-orbit::after, .theme-list::after { animation: none; }
  .theme-list::after { top: 50%; opacity: .28; }
}
.geographic-scope { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(260px,34%) minmax(0,66%); gap: clamp(38px,7vw,110px); margin-top: 16vh; padding: clamp(38px,5vw,78px); color: #edf5fc; background: #10233d; overflow: hidden; }
.geographic-scope::after { content: ""; position: absolute; right: -12%; bottom: -58%; width: 58vw; height: 58vw; border: 1px solid rgba(125,185,235,.17); border-radius: 50%; box-shadow: 0 0 0 90px rgba(82,146,207,.035), 0 0 0 180px rgba(82,146,207,.025); pointer-events: none; }
.geo-heading { position: relative; z-index: 1; }
.geo-heading .eyebrow { color: #9cc8ef; }
.geo-heading > strong { display: flex; align-items: flex-end; gap: 17px; margin-top: 5vh; font: 400 clamp(30px,3vw,48px)/1 var(--serif); }
.geo-heading > strong span { color: #a8d4f7; font-size: clamp(105px,13vw,190px); line-height: .65; letter-spacing: -.09em; }
.geo-heading > p:last-child { max-width: 270px; margin: 42px 0 0; color: rgba(237,245,252,.6); font-size: 14px; line-height: 1.65; }
.country-list { position: relative; z-index: 1; list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-content: start; margin: 0; padding: 0; }
.country-list li { position: relative; min-height: 66px; display: flex; gap: 12px; align-items: center; padding: 12px 16px 12px 0; border-top: 1px solid rgba(255,255,255,.15); color: rgba(237,245,252,.86); font-size: clamp(13px,1.2vw,17px); transition: color .3s, transform .3s; }
.country-list li:hover { color: #fff; transform: translateX(5px); }
.country-list li > span { color: #78b8ed; font-size: 8px; letter-spacing: .1em; }
.country-list .cameroon { color: #b8dbf7; }
.country-list small { position: absolute; right: 10px; bottom: 5px; color: rgba(184,219,247,.52); font-size: 7px; letter-spacing: .12em; text-transform: uppercase; }

.method { position: relative; padding: 16vh var(--pad) 14vh; color: #eef4fb; background: #10233d; overflow: hidden; }
.method::after { content: ""; position: absolute; inset: 0; opacity: .32; background: radial-gradient(circle at 76% 37%, rgba(83,145,211,.42), transparent 38%); }
.method-intro { position: relative; z-index: 2; width: min(640px, 70vw); }
.method .eyebrow { color: #a9c9e9; }
.method h2 em { color: #91bde8; }
.method-intro > p:last-child { max-width: 360px; margin: 30px 0 75px; color: rgba(234,240,235,.62); font-size: 14px; line-height: 1.7; }
.method-line { position: absolute; z-index: 1; top: 53%; left: var(--pad); right: var(--pad); height: 1px; background: rgba(255,255,255,.2); }
.method-line i { display: block; width: var(--line-progress, 0%); height: 1px; background: #d2b26f; box-shadow: 0 0 18px #d2b26f; }
.method-track { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(5, 1fr); }
.method-track article { min-height: 270px; padding: 32px 24px 24px 0; border-right: 1px solid rgba(255,255,255,.14); }
.method-track article + article { padding-left: 24px; }
.method-track article > span { display: grid; place-items: center; width: 31px; height: 31px; margin-bottom: 60px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: #10233d; color: #8fc3f0; font-size: 9px; }
.method-track h3 { margin: 0 0 15px; font: 400 30px/1 var(--serif); }
.method-track p { max-width: 190px; margin: 0; color: rgba(234,240,235,.54); font-size: 11px; line-height: 1.65; }

.mandate { position: relative; min-height: 100svh; display: grid; place-items: center; padding: 15vh var(--pad); overflow: hidden; background: linear-gradient(180deg, #fff 0%, #f7fbff 58%, #e8f2fb 100%); }
.mandate::before { content: ""; position: absolute; inset: 0; opacity: .72; background-image: linear-gradient(rgba(47,111,181,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(47,111,181,.055) 1px, transparent 1px); background-size: clamp(48px,5vw,82px) clamp(48px,5vw,82px); mask-image: linear-gradient(180deg, transparent, #000 30%, #000 72%, transparent); pointer-events: none; }
.mandate-copy { position: relative; z-index: 2; width: min(1180px, 100%); }
.mandate-axis { display: grid; grid-template-columns: auto minmax(80px,1fr) auto; gap: 18px; align-items: center; margin-bottom: clamp(56px,8vh,100px); color: #557086; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.mandate-axis i { position: relative; height: 1px; overflow: visible; background: rgba(47,111,181,.18); }
.mandate-axis b { position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, #2f6fb5, #bde4ff); box-shadow: 0 0 8px #72b9ee, 0 0 24px rgba(47,111,181,.62); transform: scaleX(0); transform-origin: left; }
.mandate-copy.visible .mandate-axis b { animation: mandateSignal 1.35s .18s cubic-bezier(.2,.75,.2,1) forwards; }
.mandate h2 { max-width: 1080px; font-size: clamp(56px, 6.4vw, 106px); }
.mandate-copy > p:not(.eyebrow) { max-width: 560px; margin: 38px 0 28px auto; color: #435768; font-size: 16px; line-height: 1.75; }
.mandate-copy > .primary-button, .mandate-copy > .brief { margin-left: auto; }
.mandate-copy > .brief { width: min(560px,100%); }
.primary-button { display: inline-flex; align-items: center; gap: 22px; padding: 16px 19px; border: 0; border-radius: 99px; color: #fff; background: var(--green); font-size: 11px; letter-spacing: .05em; cursor: pointer; transition: transform .3s, background .3s; }
.primary-button:hover { background: var(--ink); transform: translateY(-2px); }
.brief { margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--line); animation: revealUp .4s ease both; }
.brief p { margin: 0 0 15px; font-size: 11px; text-transform: uppercase; letter-spacing: .11em; }
.brief ol { list-style: none; margin: 0; padding: 0; }
.brief li { display: flex; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.brief li span { color: var(--green); font-size: 9px; }

footer { display: grid; grid-template-columns: 1fr auto; gap: 60px; padding: 80px var(--pad) 28px; color: #dce6de; background: var(--ink); }
footer > div > p { margin: 26px 0 70px; color: rgba(220,230,222,.5); font: 400 clamp(22px, 2.3vw, 38px)/1.1 var(--serif); }
footer nav { display: flex; align-items: flex-start; gap: 32px; color: rgba(220,230,222,.7); font-size: 11px; }
footer small { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(220,230,222,.38); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(38px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.visible { opacity: 1; transform: none; }
.letter-reveal .letter-word { display: inline-block; white-space: nowrap; }
.letter-reveal .letter { display: inline-block; opacity: 0; filter: blur(9px); transform: translateY(.2em); transition: opacity .72s, filter .8s, transform .8s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--char-index) * 14ms); }
.letter-reveal.letters-visible .letter { opacity: 1; filter: blur(0); transform: none; }
.page-leaving { opacity: 0; transition: opacity .42s ease; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state: paused !important; transition-duration: .01ms !important; }

@keyframes cloudCruise { 0% { transform: scale(1.04) translate3d(-1.5%, 1%, 0); } 50% { transform: scale(1.11) translate3d(1.5%, -1.5%, 0); } 100% { transform: scale(1.17) translate3d(-.6%, -2.5%, 0); } }
@keyframes pulse { to { height: 10px; opacity: .5; } }
@keyframes menuIn { from { opacity: 0; clip-path: inset(0 0 100% 0); } to { opacity: 1; clip-path: inset(0); } }
@keyframes revealUp { from { opacity: 0; transform: translateY(10px); } }
@keyframes heroIntro { from { opacity: 0; filter: blur(12px); transform: translateY(24px); } }
@keyframes mandateSignal { 0% { transform: scaleX(0); filter: brightness(1.5); } 82% { filter: brightness(1.5); } 100% { transform: scaleX(1); filter: brightness(1); } }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav, .nav-cta { display: none; }
  .menu-button { display: block; }
  .hero-copy { padding-bottom: 110px; }
  .hero h1 { width: 92vw; font-size: clamp(52px, 10vw, 88px); }
  .hero-bottom { width: min(620px, 82vw); margin-left: 0; }
  .origin-scroll { min-height: 195vh; }
  .origin-copy { width: min(610px, 58vw); }
  .offering-track { grid-auto-columns: minmax(360px, 68vw); }
  .foundation-intro { grid-template-columns: 1fr; align-items: start; }
  .company-statement { max-width: 720px; }
  .thematic-default { grid-template-columns: 30% 70%; gap: 40px; }
  .theme-dashboard-grid { grid-template-columns: 1fr; gap: 42px; }
  .theme-dashboard-copy { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
  .theme-dashboard-copy h3, .theme-dashboard-signal { grid-column: 1; }
  .theme-dashboard-description { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
  .theme-dashboard-metrics, .theme-dashboard-lens { grid-column: 1 / -1; }
  .geographic-scope { grid-template-columns: 1fr; }
  .geo-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }
  .geo-heading .eyebrow { grid-column: 1 / -1; }
  .geo-heading > strong { margin-top: 25px; }
  .geo-heading > p:last-child { margin: 0 0 4px; }
  .method-track { overflow-x: auto; grid-template-columns: repeat(5, minmax(230px, 1fr)); scroll-snap-type: x mandatory; }
  .method-track article { scroll-snap-align: start; }
  .mandate-copy { width: 100%; }
}

@media (max-width: 680px) {
  :root { --pad: 18px; }
  .site-header { top: 10px; left: 12px; right: 12px; height: 54px; padding-left: 15px; }
  .brand-name { font-size: 12px; }
  .brand-bloom { width: 18px; height: 18px; }
  .brand-bloom i { width: 8px; height: 8px; }
  .menu-button { width: 40px; height: 40px; }
  .hero { min-height: 100svh; }
  .cloud-flight { inset: -2% -46%; }
  .cloud-flight img { width: 100%; height: 100%; object-position: 46% center; }
  .hero-wash { background: linear-gradient(180deg, rgba(247,248,244,.07), rgba(247,248,244,.05) 45%, rgba(247,248,244,.86) 100%); }
  .hero-copy { justify-content: flex-end; padding: 105px 18px 118px; }
  .hero h1 { width: 100%; font-size: clamp(45px, 13.3vw, 66px); line-height: .89; letter-spacing: -.06em; }
  .hero-bottom { width: 100%; align-items: center; gap: 20px; margin-top: 28px; }
  .hero-bottom p { flex: 1; font-size: 12px; line-height: 1.5; }
  .round-link { flex-basis: 80px; height: 80px; padding: 13px; font-size: 8px; }
  .hero-coordinate { bottom: 24px; }
  .motion-toggle { bottom: 15px; }
  .motion-toggle > span, .motion-toggle i { display: none; }
  .origin { overflow: hidden; }
  .origin-scroll { min-height: 1650px; }
  .origin-sticky { height: 100svh; display: flex; align-items: flex-start; padding: 94px 18px 70px; }
  .origin-copy { width: 100%; }
  .origin-copy h2, .section-head h2, .method h2, .mandate h2 { font-size: clamp(48px, 14vw, 66px); }
  .origin-copy > .origin-story { width: 94%; margin-top: 34px; font-size: 15px; line-height: 1.68; }
  .bloom-stage { inset: 9svh -48vw -1svh -44vw; }
  .bloom-source { object-position: left bottom; }
  .origin-manifesto { min-height: 240px; justify-content: flex-start; padding: 68px 18px 92px; font-size: 35px; text-align: left; }
  .offerings { padding-top: 95px; padding-bottom: 100px; }
  .section-head { align-items: flex-end; margin-bottom: 38px; padding-right: 18px; }
  .section-head h2 { font-size: 48px; }
  .carousel-controls { display: none; }
  .offering-track { grid-auto-columns: 86vw; gap: 10px; padding-right: 10vw; }
  .offering-card { min-height: 73svh; max-height: 680px; padding: 20px; border-radius: 3px; }
  .card-top small { max-width: 140px; font-size: 8px; }
  .card-copy { grid-template-rows: 108px 86px auto; }
  .card-copy h3 { font-size: clamp(36px, 10.4vw, 48px); }
  .card-copy p { width: 95%; font-size: 12px; }
  .swipe-hint { display: flex; align-items: center; gap: 14px; margin-top: 18px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
  .swipe-hint i { flex: 1; height: 1px; background: linear-gradient(90deg, var(--green) 33%, var(--line) 33%); }
  .foundation { padding: 100px 18px; }
  .foundation::before { top: 48%; font-size: 95vw; }
  .foundation-intro { gap: 38px; padding-bottom: 70px; }
  .foundation h2 { font-size: 48px; }
  .company-statement { font-size: 16px; }
  .mission-vision { grid-template-columns: 1fr; }
  .mission-vision article { padding: 55px 0 62px; }
  .mission-vision article + article { padding-left: 0; border-top: 1px solid rgba(25,48,74,.16); border-left: 0; }
  .mission-vision p { font-size: 25px; }
  .thematic-scope { min-height: 630px; margin-top: 95px; }
  .thematic-default { grid-template-columns: 1fr; gap: 42px; }
  .scope-heading h3 { font-size: 46px; }
  .theme-instruction { margin-top: 24px; }
  .theme-list li, .theme-trigger { min-height: 74px; }
  .theme-trigger { grid-template-columns: 44px 1fr 24px; }
  .theme-list strong { font-size: 30px; }
  .thematic-scope.is-dashboard { min-height: 760px; margin-right: -18px; margin-left: -18px; }
  .theme-dashboard { min-height: 760px; padding: 24px 18px 30px; }
  .theme-dashboard-grid { grid-template-columns: 1fr; gap: 34px; padding: 34px 0; }
  .theme-dashboard-copy { display: block; }
  .theme-dashboard-copy h3 { font-size: clamp(56px,17vw,78px); }
  .theme-dashboard-description { margin-top: 22px; font-size: 14px; }
  .theme-dashboard-metrics { margin-top: 28px; }
  .theme-dashboard-metrics article { padding: 16px 10px 16px 0; }
  .theme-dashboard-metrics article + article { padding-left: 10px; }
  .theme-dashboard-metrics strong { font-size: clamp(19px,6vw,28px); }
  .theme-dashboard-lens { grid-template-columns: 92px 1fr; gap: 14px; margin-top: 22px; }
  .theme-chart { padding: 20px 14px; }
  .theme-chart figcaption { align-items: flex-start; margin-bottom: 22px; }
  .theme-bar { grid-template-columns: 70px minmax(0,1fr) 54px; gap: 9px; }
  .theme-bar-label { overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
  .theme-chart-scale { margin-left: 79px; }
  .theme-dashboard-foot { align-items: flex-end; }
  .theme-dashboard-tabs { max-width: 150px; flex-wrap: wrap; }
  .theme-dashboard-source { max-width: 120px; text-align: right; line-height: 1.45; }
  .geographic-scope { margin: 100px -18px 0; padding: 52px 18px 58px; }
  .geo-heading { display: block; }
  .geo-heading > strong { margin-top: 48px; }
  .geo-heading > strong span { font-size: 130px; }
  .geo-heading > p:last-child { margin-top: 36px; }
  .country-list { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 55px; }
  .country-list li { min-height: 62px; padding-right: 8px; font-size: 13px; }
  .country-list small { display: none; }
  .method { padding-top: 100px; padding-right: 0; }
  .method-intro { width: 90%; padding-right: 18px; }
  .method-intro > p:last-child { margin-bottom: 50px; }
  .method-line { display: none; }
  .method-track { gap: 10px; padding: 0 18px 12px 0; grid-template-columns: repeat(5, 75vw); }
  .method-track article { min-height: 330px; padding: 25px !important; border: 1px solid rgba(255,255,255,.13); scroll-snap-align: start; }
  .method-track article > span { margin-bottom: 105px; }
  .method-track h3 { font-size: 38px; }
  .method-track p { max-width: 220px; font-size: 12px; }
  .mandate { min-height: 920px; padding: 105px 18px 70px; }
  .mandate-copy { width: 100%; }
  .mandate-axis { grid-template-columns: auto 1fr auto; gap: 10px; margin-bottom: 64px; font-size: 7px; }
  .mandate h2 { font-size: 50px; }
  .mandate-copy > p:not(.eyebrow) { margin: 34px 0 26px; font-size: 14px; }
  .mandate-copy > .primary-button, .mandate-copy > .brief { margin-left: 0; }
  .mandate h2 { font-size: 46px; }
  footer { grid-template-columns: 1fr; gap: 30px; padding-top: 58px; }
  footer > div > p { margin-bottom: 35px; font-size: 26px; }
  footer nav { gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

.portal-access{font-size:14px;white-space:nowrap;text-decoration:none;color:inherit;margin-left:auto;padding:12px 14px}.portal-mobile-access{border-top:1px solid currentColor}.site-header .nav-cta{margin-left:0}@media(max-width:900px){.portal-access{display:none}.mobile-menu{overflow-y:auto;max-height:90svh}}

/* Readability and spacing audit: keep every label legible and every serif descender visible. */
body { font-size: 16px; line-height: 1.55; }
.desktop-nav,
.nav-cta,
.mobile-menu-head,
.mobile-menu a > span,
.round-link,
.hero-coordinate,
.motion-toggle,
.eyebrow,
.carousel-controls,
.card-art span,
.card-top,
.card-copy > b,
.mission-vision span,
.theme-trigger > span,
.theme-dashboard-head > p,
.theme-dashboard-close,
.theme-dashboard-signal,
.theme-dashboard-metrics span,
.theme-dashboard-metrics small,
.theme-dashboard-lens span,
.theme-chart figcaption span,
.theme-chart figcaption strong,
.theme-chart figcaption small,
.theme-bar-label,
.theme-bar-value,
.theme-chart-scale,
.theme-dashboard-tabs button,
.theme-dashboard-source,
.country-list li > span,
.country-list small,
.method-track article > span,
.mandate-axis,
.primary-button,
.brief p,
.brief li span,
footer nav,
footer small { font-size: 13px; }

.card-top small,
.card-copy p,
.theme-instruction,
.theme-dashboard-description,
.theme-dashboard-lens p,
.geo-heading > p:last-child,
.method-intro > p:last-child,
.mandate-copy > p:not(.eyebrow),
.method-track p,
.brief li { font-size: 15px; }

.hero h1,
.origin-copy h2,
.section-head h2,
.foundation h2,
.scope-heading h3,
.theme-dashboard-copy h3,
.method h2,
.mandate h2 { line-height: .98; padding-bottom: .08em; }

.card-copy { grid-template-rows: minmax(138px, auto) minmax(94px, auto) auto; row-gap: 8px; }
.card-copy h3 { line-height: .98; padding-bottom: .1em; overflow: visible; }
.offering-card { min-height: 710px; }
.geo-heading > strong span { line-height: .82; padding-bottom: .08em; }
.method-track h3 { line-height: 1.08; padding-bottom: .06em; }

@media (max-width: 680px) {
  .hero-bottom p,
  .card-copy p,
  .theme-dashboard-description,
  .method-track p,
  .mandate-copy > p:not(.eyebrow) { font-size: 15px; }
  .round-link,
  .card-top small,
  .swipe-hint,
  .mandate-axis { font-size: 12px; }
  .card-copy { grid-template-rows: minmax(118px, auto) minmax(100px, auto) auto; }
  .offering-card { min-height: min(760px, 82svh); max-height: none; }
  .theme-bar-label { overflow: visible; text-overflow: clip; white-space: normal; }
}

/* Homepage composition refinements */
.hero-copy {
  justify-content: center;
  padding: clamp(120px, 14vh, 156px) var(--pad) 88px;
}

.hero h1 {
  width: min(1060px, 84vw);
  font-size: clamp(48px, 6.55vw, 112px);
  line-height: 1;
  letter-spacing: -.058em;
}

.hero-bottom {
  width: min(650px, 72vw);
  margin-top: 30px;
}

.mission-vision {
  gap: 0;
  border-top: 1px solid rgba(16,28,56,.16);
  background: linear-gradient(90deg, rgba(255,253,247,.36), rgba(255,253,247,.12));
}

.mission-vision article {
  min-width: 0;
  padding: clamp(54px,6vw,90px) clamp(42px,5.6vw,88px) clamp(62px,7vw,108px);
}

.mission-vision article:first-child { padding-left: 0; }
.mission-vision article + article { padding-right: 0; }

.mission-vision span {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--burgundy);
  font-size: 14px;
}

.mission-vision span::after {
  content: "";
  width: 42px;
  height: 1px;
  background: var(--gold);
}

.mission-vision p {
  max-width: 760px;
  margin-top: 34px;
  color: #101c38;
  font-size: clamp(26px,2.25vw,36px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -.02em;
}

@media (max-width: 900px) {
  .hero-copy { padding-top: 124px; }
  .hero h1 { width: 88vw; font-size: clamp(46px, 8.2vw, 76px); }
  .mission-vision article { padding-right: clamp(28px,4vw,48px); padding-left: clamp(28px,4vw,48px); }
  .mission-vision article:first-child { padding-left: 0; }
  .mission-vision article + article { padding-right: 0; }
  .mission-vision p { font-size: clamp(24px,2.8vw,30px); }
}

@media (max-width: 680px) {
  .hero-copy { justify-content: flex-end; padding: 100px 18px 120px; }
  .hero h1 { width: 100%; font-size: clamp(39px,11.45vw,49px); line-height: 1.02; letter-spacing: -.052em; }
  .hero-bottom { width: 100%; margin-top: 20px; }
  .mission-vision { background: rgba(255,253,247,.24); }
  .mission-vision article,
  .mission-vision article:first-child,
  .mission-vision article + article { padding: 48px 0 56px; }
  .mission-vision p { margin-top: 26px; font-size: 25px; line-height: 1.42; }
}

/* PECTIS Legacy International brand system */
.site-header{border-color:rgba(16,28,56,.11);background:rgba(247,244,234,.84)}
.site-header.scrolled{background:rgba(247,244,234,.96);box-shadow:0 16px 48px rgba(16,28,56,.08)}
.nav-cta{background:var(--burgundy)}.nav-cta:hover{background:var(--forest)}
.portal-access:hover,.desktop-nav a:hover{color:var(--burgundy)}
.menu-button{background:var(--burgundy)}
.hero{background:#e8e4d9}.hero-wash{background:linear-gradient(180deg,rgba(247,244,234,.08),rgba(247,244,234,.18) 52%,rgba(247,244,234,.92) 100%)}
.hero h1 em,.origin-copy h2 em,.section-head h2 em,.foundation h2 em,.scope-heading h3 em,.method h2 em,.mandate h2 em{color:var(--burgundy)}
.round-link{border-color:rgba(16,28,56,.24)}.round-link:hover{background:var(--burgundy)}
.origin{background:linear-gradient(180deg,#fffdf7 0%,#fffdf7 62%,#faf6ed 80%,var(--paper) 100%)}
.origin-sticky::before{background-image:linear-gradient(rgba(195,162,58,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(195,162,58,.08) 1px,transparent 1px)}
.soil-contact-copy{text-shadow:0 0 2px #fff,0 0 8px #fff,0 0 18px rgba(195,255,219,.95),0 0 34px rgba(0,233,104,.62)}
.bloom-stage::after{background:linear-gradient(180deg,transparent 0%,var(--scan-deep) 7%,var(--scan-mid) 20%,var(--scan-hot) 50%,var(--scan-core) 80%,var(--scan-deep) 93%,transparent 100%);box-shadow:0 0 7px var(--scan-core),0 0 23px var(--scan-glow),0 0 62px var(--scan-aura)}
.carousel-controls button:hover{background:var(--burgundy)}.offering-card{background:#fffdf7}.card-art::after{background:linear-gradient(180deg,transparent 0 43%,rgba(255,253,247,.2) 51%,#fffdf7 68%)}
.foundation{background:#efe8d8}.company-statement{color:#4f4a42}.mission-vision p{color:#101c38}
.thematic-scope.is-dashboard{color:#fffaf0;background:#101c38;box-shadow:0 28px 80px rgba(16,28,56,.24)}
.theme-dashboard-head>p,.theme-dashboard-signal,.theme-dashboard-metrics small,.theme-dashboard-lens span,.theme-chart figcaption small,.theme-dashboard-source{color:#d7ba62}.theme-dashboard-tabs button:hover,.theme-dashboard-tabs button:focus-visible,.theme-dashboard-tabs button.active{color:#101c38;border-color:#d7ba62;background:#d7ba62}.theme-bar-track i{background:linear-gradient(90deg,#6b1235,#d0ad42);box-shadow:0 0 14px rgba(208,173,66,.5)}
.geographic-scope,.method{color:#fffaf0;background:#101c38}.geo-heading .eyebrow,.country-list .cameroon,.method .eyebrow{color:#d8c37d}.geo-heading>strong span,.country-list li>span,.method h2 em,.method-track article>span{color:#d0ad42}
.method-track article>span{background:#101c38}.mandate{background:linear-gradient(180deg,#fffdf7 0%,#faf6ed 58%,#efe6d1 100%)}.mandate::before{background-image:linear-gradient(rgba(195,162,58,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(195,162,58,.06) 1px,transparent 1px)}.mandate-axis b{background:linear-gradient(90deg,#6b1235,#d7ba62);box-shadow:0 0 8px #d7ba62,0 0 24px rgba(107,18,53,.48)}
.primary-button{background:var(--burgundy)}.primary-button:hover{background:var(--forest)}footer{color:#f0eadb;background:#101c38}.footer-brand .brand-name{color:#fffdf7}.footer-brand .brand-lockup small{color:#d0ad42}
@media(max-width:680px){.brand-mark{width:33px;height:33px}.brand-name{font-size:13px}.brand-lockup small{font-size:7px}.site-header{background:rgba(247,244,234,.9)}.mobile-menu{background:#101c38;color:#fffaf0}.mobile-menu a{border-color:rgba(255,255,255,.14)}}

/* Type safety: preserve serif descenders and breathing room in every display state. */
h1, h2, h3, h4,
.mobile-menu a strong,
.mobile-access-card strong,
.card-copy h3,
.scope-heading h3,
.theme-dashboard-copy h3,
.geo-heading > strong,
.geo-heading > strong span,
.method-track h3 {
  overflow: visible;
  padding-bottom: .14em;
  line-height: 1.04;
}

.hero h1,
.origin-copy h2,
.section-head h2,
.foundation h2,
.method h2,
.mandate h2 { line-height: 1.01; }

.card-copy h3,
.scope-heading h3,
.theme-dashboard-copy h3 { line-height: 1.04; }

.geo-heading > strong span { line-height: .92; }

@media (max-width: 680px) {
  .hero h1 { line-height: 1; padding-bottom: .16em; }
  .mobile-menu a strong,
  .mobile-access-card strong { line-height: 1.04 !important; }
}

/* Homepage composition repair: on laptop and tablet the artwork is sized from
   the browser canvas—not the inner content box. The image's soil line sits
   40px below the story while the transparent upper-right flower can rise
   naturally beside the copy. */
@media (min-width: 681px) {
  .origin-sticky {
    height: auto;
    min-height: 100svh;
    display: block;
  }

  .bloom-stage {
    position: relative;
    inset: auto;
    width: 100vw;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: calc(40px - 22.5vw) 0 0 calc(-1 * var(--pad));
    overflow: hidden;
  }

  .bloom-source {
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    object-position: left bottom;
    transform: none;
  }
}

.card-top {
  min-height: 76px;
  gap: 18px;
  align-items: flex-start;
  font-size: 12px;
  letter-spacing: .09em;
}

.card-top > span {
  width: 40px;
  height: 40px;
  display: grid;
  flex: 0 0 40px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(16,28,56,.12);
  border-radius: 50%;
}

.card-top small {
  width: min(235px, calc(100% - 58px));
  max-width: none;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 11px 14px;
  border: 1px solid rgba(16,28,56,.09);
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: .075em;
}

.mission-vision article,
.mission-vision article:first-child,
.mission-vision article + article {
  padding: clamp(54px,5.2vw,76px) clamp(28px,3.2vw,48px) clamp(62px,6vw,88px);
}

/* Higgsfield artwork field: the generated ivory continues through the whole
   origin section so the motion never reads as a rectangular video insert. */
.origin {
  background: radial-gradient(ellipse at 54% 48%, #eee9dc 0%, #e7dfd0 58%, #ddd2bf 100%);
}
.origin-sticky::before { opacity: .12; }
.bloom-stage { background: #e7dfd0; }
.bloom-source { filter: none; }
.origin-manifesto {
  background: linear-gradient(180deg, rgba(231,223,208,.92) 0%, #f7f4ea 100%);
}

.mission-vision p {
  max-width: 610px;
  margin-top: 28px;
  font-size: clamp(21px,1.72vw,28px);
  font-weight: 450;
  line-height: 1.48;
  letter-spacing: -.014em;
}

@media (max-width: 900px) {
  .mission-vision article,
  .mission-vision article:first-child,
  .mission-vision article + article {
    padding: 48px clamp(22px,3vw,34px) 58px;
  }
  .mission-vision p { font-size: clamp(20px,2.45vw,25px); }
}

@media (max-width: 680px) {
  .bloom-stage { inset: 11svh -145vw 0 -2vw; }
  .mission-vision article,
  .mission-vision article:first-child,
  .mission-vision article + article { padding: 40px 18px 48px; }
  .mission-vision p { margin-top: 22px; font-size: 20px; line-height: 1.52; }
  .card-top { min-height: 70px; }
  .card-top small { width: min(220px, calc(100% - 56px)); font-size: 11px; }
}
