/*
Theme Name: Motion Advisory Partners
Theme URI: https://www.motionadvisorypartners.com/
Author: Motion Advisory Partners
Description: Bespoke theme for Motion Advisory Partners. Founder led M&A advisors for marketing agencies and the companies around them.
Version: 1.0.36
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: Proprietary
Text Domain: motion
*/
/* ==========================================================================
   Motion Advisory Partners | theme styles
   Design tokens
   ========================================================================== */
:root{
  --dark-teal:#002A2D; --teal:#00464F; --orange:#D34C19; --off-white:#EBE7D7;
  --dark-teal-2:#00383E; --teal-2:#2F666A; --teal-3:#5E8685; --teal-4:#8DA7A1; --teal-5:#BCC7BC;
  --orange-2:#AC3E14; --aqua:#00C8DA; --burgundy:#5E210B;
  --paper:#F3F0E6; /* a lighter tint of off-white for cards on off-white */
  --ink:var(--dark-teal); --ink-muted:var(--teal-2); --link:var(--orange-2);
  --rule:rgba(0,42,45,.18); --rule-dark:rgba(235,231,215,.18);
  --font-display:"Montserrat",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --font-body:"Noto Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --container:1240px; --gutter:clamp(20px,3vw,32px); --measure:68ch;
  --fs-body:clamp(1.0625rem,1rem + .25vw,1.125rem);
  --fs-small:.9rem; --fs-xs:.8125rem;
  --fs-h1:clamp(2.1rem,1.4rem + 3.2vw,3.9rem);
  --fs-display:clamp(2.2rem,1.3rem + 3.6vw,4.4rem);
  --fs-h2:clamp(1.65rem,1.3rem + 1.6vw,2.5rem);
  --fs-h3:clamp(1.25rem,1.1rem + .6vw,1.55rem);
  --fs-h4:1.125rem;
  --space-1:.5rem; --space-2:1rem; --space-3:1.5rem; --space-4:2.5rem; --space-5:4rem; --space-6:clamp(4rem,8vw,7.5rem);
  --radius:2px; --cut:22px;
  --shadow:0 18px 40px -24px rgba(0,42,45,.45);
  --ease:cubic-bezier(.2,.7,.2,1); --dur:.22s; --dur-mid:.35s; --dur-slow:.7s; /* motion tokens: one curve, three lengths (hover, settle, reveal) */
  --header-h:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (hover:hover){html{scroll-behavior:smooth}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--off-white);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;overflow-x:hidden;font-feature-settings:"kern" 1}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:300;line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2);font-weight:300}
