/* Greenhouse Capital 2026 — shared system (Field + Mosaic). Tokens and rules: DESIGN.md. Every page: <body class="v26"> */
:root{interpolate-size:allow-keywords}
.v26{
  --deep:#012429;--lift:#0a4650;--teal:#11838a;--teal-ink:#0b6d73;
  --soft:rgba(207,230,232,.78);--hair:rgba(207,230,232,.16);
  --out:cubic-bezier(.23,1,.32,1);--io:cubic-bezier(.65,0,.35,1);
  background:var(--forest);color:var(--white);font-size:17px;line-height:1.55;
}
.v26 h1,.v26 h2,.v26 h3,.v26 h4,.v26 p,.v26 figure,.v26 ol,.v26 ul,.v26 blockquote{margin:0}
.v26 .display,.v26 h1,.v26 h2,.v26 h3{font-family:GHCDisplay,serif;font-weight:500;letter-spacing:-.02em}
.v26 .num{font-variant-numeric:tabular-nums}
.v26 .ico{width:1em;height:1em;flex:none}
.v26 .soft{color:var(--soft);font-size:15px}
.mint{background:var(--mint);color:var(--forest);--hair:rgba(1,53,61,.2);--soft:#2b5960}
.h-section{padding:clamp(72px,10vw,128px) 0}
.h-head{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.h-head h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04}
.h-head p{color:var(--soft);font-size:clamp(1.05rem,1.3vw,1.2rem);max-width:46ch}
.h-head:last-child{margin-bottom:0}
.h-head-actions{margin-top:24px;gap:12px 24px}

/* Links and buttons */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 24px;background:var(--white);color:var(--forest);font-family:GHCDisplay,serif;font-size:17px;text-decoration:none;border:0;border-radius:999px;cursor:pointer;transition:background .2s ease-out,transform .15s ease-out}
.btn:hover{background:var(--peach)}
.btn:active{transform:scale(.98)}
.btn-ghost{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1px rgba(207,230,232,.4)}
.btn-ghost:hover{background:var(--white);color:var(--forest)}
.mint .btn{background:var(--forest);color:var(--white)}
.mint .btn:hover{background:var(--lift)}
.btn .ico,.go .ico{transition:transform .2s var(--out)}
.btn:hover .ico,.go:hover .ico{transform:translateX(3px)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.go{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:GHCDisplay,serif;text-decoration:none}
.go:hover{color:var(--peach)}
.mint .go:hover{color:var(--teal-ink)}

/* Header stays fixed: clear over the hero, solid forest once the page scrolls or the menu opens */
html{scroll-padding-top:137px}
.v26 .site-header{background:transparent;border-bottom-color:transparent;transition:background-color .25s var(--out),border-color .25s var(--out)}
.v26.scrolled .site-header,.v26.menu-open .site-header{background:var(--forest);border-bottom-color:var(--hair)}

/* Field hero (Home) */
.h-hero{position:relative;min-height:min(100svh,880px);display:flex;flex-direction:column;overflow:hidden;background:var(--forest);animation:h-frame .95s var(--out) both}
@keyframes h-frame{from{clip-path:inset(6% 6% 6% 6% round 16px)}to{clip-path:inset(0 0 0 0 round 0)}}
.h-duo{position:absolute;inset:0;background:var(--forest)}
.h-duo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:grayscale(1) contrast(1.08) brightness(1.08);mix-blend-mode:screen;opacity:.92;animation:h-settle 1.4s var(--out) both}
@keyframes h-settle{from{transform:scale(1.08)}to{transform:none}}
.h-duo::after{content:'';position:absolute;inset:0;background:var(--peach);mix-blend-mode:multiply}
.h-scrim{position:absolute;inset:0;background:linear-gradient(to top,var(--forest) 0%,rgba(1,53,61,.6) 36%,rgba(1,36,41,.1) 70%,rgba(1,36,41,.45) 100%)}
.h-hero-copy{position:relative;z-index:1;margin-top:auto;display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;padding:120px 0 clamp(40px,6vw,72px)}
.h-hero h1{font-size:clamp(2.6rem,7vw,6.4rem);line-height:.98;letter-spacing:-.025em}
.v26 h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.v26 h1 .ln>span{display:block;animation:h-line .8s var(--out) both;animation-delay:var(--d)}
@keyframes h-line{from{transform:translateY(105%)}to{transform:none}}
.v26 .h-hero-support{font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.4;max-width:30ch;margin-bottom:24px}
.h-rise{animation:h-rise .6s var(--out) both;animation-delay:var(--d,0ms)}
@keyframes h-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Inner hero: type-led, same line masks and rise as Home */
.p-hero{position:relative;background:var(--forest);padding:clamp(150px,17vw,216px) 0 clamp(48px,6vw,80px)}
.p-hero-copy{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,5vw,80px);align-items:end}
.p-hero h1{font-size:clamp(2.3rem,4.1vw,3.45rem);line-height:.98;letter-spacing:-.025em}
.p-hero .lede{font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.4;max-width:34ch}
.p-hero .lede+.btn-row,.p-hero .lede+.soft{margin-top:24px}
.p-hero.short h1{font-size:clamp(2.1rem,3.6vw,3.2rem)}
.p-hero.short .p-hero-copy{grid-template-columns:1fr}
.p-hero.nf{min-height:min(100svh,760px);display:flex;align-items:flex-end}
.p-hero.nf .p-hero-copy{width:min(1180px,calc(100% - 48px))}

/* Tiles: wipe open top-down when they start below the fold (ghc-2026.js arms .reveal) */
.tile{border-radius:20px;padding:clamp(24px,3vw,40px);background:var(--lift);min-width:0;transition:transform .35s var(--out),background-color .2s ease-out}
.js .tile.reveal{opacity:1;transform:none;clip-path:inset(0 0 100% 0 round 20px);transition:clip-path .9s var(--out),transform .35s var(--out),background-color .2s ease-out}
.js .tile.reveal.visible{clip-path:inset(0 0 0 0 round 20px)}
.t-deep{background:var(--deep)}
.t-coral{background:var(--coral);color:var(--forest)}
.t-coral .soft{color:var(--forest)}
.mint .tile{background:var(--white)}
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.stack{display:flex;flex-direction:column;gap:16px}
.stack h3{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.1}
.stack p{color:var(--soft)}
.stack>.go,.stack>.btn-row{margin-top:auto;padding-top:8px}
.tile.hover:hover{transform:translateY(-4px);background:#0f5560}
.t-deep.hover:hover{background:#06323a}

/* Mosaic: note + brand graphic + stats */
.h-mosaic{padding:clamp(72px,10vw,128px) 0}
.m-note{grid-column:span 7;background:var(--deep);display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:420px}
.m-note .display{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.22}
.m-note-foot{display:grid;gap:6px}
.m-art{grid-column:span 5;background:var(--deep);padding:clamp(24px,3vw,40px);display:grid;place-items:center;overflow:hidden}
.m-art lottie-player{width:100%;height:100%;max-height:440px}
.fig{grid-column:span 3;display:flex;flex-direction:column;justify-content:space-between;gap:32px;min-height:220px}
.fig b{font-family:GHCDisplay,serif;font-weight:500;font-size:clamp(2.75rem,4.6vw,4.4rem);line-height:1;letter-spacing:-.02em}
.fig span{color:var(--soft);font-size:15px}
.fig-lead{grid-column:span 6;grid-row:span 2;background:var(--coral);color:var(--forest)}
.fig-lead b{font-size:clamp(5rem,12vw,11rem)}
.fig-lead span{color:var(--forest);font-size:17px}
.fig-sm{grid-column:span 4;min-height:0;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:20px;background:var(--deep)}
.fig-sm b{font-size:clamp(2rem,3vw,2.75rem)}
/* Word figures scale to their own tile so a long name never runs past the edge */
.fig:has(b.word){container-type:inline-size}
.fig b.word{font-size:clamp(1rem,15cqi,3rem)}
.t-coral span{color:var(--forest)}

/* Span helpers come after .fig so they win on inner pages */
.s3{grid-column:span 3}.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}
.tall{grid-row:span 2}
.tile-h{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05}
.tile-display{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.22}
.engine-next{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:16px;color:var(--peach)!important;font-size:15px}

/* Photo tile: duotone, drifts with scroll where supported */
.duo-tile{position:relative;overflow:hidden;padding:0;background:var(--forest);min-height:360px}
.duo-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(1.08);mix-blend-mode:screen;opacity:.92}
.duo-tile::after{content:'';position:absolute;inset:0;background:var(--peach);mix-blend-mode:multiply;pointer-events:none}

