1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6<title>About Us · Towards AI Academy</title> 7<meta name="description" content="Towards AI trains developers for production AI through project-based courses, in-person bootcamps, and customized enterprise programs. 10,000+ engineers enrolled since 2019."> 8 9<!-- Canonical --> 10<link rel="canonical" href="https://towardsai.com/academy/about/"> 11 12<!-- Open Graph --> 13<meta property="og:type" content="website"> 14<meta property="og:url" content="https://towardsai.com/academy/about/"> 15<meta property="og:title" content="About Us · Towards AI Academy"> 16<meta property="og:description" content="Towards AI trains developers for production AI through project-based courses, in-person bootcamps, and customized enterprise programs. 10,000+ engineers enrolled since 2019."> 17<meta property="og:image" content="https://towardsai.com/academy-assets/homepage-title.png"> 18<meta property="og:site_name" content="Towards AI"> 19 20<!-- Twitter --> 21<meta name="twitter:card" content="summary_large_image"> 22<meta name="twitter:site" content="@towards_ai"> 23<meta name="twitter:title" content="About Us · Towards AI Academy"> 24<meta name="twitter:description" content="Towards AI trains developers for production AI through project-based courses, in-person bootcamps, and customized enterprise programs. 10,000+ engineers enrolled since 2019."> 25<meta name="twitter:image" content="https://towardsai.com/academy-assets/homepage-title.png"> 26 27<!-- JSON-LD -->
28<script type="application/ld+json"> 29{ 30 "@context": "https://schema.org", 31 "@graph": [ 32 { 33 "@type": "EducationalOrganization", 34 "@id": "https://towardsai.com/#organization", 35 "url": "https://towardsai.com/", 36 "name": "Towards AI", 37 "description": "Practical AI education, enterprise AI enablement, and custom AI systems.", 38 "logo": { 39 "@type": "ImageObject", 40 "@id": "https://towardsai.com/#logo", 41 "url": "https://towardsai.com/wp-content/uploads/2019/05/cropped-towards-ai-square-circle-png.png" 42 } 43 }, 44 { 45 "@type": "WebSite", 46 "@id": "https://towardsai.com/#website", 47 "url": "https://towardsai.com/", 48 "name": "Towards AI", 49 "publisher": { 50 "@id": "https://towardsai.com/#organization" 51 } 52 }, 53 { 54 "@type": "AboutPage", 55 "@id": "https://towardsai.com/academy/about/#webpage", 56 "url": "https://towardsai.com/academy/about/", 57 "name": "About Us \u00b7 Towards AI Academy", 58 "description": "Towards AI trains developers for production AI through project-based courses, in-person bootcamps, and customized enterprise programs. 10,000+ engineers enrolled since 2019.", 59 "isPartOf": { 60 "@id": "https://towardsai.com/#website" 61 }, 62 "primaryImageOfPage": "https://towardsai.com/academy-assets/homepage-title.png" 63 }, 64 { 65 "@type": "BreadcrumbList", 66 "@id": "https://towardsai.com/academy/about/#breadcrumb", 67 "itemListElement": [ 68 { 69 "@type": "ListItem", 70 "position": 1, 71 "name": "Home", 72 "item": "https://towardsai.com/" 73 }, 74 { 75 "@type": "ListItem", 76 "position": 2, 77 "name": "Academy", 78 "item": "https://towardsai.com/academy/" 79 }, 80 { 81 "@type": "ListItem", 82 "position": 3, 83 "name": "About Us" 84 } 85 ] 86 } 87 ] 88} 89</script>
89 90 91<!-- Favicon --> 92<link rel="icon" type="image/png" href="/home-assets/favicon.png"> 93<link rel="apple-touch-icon" href="/home-assets/favicon.png"> 94 95<!-- Google Tag Manager -->
96<script>
vendor: 327 bytes, lines 96-100
96(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 97new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 98j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 99'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 100})(window,document,'script','dataLayer','
100GTM-N8HMSMS2
vendor: 3 bytes, line 100
100');
100</script>
100 101<!-- End Google Tag Manager --> 102<!-- Meta Pixel Base Code -->
103<script>
vendor: 395 bytes, lines 103-109
103 104!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 105n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 106n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 107t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 108document,'script','https://connect.facebook.net/en_US/fbevents.js'); 109fbq('init', '
1094118905161676270
vendor: 30 bytes, lines 109-110
109'); 110fbq('track', 'PageView');
111</script>
111 112<noscript><img height="1" width="1" style="display:none" 113src="https://www.facebook.com/tr?id=4118905161676270&ev=PageView&noscript=1"/></noscript> 114<!-- End Meta Pixel --> 115<meta name="google-site-verification" content="TDgJ11Cuqh_fRdSojIE033r2UmxmFDm9P7ssi9egXuY"> 116
117<script id='pixel-script-poptin' src='https://cdn.popt.in/pixel.js?id=7964178849ba3' async='true'></script>
117 118<link rel="preconnect" href="https://fonts.googleapis.com"> 119<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 120<link href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Instrument+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet"> 121<style> 122/* ============================================================================ 123 Towards AI Academy â design system v2 124 Aesthetic: editorial print on cream. Lora serif display, Instrument Sans 125 body, IBM Plex Mono for labels/indices. Hairline rules instead of cards. 126 One dominant navy + one sharp blue accent. Blue pixel-grain textures kept 127 from towardsai.net; no purple washes, no icon grids, no boxed text. 128 ============================================================================ */ 129:root { 130 --ta-primary: #003ec7; 131 --ta-primary-container: #0052ff; 132 --ta-navy: #0b1538; 133 --ta-surface: #f8f7f4; 134 --ta-surface-low: #f2f1ec; 135 --ta-surface-lowest: #ffffff; 136 --ta-outline-neutral: #eeece7; 137 --ta-hairline: #c8c5bc; 138 --ta-hairline-soft: #dcd9d2; 139 --ta-on-surface: #191c1e; 140 --ta-on-surface-var: #434656; 141 --ta-on-surface-muted: #6b6e7b; 142 --ta-gold: #b98900; 143 --f-serif: 'Lora', Georgia, serif; 144 --f-sans: 'Instrument Sans', 'Helvetica Neue', sans-serif; 145 --f-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', monospace; 146} 147 148*, *::before, *::after { box-sizing: border-box; } 149html { scroll-behavior: smooth; } 150html, body { margin: 0; padding: 0; background: var(--ta-surface); } 151body { 152 font-family: var(--f-sans); 153 color: var(--ta-on-surface); 154 -webkit-font-smoothing: antialiased; 155 text-rendering: optimizeLegibility; 156 overflow-x: hidden; 157 font-size: 16px; 158} 159img { max-width: 100%; } 160a { color: inherit; } 161section[id] { scroll-margin-top: 90px; } 162a:focus-visible, button:focus-visible, summary:focus-visible { 163 outline: 2px solid var(--ta-primary); outline-offset: 2px; border-radius: 2px; 164} 165 166/* ---------------------------------------------------------------------------
167 Background textures (blue pixel-grain, ported from towardsai.net) 168--------------------------------------------------------------------------- */ 169.ta-grain { 170 position: absolute; inset: 0; pointer-events: none; z-index: 0; 171 opacity: 0.55; mix-blend-mode: multiply; 172 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0 0.22 0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); 173 background-size: 240px 240px; 174} 175.ta-grain-dark { 176 position: absolute; inset: 0; pointer-events: none; z-index: 0; 177 opacity: 0.35; mix-blend-mode: overlay; 178 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.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 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); 179 background-size: 240px 240px; 180} 181.ta-pixel-drift { 182 position: absolute; inset: 0; pointer-events: none; z-index: 0; 183 background: 184 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0 0.22 0 0 0 0.30 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"), 185 repeating-linear-gradient(0deg, rgba(0,62,199,0.10) 0, rgba(0,62,199,0.10) 1px, transparent 1px, transparent 8px), 186 repeating-linear-gradient(90deg, rgba(0,62,199,0.10) 0, rgba(0,62,199,0.10) 1px, transparent 1px, transparent 8px), 187 radial-gradient(60% 50% at 15% 20%, rgba(0,62,199,0.22) 0%, rgba(0,62,199,0) 70%), 188 radial-gradient(55% 45% at 85% 80%, rgba(0,82,255,0.18) 0%, rgba(0,82,255,0) 70%); 189 background-size: 200px 200px, 8px 8px, 8px 8px, 100% 100%, 100% 100%; 190 animation: ta-pixel-drift 4s linear infinite; 191 -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%); 192 mask-image: linear-gradient(to bottom, black 55%, transparent 100%); 193} 194@keyframes ta-pixel-drift { 195 0% { background-position: 0 0, 0 0, 0 0, 0 0, 0 0; } 196 100% { background-position: 200px 100px, 256px 0, 0 256px, 0 0, 0 0; } 197} 198.ta-pixel-drift-dark { 199 position: absolute; inset: 0; pointer-events: none; z-index: 0; 200 background: 201 repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0, rgba(255,255,255,0.035) 1px, transparent 1px, transparent 6px), 202 repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0, rgba(255,255,255,0.035) 1px, transparent 1px, transparent 6px), 203 radial-gradient(60% 55% at 20% 25%, rgba(0,82,255,0.32) 0%, rgba(0,82,255,0) 70%), 204 radial-gradient(55% 50% at 80% 75%, rgba(0,62,199,0.38) 0%, rgba(0,62,199,0) 70%); 205 background-size: 6px 6px, 6px 6px, 100% 100%, 100% 100%; 206 animation: ta-pixel-drift-dark 50s linear infinite; 207} 208@keyframes ta-pixel-drift-dark { 209 0% { background-position: 0 0, 0 0, 0 0, 0 0; } 210 100% { background-position: 120px 0, 0 120px, 0 0, 0 0; } 211} 212/* Per-tile grainy wash (from the original towardsai.com system): a tinted 213 radial climbing from the bottom of a card, multiplied with fractal noise. */ 214.ta-tile-shade { 215 position: absolute; inset: 0; pointer-events: none; z-index: 0; 216 border-radius: inherit; overflow: hidden; 217 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.18) 30%, rgba(0,0,0,0.6) 60%, black 100%); 218 mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.18) 30%, rgba(0,0,0,0.6) 60%, black 100%); 219} 220.ta-tile-shade::before { 221 content: ''; position: absolute; inset: 0; 222 background: radial-gradient(140% 90% at 50% 100%, 223 rgba(0,62,199,0.20) 0%, rgba(0,62,199,0.12) 30%, rgba(0,62,199,0.05) 60%, rgba(0,62,199,0) 90%); 224} 225.ta-tile-shade::after { 226 content: ''; position: absolute; inset: 0; 227 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/>
227<feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0 0.22 0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); 228 background-size: 220px 220px; opacity: 0.85; mix-blend-mode: multiply; 229} 230 231/* --------------------------------------------------------------------------- 232 Motion (matches the original site's feel: lifts, washes, reveals, flips) 233--------------------------------------------------------------------------- */ 234.ta-cell, .ta-build, .ta-step, .ta-fit, .ta-review, .ta-quote, .ta-route, .ta-evi, 235.ta-price-card, .ta-glance, .ta-path, .ta-offer { 236 position: relative; 237 transition: transform 220ms cubic-bezier(.2,0,0,1), border-color 200ms, background-color 200ms, box-shadow 220ms; 238} 239.ta-cell:hover, .ta-build:hover, .ta-step:hover, .ta-review:hover, .ta-quote:not(.inverse):hover, .ta-evi:hover { 240 transform: translateY(-3px); 241 border-top-color: var(--ta-primary); 242} 243.ta-fit:hover { transform: translateX(4px); border-top-color: var(--ta-primary); } 244.ta-route:hover { background: rgba(0,62,199,0.025); } 245.ta-price-card:hover, .ta-glance:hover { transform: translateY(-3px); box-shadow: 0 26px 56px -26px rgba(11,21,56,0.4); } 246/* grainy wash rises into hovered cards, like the original tile shades */ 247.ta-cell::after, .ta-build::after, .ta-review::after, .ta-quote:not(.inverse)::after { 248 content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; 249 transition: opacity 260ms; 250 background: 251 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0 0.22 0 0 0 0.35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>") , 252 radial-gradient(120% 80% at 50% 110%, rgba(0,62,199,0.10) 0%, rgba(0,62,199,0) 70%); 253 background-size: 220px 220px, 100% 100%; 254 mix-blend-mode: multiply; 255} 256.ta-cell:hover::after, .ta-build:hover::after, .ta-review:hover::after, .ta-quote:not(.inverse):hover::after { opacity: 1; } 257.ta-cell > *, .ta-build > *, .ta-review > *, .ta-quote > * { position: relative; z-index: 1; } 258/* scroll reveal: JS adds .ta-reveal to section children, .in when visible */ 259.ta-reveal { opacity: 0; transform: translateY(18px); transition: opacity 600ms cubic-bezier(.2,0,0,1), transform 600ms cubic-bezier(.2,0,0,1); } 260.ta-reveal.in { opacity: 1; transform: none; } 261/* nav link flip-on-hover (original ta-flip): duplicate text slides up in place */ 262.ta-nav-link .ta-flip { display: inline-block; overflow: hidden; height: 1.45em; line-height: 1.45em; vertical-align: top; } 263.ta-nav-link .ta-flip > span { display: block; transition: transform 260ms cubic-bezier(.2,0,0,1); } 264/* The span holds TWO stacked lines (label + ::after duplicate), so shift by 265 half its height â one line â to land the duplicate in the visible window. 266 -100% moved both lines out and blanked the label on hover. */ 267.ta-nav-link:hover .ta-flip > span { transform: translateY(-50%); } 268.ta-nav-link .ta-flip > span::after { content: attr(data-t); display: block; color: var(--ta-primary); } 269 270@media (prefers-reduced-motion: reduce) { 271 .ta-pixel-drift, .ta-pixel-drift-dark { animation: none !important; } 272 html { scroll-behavior: auto; } 273 .ta-reveal { opacity: 1 !important; transform: none !important; transition: none !important; } 274 .ta-cell, .ta-build, .ta-step, .ta-fit, .ta-review, .ta-quote, .ta-route, .ta-evi, 275 .ta-price-card, .ta-glance, .ta-nav-link .ta-flip > span { transition: none !important; } 276} 277 278/* --------------------------------------------------------------------------- 279 Typography 280--------------------------------------------------------------------------- */ 281.ta-eyebrow { 282 display: inline-block; font-family: var(--f-mono); 283 font-size: 11.5px; font-weight: 500; 284 letter-spacing: 0.16em; text-transform: uppercase; color: var(--ta-primary); 285} 286.ta-eyebrow .num { color: var(--ta-on-surface-muted); margin-right: 10px; } 287.ta-eyebrow.on-dark { color: #7a93ff; } 288.ta-eyebrow.on-dark .num { color: rgba(255,255,255,0.45); } 289.ta-h1 { 290 font-family: var(--f-serif); font-weight: 500; 291 font-size: clamp(38px, 5vw, 64px); line-height: 1.05; 292 letter-spacing: -0.02em; color: var(--ta-navy); margin: 0; text-wrap: balance; 293} 294.ta-h1 em, .ta-h2 em, .ta-h3 em { font-style: italic; color: var(--ta-primary); font-weight: 500; } 295.ta-h2 { 296 font-family: var(--f-serif); font-weight: 500; 297 font-size: clamp(28px, 3.2vw, 42px); line-height: 1.12; 298 letter-spacing: -0.018em; color: var(--ta-navy); margin: 0; text-wrap: balance; 299} 300.ta-h2.on-dark { color: #fff; } 301.ta-h2.on-dark em { color: #7a93ff; } 302.ta-h3 { 303 font-family: var(--f-serif); font-weight: 500; 304 font-size: clamp(19px, 1.6vw, 22px); line-height: 1.25; 305 letter-spacing: -0.01em; color: var(--ta-navy); margin: 0; 306 text-wrap: balance; 307} 308.ta-lede { font-size: 17px; line-height: 1.55; color: var(--ta-on-surface-var); margin: 0; text-wrap: pretty; } 309.ta-lede.on-dark { color: rgba(255,255,255,0.78); } 310.ta-body { font-size: 15px; line-height: 1.6; color: var(--ta-on-surface-var); margin: 0; } 311.ta-mono-note { font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-muted); letter-spacing: 0.01em; } 312 313/* --------------------------------------------------------------------------- 314 Buttons 315--------------------------------------------------------------------------- */ 316.ta-btn { 317 display: inline-flex; align-items: center; justify-content: center; gap: 10px; 318 padding: 14px 24px; border-radius: 6px; 319 font-family: var(--f-sans); font-size: 15px; font-weight: 600; letter-spacing: 0.002em; 320 text-decoration: none; cursor: pointer; border: 1.5px solid transparent; 321 transition: transform 180ms cubic-bezier(.2,0,0,1), background 160ms, color 160ms, border-color 160ms; 322 white-space: nowrap; 323} 324.ta-btn-primary { background: var(--ta-navy); color: #fff; border-color: var(--ta-navy); } 325.ta-btn-primary:hover { background: #050b1f; border-color: #050b1f; transform: translateY(-1px); } 326.ta-btn-blue { background: var(--ta-primary); color: #fff; border-color: var(--ta-primary); } 327.ta-btn-blue:hover { background: #00309b; border-color: #00309b; transform: translateY(-1px); } 328.ta-btn-secondary { background: transparent; color: var(--ta-navy); border-color: var(--ta-navy); } 329.ta-btn-secondary:hover { background: var(--ta-navy); color: #fff; transform: translateY(-1px); } 330.ta-btn-on-dark-primary { background: #fff; color: var(--ta-navy); border-color: #fff; } 331.ta-btn-on-dark-primary:hover { background: #e8e6df; border-color: #e8e6df; transform: translateY(-1px); } 332.ta-btn-on-dark-secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,0.55); } 333.ta-btn-on-dark-secondary:hover { border-color: #fff; background: rgba(255,255,255,0.08); transform: translateY(-1px); } 334.ta-btn-sm { padding: 8px 15px; font-size: 13.5px; } 335.ta-btn-lg { padding: 16px 30px; font-size: 16px; } 336.ta-btn .sub { display: block; font-size: 11.5px; font-weight: 400; opacity: 0.75; font-family: var(--f-mono); } 337.ta-btn-stack { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.3; } 338 339/* --------------------------------------------------------------------------- 340 Layout 341--------------------------------------------------------------------------- */ 342.ta-container { max-width: 1160px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; } 343.ta-section { padding: 72px 0; position: relative; } 344.ta-section-head { 345 display: flex; flex-direction: column; gap: 12px; align-items: flex-start; 346 max-width: 780px; margin-bottom: 40px; 347} 348.ta-section-head.center { margin-left: auto; margin-right: auto; text-align: center; align-items: center; } 349.ta-center { text-align: center; } 350.ta-mt-32 { margin-top: 32px; } 351 352/* --------------------------------------------------------------------------- 353 Announcement bar + nav 354--------------------------------------------------------------------------- */ 355/* The announcement bar (.ta-launchbar) ships its own scoped CSS from assemble.py 356 so the main-site pages, which do not load this file, render it identically. */ 357.ta-nav { 358 position: sticky; top: 0; z-index: 50; 359 background: rgba(248,247,244,0.92); 360 -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); 361 border-bottom: 1px solid var(--ta-hairline-soft); 362} 363.ta-nav-inner { 364 max-width: 1240px; margin: 0 auto; padding: 0 24px; 365 height: 62px; display: flex; align-items: center; gap: 32px; 366} 367.ta-nav-logo { display: flex; align-items: baseline; gap: 8px; text-decoration: none; flex-shrink: 0; } 368.ta-nav-logo .word { font-family: var(--f-serif); font-weight: 600; font-size: 19px; color: var(--ta-navy); letter-spacing: -0.01em; } 369.ta-nav-logo .word em { font-style: italic; color: var(--ta-primary); } 370.ta-nav-links { display: flex; align-items: center; gap: 18px; margin-left: auto; } 371.ta-nav-link { font-size: 14px; font-weight: 500; color: var(--ta-on-surface-var); text-decoration: none; transition: color 140ms; white-space: nowrap; } 372.ta-nav-link:hover { color: var(--ta-primary); } 373.ta-nav-cta { display: flex; align-items: center; gap: 10px; margin-left: 6px; } 374.ta-nav-burger { 375 display: none; margin-left: auto; background: none; border: none; cursor: pointer; 376 width: 44px; height: 44px; border-radius: 6px; align-items: center; justify-content: center; 377} 378.ta-nav-burger svg { display: block; } 379/* Six links + three CTAs (incl. the Mentorship button) need ~1280px; below 380 that the burger takes over (the 1023px block repeats these rules for pages 381 already at that width) */ 382@media (max-width: 1279px) { 383 .ta-nav-links, .ta-nav-cta { display: none; } 384 .ta-nav-burger { display: flex; } 385} 386.ta-mobile-menu { display: none; position: fixed; inset: 0; z-index: 70; background: var(--ta-surface); padding: 24px; overflow-y: auto; } 387.ta-mobile-menu.open { display: block; } 388.ta-mobile-menu .close-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; } 389.ta-mobile-menu a.m-link { 390 display: block; padding: 15px 4px; font-size: 19px; font-weight: 500; color: var(--ta-navy); 391 text-decoration: none; border-bottom: 1px solid var(--ta-outline-neutral); 392 font-family: var(--f-serif); 393} 394.ta-mobile-menu .m-ctas { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; } 395 396/* --------------------------------------------------------------------------- 397 Hero 398--------------------------------------------------------------------------- */ 399.ta-hero { position: relative; overflow: hidden; padding: 64px 0 72px; } 400.ta-hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; } 401.ta-hero-grid.glance-grid { grid-template-columns: 1.15fr 0.85fr; } 402.ta-hero-copy { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; } 403.ta-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; } 404.ta-hero-note { font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-var); letter-spacing: 0.01em; line-height: 1.7; } 405.ta-hero-note .seg, .ta-band .seg { white-space: nowrap; } 406.ta-hero-stats { 407 display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; 408 margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--ta-hairline); width: 100%; 409} 410.ta-stat { display: flex; flex-direction: column; gap: 3px; } 411.ta-stat .num { font-family: var(--f-serif); font-size: 26px; font-weight: 600; color: var(--ta-navy); white-space: nowrap; } 412.ta-stat .lbl { font-family: var(--f-mono); font-size: 11px; line-height: 1.45; color: var(--ta-on-surface-var); letter-spacing: 0.01em; } 413 414/* Video frame (click-to-load) */ 415.ta-video { 416 position: relative; border-radius: 10px; overflow: hidden; cursor: pointer; 417 aspect-ratio: 16 / 9; background: var(--ta-navy); 418 box-shadow: 0 20px 48px -24px rgba(11,21,56,0.45); 419 border: 1px solid rgba(11,21,56,0.14); 420 width: 100%; 421} 422.ta-video img.poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.92; } 423.ta-video::after {
424 content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; 425 background: radial-gradient(42% 52% at 50% 50%, rgba(11,21,56,0.42) 0%, rgba(11,21,56,0.10) 60%, rgba(11,21,56,0) 100%); 426} 427.ta-video .play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; z-index: 2; } 428.ta-video.play-low .play { justify-content: flex-end; padding-right: 6%; } 429.ta-video.play-low .play-btn { width: 60px; height: 60px; } 430.ta-video.play-low::after { background: radial-gradient(34% 60% at 88% 50%, rgba(11,21,56,0.35) 0%, rgba(11,21,56,0) 100%); } 431.ta-video .play-btn { 432 width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,0.96); 433 display: flex; align-items: center; justify-content: center; 434 box-shadow: 0 10px 30px rgba(11,21,56,0.35); transition: transform 180ms cubic-bezier(.2,0,0,1); 435} 436.ta-video:hover .play-btn { transform: scale(1.07); } 437.ta-video .play-btn svg { margin-left: 4px; } 438.ta-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 3; } 439 440/* --------------------------------------------------------------------------- 441 Editorial rule-grids (replaces all card grids) 442--------------------------------------------------------------------------- */ 443.ta-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; } 444.ta-cols.two { grid-template-columns: repeat(2, 1fr); } 445.ta-cell { border-top: 1px solid var(--ta-hairline); padding: 18px 0 30px; } 446.ta-cell .kick, .ta-build .kick { 447 font-family: var(--f-mono); font-size: 11px; font-weight: 500; 448 letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-primary); 449 display: block; margin-bottom: 12px; 450} 451.ta-cell h3 { margin-bottom: 10px; } 452.ta-cell .who { display: flex; align-items: center; gap: 12px; margin-top: 16px; } 453.ta-cell .who img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; } 454 455/* Quotes */ 456.ta-quote { border-top: 1px solid var(--ta-hairline); padding: 20px 0 28px; } 457.ta-quote p.q { font-family: var(--f-serif); font-size: 16.5px; line-height: 1.5; color: var(--ta-navy); margin: 0 0 16px; } 458.ta-quote .who { display: flex; align-items: center; gap: 12px; } 459.ta-quote .who img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; } 460.ta-quote .who .nm { font-size: 13.5px; font-weight: 600; color: var(--ta-navy); line-height: 1.3; } 461.ta-quote .who .rl { font-family: var(--f-mono); font-size: 11px; color: var(--ta-on-surface-muted); line-height: 1.4; margin-top: 2px; } 462.ta-quote.inverse { background: var(--ta-navy); border-top-color: var(--ta-navy); padding: 24px 24px 28px; position: relative; overflow: hidden; } 463.ta-quote.inverse p.q { color: #fff; position: relative; z-index: 1; } 464.ta-quote.inverse .who { position: relative; z-index: 1; } 465.ta-quote.inverse .who .nm { color: #fff; } 466.ta-quote.inverse .who .rl { color: rgba(255,255,255,0.6); } 467 468/* Numbered fit-list (two columns, no boxes) */ 469.ta-fits { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; } 470.ta-fit { display: flex; gap: 18px; align-items: baseline; border-top: 1px solid var(--ta-hairline-soft); padding: 15px 0; font-size: 15.5px; line-height: 1.5; color: var(--ta-on-surface-var); } 471.ta-fit .n { font-family: var(--f-mono); font-size: 12px; color: var(--ta-primary); flex-shrink: 0; } 472.ta-fit b { color: var(--ta-navy); font-weight: 600; } 473 474/* Reviews */ 475.ta-review { border-top: 1px solid var(--ta-hairline); padding: 18px 0 28px; display: flex; flex-direction: column; gap: 10px; } 476.ta-stars { display: flex; gap: 2px; } 477.ta-review h4 { font-family: var(--f-serif); font-size: 17px; font-weight: 600; color: var(--ta-navy); margin: 0; line-height: 1.3; } 478.ta-review .txt { font-size: 14px; line-height: 1.6; color: var(--ta-on-surface-var); margin: 0; } 479.ta-review .txt.clamped { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; } 480.ta-review .by { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); margin-top: auto; letter-spacing: 0.02em; } 481.ta-review .more { 482 background: none; border: none; padding: 12px 0; min-height: 44px; align-self: flex-start; 483 font-family: var(--f-mono); font-size: 11.5px; font-weight: 500; line-height: 20px; 484 color: var(--ta-primary); cursor: pointer; text-align: left; text-transform: uppercase; letter-spacing: 0.06em; 485} 486.ta-review .more:hover { text-decoration: underline; } 487 488/* What you'll build: spec lists */ 489.ta-build { border-top: 2px solid var(--ta-navy); padding: 18px 0 10px; } 490.ta-build h3 { margin-bottom: 8px; } 491.ta-build p.intro { font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-muted); margin: 0 0 6px; } 492.ta-spec { margin: 0; padding: 0; list-style: none; } 493.ta-spec li { padding: 10px 0; border-top: 1px solid var(--ta-outline-neutral); font-size: 13.5px; line-height: 1.5; color: var(--ta-on-surface-var); } 494.ta-spec li:first-child { border-top: none; } 495.ta-spec .k { 496 display: block; font-family: var(--f-mono); font-size: 11px; font-weight: 500; 497 letter-spacing: 0.07em; text-transform: uppercase; color: var(--ta-navy); margin-bottom: 2px; 498} 499 500/* What you'll build: alternating spec + diagram rows */ 501/* Symmetric columns: with the old `1fr 440px` grid, .flip rows placed the 502 media in the wide 1fr column, so image sizes alternated left/right. */ 503.ta-buildrow { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; border-top: 1px solid var(--ta-hairline); padding: 44px 0; } 504.ta-buildrow.flip .media { order: -1; } 505.ta-buildrow .media a { display: block; cursor: zoom-in; } 506.ta-buildrow .media img { 507 width: 100%; display: block; border: 1px solid var(--ta-outline-neutral); border-radius: 10px; 508 background: var(--ta-surface-lowest); transition: transform 0.35s ease, box-shadow 0.35s ease; 509} 510.ta-buildrow .media img:hover { transform: translateY(-3px);
510 box-shadow: 0 26px 56px -30px rgba(11,21,56,0.35); } 511.ta-buildrow .ta-build { border-top: none; padding: 0; } 512 513/* Numbered steps (replaces icon feature grid) */ 514.ta-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; } 515.ta-steps.four { grid-template-columns: repeat(4, 1fr); gap: 0 32px; } 516.ta-steps.two { grid-template-columns: repeat(2, 1fr); } 517.ta-step { border-top: 1px solid var(--ta-hairline-soft); padding: 16px 0 24px; } 518.ta-step .n { font-family: var(--f-mono); font-size: 12px; color: var(--ta-primary); display: block; margin-bottom: 8px; } 519.ta-step h4 { font-size: 15px; font-weight: 600; color: var(--ta-navy); margin: 0 0 6px; } 520.ta-step p { font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); margin: 0; } 521 522/* --------------------------------------------------------------------------- 523 Dark band 524--------------------------------------------------------------------------- */ 525.ta-band { position: relative; overflow: hidden; background: var(--ta-navy); color: #fff; padding: 64px 0; } 526.ta-band .inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; } 527.ta-band .bullets { 528 display: flex; gap: 12px 28px; flex-wrap: wrap; justify-content: center; 529 font-family: var(--f-mono); font-size: 12.5px; color: rgba(255,255,255,0.8); letter-spacing: 0.01em; 530} 531
532/* --------------------------------------------------------------------------- 533 Syllabus 534--------------------------------------------------------------------------- */ 535.ta-curr-grid { display: grid; grid-template-columns: 1fr 330px; gap: 48px; align-items: start; } 536.ta-syl { border-bottom: 1px solid var(--ta-hairline); } 537.ta-syl details { border-top: 1px solid var(--ta-hairline); } 538.ta-syl summary { 539 display: flex; align-items: baseline; gap: 18px; padding: 17px 2px; 540 cursor: pointer; list-style: none; user-select: none; 541} 542.ta-syl summary::-webkit-details-marker { display: none; } 543.ta-syl .idx { font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-muted); width: 26px; flex-shrink: 0; } 544.ta-syl .t { flex: 1; font-size: 15.5px; font-weight: 600; color: var(--ta-navy); line-height: 1.4; transition: color 140ms; } 545.ta-syl summary:hover .t { color: var(--ta-primary); } 546.ta-syl .ct { font-family: var(--f-mono); font-size: 11px; color: var(--ta-on-surface-muted); white-space: nowrap; } 547.ta-syl .tog { 548 font-family: var(--f-mono); font-size: 16px; color: var(--ta-on-surface-muted); 549 width: 18px; text-align: center; flex-shrink: 0; transition: transform 200ms; line-height: 1; 550 align-self: center; 551} 552.ta-syl details[open] .tog { transform: rotate(45deg); color: var(--ta-primary); } 553.ta-syl ol { margin: 0; padding: 0 0 20px 44px; list-style: none; } 554.ta-syl li { display: flex; gap: 14px; align-items: baseline; padding: 8px 0; border-top: 1px dotted var(--ta-hairline-soft); font-size: 14px; line-height: 1.5; color: var(--ta-on-surface-var); } 555.ta-syl li:first-child { border-top: none; } 556.ta-syl .ln { font-family: var(--f-mono); font-size: 11px; color: var(--ta-hairline); min-width: 20px; flex-shrink: 0; } 557.ta-syl li a { color: inherit; text-decoration: none; } 558.ta-syl li a:hover { color: var(--ta-primary); } 559.ta-syl .fp { 560 font-family: var(--f-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.09em; 561 text-transform: uppercase; color: var(--ta-primary); margin-left: 10px; white-space: nowrap; 562} 563.ta-syl li a:hover .fp { text-decoration: underline; text-underline-offset: 2px; } 564.ta-syllabus-note { font-family: var(--f-mono); font-size: 12px; line-height: 1.6; color: var(--ta-on-surface-muted); margin-top: 14px; } 565.ta-syllabus-note a { color: var(--ta-primary); } 566 567/* Price card: the one deliberate box on the page */ 568.ta-price-card { 569 position: sticky; top: 92px; 570 background: var(--ta-surface-lowest); border: 1px solid var(--ta-navy); 571 border-radius: 10px; overflow: hidden; 572} 573.ta-price-card img.cover { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; border-bottom: 1px solid var(--ta-outline-neutral); } 574.ta-price-card .pad { padding: 22px; display: flex; flex-direction: column; gap: 13px; } 575.ta-price-row { display: flex; align-items: baseline; gap: 10px; } 576.ta-price-row .was { font-family: var(--f-mono); font-size: 15px; color: var(--ta-on-surface-muted); text-decoration: line-through; } 577.ta-price-row .now { font-family: var(--f-serif); font-size: 34px; font-weight: 600; color: var(--ta-navy); } 578.ta-price-row .per { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); } 579.ta-price-feats { display: flex; flex-direction: column; margin: 0 0 2px; } 580.ta-price-feats span { padding: 7px 0; border-top: 1px dotted var(--ta-hairline-soft); font-size: 13px; color: var(--ta-on-surface-var); } 581.ta-price-feats span:first-child { border-top: none; } 582.ta-price-card .guarantee { font-family: var(--f-mono); font-size: 11px; line-height: 1.5; color: var(--ta-on-surface-muted); text-align: center; } 583 584/* --------------------------------------------------------------------------- 585 FAQ 586--------------------------------------------------------------------------- */ 587.ta-faq { max-width: 820px; } 588.ta-faq details { border-top: 1px solid var(--ta-hairline-soft); } 589.ta-faq details:last-child { border-bottom: 1px solid var(--ta-hairline-soft); } 590.ta-faq summary { 591 display: flex; align-items: baseline; gap: 16px; justify-content: space-between; 592 padding: 17px 2px; cursor: pointer; list-style: none; 593 font-size: 15.5px; font-weight: 600; color: var(--ta-navy); line-height: 1.4; user-select: none; 594} 595.ta-faq summary::-webkit-details-marker { display: none; } 596.ta-faq summary .tog { font-family: var(--f-mono); font-size: 16px; color: var(--ta-on-surface-muted); flex-shrink: 0; transition: transform 200ms; line-height: 1; align-self: center; } 597.ta-faq details[open] summary .tog { transform: rotate(45deg); color: var(--ta-primary); } 598.ta-faq .a { padding: 0 40px 20px 2px; font-size: 14.5px; line-height: 1.65; color: var(--ta-on-surface-var); } 599.ta-faq .a a { color: var(--ta-primary); } 600 601/* --------------------------------------------------------------------------- 602 Logo band 603--------------------------------------------------------------------------- */ 604.ta-logoband { background: var(--ta-surface-lowest); border-top: 1px solid var(--ta-outline-neutral); border-bottom: 1px solid var(--ta-outline-neutral); padding: 44px 0; } 605.ta-logoband .row { display: flex; gap: 56px; align-items: center; justify-content: center; flex-wrap: wrap; } 606.ta-logoband img { max-height: 44px; width: auto; max-width: 140px; display: block; } 607.ta-logoband .lbl { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ta-on-surface-muted); text-align: center; margin-bottom: 26px; } 608 609/* --------------------------------------------------------------------------- 610 Pathway rows (homepage) 611--------------------------------------------------------------------------- */ 612.ta-path { 613 display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 48px; align-items: center; 614 border-top: 1px solid var(--ta-hairline); padding: 36px 0 44px; 615} 616.ta-path:last-of-type { border-bottom: 1px solid var(--ta-hairline); } 617.ta-path.flip .ta-path-copy { order: 2; } 618.ta-path.flip .ta-path-media { order: 1; } 619.ta-path-copy { display: flex; flex-direction: column; gap: 13px; align-items: flex-start; } 620.ta-path-step { font-family: var(--f-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ta-primary); } 621.ta-path-step .n { color: var(--ta-on-surface-muted); margin-right: 10px; } 622.ta-path-best { font-family: var(--f-mono); font-size: 12px; color: var(--ta-navy); border-bottom: 1px solid var(--ta-hairline); padding-bottom: 10px; } 623.ta-path h3.title { font-family: var(--f-serif); font-weight: 500; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.15; letter-spacing: -0.015em; color: var(--ta-navy); margin: 0; } 624.ta-path-media { position: relative; } 625 626/* --------------------------------------------------------------------------- 627 Founders / portrait rows (about page) 628--------------------------------------------------------------------------- */ 629.ta-founder { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: center; border-top: 1px solid var(--ta-hairline); padding: 36px 0; } 630.ta-founder.flip { grid-template-columns: 1fr 300px; } 631.ta-founder.flip .pic { order: 2; } 632.ta-founder .pic img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; display: block; } 633.ta-founder blockquote { margin: 0; font-family: var(--f-serif); font-style: italic; font-size: clamp(18px, 1.9vw, 23px); line-height: 1.45; color: var(--ta-navy); } 634.ta-founder .nm { font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); margin-top: 16px; display: block; } 635 636/* Offer rows (about page: courses / bootcamps / enterprise) */ 637.ta-offer { display: grid; grid-template-columns: 1.08fr 0.92fr; gap: 48px; align-items: center; border-top: 1px solid var(--ta-hairline); padding: 36px 0 44px; } 638.ta-offer.flip .copy { order: 2; } 639.ta-offer.flip .media { order: 1; } 640.ta-offer .copy { display: flex; flex-direction: column; gap: 13px; align-items: flex-start; } 641.ta-offer .media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 10px; display: block; border: 1px solid rgba(11,21,56,0.12); } 642 643/* --------------------------------------------------------------------------- 644 Affiliate: tier table 645--------------------------------------------------------------------------- */ 646.ta-tiers { width: 100%; border-collapse: collapse; } 647.ta-tiers th, .ta-tiers td { text-align: left; padding: 16px 18px; vertical-align: top; border-top: 1px solid var(--ta-hairline-soft); font-size: 14px; line-height: 1.55; color: var(--ta-on-surface-var); } 648.ta-tiers thead th { border-top: none; font-family: var(--f-serif); font-size: 19px; font-weight: 600; color: var(--ta-navy); padding-bottom: 6px; } 649.ta-tiers tbody th { font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); width: 150px; } 650.ta-tiers .hl { background: rgba(0,62,199,0.04); } 651.ta-tiers td.hl { border-left: 2px solid var(--ta-primary); } 652 653/* Earnings figures */ 654.ta-fig { font-family: var(--f-serif); font-size: clamp(26px, 2.6vw, 34px); font-weight: 600; color: var(--ta-navy); } 655.ta-fig em { font-style: italic; color: var(--ta-primary); } 656 657/* Referral signup: keep the label above the field and align the button with it. */ 658.ta-affiliate-signup { 659 display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; justify-content: center; 660 width: 100%; max-width: 480px; 661} 662.ta-affiliate-signup .email-field { 663 display: flex; flex-direction: column; gap: 8px; flex: 1 1 220px; min-width: 0; 664 font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; 665 text-transform: uppercase; text-align: left; color: rgba(255,255,255,0.9); 666} 667.ta-affiliate-signup input { 668 width: 100%; min-width: 0; padding: 14px 16px; border-radius: 6px; 669 border: 1.5px solid rgba(255,255,255,0.4); background: rgba(255,255,255,0.06); color: #fff; 670 font-family: var(--f-sans); font-size: 15px; line-height: 1.5; 671} 672.ta-affiliate-signup input::placeholder { color: rgba(255,255,255,0.7); opacity: 1; } 673.ta-affiliate-signup input:focus-visible { outline: 2px solid #fff; outline-offset: 3px; } 674 675/* --------------------------------------------------------------------------- 676 Enterprise pages: at-a-glance card, routes board, evidence, badge, form 677--------------------------------------------------------------------------- */ 678.ta-glance { 679 background: var(--ta-surface-lowest); border: 1px solid var(--ta-navy); 680 border-radius: 10px; padding: 4px 24px 18px; 681 box-shadow: 0 20px 48px -28px rgba(11,21,56,0.35); 682} 683.ta-glance .hd { 684 font-family: var(--f-mono); font-size: 11px; font-weight: 500; 685 letter-spacing: 0.14em; text-transform: uppercase; color: var(--ta-on-surface-muted); 686 padding: 16px 0 12px; border-bottom: 1px solid var(--ta-outline-neutral); 687} 688.ta-glance dl { margin: 0; } 689.ta-glance .row { display: grid; grid-template-columns: 108px 1fr; gap: 0 16px; padding: 12px 0; border-top: 1px dotted var(--ta-hairline-soft); align-items: baseline; } 690.ta-glance .row:first-of-type { border-top: none; } 691.ta-glance dt { font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 692.ta-glance dd { margin: 0; font-size: 14px; line-height: 1.45; color: var(--ta-navy); } 693.ta-glance dd b { font-weight: 600; } 694 695/* Routes board: one row per route, rate-card style */ 696.ta-routes { border-bottom: 1px solid var(--ta-hairline); } 697.ta-route { 698 display: grid; grid-template-columns: 72px 1.15fr 0.95fr 0.85fr; gap: 0 36px; 699 border-top: 1px solid var(--ta-hairline); padding: 28px 0 30px; align-items: start; 700 position: relative; 701} 702.ta-route .ltr { 703 font-family: var(--f-serif); font-style: italic; font-weight: 500; 704 font-size: 44px; line-height: 0.9; color: rgba(11,21,56,0.38); 705}
706.ta-route.rec .ltr { color: var(--ta-primary); } 707.ta-route .name { display: flex; flex-direction: column; gap: 8px; } 708.ta-route .name h3 { margin: 0; } 709.ta-route .name p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); } 710.ta-route .specs { display: flex; flex-direction: column; } 711.ta-route .specs span { display: grid; grid-template-columns: 76px 1fr; gap: 0 12px; padding: 6px 0; font-size: 13px; line-height: 1.45; color: var(--ta-on-surface-var); align-items: baseline; } 712.ta-route .specs i { font-style: normal; font-family: var(--f-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 713.ta-route .bestfor { display: flex; flex-direction: column; gap: 6px; } 714.ta-route .bestfor .k { font-family: var(--f-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-primary); } 715.ta-route .bestfor p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ta-navy); font-weight: 500; } 716.ta-route .bestfor .price { font-family: var(--f-mono); font-size: 11px; color: var(--ta-on-surface-muted); line-height: 1.5; } 717.ta-route.rec { border-top: 2px solid var(--ta-primary); } 718.ta-route.rec::before { 719 content: 'Most teams start here'; position: absolute; top: -1px; right: 0; 720 transform: translateY(-50%); 721 font-family: var(--f-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.09em; 722 text-transform: uppercase; color: #fff; background: var(--ta-primary); 723 padding: 4px 10px; border-radius: 3px; 724} 725.ta-evi { border-top: 1px solid var(--ta-hairline); padding: 18px 0 26px; } 726.ta-evi .ta-fig { display: block; margin-bottom: 8px; } 727.ta-evi p { font-size: 14px; line-height: 1.6; color: var(--ta-on-surface-var); margin: 0; } 728.ta-evi .src { display: block; font-family: var(--f-mono); font-size: 11px; color: var(--ta-on-surface-muted); margin-top: 10px; letter-spacing: 0.02em; } 729.ta-rec { 730 display: inline-block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 731 letter-spacing: 0.09em; text-transform: uppercase; color: #fff; background: var(--ta-primary); 732 padding: 4px 9px; border-radius: 3px; margin-bottom: 12px; 733} 734.ta-build .ta-rec { margin-top: 2px; } 735.ta-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; width: 100%; max-width: 720px; } 736.ta-form .full { grid-column: 1 / -1; } 737.ta-form label { 738 display: flex; flex-direction: column; gap: 7px; 739 font-family: var(--f-mono); font-size: 11px; font-weight: 500; 740 letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); 741} 742.ta-form input, .ta-form select, .ta-form textarea { 743 padding: 12px 14px; border-radius: 6px; border: 1px solid var(--ta-hairline); 744 background: var(--ta-surface-lowest); color: var(--ta-on-surface); 745 font-family: var(--f-sans); font-size: 15px; width: 100%; 746} 747.ta-form textarea { min-height: 110px; resize: vertical; } 748.ta-form input:focus, .ta-form select:focus, .ta-form textarea:focus { 749 outline: 2px solid var(--ta-primary); outline-offset: 1px; border-color: var(--ta-primary); 750} 751.ta-form .consent { 752 flex-direction: row; align-items: center; gap: 10px; 753 font-family: var(--f-sans); font-size: 13.5px; text-transform: none; letter-spacing: 0; 754 color: var(--ta-on-surface-var); 755} 756.ta-form .consent input { width: 16px; height: 16px; accent-color: var(--ta-primary); } 757.ta-form-status { font-family: var(--f-mono); font-size: 12.5px; color: var(--ta-primary); min-height: 18px; } 758 759/* --------------------------------------------------------------------------- 760 Long-form article (essay pages) 761--------------------------------------------------------------------------- */ 762.ta-prose { max-width: 720px; } 763.ta-prose p { font-size: 17px; line-height: 1.75; color: var(--ta-on-surface-var); margin: 0 0 22px; } 764.ta-prose h2 { 765 font-family: var(--f-serif); font-weight: 500; font-size: clamp(24px, 2.6vw, 32px); 766 line-height: 1.2; letter-spacing: -0.015em; color: var(--ta-navy); margin: 52px 0 18px; 767 text-wrap: balance; 768} 769.ta-prose h2 em { font-style: italic; color: var(--ta-primary); } 770.ta-prose h3 { font-family: var(--f-serif); font-weight: 600; font-size: 20px; color: var(--ta-navy); margin: 36px 0 12px; } 771.ta-prose a { color: var(--ta-primary); text-decoration: underline; text-underline-offset: 2px; } 772.ta-prose blockquote { 773 margin: 32px 0; padding: 4px 0 4px 24px; border-left: 2px solid var(--ta-primary); 774 font-family: var(--f-serif); font-style: italic; font-size: 20px; line-height: 1.55; color: var(--ta-navy); 775} 776.ta-prose ul, .ta-prose ol { margin: 0 0 22px; padding-left: 24px; } 777.ta-prose li { font-size: 17px; line-height: 1.7; color: var(--ta-on-surface-var); margin-bottom: 8px; } 778.ta-prose strong { color: var(--ta-navy); } 779.ta-prose table { 780 width: 100%; border-collapse: collapse; margin: 0 0 28px; font-size: 15px; line-height: 1.6; 781} 782.ta-prose th, .ta-prose td { 783 text-align: left; vertical-align: top; padding: 10px 14px 10px 0; 784 border-top: 1px solid var(--ta-hairline-soft); color: var(--ta-on-surface-var); 785} 786.ta-prose th { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 787.ta-prose table strong, .ta-prose td:first-child { color: var(--ta-navy); } 788.ta-prose figure { margin: 36px 0; } 789.ta-prose figure img { border-radius: 10px; border: 1px solid var(--ta-outline-neutral); } 790.ta-prose figcaption { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); margin-top: 10px; } 791.ta-prose .lede-first { font-size: 20px; line-height: 1.6; color: var(--ta-navy); } 792.ta-byline { display: flex; align-items: center; gap: 12px; margin: 20px 0 0; } 793.ta-byline img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; } 794.ta-byline .nm { font-size: 14px; font-weight: 600; color: var(--ta-navy); } 795.ta-byline .rl { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); } 796 797/* --------------------------------------------------------------------------- 798 Footer 799--------------------------------------------------------------------------- */ 800.ta-footer { position: relative; overflow: hidden; background: var(--ta-navy); color: rgba(255,255,255,0.78); padding: 56px 0 32px; } 801.ta-footer .cols { display: grid; grid-template-columns: 1.7fr repeat(5, 1fr); gap: 40px 30px; } 802.ta-footer .brand { max-width: 320px; display: flex; flex-direction: column; gap: 13px; } 803.ta-footer .brand .word { font-family: var(--f-serif); font-size: 20px; font-weight: 600; color: #fff; } 804.ta-footer .brand .word em { font-style: italic; color: #7a93ff; } 805.ta-footer .brand p { font-size: 13px; line-height: 1.6; margin: 0; color: rgba(255,255,255,0.6); } 806.ta-footer .grp h5 { font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 0 0 12px; } 807.ta-footer .grp a { display: block; font-size: 14px; color: rgba(255,255,255,0.82); text-decoration: none; padding: 4px 0; } 808.ta-footer .grp a:hover { color: #a7b8ff; } 809/* Footer newsletter band (site-wide) */
810.ta-footer .newsband, .ta-gfooter .newsband { 811 margin-top: 44px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.14); 812 display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; 813 position: relative; z-index: 1; 814} 815.ta-footer .newsband h4 { font-family: var(--f-serif); font-size: clamp(20px, 2.2vw, 26px); font-weight: 600; color: #fff; margin: 0 0 6px; } 816.ta-footer .newsband h4 em { font-style: italic; color: #7a93ff; } 817.ta-footer .newsband p { margin: 0; font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,0.6); max-width: 620px; } 818.ta-footer .newsband .sub-btn { 819 display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: 8px; 820 background: #fff; color: var(--ta-navy); font-family: var(--f-sans); font-weight: 600; font-size: 15px; 821 text-decoration: none; transition: transform 180ms cubic-bezier(.2,0,0,1), box-shadow 180ms; 822} 823.ta-footer .newsband .sub-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(0,0,0,0.5); } 824 825.ta-footer .legal { 826 margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.14); 827 display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; 828 font-family: var(--f-mono); font-size: 11.5px; color: rgba(255,255,255,0.5); 829} 830 831/* --------------------------------------------------------------------------- 832 Responsive 833--------------------------------------------------------------------------- */ 834@media (max-width: 1023px) { 835 .ta-nav-links, .ta-nav-cta { display: none; } 836 .ta-nav-burger { display: flex; } 837 .ta-hero-grid, .ta-hero-grid.glance-grid { grid-template-columns: 1fr; gap: 36px; } 838 .ta-route { grid-template-columns: 48px 1fr 1fr; } 839 .ta-route .bestfor { grid-column: 2 / -1; margin-top: 14px; } 840 .ta-route .ltr { font-size: 34px; } 841 .ta-cols, .ta-steps, .ta-steps.four { grid-template-columns: 1fr 1fr; } 842 .ta-curr-grid { grid-template-columns: 1fr; } 843 .ta-price-card { position: static; max-width: 460px; } 844 .ta-path, .ta-path.flip, .ta-offer, .ta-offer.flip { grid-template-columns: 1fr; gap: 24px; } 845 .ta-path.flip .ta-path-copy, .ta-offer.flip .copy { order: 1; } 846 .ta-path.flip .ta-path-media, .ta-offer.flip .media { order: 2; } 847 .ta-founder, .ta-founder.flip { grid-template-columns: 1fr; gap: 24px; } 848 .ta-founder.flip .pic { order: 0; } 849 .ta-founder .pic img { max-width: 300px; } 850 .ta-buildrow, .ta-buildrow.flip { grid-template-columns: 1fr; gap: 28px; } 851 .ta-buildrow.flip .media { order: 0; } 852 .ta-buildrow .media img { max-width: 560px; margin: 0 auto; } 853 .ta-tiers { display: block; overflow-x: auto; } 854 .ta-footer .cols { grid-template-columns: repeat(3, 1fr); } 855 .ta-footer .brand { grid-column: 1 / -1; } 856} 857@media (max-width: 719px) { 858 .ta-tiers th, .ta-tiers td { padding: 12px 10px; font-size: 13px; } 859 .ta-tiers tbody th { width: 92px; } 860 .ta-tiers thead th { font-size: 16px; } 861 .ta-form { grid-template-columns: 1fr; } 862 .ta-form input, .ta-form select, .ta-form textarea, .ta-affiliate-signup input { font-size: 16px; } 863 .ta-form .ta-btn { width: 100%; } 864 /* Tier table -> stacked tier cards */ 865 .ta-tiers.stack, .ta-tiers.stack tbody, .ta-tiers.stack tr, .ta-tiers.stack th, .ta-tiers.stack td { display: block; width: 100%; } 866 .ta-tiers.stack thead { display: none; } 867 .ta-tiers.stack tbody tr { border-top: 1px solid var(--ta-hairline); padding: 6px 0 16px; } 868 .ta-tiers.stack tbody th { width: 100%; border-top: none; padding: 14px 0 2px; } 869 .ta-tiers.stack tbody td { border-top: none; padding: 5px 0; } 870 .ta-tiers.stack tbody td::before { 871 content: attr(data-tier); display: block; 872 font-family: var(--f-mono); font-size: 10px; font-weight: 500; 873 letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-primary); margin-bottom: 1px; 874 } 875 .ta-tiers.stack td.hl { border-left: 2px solid var(--ta-primary); padding-left: 10px; background: rgba(0,62,199,0.04); } 876 /* Dark-band benefit lists stack; separators hidden */ 877 .ta-band .bullets { flex-direction: column; gap: 7px; } 878 .ta-band .bullets .sep { display: none; } 879 /* Syllabus accordion: lesson count drops under the title */ 880 .ta-syl summary { display: grid; grid-template-columns: 26px 1fr 18px; gap: 2px 18px; } 881 .ta-syl .idx { grid-row: 1; grid-column: 1; } 882 .ta-syl .t { grid-row: 1; grid-column: 2; } 883 .ta-syl .tog { grid-row: 1; grid-column: 3; } 884 .ta-syl .ct { grid-row: 2; grid-column: 2; } 885 /* Dark-band inline forms */ 886 .ta-band form .ta-btn { width: 100%; } 887} 888@media (max-width: 719px) { 889 .ta-section { padding: 52px 0; } 890 .ta-hero { padding: 44px 0 52px; } 891 .ta-section-head { margin-bottom: 28px; } 892 .ta-cols, .ta-cols.two, .ta-steps, .ta-steps.four, .ta-steps.two, .ta-fits { grid-template-columns: 1fr; } 893 .ta-route { grid-template-columns: 40px 1fr; } 894 .ta-route .specs, .ta-route .bestfor { grid-column: 2 / -1; margin-top: 12px; } 895 .ta-glance { padding: 2px 18px 14px; } 896 .ta-hero-stats { gap: 12px; } 897 .ta-stat .num { font-size: 21px; } 898 .ta-band { padding: 52px 0; } 899 .ta-hero-ctas { width: 100%; } 900 .ta-hero-ctas .ta-btn { width: 100%; } 901 .ta-syl ol { padding-left: 0; } 902 .ta-faq .a { padding-right: 8px; } 903 .ta-footer .cols { grid-template-columns: 1fr 1fr; } 904} 905 906/* --------------------------------------------------------------------------- 907 Mentorship page components (ta-ment-*) 908 New classes only; token + idiom reuse from shared.css. Sub-parts (.hd, .k, 909 .meta, .txt, ...) are scoped under their prefixed parent, matching the
910 existing .ta-glance/.ta-route convention. 911--------------------------------------------------------------------------- */ 912 913/* Cost / feature pill: small mono chip on comparison and offer cards */ 914.ta-ment-pill { 915 display: inline-block; font-family: var(--f-mono); 916 font-size: 10.5px; font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase; 917 color: var(--ta-on-surface-var); border: 1px solid var(--ta-hairline); 918 border-radius: 999px; padding: 4px 11px 3px; white-space: nowrap; 919} 920.ta-ment-pill-blue { color: var(--ta-primary); border-color: var(--ta-primary); } 921 922/* Title + pill head-row inside cells */ 923.ta-ment-hrow { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; margin: 0 0 10px; } 924.ta-ment-hrow .ta-h3 { margin: 0; } 925/* Stacked variant for 3-across rows: pill under the title so card heads stay 926 the same height and the paragraphs below start on one line. */ 927.ta-ment-hrow-stack { flex-direction: column; align-items: flex-start; gap: 7px; } 928 929/* 4-across variant of .ta-cols (inherits 2-col at 1023px, 1-col at 719px) */ 930@media (min-width: 1024px) { 931 .ta-ment-cols-4 { grid-template-columns: repeat(4, 1fr); gap: 0 30px; } 932} 933 934/* Full-width "Towards AI Mentorship" row under the comparison grid */ 935.ta-ment-us { 936 display: grid; grid-template-columns: 1fr auto; gap: 6px 56px; align-items: center; 937 border-top: 2px solid var(--ta-primary); margin-top: 40px; padding: 26px 0 30px; 938} 939@media (max-width: 719px) { 940 .ta-ment-us { grid-template-columns: 1fr; gap: 0; } 941 .ta-ment-us .ta-btn { width: 100%; margin-top: 18px; } 942} 943 944/* Avatar: photo or initials monogram (roster + thread) */ 945.ta-ment-avatar { 946 display: inline-flex; align-items: center; justify-content: center; 947 width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; overflow: hidden; 948 border: 1px solid var(--ta-hairline); background: var(--ta-surface-lowest); 949 font-family: var(--f-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.05em; 950 color: var(--ta-navy); user-select: none; 951} 952.ta-ment-avatar img { width: 100%; height: 100%; object-fit: cover; } 953 954/* Engineer roster cells (layered on .ta-cell) */ 955.ta-ment-eng .ta-ment-avatar { margin-bottom: 14px; } 956.ta-ment-eng h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: var(--ta-navy); margin: 0 0 3px; } 957.ta-ment-eng .rl { 958 display: block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 959 letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); 960 line-height: 1.55; margin: 0 0 10px; 961} 962.ta-ment-eng p { font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); margin: 0; } 963@media (max-width: 719px) { 964 .ta-ment-eng { display: grid; grid-template-columns: 52px 1fr; gap: 2px 14px; align-items: center; } 965 .ta-ment-eng .ta-ment-avatar { grid-row: 1 / 3; margin-bottom: 0; } 966 .ta-ment-eng h3 { grid-column: 2; align-self: end; margin: 0; } 967 .ta-ment-eng .rl { grid-column: 2; margin: 0; } 968 .ta-ment-eng p { grid-column: 1 / -1; margin-top: 10px; } 969 .ta-ment-eng-more p { grid-column: 2; grid-row: 1 / 3; margin-top: 0; align-self: center; } 970} 971 972/* Members' channel thread (simulated chat interface; frame like the glance box) */ 973.ta-ment-thread { 974 max-width: 780px; margin: 48px auto 0; 975 background: var(--ta-surface-lowest); border: 1px solid var(--ta-navy); border-radius: 10px; 976 box-shadow: 0 20px 48px -28px rgba(11,21,56,0.35); overflow: hidden; 977 transition: box-shadow 220ms; 978} 979.ta-ment-thread:hover { box-shadow: 0 26px 56px -26px rgba(11,21,56,0.4); } 980.ta-ment-thread .hd { 981 font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; 982 text-transform: uppercase; color: var(--ta-on-surface-muted); 983 padding: 14px 22px; border-bottom: 1px solid var(--ta-outline-neutral); background: var(--ta-surface); 984} 985.ta-ment-thread .scroll { max-height: 560px; overflow-y: auto; padding: 6px 22px 18px; scrollbar-width: thin; } 986.ta-ment-thread .scroll:focus-visible { outline: 2px solid var(--ta-primary); outline-offset: -2px; } 987.ta-ment-msg { display: grid; grid-template-columns: 30px 1fr; gap: 0 14px; padding: 16px 0 6px; } 988.ta-ment-msg + .ta-ment-msg { border-top: 1px dotted var(--ta-hairline-soft); } 989.ta-ment-msg .ta-ment-avatar { width: 30px; height: 30px; font-size: 10px; margin-top: 3px; } 990.ta-ment-msg .meta { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; } 991.ta-ment-msg .meta .nm { font-size: 13.5px; font-weight: 600; color: var(--ta-navy); } 992.ta-ment-msg .meta .ts { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.04em; color: var(--ta-on-surface-muted); } 993.ta-ment-msg p { font-size: 14px; line-height: 1.62; color: var(--ta-on-surface-var); margin: 6px 0 10px; } 994.ta-ment-msg ol { margin: 0 0 10px; padding-left: 22px; } 995.ta-ment-msg ol li { font-size: 14px; line-height: 1.62; color: var(--ta-on-surface-var); padding: 3px 0; } 996.ta-ment-msg ol li::marker { font-family: var(--f-mono); font-size: 12px; color: var(--ta-primary); } 997.ta-ment-msg-mentor { background: rgba(0,62,199,0.035); border-left: 2px solid var(--ta-primary); margin: 0 -22px; padding: 16px 22px 6px; } 998.ta-ment-msg-mentor .ta-ment-avatar { border-color: var(--ta-primary); color: var(--ta-primary); } 999@media (max-width: 719px) { 1000 .ta-ment-thread { margin-top: 36px; } 1001 .ta-ment-thread .hd { padding: 12px 16px; } 1002 .ta-ment-thread .scroll { max-height: 540px; padding: 2px 16px 14px; } 1003 .ta-ment-msg-mentor { margin: 0 -16px; padding: 16px 16px 6px; } 1004 .ta-ment-msg p, .ta-ment-msg ol li { font-size: 13.5px; } 1005} 1006 1007/* Centered section closer: serif payoff line + CTA */ 1008.ta-ment-secta { margin-top: 48px; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; } 1009.ta-ment-secta .ta-fig { max-width: 760px; text-wrap: balance; margin: 0; } 1010.ta-ment-secta .ta-lede { max-width: 560px; } 1011 1012/* Quiet micro-link under section CTAs */ 1013.ta-ment-quiet { 1014 font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-muted); 1015 text-decoration: none; border-bottom: 1px dotted var(--ta-hairline); padding-bottom: 2px; 1016 transition: color 160ms, border-color 160ms; 1017} 1018.ta-ment-quiet:hover { color: var(--ta-primary); border-color: var(--ta-primary); } 1019 1020/* Offer blocks (inside "Everything inside the mentorship") */ 1021.ta-ment-block { border-top: 1px solid var(--ta-hairline); padding-top: 36px; } 1022.ta-ment-block + .ta-ment-block { margin-top: 56px; } 1023.ta-ment-block .ta-eyebrow { margin-bottom: 16px; } 1024.ta-ment-block .ta-cols { margin-top: 26px; } 1025.ta-ment-h3 { 1026 font-family: var(--f-serif); font-weight: 500; font-size: clamp(23px, 2.4vw, 31px); 1027 line-height: 1.16; letter-spacing: -0.015em; color: var(--ta-navy); margin: 0 0 14px; text-wrap: balance; 1028} 1029.ta-ment-h3 em { font-style: italic; color: var(--ta-primary); font-weight: 500; } 1030.ta-ment-offer-grid { display: grid; grid-template-columns: 0.98fr 1.02fr; gap: 0 64px; align-items: start; } 1031@media (max-width: 1023px) { .ta-ment-offer-grid { grid-template-columns: 1fr; gap: 28px 0; } } 1032.ta-ment-caption { font-family: var(--f-mono); font-size: 12px; line-height: 1.6; color: var(--ta-on-surface-muted); margin: 18px 0 0; } 1033 1034/* Sample-questions strip */ 1035.ta-ment-samples { 1036 border-top: 1px dotted var(--ta-hairline); margin-top: 8px; padding-top: 20px; 1037 font-family: var(--f-serif); font-style: italic; font-size: 16.5px; line-height: 1.75; 1038 color: var(--ta-navy); text-wrap: pretty; 1039} 1040.ta-ment-samples .sep { color: var(--ta-primary); font-style: normal; padding: 0 10px; } 1041@media (max-width: 719px) { .ta-ment-samples { font-size: 15px; } } 1042 1043/* Earned pathways strip */ 1044.ta-ment-pathways { display: grid; grid-template-columns: 200px 1fr; gap: 10px 56px; border-top: 1px solid var(--ta-hairline); margin-top: 12px; padding: 22px 0 4px; } 1045.ta-ment-pathways .k { font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-primary); padding-top: 3px; } 1046.ta-ment-pathways p { font-size: 14.5px; line-height: 1.65; color: var(--ta-on-surface-var); margin: 0; max-width: 74ch; } 1047@media (max-width: 719px) { .ta-ment-pathways { grid-template-columns: 1fr; gap: 8px; } } 1048 1049/* Who it's for: doors (left) + month card (right) */ 1050.ta-ment-who { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 0 64px; align-items: start; } 1051@media (max-width: 1023px) { .ta-ment-who { grid-template-columns: 1fr; gap: 40px 0; } } 1052.ta-ment-door { display: block; padding: 20px 0 24px; } 1053.ta-ment-door h3 { font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ta-navy); margin: 0 0 8px; } 1054.ta-ment-door p { font-size: 14.5px; line-height: 1.6; color: var(--ta-on-surface-var); margin: 0; } 1055@media (min-width: 1024px) { .ta-ment-month { position: sticky; top: 92px; } } 1056 1057/* Small centered mono footer inside glance cards (hero card + month card) */ 1058.ta-ment-glance-note { 1059 font-family: var(--f-mono); font-size: 11px; line-height: 1.55; color: var(--ta-on-surface-muted); 1060 text-align: center; border-top: 1px dotted var(--ta-hairline-soft); margin-top: 4px; padding-top: 13px; 1061} 1062 1063/* Hero buy card: billing toggle, price, cadence rows, checkout CTA. 1064 Yearly is the page-wide default; the toggle rewrites every .js-buy CTA. */ 1065.ta-ment-buy .ta-btn { width: 100%; margin: 16px 0 14px; } 1066.ta-ment-buy .price { padding: 14px 0 12px; } 1067.ta-ment-buy .row { grid-template-columns: 84px 1fr; padding: 10px 0; } 1068.ta-ment-buy dd { font-size: 13.5px; } 1069.ta-ment-buy .equiv, .ta-ment-price .equiv { 1070 font-family: var(--f-mono); font-size: 11.5px; line-height: 1.5; 1071 color: var(--ta-on-surface-muted); 1072} 1073.ta-ment-buy .equiv { margin: 6px 0 0; } 1074.ta-ment-price .equiv { margin: 0 0 12px; } 1075.ta-ment-toggle { 1076 display: grid; grid-template-columns: 1fr 1fr; gap: 4px; 1077 border: 1px solid var(--ta-hairline); border-radius: 8px; padding: 4px; 1078 margin-top: 14px; background: var(--ta-surface-low); 1079} 1080.ta-ment-toggle button { 1081 font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.05em; 1082 text-transform: uppercase; color: var(--ta-on-surface-var); 1083 background: transparent; border: 0; border-radius: 5px; padding: 8px 6px; cursor: pointer; 1084} 1085.ta-ment-toggle button.on { background: var(--ta-navy); color: #fff; } 1086.ta-ment-toggle button:focus-visible { outline: 2px solid var(--ta-primary); outline-offset: 2px; } 1087 1088/* Value-stack table: wider row labels on desktop (stack rules still win <=719px) */ 1089.ta-ment-stack tbody th { width: 230px; } 1090 1091/* Anchor payoff line under the value table */ 1092.ta-ment-anchor { text-align: center; max-width: 900px; margin: 38px auto 0; text-wrap: balance; } 1093 1094/* Pricing pair (layered on .ta-glance for the sanctioned box treatment) */ 1095.ta-ment-pricing { margin-top: 56px; } 1096.ta-ment-pricing .ta-ment-h3 { text-align: center; margin-bottom: 26px; } 1097.ta-ment-prices { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 860px; margin: 0 auto; } 1098@media (max-width: 719px) { .ta-ment-prices { grid-template-columns: 1fr; } } 1099.ta-ment-price { padding: 4px 24px 22px; display: flex; flex-direction: column; } 1100.ta-ment-price .hd { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; } 1101.ta-ment-price .ta-price-row { margin: 16px 0 6px; } 1102.ta-ment-price .blurb { font-size: 13.5px; line-height: 1.6; color: var(--ta-on-surface-var); margin: 0 0 18px; } 1103.ta-ment-price .ta-btn { width: 100%; margin-top: auto; } 1104 1105/* Visually hidden (screen-reader-only) text */ 1106.sr-only { 1107 position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; 1108 overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; 1109} 1110 1111/* "We win" comparison table (green = Towards AI column, red = the gaps). 1112 Cells are marks only (check / tilde / cross); the detail lives in the 1113 .ta-ment-vsnote body copy below the table. */ 1114.ta-ment-vswrap { margin-top: 4px; overflow-x: auto; -webkit-overflow-scrolling: touch; } 1115.ta-ment-vswrap:focus-visible { outline: 2px solid var(--ta-primary); outline-offset: 2px; } 1116.ta-ment-vs { 1117 width: 100%; min-width: 640px; border-collapse: collapse; 1118 --ta-win: #0e7a3d; --ta-win-bg: rgba(14, 122, 61, 0.055);
1118 --ta-lose: #b3261e; 1119} 1120.ta-ment-vs th, .ta-ment-vs td { 1121 text-align: left; vertical-align: top; padding: 15px 16px; 1122 border-top: 1px solid var(--ta-hairline-soft); 1123 font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); 1124} 1125.ta-ment-vs td, .ta-ment-vs thead th { text-align: center; vertical-align: middle; } 1126.ta-ment-vs thead th:first-child { text-align: left; } 1127.ta-ment-vs thead th { border-top: none; font-family: var(--f-serif); font-size: 16.5px; font-weight: 600; color: var(--ta-navy); padding-bottom: 12px; } 1128.ta-ment-vs thead th .sub { 1129 display: block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1130 letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); margin-top: 5px; 1131} 1132.ta-ment-vs tbody th { 1133 font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.08em; 1134 text-transform: uppercase; color: var(--ta-on-surface-muted); width: 148px; padding-left: 0; 1135} 1136.ta-ment-vs .us { background: var(--ta-win-bg); } 1137.ta-ment-vs td.us { border-left: 2px solid var(--ta-win); font-weight: 500; color: var(--ta-navy); } 1138.ta-ment-vs thead th.us { border-left: 2px solid var(--ta-win); color: var(--ta-win); } 1139.ta-ment-vs thead th.us .sub { color: var(--ta-win); } 1140.ta-ment-vs .yes { color: var(--ta-win); font-weight: 700; font-size: 15px; } 1141.ta-ment-vs .no { color: var(--ta-lose); font-weight: 700; font-size: 15px; } 1142.ta-ment-vs .half { color: #b98900; font-size: 15px; } 1143.ta-ment-vs td.us .yes { margin-right: 7px; } 1144.ta-ment-legend { 1145 display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: center; 1146 font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.07em; 1147 text-transform: uppercase; color: var(--ta-on-surface-muted); margin: 18px 0 0; 1148} 1149.ta-ment-legend .l-yes { color: #0e7a3d; } 1150.ta-ment-legend .l-half { color: #b98900; } 1151.ta-ment-legend .l-no { color: #b3261e; } 1152.ta-ment-vsnote { 1153 max-width: 74ch; margin: 22px auto 0; text-align: center; 1154 font-size: 14.5px; line-height: 1.65; color: var(--ta-on-surface-var); 1155} 1156 1157/* Mobile comparison summary (scorecard): shown under 720px in place of the 1158 matrix. Order: yearly price first, the included list, then one scored row 1159 per market option with the mentorship highlighted at 7/7. */ 1160.ta-ment-vsm { display: none; } 1161.ta-ment-vsm .price { margin: 4px 0 26px; } 1162.ta-ment-vsm .price .now { color: var(--ta-primary); } 1163.ta-ment-vsm .price .sub { 1164 font-family: var(--f-mono); font-size: 11px; line-height: 1.55; 1165 color: var(--ta-on-surface-muted); margin: 7px 0 0; 1166} 1167.ta-ment-vsm .k { 1168 display: block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1169 letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-on-surface-muted); 1170 padding-bottom: 10px; border-bottom: 1px solid var(--ta-hairline); 1171} 1172.ta-ment-vsm .inc ul { list-style: none; margin: 0 0 30px; padding: 0; } 1173.ta-ment-vsm .inc li { 1174 position: relative; padding: 8px 0 8px 25px; font-size: 14px; line-height: 1.5; 1175 color: var(--ta-navy); border-top: 1px dotted var(--ta-hairline-soft); 1176} 1177.ta-ment-vsm .inc li:first-child { border-top: none; } 1178.ta-ment-vsm .inc li::before { 1179 content: '\2713'; position: absolute; left: 1px; top: 7px; 1180 color: #0e7a3d; font-weight: 700; font-size: 14px; 1181} 1182.ta-ment-vsm .board .row { 1183 display: grid; grid-template-columns: 1fr auto auto; gap: 0 10px; align-items: center; 1184 padding: 12px 0; border-top: 1px dotted var(--ta-hairline-soft); 1185} 1186.ta-ment-vsm .nm { font-size: 13.5px; font-weight: 600; color: var(--ta-navy); line-height: 1.35; } 1187.ta-ment-vsm .nm .pr { 1188 display: block; font-family: var(--f-mono); font-size: 9.5px; font-weight: 500; 1189 letter-spacing: 0.05em; text-transform: uppercase; color: var(--ta-on-surface-muted); margin-top: 3px; 1190} 1191.ta-ment-vsm .sqs { display: flex; gap: 3px; } 1192.ta-ment-vsm .sqs i, .ta-ment-vsm .lg i { 1193 width: 13px; height: 13px; display: inline-block; border-radius: 2.5px; 1194 border: 1px solid rgba(11,21,56,0.3); background: transparent; 1195} 1196.ta-ment-vsm i.f { background: #0e7a3d; border-color: #0e7a3d; } 1197.ta-ment-vsm i.h { background: linear-gradient(90deg, #b98900 50%, rgba(185,137,0,0.12) 50%); border-color: #b98900; } 1198.ta-ment-vsm .sc { 1199 font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; 1200 color: var(--ta-on-surface-var); min-width: 30px; text-align: right; 1201} 1202.ta-ment-vsm .board .row.us { 1203 background: rgba(14,122,61,0.055); border: 1px solid rgba(14,122,61,0.35); 1204 border-radius: 8px; padding: 12px; margin: 14px 0 4px; 1205} 1206.ta-ment-vsm .board .row.us + .row { border-top: none; } 1207.ta-ment-vsm .board .row.us .nm { font-size: 14.5px; } 1208.ta-ment-vsm .board .row.us .nm .pr, .ta-ment-vsm .board .row.us .sc { color: #0e7a3d; } 1209.ta-ment-vsm .lg { 1210 display: flex; flex-wrap: wrap; gap: 6px 16px; 1211 font-family: var(--f-mono); font-size: 9.5px; letter-spacing: 0.06em; 1212 text-transform: uppercase; color: var(--ta-on-surface-muted); margin: 14px 0 0; 1213} 1214.ta-ment-vsm .lg span { display: inline-flex; align-items: center; gap: 6px; } 1215.ta-ment-vsm .lg i { width: 11px; height: 11px; } 1216.ta-ment-vsm .sum { 1217 font-family: var(--f-serif); font-size: 18px; line-height: 1.5; 1218 color: var(--ta-navy); margin: 28px 0 0; text-wrap: balance; 1219} 1220.ta-ment-vsm .sum em { font-style: italic; color: var(--ta-primary); font-weight: 500; } 1221.ta-ment-swipe { display: none; } 1222@media (max-width: 980px) { 1223 .ta-ment-swipe { 1224 display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.08em; 1225 text-transform: uppercase; color: var(--ta-on-surface-muted); margin: 10px 0 0; 1226 } 1227} 1228/* Below 720px the matrix is replaced wholesale by the .ta-ment-vsm scorecard: 1229 a 5-column table cannot be readable at 375px, so mobile gets the summary. */ 1230@media (max-width: 719px) { 1231 .ta-ment-vswrap, .ta-ment-swipe, .ta-ment-legend, .ta-ment-vsnote { display: none; } 1232 .ta-ment-vsm { display: block; } 1233} 1234 1235/* Engineer roster photo cards (layered on .ta-cell) */ 1236.ta-ment-person .ph { 1237 width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; 1238 border: 1px solid var(--ta-outline-neutral); background: var(--ta-surface-lowest); margin: 2px 0 16px; 1239} 1240.ta-ment-person h3 { font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ta-navy); margin: 0 0 4px; } 1241.ta-ment-person .rl { 1242 display: block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1243 letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-primary); 1244 line-height: 1.55; margin: 0 0 10px; 1245} 1246.ta-ment-person p { font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); margin: 0; } 1247 1248/* Full-width "plus N more" strip under the roster */ 1249.ta-ment-more { 1250 border-top: 1px solid var(--ta-hairline); margin-top: 6px; padding-top: 18px; 1251 font-family: var(--f-mono); font-size: 12px; line-height: 1.7; color: var(--ta-on-surface-muted); 1252} 1253 1254/* Thread header: channel name left, provenance tag right; inline role in metas */ 1255.ta-ment-thread .hd { display: flex; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; } 1256.ta-ment-thread .hd .tag { color: var(--ta-primary); letter-spacing: 0.1em; } 1257.ta-ment-msg .meta .rl { 1258 font-family: var(--f-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.06em; 1259 text-transform: uppercase; color: var(--ta-primary); 1260} 1261 1262/* Bundle and Products catalog cards (layered on .ta-cell) */ 1263a.ta-cell.ta-prod { display: flex; flex-direction: column; text-decoration: none; color: inherit; } 1264.ta-prod .cover { 1265 width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; 1266 border: 1px solid var(--ta-outline-neutral); background: var(--ta-surface-lowest); margin: 2px 0 18px; 1267} 1268.ta-prod .ta-h3 { margin-bottom: 8px; } 1269.ta-prod .rate { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; } 1270.ta-prod .rate .rt { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.05em; color: var(--ta-on-surface-muted); } 1271.ta-prod .ta-body { margin: 0 0 18px; } 1272.ta-prod .prow { 1273 margin-top: auto; display: flex; align-items: baseline; justify-content: space-between; 1274 gap: 12px; border-top: 1px dotted var(--ta-hairline-soft); padding-top: 14px; 1275} 1276.ta-prod .price { font-family: var(--f-serif); font-size: 22px; font-weight: 600; color: var(--ta-navy); } 1277.ta-prod .price .was { 1278 font-family: var(--f-mono); font-size: 13px; font-weight: 400; 1279 color: var(--ta-on-surface-muted); text-decoration: line-through; margin-right: 8px; 1280} 1281.ta-prod .price .per { font-family: var(--f-mono); font-size: 12px; font-weight: 400; color: var(--ta-on-surface-muted); } 1282.ta-prod .go { 1283 font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; 1284 text-transform: uppercase; color: var(--ta-primary); white-space: nowrap; transition: transform 180ms; 1285} 1286.ta-prod:hover .go { transform: translateX(4px); } 1287 1288/* Mentorship feature row on the catalog page */ 1289.ta-prod-feature { 1290 display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 28px 64px; align-items: center; 1291 border-top: 2px solid var(--ta-navy); padding-top: 34px; 1292} 1293.ta-prod-feature img { width: 100%; display: block; border: 1px solid var(--ta-outline-neutral); } 1294.ta-prod-feature .kick { 1295 display: block; font-family: var(--f-mono); font-size: 11px; font-weight: 500; 1296 letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-primary); margin-bottom: 14px; 1297} 1298.ta-prod-feature .prow { display: flex; align-items: center; gap: 14px 26px; flex-wrap: wrap; margin-top: 24px; } 1299.ta-prod-feature .price { font-family: var(--f-serif); font-size: 30px; font-weight: 600; color: var(--ta-navy); } 1300.ta-prod-feature .price .per { font-family: var(--f-mono); font-size: 13px; font-weight: 400; color: var(--ta-on-surface-muted); } 1301@media (max-width: 1023px) { 1302 .ta-prod-feature { grid-template-columns: 1fr; } 1303 .ta-prod-feature img { order: -1; max-width: 520px; } 1304} 1305 1306/* ============================================================================ 1307 TX delta: components added for the 2026 funnel revision (namespaced .tx-) 1308 Built on the existing Towards AI design tokens; safe alongside ta-* styles. 1309 ============================================================================ */ 1310
1311/* ---- step badge (hero) ---- */ 1312.tx-badge { 1313 display: inline-flex; align-items: center; gap: 8px; 1314 font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; 1315 letter-spacing: 0.14em; text-transform: uppercase; 1316 color: #fff; background: var(--ta-primary); 1317 padding: 6px 12px; border-radius: 999px; 1318} 1319.tx-badge .of { opacity: 0.7; font-weight: 400; } 1320.tx-badge.ghost { background: transparent; color: var(--ta-primary); border: 1px solid var(--ta-primary); } 1321 1322/* ---- the two-step journey ---- */ 1323.tx-journey { display: grid; grid-template-columns: 1fr 56px 1fr; align-items: stretch; gap: 0; } 1324.tx-jstep { 1325 background: var(--ta-surface-lowest); border: 1px solid var(--ta-outline-neutral); 1326 border-radius: 12px; padding: 28px 28px 24px; position: relative; 1327 display: flex; flex-direction: column; gap: 12px; 1328 transition: transform 220ms cubic-bezier(.2,0,0,1), box-shadow 220ms, border-color 200ms; 1329} 1330.tx-jstep:hover { transform: translateY(-3px); box-shadow: 0 26px 56px -30px rgba(11,21,56,0.35); border-color: var(--ta-hairline); } 1331.tx-jstep.here { border: 1.5px solid var(--ta-primary); box-shadow: 0 22px 48px -28px rgba(0,62,199,0.35); } 1332.tx-jstep .stepno { 1333 font-family: var(--f-mono); font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em; 1334 text-transform: uppercase; color: var(--ta-primary); display: flex; align-items: center; gap: 10px; 1335} 1336.tx-jstep .stepno .here-flag { 1337 background: var(--ta-primary); color: #fff; border-radius: 999px; padding: 3px 10px; 1338 font-size: 10.5px; letter-spacing: 0.1em; 1339} 1340.tx-jstep h3 { margin: 0; } 1341.tx-jstep .who { font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-muted); } 1342.tx-jstep ul { margin: 0; padding: 0 0 0 18px; display: flex; flex-direction: column; gap: 6px; } 1343.tx-jstep ul li { font-size: 14.5px; line-height: 1.5; color: var(--ta-on-surface-var); } 1344.tx-jstep .jfoot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--ta-outline-neutral); display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; } 1345.tx-jstep .jfoot .fmt { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); } 1346.tx-jlink { font-size: 14px; font-weight: 600; color: var(--ta-primary); text-decoration: none; white-space: nowrap; } 1347.tx-jlink:hover { text-decoration: underline; text-underline-offset: 3px; } 1348.tx-jarrow { display: flex; align-items: center; justify-content: center; color: var(--ta-primary); } 1349.tx-jarrow svg { display: block; } 1350.tx-jafter { 1351 margin-top: 18px; border: 1px dashed var(--ta-hairline-soft); border-radius: 10px; 1352 padding: 16px 22px; display: flex; gap: 12px 28px; align-items: center; flex-wrap: wrap; 1353 background: rgba(0,62,199,0.02); 1354} 1355.tx-jafter .k { font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 1356.tx-jafter p { margin: 0; font-size: 14px; color: var(--ta-on-surface-var); } 1357 1358/* ---- offer cards ---- */ 1359.tx-offers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; } 1360.tx-offers.three { grid-template-columns: repeat(3, 1fr); } 1361.tx-offer { 1362 background: var(--ta-surface-lowest); border: 1px solid var(--ta-outline-neutral); 1363 border-radius: 12px; padding: 24px 24px 20px; display: flex; flex-direction: column; gap: 12px; 1364 position: relative; transition: transform 220ms cubic-bezier(.2,0,0,1), box-shadow 220ms, border-color 200ms; 1365} 1366.tx-offer:hover { transform: translateY(-3px); box-shadow: 0 26px 56px -30px rgba(11,21,56,0.35); } 1367.tx-offer .tag { 1368 font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.13em; 1369 text-transform: uppercase; color: var(--ta-on-surface-muted); 1370 display: flex; justify-content: space-between; align-items: center; gap: 10px; 1371} 1372.tx-offer .tag .flag { color: #fff; background: var(--ta-navy); border-radius: 999px; padding: 3px 10px; font-size: 10.5px; } 1373.tx-offer.start { border: 1.5px solid var(--ta-primary); } 1374.tx-offer.start .tag .flag { background: var(--ta-primary); } 1375.tx-offer.rec .tag .flag { background: var(--ta-gold); } 1376.tx-offer h3 { margin: 0; } 1377.tx-offer .desc { font-size: 14.5px; line-height: 1.55; color: var(--ta-on-surface-var); margin: 0; }
1378.tx-offer .specs { display: flex; flex-direction: column; gap: 7px; padding: 12px 0; border-top: 1px solid var(--ta-outline-neutral); border-bottom: 1px solid var(--ta-outline-neutral); } 1379.tx-offer .specs span { font-size: 13.5px; color: var(--ta-on-surface-var); display: flex; gap: 10px; } 1380.tx-offer .specs i { font-style: normal; font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); min-width: 86px; flex-shrink: 0; padding-top: 2px; } 1381.tx-offer .foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; } 1382.tx-offer .price { font-family: var(--f-mono); font-size: 12px; color: var(--ta-on-surface-muted); } 1383.tx-offer .go { font-size: 14px; font-weight: 600; color: var(--ta-primary); text-decoration: none; } 1384.tx-offer .go:hover { text-decoration: underline; text-underline-offset: 3px; } 1385 1386/* ---- case studies ---- */ 1387.tx-cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } 1388.tx-case { 1389 border-top: 1px solid var(--ta-hairline); padding: 18px 4px 6px; 1390 display: flex; flex-direction: column; gap: 10px; position: relative; 1391 transition: transform 220ms cubic-bezier(.2,0,0,1), border-color 200ms; 1392} 1393.tx-case:hover { transform: translateY(-3px); border-top-color: var(--ta-primary); } 1394.tx-case .cl { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; } 1395.tx-case .cl .nm { font-family: var(--f-serif); font-weight: 600; font-size: 18px; color: var(--ta-navy); } 1396.tx-case .cl .sec { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 1397.tx-case p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ta-on-surface-var); } 1398.tx-case .out { font-size: 13.5px; color: var(--ta-navy); border-left: 2px solid var(--ta-primary); padding-left: 10px; } 1399.tx-case .out b { font-weight: 600; } 1400 1401/* ---- instructor strip ---- */ 1402.tx-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; } 1403.tx-person { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--ta-hairline); padding-top: 14px; transition: transform 220ms cubic-bezier(.2,0,0,1), border-color 200ms; } 1404.tx-person:hover { transform: translateY(-3px); border-top-color: var(--ta-primary); } 1405.tx-person .av { 1406 width: 44px; height: 44px; border-radius: 50%; background: var(--ta-navy); color: #fff; 1407 display: flex; align-items: center; justify-content: center; 1408 font-family: var(--f-serif); font-size: 16px; font-weight: 600; 1409} 1410.tx-person .nm { font-weight: 600; font-size: 15px; color: var(--ta-navy); } 1411.tx-person .rl { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--ta-primary); } 1412.tx-person p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ta-on-surface-var); } 1413 1414/* ---- numbers band ---- */ 1415.tx-numbers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; } 1416.tx-num { display: flex; flex-direction: column; gap: 4px; border-left: 1px solid var(--ta-hairline-soft); padding-left: 16px; } 1417.tx-num .n { font-family: var(--f-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 600; color: var(--ta-navy); line-height: 1; } 1418.tx-num .l { font-family: var(--f-mono); font-size: 11.5px; line-height: 1.5; color: var(--ta-on-surface-var); } 1419.tx-numbers.on-dark .tx-num { border-left-color: rgba(255,255,255,0.22); } 1420.tx-numbers.on-dark .n { color: #fff; } 1421.tx-numbers.on-dark .l { color: rgba(255,255,255,0.72); } 1422 1423/* ---- evidence cards (self-contained twin of ta-evi) ---- */ 1424.tx-evi { border-top: 1px solid var(--ta-hairline); padding: 18px 4px 8px; display: flex; flex-direction: column; gap: 10px; transition: transform 220ms cubic-bezier(.2,0,0,1), border-color 200ms; } 1425.tx-evi:hover { transform: translateY(-3px); border-top-color: var(--ta-primary); } 1426.tx-evi .fig { font-family: var(--f-serif); font-size: 22px; font-weight: 600; color: var(--ta-navy); } 1427.tx-evi .fig em { font-style: italic; color: var(--ta-primary); } 1428.tx-evi p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--ta-on-surface-var); } 1429.tx-evi .src { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--ta-on-surface-muted); } 1430 1431/* ---- quotes (self-contained) ---- */ 1432.tx-quote { 1433 background: var(--ta-surface-lowest); border: 1px solid var(--ta-outline-neutral); border-radius: 12px; 1434 padding: 24px 26px; display: flex; flex-direction: column; gap: 14px; margin: 0; position: relative; overflow: hidden; 1435} 1436.tx-quote .q { font-family: var(--f-serif); font-size: 17px; line-height: 1.5; color: var(--ta-navy); margin: 0; } 1437.tx-quote .who { display: flex; align-items: center; gap: 10px; } 1438.tx-quote .who .nm { font-weight: 600; font-size: 14px; color: var(--ta-navy); } 1439.tx-quote .who .rl { font-family: var(--f-mono); font-size: 11.5px; color: var(--ta-on-surface-muted); } 1440.tx-quote.inverse { background: var(--ta-navy); border-color: var(--ta-navy); } 1441.tx-quote.inverse .q { color: #fff; }
1442.tx-quote.inverse .who .nm { color: #fff; } 1443.tx-quote.inverse .who .rl { color: rgba(255,255,255,0.6); } 1444.tx-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } 1445 1446/* ---- beyond-training strip ---- */ 1447.tx-beyond { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } 1448.tx-bey { border-top: 1px solid var(--ta-hairline); padding: 16px 4px 6px; display: flex; flex-direction: column; gap: 8px; transition: transform 220ms cubic-bezier(.2,0,0,1), border-color 200ms; } 1449.tx-bey:hover { transform: translateY(-3px); border-top-color: var(--ta-primary); } 1450.tx-bey .k { font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ta-primary); } 1451.tx-bey h4 { margin: 0; font-family: var(--f-serif); font-size: 18px; font-weight: 600; color: var(--ta-navy); } 1452.tx-bey p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); } 1453 1454/* ---- mid-page CTA band ---- */ 1455.tx-ctaband { 1456 background: var(--ta-navy); border-radius: 14px; padding: 34px 36px; position: relative; overflow: hidden; 1457 display: flex; align-items: center; justify-content: space-between; gap: 20px 36px; flex-wrap: wrap; 1458} 1459.tx-ctaband h3 { margin: 0; font-family: var(--f-serif); font-weight: 500; font-size: clamp(21px, 2.4vw, 28px); color: #fff; letter-spacing: -0.01em; } 1460.tx-ctaband h3 em { font-style: italic; color: #7a93ff; } 1461.tx-ctaband p { margin: 6px 0 0; font-size: 14px; color: rgba(255,255,255,0.75); } 1462.tx-ctaband .ctas { display: flex; gap: 12px; flex-wrap: wrap; } 1463.tx-ctaband > div:first-child { position: relative; z-index: 1; } 1464.tx-ctaband .ctas { position: relative; z-index: 1; } 1465 1466/* ---- comparison table ---- */ 1467.tx-compare-wrap { overflow-x: auto; border: 1px solid var(--ta-outline-neutral); border-radius: 12px; background: var(--ta-surface-lowest); } 1468.tx-compare { width: 100%; border-collapse: collapse; min-width: 640px; } 1469.tx-compare th, .tx-compare td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--ta-outline-neutral); font-size: 14px; line-height: 1.5; color: var(--ta-on-surface-var); vertical-align: top; } 1470.tx-compare th { font-family: var(--f-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ta-on-surface-muted); background: var(--ta-surface-low); } 1471.tx-compare td:first-child { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); white-space: nowrap; } 1472.tx-compare td b { color: var(--ta-navy); font-weight: 600; } 1473.tx-compare tr:last-child td { border-bottom: none; } 1474.tx-compare .stepcol { color: var(--ta-navy); } 1475 1476/* ---- objection rows ---- */ 1477.tx-objs { display: flex; flex-direction: column; } 1478.tx-obj { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 12px 40px; padding: 20px 4px; border-top: 1px solid var(--ta-hairline-soft); transition: background-color 200ms; } 1479.tx-obj:hover { background: rgba(0,62,199,0.025); } 1480.tx-obj:last-child { border-bottom: 1px solid var(--ta-hairline-soft); } 1481.tx-obj .o { font-family: var(--f-serif); font-size: 17px; font-weight: 600; color: var(--ta-navy); font-style: italic; } 1482.tx-obj .a { font-size: 14.5px; line-height: 1.6; color: var(--ta-on-surface-var); } 1483.tx-obj .a b { color: var(--ta-navy); } 1484 1485/* ---- sticky CTA bar ---- */ 1486.tx-sticky { 1487 position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; 1488 background: rgba(11,21,56,0.97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); 1489 padding: 10px 20px; display: none; align-items: center; justify-content: center; gap: 18px; 1490 transform: translateY(100%); transition: transform 300ms cubic-bezier(.2,0,0,1); 1491} 1492.tx-sticky.show { transform: none; } 1493.tx-sticky .t { color: rgba(255,255,255,0.85); font-size: 13.5px; } 1494.tx-sticky .t b { color: #fff; } 1495 1496/* ---- responsive ---- */ 1497@media (max-width: 960px) { 1498 .tx-journey { grid-template-columns: 1fr; } 1499 .tx-jarrow { transform: rotate(90deg); padding: 6px 0; } 1500 .tx-cases, .tx-quotes, .tx-offers.three { grid-template-columns: 1fr 1fr; } 1501 .tx-team { grid-template-columns: 1fr 1fr; } 1502 .tx-numbers { grid-template-columns: 1fr 1fr; gap: 18px; } 1503} 1504@media (max-width: 680px) { 1505 .tx-offers, .tx-offers.three, .tx-cases, .tx-quotes { grid-template-columns: 1fr; } 1506 .tx-obj { grid-template-columns: 1fr; gap: 8px; } 1507 .tx-ctaband { padding: 26px 22px; } 1508 .tx-sticky { display: flex; } 1509} 1510@media (min-width: 681px) { .tx-sticky { display: flex; } } 1511@media (prefers-reduced-motion: reduce) { 1512 .tx-jstep, .tx-offer, .tx-case, .tx-person, .tx-evi, .tx-bey, .tx-sticky { transition: none !important; } 1513} 1514 1515/* --------------------------------------------------------------------------- 1516 Course price-card payment toggle (one-time vs 3-month plan) â Aug 2026 1517--------------------------------------------------------------------------- */ 1518.ta-pay-toggle { 1519 display: grid; grid-template-columns: 1fr 1fr; gap: 4px; 1520 border: 1px solid var(--ta-hairline); border-radius: 8px; padding: 4px; 1521 background: var(--ta-surface-low); 1522} 1523.ta-pay-toggle button { 1524 font-family: var(--f-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.05em; 1525 text-transform: uppercase; color: var(--ta-on-surface-var); 1526 background: transparent; border: 0; border-radius: 5px; padding: 8px 6px; cursor: pointer; 1527} 1528.ta-pay-toggle button.on { background: var(--ta-primary); color: #fff; } 1529.ta-pay-toggle button:focus-visible { outline: 2px solid var(--ta-navy); outline-offset: 2px; } 1530@media (max-width: 719px) { .ta-pay-toggle button { padding: 12px 6px; } } 1531/* .ta-btn sets display, which would defeat the hidden attribute on swapped CTAs */ 1532.ta-price-card [data-pay][hidden] { display: none !important; } 1533 1534/* Hero price card (course pages): the intro video doubles as the card cover */ 1535.ta-hero-grid .ta-price-card { width: 100%; max-width: 460px; justify-self: end; } 1536@media (max-width: 1023px) { 1537 .ta-hero-grid .ta-price-card { max-width: none; justify-self: stretch; } 1538} 1539.ta-price-card .ta-video.cover { 1540 border-radius: 0; border: 0; box-shadow: none; 1541 border-bottom: 1px solid var(--ta-outline-neutral); 1542} 1543.ta-pay .note { font-size: 13px; line-height: 1.5; color: var(--ta-on-surface-var); margin: 8px 0 0; } 1544 1545/* Hero instructor credit (course pages) */ 1546.ta-hero-teach { display: flex; align-items: center; gap: 12px; } 1547.ta-hero-teach .imgs { display: flex; flex-shrink: 0; } 1548.ta-hero-teach .imgs img { 1549 width: 42px; height: 42px; border-radius: 50%; object-fit: cover; 1550 border: 2px solid var(--ta-surface); display: block; 1551} 1552.ta-hero-teach .imgs img + img { margin-left: -12px; } 1553.ta-hero-teach .t { font-size: 13.5px; line-height: 1.45; color: var(--ta-on-surface-var); } 1554.ta-hero-teach .t b { color: var(--ta-navy); font-weight: 600; } 1555.ta-hero-teach .t .rl { 1556 display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.07em; 1557 text-transform: uppercase; color: var(--ta-on-surface-muted); margin-top: 3px; 1558} 1559 1560/* Mentorship hero mentor-faces strip */ 1561.ta-ment-faces { display: flex; align-items: center; gap: 14px; margin-top: 2px; } 1562.ta-ment-faces .imgs { display: flex; flex-shrink: 0; } 1563.ta-ment-faces .imgs img { 1564 width: 36px; height: 36px; border-radius: 50%; object-fit: cover; 1565 border: 2px solid var(--ta-surface); display: block; 1566} 1567.ta-ment-faces .imgs img + img { margin-left: -11px; } 1568.ta-ment-faces .cap { font-size: 13px; line-height: 1.5; color: var(--ta-on-surface-var); } 1569.ta-ment-faces .cap b { color: var(--ta-navy); font-weight: 600; } 1570@media (max-width: 719px) { .ta-ment-faces { flex-direction: column; align-items: flex-start; gap: 10px; } } 1571 1572/* Mentorship: For-you doors are informational, not clickable â no hover shift */ 1573.ta-fit.ta-ment-door:hover { transform: none; border-top-color: var(--ta-hairline-soft); } 1574 1575/* Mentorship: monthly-cadence tiles at the top of the offer section */ 1576.ta-ment-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 6px 0 44px; } 1577.ta-ment-tiles .t { border-top: 2px solid var(--ta-navy); padding-top: 12px; } 1578.ta-ment-tiles .num { font-family: var(--f-serif); font-size: 27px; font-weight: 600; color: var(--ta-navy); display: block; } 1579.ta-ment-tiles .lbl { 1580 font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; 1581 color: var(--ta-navy); display: block; margin-top: 6px; 1582} 1583.ta-ment-tiles .sub { font-size: 12.5px; color: var(--ta-on-surface-muted); display: block; margin-top: 3px; } 1584@media (max-width: 719px) { .ta-ment-tiles { grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 34px; } } 1585 1586/* Mentorship: slightly larger client logos (page-scoped via .lg modifier) */ 1587.ta-logoband.lg img { max-height: 52px; max-width: 156px; } 1588.ta-logoband .sub-lbl { 1589 font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; 1590 color: var(--ta-on-surface-muted); text-align: center; margin: 26px 0 0; 1591} 1592 1593/* Mentorship: earned-pathways expandable detail */ 1594.ta-ment-pathways details { margin-top: 10px; } 1595.ta-ment-pathways summary { 1596 cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; 1597 font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.07em; text-transform: uppercase; 1598 color: var(--ta-primary); 1599} 1600.ta-ment-pathways summary::-webkit-details-marker { display: none; } 1601.ta-ment-pathways details .a { font-size: 14px; line-height: 1.65; color: var(--ta-on-surface-var); margin: 10px 0 0; max-width: 68ch; } 1602 1603/* --------------------------------------------------------------------------- 1604 Price-card savings pill + course-context rows; course/bundle fit picker 1605--------------------------------------------------------------------------- */ 1606.ta-price-row .save { 1607 align-self: center; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1608 letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; 1609 background: #0e7a3d; color: #fff; border-radius: 999px; padding: 5px 10px; 1610} 1611.ta-price-card .about { margin: 0; } 1612.ta-price-card .about .row { 1613 display: grid; grid-template-columns: 88px 1fr; gap: 0 14px; padding: 9px 0; 1614 border-top: 1px dotted var(--ta-hairline-soft); align-items: baseline; 1615} 1616.ta-price-card .about .row:first-of-type { border-top: 1px solid var(--ta-outline-neutral); } 1617.ta-price-card .about dt { 1618 font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1619 letter-spacing: 0.08em; text-transform: uppercase; color: var(--ta-on-surface-muted); 1620} 1621.ta-price-card .about dd { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--ta-navy); } 1622 1623/* Fit picker (bundles page): two pill-group questions -> recommendation panel */ 1624.ta-fit-picker { max-width: 860px; } 1625.ta-fit-picker .q { margin-top: 22px; } 1626.ta-fit-picker .q .k { 1627 display: block; font-family: var(--f-mono); font-size: 11px; font-weight: 500; 1628 letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-on-surface-muted); 1629 margin-bottom: 10px; 1630} 1631.ta-fit-picker .opts { display: flex; flex-wrap: wrap; gap: 8px; } 1632.ta-fit-picker .opts button { 1633 font-family: var(--f-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.05em; 1634 text-transform: uppercase; color: var(--ta-on-surface-var); 1635 background: var(--ta-surface-lowest); border: 1px solid var(--ta-hairline); 1636 border-radius: 999px; padding: 10px 16px; cursor: pointer; 1637} 1638.ta-fit-picker .opts button.on { background: var(--ta-primary); border-color: var(--ta-primary); color: #fff; } 1639.ta-fit-picker .opts button:focus-visible { outline: 2px solid var(--ta-navy); outline-offset: 2px; } 1640.ta-fit-result { margin-top: 30px; } 1641.ta-fit-result .why { 1642 font-size: 14px; line-height: 1.55; color: var(--ta-on-surface-var); 1643 border-top: 1px dotted var(--ta-hairline-soft); padding-top: 12px; margin: 12px 0 0; 1644} 1645.ta-fit-result .pick { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: baseline; padding-top: 14px; } 1646.ta-fit-result .pick .nm { font-family: var(--f-serif); font-size: 24px; font-weight: 600; color: var(--ta-navy); } 1647.ta-fit-result .pick .pr { font-family: var(--f-mono); font-size: 14px; color: var(--ta-on-surface-var); } 1648.ta-fit-result .pick .pr .was { text-decoration: line-through; color: var(--ta-on-surface-muted); margin-right: 8px; } 1649.ta-fit-result .cta-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 16px; } 1650.ta-fit-result .alt { 1651 font-size: 13.5px; line-height: 1.55; color: var(--ta-on-surface-var); 1652 border-top: 1px dotted var(--ta-hairline-soft); margin-top: 18px; padding-top: 12px; 1653} 1654.ta-fit-result .alt a { color: var(--ta-primary); } 1655.ta-prod .prow .save-pill { 1656 font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 0.06em; 1657 text-transform: uppercase; background: #0e7a3d; color: #fff; border-radius: 999px; 1658 padding: 4px 9px; margin-left: 10px; white-space: nowrap; 1659} 1660 1661/* Fit picker: one-or-two pick blocks (single reco vs. staged route) */ 1662.ta-fit-result .pk { padding: 14px 0 18px; } 1663.ta-fit-result .pk + .pk { border-top: 1px dotted var(--ta-hairline-soft); } 1664.ta-fit-result .pk .step { 1665 display: block; font-family: var(--f-mono); font-size: 10.5px; font-weight: 500; 1666 letter-spacing: 0.1em; text-transform: uppercase; color: var(--ta-primary); margin-bottom: 6px; 1667} 1668.ta-fit-result .pk .pick { padding-top: 0; } 1669.ta-fit-result .pk .why { border-top: 0; padding-top: 0; margin: 8px 0 14px; } 1670@media (max-width: 719px) { 1671 .ta-fit-result .pick { flex-direction: column; align-items: flex-start; gap: 6px; } 1672} 1673 1674/* --------------------------------------------------------------------------- 1675 Agentic enterprise page additions (Sept 2026): pain strip, headsh
1675ots, 1676 syllabus artefact notes, stacked coverage table, static METR comparison, 1677 question-first objections, still glance card 1678--------------------------------------------------------------------------- */ 1679.ta-glance.still:hover { transform: none; box-shadow: none; } 1680 1681/* Pain-point strip: one row of plain statements, marquee on desktop, swipe on touch */ 1682.tx-pains { position: relative; padding: 26px 0 30px; border-bottom: 1px solid var(--ta-outline-neutral); } 1683.tx-pains .lbl { 1684 font-family: var(--f-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.1em; 1685 text-transform: uppercase; color: var(--ta-on-surface-muted); margin: 0 0 14px; 1686} 1687.tx-pains .track { overflow: hidden; outline: none; } 1688.tx-pains .track:focus-visible { box-shadow: inset 0 0 0 2px var(--ta-primary); } 1689.tx-pains::before, .tx-pains::after { 1690 content: ""; position: absolute; top: 0; bottom: 0; width: 72px; pointer-events: none; z-index: 1; 1691} 1692.tx-pains::before { left: 0; background: linear-gradient(90deg, var(--ta-surface), rgba(248,247,244,0)); } 1693.tx-pains::after { right: 0; background: linear-gradient(270deg, var(--ta-surface), rgba(248,247,244,0)); } 1694.tx-pains ul { 1695 display: flex; align-items: baseline; margin: 0; padding: 0 0 0 clamp(20px, 5vw, 64px); list-style: none; 1696 width: max-content; animation: tx-pains-scroll 84s linear infinite; 1697} 1698.tx-pains li { 1699 font-family: var(--f-serif); font-size: 16px; line-height: 1.4; color: var(--ta-navy); 1700 white-space: nowrap; padding: 0 22px; position: relative; 1701} 1702.tx-pains li + li::before { 1703 content: "\00b7"; position: absolute; left: -4px; top: 0; color: var(--ta-primary); font-size: 18px; 1704} 1705.tx-pains .track:hover ul, .tx-pains .track:focus-within ul, .tx-pains .track:focus ul { animation-play-state: paused; } 1706@keyframes tx-pains-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } } 1707@media (max-width: 1023px), (prefers-reduced-motion: reduce) { 1708 .tx-pains .track { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; } 1709 .tx-pains .track::-webkit-scrollbar { display: none; } 1710 .tx-pains::before { display: none; } 1711 .tx-pains::after { width: 56px; } 1712 .tx-pains ul { animation: none; padding-right: 20px; } 1713 .tx-pains li { scroll-snap-align: start; font-size: 15.5px; } 1714 .tx-pains li.dup { display: none; } 1715} 1716 1717/* Instructor headshots in the who-delivers grid */ 1718.tx-person .ph { 1719 width: 56px; height: 56px; border-radius: 50%; object-fit: cover; display: block; 1720 border: 1px solid var(--ta-hairline); background: var(--ta-surface-lowest); 1721} 1722 1723/* Syllabus artefact line inside a module */ 1724.ta-syl .ta-syllabus-note { margin: -6px 0 18px 44px; color: var(--ta-navy); } 1725.ta-syl .ta-syllabus-note::before { content: "\2192\00a0"; color: var(--ta-primary); } 1726@media (max-width: 719px) { .ta-syl .ta-syllabus-note { margin-left: 0; } } 1727 1728/* Coverage table: stacks into label-led blocks on phones */ 1729.tx-compare th[scope="row"] { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); background: transparent; white-space: nowrap; } 1730@media (max-width: 719px) { 1731 .tx-compare-wrap.stack { overflow: visible; } 1732 .tx-compare-wrap.stack .tx-compare { min-width: 0; display: block; } 1733 .tx-compare-wrap.stack thead { display: none; } 1734 .tx-compare-wrap.stack tbody, .tx-compare-wrap.stack tr { display: block; } 1735 .tx-compare-wrap.stack tr { padding: 10px 16px 12px; border-bottom: 1px solid var(--ta-outline-neutral); } 1736 .tx-compare-wrap.stack tr:last-child { border-bottom: none; } 1737 .tx-compare-wrap.stack th[scope="row"] { display: block; padding: 6px 0 4px; border: none; } 1738 .tx-compare-wrap.stack td { display: block; position: relative; padding: 7px 0 7px 108px; border: none; border-top: 1px dotted var(--ta-hairline-soft); font-size: 13.5px; } 1739 .tx-compare-wrap.stack td::before { content: attr(data-col); position: absolute; left: 0; top: 9px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-primary); } 1740} 1741 1742/* Static METR belief-vs-measurement comparison (CSS only, no motion) */ 1743.tx-metr { display: flex; flex-direction: column; gap: 8px; margin: 2px 0 4px; } 1744.tx-metr .r { display: grid; grid-template-columns: 74px 1fr 48px; align-items: center; gap: 12px; } 1745.tx-metr .k { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ta-on-surface-muted); } 1746.tx-metr .v { font-family: var(--f-mono); font-size: 12.5px; font-weight: 600; color: var(--ta-navy); text-align: right; } 1747.tx-metr .ax { position: relative; height: 18px; } 1748.tx-metr .ax::before { content: ""; position: absolute; left: 50%; top: -4px; bottom: -4px; width: 1px; background: var(--ta-hairline); } 1749.tx-metr .bar { position: absolute; top: 2px; height: 14px; } 1750.tx-metr .bar.pos { left: 50%; background: var(--ta-primary); } 1751.tx-metr .bar.neg { right: 50%; background: var(--ta-navy); } 1752 1753/* Question-first objections: serif italic questions on the shared FAQ accordion */ 1754.tx-objs.ta-faq { max-width: none; } 1755.tx-objs.ta-faq summary { font-family: var(--f-serif); font-style: italic; font-size: 17px; } 1756.tx-objs.ta-faq summary .tog { font-style: normal; } 1757.tx-objs.ta-faq .a { max-width: 820px; } 1758 1759/* Brand wordmark: alpha mask, recolored via background */ 1760.ta-logo-mark { 1761 display: inline-block; width: 146px; height: 13.8px; flex-shrink: 0; 1762 background: var(--ta-navy); 1763 -webkit-mask: url('data:image/png;base64,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') no-repeat left center / contain; 1764 mask: url('data:image/png;base64,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') no-repeat left center / contain; 1765} 1766.ta-logo-mark.on-dark { background: #fff; } 1767.ta-logo-mark.lg { width: 170px; height: 16px; } 1768.ta-nav-logo { align-items: center; } 1769.ta-nav-logo .word-sub, .ta-footer .word-sub { 1770 font-family: var(--f-serif); font-style: italic; font-weight: 500; 1771 font-size: 17px; color: var(--ta-primary); line-height: 1;
1771 margin-top: 1px; 1772} 1773.ta-footer .word-sub { color: #7a93ff; font-size: 18px; } 1774@media (max-width: 719px) { 1775 .ta-logo-mark { width: 126px; height: 11.9px; } 1776} 1777 1778</style> 1779</head> 1780<body> 1781 1782<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1782-1783
1782 1783<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1783GTM-N8HMSMS2
vendor: 83 bytes, lines 1783-1784
1783" 1784height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1785<!-- End Google Tag Manager (noscript) --> 1786 1787<style> 1788.ta-launchbar { position: relative; z-index: 1; background: #0b1538; color: rgba(255,255,255,0.88); font-family: 'Instrument Sans', system-ui, sans-serif; } 1789.ta-launchbar-inner { max-width: 1320px; margin: 0 auto; padding: 9px 24px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 18px; } 1790.ta-launchbar-count { display: inline-flex; align-items: center; gap: 10px; padding: 5px 14px 5px 12px; border: 1px solid rgba(255,255,255,0.28); border-radius: 999px; white-space: nowrap; } 1791.ta-launchbar-count .lbl { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: #a7b8ff; } 1792.ta-launchbar-count strong { font-family: 'Lora', Georgia, serif; font-size: 16px; font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; } 1793.ta-launchbar-copy { font-family: 'Lora', Georgia, serif; font-size: 16px; line-height: 1.4; color: rgba(255,255,255,0.88); } 1794.ta-launchbar-copy em { font-style: italic; color: #fff; } 1795.ta-launchbar-copy .short { display: none; } 1796.ta-launchbar-cta { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; border-radius: 999px; background: #fff; color: #0b1538; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: transform 160ms cubic-bezier(.2,0,0,1), box-shadow 160ms; } 1797.ta-launchbar-cta:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -10px rgba(0,0,0,0.6); color: #0b1538; } 1798.ta-launchbar-cta:focus-visible { outline: 2px solid #a7b8ff; outline-offset: 2px; } 1799@media (max-width: 1023px) { .ta-launchbar-inner { gap: 8px 14px; } .ta-launchbar-copy { font-size: 15px; } } 1800@media (max-width: 719px) { 1801 .ta-launchbar-inner { padding: 10px 16px 12px; gap: 8px 10px; } 1802 .ta-launchbar-copy { order: -1; flex: 1 1 100%; text-align: center; font-size: 13.5px; } 1803 .ta-launchbar-copy .long { display: none; } 1804 .ta-launchbar-copy .short { display: inline; } 1805 .ta-launchbar-count .lbl { display: none; } 1806 .ta-launchbar-count { padding: 6px 14px; min-height: 42px; } 1807 .ta-launchbar-count strong { font-size: 14px; } 1808 .ta-launchbar-cta { padding: 10px 16px; font-size: 13.5px; min-height: 42px; } 1809} 1810</style> 1811<div class="ta-launchbar" data-launchbar data-launch-at="2026-11-10T12:30:00-05:00" role="region" aria-label="New book launch">
1812 <div class="ta-launchbar-inner"> 1813 <span class="ta-launchbar-count"><span class="lbl" data-launchbar-label>Until launch day</span><strong data-launchbar-value>November 10</strong></span> 1814 <span class="ta-launchbar-copy"><span class="long" data-launchbar-copy>Our new book, <em>AI Engineering For Production</em>, launches November 10.</span><span class="short" data-launchbar-copy-short>New book: <em>AI Engineering For Production</em>, Nov 10.</span></span> 1815 <a class="ta-launchbar-cta" href="https://www.louisbouchard.ai/book/?utm_source=site-tai&utm_medium=banner&utm_campaign=book#register"><span data-launchbar-cta-label>Join us on launch day</span> <span aria-hidden="true">→</span></a> 1816 </div> 1817</div>
1818<script>(function(){var b=document.querySelector('[data-launchbar]');if(!b)return;var v=b.querySelector('[data-launchbar-value]'),l=b.querySelector('[data-launchbar-label]'),c=b.querySelector('[data-launchbar-copy]'),s=b.querySelector('[data-launchbar-copy-short]'),a=b.querySelector('[data-launchbar-cta-label]');var t=new Date(b.getAttribute('data-launch-at')||'').getTime();if(!v||isNaN(t))return;function pad(n){return (n<10?'0':'')+n}function tick(){var d=t-Date.now();if(d<=0){b.setAttribute('data-launched','');if(l)l.textContent='Launch day';v.textContent='Out now';if(c)c.innerHTML='Our new book, <em>AI Engineering For Production</em>, is out now.';if(s)s.innerHTML='Out now: <em>AI Engineering For Production</em>.';if(a)a.textContent='Get the book';return false}var D=Math.floor(d/864e5),H=Math.floor(d%864e5/36e5),M=Math.floor(d%36e5/6e4);v.textContent=D+'d '+pad(H)+'h '+pad(M)+'m';return true}if(tick()){var i=setInterval(function(){if(!tick())clearInterval(i)},15000)}})();</script>
1818 1819 1820 1821<nav class="ta-nav"> 1822 <div class="ta-nav-inner"> 1823 <a href="/academy/" class="ta-nav-logo" aria-label="Towards AI Academy"> 1824 <span class="ta-logo-mark" role="img" aria-label="Towards AI"></span> 1825 <span class="word-sub">Academy</span> 1826 </a> 1827 <div class="ta-nav-links"> 1828 <a class="ta-nav-link" href="/academy/bundles/">Our Courses</a> 1829 <a class="ta-nav-link" href="/academy/about/">About Us</a> 1830 <a class="ta-nav-link" href="/enterpriseenablement/">B2B</a> 1831 <a class="ta-nav-link" href="/academy/affiliate/">Affiliate</a> 1832 <a class="ta-nav-link" href="/academy/contact/">Contact</a> 1833 </div> 1834 <div class="ta-nav-cta"> 1835 <a class="ta-btn ta-btn-blue ta-btn-sm" href="/academy/mentorship/">Mentorship</a> 1836 <a class="ta-btn ta-btn-secondary ta-btn-sm" href="https://academy.towardsai.net/users/sign_in">Sign in</a> 1837 <a class="ta-btn ta-btn-primary ta-btn-sm" href="/academy/#pathway">Browse courses</a> 1838 </div> 1839 <button class="ta-nav-burger" aria-label="Open menu"> 1840 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M4 7h16M4 12h16M4 17h16" stroke="#0b1538" stroke-width="2" stroke-linecap="round"/></svg> 1841 </button> 1842 </div> 1843</nav> 1844<div class="ta-mobile-menu"> 1845 <div class="close-row"> 1846 <span style="display:inline-flex;align-items:center;gap:8px"><span class="ta-logo-mark" role="img" aria-label="Towards AI"></span><span class="word-sub" style="font-family:var(--f-serif);font-style:italic;font-weight:500;font-size:17px;color:var(--ta-primary)">Academy</span></span> 1847 <button class="m-close ta-nav-burger" style="display:flex" aria-label="Close menu"> 1848 <svg width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M6 6l12 12M18 6L6 18" stroke="#0b1538" stroke-width="2" stroke-linecap="round"/></svg> 1849 </button> 1850 </div> 1851 <a class="m-link" href="/academy/bundles/">Our Courses</a> 1852 <a class="m-link" href="/academy/mentorship/">Mentorship</a> 1853 <a class="m-link" href="/academy/about/">About Us</a> 1854 <a class="m-link" href="/enterpriseenablement/">B2B</a> 1855 <a class="m-link" href="/academy/affiliate/">Affiliate</a> 1856 <a class="m-link" href="/academy/contact/">Contact</a> 1857 <a class="m-link" href="https://academy.towardsai.net/users/sign_in">Sign in</a> 1858 <div class="m-ctas"> 1859 <a class="ta-btn ta-btn-blue" href="/academy/mentorship/">Join the Mentorship</a> 1860 <a class="ta-btn ta-btn-primary" href="/academy/#pathway">Browse courses</a> 1861 </div> 1862</div> 1863 1864<!-- ============================================== HERO --> 1865<header class="ta-hero"> 1866 <div class="ta-pixel-drift"></div> 1867 <div class="ta-grain"></div> 1868 <div class="ta-container"> 1869 <div style="max-width:780px; display:flex; flex-direction:column; gap:20px; align-items:flex-start"> 1870 <span class="ta-eyebrow">About Towards AI</span> 1871 <h1 class="ta-h1">Training developers for <em>production AI</em></h1> 1872 <p class="ta-lede">Through project-based courses, in-person bootcamps, and customized enterprise programs.</p> 1873 <div class="ta-hero-stats" style="max-width:640px"> 1874 <div class="ta-stat"><span class="num">10,000+</span><span class="lbl">engineers enrolled since 2019</span></div> 1875 <div class="ta-stat"><span class="num">500k+</span><span class="lbl">learners across our platforms</span></div> 1876 <div class="ta-stat"><span class="num">15+</span><span class="lbl">AI practitioners on the team</span></div> 1877 </div> 1878 </div> 1879 </div> 1880</header> 1881 1882<!-- ============================================== ORGS --> 1883<div class="ta-logoband"> 1884 <div class="ta-container"> 1885 <p class="lbl">Including teams at</p> 1886 <div class="row"> 1887 <img src="/academy-assets/logo-europol.png" alt="Europol"> 1888 <img src="/academy-assets/logo-nypl.png" alt="New York Public Library"> 1889 <img src="/academy-assets/logo-intel.png" alt="Intel"> 1890 <img src="/academy-assets/logo-activeloop.png" alt="Activeloop"> 1891 <img src="/academy-assets/logo-jpmorgan.png" alt="J.P. Morgan"> 1892 </div> 1893 </div> 1894</div> 1895 1896<!-- ============================================== FOUNDERS --> 1897<section class="ta-section" id="founders">
1898 <div class="ta-container"> 1899 <div class="ta-section-head"> 1900 <span class="ta-eyebrow"><span class="num">01</span>Leadership</span> 1901 <h2 class="ta-h2">Meet our <em>founders</em></h2> 1902 </div> 1903 <div class="ta-founder"> 1904 <div class="pic"><img src="/academy-assets/louie-peters.jpeg" alt="Louie Peters, Co-founder and CEO of Towards AI" loading="lazy"></div> 1905 <div> 1906 <blockquote>“We are at the beginning of the most significant technological shift in history. The solutions that define this era, in healthcare, energy, finance, and education, will be built by AI engineers. I am building Towards AI to be where those engineers are made.”</blockquote> 1907 <span class="nm">Louie Peters · Co-founder & CEO</span> 1908 </div> 1909 </div> 1910 <div class="ta-founder flip"> 1911 <div> 1912 <blockquote>“I left academia to solve real problems and discovered the hardest one was finding training that reflected how production AI actually works. So I built them. Everything we create at Towards AI is focused on one thing: you will learn to build and ship production-grade AI systems.”</blockquote> 1913 <span class="nm">Louis-François Bouchard · Co-founder & CTO</span> 1914 </div> 1915 <div class="pic"><img src="/academy-assets/louis-francois-bouchard.jpeg" alt="Louis-François Bouchard, Co-founder and CTO of Towards AI" loading="lazy"></div> 1916 </div> 1917 </div> 1918</section> 1919 1920<!-- ============================================== WHAT WE DO --> 1921<section class="ta-section" id="offerings" style="background:var(--ta-surface-low)"> 1922 <div class="ta-container"> 1923 <div class="ta-section-head"> 1924 <span class="ta-eyebrow"><span class="num">02</span>What we do</span> 1925 <h2 class="ta-h2">Three ways we train <em>AI-first teams</em></h2> 1926 </div> 1927 1928 <article class="ta-offer"> 1929 <div class="copy"> 1930 <span class="ta-path-step"><span class="n">1 / 3</span>For individuals</span> 1931 <h3 class="title" style="font-family:var(--f-serif);font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:var(--ta-navy);margin:0">Project-based courses</h3> 1932 <span class="ta-path-best">The most in-depth path from developer to AI engineer</span> 1933 <p class="ta-body">Most developers hit the same wall: tutorials that work in notebooks but fall apart in production. Our courses are built around one project taken end-to-end, from raw data pipeline to live deployment, including the failure modes notebooks never show you. By the time you finish, you've shipped something that works.</p> 1934 <a class="ta-btn ta-btn-primary" href="/academy/full-stack-ai-engineering/">Become an AI Engineer</a> 1935 </div> 1936 <div class="media"> 1937 <img src="/academy-assets/full-stack-engineering.png" alt="Full Stack AI Engineering course artwork" loading="lazy"> 1938 </div> 1939 </article> 1940 1941 <article class="ta-offer flip"> 1942 <div class="copy"> 1943 <span class="ta-path-step"><span class="n">2 / 3</span>For teams</span> 1944 <h3 class="title" style="font-family:var(--f-serif);font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:var(--ta-navy);margin:0">In-person bootcamps</h3> 1945 <span class="ta-path-best">Intensive training to accelerate AI adoption within your teams</span> 1946 <p class="ta-body">Your developers know how to code. The gap is knowing how to build reliably on top of probabilistic systems, so LLM features hold up under real usage. Our bootcamps close that gap directly, tailored to your stack and the specific problems your team is trying to solve.</p> 1947 <a class="ta-btn ta-btn-secondary" href="/academy/contact/">Get in touch</a> 1948 </div> 1949 <div class="media"> 1950 <img src="/academy-assets/bootcamp-session.jpeg" alt="Towards AI in-person bootcamp session" loading="lazy"> 1951 </div> 1952 </article> 1953 1954 <article class="ta-offer"> 1955 <div class="copy"> 1956 <span class="ta-path-step"><span class="n">3 / 3</span>For organizations</span> 1957 <h3 class="title" style="font-family:var(--f-serif);font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:var(--ta-navy);margin:0">Customized enterprise programs</h3>
1958 <span class="ta-path-best">End-to-end AI consulting for organizations building with LLMs</span> 1959 <p class="ta-body">Most enterprise teams lack the production experience to know which AI initiatives are worth building. Our team of 15+ AI practitioners works directly with yours to identify the right use cases and build systems that actually deliver.</p> 1960 <a class="ta-btn ta-btn-secondary" href="/enterpriseenablement/">Learn more</a> 1961 </div> 1962 <div class="media"> 1963 <aside class="ta-glance" aria-label="Engagement formats"> 1964 <div class="hd">Engagement formats</div> 1965 <dl> 1966 <div class="row"><dt>Advisory</dt><dd>Strategic guidance on use cases, models, and architecture</dd></div> 1967 <div class="row"><dt>Sprints</dt><dd>Hands-on development sprints with your team</dd></div> 1968 <div class="row"><dt>Custom build</dt><dd>LLM systems built end-to-end, handed over documented</dd></div> 1969 <div class="row"><dt>Enablement</dt><dd>Training that keeps the capability in-house</dd></div> 1970 </dl> 1971 </aside> 1972 </div> 1973 </article> 1974 </div> 1975</section> 1976 1977<!-- ============================================== ENDORSEMENTS --> 1978<section class="ta-section" id="endorsements"> 1979 <div class="ta-container"> 1980 <div class="ta-section-head"> 1981 <span class="ta-eyebrow"><span class="num">03</span>Trusted voices</span> 1982 <h2 class="ta-h2">Industry leaders on <em>our resources</em></h2> 1983 </div> 1984 <div class="ta-cols"> 1985 <figure class="ta-quote" style="margin:0"> 1986 <p class="q">“Helps learners understand everything from fundamentals to the simple-to-advanced building blocks of constructing LLM applications.”</p> 1987 <figcaption class="who"> 1988 <img src="/academy-assets/jerry-liu.jpeg" alt="Jerry Liu" loading="lazy"> 1989 <div><div class="nm">Jerry Liu</div><div class="rl">Co-founder and CEO, LlamaIndex</div></div> 1990 </figcaption> 1991 </figure> 1992 <figure class="ta-quote" style="margin:0"> 1993 <p class="q">“Towards AI has done a great job assembling all of the technical resources needed by a modern GenAI applied practitioner.”</p> 1994 <figcaption class="who"> 1995 <img src="/academy-assets/sander-schulhoff.jpeg" alt="Sander Schulhoff" loading="lazy"> 1996 <div><div class="nm">Sander Schulhoff</div><div class="rl">Founder and CEO, Learn Prompting</div></div> 1997 </figcaption> 1998 </figure> 1999 <figure class="ta-quote" style="margin:0"> 2000 <p class="q">“An indispensable guide for anyone venturing into the world of large language models… covering everything from theory to practical deployment.”</p> 2001 <figcaption class="who"> 2002 <img src="/academy-assets/shashank.jpeg" alt="Shashank Kalanithi" loading="lazy"> 2003 <div><div class="nm">Shashank Kalanithi</div><div class="rl">Data Engineer, Meta</div></div> 2004 </figcaption> 2005 </figure> 2006 </div> 2007 </div> 2008</section> 2009 2010<!-- ============================================== STORY BAND --> 2011<section class="ta-band" id="story" style="padding:72px 0"> 2012 <div class="ta-grain-dark"></div> 2013 <div class="ta-container"> 2014 <div style="max-width:780px; margin:0 auto; display:flex; flex-direction:column; gap:18px; text-align:center; align-items:center; position:relative; z-index:1"> 2015 <span class="ta-eyebrow on-dark">Since 2019</span> 2016 <h2 class="ta-h2 on-dark">About <em>Towards AI</em></h2> 2017 <p class="ta-lede on-dark">Since 2019, we have been bridging the gap between AI research and what it actually takes to build with it in industry. What started as a newsletter has grown into one of the largest AI learning communities: 500,000+ learners, 200,000+ newsletter subscribers, and a 100,000-member Discord where engineers share what they are actually building.</p> 2018 <p class="ta-lede on-dark">Behind every course, bootcamp, and enterprise program is a team of 15+ AI practitioners who work on production systems daily. They built the training they couldn't find anywhere else.</p> 2019 </div> 2020 </div> 2021</section> 2022 2023<!-- ============================================== WHO FOR + CTA --> 2024<section class="ta-section" id="who">
2025 <div class="ta-container"> 2026 <div class="ta-hero-grid" style="align-items:start; gap:56px"> 2027 <div style="display:flex; flex-direction:column; gap:16px"> 2028 <span class="ta-eyebrow"><span class="num">04</span>Who we serve</span> 2029 <h2 class="ta-h2" style="font-size:clamp(24px,2.6vw,34px)">Who are these resources for?</h2> 2030 <p class="ta-body">Our material is designed for highly motivated learners who are ready to invest in their future. We offer courses for every skill level, and none of them are passive: you'll be actively building through hands-on projects rather than sitting through long videos.</p> 2031 <p class="ta-body">Whether you're a beginner or an experienced coder, the content challenges you and grows with your skills. Expect to dedicate real time to practical assignments that reflect production applications.</p> 2032 <p class="ta-body">Our learners have moved into high-paying AI roles and led AI initiatives inside their companies by gaining the skills to build and operate advanced AI systems.</p> 2033 </div> 2034 <div style="display:flex; flex-direction:column; gap:16px; border-top:2px solid var(--ta-navy); padding-top:20px"> 2035 <span class="ta-eyebrow">Start here</span> 2036 <h3 class="ta-h2" style="font-size:clamp(22px,2.2vw,28px)">Find your course</h3> 2037 <p class="ta-body">Five programs, one pathway: from beginner Python to full stack AI engineering and production agents.</p> 2038 <div style="display:flex; flex-direction:column; gap:10px; max-width:360px"> 2039 <a class="ta-btn ta-btn-blue ta-btn-lg" href="/academy/#pathway">Browse the pathway</a> 2040 <a class="ta-btn ta-btn-secondary" href="/academy/contact/">Talk to us about team training</a> 2041 </div> 2042 </div> 2043 </div> 2044 </div> 2045</section> 2046 2047 2048<footer class="ta-footer"> 2049 <div class="ta-grain-dark"></div> 2050 <div class="ta-container"> 2051 <div class="cols"> 2052 <div class="brand"> 2053 <span style="display:inline-flex;align-items:center;gap:10px"><span class="ta-logo-mark on-dark lg" role="img" aria-label="Towards AI"></span><span class="word-sub">Academy</span></span> 2054 <p>Self-paced, industry-focused courses for developers, professionals, and companies looking to become AI-first. Built by engineers who do this for a living.</p> 2055 </div> 2056 <div class="grp"> 2057 <h5>Learn</h5> 2058 <a href="/academy/#pathway">All courses</a> 2059 <a href="/academy/mentorship/">Mentorship</a> 2060 <a href="/academy/bundles/">Bundle and Products</a> 2061 <a href="/academy/full-stack-ai-engineering/">Full Stack AI Engineering</a> 2062 <a href="/academy/agent-engineering/">Agent Engineering</a> 2063 <a href="/academy/llm-primer/">LLM Primer</a> 2064 <a href="/academy/ai-for-work/">AI for Work</a> 2065 <a href="https://www.louisbouchard.ai/book/?utm_source=site-tai&utm_medium=btn&utm_campaign=book#register">The New Book</a> 2066 </div> 2067 <div class="grp"> 2068 <h5>Enterprise</h5> 2069 <a href="/enterprise/software-developer-to-ai-engineer/">AI engineer programme</a> 2070 <a href="/enterprise/agentic-developer-conversion/">Agentic developer programme</a> 2071 <a href="/enterpriseenablement/">Enterprise Academy</a> 2072 <a href="/enterpriseenablement/">Towards AI Deployment</a> 2073 <a href="/valuecreation/">Value Creation Consulting</a> 2074 </div> 2075 <div class="grp"> 2076 <h5>Resources</h5> 2077 <a href="https://benchmark.towardsai.com/">ToneBench</a> 2078 <a href="https://pub.towardsai.net/">Publication</a> 2079 <a href="https://newsletter.towardsai.net/">Newsletter</a> 2080 <a href="https://jobs.towardsai.net/">AI Jobs</a> 2081 <a href="https://www.youtube.com/@WhatsAI">What's AI YouTube</a> 2082 <a href="/contribute/">Become a writer</a> 2083 </div> 2084 <div class="grp"> 2085 <h5>Company</h5> 2086 <a href="/academy/about/">About us</a> 2087 <a href="/valuecreation/careers/">Careers</a> 2088 <a href="https://discord.gg/learnaitogether">Discord community</a> 2089 </div> 2090 <div class="grp"> 2091 <h5>Students</h5> 2092 <a href="https://academy.towardsai.net/enrollments">My courses</a> 2093 <a href="https://academy.towardsai.net/users/sign_in">Sign in</a> 2094 </div> 2095 </div> 2096 <div class="newsband"> 2097 <div> 2098 <h4>Get the <em>Towards AI</em> newsletter.</h4> 2099 <p>200,000+ AI practitioners, including Jensen Huang. Weekly. Practical. Curated by humans who build.</p> 2100 </div> 2101 <a class="sub-btn" href="https://newsletter.towardsai.net/">Subscribe <span aria-hidden="true">→</span></a> 2102 </div> 2103 <div class="legal">
2104 <span>© 2026 Towards AI, Inc. All rights reserved.</span> 2105 <span><a href="/privacy" style="color:inherit;text-decoration:none">Privacy</a> · <a href="/terms/" style="color:inherit;text-decoration:none">Terms</a> · <a href="/academy/contact/" style="color:inherit;text-decoration:none">Contact</a></span> 2106 </div> 2107 </div> 2108</footer> 2109
2110<script> 2111 2112// Mobile menu 2113const burger = document.querySelector('.ta-nav-burger'); 2114const menu = document.querySelector('.ta-mobile-menu'); 2115if (burger && menu) { 2116 burger.addEventListener('click', () => { menu.classList.add('open'); document.body.style.overflow = 'hidden'; }); 2117 menu.querySelectorAll('a, .m-close').forEach(el => el.addEventListener('click', () => { 2118 menu.classList.remove('open'); document.body.style.overflow = ''; 2119 })); 2120} 2121// Click-to-load video embeds (loads the player only on demand) 2122document.querySelectorAll('.ta-video[data-embed]').forEach(v => { 2123 v.addEventListener('click', () => { 2124 if (v.dataset.loaded) return; 2125 v.dataset.loaded = '1'; 2126 const f = document.createElement('iframe'); 2127 f.src = v.dataset.embed; 2128 f.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'; 2129 f.allowFullscreen = true; 2130 f.title = v.dataset.title || 'Intro video'; 2131 v.append(f); 2132 }, { once: true }); 2133}); 2134// Expandable review cards 2135document.querySelectorAll('.ta-review .more').forEach(btn => { 2136 btn.addEventListener('click', () => { 2137 const txt = btn.closest('.ta-review').querySelector('.txt'); 2138 const open = txt.classList.toggle('clamped'); 2139 btn.textContent = open ? 'Read more' : 'Read less'; 2140 }); 2141}); 2142// Mentorship billing toggle: yearly is the default state baked into the HTML; 2143// switching plans rewrites every .js-buy checkout CTA plus the hero card price. 2144const mentToggles = document.querySelectorAll('.ta-ment-toggle button'); 2145if (mentToggles.length) { 2146 const mentPlans = { 2147 yearly: { 2148 href: 'https://academy.towardsai.net/cart/add_product/3625904?price_id=4748108', 2149 amt: '$899', per: '/year', was: '$1,188', label: '$899/year', 2150 equiv: 'About $75 a month, billed once a year.', 2151 note: '30-day money-back guarantee', 2152 alt: 'Or $99/month, cancel anytime', 2153 }, 2154 monthly: { 2155 href: 'https://academy.towardsai.net/cart/add_product/3625904?price_id=4565072', 2156 amt: '$99', per: '/month', was: '', label: '$99/month', 2157 equiv: 'Yearly saves 24%: $899, about $75 a month.', 2158 note: 'Cancel anytime', 2159 alt: 'Or $899/year, save 24%', 2160 }, 2161 }; 2162 const mentSet = (sel, fn) => document.querySelectorAll(sel).forEach(fn); 2163 mentToggles.forEach(btn => btn.addEventListener('click', () => { 2164 const p = mentPlans[btn.dataset.plan]; 2165 const o = mentPlans[btn.dataset.plan === 'yearly' ? 'monthly' : 'yearly']; 2166 mentToggles.forEach(b => { 2167 const on = b.dataset.plan === btn.dataset.plan; 2168 b.classList.toggle('on', on); 2169 b.setAttribute('aria-pressed', String(on)); 2170 }); 2171 mentSet('.js-buy', a => { a.href = p.href; }); 2172 mentSet('.js-buy-price', s => { s.textContent = p.label; }); 2173 mentSet('.js-buy-note', s => { s.textContent = p.note; }); 2174 mentSet('.js-alt', a => { a.href = o.href; }); 2175 mentSet('.js-alt-label', s => { s.textContent = p.alt; }); 2176 mentSet('.js-amt', s => { s.textContent = p.amt; }); 2177 mentSet('.js-per', s => { s.textContent = p.per; }); 2178 mentSet('.js-equiv', s => { s.textContent = p.equiv; }); 2179 mentSet('.js-was', s => { s.textContent = p.was; s.style.display = p.was ? '' : 'none'; }); 2180 })); 2181} 2182// Course price-card payment toggle: swaps every price card on the page between 2183// its one-time and 3-month-plan state. Elements tagged data-pay="once|plan" show 2184// for that state only; hero and syllabus cards stay in sync. 2185const payToggles = document.querySelectorAll('.ta-pay-toggle'); 2186if (payToggles.length) { 2187 const setPay = sel => { 2188 payToggles.forEach(tg => tg.querySelectorAll('button').forEach(b => { 2189 const on = b.dataset.pay === sel; 2190 b.classList.toggle('on', on); 2191 b.setAttribute('aria-pressed', String(on)); 2192 })); 2193 document.querySelectorAll('.ta-price-card [data-pay]').forEach(el => { 2194 if (el.closest('.ta-pay-toggle')) return; // the toggles' own buttons stay visible 2195 el.hidden = el.dataset.pay !== sel; 2196 }); 2197 }; 2198 payToggles.forEach(tg => tg.querySelectorAll('button').forEach(btn => 2199 btn.addEventListener('click', () => setPay(btn.dataset.pay)))); 2200} 2201// Checkout click tracking: fires when a visitor heads to Thinkific checkout 2202document.addEventListener('click', (e) => { 2203 const a = e.target.closest('a[href*="/cart/add_product/"], a[href*="/enroll/"]'); 2204 if (!a) return; 2205 try { 2206 const m = a.href.match(/(?:add_product|enroll)\/(\d+)/); 2207 const pid = m ? m[1] : undefined; 2208 if (window.fbq) fbq('track', 'InitiateCheckout', pid ? { content_ids: [pid], content_type: 'product' } : {}); 2209 window.dataLayer = window.dataLayer || []; 2210 window.dataLayer.push({ event: 'begin_checkout', ecommerce: { items: pid ? [{ item_id: pid }] : [] } }); 2211 } catch (_) {} 2212}); 2213// Scroll reveal: sections' direct content blocks fade up as they enter view 2214if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) { 2215 const targets = document.querySelectorAll( 2216 '.ta-cell, .ta-build, .ta-step, .ta-fit, .ta-review, .ta-quote, .ta-route, .ta-evi, ' + 2217 '.ta-section-head, .ta-path, .ta-offer, .ta-founder, .ta-glance, .ta-price-card, .ta-buildrow .media, ' + 2218 '.ta-ment-thread, .ta-ment-pathways, .ta-ment-samples, .ta-prod-feature, ' + 2219 '.ta-ment-vswrap, .ta-ment-faces'); 2220 const io = new IntersectionObserver((entries) => {
2221 entries.forEach((en) => { if (en.isIntersecting) { en.target.classList.add('in'); io.unobserve(en.target); } }); 2222 }, { rootMargin: '0px 0px -8% 0px' }); 2223 targets.forEach((el, i) => { 2224 el.classList.add('ta-reveal'); 2225 el.style.transitionDelay = ((i % 3) * 70) + 'ms'; 2226 io.observe(el); 2227 }); 2228} 2229// Nav link flip-on-hover (duplicate label slides up, original site's signature) 2230document.querySelectorAll('.ta-nav-link').forEach((a) => { 2231 const label = a.textContent.trim(); 2232 a.innerHTML = '<span class="ta-flip"><span data-t="' + label.replace(/"/g, '"') + '">' + label + '</span></span>'; 2233}); 2234// Enterprise/contact scoping form (Formspree) + lead tracking 2235const sform = document.querySelector('form[data-scoping]'); 2236if (sform) { 2237 sform.addEventListener('submit', (e) => { 2238 e.preventDefault(); 2239 const status = document.getElementById('form-status'); 2240 const btn = sform.querySelector('button[type="submit"]'); 2241 btn.disabled = true; 2242 status.textContent = 'Sendingâ¦'; 2243 fetch(sform.action, { method: 'POST', body: new FormData(sform), headers: { Accept: 'application/json' } }) 2244 .then((r) => { 2245 if (!r.ok) throw new Error('send failed'); 2246 sform.reset(); 2247 status.textContent = sform.dataset.thanks || 'Thanks. We reply within one business day.'; 2248 if (window.fbq) fbq('track', 'Lead'); 2249 window.dataLayer = window.dataLayer || []; 2250 window.dataLayer.push({ event: 'generate_lead' }); 2251 }) 2252 .catch(() => { 2253 status.textContent = 'Something went wrong. Please try again in a moment.'; 2254 }) 2255 .finally(() => { btn.disabled = false; }); 2256 }); 2257} 2258// Affiliate referral signup (Kit form, HTML embed) + lead tracking. Kit's endpoint answers 2259// status success | quarantined (bot guard: finish at d.url) | failed (d.errors). 2260const kform = document.querySelector('form[data-kit]'); 2261if (kform) { 2262 kform.addEventListener('submit', (e) => { 2263 e.preventDefault(); 2264 const status = document.getElementById('kit-status'); 2265 const btn = kform.querySelector('button[type="submit"]'); 2266 btn.disabled = true; 2267 status.textContent = 'Signing you upâ¦'; 2268 fetch(kform.action, { method: 'POST', body: new FormData(kform), headers: { Accept: 'application/json' } }) 2269 .then((r) => { if (!r.ok) throw new Error('subscribe failed'); return r.json(); }) 2270 .then((d) => { 2271 if (d.status === 'failed') { 2272 status.textContent = (d.errors && d.errors[0]) || 'Something went wrong. Please try again in a moment.'; 2273 return; 2274 } 2275 if (window.fbq) fbq('track', 'Lead'); 2276 window.dataLayer = window.dataLayer || []; 2277 window.dataLayer.push({ event: 'generate_lead' }); 2278 if (d.status === 'quarantined' && d.url) { window.location.href = d.url; return; } 2279 kform.reset(); 2280 status.textContent = "You're signed up. The welcome email is on its way; check spam if it doesn't arrive."; 2281 }) 2282 .catch(() => { 2283 status.textContent = 'Something went wrong. Please try again in a moment.'; 2284 }) 2285 .finally(() => { btn.disabled = false; }); 2286 }); 2287} 2288 2289</script>
vendor: 1 bytes, line 2289
2289
2290<script src="https://towardsai-tutors-tai-helper.hf.space/helper-widget.js" data-api-base="https://towardsai-tutors-tai-helper.hf.space" defer></script>
2290 2291</body> 2292</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.