h3{font-size:var(--fs-h3);font-weight:400;line-height:1.25}
h4{font-size:var(--fs-h4);font-weight:400;font-family:var(--font-body);font-weight:600}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
ul,ol{padding-left:1.25em;margin:0 0 1.1em}
li{margin-bottom:.4em}
a{color:var(--link);overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease)}
@media (hover:hover){a:hover{color:var(--dark-teal);text-decoration-color:var(--orange)}}
.dark a{color:var(--off-white);text-decoration-color:var(--orange)}
@media (hover:hover){.dark a:hover{color:#fff}}
:focus-visible{outline:3px solid var(--orange-2);outline-offset:3px;border-radius:2px}
.dark :focus-visible{outline-color:var(--off-white)}
button{font:inherit;color:inherit}
hr{border:0;border-top:1px solid var(--rule);margin:var(--space-4) 0}
strong{font-weight:600}
small,.small{font-size:var(--fs-small)}
table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}
th,td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-weight:600;color:var(--teal)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.5rem 0;border:1px solid var(--rule)}
.table-wrap table{min-width:560px;margin:0}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--orange-2);color:var(--off-white);padding:.7rem 1rem;font-weight:600;text-decoration:none;border-radius:var(--radius)}
.skip-link:focus{top:12px}
/* Layout */
.container{width:min(100% - 2*var(--gutter),var(--container));margin-inline:auto}
.container--narrow{width:min(100% - 2*var(--gutter),860px);margin-inline:auto}
.section{padding-block:var(--space-6)}
.section--tight{padding-block:var(--space-5)}
.dark{background:var(--dark-teal);color:var(--off-white)}
.dark h1,.dark h2,.dark h3{color:var(--off-white)}
.teal{background:var(--teal);color:var(--off-white)}
.paper{background:var(--paper)}
.grid{display:grid;gap:var(--space-3)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-5-7{grid-template-columns:5fr 7fr}
.grid-7-5{grid-template-columns:7fr 5fr}
.grid-4-8{grid-template-columns:4fr 8fr}
.grid-8-4{grid-template-columns:8fr 4fr}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)} .grid-5-7,.grid-7-5,.grid-4-8,.grid-8-4{grid-template-columns:1fr}}
@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.measure{max-width:var(--measure)}
.lead{font-size:clamp(1.15rem,1.05rem + .5vw,1.35rem);line-height:1.5;color:var(--ink-muted);max-width:var(--measure)}
.prose .lead,.split .lead{color:var(--ink)}
.dark .lead{color:var(--teal-5)}
.dark .prose .lead,.dark .split .lead{color:var(--off-white)}
.eyebrow{display:flex;align-items:center;gap:.6rem;font-family:var(--font-body);font-size:var(--fs-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-2);margin:0 0 1rem}
.eyebrow::before{content:"";display:inline-block;width:22px;height:2px;background:var(--orange);transform:skewX(-45deg);flex:none}
.dark .eyebrow{color:var(--teal-4)}
.teal .eyebrow{color:var(--teal-5)}
.section-head{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);align-items:end;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--rule)}
.dark .section-head{border-color:var(--rule-dark)}
.section-head .num{font-family:var(--font-display);font-weight:300;font-size:clamp(2rem,4vw,3.4rem);line-height:1;color:var(--teal-3);padding-bottom:.1em}
.dark .section-head .num{color:var(--teal-4)}
.section-head h2{margin:0}
.section-head .aside{grid-column:2;color:var(--ink-muted);max-width:60ch}
.dark .section-head .aside{color:var(--teal-5)}
@media (max-width:700px){.section-head{grid-template-columns:1fr} .section-head .aside{grid-column:1}}
/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;min-height:46px;padding:.7rem 1.35rem;font-family:var(--font-body);font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.btn svg{width:1em;height:1em;flex:none;transition:transform var(--dur) var(--ease)}
@media (hover:hover){.btn:hover svg{transform:translateX(3px)}}
.btn--primary{background:var(--orange-2);color:var(--off-white);border-color:var(--orange-2)}
@media (hover:hover){.btn--primary:hover{color:var(--off-white);box-shadow:0 0 0 4px rgba(211,76,25,.28);transform:translateY(-1px)}}
.btn--secondary{background:transparent;color:var(--dark-teal);border-color:var(--dark-teal)}
@media (hover:hover){.btn--secondary:hover{background:var(--dark-teal);color:var(--off-white)}}
.dark .btn--secondary{color:var(--off-white);border-color:var(--off-white)}
@media (hover:hover){.dark .btn--secondary:hover{background:var(--off-white);color:var(--dark-teal)}}
.btn--ghost{background:transparent;color:var(--dark-teal);padding-inline:.4rem;border-color:transparent;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:.3em}
.dark .btn--ghost{color:var(--off-white)}
.btn--small{min-height:38px;padding:.45rem .9rem;font-size:var(--fs-small)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.actions{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.arrow-link{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--dark-teal);text-decoration:none;font-size:var(--fs-small);min-height:24px}
.arrow-link svg{width:1em;height:1em;transition:transform var(--dur) var(--ease)}
@media (hover:hover){.arrow-link:hover{color:var(--orange-2)}.arrow-link:hover svg{transform:translateX(3px)}}
.dark .arrow-link{color:var(--off-white)}
@media (hover:hover){.dark .arrow-link:hover{color:var(--orange)}}
/* Header */
.site-header{position:sticky;top:0;z-index:100;background:var(--dark-teal);color:var(--off-white);border-bottom:1px solid var(--rule-dark)}
.site-header .bar{display:flex;align-items:center;gap:1.2rem;min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;flex:none;margin-right:auto}
.brand picture{display:contents} /* the logo is offered as WebP with the PNG behind it; the wrapper takes no part in the layout */
.site-header .brand{display:inline-flex;align-items:center;min-height:44px}
.site-header .brand img{height:34px;width:auto}
@media (max-width:480px){.site-header .brand img,.site-header.is-scrolled .brand img{height:22px} .site-header .bar{gap:.5rem} .header-tools{gap:.2rem} .icon-btn{width:40px} .person-card{grid-template-columns:96px minmax(0,1fr);gap:1rem} .person-card img{width:96px} .home-hero .actions,.cta-band .actions,.page-hero .actions,.cta-inline .actions{flex-direction:column;align-items:stretch} .home-hero .actions .btn,.cta-band .actions .btn,.page-hero .actions .btn,.cta-inline > .btn{width:100%;justify-content:center;text-align:center} .crumbs li:last-child{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.nav{display:flex;align-items:center;gap:.15rem;margin:0;padding:0;list-style:none}
.nav > li{list-style:none;position:relative}
.nav ul{list-style:none;margin:0;padding:0}
.nav-btn,.nav-link{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;color:var(--off-white);text-decoration:none;font-weight:500;font-size:.98rem;padding:.65rem .8rem;border-radius:var(--radius);cursor:pointer;position:relative}
.nav-btn::after,.nav-link::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.35rem;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}
.nav-btn[aria-expanded="true"]::after,.nav > li.is-current > .nav-btn::after,.nav > li.is-current > .nav-link::after{transform:scaleX(1)}
@media (hover:hover){.nav-btn:hover::after,.nav-link:hover::after{transform:scaleX(1)}}
.nav-btn svg{width:.8em;height:.8em;transition:transform var(--dur) var(--ease)}
.nav-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
@media (hover:hover){.nav-link:hover,.nav-btn:hover,.icon-btn:hover,.mobile-panel .nav-link:hover{color:var(--off-white)}.card--dark:hover,.card--featured:hover{color:var(--off-white)}}
.card--featured h3{color:var(--off-white)}
@media (hover:hover){.founders-duo figcaption a:hover{color:var(--teal-5)}}
.menu{position:absolute;top:calc(100% + 6px);left:0;min-width:270px;background:var(--off-white);color:var(--dark-teal);padding:.5rem;box-shadow:var(--shadow);border:1px solid var(--rule);display:none;z-index:120}
.menu[data-open="true"]{display:block}
.menu a{display:block;padding:.6rem .8rem;color:var(--dark-teal);text-decoration:none;font-size:.95rem;border-radius:var(--radius)}
.menu a:focus-visible{background:var(--paper);color:var(--orange-2)}
@media (hover:hover){.menu a:hover{background:var(--paper);color:var(--orange-2)}}
.menu a[aria-current="page"]{background:var(--dark-teal);color:var(--off-white)}
.menu .menu-label{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-2);padding:.6rem .8rem .2rem;font-weight:600}
.menu .menu-sep{border-top:1px solid var(--rule);margin:.4rem .5rem}
.header-tools{display:flex;align-items:center;gap:.5rem;flex:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:44px;height:44px;background:transparent;border:1px solid transparent;color:var(--off-white);border-radius:var(--radius);cursor:pointer;text-decoration:none}
@media (hover:hover){.icon-btn:hover{border-color:var(--rule-dark)}}
.icon-btn svg{width:22px;height:22px}
.icon-btn--label{width:auto;padding:0 .8rem;font-weight:500;font-size:.95rem}
.menu-toggle{display:none}
@media (max-width:1080px){.nav{display:none} .menu-toggle{display:inline-flex} .header-tools .btn{display:none}}
/* Mobile panel */
.mobile-panel{position:fixed;inset:var(--header-h) 0 0 0;background:var(--dark-teal);color:var(--off-white);z-index:95;overflow-y:auto;padding:1rem var(--gutter) 3rem;display:none}
.mobile-panel[data-open="true"]{display:block}
.mobile-panel ul{list-style:none;margin:0;padding:0}
.mobile-panel > ul > li{border-bottom:1px solid var(--rule-dark)}
.mobile-panel .nav-link,.mobile-panel .nav-btn{display:flex;width:100%;justify-content:space-between;font-size:1.15rem;padding:1rem .2rem;font-family:var(--font-display);font-weight:400}
.mobile-panel .nav-link::after,.mobile-panel .nav-btn::after{display:none}
.mobile-panel .sub{display:none;padding:0 0 1rem .5rem}
.mobile-panel .sub[data-open="true"]{display:block}
.mobile-panel .sub a{display:block;padding:.6rem .5rem;color:var(--teal-5);text-decoration:none;font-size:1rem}
.mobile-panel .sub a[aria-current="page"]{color:var(--off-white);border-left:3px solid var(--orange);padding-left:.8rem}
.mobile-panel .sub .menu-label{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-4);padding:.6rem .5rem .2rem;font-weight:600}
.mobile-panel .mobile-cta{margin-top:1.5rem;display:grid;gap:.8rem}
.mobile-panel .nav-link[aria-current="page"]{border-left:3px solid var(--orange);padding-left:.8rem}
/* Page shell */
[hidden]{display:none!important}
.page-hero{padding-block:clamp(2.5rem,5vw,4.5rem) clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}
.page-hero--dark{background:var(--dark-teal);color:var(--off-white)}
.page-hero > .container{position:relative;z-index:1}
.page-hero a:not(.btn):not(.arrow-link){text-decoration:none;color:var(--off-white);border-bottom:1px solid transparent;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
@media (hover:hover){.page-hero a:not(.btn):not(.arrow-link):hover{color:var(--off-white);border-color:var(--teal-4)}}
.page-hero--light a:not(.btn):not(.arrow-link){color:var(--dark-teal)}
@media (hover:hover){.page-hero--light a:not(.btn):not(.arrow-link):hover{color:var(--orange-2);border-color:var(--orange-2)}}
.page-hero .crumbs a{border-bottom:0}
.page-hero--dark::before,.page-hero--dark::after{z-index:0}
.page-hero--dark::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,var(--dark-teal) 48%,var(--teal) 100%);opacity:.9}
.page-hero--dark::after{content:"";position:absolute;right:-6%;top:-20%;width:46%;height:160%;background:linear-gradient(135deg,transparent 46%,rgba(211,76,25,.22) 46.5%,rgba(211,76,25,.22) 55%,transparent 55.5%);pointer-events:none}
.page-hero--dark > *{position:relative}
.page-hero--light{background:var(--paper);border-bottom:1px solid var(--rule)}
.page-hero .hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-4);align-items:end}
@media (max-width:900px){.page-hero .hero-grid{grid-template-columns:1fr}}
.page-hero h1{max-width:18ch;margin-bottom:.4em}
.page-hero .lead{margin-top:.5rem}
.page-hero .hero-aside{border-left:1px solid var(--rule-dark);padding-left:var(--space-3);font-size:var(--fs-small);color:var(--teal-5)}
.page-hero--light .hero-aside{border-color:var(--rule);color:var(--ink-muted)}
.page-hero .hero-aside dt{font-weight:600;color:var(--off-white);margin-top:.6rem;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase}
.page-hero--light .hero-aside dt{color:var(--dark-teal)}
.page-hero .hero-aside dd{margin:0 0 .4rem}
.page-hero .hero-aside a:not(.btn):not(.arrow-link){border-bottom-color:rgba(235,231,215,.45);border-bottom-color:color-mix(in srgb,currentColor 45%,transparent)}
@media (hover:hover){.page-hero .hero-aside a:not(.btn):not(.arrow-link):hover{border-bottom-color:currentColor}}
.page-hero .actions{margin-top:var(--space-3)}
.crumbs{font-size:var(--fs-xs);margin-bottom:1.5rem;color:var(--teal-5)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.crumbs li+li::before{content:"/";margin-right:.35rem;opacity:.6}
.crumbs a{color:inherit;text-decoration:none}
@media (hover:hover){.crumbs a:hover{text-decoration:underline}}
.page-hero--light .crumbs{color:var(--ink-muted)}
.crumbs [aria-current="page"]{color:var(--off-white)}
.page-hero--light .crumbs [aria-current="page"]{color:var(--dark-teal)}
.page-body > .section:first-child{padding-top:var(--space-5)}
.status-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .6rem;border:1px solid currentColor;border-radius:var(--radius);color:var(--teal-2)}
.dark .status-tag{color:var(--teal-4)}
.status-tag--draft{color:var(--orange-2)}
.dark .status-tag--draft{color:var(--teal-5);border-color:var(--orange)}
/* Prose (reading layout) */
.prose{max-width:var(--measure);overflow-wrap:break-word;min-width:0}
.article-layout > *,.split > *,.grid > *,.contact-grid > *{min-width:0}
.callout,.faq-body,address,.dialog-body{overflow-wrap:break-word}
.prose h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);margin-top:2.2em;scroll-margin-top:calc(var(--header-h) + 16px)}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.8em;scroll-margin-top:calc(var(--header-h) + 16px)}
.prose p,.prose li{font-size:var(--fs-body)}
.prose ul li::marker{color:var(--orange)}
.prose ol{counter-reset:item;list-style:none;padding-left:0}
.prose ol > li{counter-increment:item;position:relative;padding-left:2.2em;margin-bottom:.7em}
.prose ol > li::before{content:counter(item,decimal-leading-zero);position:absolute;left:0;top:.1em;font-family:var(--font-display);font-weight:400;color:var(--orange-2);font-size:.95em}
.prose blockquote{margin:2rem 0;padding:1.2rem 0 1.2rem 1.5rem;border-left:3px solid var(--orange);font-family:var(--font-display);font-weight:300;font-size:1.35rem;line-height:1.35;color:var(--teal)}
.prose blockquote cite{display:block;font-family:var(--font-body);font-style:normal;font-size:var(--fs-small);color:var(--ink-muted);margin-top:.6rem}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-5);align-items:start}
@media (max-width:980px){.article-layout{grid-template-columns:1fr}}
.toc{position:sticky;top:calc(var(--header-h) + 24px);border-left:1px solid var(--rule);padding-left:1.2rem;font-size:var(--fs-small)}
.toc h2{font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--teal-2);margin:0 0 .8rem}
.toc ol{list-style:none;margin:0;padding:0}
.toc li{margin:0 0 .5rem}
.toc a{color:var(--ink);text-decoration:none;display:block;padding:.15rem 0}
.toc a.is-active{color:var(--orange-2)}
@media (hover:hover){.toc a:hover{color:var(--orange-2)}}
@media (max-width:980px){.toc{position:static;border-left:0;border-top:1px solid var(--rule);padding:1.2rem 0 0;order:-1} .toc--after{order:1;margin-top:var(--space-3)} .toc ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 1.5rem}}
.callout{background:var(--paper);border:1px solid var(--rule);border-left:4px solid var(--orange);padding:1.3rem 1.5rem;margin:2rem 0;font-size:var(--fs-small)}
.callout--dark{background:var(--dark-teal);color:var(--off-white);border-color:var(--dark-teal);border-left-color:var(--orange)}
.callout--dark a{color:var(--off-white)}
.callout h2,.callout h3,.callout h4{margin-top:0;font-size:1.05rem;font-family:var(--font-body);font-weight:600}
.callout--note{border-left-color:var(--teal-2)}
.example{background:var(--off-white);border:1px solid var(--rule);padding:1.5rem;margin:2rem 0}
.example .example-label{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--orange-2);margin-bottom:.6rem}
.example table{font-size:var(--fs-small)}
.example td:last-child,.example th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.meta-row{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-size:var(--fs-small);color:var(--ink-muted);margin:1rem 0 0}
.dark .meta-row{color:var(--teal-5)}
.meta-row span{display:inline-flex;align-items:center;gap:.4rem}
.article-foot{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--rule);font-size:var(--fs-small);color:var(--ink-muted)}
/* Cards */
.card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule);padding:1.5rem;position:relative;text-decoration:none;color:inherit;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
@media (hover:hover){.card:hover{transform:translateY(-3px);border-color:var(--teal-2)}}
.card h3{margin:.3rem 0 .6rem;font-size:1.25rem}
.card p{color:var(--ink-muted);font-size:var(--fs-small);margin-bottom:1rem}
.card .arrow-link{margin-top:auto}
.card--dark{background:var(--dark-teal-2);color:var(--off-white);border-color:rgba(235,231,215,.14)}
.card--dark p{color:var(--teal-5)}
.card--dark h3{color:var(--off-white)}
.card--dark .arrow-link{color:var(--off-white)}
@media (hover:hover){.card--dark:hover{border-color:var(--teal-4)}}
.card .idx{font-family:var(--font-display);font-weight:300;font-size:2rem;line-height:1;color:var(--teal-3);margin-bottom:.8rem}
.card--dark .idx{color:var(--teal-4)}
a.card:focus-visible{outline-offset:2px}
.card--featured{grid-column:span 2;background:var(--dark-teal);color:var(--off-white)}
.card--featured p{color:var(--teal-5)}
.card--featured .arrow-link{color:var(--off-white)}
.card--featured .cat{color:var(--teal-5)}
@media (max-width:600px){.card--featured{grid-column:span 1}}
/* Editorial list rows */
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.dark .rows{border-color:var(--rule-dark)}
.rows li{border-bottom:1px solid var(--rule)}
.dark .rows li{border-color:var(--rule-dark)}
.row-link{display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;gap:1rem 1.5rem;align-items:center;padding:1.3rem 0;color:inherit;text-decoration:none;transition:padding-left var(--dur) var(--ease)}
@media (hover:hover){.row-link:hover{padding-left:.6rem;color:inherit}}
.row-link .n{font-family:var(--font-display);font-weight:300;font-size:1.6rem;color:var(--teal-2);line-height:1}
.dark .row-link .n{color:var(--teal-4)}
.row-link .t{font-family:var(--font-display);font-weight:400;font-size:clamp(1.15rem,1rem + .8vw,1.6rem);line-height:1.2}
.row-link .d{display:block;font-family:var(--font-body);font-size:var(--fs-small);color:var(--ink-muted);margin-top:.3rem;font-weight:400}
.dark .row-link .d{color:var(--teal-5)}
.row-link svg{width:1.4rem;height:1.4rem;color:var(--orange);transition:transform var(--dur) var(--ease)}
@media (hover:hover){.row-link:hover svg{transform:translateX(5px)}}
@media (max-width:600px){.row-link{grid-template-columns:2.4rem minmax(0,1fr) auto} .row-link .n{font-size:1.1rem}}
/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule-dark)}
.pillar{padding:2.2rem 2rem 2.2rem 0;border-right:1px solid var(--rule-dark);margin-right:2rem}
.pillar:last-child{border-right:0;margin-right:0}
.pillar .n{font-family:var(--font-display);font-weight:300;font-size:3rem;color:var(--orange);line-height:1;margin-bottom:1rem}
.pillar h3{font-size:1.6rem;margin-bottom:.6rem}
.pillar p{color:var(--teal-5);font-size:var(--fs-small)}
.pillar .arrow-link{margin-right:1.2rem;margin-top:.6rem}
.num-list .arrow-link{margin-top:.6rem;margin-right:1.2rem}
@media (max-width:900px){.pillars{grid-template-columns:1fr} .pillar{border-right:0;margin-right:0;border-bottom:1px solid var(--rule-dark);padding:1.8rem 0} .pillar:last-child{border-bottom:0}}
/* Steps / process */
.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;gap:0}
.steps li{counter-increment:step;display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1.2rem;padding:1.6rem 0;border-top:1px solid var(--rule)}
.steps li:last-child{border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(step,decimal-leading-zero);font-family:var(--font-display);font-weight:300;font-size:2.2rem;line-height:1;color:var(--orange-2)}
.steps h3{margin:.15rem 0 .4rem;font-size:1.3rem}
.steps p{color:var(--ink-muted);font-size:var(--fs-small);max-width:60ch}
.dark .steps li{border-color:var(--rule-dark)}
.dark .steps li::before{color:var(--orange)}
.dark .steps p{color:var(--teal-5)}
.checklist{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.checklist li{position:relative;padding-left:2rem}
.checklist li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:12px;background:var(--orange);clip-path:polygon(0 0,100% 0,100% 100%,40% 100%,0 60%)}
/* FAQ */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 0;font-family:var(--font-display);font-weight:400;font-size:1.2rem;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;flex:none;border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(45deg);transition:transform var(--dur) var(--ease);margin-right:.3rem}
.faq details[open] summary::after{transform:rotate(225deg)}
@media (hover:hover){.faq summary:hover{color:var(--orange-2)}}
.faq .faq-body{padding:0 0 1.4rem;max-width:var(--measure);color:var(--ink);font-size:var(--fs-small)}
.dark .faq,.dark .faq details{border-color:var(--rule-dark)}
@media (hover:hover){.dark .faq summary:hover{color:var(--teal-5)}}
.dark .faq-body{color:var(--teal-5)}
/* Deal cards */
.deal{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:2rem;background:var(--paper);border:1px solid var(--rule);color:inherit;text-decoration:none;position:relative;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}
@media (hover:hover){.deal:hover{transform:translateY(-3px);border-color:var(--teal-2);color:inherit}}
.deal .parties{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.deal .party{font-family:var(--font-display);font-weight:400;font-size:clamp(1.4rem,1.2rem + 1vw,2rem);line-height:1.1}
.deal .join{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--orange-2);font-weight:600;padding:.2rem .5rem;border:1px solid var(--orange);border-radius:var(--radius)}
.deal .role{font-size:var(--fs-small);color:var(--ink-muted)}
.deal .role strong{color:var(--dark-teal)}
.deal .tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.tag{display:inline-block;font-size:var(--fs-xs);padding:.2rem .55rem;border:1px solid var(--rule);border-radius:var(--radius);color:var(--teal-2);background:var(--off-white)}
.dark .tag{color:var(--teal-5);border-color:var(--rule-dark);background:transparent}
.deal--dark{background:var(--dark-teal-2);color:var(--off-white);border-color:rgba(235,231,215,.14)}
.deal--dark .role{color:var(--teal-5)}
.deal--dark .role strong{color:var(--off-white)}
.deal--dark .join{color:var(--off-white)}
.deal--dark .tag{color:var(--teal-5);border-color:var(--rule-dark);background:transparent}
@media (hover:hover){.deal--dark:hover{border-color:var(--teal-4)}}
.evidence-strip{display:grid;grid-template-columns:auto 1fr 1fr;gap:var(--space-3);align-items:center}
@media (max-width:900px){.evidence-strip{grid-template-columns:1fr} .evidence-strip .label{max-width:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.2rem} .evidence-strip .label a{margin-top:0;white-space:nowrap}}
.evidence-strip .label{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal-2);max-width:14ch}
.deal-mini{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.1rem;align-items:center;padding:1.2rem 0;border-top:1px solid var(--rule);color:inherit;text-decoration:none}
.deal-mini .deal-tile{width:92px;height:auto;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);transition:transform .5s var(--ease)}
@media (hover:hover){.deal-mini:hover .deal-tile{transform:translateY(-2px)}.deal-mini:hover{color:var(--orange-2)}}
.deal-mini .party{font-family:var(--font-display);font-size:1.35rem;font-weight:400;line-height:1.2}
.deal-mini .role{display:block;font-size:var(--fs-small);color:var(--ink-muted);margin-top:.3rem}
/* People */
.person{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-4);align-items:start}
@media (max-width:760px){.person{grid-template-columns:1fr} .person .portrait{max-width:260px}}
.portrait{aspect-ratio:420/542;width:100%;max-width:420px;object-fit:cover;background:var(--teal);clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%)}
.portrait--small{max-width:300px}
.person-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1.4rem;align-items:center;padding:1.5rem;background:var(--paper);border:1px solid var(--rule);color:inherit;text-decoration:none;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}
@media (hover:hover){.person-card:hover{transform:translateY(-3px);border-color:var(--teal-2);color:inherit}}
.person-card img{width:120px;aspect-ratio:420/542;object-fit:cover;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.person-card h3{margin:0 0 .3rem;font-size:1.4rem}
.person-card p{margin:0;color:var(--ink-muted);font-size:var(--fs-small)}
.dark .person-card{background:var(--dark-teal-2);border-color:rgba(235,231,215,.14)}
.dark .person-card p{color:var(--teal-5)}
.founders-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
@media (max-width:600px){.founders-duo{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem} .founders-duo figcaption a{font-size:1.15rem}}
.founders-duo figure{margin:0}
.founders-duo figcaption{margin-top:.8rem}
.founders-duo figcaption a{font-family:var(--font-display);font-size:1.4rem;font-weight:400;text-decoration:none;color:var(--off-white)}
.founders-duo figcaption span{display:block;font-size:var(--fs-small);color:var(--ink-muted)}
.dark .founders-duo figcaption span{color:var(--teal-5)}
.founders-duo figure:nth-child(2){margin-top:3rem}
@media (max-width:600px){.founders-duo figure:nth-child(2){margin-top:0}}
.fact-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.fact-list li{display:grid;grid-template-columns:minmax(9rem,1fr) 2.5fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--rule);font-size:var(--fs-small)}
.fact-list li span:first-child{font-weight:600;color:var(--teal)}
@media (max-width:480px){.fact-list li{grid-template-columns:1fr;gap:.2rem}}
/* Home hero */
.home-hero{position:relative;background:var(--dark-teal);color:var(--off-white);overflow:hidden;min-height:min(calc(100svh - var(--header-h)),820px);display:flex;align-items:center}
.home-hero .tex{position:absolute;inset:0;background-image:url("assets/img/tex-wide.jpg");background-size:cover;background-position:75% 40%;opacity:.95}
@media (max-width:700px){.home-hero .tex{background-image:url("assets/img/tex-mobile.jpg");background-position:50% 40%}}
.home-hero .tex::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,42,45,.96) 0%,rgba(0,42,45,.86) 38%,rgba(0,42,45,.35) 70%,rgba(0,42,45,.15) 100%)}
.home-hero .inner{position:relative;padding-block:clamp(2.5rem,5vw,4.5rem) clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:var(--space-4);align-items:end}
@media (max-width:900px){.home-hero .inner{grid-template-columns:1fr}}
.home-hero h1{font-size:var(--fs-display);max-width:19ch;margin-bottom:.3em;line-height:1.04}
.home-hero h1 em,.page-hero h1 em{font-style:normal;color:var(--orange)}
.page-hero--light h1 em{color:var(--orange-2)}
.home-hero .lead{color:var(--off-white);opacity:.9;max-width:54ch;font-size:clamp(1.05rem,1rem + .35vw,1.2rem)}
.home-hero .actions{margin-top:var(--space-3)}
.home-hero .tagline{font-family:var(--font-display);font-weight:300;font-size:clamp(1.3rem,1rem + 1.2vw,1.9rem);color:var(--off-white);border-left:2px solid var(--orange);padding-left:1.2rem;max-width:30ch}
.home-hero .tagline small{display:block;font-family:var(--font-body);font-size:var(--fs-small);color:var(--teal-5);margin-top:.6rem;font-weight:400}
.scroll-cue{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-5);text-decoration:none;margin-top:3rem}
.scroll-cue svg{width:1rem;height:1rem}
/* Big statement */
.statement{font-family:var(--font-display);font-weight:300;font-size:clamp(1.6rem,1.2rem + 2vw,2.8rem);line-height:1.25;max-width:26ch;letter-spacing:-.01em;text-wrap:balance}
.statement em{font-style:normal;color:var(--orange)}
.light .statement em{color:var(--orange-2)}
/* Service route cards on home */
.routes{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-3)}
.routes > *{grid-column:span 6}
.routes > :nth-child(1){grid-column:span 7}
.routes > :nth-child(2){grid-column:span 5}
.routes > :nth-child(3){grid-column:span 5}
.routes > :nth-child(4){grid-column:span 7}
@media (max-width:760px){.routes > *{grid-column:span 12!important}}
.route{display:flex;flex-direction:column;justify-content:space-between;min-height:260px;padding:1.8rem;background:var(--dark-teal);color:var(--off-white);text-decoration:none;position:relative;overflow:hidden;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);transition:transform var(--dur) var(--ease)}
.route::before{content:"";position:absolute;inset:auto -30% -40% auto;width:70%;height:120%;background:linear-gradient(135deg,transparent 48%,rgba(211,76,25,.28) 48.5%,rgba(211,76,25,.28) 56%,transparent 56.5%);transition:transform var(--dur) var(--ease)}
@media (hover:hover){.route:hover{transform:translateY(-3px);color:var(--off-white)}.route:hover::before{transform:translate(-6%,-6%)}}
.route .who{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-5);font-weight:600}
.route h3{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin:.6rem 0 .5rem;color:var(--off-white)}
.route p{color:var(--teal-5);font-size:var(--fs-small);max-width:40ch;position:relative}
.route .arrow-link{color:var(--off-white);position:relative}
.route--alt{background:var(--teal)}
/* Sector list */
.sector-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--rule);border:1px solid var(--rule)}
@media (max-width:1000px){.sector-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.sector-grid{grid-template-columns:1fr}}
.sector-tile{background:var(--off-white);padding:1.6rem 1.4rem 1.4rem;min-height:220px;display:flex;flex-direction:column;color:inherit;text-decoration:none;position:relative;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.sector-tile .n{font-family:var(--font-display);font-weight:400;font-size:1rem;color:var(--teal-2);letter-spacing:.1em}
.sector-tile h3{font-size:1.25rem;margin:1.2rem 0 .5rem}
.sector-tile p{font-size:var(--fs-small);color:var(--ink-muted);margin-bottom:1rem}
.sector-tile .arrow-link{margin-top:auto}
@media (hover:hover){.sector-tile:hover{background:var(--dark-teal);color:var(--off-white)}.sector-tile:hover h3,.sector-tile:hover .arrow-link{color:var(--off-white)}.sector-tile:hover p{color:var(--teal-5)}.sector-tile:hover .n{color:var(--orange)}}
/* Insight cards */
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
@media (max-width:900px){.insight-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.insight-grid{grid-template-columns:1fr}}
.insight-grid .card--featured{grid-column:span 2}
@media (max-width:600px){.insight-grid .card--featured{grid-column:span 1}}
.card .cat{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--teal-2)}
.card--dark .cat,.card--featured .cat{color:var(--teal-4)}
.card .reading{font-size:var(--fs-xs);color:var(--teal-2);margin-top:.6rem}
.card--featured h3{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem)}
.card--featured .reading{color:var(--teal-4)}
/* Filters & search */
.filters{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:end;padding:1.4rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:var(--space-3)}
.field{display:grid;gap:.4rem}
.field label{font-size:var(--fs-small);font-weight:600;color:var(--teal)}
.field .hint{font-size:var(--fs-xs);color:var(--ink-muted);font-weight:400}
.input,select.input,textarea.input{font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--teal-3);border-radius:var(--radius);padding:.65rem .8rem;min-height:46px;width:100%;max-width:100%}
.input:focus{border-color:var(--dark-teal)}
.input[aria-invalid="true"]{border-color:var(--orange-2);border-width:2px}
textarea.input{min-height:140px;resize:vertical}
.search-row{display:flex;gap:.6rem;align-items:stretch}
.search-row .input{flex:1}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:inherit;font-size:var(--fs-small);font-weight:500;padding:.45rem .9rem;min-height:38px;border:1px solid var(--teal-3);background:transparent;color:var(--dark-teal);border-radius:var(--radius);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
@media (hover:hover){.chip:hover{border-color:var(--dark-teal)}}
.chip[aria-pressed="true"]{background:var(--dark-teal);color:var(--off-white);border-color:var(--dark-teal)}
.result-count{font-size:var(--fs-small);color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.2rem}
.empty-state{padding:2.5rem;border:1px dashed var(--teal-3);text-align:center;color:var(--ink-muted)}
.empty-state h3{margin-bottom:.5rem}
.alpha{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:1.5rem}
.alpha button{font:inherit;font-weight:600;font-size:var(--fs-small);width:38px;height:38px;border:1px solid var(--rule);background:transparent;color:var(--dark-teal);cursor:pointer;border-radius:var(--radius)}
@media (hover:hover){.alpha button:hover:not([disabled]){border-color:var(--dark-teal)}}
.alpha button[aria-pressed="true"]{background:var(--dark-teal);color:var(--off-white);border-color:var(--dark-teal)}
.alpha button[disabled]{color:var(--teal-4);cursor:not-allowed;border-style:dashed}
.alpha button.all{width:auto;padding-inline:.8rem}
.term-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--space-4);border-top:1px solid var(--rule)}
@media (max-width:760px){.term-list{grid-template-columns:1fr}}
.term-list li{border-bottom:1px solid var(--rule)}
.term-list a{display:block;padding:1.1rem 0;color:inherit;text-decoration:none}
@media (hover:hover){.term-list a:hover .term-title{color:var(--orange-2)}}
.term-title{font-family:var(--font-display);font-weight:400;font-size:1.25rem;display:flex;gap:.6rem;align-items:baseline}
.term-title .abbr{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--teal-2);font-weight:600;letter-spacing:.08em}
.term-def{font-size:var(--fs-small);color:var(--ink-muted);margin-top:.3rem;max-width:52ch}
.term-list li[hidden]{display:none}
.result{padding:1.3rem 0;border-bottom:1px solid var(--rule)}
.result .type{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--teal-2)}
.result h2{margin:.3rem 0 .4rem;font-size:1.3rem;font-weight:400;line-height:1.25}
.result h2 a{color:var(--dark-teal);text-decoration:none}
@media (hover:hover){.result h2 a:hover{color:var(--orange-2)}}
.result p{font-size:var(--fs-small);color:var(--ink-muted);margin:0}
.result mark{background:rgba(211,76,25,.18);color:inherit;padding:0 .1em}
.result p mark{color:var(--ink)}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
@media (max-width:900px){.related{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.related{grid-template-columns:1fr}}
.related .card h3{font-size:1.15rem}
.linklist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.linklist li{border-bottom:1px solid var(--rule)}
.linklist a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;color:var(--dark-teal);text-decoration:none;font-weight:500}
@media (hover:hover){.linklist a:hover{color:var(--orange-2)}}
.linklist a span:last-child{font-size:var(--fs-xs);color:var(--teal-2);letter-spacing:.1em;text-transform:uppercase;font-weight:600;flex:none}
.dark .linklist,.dark .linklist li{border-color:var(--rule-dark)}
.dark .linklist a{color:var(--off-white)}
@media (hover:hover){.dark .linklist a:hover{color:var(--teal-5)}}
.dark .linklist a span:last-child{color:var(--teal-4)}
/* CTA band */
.cta-band{position:relative;background:var(--dark-teal);color:var(--off-white);overflow:hidden}
.cta-band .inner{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-4);align-items:center;padding-block:var(--space-6)}
@media (max-width:900px){.cta-band .inner{grid-template-columns:1fr}}
.cta-band h2{font-size:clamp(1.9rem,1.4rem + 2.4vw,3.2rem);max-width:18ch;margin-bottom:.5em}
.cta-band p{color:var(--teal-5);max-width:48ch}
.cta-band .tex{position:absolute;inset:0;background-image:url("assets/img/tex-banner.jpg");background-size:cover;background-position:center;opacity:.5}
.cta-band .tex::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,42,45,1) 20%,rgba(0,42,45,.7) 60%,rgba(0,42,45,.5) 100%)}
.cta-band .inner > *{position:relative}
.cta-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:2rem;background:var(--dark-teal);color:var(--off-white);margin-top:var(--space-5);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
@media (max-width:700px){.cta-inline{grid-template-columns:1fr}}
.cta-inline h2,.cta-inline h3{margin:0 0 .3rem;font-size:1.5rem;color:var(--off-white)}
.cta-inline p{margin:0;color:var(--teal-5);font-size:var(--fs-small);max-width:52ch}
/* Footer */
.site-footer{background:var(--dark-teal);color:var(--off-white);padding-block:var(--space-5) var(--space-3);border-top:1px solid var(--rule-dark)}
.site-footer .top{display:grid;grid-template-columns:minmax(0,4fr) repeat(4,minmax(0,2fr));gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--rule-dark)}
@media (max-width:1000px){.site-footer .top{grid-template-columns:repeat(2,1fr)} .site-footer .top > :first-child{grid-column:span 2}}
@media (max-width:520px){.site-footer .top{grid-template-columns:1fr} .site-footer .top > :first-child{grid-column:span 1}}
.site-footer h2{font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal-4);margin-bottom:1rem}
.site-footer h2 a{color:inherit;font-size:inherit;letter-spacing:inherit;padding:0;min-height:0}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:0 0 .25rem}
.site-footer a{color:var(--off-white);text-decoration:none;font-size:var(--fs-small)}
.site-footer ul a,.site-footer address a{display:inline-block;padding:.25rem 0;min-height:24px}
@media (hover:hover){.site-footer a:hover{color:var(--teal-5);text-decoration:underline;text-decoration-color:var(--orange)}}
.site-footer .brand img{height:56px;width:auto}
.site-footer .prop{font-size:var(--fs-small);color:var(--teal-5);max-width:34ch;margin:1.2rem 0}
.site-footer .bottom{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;padding-top:var(--space-3);font-size:var(--fs-xs);color:var(--teal-5)}
.site-footer .bottom ul{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.site-footer .bottom a{font-size:var(--fs-xs)}
.site-footer address{font-style:normal;font-size:var(--fs-xs);color:var(--teal-5);line-height:1.7}
.site-footer address a{font-size:var(--fs-xs)}
.site-footer address a{display:inline-block}
.site-footer address a.addr,.contact-aside .block a.addr{color:var(--teal-5);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--teal-5) 45%,transparent)}
@media (hover:hover){.site-footer address a.addr:hover,.contact-aside .block a.addr:hover{color:var(--off-white);text-decoration-color:currentColor}}
.site-footer .social{display:inline-flex;align-items:center;gap:.45rem}
.site-footer .social img{width:14px;height:14px;border-radius:2px;opacity:.9;transition:opacity var(--dur) var(--ease)}
@media (hover:hover){.site-footer .social:hover img{opacity:1}}
.footer-btn{background:none;border:0;padding:.25rem 0;min-height:24px;color:var(--off-white);font:inherit;font-size:var(--fs-small);cursor:pointer;text-decoration:none;text-align:left}
@media (hover:hover){.footer-btn:hover{color:var(--teal-5)}}
.ext::after{content:"";display:inline-block;width:.7em;height:.7em;margin-left:.3em;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'><path d='M7 17L17 7M9 7h8v8'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'><path d='M7 17L17 7M9 7h8v8'/></svg>") center/contain no-repeat;vertical-align:baseline;opacity:.8}
/* Forms */
.form{display:grid;gap:1.4rem;max-width:640px}
.form .field label .req{color:var(--orange-2);font-weight:600}
.form .field label .opt{color:var(--ink-muted);font-weight:400}
.error-msg{font-size:var(--fs-small);color:var(--orange-2);font-weight:600;display:none}
.error-msg[data-show="true"]{display:block}
.error-summary{border:2px solid var(--orange-2);padding:1rem 1.2rem;background:var(--paper)}
.error-summary h2{font-size:1.1rem;font-family:var(--font-body);font-weight:600;margin-bottom:.5rem;color:var(--orange-2)}
.error-summary ul{margin:0;padding-left:1.2em}
.error-summary a{color:var(--orange-2)}
.form-note{font-size:var(--fs-small);color:var(--ink-muted)}
.form-status{padding:1.2rem 1.4rem;border:1px solid var(--rule);background:var(--paper);display:none}
.form-status[data-show="true"]{display:block}
.form-status--success{border-left:4px solid var(--teal-2)}
.form-status--failure{border-left:4px solid var(--orange-2)}
.form-status h2{font-size:1.2rem;margin-bottom:.4rem}
.spinner{display:inline-block;width:1em;height:1em;border:2px solid rgba(235,231,215,.4);border-top-color:var(--off-white);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-5);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-aside{position:sticky;top:calc(var(--header-h) + 24px)}
@media (max-width:900px){.contact-aside{position:static}}
.contact-aside .block{padding:1.5rem;background:var(--dark-teal);color:var(--off-white);margin-bottom:1rem}
.contact-aside .block h2{font-size:1.2rem;color:var(--off-white)}
.contact-aside .block p,.contact-aside .block address{font-size:var(--fs-small);color:var(--teal-5);font-style:normal}
.contact-aside .block a{color:var(--off-white)}
.contact-aside .block--light{background:var(--paper);color:var(--ink);border:1px solid var(--rule)}
.contact-aside .block--light h2{color:var(--ink)}
.contact-aside .block--light p{color:var(--ink-muted)}
.contact-aside .block--light a{color:var(--link)}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--fs-small);padding:.2rem 0}
.check input{font-size:1rem}
.check input{width:24px;height:24px;margin-top:0;accent-color:var(--orange-2);flex:none}
/* Review indicator, panel, cookie UI */
dialog{border:0;padding:0;background:transparent;max-width:min(100% - 2rem,760px);width:100%;color:var(--ink)}
dialog::backdrop{background:rgba(0,42,45,.6)}
.dialog-box{background:var(--off-white);border:1px solid var(--dark-teal);max-height:min(85vh,900px);overflow:auto;padding:0}
.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.5rem;background:var(--dark-teal);color:var(--off-white);position:sticky;top:0;z-index:2}
.dialog-head h2{margin:0;font-size:1.3rem;color:var(--off-white)}
.dialog-body{padding:1.5rem}
.dialog-body h3{font-family:var(--font-body);font-weight:600;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-2);margin:1.8rem 0 .6rem}
.dialog-body h3:first-child{margin-top:0}
.dialog-body p,.dialog-body li{font-size:var(--fs-small)}
.dialog-body ul{padding-left:1.2em}
.dialog-close{width:40px;height:40px;background:transparent;border:1px solid var(--rule-dark);color:var(--off-white);cursor:pointer;border-radius:var(--radius);font-size:1.4rem;line-height:1}
@media (hover:hover){.dialog-close:hover{background:var(--off-white);color:var(--dark-teal)}}
.ok{color:var(--teal-2);font-weight:600}
.gap{color:var(--orange-2);font-weight:600}
.cookie-banner{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:92;width:min(100% - 2rem,760px);background:var(--dark-teal);color:var(--off-white);border:1px solid var(--rule-dark);padding:1.2rem 1.4rem;box-shadow:var(--shadow);display:none}
.cookie-banner[data-show="true"]{display:block}
.cookie-banner p{font-size:var(--fs-small);color:var(--teal-5);margin-bottom:1rem;max-width:70ch}
.cookie-banner .actions{gap:.6rem}
@media (max-width:600px){.cookie-banner{bottom:60px}}
.toggle-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem 0;border-top:1px solid var(--rule)}
.toggle-row:last-of-type{border-bottom:1px solid var(--rule)}
.toggle-row label{font-weight:600}
.toggle-row p{font-size:var(--fs-small);color:var(--ink-muted);margin:.2rem 0 0;max-width:52ch}
.toggle-row input{width:22px;height:22px;flex:none;accent-color:var(--orange-2);margin-top:.2rem}
/* 404 */
.notfound{min-height:60vh;display:flex;align-items:center}
.notfound .code{font-family:var(--font-display);font-weight:300;font-size:clamp(5rem,15vw,12rem);line-height:.9;color:var(--teal-3);margin-bottom:1rem}
/* Utilities */
.mt-0{margin-top:0}
.mt-2{margin-top:var(--space-2)}
.mt-3{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-5{margin-top:var(--space-5)}
.mb-0{margin-bottom:0}
.mb-3{margin-bottom:var(--space-3)}
.mb-4{margin-bottom:var(--space-4)}
.muted{color:var(--ink-muted)}
.dark .muted{color:var(--teal-5)}
.text-small{font-size:var(--fs-small)}
.two-col{columns:2;column-gap:var(--space-4)}
.two-col > *{break-inside:avoid}
@media (max-width:760px){.two-col{columns:1}}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-4);align-items:start}
.split--rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
@media (max-width:900px){.split,.split--rev{grid-template-columns:1fr}}
.sticky-side{position:sticky;top:calc(var(--header-h) + 24px)}
@media (max-width:900px){.sticky-side{position:static}}
.num-list{list-style:none;padding:0;margin:0;counter-reset:nl}
.num-list li{counter-increment:nl;display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.8rem;padding:1rem 0;border-top:1px solid var(--rule)}
.num-list li:last-child{border-bottom:1px solid var(--rule)}
.num-list li::before{content:counter(nl,decimal-leading-zero);font-family:var(--font-display);color:var(--orange-2);font-size:1.2rem;line-height:1.4}
.dark .num-list li{border-color:var(--rule-dark)}
.dark .num-list li::before{color:var(--orange)}
.num-list strong{display:block;margin-bottom:.2rem}
.num-list p{font-size:var(--fs-small);color:var(--ink-muted);margin:0}
.dark .num-list p{color:var(--teal-5)}
.figure-frame{background:var(--dark-teal);padding:0;overflow:hidden;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.figure-frame img{width:100%;aspect-ratio:16/9;object-fit:cover}
.source-box{margin-top:var(--space-4);padding:1.2rem 1.4rem;border:1px solid var(--rule);background:var(--paper);font-size:var(--fs-small)}
.source-box h2{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-body);font-weight:600;color:var(--teal-2);margin-bottom:.6rem}
.source-box ul{margin:0;padding-left:1.2em}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem;padding:1.5rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:var(--space-3) 0}
.kv dt{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--teal-2);margin-bottom:.3rem}
.kv dd{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:400}
.dark .kv{border-color:var(--rule-dark)}
.dark .kv dt{color:var(--teal-4)}
.hero-figure{position:relative}
.hero-figure img{width:100%;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%)}
/* ==========================================================================
   Motion design layer (v2). All movement is subtle, opt-out via reduced motion.
   ========================================================================== */