/* Rows: full-width hair dividers that draw in from the left */
.paths,.rows{list-style:none;padding:0;border-bottom:1px solid var(--hair)}
.path,.row{position:relative}
.path::before,.row::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--hair);transform-origin:left}
.js .path.reveal::before,.js .row.reveal::before{transform:scaleX(0);transition:transform 1.1s var(--out) .1s}
.js .path.reveal.visible::before,.js .row.reveal.visible::before{transform:none}
.path{display:grid;grid-template-columns:4fr 5fr 3fr;gap:clamp(24px,4vw,64px);padding:clamp(32px,4vw,48px) 0}
.path h3{font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.02}
.v26 .path-lead{font-family:GHCDisplay,serif;font-size:1.25rem;line-height:1.3;margin-bottom:12px}
.path-body p+p{margin-top:16px}
.path-tag{color:var(--peach)}
.path-side{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:24px}
.row{display:grid;grid-template-columns:5fr 7fr;gap:clamp(16px,4vw,64px);padding:clamp(28px,3.5vw,44px) 0}
.row h2,.row h3{font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.05}
.row p{color:var(--soft);max-width:58ch}
.row p+p,.row p+.go{margin-top:12px}
.row .row-lead{font-family:GHCDisplay,serif;font-size:1.3rem;color:var(--white)}
.row h3 .year{font-size:clamp(2.4rem,5vw,4rem);line-height:1;letter-spacing:-.02em}
.v26 .areas{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:16px;color:var(--peach);font-size:15px}
.row .year{color:var(--peach);font-variant-numeric:tabular-nums}
.mint .row .year{color:var(--teal-ink)}

/* Flow strip (Platform): four stages joined by a line that draws in */
.flow{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.flow li{position:relative;padding-top:36px;font-family:GHCDisplay,serif;font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.015em}
.flow li::before{content:'';position:absolute;top:4px;left:0;width:14px;height:14px;border-radius:50%;background:var(--coral)}
.flow li:not(:last-child)::after{content:'';position:absolute;top:10px;left:26px;right:14px;height:2px;background:rgba(255,141,104,.4);transform-origin:left;transform:scaleX(var(--drawn,1));transition:transform .9s var(--out);transition-delay:calc(var(--i,0)*120ms + 200ms)}
.js .flow.reveal:not(.visible) li::after{--drawn:0}

/* Accordion rows (details) */
.acc{list-style:none;padding:0;border-bottom:1px solid var(--hair)}
.acc>li{position:relative}
.acc>li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--hair)}
.acc summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding:28px 0;cursor:pointer;list-style:none}
.acc summary::-webkit-details-marker{display:none}
.acc summary h3{font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.08}
.acc summary .ico{font-size:28px;transition:transform .3s var(--out)}
.acc details[open] summary .ico{transform:rotate(45deg)}
.acc summary:hover h3{color:var(--teal-ink)}
.acc details p{padding:0 0 32px;max-width:62ch;color:var(--soft)}
.acc details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--out),content-visibility .45s allow-discrete}
.acc details[open]::details-content{block-size:auto}

/* Bridge: Home's mint section, with the platform cycle */
.h-bridge .bridge{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,80px);align-items:center}
.h-bridge h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04;margin-bottom:32px}
.h-bridge .bridge-quote{font-family:GHCDisplay,serif;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.25;margin-bottom:24px}
.bridge-quote span{color:var(--teal-ink)}
.bridge-body{color:var(--soft)}
.h-bridge .cycle{background:var(--forest);color:var(--white);border-radius:20px;padding:clamp(20px,3vw,32px) clamp(20px,3vw,36px);display:grid;gap:8px}
.cycle svg{width:100%;height:auto;display:block;overflow:visible}
.cycle text{font-family:GHCDisplay,serif;font-size:22px;fill:currentColor}
.cycle .ring{fill:none;stroke:rgba(207,230,232,.22);stroke-width:1.5}
.cycle .ring-in{fill:none;stroke:rgba(207,230,232,.28);stroke-width:1.5;stroke-dasharray:2 9;transform-box:view-box;transform-origin:240px 240px;animation:cy-spin 60s linear infinite reverse}
.cycle .arc{fill:none;stroke:var(--coral);stroke-width:3;stroke-dasharray:1;stroke-dashoffset:1;animation:10.5s var(--io) infinite}
.cycle .a1{animation-name:cy-a1}.cycle .a2{animation-name:cy-a2}.cycle .a3{animation-name:cy-a3}
.cycle .dot{fill:var(--white);animation:10.5s linear infinite}
.cycle .n1 .dot{animation-name:cy-n1}.cycle .n2 .dot{animation-name:cy-n2}.cycle .n3 .dot{animation-name:cy-n3}
.cycle .ripple{fill:none;stroke:var(--coral);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:cy-ripple 10.5s var(--out) infinite}
.cycle .n2 .ripple{animation-delay:3.5s}.cycle .n3 .ripple{animation-delay:7s}
.cycle .orbit{transform-box:view-box;transform-origin:240px 240px;animation:cy-orbit 10.5s var(--io) infinite}
.cycle .orbit circle{fill:var(--coral)}
.cycle .orbit .halo{fill:rgba(255,141,104,.22)}
.cycle .verb{font-size:40px;fill:var(--peach);opacity:0;transform-box:fill-box;transform-origin:center;animation:10.5s var(--out) infinite}
.cycle .v1{animation-name:cy-v1}.cycle .v2{animation-name:cy-v2}.cycle .v3{animation-name:cy-v3}
.cycle-steps{list-style:none;padding:0}
.cycle-steps li{padding:12px 0;border-top:1px solid rgba(207,230,232,.16);font-size:17px;line-height:1.4;opacity:.62;animation:10.5s linear infinite}
.cycle-steps b{font-family:GHCDisplay,serif;font-weight:500;color:var(--peach)}
.cycle-steps li:nth-child(1){animation-name:cy-s1}.cycle-steps li:nth-child(2){animation-name:cy-s2}.cycle-steps li:nth-child(3){animation-name:cy-s3}
@keyframes cy-spin{to{transform:rotate(360deg)}}
@keyframes cy-orbit{0%,6%{transform:rotate(0)}33.333%,39.333%{transform:rotate(120deg)}66.667%,72.667%{transform:rotate(240deg)}100%{transform:rotate(360deg)}}
@keyframes cy-a1{0%{stroke-dashoffset:0;opacity:1}4%{stroke-dashoffset:0;opacity:0}4.01%,6%{stroke-dashoffset:1;opacity:1}33.333%,100%{stroke-dashoffset:0;opacity:1}}
@keyframes cy-a2{0%{stroke-dashoffset:0;opacity:1}4%{stroke-dashoffset:0;opacity:0}4.01%,39.333%{stroke-dashoffset:1;opacity:1}66.667%,100%{stroke-dashoffset:0;opacity:1}}
@keyframes cy-a3{0%{stroke-dashoffset:0;opacity:1}4%{stroke-dashoffset:0;opacity:0}4.01%,72.667%{stroke-dashoffset:1;opacity:1}100%{stroke-dashoffset:0;opacity:1}}
@keyframes cy-n1{0%{fill:var(--coral)}4%,99.6%{fill:var(--white)}100%{fill:var(--coral)}}
@keyframes cy-n2{0%{fill:var(--coral)}4%,33%{fill:var(--white)}33.333%,100%{fill:var(--coral)}}
@keyframes cy-n3{0%{fill:var(--coral)}4%,66.3%{fill:var(--white)}66.667%,100%{fill:var(--coral)}}
@keyframes cy-ripple{0%{transform:scale(1);opacity:.9}12%{transform:scale(3.6);opacity:0}100%{opacity:0}}
@keyframes cy-v1{0%,5%{opacity:0;transform:translateY(12px)}10%,32%{opacity:1;transform:none}37%,100%{opacity:0;transform:translateY(-12px)}}
@keyframes cy-v2{0%,38%{opacity:0;transform:translateY(12px)}43%,65%{opacity:1;transform:none}70%,100%{opacity:0;transform:translateY(-12px)}}
@keyframes cy-v3{0%{opacity:1;transform:none}3%{opacity:0;transform:translateY(-12px)}3.01%,71%{opacity:0;transform:translateY(12px)}76%,100%{opacity:1;transform:none}}
@keyframes cy-s1{0%,5%{opacity:.62}10%,32%{opacity:1}37%,100%{opacity:.62}}
@keyframes cy-s2{0%,38%{opacity:.62}43%,65%{opacity:1}70%,100%{opacity:.62}}
@keyframes cy-s3{0%{opacity:1}3%,71%{opacity:.62}76%,100%{opacity:1}}

