
:root{
  --turquoise:#2FB6BE; --turquoise-dark:#166268; --turquoise-mid:#1C8B92;
  --deep-teal:#0A3336; --deep-teal-2:#082628; --green:#7FBE76; --green-deep:#3F6A38;
  --ink:#0E1719; --paper:#FDFEFE; --mist:#F1F9F8; --line:#DEEAE9; --muted:#5B7275;
  --font-display:'Fraunces', serif; --font-body:'IBM Plex Sans', sans-serif; --font-mono:'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body); color:var(--ink); background:var(--paper); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
.eyebrow{font-family:var(--font-mono); font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--turquoise-mid); display:flex; align-items:center; gap:8px;}
.eyebrow::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--turquoise); flex-shrink:0;}
.reveal{opacity:0; transform:translateY(24px); transition:opacity 0.8s cubic-bezier(.2,.7,.2,1), transform 0.8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none;} *{animation:none !important;} }

header{position:sticky; top:0; z-index:60; background:rgba(253,254,254,0.85); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
nav{display:flex; align-items:center; justify-content:space-between; max-width:1200px; margin:0 auto; padding:18px 32px;}
.logo{display:flex; align-items:center; gap:11px;}
.logo-mark{width:36px; height:36px; border-radius:50%; background:conic-gradient(from 200deg, var(--turquoise), var(--green), var(--turquoise)); display:flex; align-items:center; justify-content:center; position:relative;}
.logo-mark::after{content:'T'; color:#fff; font-family:var(--font-display); font-weight:600; font-size:17px;}
.logo-text{font-family:var(--font-display); font-weight:600; font-size:19px; letter-spacing:0.01em;}
.logo-text span{font-family:var(--font-mono); font-weight:400; font-size:10.5px; letter-spacing:0.14em; display:block; color:var(--muted); margin-top:2px;}
.nav-links{display:flex; align-items:center; gap:34px; font-size:14.5px;}
.nav-links a{position:relative; padding:6px 0;}
.nav-links a::after{content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--turquoise); transition:right 0.25s ease;}
.nav-links a:hover::after{right:0;}
.nav-cta{background:var(--ink); color:#fff; padding:11px 22px; border-radius:100px; font-size:14px; font-weight:500; transition:background 0.25s;}
.nav-cta:hover{background:var(--turquoise-dark);}
@media (max-width:860px){ .nav-links{display:none;} }

.crumb{position:relative; z-index:2; padding:26px 0 0; font-family:var(--font-mono); font-size:12px; color:rgba(255,255,255,0.65); letter-spacing:0.03em;}
.crumb a{color:#8FE0E4;}
.crumb a:hover{text-decoration:underline; color:#fff;}

.hero{position:relative; min-height:86vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--deep-teal); color:#fff;}
.hero-video-bg{position:absolute; inset:0; z-index:0;}
.hero-video-bg video, .hero-video-bg .media-fallback{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1); animation:kenburns 24s ease-in-out infinite alternate;}
.hero-video-bg video.loaded ~ .media-fallback{display:none;}
.hero-video-bg .media-fallback{background:linear-gradient(135deg, var(--deep-teal) 0%, var(--deep-teal-2) 100%);}
.hero-video-bg .media-fallback svg{position:absolute; inset:0; width:100%; height:100%;}
@keyframes kenburns{from{transform:scale(1);} to{transform:scale(1.08);}}
.hero-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(8,20,22,0.25) 0%, rgba(8,20,22,0.55) 55%, rgba(6,16,18,0.92) 100%);}
.hero-inner{position:relative; z-index:2; max-width:820px; padding:0 0 76px;}
.video-tag{position:absolute; bottom:24px; right:32px; z-index:2; font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:#DCEAEA; background:rgba(10,51,54,0.55); padding:6px 12px; border-radius:100px;}
.tagline-badge{display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.05em; color:#BFEEEF; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); padding:8px 16px; border-radius:100px; margin-bottom:26px; backdrop-filter:blur(4px);}
.tagline-badge .dot{width:6px; height:6px; border-radius:50%; background:var(--green); animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.4; transform:scale(1.5);}}
.hero h1{font-family:var(--font-display); font-weight:500; font-size:clamp(38px,5.6vw,60px); line-height:1.1; letter-spacing:-0.01em; color:#fff;}
.hero h1 .a{display:block; background:linear-gradient(100deg, #6FE0E6 10%, var(--green) 90%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.hero p.lede{margin-top:24px; font-size:18px; color:#D7E8E8; max-width:560px;}
.hero-actions{margin-top:36px; display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{background:#fff; color:var(--ink); padding:15px 27px; border-radius:100px; font-size:15px; font-weight:500; display:inline-flex; align-items:center; gap:8px; transition:transform 0.2s, background 0.2s;}
.btn-primary:hover{background:var(--mist); transform:translateY(-1px);}
.btn-secondary{border:1px solid rgba(255,255,255,0.4); color:#fff; padding:15px 27px; border-radius:100px; font-size:15px; font-weight:500; transition:border-color 0.2s, transform 0.2s;}
.btn-secondary:hover{border-color:#fff; transform:translateY(-1px);}

.media-frame{position:relative; border-radius:18px; overflow:hidden; background:var(--ink);}
.media-frame video{width:100%; height:100%; object-fit:cover; display:block;}
.media-fallback{position:absolute; inset:0; width:100%; height:100%;}
.media-frame video.loaded ~ .media-fallback{display:none;}
.grow-path{fill:none; stroke:url(#growGrad); stroke-width:2; stroke-linecap:round; stroke-dasharray:900; stroke-dashoffset:900; animation:draw 2.6s ease forwards;}
.grow-path.p2{animation-delay:0.3s;} .grow-path.p3{animation-delay:0.6s;}
@keyframes draw{to{stroke-dashoffset:0;}}
.grow-node{opacity:0; animation:nodeIn 0.6s ease forwards;}
@keyframes nodeIn{to{opacity:1;}}
@media (prefers-reduced-motion:reduce){ .hero-video-bg video, .hero-video-bg .media-fallback{animation:none;} }

.stats-strip{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--mist);}
.stats-row{display:grid; grid-template-columns:repeat(4,1fr);}
.stat-cell{padding:26px 32px; border-right:1px solid var(--line); font-family:var(--font-mono); font-size:12.5px; color:var(--muted); letter-spacing:0.02em;}
.stat-cell:last-child{border-right:none;}
.stat-cell b{display:block; font-family:var(--font-display); font-size:18px; font-weight:500; color:var(--ink); margin-bottom:4px; letter-spacing:0;}
@media (max-width:860px){ .stats-row{grid-template-columns:repeat(2,1fr);} .stat-cell{border-bottom:1px solid var(--line);} }

.thesis{padding:80px 0;}
.thesis-grid{display:grid; grid-template-columns:220px 1fr; gap:48px;}
.thesis-grid p{font-family:var(--font-display); font-size:clamp(21px,2.4vw,28px); font-weight:400; line-height:1.42; max-width:780px;}
.thesis-grid p em{font-style:normal; color:var(--turquoise-dark); font-weight:500;}
@media (max-width:760px){ .thesis-grid{grid-template-columns:1fr; gap:20px;} }

.capabilities{padding:20px 0 110px;}
.section-head{max-width:680px; margin-bottom:52px;}
.section-head h2{font-family:var(--font-display); font-size:clamp(28px,3.6vw,42px); font-weight:500; margin-top:14px; line-height:1.2;}
.section-head p{color:var(--muted); font-size:16px; margin-top:14px;}
.group{margin-bottom:64px;}
.group-head{display:flex; align-items:baseline; gap:16px; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid var(--line);}
.group-head h3{font-family:var(--font-display); font-size:21px; font-weight:500;}
.pillar-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
@media (max-width:760px){ .pillar-grid{grid-template-columns:1fr;} }
.pillar-card{background:var(--paper); padding:22px 24px 26px; cursor:pointer; transition:background 0.25s;}
.pillar-card:hover{background:var(--mist);}
.pillar-top{display:flex; align-items:flex-start; gap:14px;}
.pillar-media{width:64px; height:64px; border-radius:12px; overflow:hidden; position:relative; flex-shrink:0; background:var(--deep-teal);}
.pillar-media .media-fallback{background:linear-gradient(135deg, var(--turquoise-dark), var(--green-deep));}
.pillar-media-icon{position:absolute; bottom:4px; right:4px; width:20px; height:20px; border-radius:6px; background:rgba(14,23,25,0.55); display:flex; align-items:center; justify-content:center; color:#fff; z-index:3;}
.pillar-top-text{flex:1; display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.pillar-card h4{font-family:var(--font-display); font-size:18px; font-weight:500; line-height:1.28;}
.pillar-card .tagline{color:var(--muted); font-size:13px; margin-top:6px;}
.toggle{flex-shrink:0; width:26px; height:26px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:15px; color:var(--muted); transition:transform 0.25s ease, border-color 0.2s; margin-top:2px;}
.pillar-card.open .toggle{transform:rotate(45deg); border-color:var(--turquoise); color:var(--turquoise-dark);}
.pillar-detail{max-height:0; overflow:hidden; transition:max-height 0.4s ease;}
.pillar-detail-inner{padding-top:18px;}
.pillar-detail p{font-size:14.5px; color:var(--muted); margin-bottom:14px;}
.service-list{list-style:none; font-size:13.8px;}
.service-list li{padding:6px 0; border-top:1px solid var(--line); color:var(--ink);}
.service-list li:first-child{border-top:none;}
.service-list .track{font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--turquoise-mid); display:block; margin:14px 0 4px;}
.service-list .track:first-child{margin-top:0;}
.learn-more{display:inline-block; margin-top:14px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.04em; color:var(--turquoise-dark); border-bottom:1px solid var(--turquoise);}
.learn-more:hover{color:var(--ink);}

.vision{background:linear-gradient(160deg, var(--deep-teal) 0%, var(--deep-teal-2) 100%); color:#fff; padding:110px 0; position:relative; overflow:hidden;}
.vision-inner{position:relative; z-index:1; max-width:840px;}
.vision .eyebrow{color:var(--green);} .vision .eyebrow::before{background:var(--green);}
.vision h2{font-family:var(--font-display); font-weight:500; font-size:clamp(28px,4vw,46px); line-height:1.2; margin-top:20px;}
.vision-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:56px;}
.vision-grid h5{font-family:var(--font-mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--green); margin-bottom:12px;}
.vision-grid p{font-size:16px; color:#D7E8E8; line-height:1.65;}
@media (max-width:760px){ .vision-grid{grid-template-columns:1fr;} }
.tagline-mark{margin-top:56px; padding-top:34px; border-top:1px solid rgba(255,255,255,0.16); font-family:var(--font-display); font-size:clamp(20px,2.6vw,28px); font-weight:400;}
.tagline-mark span{color:var(--turquoise);}

.proof{padding:100px 0;}
.proof-box{border:1px dashed var(--line); border-radius:16px; padding:52px 44px; background:var(--mist); display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;}
.proof-box h3{font-family:var(--font-display); font-size:24px; font-weight:500; max-width:480px;}
.proof-box p{color:var(--muted); margin-top:10px; max-width:480px; font-size:14.5px;}

.partners{padding:0 0 100px;}
.partners-row{display:flex; gap:18px; flex-wrap:wrap; margin-top:24px;}
.partner-slot{width:150px; height:60px; border:1px solid var(--line); border-radius:8px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--muted); text-align:center; padding:8px;}

footer{background:var(--ink); color:#DCE7E7; padding:70px 0 32px;}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,0.12);}
@media (max-width:860px){ .footer-top{grid-template-columns:1fr 1fr;} }
.footer-top h6{font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:#7FA9A9; margin-bottom:16px;}
.footer-top a, .footer-top li{display:block; font-size:14px; color:#B9CFCF; padding:6px 0; list-style:none; transition:color 0.2s;}
.footer-top a:hover{color:#fff;}
.footer-tag{font-family:var(--font-display); font-size:22px; color:#fff; max-width:280px; line-height:1.3;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:13px; color:#7FA9A9; flex-wrap:wrap; gap:12px;}

/* SUBPAGE-SPECIFIC */
.challenges{padding:10px 0 100px;}
.challenge-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-top:36px;}
@media (max-width:900px){ .challenge-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .challenge-grid{grid-template-columns:1fr;} }
.challenge-card{background:var(--paper); padding:28px 22px;}
.challenge-num{font-family:var(--font-display); font-size:26px; color:var(--line); font-weight:500; margin-bottom:14px;}
.challenge-card h4{font-family:var(--font-display); font-size:16.5px; font-weight:500; margin-bottom:8px;}
.challenge-card p{font-size:13.5px; color:var(--muted); line-height:1.55;}

.tracks-section{padding:0 0 100px;}
.track-block{border-top:1px solid var(--line); padding:32px 0;}
.track-block:first-child{border-top:none;}
.track-head{display:flex; align-items:baseline; gap:14px; margin-bottom:16px;}
.track-head h4{font-family:var(--font-display); font-size:19px; font-weight:500;}
.track-items{display:flex; flex-wrap:wrap; gap:10px;}
.track-chip{font-size:13px; padding:8px 14px; border:1px solid var(--line); border-radius:100px; color:var(--ink); background:var(--mist);}
.track-chip.highlight{border-color:var(--turquoise); background:#fff; color:var(--turquoise-dark); font-weight:500;}

.cta-band{background:linear-gradient(135deg, var(--turquoise-dark), var(--green-deep)); color:#fff; padding:80px 0; text-align:left;}
.cta-band h2{font-family:var(--font-display); font-size:clamp(26px,3.2vw,36px); font-weight:500; max-width:640px;}
.cta-band p{margin-top:14px; color:#E5F4F2; max-width:520px; font-size:15.5px;}
.cta-band .hero-actions{margin-top:28px;}
.cta-band .btn-primary{background:#fff; color:var(--ink);}
.cta-band .btn-primary:hover{background:var(--mist);}
.cta-band .btn-secondary{border-color:rgba(255,255,255,0.4); color:#fff;}
.cta-band .btn-secondary:hover{border-color:#fff;}