.dateline{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal-2);margin-bottom:1rem}
.deal-figure{margin:0 0 var(--space-4)}
.deal--tile{grid-template-columns:150px minmax(0,1fr);align-items:start}
.deal--tile .deal-tile{width:150px;height:auto;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
@media (max-width:600px){.deal--tile{grid-template-columns:1fr} .deal--tile .deal-tile{width:120px}}
.prose blockquote em{font-style:normal}
.toc .fact-list li{grid-template-columns:1fr;gap:.15rem}
.toc .fact-list a{display:inline;padding:0}
h1[tabindex="-1"]:focus{outline:none}
.deal-figure .frame{overflow:hidden;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%);background:var(--dark-teal)}
.deal-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform 1.2s var(--ease)}
@media (hover:hover){.deal-figure:hover img{transform:scale(1.02)}}
.deal-figure figcaption{font-size:var(--fs-small);color:var(--ink-muted);margin-top:.7rem}
.article-figure{margin:0 0 var(--space-4)}
.article-figure img{width:100%;aspect-ratio:2.5/1;object-fit:cover;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%)}
.article-figure figcaption{font-size:var(--fs-small);color:var(--ink-muted);margin-top:.7rem}
/* Scroll reveal */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);transition-delay:calc(var(--i,0) * 70ms);will-change:opacity,transform}
.js .reveal.is-visible{opacity:1;transform:none}
/* Header behaviour */
.site-header{transition:box-shadow var(--dur-mid) var(--ease)}
.site-header.is-scrolled{box-shadow:0 10px 30px -18px rgba(0,0,0,.6)}
.site-header .bar{transition:min-height var(--dur-mid) var(--ease)}
.site-header.is-scrolled .bar{min-height:64px}
.site-header.is-scrolled .brand img{height:30px}
@media (max-width:480px){.site-header.is-scrolled .brand img{height:22px}}
.scroll-progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform-origin:left;transform:scaleX(0);background:var(--orange);pointer-events:none}
/* Menus */
.menu[data-open="true"]{animation:menuIn var(--dur) var(--ease) both}
@keyframes menuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.menu a{transition:background var(--dur) var(--ease),color var(--dur) var(--ease),padding-left var(--dur) var(--ease)}
@media (hover:hover){.menu a:hover{padding-left:1.05rem}}
.mobile-panel[data-open="true"]{animation:panelIn var(--dur-mid) var(--ease) both}
@keyframes panelIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mobile-panel .sub[data-open="true"]{animation:subIn var(--dur) var(--ease) both}
@keyframes subIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* Live hero background: hero-bg.js inserts the canvases and sets their opacity; the scrim keeps the headline readable over them */
.home-hero .hero-live{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
.home-hero .scrim{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.4s var(--ease);background:linear-gradient(90deg,rgba(0,42,45,.94) 0%,rgba(0,42,45,.8) 34%,rgba(0,42,45,.3) 66%,rgba(0,42,45,.08) 100%)}
.home-hero.has-live .scrim{opacity:1}
/* The fades are declared on the resting state so they run both ways: in when the live background starts, and back out if it hands over to the static hero. */
.home-hero .tex,.home-hero .tex::after,.home-hero .glow,.home-hero .light{transition:opacity 1.4s var(--ease)}
.home-hero.has-live .tex::after,.home-hero.has-live .glow,.home-hero.has-live .light{opacity:0}
.home-hero.has-live .blob,.home-hero.has-live .light{animation:none}
.home-hero.no-tex .tex{opacity:0}
/* Lowest level of drawing detail: the texture holds its slow drift, so the page is only redrawn when the rays are. */
.home-hero.is-lite .tex{animation-play-state:paused}
@media (max-width:700px){.home-hero .scrim{background:linear-gradient(180deg,rgba(0,42,45,.55) 0%,rgba(0,42,45,.82) 55%,rgba(0,42,45,.92) 100%)}}
/* Hero life */
.home-hero .tex{animation:heroDrift 26s ease-in-out infinite alternate;transform-origin:70% 40%}
@keyframes heroDrift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.06) translate3d(-1.5%,1%,0)}}
.home-hero .inner > div > *{opacity:0;transform:translateY(22px);animation:heroUp .9s var(--ease) forwards}
.home-hero .inner > div > :nth-child(1){animation-delay:.05s}
.home-hero .inner > div > :nth-child(2){animation-delay:.18s}
.home-hero .inner > div > :nth-child(3){animation-delay:.32s}
.home-hero .inner > div > :nth-child(4){animation-delay:.46s}
.home-hero .tagline{opacity:0;transform:translateY(22px);animation:heroUp .9s var(--ease) .6s forwards}
@keyframes heroUp{to{opacity:1;transform:none}}
.page-hero--dark::after{animation:bandDrift 18s ease-in-out infinite alternate}
@keyframes bandDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-3%,2%,0)}}
/* Cards, tiles, rows */
.card,.deal,.route,.person-card{transition:transform var(--dur-mid) var(--ease),border-color var(--dur-mid) var(--ease),box-shadow var(--dur-mid) var(--ease),clip-path var(--dur-mid) var(--ease)}
@media (hover:hover){.card:hover,.deal:hover,.person-card:hover{box-shadow:0 22px 44px -30px rgba(0,42,45,.55)}.card:hover{--cut:32px}.route:hover{--cut:34px}}
.sector-tile{transition:background var(--dur-mid) var(--ease),color var(--dur-mid) var(--ease)}
.sector-tile h3,.sector-tile p,.sector-tile .n,.sector-tile .arrow-link{transition:color var(--dur-mid) var(--ease),transform var(--dur-mid) var(--ease)}
@media (hover:hover){.sector-tile:hover h3{transform:translateX(4px)}}
.row-link .n{transition:color var(--dur) var(--ease)}
@media (hover:hover){.row-link:hover .n{color:var(--orange)}}
.pillar .n{display:inline-block;transition:transform .4s var(--ease)}
@media (hover:hover){.pillar:hover .n{transform:translateX(6px)}}
.portrait,.person-card img,.hero-figure img{transition:transform 1s var(--ease)}
@media (hover:hover){figure:hover .portrait,.person-card:hover img,.hero-figure:hover img{transform:scale(1.025)}}
.founders-duo figure,.hero-figure{overflow:hidden}
/* Links and buttons */
.prose a,.faq-body a,.callout a{background-image:linear-gradient(currentColor,currentColor);background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-mid) var(--ease),color var(--dur) var(--ease)}
@media (hover:hover){.prose a:hover,.faq-body a:hover,.callout a:hover{background-size:100% 1px}}
.btn--primary{position:relative;overflow:hidden}
.btn--primary::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(235,231,215,.14) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease)}
@media (hover:hover){.btn--primary:hover::before{transform:translateX(120%)}}
.btn--secondary{position:relative;isolation:isolate}
.btn--secondary::before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-mid) var(--ease);z-index:-1}
.nav-btn::after,.nav-link::after{transition:transform var(--dur-mid) var(--ease)}
/* FAQ */
.faq summary::after{transition:transform var(--dur-mid) var(--ease),border-color var(--dur) var(--ease)}
.faq .faq-body{overflow:hidden}
/* Dialogs & banner */
dialog[open]{animation:dialogIn var(--dur-mid) var(--ease) both}
@keyframes dialogIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
dialog[open]::backdrop{animation:fadeIn var(--dur-mid) var(--ease) both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.cookie-banner[data-show="true"]{animation:bannerIn .5s var(--ease) both}
@keyframes bannerIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
/* Section-head numeral draws in */
.section-head .num{display:inline-block;transition:transform .8s var(--ease),opacity .8s var(--ease)}
.reveal:not(.is-visible) .section-head .num,.section-head.reveal:not(.is-visible) .num{transform:translateX(-12px);opacity:0}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none} .home-hero .inner > div > *,.home-hero .tagline{opacity:1;transform:none;animation:none} .home-hero .tex,.page-hero--dark::after{animation:none} .menu[data-open="true"],.mobile-panel[data-open="true"],dialog[open],.cookie-banner[data-show="true"]{animation:none} @media (hover:hover){.card:hover,.deal:hover,.person-card:hover,.route:hover,.sector-tile:hover h3,.pillar:hover .n{transform:none}}}
/* ==========================================================================
   Motion layer v2: living hero, word reveals, image wipes, drawn rules, spotlights
   ========================================================================== */