/* Portfolio logos (Home) */
.h-portfolio{background:var(--deep)}
.logos{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.logos li{display:grid;place-items:center;min-height:120px;padding:20px;background:var(--white);border-radius:16px;transition:transform .35s var(--out)}
.logos li:hover{transform:translateY(-4px)}
.logos img{width:auto;max-width:80%;height:40px;object-fit:contain}
.logos img[src*="qore"]{filter:brightness(.25)}
.h-portfolio .more{margin-top:24px}

/* Staggered children: each child rises in turn once its group reveals */
.js .stagger.reveal{opacity:1;transform:none}
.js .stagger.reveal>*{opacity:0;transform:translateY(16px);transition:opacity .6s var(--out),transform .6s var(--out);transition-delay:calc(var(--i,0)*55ms)}
.js .stagger.reveal.visible>*{opacity:1;transform:none}

/* Headings rise word by word (ghc-2026.js splits h2s that start below the fold) */
.words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.words .w>span{display:inline-block;transform:translateY(110%);transition:transform .8s var(--out);transition-delay:calc(var(--i,0)*35ms)}
.words.words-in .w>span{transform:none}

/* News cards (rendered by functions/index.ts and functions/news-insights) */
.v26 .news-grid,.v26 .news-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.v26 .news-card{display:flex;flex-direction:column;min-height:0;background:var(--lift);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--white);box-shadow:none;border:0;transition:background .2s ease-out,transform .35s var(--out)}
.v26 .news-card:hover{background:#0f5560;transform:translateY(-4px)}
.v26 .news-card[hidden]{display:none}
.v26 .news-list .news-card:first-child{grid-column:span 2;grid-row:span 2}
.v26 .news-list .news-card:first-child .news-body{flex:none}
a.tile{text-decoration:none}
.v26 .news-list .news-card:first-child .news-art{height:auto;flex:1;min-height:280px}
.v26 .news-list .news-card:first-child h3{font-size:clamp(1.5rem,2.4vw,2.2rem)}
.news-index{padding-top:0}
.v26 .news-art{aspect-ratio:16/10;height:auto;background:var(--teal);overflow:hidden;position:relative;border-radius:0}
.v26 .news-art img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--out)}
.v26 .news-card:hover .news-art img{transform:scale(1.03)}
.v26 .news-art:empty::after{content:'';position:absolute;inset:0;background:var(--white);-webkit-mask:url('/assets/brand/ghc-logo-landscape-white.svg') no-repeat center/45%;mask:url('/assets/brand/ghc-logo-landscape-white.svg') no-repeat center/45%}
.v26 .news-body{display:flex;flex-direction:column;gap:12px;padding:24px 24px 28px;flex:1}
.v26 .news-tag{color:var(--peach);font-size:15px;letter-spacing:0;text-transform:none;font-weight:400;font-family:GHCSans,sans-serif}
.v26 .news-body h3{font-size:1.35rem;line-height:1.25;color:var(--white)}
.v26 .news-meta{margin-top:auto;color:var(--soft);font-size:15px}

/* Filters */
.v26 .filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.v26 .filter-button{min-height:44px;padding:0 18px;border-radius:999px;border:0;background:transparent;box-shadow:inset 0 0 0 1px rgba(207,230,232,.32);color:var(--white);font-size:15px;cursor:pointer;transition:background .2s ease-out,color .2s ease-out}
.v26 .filter-button:hover{background:var(--lift)}
.v26 .filter-button.active{background:var(--white);color:var(--forest);box-shadow:none}

/* Portfolio grid (functions/funds renders .portfolio-card) */
.pf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.v26 .portfolio-card{display:flex;flex-direction:column;gap:6px;min-height:0;padding:12px 12px 24px;background:var(--lift);border:0;border-radius:20px;box-shadow:none;color:var(--white);transition:transform .35s var(--out),background-color .2s ease-out}
.v26 .portfolio-card:hover{transform:translateY(-4px);background:#0f5560}
.v26 .portfolio-card[hidden]{display:none}
.v26 .portfolio-mark{display:grid;place-items:center;aspect-ratio:16/9;width:auto;height:auto;margin:0 0 14px;background:var(--white);border-radius:14px;color:var(--forest);font-family:GHCDisplay,serif;font-size:1.6rem}
.v26 .portfolio-mark img{width:auto;max-width:70%;max-height:44px;object-fit:contain}
.v26 .portfolio-card h3{padding:0 12px;font-size:1.35rem;line-height:1.2}
.v26 .portfolio-meta{padding:0 12px;color:var(--soft);font-size:15px;line-height:1.4}
.v26 .portfolio-card .stage{margin-top:auto;padding:8px 12px 0;color:var(--peach);font-size:15px;background:none;border:0;letter-spacing:0;text-transform:none;font-weight:400}

/* Quote */
.quote{display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.quote blockquote{font-family:GHCDisplay,serif;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.2;letter-spacing:-.015em}
.quote figcaption{display:grid;gap:2px}
.quote figcaption b{font-weight:500;font-family:GHCDisplay,serif;font-size:1.2rem}

/* Team */
.team{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 12px}
.member figure{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--forest);margin-bottom:16px}
.member img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s ease-out,transform .6s var(--out)}
.member:hover img{filter:none;transform:scale(1.03)}
.member h3{font-size:1.5rem;line-height:1.15}
.member p{color:var(--soft);font-size:15px;margin-top:4px}

/* Forms (contact) */
.v26 .contact-form-toggle{margin-top:24px}
.v26 .contact-form-toggle>summary{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 24px;border-radius:999px;background:var(--white);color:var(--forest);font-family:GHCDisplay,serif;font-size:17px;text-decoration:none;cursor:pointer;list-style:none;transition:background .2s ease-out}
.v26 .contact-form-toggle>summary::-webkit-details-marker{display:none}
.v26 .contact-form-toggle>summary::after{content:none}
.v26 .contact-form-toggle>summary:hover{background:var(--peach)}
.v26 .contact-form-toggle[open]>summary{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1px rgba(207,230,232,.4)}
.v26 .contact-form-toggle::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--out),content-visibility .45s allow-discrete}
.v26 .contact-form-toggle[open]::details-content{block-size:auto}
.v26 .contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding:0;background:none;border:0}
.v26 .contact-form label{display:grid;gap:8px;color:var(--soft);font-size:15px;font-weight:400}
.v26 .contact-form label:has(textarea),.v26 .contact-form-status{grid-column:1/-1}
.v26 .contact-form input,.v26 .contact-form textarea{width:100%;min-height:52px;padding:12px 16px;border:1px solid rgba(207,230,232,.3);border-radius:12px;background:var(--deep);color:var(--white);font-size:17px;box-sizing:border-box}
.v26 .contact-form textarea{min-height:128px;resize:vertical}
.v26 .contact-form input:focus,.v26 .contact-form textarea:focus{outline:2px solid var(--peach);outline-offset:1px;border-color:transparent}
.v26 .contact-form .optional{color:var(--soft)}
.v26 .contact-form button[type=submit]{justify-self:start;min-height:52px;padding:0 28px;border:0;border-radius:999px;background:var(--coral);color:var(--forest);font-family:GHCDisplay,serif;font-size:17px;cursor:pointer;transition:background .2s ease-out}
.v26 .contact-form button[type=submit]:hover{background:var(--peach)}
.v26 .contact-form button[disabled]{opacity:.6;cursor:progress}
.v26 .contact-form-status{min-height:0;font-size:15px;color:var(--soft)}
.v26 .contact-form-status.is-success{color:var(--mint)}
.v26 .contact-form-status.is-error{color:var(--peach)}
.v26 .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.v26 .contact-mail{margin-top:12px}

