/* Bastion Investment Society. Newsreader + Figtree are free stand-ins for premium serif/sans faces. */
:root{--navy:#0a2166;--deep:#071a52;--ink:#0b1533;--blue:#1646b8;--sky:#5b8cf0;--mute:#58627a;--lav:#d9dfef;--soft:#f4f5f7;--ease:cubic-bezier(.2,.7,.2,1);--pad:clamp(24px,8.6vw,172px)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:Figtree,"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.55;color:var(--ink);background:#fff;overflow-x:hidden}
h1,h2,h3,.serif{font-family:Newsreader,Georgia,serif;font-weight:400}
a{color:inherit}
img{max-width:100%}

/* HEADER */
header{position:fixed;top:0;left:0;right:0;height:112px;z-index:30;background:#fff;border-top:5px solid var(--ink);display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:40px;padding:0 var(--pad);opacity:0;animation:fade .8s .9s forwards}
.logo{display:flex;align-items:center;gap:14px;font-family:Newsreader,serif;font-size:34px;letter-spacing:2px;color:var(--navy);text-decoration:none;white-space:nowrap}
.logo img{height:52px;width:auto;display:block}
.logo .tag{margin-left:6px;padding-left:16px;border-left:2px solid var(--lav);font-family:Figtree,sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);line-height:1.25;max-width:100px;white-space:normal}
nav{display:flex;gap:44px;font-size:17px;justify-self:center}
nav a{text-decoration:none;padding:6px 0;background:linear-gradient(var(--navy),var(--navy)) 0 100%/0 3px no-repeat;transition:background-size .4s var(--ease)}
nav a:hover,nav a.on{background-size:100% 3px}
.login{justify-self:end;text-decoration:none;font-size:17px;white-space:nowrap}
@media(max-width:1500px){.logo .tag{display:none}nav{gap:32px}}
nav a{white-space:nowrap}
.burger{display:none;justify-self:end;width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative}
.burger:before,.burger:after{content:"";position:absolute;left:9px;right:9px;height:3px;background:var(--navy)}
.burger:before{top:15px}.burger:after{top:26px}
@keyframes fade{to{opacity:1}}
.rv{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}

/* HERO */
.hero{position:relative;margin:136px 0 0 clamp(24px,3.1vw,62px);height:min(72vh,760px);background:var(--lav);overflow:hidden;clip-path:inset(0 100% 0 0);animation:wipe 1.1s .15s var(--ease) forwards}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
.reel{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(7,26,82,.55),rgba(7,26,82,0) 60%),linear-gradient(0deg,rgba(7,26,82,.35),rgba(7,26,82,0) 40%)}
.hero h1{position:absolute;z-index:3;left:clamp(24px,10vw,140px);top:16%;color:#fff;font-size:clamp(44px,5.6vw,92px);line-height:1.1;max-width:900px}
.hero h1 span{display:block;opacity:0;transform:translateY(26px);animation:up .9s var(--ease) forwards}
.hero h1 span:nth-child(1){animation-delay:1.3s}.hero h1 span:nth-child(2){animation-delay:1.45s}.hero h1 span:nth-child(3){animation-delay:1.6s}
@keyframes up{to{opacity:1;transform:none}}
.pause{position:absolute;z-index:4;top:26px;right:30px;width:26px;height:26px;border:0;background:none;cursor:pointer}
.pause:before,.pause:after{content:"";position:absolute;top:2px;bottom:2px;width:6px;background:#fff}
.pause:before{left:3px}.pause:after{right:3px}
.pause.off:after{display:none}
.pause.off:before{background:none;border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent;width:0;left:6px;top:3px;bottom:auto}
.cta{position:absolute;left:0;right:0;bottom:0;z-index:5;height:196px;background:linear-gradient(110deg,rgba(10,33,102,.42),rgba(22,70,184,.2));backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);color:#fff;padding:0 clamp(24px,6vw,120px);display:flex;align-items:center;opacity:0;transform:translateY(40px);animation:up 1s 2s var(--ease) forwards}
.cta p{max-width:820px;font-size:22px;line-height:1.55;font-weight:300;letter-spacing:.01em;color:#fff;text-shadow:0 1px 14px rgba(7,26,82,.45)}

/* SECTIONS */
.who{padding:150px var(--pad) 170px;margin-top:0;background:var(--soft);display:grid;grid-template-columns:350px 1fr;position:relative}
.who .eyebrow{font-size:17px;padding-top:10px}
.who .body{border-left:3px solid #c9cedc;padding-left:56px}
.who h2{font-size:clamp(30px,3.3vw,50px);line-height:1.15;color:var(--navy);max-width:1000px}
.sub{margin-top:30px;max-width:760px;color:var(--mute);font-size:21px}
.sub+.sub{margin-top:18px}
.btn{display:inline-block;margin-top:44px;padding:20px 34px;background:var(--navy);color:#fff;text-decoration:none;font-size:17px;transition:background .3s}
.btn:hover{background:var(--blue)}
.btn.w{background:#fff;color:var(--navy)}
.btn.w:hover{background:var(--lav)}
.band{background:var(--deep);color:#fff;padding:130px var(--pad) 0;position:relative}
.band .top{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
.band h2{font-size:clamp(40px,4.8vw,72px);line-height:1.1}
.band h2 em{font-style:normal;color:var(--sky);display:block}
.band p{font-size:21px;line-height:1.6;color:#dbe4ff;max-width:640px;padding-top:12px}
.media{position:relative;margin-top:100px;aspect-ratio:21/9;overflow:hidden;background:#071a52;margin-bottom:-190px;z-index:2}
.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band-tail{height:190px;background:#fff}

/* scroll-revealed stills: copy a <figure> to keep going down the page */
.stills{padding:60px var(--pad) 40px;display:grid;grid-template-columns:7fr 5fr;gap:clamp(24px,5vw,96px);align-items:start}
.stills.flip{grid-template-columns:5fr 7fr;padding-bottom:140px}
.stills figure:nth-child(2){margin-top:200px}
.stills.flip figure:nth-child(2){margin-top:0}
.stills.flip figure:nth-child(1){margin-top:200px}
.still{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--lav);clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease)}
.still.tall{aspect-ratio:4/5}
.still img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;transform:scale(1.3);transition:transform 1.8s var(--ease);will-change:transform}
.in .still{clip-path:inset(0 0 0 0)}
.in .still img{transform:scale(1)}
.stills figcaption{margin-top:22px;border-top:3px solid var(--navy);padding-top:16px;display:flex;justify-content:space-between;gap:20px;color:var(--mute);font-size:16px;opacity:0;transition:opacity 1s .9s}
.in figcaption{opacity:1}
.stills figcaption b{font-family:Newsreader,serif;font-weight:400;font-size:26px;color:var(--navy)}

.stats{padding:100px var(--pad) 120px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
.grid3>div{border-top:3px solid var(--navy);padding-top:28px}
.num{font-family:Newsreader,serif;font-weight:300;font-size:clamp(64px,7vw,112px);line-height:1;color:var(--navy)}
.cap{margin-top:16px;color:var(--mute);max-width:300px;font-size:18px}
.schools{background:var(--navy);color:#fff;padding:150px var(--pad)}
.schools h2{font-size:clamp(36px,4.2vw,64px);line-height:1.1;max-width:900px}
.schools .list{margin-top:80px;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.schools .list div{border-top:3px solid rgba(255,255,255,.5);padding-top:24px;font-family:Newsreader,serif;font-size:clamp(28px,3vw,44px);line-height:1.1}
.schools .list small{display:block;margin-top:10px;font-family:Figtree,sans-serif;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#a9b9f2}
.news{padding:150px var(--pad)}
.news h2{font-size:clamp(36px,4.2vw,64px);color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:64px}
.card{border-top:3px solid var(--navy);padding-top:22px}
.card small{color:var(--mute);font-size:14px;letter-spacing:.04em}
.card h3{font-size:28px;line-height:1.2;margin:12px 0 22px;color:var(--ink)}
.card span{font-size:15px;color:var(--blue);font-weight:500}
footer{background:#06123a;color:#9fb0e6;padding:72px var(--pad) 56px;font-size:13px;line-height:1.7}
footer .row{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start;margin-bottom:36px}
footer img{height:56px;opacity:.95}
footer nav{gap:28px;font-size:15px}
footer nav a{color:#dbe4ff;background-image:linear-gradient(#dbe4ff,#dbe4ff)}
footer p{max-width:900px}
footer a{color:#c3cffa}

/* TEAM PAGE */
.page-head{margin-top:112px;background:var(--deep);color:#fff;padding:150px var(--pad) 130px;position:relative;overflow:hidden}
.page-head:after{content:"";position:absolute;right:calc(var(--pad) * .5);top:50%;width:min(36vw,520px);aspect-ratio:1;transform:translateY(-50%);background:url(media/logo-white.png) center/contain no-repeat;opacity:.07}
.page-head .eyebrow{font-size:17px;color:#a9b9f2;letter-spacing:.14em;text-transform:uppercase}
.page-head h1{font-size:clamp(48px,6vw,96px);line-height:1.05;margin-top:18px}
.page-head p{margin-top:28px;max-width:720px;font-size:22px;font-weight:300;line-height:1.55;color:#dbe4ff}
.roster{padding:130px var(--pad) 150px;display:flex;flex-direction:column;align-items:center}
.roster-head{width:min(100%,980px);text-align:center;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:64px}
.roster-head h2{font-size:clamp(36px,4vw,56px);color:var(--ink)}
.row-pm{display:flex;justify-content:center;gap:clamp(16px,3vw,64px);flex-wrap:nowrap;width:100%}
.pm{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1 1 0;min-width:0;max-width:210px}
.sector{font-family:Newsreader,serif;font-size:clamp(22px,1.9vw,28px);color:var(--navy);margin-bottom:20px;min-height:1.2em}
.photo{position:relative;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:linear-gradient(155deg,#12337f,#071a52);clip-path:circle(0% at 50% 50%);transition:clip-path 1.2s var(--ease)}
.pm.in .photo{clip-path:circle(72% at 50% 50%)}
.photo .mono{position:absolute;inset:0;display:grid;place-items:center;font-family:Newsreader,serif;font-size:clamp(44px,4.6vw,72px);font-weight:300;color:rgba(255,255,255,.9)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform .8s var(--ease)}
.pm:hover .photo img{transform:scale(1.06)}
.pm .name{margin-top:18px;font-size:16px;font-weight:500;color:var(--ink)}
.pm .school{font-size:14px;color:var(--mute)}
.pm p{margin-top:12px;color:var(--mute);font-weight:300;font-size:15px;line-height:1.5}
.pm .in-link{margin-top:14px;font-size:14px;font-weight:500;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--navy);padding-bottom:1px}
.pm .in-link:hover{color:var(--blue);border-color:var(--blue)}
.roster-note{margin-top:72px;border-top:2px solid var(--ink);padding-top:22px;width:min(100%,980px);text-align:center;color:var(--mute);font-size:15px}

@media(max-width:900px){
  header{grid-template-columns:1fr auto;height:84px}
  .logo{font-size:26px}.logo img{height:40px}.logo .tag{display:none}
  .login{display:none}.burger{display:block}
  nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:8px var(--pad) 20px;border-bottom:3px solid var(--navy)}
  nav.open{display:flex}
  nav a{padding:16px 0;background-image:none;border-bottom:1px solid var(--lav)}
  .hero{margin-top:108px}.cta{width:calc(100% - 48px);height:auto;padding:36px 24px;margin-top:-120px}.cta p{font-size:19px}
  .who{grid-template-columns:1fr;gap:24px}.who .body{padding-left:24px}
  .band .top{grid-template-columns:1fr;gap:28px}
  .stills,.stills.flip{grid-template-columns:1fr}.stills figure:nth-child(n){margin-top:0}
  .grid3{grid-template-columns:1fr}.schools .list,.cards{grid-template-columns:1fr 1fr}
  .page-head{margin-top:84px;padding:90px var(--pad)}
}
@media(max-width:560px){.cards,.schools .list{grid-template-columns:1fr}.row-pm{flex-wrap:wrap}.pm{flex:0 0 44%;max-width:none}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;animation-delay:0s!important;transition:none!important}}
@media(max-width:1100px){
  header{grid-template-columns:1fr auto;height:84px}
  .logo{font-size:28px}.logo img{height:42px}
  .login{display:none}.burger{display:block}
  nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:8px var(--pad) 20px;border-bottom:3px solid var(--navy);justify-self:stretch}
  nav.open{display:flex}
  nav a{padding:16px 0;background-image:none;border-bottom:1px solid var(--lav)}
  .hero{margin-top:108px}.page-head{margin-top:84px}
}
@media(max-width:700px){.row-pm{flex-wrap:wrap}.pm{flex:0 0 40%;max-width:none}}

/* WHERE WE'RE FROM */
.from{padding:110px var(--pad) 130px}
.from h2{font-size:clamp(36px,4.2vw,64px);color:var(--navy)}
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:48px;margin-top:70px}
.logos>div{border-top:3px solid var(--navy);padding-top:28px}
.logos .lg{height:96px;display:flex;align-items:center}
.logos .lg img{max-height:96px;max-width:100%;width:auto;object-fit:contain}
.logos b{display:block;margin-top:22px;font-family:Newsreader,serif;font-weight:400;font-size:clamp(26px,2.4vw,34px);color:var(--ink)}
.logos small{display:block;margin-top:2px;color:var(--mute);font-size:15px;letter-spacing:.04em}

/* AI STRATEGY */
.ai{padding:60px var(--pad) 170px;display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,110px);align-items:start}
.ai figure{position:sticky;top:150px}
.still{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--lav);clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease)}
.still.tall{aspect-ratio:4/5}
.still img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;transform:scale(1.3);transition:transform 1.8s var(--ease);will-change:transform}
.in .still{clip-path:inset(0 0 0 0)}
.in .still img{transform:scale(1)}
.ai figcaption{margin-top:22px;border-top:3px solid var(--navy);padding-top:16px;display:flex;justify-content:space-between;gap:20px;color:var(--mute);font-size:16px;opacity:0;transition:opacity 1s .9s}
.in figcaption{opacity:1}
.ai figcaption b{font-family:Newsreader,serif;font-weight:400;font-size:26px;color:var(--navy)}
.ai .eyebrow{font-size:17px;color:var(--mute)}
.ai h2{font-size:clamp(34px,3.8vw,58px);line-height:1.12;color:var(--navy);margin-top:14px;max-width:760px}
.ai-list{margin-top:56px;display:grid;gap:0}
.ai-list>div{border-top:3px solid var(--navy);padding:30px 0 34px}
.ai-list h3{font-size:clamp(26px,2.3vw,34px);line-height:1.2;color:var(--ink)}
.ai-list p{margin-top:12px;color:var(--mute);font-size:19px;font-weight:300;line-height:1.6;max-width:720px}
@media(max-width:900px){.logos{grid-template-columns:1fr 1fr}.ai{grid-template-columns:1fr}.ai figure{position:static}}
@media(max-width:560px){.logos{grid-template-columns:1fr}}

.curr{margin-top:44px;list-style:none;padding:0;border-top:3px solid var(--navy);display:grid;grid-template-columns:1fr 1fr;column-gap:48px}
.curr li{position:relative;padding:16px 0 16px 26px;border-bottom:1px solid var(--lav);color:var(--ink);font-size:18px;font-weight:300;line-height:1.5}
.curr li:before{content:"";position:absolute;left:2px;top:27px;width:8px;height:8px;background:var(--navy)}
@media(max-width:1200px){.curr{grid-template-columns:1fr}}