/* Living hero: soft colour fields drifting over the brand texture, plus a fine grain */
.home-hero .glow{position:absolute;inset:-10% -10% -10% -10%;overflow:hidden;pointer-events:none;mix-blend-mode:screen}
.home-hero .blob{position:absolute;border-radius:50%;will-change:transform;opacity:.55}
.home-hero .blob--orange{width:52vw;height:52vw;max-width:820px;max-height:820px;right:-8%;top:-18%;background:radial-gradient(closest-side,rgba(211,76,25,.55),rgba(211,76,25,.18) 45%,transparent 72%);animation:blobA 22s ease-in-out infinite alternate}
.home-hero .blob--teal{width:46vw;height:46vw;max-width:720px;max-height:720px;right:18%;bottom:-30%;background:radial-gradient(closest-side,rgba(0,200,218,.28),rgba(47,102,106,.16) 45%,transparent 72%);animation:blobB 27s ease-in-out infinite alternate}
.home-hero .blob--warm{width:34vw;height:34vw;max-width:560px;max-height:560px;left:38%;top:30%;background:radial-gradient(closest-side,rgba(235,231,215,.14),transparent 70%);animation:blobC 19s ease-in-out infinite alternate}
@keyframes blobA{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-9%,12%,0) scale(1.12)}}
@keyframes blobB{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(14%,-10%,0) scale(.92)}}
@keyframes blobC{from{transform:translate3d(0,0,0)}to{transform:translate3d(10%,-8%,0)}}
.home-hero .grain{position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:180px 180px;mix-blend-mode:overlay}
.home-hero .light{position:absolute;top:0;bottom:0;left:0;width:220%;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(235,231,215,.07) 48%,transparent 61%);will-change:transform;animation:lightSweep 16s ease-in-out infinite}
@keyframes lightSweep{0%{transform:translate3d(-65.5%,0,0)}60%,100%{transform:translate3d(65.5%,0,0)}}
.home-hero .inner{will-change:transform}
.scroll-cue{position:absolute;left:0;right:0;width:max-content;margin:0 auto;bottom:16px;z-index:2;padding:.4rem .8rem;min-height:44px;color:var(--teal-5);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;opacity:0;animation:heroUp 1s var(--ease) 1.4s forwards}
.scroll-cue svg{width:18px;height:18px;animation:cueBob 2.2s ease-in-out infinite}
@media (hover:hover){.scroll-cue:hover{color:var(--off-white)}}
@keyframes cueBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.scroll-cue.is-in{animation:none;opacity:1}
.scroll-cue{transition:opacity .25s linear}
@media (max-height:640px),(max-width:700px){.scroll-cue{display:none}}
/* Headline word reveal */
.js .h1-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.js .h1-word > span{display:inline-block;transform:translateY(110%);opacity:0}
.js .words-in .h1-word > span{animation:wordUp .85s var(--ease) forwards;animation-delay:calc(var(--w,0) * 55ms)}
@keyframes wordUp{to{transform:none;opacity:1}}
.home-hero .inner > div > h1{opacity:1;transform:none;animation:none}
/* Image wipe reveal (applied to wrappers so corner cuts on the images are kept) */
.js .wipe{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease)}
.js .wipe.is-visible{clip-path:inset(0 0 0 0)}
.js .wipe--up{clip-path:inset(100% 0 0 0)}
/* Section rules draw in from the left */
.section-head{border-bottom:0;position:relative}
.section-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--rule);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease) .15s}
.dark .section-head::after{background:var(--rule-dark)}
.section-head.is-visible::after{transform:scaleX(1)}
@media (hover:none){.section-head::after{transform:scaleX(1);transition:none}}
.js .statement{transition:letter-spacing 1.2s var(--ease)}
.js .statement.reveal:not(.is-visible){letter-spacing:.02em}
/* Sector tiles: a diagonal band sweeps through on hover */
.sector-tile{overflow:hidden}
.sector-tile::after{content:"";position:absolute;inset:-40% -60%;background:linear-gradient(135deg,transparent 46%,rgba(211,76,25,.22) 48%,rgba(211,76,25,.22) 54%,transparent 56%);transform:translateX(-45%);transition:transform var(--dur-slow) var(--ease);pointer-events:none}
@media (hover:hover){.sector-tile:hover::after{transform:translateX(35%)}}
.sector-tile > *{position:relative}
@media (hover:hover){/* Pointer spotlight on dark cards and route cards (fine pointers only) */
@media (hover:hover) and (pointer:fine){
  .card--dark,.route,.deal--dark{position:relative}
  .card--dark::after,.route::after,.deal--dark::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s var(--ease);background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(235,231,215,.10),transparent 62%)}
  .card--dark:hover::after,.route:hover::after,.deal--dark:hover::after{opacity:1}
  .route > *{position:relative;z-index:1}
}}
/* Arrow links and buttons: arrow eases, label stays put */
.arrow-link svg,.btn svg{transition:transform .4s var(--ease)}
@media (hover:hover){.arrow-link:hover svg,.btn:hover svg{transform:translateX(5px)}}
/* Footer brand settles in */
.site-footer .brand img{transition:opacity .6s var(--ease)}
/* Page transition: a soft rise with a faint stagger on hero children */
/* Editorial index rows (homepage sectors) */
.index-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.index-rows li{border-bottom:1px solid var(--rule);position:relative}
.index-rows li::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.index-rows li:focus-within::after{transform:scaleX(1)}
@media (hover:hover){.index-rows li:hover::after{transform:scaleX(1)}}
.index-row{display:grid;grid-template-columns:3.5rem minmax(0,5fr) minmax(0,6fr) auto;gap:1rem 2rem;align-items:baseline;padding:1.6rem 0;color:inherit;text-decoration:none;transition:padding-left .5s var(--ease)}
.index-row:focus-visible{color:inherit;padding-left:.5rem}
@media (hover:hover){.index-row:hover{color:inherit;padding-left:.5rem}}
.index-row .n{font-family:var(--font-display);font-weight:300;font-size:1.1rem;letter-spacing:.08em;color:var(--teal-3);transition:color var(--dur-mid) var(--ease)}
.index-row .t{font-family:var(--font-display);font-weight:400;font-size:clamp(1.25rem,1.05rem + .9vw,1.75rem);line-height:1.2;transition:color var(--dur-mid) var(--ease)}
.index-row .d{font-size:var(--fs-small);color:var(--ink-muted);max-width:44ch}
.index-row .go{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-small);font-weight:600;color:var(--dark-teal);white-space:nowrap;align-self:center}
.index-row .go svg{width:1.3rem;height:1.3rem;color:var(--orange);transition:transform .45s var(--ease)}
.index-row .go span{opacity:0;transform:translateX(-6px);transition:opacity var(--dur-mid) var(--ease),transform .45s var(--ease)}
.index-row:focus-visible .go span{opacity:1;transform:none}
.index-row:focus-visible .go svg{transform:translateX(4px)}
.index-row:focus-visible .t{color:var(--orange-2)}
.index-row:focus-visible .n{color:var(--orange)}
@media (hover:hover){.index-row:hover .go span{opacity:1;transform:none}.index-row:hover .go svg{transform:translateX(4px)}.index-row:hover .t{color:var(--orange-2)}.index-row:hover .n{color:var(--orange)}}
@media (max-width:900px){.index-row{grid-template-columns:2.6rem minmax(0,1fr) auto;gap:.3rem 1rem;align-items:start} .index-row .d{grid-column:2} .index-row .go{grid-row:1;grid-column:3;align-self:baseline} .index-row .go span{display:none} .index-row:focus-visible{padding-left:0} @media (hover:hover){.index-row:hover{padding-left:0}}}
@media (hover:none){.index-row .go span{opacity:1;transform:none}}
/* Deals in motion: anonymised live mandates */
.mandates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;list-style:none;margin:0;padding:1px}
@media (max-width:900px){.mandates{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.mandates{grid-template-columns:1fr}}
.mandate{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1.8rem 1.6rem 1.6rem;background:var(--dark-teal-2);color:var(--off-white);min-width:0;overflow:hidden;outline:1px solid var(--rule-dark)}
.mandate .head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.mandate .n{font-family:var(--font-display);font-weight:300;font-size:1.9rem;line-height:1;color:var(--teal-4)}
.mandate .kind{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--off-white);text-align:right}
.mandate p{font-size:var(--fs-small);color:var(--teal-5);margin:0;flex:1}
.mandate .tags{display:flex;flex-wrap:wrap;gap:.4rem}
.mandate::before{content:"";position:absolute;inset:0;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(211,76,25,.16),transparent 70%);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
@media (hover:hover){.mandate:hover::before{opacity:1}}
.live{display:inline-flex;align-items:center;gap:.55rem;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--teal-5)}
.live i{width:9px;height:9px;border-radius:50%;background:var(--orange);position:relative;flex:none}
.live i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--orange);animation:livePulse 2.4s var(--ease) infinite}
@keyframes livePulse{0%{transform:scale(.6);opacity:.9}70%{transform:scale(1.5);opacity:0}100%{transform:scale(1.5);opacity:0}}
.mandates-note{margin-top:var(--space-3);font-size:var(--fs-small);color:var(--teal-5);max-width:70ch}
.evidence-strip .label a{display:block;margin-top:.6rem;letter-spacing:0;text-transform:none;font-weight:400;font-size:var(--fs-small)}
/* Testimonials: scroll-snap carousel on the homepage, grid on the testimonials page */
.quotes-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}
.quotes-nav{display:flex;gap:.5rem}
.quotes-nav button{width:2.9rem;height:2.9rem;border:1px solid var(--teal-2);background:transparent;color:var(--teal);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.quotes-nav button svg{width:1.1rem;height:1.1rem}
@media (hover:hover){.quotes-nav button:hover{background:var(--dark-teal);color:var(--off-white);border-color:var(--dark-teal)}}
.quotes-nav button[disabled]{opacity:.35;cursor:default;background:transparent;color:var(--teal)}
.quotes-nav button:first-child svg{transform:rotate(180deg)}
.quote-track{display:flex;gap:var(--space-3);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;outline-offset:6px;overscroll-behavior-x:contain}
.quote-track::-webkit-scrollbar{display:none}
.quotes-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;flex-wrap:wrap;margin-top:var(--space-3)}
.quotes-dots{display:flex;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none}
.quotes-dots button{width:24px;height:24px;padding:0;border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.quotes-dots button span{display:block;width:11px;height:11px;background:var(--teal-4);clip-path:polygon(0 0,66% 0,100% 34%,100% 100%,0 100%);transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}
@media (hover:hover){.quotes-dots button:hover span{background:var(--teal-2)}}
.quotes-dots button[aria-current="true"] span{background:var(--orange-2);transform:scale(1.35)}
.quotes-dots button:focus-visible{outline:2px solid var(--orange-2);outline-offset:1px}
.quotes-pos{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--teal-2);margin-left:.8rem;font-variant-numeric:tabular-nums}
.quote-track > *{scroll-snap-align:start;flex:0 0 calc((100% - 2 * var(--space-3)) / 3)}
@media (max-width:1100px){.quote-track > *{flex-basis:calc((100% - var(--space-3)) / 2)}}
@media (max-width:640px){.quote-track > *{flex-basis:100%}}
.quote{margin:0;display:flex;flex-direction:column;gap:1rem;padding:2rem 1.8rem;background:var(--paper);border:1px solid var(--rule);min-width:0;position:relative;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.quote .mark-q{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:5.5rem;line-height:.5;color:var(--orange);height:2.4rem;overflow:visible;letter-spacing:-.05em}
.quote blockquote{margin:0;font-family:var(--font-display);font-weight:300;font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.45;color:var(--dark-teal);flex:1;text-wrap:pretty}
.quote figcaption{display:flex;flex-direction:column;gap:.25rem;font-size:var(--fs-small);color:var(--ink-muted);padding-top:1rem;border-top:1px solid var(--rule)}
.quote figcaption strong{color:var(--dark-teal);font-weight:600}
.quote .li-link{display:inline-flex;vertical-align:-2px;margin-left:.35rem;border:0;opacity:.85;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.quote .li-link img{width:16px;height:16px;display:block}
@media (hover:hover){.quote .li-link:hover{opacity:1;transform:translateY(-1px)}}
.quote .status-tag{align-self:flex-start;margin-top:.4rem}
.quotes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:start}
@media (max-width:800px){.quotes-grid{grid-template-columns:1fr}}
.quotes-grid .quote{padding:2.6rem 2.4rem 2.2rem}
.quotes-grid .quote .mark-q{font-size:6.5rem;height:2.8rem}
.quotes-grid .quote blockquote{font-size:clamp(1.25rem,1.05rem + .8vw,1.7rem);line-height:1.4;flex:initial}
.quotes-grid .quote figcaption{margin-top:.6rem}
.quote-links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.5rem;font-size:var(--fs-small)}
.quote-links a{color:var(--orange-2);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--dur) var(--ease)}
@media (hover:hover){.quote-links a:hover{border-color:currentColor;color:var(--orange-2)}}
.quote figcaption .meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}
.quote figcaption span a{color:var(--orange-2);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--orange-2) 45%,transparent)}
@media (hover:hover){.quote figcaption span a:hover{text-decoration-color:currentColor;color:var(--orange-2)}}
.quote .quote-more{margin:0;font-size:var(--fs-small)}
.quote .quote-more a{color:var(--orange-2);text-decoration:none;font-weight:600}
@media (hover:hover){.quote .quote-more a:hover{text-decoration:underline;text-underline-offset:.2em}}
.pull-quote{margin:var(--space-4) 0;padding:1.6rem 0 1.6rem 1.6rem;border-left:3px solid var(--orange)}
.resource-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;margin-top:var(--space-3);padding:1.8rem 2rem;background:var(--paper);border:1px solid var(--rule);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.resource-strip h3{margin:.2rem 0 .4rem;font-size:1.4rem}
.resource-strip p{margin:0;color:var(--ink-muted);font-size:var(--fs-small);max-width:60ch}
@media (max-width:760px){.resource-strip{grid-template-columns:1fr}}
.role-box{margin:var(--space-4) 0;padding:1.8rem;background:var(--paper);border:1px solid var(--rule);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.role-box h2{font-size:1.5rem;margin-top:0}
.role-box ul{margin-bottom:0}
.split .deal-tile{width:min(100%,260px);height:auto;margin-top:1.2rem;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.split .deal-mini{grid-template-columns:min(42%,260px) minmax(0,1fr)}
.split .deal-mini .deal-tile{width:100%;margin-top:0}
.pull-quote blockquote{margin:0;border:0;padding:0;background:none;font-family:var(--font-display);font-weight:300;font-size:clamp(1.2rem,1.05rem + .7vw,1.6rem);line-height:1.4;color:var(--dark-teal)}
.pull-quote figcaption{margin-top:.8rem;font-size:var(--fs-small);color:var(--ink-muted)}
@media (prefers-reduced-motion:reduce){.live i::after{animation:none;opacity:.5} .mandate::before{display:none} .quote-track{scroll-behavior:auto} .home-hero .blob,.home-hero .light,.scroll-cue,.scroll-cue svg{animation:none} .scroll-cue{opacity:1} .js .h1-word > span{transform:none;opacity:1;animation:none} .js .wipe{clip-path:none;transition:none} .section-head::after{transform:scaleX(1);transition:none} .sector-tile::after{display:none} .card--dark::after,.route::after,.deal--dark::after{display:none}}
/* ---------- CookieYes banner and preference centre: the two colours its design settings do not expose ---------- */
.cky-show-desc-btn,.cky-show-desc-btn:focus,.cky-consent-container a.cky-policy,.cky-preference-center a.cky-policy{color:var(--orange)!important;text-decoration:underline;text-underline-offset:.15em}
@media (hover:hover){.cky-show-desc-btn:hover,.cky-consent-container a.cky-policy:hover,.cky-preference-center a.cky-policy:hover{color:var(--orange)!important;text-decoration:underline;text-underline-offset:.15em}}
.cky-always-active{color:var(--teal-5)!important;font-weight:500}
.cky-consent-container,.cky-preference-center,.cky-consent-container *,.cky-preference-center *{font-family:var(--font-body)!important}
/* CookieYes draws its arrows with empty <i> tags. Left italic, each page fetched the italic font for them although no letter is ever set in it. */
.cky-consent-container i,.cky-preference-center i{font-style:normal}
.cky-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
/* Founder portraits on the homepage link to the profiles. */
.founders-duo .portrait-link{display:block;color:inherit;text-decoration:none}
.founders-duo .portrait-link:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
/* Taps on touch screens act immediately; no double-tap-to-zoom delay on controls. */
a,button,summary,label,input,select,textarea,[role=button]{touch-action:manipulation}
/* Touch screens: the sticky header keeps a constant height when scrolled. It is in the page flow, so shrinking it
   moved everything below by 12px at the moment a scroll began, which is also the moment a tap often lands. */
@media (hover:none){.site-header.is-scrolled .bar{min-height:var(--header-h)} .scroll-progress{display:none}}
.page-hero .actions .val-powered{margin:0 0 0 .4rem}
@media (max-width:600px){.page-hero .actions .val-powered{flex-basis:100%;margin:.2rem 0 0}}

/* Share panel at the foot of articles */
.share{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--rule)}
.share__label{font-family:var(--font-display);font-weight:300;font-size:1.25rem;color:var(--ink-muted);margin:0 0 .8rem}
.share__row{display:flex;flex-wrap:wrap;gap:.6rem}
.share__btn{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem .95rem;background:var(--paper);color:var(--dark-teal);border:1px solid var(--rule);border-radius:999px;font:inherit;font-size:var(--fs-small);font-weight:600;text-decoration:none;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.share__btn svg{width:18px;height:18px;flex:none}
.share__btn svg:last-of-type:not(:first-child){width:14px;height:14px;opacity:.7;transition:transform var(--dur) var(--ease)}
.share__icons{display:inline-flex;align-items:center;gap:.45rem}
.share__done:empty{display:none}
.share__done{font-weight:600}
@media (hover:hover){.share__btn:hover{background:var(--dark-teal);color:var(--off-white);border-color:var(--dark-teal)} .share__btn:hover svg:last-of-type:not(:first-child){transform:translate(2px,-2px)}}
.share__btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.share__btn.is-done{background:var(--orange);color:#fff;border-color:var(--orange)}
.share__btn--native span{font-weight:600}

/* Recent work on the homepage: the people behind the deals */
.deal-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:1.2rem}
.deal-photos--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.deal-photos,.deal-photos--3{grid-template-columns:1fr}}
.deal-photo{display:block;color:inherit;text-decoration:none;background:var(--dark-teal);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);overflow:hidden}
.deal-photo__img{aspect-ratio:3/2;overflow:hidden;background:var(--teal)}
.deal-photo__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.deal-photo__cap{padding:1.1rem 1.3rem 1.3rem;color:var(--off-white)}
.deal-photo__cap .eyebrow{color:var(--teal-5);margin-bottom:.3rem}
.deal-photo__cap .party{font-family:var(--font-display);font-weight:400;font-size:1.3rem;line-height:1.2;display:block}
.deal-photo__cap .role{display:block;font-size:var(--fs-small);color:var(--teal-5);margin-top:.35rem}
@media (hover:hover){.deal-photo:hover .deal-photo__img img{transform:scale(1.03)} .deal-photo:hover .party{color:var(--orange)}}
.deal-photo:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.evidence-strip--photos{display:block}
.evidence-strip--photos .label{max-width:none;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.evidence-strip--photos .label a{margin-top:0}
.deal-photos{margin-top:1.4rem}