/* Long-form text: legal pages and articles */
.prose{max-width:68ch;font-size:17px;line-height:1.7}
.prose>*+*{margin-top:16px}
.prose h2,.prose h3,.prose h4{font-family:GHCDisplay,serif;font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--white);margin-top:48px}
.prose h2{font-size:1.9rem}.prose h3{font-size:1.5rem}.prose h4{font-size:1.3rem}
.prose ul,.prose ol{padding-left:1.25em}
.prose li+li{margin-top:8px}
.prose li[style*="none"]{list-style:none}
.prose a{color:var(--peach);text-underline-offset:3px;overflow-wrap:anywhere}
.prose img{border-radius:20px;margin-top:32px;height:auto}
.prose blockquote{font-family:GHCDisplay,serif;font-size:1.5rem;line-height:1.3;margin:40px 0;padding:0;border:0}
.prose h4{text-transform:lowercase}
.prose h4::first-letter{text-transform:uppercase}
.prose strong{font-weight:600;color:var(--white)}
.prose p:empty{display:none}
.prose table{width:100%;border-collapse:collapse;margin-top:32px;font-size:15px}
.prose th,.prose td{padding:12px 16px 12px 0;border-bottom:1px solid var(--hair);text-align:left;vertical-align:top;height:auto!important}
.prose th{color:var(--white);font-weight:600}
.p-hero.short+.h-section{padding-top:0}
@media(max-width:700px){.prose table{display:block;overflow-x:auto}}
.article-head{display:flex;flex-wrap:wrap;gap:0 16px;margin-bottom:16px;color:var(--soft);font-size:15px}
.article-head a{color:var(--soft);display:inline-flex;align-items:center;min-height:44px}
.article-head a:hover{color:var(--white)}
.article-head span{display:inline-flex;align-items:center}
.article-byline{margin-top:20px}
.article-body{padding-top:clamp(24px,4vw,48px)}
.article-back{margin-top:48px}
.article-image{width:100%;max-height:560px;object-fit:cover;border-radius:20px;margin-bottom:clamp(40px,5vw,64px)}

/* Closing CTA: one primary action, two quiet ones */
.h-cta{background:var(--coral);color:var(--forest);padding:clamp(64px,8vw,104px) 0}
.h-cta .cta{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,5vw,80px);align-items:end}
.cta-main{display:block;min-height:44px;text-decoration:none;font-family:GHCDisplay,serif;font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.02em}
.cta-main .nw{white-space:nowrap}
.cta-main .ico{vertical-align:-.1em;transition:transform .2s var(--out)}
.cta-main:hover .ico{transform:translateX(6px)}
.v26 .cta-sub{margin-top:16px;color:var(--forest);font-size:17px}
.cta-more{list-style:none;padding:0;margin:0}
.cta-more li{border-top:1px solid rgba(1,53,61,.25);padding:16px 0}
.cta-more li:last-child{border-bottom:1px solid rgba(1,53,61,.25)}
.cta-more .go{font-size:1.25rem}
.cta-more .go:hover{color:var(--forest);opacity:.75}
.cta-more p{font-size:15px}

/* Scroll-linked depth where the browser supports it */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .h-duo{animation:drift-out linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .duo-tile img{animation:drift linear both;animation-timeline:view()}
    .fig-lead b{animation:fig-grow linear both;animation-timeline:view();animation-range:entry 10% cover 45%}
  }
}
@keyframes drift-out{to{transform:translateY(22%)}}
@keyframes drift{from{transform:translateY(-6%) scale(1.14)}to{transform:translateY(6%) scale(1.14)}}
@keyframes fig-grow{from{transform:scale(.86);transform-origin:left bottom}to{transform:none;transform-origin:left bottom}}

@media (max-width:1020px){
  .fig{grid-column:span 6}
  .fig-lead{grid-column:span 12;grid-row:auto;min-height:280px}
  .fig-sm{grid-column:span 12}
  .logos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .s3{grid-column:span 6}
  .pf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .h-hero{min-height:680px}
  .h-hero-copy,.p-hero-copy,.h-head,.path,.row,.h-bridge .bridge,.h-cta .cta{grid-template-columns:1fr}
  .m-note,.m-art,.s4,.s5,.s6,.s7,.s8{grid-column:span 12}
  .m-note{min-height:0}
  .m-art lottie-player{max-height:320px}
  .v26 .news-grid,.v26 .news-list,.team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .path-side{flex-direction:row;flex-wrap:wrap;align-items:center}
  .duo-tile{min-height:280px}
  .tall{grid-row:auto}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .flow li:nth-child(2)::after{display:none}
  .v26 .news-list .news-card:first-child{grid-row:auto}
}
@media (max-width:560px){
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logos li{min-height:96px}
  .fig{min-height:148px;gap:20px}
  .s3{grid-column:span 12}
  .m-art lottie-player{max-height:260px}
  .v26 .news-grid,.v26 .news-list{grid-template-columns:1fr}
  .v26 .news-list .news-card:first-child{grid-column:auto}
  .v26 .news-list .news-card:first-child .news-art{min-height:0;aspect-ratio:16/10;flex:none}
  .team{grid-template-columns:1fr 1fr;gap:28px 12px}
  .member h3{font-size:1.2rem}
  .v26 .contact-form{grid-template-columns:1fr}
  .v26 .portfolio-card h3,.v26 .portfolio-meta{padding:0 4px}
  .v26 .portfolio-card .stage{padding:8px 4px 0}
  .cycle .verb{font-size:44px}
}
@media (prefers-reduced-motion:reduce){
  .h-hero,.h-duo img,.v26 h1 .ln>span,.h-rise,.cycle *{animation:none!important}
  .js .tile.reveal{clip-path:none;transition:none}
  .cycle .arc{stroke-dashoffset:0}
  .cycle .verb,.cycle .orbit{display:none}
  .cycle-steps li{opacity:1}
  .js .stagger.reveal>*{opacity:1;transform:none;transition:none}
  .words .w>span{transform:none;transition:none}
  .js .path.reveal::before,.js .row.reveal::before{transform:none;transition:none}
  .flow li::after{transition:none}
  .tile,.news-card,.portfolio-card,.logos li,.member img{transition:none!important}
}

/* Inner hero marks: one looping graphic per page, drawn in the Bridge cycle's language. */
.p-hero.marked .p-hero-copy{grid-template-columns:1.45fr .7fr;column-gap:clamp(24px,4vw,56px);align-items:center}
.p-copy .h-rise{margin-top:28px}
.p-mark{padding:0;background:var(--deep);aspect-ratio:6/5;overflow:hidden;animation:mark-in .9s var(--out) .25s both}
.p-mark svg{display:block;width:100%;height:100%}
@keyframes mark-in{from{clip-path:inset(0 0 100% round 20px)}to{clip-path:inset(0 round 20px)}}
.mk text{font-family:GHCSans,sans-serif;font-size:21px;fill:var(--soft)}
.mk .hair{fill:none;stroke:rgba(207,230,232,.22);stroke-width:1.5}
.mk .node{fill:var(--white)}
.mk .core{fill:var(--coral)}
.mk .ripple{fill:none;stroke:var(--coral);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.mk .pulse{fill:none;stroke:var(--coral);stroke-width:3;stroke-linecap:round;stroke-dasharray:.12 1;stroke-dashoffset:.12;animation:mk-pulse 2.4s cubic-bezier(.45,0,.55,1) infinite;animation-delay:calc(var(--i)*.3s)}
@keyframes mk-pulse{from{stroke-dashoffset:.12}to{stroke-dashoffset:-1}}
@keyframes mk-ripple{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.4);opacity:0}}
.mk-about .core,.mk-contact .core{transform-box:fill-box;transform-origin:center;animation:mk-beat 1.2s ease-in-out infinite alternate}
@keyframes mk-beat{to{transform:scale(1.25)}}
.mk-fade{animation:mk-fade 12s linear infinite both}
@keyframes mk-fade{0%{opacity:0}3%,88%{opacity:1}95%,100%{opacity:0}}
/* About: from Lagos, one arc per market across a dot-matrix Africa; each market lights as its arc lands. */
.mk-about .ab-land{fill:none;stroke:rgba(207,230,232,.24);stroke-width:3.6;stroke-linecap:round}
.mk-about .ab-arc{fill:none;stroke:rgba(255,195,176,.6);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0}
.mk-about .ab-head{fill:none;stroke:var(--coral);stroke-width:5;stroke-linecap:round;stroke-dasharray:0 2;opacity:0}
.mk-about .ab-mkt{fill:var(--white)}
.mk-about .ab-arc,.mk-about .ab-head,.mk-about .ab-mkt,.mk-about .ripple{animation:12s cubic-bezier(.45,0,.55,1) infinite both}
.mk-about .ripple.beat{animation:mk-ripple 1.8s var(--out) infinite}
/* Platform: a scan sources nine dots from the field, they lock into a structure, then ring a coral venture. */
.mk-platform .pf-dot{fill:rgba(207,230,232,.3);animation:pf-float 4s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.6s)}
@keyframes pf-float{to{transform:translateY(-5px)}}
.mk-platform .pf-pick{fill:var(--coral);animation:12s cubic-bezier(.65,0,.35,1) infinite both}
.mk-platform .pf-scan{stroke:var(--coral);stroke-width:1.5;opacity:0;animation:pf-scan 12s linear infinite}
@keyframes pf-scan{0%,1.67%{transform:none;opacity:0}3%,20%{opacity:.7}21.67%,100%{transform:translateX(150px);opacity:0}}
.mk-platform .pf-frame,.mk-platform .pf-orbit{stroke-dasharray:1}
.mk-platform .pf-frame{animation:pf-frame 12s var(--out) infinite both}
.mk-platform .pf-orbit{animation:pf-orbit 12s var(--out) infinite both}
@keyframes pf-frame{0%,25%{stroke-dashoffset:1;opacity:1}38%,88%{stroke-dashoffset:0;opacity:1}95%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes pf-orbit{0%,55%{stroke-dashoffset:1;opacity:1}67%,88%{stroke-dashoffset:0;opacity:1}95%,100%{stroke-dashoffset:0;opacity:0}}
.mk-platform .pf-core{transform-box:fill-box;transform-origin:center;animation:pf-core 12s var(--out) infinite both}
@keyframes pf-core{0%,66%{transform:scale(0)}72%,88%{transform:none}95%,100%{transform:scale(0)}}
.mk-platform .pf-rip{animation:pf-rip 12s var(--out) infinite}
@keyframes pf-rip{0%,70%{transform:none;opacity:0}71%{transform:none;opacity:.9}82%,100%{transform:scale(3.4);opacity:0}}
.mk-platform text{animation:12s linear infinite both}
.mk-platform text:nth-of-type(1){animation-name:pf-l1}
.mk-platform text:nth-of-type(2){animation-name:pf-l2}
.mk-platform text:nth-of-type(3){animation-name:pf-l3}
@keyframes pf-l1{0%,24%{fill:var(--white)}28%,100%{fill:var(--soft)}}
@keyframes pf-l2{0%,26%{fill:var(--soft)}30%,54%{fill:var(--white)}58%,100%{fill:var(--soft)}}
@keyframes pf-l3{0%,58%{fill:var(--soft)}62%,92%{fill:var(--white)}96%,100%{fill:var(--soft)}}
/* Funds: the portfolio deploys tile by tile by sector, matures, and the lead holding is marked. */
.mk-funds .fd-tile{fill:var(--lift);transform-box:fill-box;transform-origin:0 0;animation:12s var(--out) infinite both}
.mk-funds .fd-grow{fill:rgba(17,131,138,.75);transform-box:fill-box;transform-origin:0 100%;animation:12s var(--out) infinite both}
.mk-funds .fd-grow.hot{fill:var(--teal)}
.mk-funds .fd-lab{fill:var(--white);animation:12s linear infinite both}
.mk-funds .fd-dot{fill:var(--coral);transform-box:fill-box;transform-origin:center;animation:fd-dot 12s var(--out) infinite both}
@keyframes fd-dot{0%,46%{transform:scale(0)}50%,88%{transform:none}95%,100%{transform:scale(0)}}
.mk-funds .fd-rip{animation:fd-rip 12s var(--out) infinite}
@keyframes fd-rip{0%,50%{transform:none;opacity:0}51%{transform:none;opacity:.9}62%{transform:scale(3.4);opacity:0}66%{transform:none;opacity:0}67%{transform:none;opacity:.9}78%,100%{transform:scale(3.4);opacity:0}}
/* Contact: each route travels in and the centre answers. */
.mk-contact .pulse.slow{animation-duration:3.6s;animation-delay:calc(var(--i)*.9s)}
.mk-contact .ripple{animation:mk-ripple .9s var(--out) infinite}
/* News: the real headlines roll past, fading in and out at the edges. */
.p-mark.nw{position:relative}
.p-mark.nw::before,.p-mark.nw::after{content:"";position:absolute;left:0;right:0;height:28%;z-index:1;pointer-events:none}
.p-mark.nw::before{top:0;background:linear-gradient(var(--deep),transparent)}
.p-mark.nw::after{bottom:0;background:linear-gradient(transparent,var(--deep))}
.v26 .nw-list{margin:0;padding:0 clamp(24px,3vw,36px);list-style:none;animation:nw-roll 54s linear infinite}
.nw-list li{padding:22px 0;border-top:1px solid var(--hair);font-family:GHCDisplay,sans-serif;font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.2;letter-spacing:-.01em;color:var(--white)}
@keyframes nw-roll{to{transform:translateY(-50%)}}
/* Generated per-element keyframes (scratchpad marks.py). */
@keyframes aa0{0%,4.17%{stroke-dashoffset:1}11.67%,100%{stroke-dashoffset:0}}@keyframes ah0{0%,4.17%{stroke-dashoffset:0;opacity:1}11.67%{stroke-dashoffset:-1;opacity:1}11.75%,100%{opacity:0}}@keyframes an0{0%,11.67%{fill:rgba(207,230,232,.35)}12.92%,100%{fill:var(--white)}}@keyframes ar0{0%,11.67%{transform:none;opacity:0}11.75%{transform:none;opacity:.9}20.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa1{0%,7.67%{stroke-dashoffset:1}15.17%,100%{stroke-dashoffset:0}}@keyframes ah1{0%,7.67%{stroke-dashoffset:0;opacity:1}15.17%{stroke-dashoffset:-1;opacity:1}15.25%,100%{opacity:0}}@keyframes an1{0%,15.17%{fill:rgba(207,230,232,.35)}16.42%,100%{fill:var(--white)}}@keyframes ar1{0%,15.17%{transform:none;opacity:0}15.25%{transform:none;opacity:.9}24.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa2{0%,11.17%{stroke-dashoffset:1}18.67%,100%{stroke-dashoffset:0}}@keyframes ah2{0%,11.17%{stroke-dashoffset:0;opacity:1}18.67%{stroke-dashoffset:-1;opacity:1}18.75%,100%{opacity:0}}@keyframes an2{0%,18.67%{fill:rgba(207,230,232,.35)}19.92%,100%{fill:var(--white)}}@keyframes ar2{0%,18.67%{transform:none;opacity:0}18.75%{transform:none;opacity:.9}27.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa3{0%,14.67%{stroke-dashoffset:1}22.17%,100%{stroke-dashoffset:0}}@keyframes ah3{0%,14.67%{stroke-dashoffset:0;opacity:1}22.17%{stroke-dashoffset:-1;opacity:1}22.25%,100%{opacity:0}}@keyframes an3{0%,22.17%{fill:rgba(207,230,232,.35)}23.42%,100%{fill:var(--white)}}@keyframes ar3{0%,22.17%{transform:none;opacity:0}22.25%{transform:none;opacity:.9}31.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa4{0%,18.17%{stroke-dashoffset:1}25.67%,100%{stroke-dashoffset:0}}@keyframes ah4{0%,18.17%{stroke-dashoffset:0;opacity:1}25.67%{stroke-dashoffset:-1;opacity:1}25.75%,100%{opacity:0}}@keyframes an4{0%,25.67%{fill:rgba(207,230,232,.35)}26.92%,100%{fill:var(--white)}}@keyframes ar4{0%,25.67%{transform:none;opacity:0}25.75%{transform:none;opacity:.9}34.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa5{0%,21.67%{stroke-dashoffset:1}29.17%,100%{stroke-dashoffset:0}}@keyframes ah5{0%,21.67%{stroke-dashoffset:0;opacity:1}29.17%{stroke-dashoffset:-1;opacity:1}29.25%,100%{opacity:0}}@keyframes an5{0%,29.17%{fill:rgba(207,230,232,.35)}30.42%,100%{fill:var(--white)}}@keyframes ar5{0%,29.17%{transform:none;opacity:0}29.25%{transform:none;opacity:.9}38.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa6{0%,25.17%{stroke-dashoffset:1}32.67%,100%{stroke-dashoffset:0}}@keyframes ah6{0%,25.17%{stroke-dashoffset:0;opacity:1}32.67%{stroke-dashoffset:-1;opacity:1}32.75%,100%{opacity:0}}@keyframes an6{0%,32.67%{fill:rgba(207,230,232,.35)}33.92%,100%{fill:var(--white)}}@keyframes ar6{0%,32.67%{transform:none;opacity:0}32.75%{transform:none;opacity:.9}41.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa7{0%,28.67%{stroke-dashoffset:1}36.17%,100%{stroke-dashoffset:0}}@keyframes ah7{0%,28.67%{stroke-dashoffset:0;opacity:1}36.17%{stroke-dashoffset:-1;opacity:1}36.25%,100%{opacity:0}}@keyframes an7{0%,36.17%{fill:rgba(207,230,232,.35)}37.42%,100%{fill:var(--white)}}@keyframes ar7{0%,36.17%{transform:none;opacity:0}36.25%{transform:none;opacity:.9}45.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa8{0%,32.17%{stroke-dashoffset:1}39.67%,100%{stroke-dashoffset:0}}@keyframes ah8{0%,32.17%{stroke-dashoffset:0;opacity:1}39.67%{stroke-dashoffset:-1;opacity:1}39.75%,100%{opacity:0}}@keyframes an8{0%,39.67%{fill:rgba(207,230,232,.35)}40.92%,100%{fill:var(--white)}}@keyframes ar8{0%,39.67%{transform:none;opacity:0}39.75%{transform:none;opacity:.9}48.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa9{0%,35.67%{stroke-dashoffset:1}43.17%,100%{stroke-dashoffset:0}}@keyframes ah9{0%,35.67%{stroke-dashoffset:0;opacity:1}43.17%{stroke-dashoffset:-1;opacity:1}43.25%,100%{opacity:0}}@keyframes an9{0%,43.17%{fill:rgba(207,230,232,.35)}44.42%,100%{fill:var(--white)}}@keyframes ar9{0%,43.17%{transform:none;opacity:0}43.25%{transform:none;opacity:.9}52.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa10{0%,39.17%{stroke-dashoffset:1}46.67%,100%{stroke-dashoffset:0}}@keyframes ah10{0%,39.17%{stroke-dashoffset:0;opacity:1}46.67%{stroke-dashoffset:-1;opacity:1}46.75%,100%{opacity:0}}@keyframes an10{0%,46.67%{fill:rgba(207,230,232,.35)}47.92%,100%{fill:var(--white)}}@keyframes ar10{0%,46.67%{transform:none;opacity:0}46.75%{transform:none;opacity:.9}55.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa11{0%,42.67%{stroke-dashoffset:1}50.17%,100%{stroke-dashoffset:0}}@keyframes ah11{0%,42.67%{stroke-dashoffset:0;opacity:1}50.17%{stroke-dashoffset:-1;opacity:1}50.25%,100%{opacity:0}}@keyframes an11{0%,50.17%{fill:rgba(207,230,232,.35)}51.42%,100%{fill:var(--white)}}@keyframes ar11{0%,50.17%{transform:none;opacity:0}50.25%{transform:none;opacity:.9}59.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa12{0%,46.17%{stroke-dashoffset:1}53.67%,100%{stroke-dashoffset:0}}@keyframes ah12{0%,46.17%{stroke-dashoffset:0;opacity:1}53.67%{stroke-dashoffset:-1;opacity:1}53.75%,100%{opacity:0}}@keyframes an12{0%,53.67%{fill:rgba(207,230,232,.35)}54.92%,100%{fill:var(--white)}}@keyframes ar12{0%,53.67%{transform:none;opacity:0}53.75%{transform:none;opacity:.9}62.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa13{0%,49.67%{stroke-dashoffset:1}57.17%,100%{stroke-dashoffset:0}}@keyframes ah13{0%,49.67%{stroke-dashoffset:0;opacity:1}57.17%{stroke-dashoffset:-1;opacity:1}57.25%,100%{opacity:0}}@keyframes an13{0%,57.17%{fill:rgba(207,230,232,.35)}58.42%,100%{fill:var(--white)}}@keyframes ar13{0%,57.17%{transform:none;opacity:0}57.25%{transform:none;opacity:.9}66.33%,100%{transform:scale(3.4);opacity:0}}@keyframes aa14{0%,53.17%{stroke-dashoffset:1}60.67%,100%{stroke-dashoffset:0}}@keyframes ah14{0%,53.17%{stroke-dashoffset:0;opacity:1}60.67%{stroke-dashoffset:-1;opacity:1}60.75%,100%{opacity:0}}@keyframes an14{0%,60.67%{fill:rgba(207,230,232,.35)}61.92%,100%{fill:var(--white)}}@keyframes ar14{0%,60.67%{transform:none;opacity:0}60.75%{transform:none;opacity:.9}69.83%,100%{transform:scale(3.4);opacity:0}}@keyframes aa15{0%,56.67%{stroke-dashoffset:1}64.17%,100%{stroke-dashoffset:0}}@keyframes ah15{0%,56.67%{stroke-dashoffset:0;opacity:1}64.17%{stroke-dashoffset:-1;opacity:1}64.25%,100%{opacity:0}}@keyframes an15{0%,64.17%{fill:rgba(207,230,232,.35)}65.42%,100%{fill:var(--white)}}@keyframes ar15{0%,64.17%{transform:none;opacity:0}64.25%{transform:none;opacity:.9}73.33%,100%{transform:scale(3.4);opacity:0}}@keyframes pp0{0%,3.95%{transform:none;fill:rgba(207,230,232,.3)}5.62%{transform:none;fill:var(--coral)}26.67%{transform:none;fill:var(--coral)}40.83%,52.50%{transform:translate(170.8px,-100.1px);fill:var(--white)}65.00%,88.33%{transform:translate(337.8px,-122.1px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(337.8px,-122.1px);opacity:0}}@keyframes pp1{0%,4.49%{transform:none;fill:rgba(207,230,232,.3)}6.16%{transform:none;fill:var(--coral)}27.33%{transform:none;fill:var(--coral)}41.50%,52.50%{transform:translate(188.8px,-21.6px);fill:var(--white)}65.42%,88.33%{transform:translate(362.1px,-33.3px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(362.1px,-33.3px);opacity:0}}@keyframes pp2{0%,7.70%{transform:none;fill:rgba(207,230,232,.3)}9.36%{transform:none;fill:var(--coral)}28.00%{transform:none;fill:var(--coral)}42.17%,52.50%{transform:translate(186.8px,24.3px);fill:var(--white)}65.83%,88.33%{transform:translate(353.1px,38.7px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(353.1px,38.7px);opacity:0}}@keyframes pp3{0%,8.89%{transform:none;fill:rgba(207,230,232,.3)}10.55%{transform:none;fill:var(--coral)}28.67%{transform:none;fill:var(--coral)}42.83%,52.50%{transform:translate(133.8px,76.7px);fill:var(--white)}66.25%,88.33%{transform:translate(338.9px,98.7px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(338.9px,98.7px);opacity:0}}@keyframes pp4{0%,12.27%{transform:none;fill:rgba(207,230,232,.3)}13.93%{transform:none;fill:var(--coral)}29.33%{transform:none;fill:var(--coral)}43.50%,52.50%{transform:translate(130.5px,77.6px);fill:var(--white)}66.67%,88.33%{transform:translate(290.5px,119px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(290.5px,119px);opacity:0}}@keyframes pp5{0%,13.91%{transform:none;fill:rgba(207,230,232,.3)}15.57%{transform:none;fill:var(--coral)}30.00%{transform:none;fill:var(--coral)}44.17%,52.50%{transform:translate(140.2px,-93.8px);fill:var(--white)}67.08%,88.33%{transform:translate(248.1px,-52.5px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(248.1px,-52.5px);opacity:0}}@keyframes pp6{0%,14.78%{transform:none;fill:rgba(207,230,232,.3)}16.45%{transform:none;fill:var(--coral)}30.67%{transform:none;fill:var(--coral)}44.83%,52.50%{transform:translate(89.6px,39.5px);fill:var(--white)}67.50%,88.33%{transform:translate(218.5px,39.5px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(218.5px,39.5px);opacity:0}}@keyframes pp7{0%,15.52%{transform:none;fill:rgba(207,230,232,.3)}17.18%{transform:none;fill:var(--coral)}31.33%{transform:none;fill:var(--coral)}45.50%,52.50%{transform:translate(106.1px,94.6px);fill:var(--white)}67.92%,88.33%{transform:translate(207.8px,65px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(207.8px,65px);opacity:0}}@keyframes pp8{0%,17.73%{transform:none;fill:rgba(207,230,232,.3)}19.39%{transform:none;fill:var(--coral)}32.00%{transform:none;fill:var(--coral)}46.17%,52.50%{transform:translate(111.5px,69px);fill:var(--white)}68.33%,88.33%{transform:translate(206.3px,13.3px);fill:var(--white);opacity:1}94.17%,100%{transform:translate(206.3px,13.3px);opacity:0}}@keyframes ft0{0%,2.50%{transform:scale(0)}8.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg0{0%,45.00%{transform:scaleY(0)}56.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fl0{0%,5.83%{opacity:0}10.00%,88.33%{opacity:1}94.17%,100%{opacity:0}}@keyframes ft1{0%,4.33%{transform:scale(0)}10.17%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg1{0%,46.33%{transform:scaleY(0)}58.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft2{0%,6.17%{transform:scale(0)}12.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg2{0%,47.67%{transform:scaleY(0)}59.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft3{0%,8.00%{transform:scale(0)}13.83%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg3{0%,49.00%{transform:scaleY(0)}60.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft4{0%,9.83%{transform:scale(0)}15.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg4{0%,50.33%{transform:scaleY(0)}62.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft5{0%,11.67%{transform:scale(0)}17.50%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg5{0%,51.67%{transform:scaleY(0)}63.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft6{0%,13.50%{transform:scale(0)}19.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg6{0%,53.00%{transform:scaleY(0)}64.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft7{0%,15.33%{transform:scale(0)}21.17%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg7{0%,54.33%{transform:scaleY(0)}66.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fl7{0%,18.67%{opacity:0}22.83%,88.33%{opacity:1}94.17%,100%{opacity:0}}@keyframes ft8{0%,17.17%{transform:scale(0)}23.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg8{0%,55.67%{transform:scaleY(0)}67.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes ft9{0%,19.00%{transform:scale(0)}24.83%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg9{0%,57.00%{transform:scaleY(0)}68.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fl9{0%,22.33%{opacity:0}26.50%,88.33%{opacity:1}94.17%,100%{opacity:0}}@keyframes ft10{0%,20.83%{transform:scale(0)}26.67%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg10{0%,58.33%{transform:scaleY(0)}70.00%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fl10{0%,24.17%{opacity:0}28.33%,88.33%{opacity:1}94.17%,100%{opacity:0}}@keyframes ft11{0%,22.67%{transform:scale(0)}28.50%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fg11{0%,59.67%{transform:scaleY(0)}71.33%,88.33%{transform:none;opacity:1}94.17%,100%{transform:none;opacity:0}}@keyframes fl11{0%,26.00%{opacity:0}30.17%,88.33%{opacity:1}94.17%,100%{opacity:0}}
@media (max-width:860px){.p-hero.marked .p-hero-copy{grid-template-columns:1fr}.p-mark{max-width:520px}}
@media (prefers-reduced-motion:reduce){.p-mark,.p-mark *{animation:none!important}.mk .pulse,.mk .ripple,.mk-about .ab-head,.mk-platform .pf-scan{display:none}}

/* Looping section graphics: one per inner page, 10s loops on deep. Default styles are the finished frame (reduced motion). */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.split h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04}
.v26 .split .addr{margin-top:24px;color:var(--soft);font-size:clamp(1.05rem,1.3vw,1.2rem)}
.split-rows{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,5vw,80px);align-items:start}
.split-rows .row{grid-template-columns:1fr;gap:12px}
.split-rows .loop{position:sticky;top:137px}
.tile.loop{padding:0;background:var(--deep);color:var(--white);--soft:rgba(207,230,232,.78);overflow:hidden}
.loop svg{display:block;width:100%;height:auto}
.mosaic>.loop{position:relative;min-height:420px}
.mosaic>.loop svg{position:absolute;inset:0;height:100%}
.lp text{font-family:GHCSans,sans-serif;font-size:22px;fill:var(--soft)}
.lp .hair{fill:none;stroke:rgba(207,230,232,.16);stroke-width:1.5}
.lp .node{fill:var(--white)}
.lp .pe{fill:var(--peach)}
.lp .core{fill:var(--coral)}
.lp .ripple{fill:none;stroke:var(--coral);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.lp-fade{animation:lp-fade 10s linear infinite}
@keyframes lp-fade{0%,88%{opacity:1}95%,100%{opacity:0}}
@keyframes lp-rip{0%,60%{transform:scale(1);opacity:0}61%{opacity:.9}78%,100%{transform:scale(4);opacity:0}}
/* Draw + travelling head (Platform spiral, Contact road) */
.sp-draw{fill:none;stroke:var(--mint);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:sp-draw 10s linear infinite}
@keyframes sp-draw{0%{stroke-dashoffset:1}60%,100%{stroke-dashoffset:0}}
.sp-head{fill:none;stroke:var(--coral);stroke-width:12;stroke-linecap:round;stroke-dasharray:0 2;opacity:0;animation:sp-head 10s linear infinite}
@keyframes sp-head{0%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:-1;opacity:1}61%,100%{stroke-dashoffset:-1;opacity:0}}
.sp-k{transform-box:fill-box;transform-origin:center;animation-duration:10s;animation-timing-function:linear;animation-iteration-count:infinite}
.sp-rip,.ct-rip,.ab-rip{animation:lp-rip 10s var(--out) infinite}
/* About: a decade of ventures growing into the platform */
.ab-stem{fill:none;stroke:var(--mint);stroke-width:3;stroke-linecap:round}
.ab-grow{animation:ab-grow 10s cubic-bezier(.3,0,.6,1) infinite}
@keyframes ab-grow{0%{clip-path:inset(100% 0 0 0)}58%,100%{clip-path:inset(0)}}
.ab-spoke{fill:none;stroke:var(--soft);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0;animation:ab-spoke 10s var(--out) infinite}
@keyframes ab-spoke{0%,58%{stroke-dashoffset:1}68%,100%{stroke-dashoffset:0}}
.ab-tip{animation:ab-tip 10s linear infinite}
@keyframes ab-tip{0%,64%{opacity:0}67%,100%{opacity:1}}
.ab-hub{transform-box:fill-box;transform-origin:center;animation:ab-hub 10s var(--out) infinite}
@keyframes ab-hub{0%,56%{transform:scale(0)}61%{transform:scale(1.5)}66%,100%{transform:scale(1)}}
/* Funds: four vehicles through one standard */
.lp .pulse{fill:none;stroke:var(--coral);stroke-width:3;stroke-linecap:round;stroke-dasharray:.1 1;stroke-dashoffset:.1;animation:lp-pulse 3.2s cubic-bezier(.45,0,.55,1) infinite;animation-delay:calc(var(--i)*.8s)}
@keyframes lp-pulse{from{stroke-dashoffset:.1}to{stroke-dashoffset:-1}}
.fd-rip{animation:fd-rip 3.2s var(--out) infinite;animation-delay:calc(var(--i)*.8s)}
@keyframes fd-rip{0%,78%{transform:scale(1);opacity:0}80%{opacity:.9}100%{transform:scale(3.2);opacity:0}}
.fd-gate{fill:none;stroke:rgba(207,230,232,.35);stroke-width:2;stroke-linecap:round;animation:fd-gate .8s linear infinite;animation-delay:calc(.3s + var(--i)*.06s)}
@keyframes fd-gate{0%,25%,75%,100%{stroke:rgba(207,230,232,.35)}50%{stroke:var(--coral)}}
/* Contact: the road from the airport to the office */
.ct-road{fill:none;stroke:rgba(207,230,232,.1);stroke-width:16;stroke-linecap:round}
.ct-plane{fill:var(--soft)}
.ct-pin{fill:var(--white);transform-box:fill-box;transform-origin:50% 100%;animation:ct-pin 10s var(--out) infinite}
@keyframes ct-pin{0%,58%{transform:none}62%{transform:translateY(-10px)}68%,100%{transform:none}}
@media (max-width:860px){
  .split,.split-rows{grid-template-columns:1fr}
  .split-rows .loop{position:static;order:-1}
  .tile.loop{width:100%;max-width:520px}
  .mosaic>.loop{min-height:0;aspect-ratio:1}
}
@media (prefers-reduced-motion:reduce){.lp,.lp *{animation:none!important}.lp .pulse,.lp .ripple,.sp-head{display:none}}
@keyframes sp-k0{0%,0.0%{opacity:0;transform:scale(.2)}2.0%{opacity:1;transform:scale(1.6)}5.0%,100%{opacity:1;transform:scale(1)}}.sp-k0{animation-name:sp-k0}
@keyframes sp-k1{0%,1.4%{opacity:0;transform:scale(.2)}3.4%{opacity:1;transform:scale(1.6)}6.4%,100%{opacity:1;transform:scale(1)}}.sp-k1{animation-name:sp-k1}
@keyframes sp-k2{0%,3.4%{opacity:0;transform:scale(.2)}5.4%{opacity:1;transform:scale(1.6)}8.4%,100%{opacity:1;transform:scale(1)}}.sp-k2{animation-name:sp-k2}
@keyframes sp-k3{0%,6.0%{opacity:0;transform:scale(.2)}8.0%{opacity:1;transform:scale(1.6)}11.0%,100%{opacity:1;transform:scale(1)}}.sp-k3{animation-name:sp-k3}
@keyframes sp-k4{0%,9.4%{opacity:0;transform:scale(.2)}11.4%{opacity:1;transform:scale(1.6)}14.4%,100%{opacity:1;transform:scale(1)}}.sp-k4{animation-name:sp-k4}
@keyframes sp-k5{0%,13.4%{opacity:0;transform:scale(.2)}15.4%{opacity:1;transform:scale(1.6)}18.4%,100%{opacity:1;transform:scale(1)}}.sp-k5{animation-name:sp-k5}
@keyframes sp-k6{0%,18.0%{opacity:0;transform:scale(.2)}20.0%{opacity:1;transform:scale(1.6)}23.0%,100%{opacity:1;transform:scale(1)}}.sp-k6{animation-name:sp-k6}
@keyframes sp-k7{0%,23.4%{opacity:0;transform:scale(.2)}25.4%{opacity:1;transform:scale(1.6)}28.4%,100%{opacity:1;transform:scale(1)}}.sp-k7{animation-name:sp-k7}
@keyframes sp-k8{0%,29.3%{opacity:0;transform:scale(.2)}31.3%{opacity:1;transform:scale(1.6)}34.3%,100%{opacity:1;transform:scale(1)}}.sp-k8{animation-name:sp-k8}
@keyframes sp-k9{0%,36.0%{opacity:0;transform:scale(.2)}38.0%{opacity:1;transform:scale(1.6)}41.0%,100%{opacity:1;transform:scale(1)}}.sp-k9{animation-name:sp-k9}
@keyframes sp-k10{0%,43.3%{opacity:0;transform:scale(.2)}45.3%{opacity:1;transform:scale(1.6)}48.3%,100%{opacity:1;transform:scale(1)}}.sp-k10{animation-name:sp-k10}
@keyframes sp-k11{0%,51.3%{opacity:0;transform:scale(.2)}53.3%{opacity:1;transform:scale(1.6)}56.3%,100%{opacity:1;transform:scale(1)}}.sp-k11{animation-name:sp-k11}
@keyframes sp-k12{0%,60.0%{opacity:0;transform:scale(.2)}62.0%{opacity:1;transform:scale(1.6)}65.0%,100%{opacity:1;transform:scale(1)}}.sp-k12{animation-name:sp-k12}
/* Funds portfolio filters: sector pills + CMS-driven dropdowns */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pf-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;margin:2rem 0}
.pf-filters .filter-row{margin:0}
.filter-selects{display:flex;flex-wrap:wrap;gap:.55rem}
.filter-selects:empty{display:none}
.filter-select select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:999px;padding:.65rem 2.3rem .65rem 1rem;font:inherit;font-size:.75rem;color:var(--forest);cursor:pointer;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2301353D' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right .95rem center/10px 7px}
.filter-select select:focus-visible,.filter-button:focus-visible,.pf-reset:focus-visible{outline:2px solid var(--coral,#FF8D68);outline-offset:2px}
.filter-select select.is-set{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}
.pf-empty{margin:1.5rem 0 0;padding:1.5rem;border:1px dashed var(--line);border-radius:1rem;text-align:center;color:var(--forest)}
.pf-empty[hidden]{display:none}
.pf-reset{border:0;background:none;padding:0;margin-left:.35rem;font:inherit;color:var(--forest);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:560px){.pf-filters{flex-direction:column;align-items:flex-start}.filter-selects,.filter-select,.filter-select select{width:100%}}
.v26 .filter-select select{min-height:44px;padding:0 42px 0 18px;font-size:15px;border:0;color:var(--white);background-color:transparent;box-shadow:inset 0 0 0 1px rgba(207,230,232,.32);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6'/%3E%3C/svg%3E");transition:background-color .2s ease-out,color .2s ease-out}
.v26 .filter-select select:hover{background-color:var(--lift)}
.v26 .filter-select select.is-set{background-color:var(--white);color:var(--forest);box-shadow:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2301353D' stroke-width='1.6'/%3E%3C/svg%3E")}
.v26 .filter-select option{color:var(--forest);background:var(--white)}
.v26 .h-portfolio .pf-empty{color:rgba(255,255,255,.85);border-color:rgba(207,230,232,.32)}
.v26 .h-portfolio .pf-reset{color:var(--white)}
