@font-face {
  font-family: "IBM Plex Sans";
  src: url("/fonts/ibm-plex-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}
@font-face {
  font-family: Newsreader;
  src: url("/fonts/newsreader-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
}
@font-face {
  font-family: Newsreader;
  src: url("/fonts/newsreader-latin-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/fonts/ibm-plex-mono-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink: #0a0c0e;
  --surface: #14181d;
  --line: #222a31;
  --text: #e9ecee;
  --muted: #8a949d;
  --up: #35c77e;
  --up-deep: #147a4a;
  --paper: #f1f3ef;
  --paper-ink: #151917;
  --paper-muted: #5f6963;
  --paper-line: #cfd5d0;
  --cobalt: #2f62d9;
  --signal: #f2cb45;
  --font-display: Newsreader, Georgia, serif;
  --font-sans: "IBM Plex Sans", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --text-lg: 1.0625rem;
  --text-xl: 1.125rem;
  --text-2xl: 1.375rem;
  --text-3xl: 1.6875rem;
  --text-4xl: 2.0625rem;
  --text-5xl: 2.75rem;
  --text-6xl: 3.375rem;
  --text-7xl: 4.0625rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; -webkit-text-size-adjust: 100%; scrollbar-gutter: stable; }
body { min-height: 100svh; margin: 0; display: flex; flex-direction: column; background: var(--ink); color: var(--text); font: 400 1rem/1.5 var(--font-sans); -webkit-font-smoothing: antialiased; }
main { flex: 1; min-width: 0; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4 { font-size: inherit; font-weight: inherit; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; cursor: pointer; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
strong { font-weight: 600; }
[hidden] { display: none !important; }
::selection { background: var(--up); color: var(--ink); }
:focus-visible { outline: 2px solid var(--up); outline-offset: 2px; box-shadow: 0 0 0 2px var(--ink); }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; transform: translateY(-200%); padding: .75rem 1rem; background: var(--up); color: var(--ink); border-radius: 4px; }
.skip-link:focus { transform: none; }
.display { font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em; line-height: 1.05; text-wrap: balance; }
.text-up { color: var(--up); }
.container { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1.25rem; }
.container-wide { max-width: 90rem; }
.container-reviews { max-width: 80rem; }
.container-faq { max-width: 64rem; }
.document { width: 100%; max-width: 48rem; margin-inline: auto; padding: 4rem 1.25rem; }
.document > h1 { font-size: var(--text-4xl); }
.section-paper { background: var(--paper); color: var(--paper-ink); color-scheme: light; }
.section-white { background: white; color: var(--paper-ink); color-scheme: light; }
.section-blue { background: var(--cobalt); color: white; }
.section-yellow { background: var(--signal); color: var(--paper-ink); color-scheme: light; }
.section-dark { background: var(--paper-ink); color: white; }
.section-standard { padding-block: 3.5rem; }
.section-course { padding-block: 4rem; }
.medium-heading { font-size: var(--text-4xl); }
.large-heading { font-size: var(--text-5xl); }
.button { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 2px; padding: .75rem 1.5rem; background: var(--up); color: var(--ink); font-weight: 500; text-align: center; transition: opacity 150ms, transform 150ms, background-color 150ms, border-color 150ms, color 150ms; }
.button:hover { opacity: .9; }
.button:active { transform: translateY(1px); opacity: .8; }
.button-outline { background: transparent; border: 1px solid rgb(21 25 23 / .3); color: var(--paper-ink); }
.button-outline:hover { background: white; border-color: var(--paper-ink); opacity: 1; }
.button-large { min-height: 4rem; min-width: 15rem; padding: 1rem 2.5rem; font-size: var(--text-xl); }
.button-dark { background: var(--paper-ink); color: white; }
.button-dark:hover { background: var(--cobalt); opacity: 1; }
.button-ghost { border: 1px solid rgb(255 255 255 / .3); background: transparent; color: white; }
.button-ghost:hover { border-color: var(--up); color: var(--up); opacity: 1; }
.eyebrow { font: .75rem/1rem var(--font-mono); text-transform: uppercase; }

/* Shared navigation and footer. */
.site-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--line); background: black; }
.site-nav { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: 5rem; padding-inline: .75rem; }
.site-logo { flex-shrink: 0; padding-block: .5rem; }
.site-logo img { width: 4rem; height: 4rem; object-fit: contain; clip-path: inset(.4%); }
.nav-actions { display: flex; flex-shrink: 0; align-items: center; gap: .5rem; font-size: .875rem; line-height: 1.25rem; }
.nav-actions .button { min-height: 2.75rem; padding: .625rem .75rem; border-radius: 4px; white-space: nowrap; }
.nav-actions .button-login { border: 1px solid rgb(255 255 255 / .3); background: transparent; color: var(--text); font-weight: 400; }
.button-login:hover { border-color: rgb(255 255 255 / .6); background: rgb(255 255 255 / .05); color: white; opacity: 1; }
.site-footer { border-top: 1px solid var(--line); background: black; color: var(--muted); }
.footer-inner { display: flex; flex-direction: column; justify-content: center; gap: 2rem; padding: 1.5rem 1.25rem; }
.footer-brand { display: flex; align-items: center; gap: 1.5rem; }
.footer-brand a { flex-shrink: 0; }
.footer-brand img { width: 5rem; height: 5rem; object-fit: contain; clip-path: inset(.4%); }
.footer-brand p { line-height: 1.625; }
.site-footer nav { display: flex; flex-wrap: wrap; align-items: center; column-gap: 2rem; row-gap: 1rem; }
.site-footer nav a { padding-block: .25rem; color: rgb(233 236 238 / .8); }
.site-footer nav a:hover { color: white; }

/* Home page. */
.home-hero { position: relative; isolation: isolate; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-backdrop { position: absolute; inset: 0; pointer-events: none; background: url("/media/trading-workspace.jpg") center/cover; }
.hero-backdrop video { width: 100%; height: 100%; object-fit: cover; transform: scale(1.05); filter: blur(3px); }
.hero-backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent, transparent, rgb(10 12 14 / .8)), rgb(10 12 14 / .7); }
.hero-content { position: relative; display: flex; flex-direction: column; justify-content: center; padding-block: 5rem; text-align: center; }
.hero-content h1 { font-size: clamp(2.75rem, 7.2vw, 6.375rem); }
.hero-content h1 > span { display: block; }
.hero-content h1 > span + span { animation-delay: 120ms; }
.hero-content > p { max-width: 56rem; margin: 1.75rem auto 0; color: rgb(233 236 238 / .9); font-size: var(--text-xl); line-height: 1.625; text-wrap: balance; animation-delay: 240ms; }
.hero-content > div { margin-top: 2.25rem; animation-delay: 360ms; }
.hero-action { min-height: 3.5rem; min-width: 13rem; padding: .875rem 2.25rem; border-radius: 4px; font-size: var(--text-xl); }
.video-toggle { position: absolute; right: 1.25rem; bottom: 1.25rem; z-index: 10; display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid rgb(255 255 255 / .2); border-radius: 50%; background: rgb(10 12 14 / .4); color: rgb(255 255 255 / .7); }
.video-toggle:hover { background: rgb(10 12 14 / .7); color: white; }
.video-toggle svg { width: .75rem; height: .75rem; }
.section-home { padding-block: 6rem; text-align: center; }
.home-heading { font-size: var(--text-5xl); }
.home-heading span { display: block; margin-top: .5rem; }
.intro-copy { margin-top: 3rem; color: rgb(255 255 255 / .9); font-size: var(--text-xl); line-height: 1.625; text-wrap: balance; }
.intro-copy + .intro-copy { margin-top: 1.5rem; }
.firm-strip { display: flex; flex-direction: column; align-items: center; gap: 2rem; margin-top: 4rem; padding-top: 2.5rem; border-top: 1px solid rgb(255 255 255 / .2); }
.firm-strip > p { flex-shrink: 0; white-space: nowrap; color: rgb(255 255 255 / .8); font-size: var(--text-lg); }
.firm-logos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; width: 100%; gap: 1.5rem 2.5rem; }
.firm-logos a { display: flex; min-width: 0; align-items: center; justify-content: center; padding-block: .75rem; transition: opacity 150ms; }
.firm-logos a:hover { opacity: .75; }
.firm-logos img { height: 4rem; width: 100%; max-width: 12rem; object-fit: contain; filter: brightness(0) invert(1); }
.firm-logos .two-sigma { filter: url(#two-sigma-white); }
.filter-definitions { position: absolute; width: 0; height: 0; pointer-events: none; }
.eyebrow-pill { display: inline-flex; margin-bottom: 3rem; padding: .75rem 1.5rem; border-radius: 999px; background: rgb(20 122 74 / .1); box-shadow: 0 0 0 1px rgb(20 122 74 / .2); color: var(--up-deep); font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.overview-copy { max-width: 72rem; margin: 2.5rem auto 0; color: var(--paper-muted); font-size: var(--text-xl); line-height: 1.625; text-wrap: balance; }
.stage-grid { display: grid; gap: 1.5rem; margin-top: 5rem; }
.stage-grid > div { padding: 2.25rem 1.5rem; border-radius: .75rem; background: white; box-shadow: 0 0 0 1px var(--paper-line); }
.stage-grid h3 { color: var(--up-deep); font-size: var(--text-2xl); font-weight: 600; line-height: 1.333; }
.stage-grid p { max-width: 24rem; margin: 1.25rem auto 0; color: var(--paper-muted); font-size: var(--text-lg); line-height: 1.625; }
.overview-quote { max-width: 64rem; margin: 4rem auto 0; padding: 2.5rem 2rem; border-radius: .75rem; background: var(--ink); color: var(--text); }
.overview-quote blockquote { font-size: var(--text-2xl); line-height: 1.625; }
.overview-quote figcaption { margin-top: 1.25rem; color: rgb(233 236 238 / .65); }
.overview-action { min-height: 4rem; margin-top: 2.5rem; padding: 1rem 2rem; border-radius: 4px; font-size: var(--text-xl); }
.hero-enter { animation: hero-enter 850ms cubic-bezier(.22, 1, .36, 1) both; }
.scroll-reveal { transition: opacity 850ms cubic-bezier(.22, 1, .36, 1), transform 850ms cubic-bezier(.22, 1, .36, 1), filter 850ms cubic-bezier(.22, 1, .36, 1); }
.reveal-pending { opacity: 0; transform: translateY(16px); filter: blur(6px); }
@keyframes hero-enter { from { opacity: 0; transform: translateY(16px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }

/* Masterclass sales page. */
.masterclass-hero { text-align: center; }
.masterclass-hero > .container { display: flex; flex-direction: column; align-items: center; padding-top: 2rem; padding-bottom: 2.5rem; }
.masterclass-hero h1 { max-width: 72rem; font-size: 2.25rem; }
.course-tagline { margin-top: 1rem; font-size: var(--text-xl); text-wrap: balance; }
.course-tagline strong { color: var(--up-deep); }
.course-intro { max-width: 72rem; margin-top: 1.25rem; color: var(--paper-muted); font-size: var(--text-lg); line-height: 1.625; text-wrap: balance; }
.hero-purchase { display: flex; width: 100%; flex-direction: column; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.hero-price { font-size: var(--text-4xl); font-weight: 500; line-height: 1.11; }
.hero-price span { display: block; margin-top: .75rem; color: var(--paper-muted); font-size: .875rem; font-weight: 400; line-height: 1.25rem; }
.hero-buttons { display: grid; width: 100%; max-width: 24rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.hero-buttons .button { min-width: 0; min-height: 3.5rem; padding: .75rem; font-size: 1rem; }
.purchase-journey { position: relative; }
.review-grid { display: grid; gap: 1.5rem; padding-bottom: 3.5rem; }
.review-card { display: flex; flex-direction: column; border: 1px solid var(--paper-line); border-radius: .5rem; padding: 1.25rem; background: rgb(255 255 255 / .6); }
.stars { color: var(--up-deep); font-size: var(--text-xl); letter-spacing: .16em; }
.review-card blockquote { flex: 1; margin-top: 1rem; font-size: var(--text-xl); line-height: 1.375; text-wrap: initial; }
.review-card figcaption { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; border-top: 1px solid var(--paper-line); padding-top: 1.25rem; }
.review-initial { display: flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: 50%; background: rgb(20 122 74 / .1); color: var(--up-deep); font: .75rem var(--font-mono); }
.review-name { display: block; font-weight: 500; }
.review-role { display: block; margin-top: .125rem; color: var(--paper-muted); font-size: .75rem; line-height: 1rem; }
.audience-grid { display: grid; gap: 2.5rem; padding-block: 3.5rem; }
.audience-grid h2 { border-bottom: 1px solid var(--paper-line); padding-bottom: 1.5rem; font-size: var(--text-3xl); }
.audience-grid ul { margin-top: 1.5rem; padding-left: 1.25rem; list-style: disc; color: var(--paper-muted); font-size: var(--text-lg); line-height: 1.625; }
.audience-grid li { padding-left: .5rem; }
.audience-grid li + li { margin-top: 1rem; }
.audience-grid li::marker, .price-card li::marker { color: var(--up-deep); }
.audience-grid strong { color: var(--paper-ink); }
#contents { scroll-margin-top: 6rem; }
.section-heading { text-align: center; }
.section-heading h2 { font-size: var(--text-5xl); }
.section-heading > p { max-width: 48rem; margin: 1.5rem auto 0; font-size: var(--text-xl); line-height: 1.625; text-wrap: balance; }
.section-dark .section-heading > p { color: rgb(255 255 255 / .75); }
.section-paper .section-heading > p { color: var(--paper-muted); }
.section-heading > .lesson-count { color: rgb(255 255 255 / .6); font-size: 1rem; }
.curriculum { margin-top: 2.5rem; border-top: 1px solid rgb(255 255 255 / .2); }
.curriculum details { border-bottom: 1px solid rgb(255 255 255 / .15); }
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.curriculum summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.5rem; }
.curriculum summary h3 { font-size: var(--text-xl); font-weight: 600; line-height: 1.4; }
.curriculum summary p { margin-top: .75rem; color: rgb(255 255 255 / .7); line-height: 1.625; }
.chapter-meta { display: flex; flex-shrink: 0; align-items: center; gap: 1.25rem; color: rgb(255 255 255 / .7); }
.chapter-meta > span { display: none; }
.chevron { width: 1rem; height: 1rem; flex-shrink: 0; transition: transform 200ms; }
details[open] > summary .chevron { transform: rotate(180deg); }
.chapter-body { padding-top: 1.5rem; padding-bottom: 2rem; }
.chapter-body h4 { color: rgb(255 255 255 / .7); font-weight: 500; }
.chapter-body ol { display: grid; margin-top: 1rem; column-gap: 2.5rem; }
.chapter-body li { border-bottom: 1px solid rgb(255 255 255 / .1); padding-block: .75rem; color: rgb(255 255 255 / .85); }
.curriculum-action { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; margin-top: 2.5rem; text-align: center; }
.curriculum-action p { color: rgb(255 255 255 / .7); }
.project-grid { display: grid; gap: 2rem 4rem; margin-top: 2.5rem; }
.project-grid article { border-top: 1px solid var(--paper-line); padding-top: 1.25rem; }
.project-grid h3 { font-size: var(--text-xl); font-weight: 600; line-height: 1.4; }
.project-grid p { margin-top: .75rem; color: var(--paper-muted); font-size: var(--text-lg); line-height: 1.625; }
.tools-heading { text-align: center; }
.tools-heading h2 { font-size: var(--text-4xl); }
.tools-heading p { margin-top: 1.25rem; color: rgb(21 25 23 / .7); line-height: 1.625; }
.tool-logos { display: grid; gap: 1px; margin-top: 2.5rem; background: rgb(21 25 23 / .25); }
.tool-logos > div { display: flex; min-width: 0; min-height: 8rem; align-items: center; justify-content: center; padding: 1.5rem; background: white; }
.tool-logos img { width: 10rem; }
.tool-logos .pandas-logo { width: 9rem; }
.tool-logos .alpaca-logo { width: 12rem; }
.tool-logos .quantconnect-logo { width: 11rem; filter: brightness(0); }
.tool-logos-five { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2rem; }
.tool-logos-five > div { min-height: 6rem; padding: 1rem; }
.tool-logos-five > div:last-child { grid-column: span 2; }
.tool-logos-five .alpaca-logo { width: 10rem; }
.benefits-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.benefits-intro { max-width: 58ch; margin-top: 1.25rem; color: rgb(255 255 255 / .75); font-size: var(--text-lg); line-height: 1.625; }
.benefit-list { margin-top: 2rem; border-top: 1px solid rgb(255 255 255 / .2); }
.benefit-list li { border-bottom: 1px solid rgb(255 255 255 / .15); padding-block: 1.25rem; line-height: 1.625; }
.benefit-list h3 { font-size: var(--text-lg); font-weight: 600; }
.benefit-list p { margin-top: .25rem; color: rgb(255 255 255 / .7); }
.benefits-note { max-width: 58ch; margin-top: 1.5rem; color: rgb(255 255 255 / .75); font-size: .875rem; line-height: 1.625; }
.price-card { min-width: 0; border: 1px solid rgb(255 255 255 / .2); padding: 1.75rem; background: white; color: var(--paper-ink); }
.price-card h3 { font-size: var(--text-2xl); }
.card-price { margin-top: 1.25rem; font-size: var(--text-4xl); font-weight: 600; line-height: 1.11; }
.card-note { margin-top: .5rem; color: var(--paper-muted); font-size: .875rem; line-height: 1.25rem; }
.price-card ul { margin-top: 1.75rem; padding-left: 1rem; list-style: disc; line-height: 1.625; }
.price-card li + li { margin-top: 1rem; }
.price-card .button { width: 100%; min-height: 3.5rem; margin-top: 2rem; font-size: var(--text-lg); }
.checkout-note { margin-top: 1rem; color: var(--paper-muted); font-size: .75rem; line-height: 1.625; }
.faq-section { border-top: 1px solid var(--paper-line); }
.faq-section .large-heading { text-align: center; }
.faq-list { margin-top: 2.5rem; border-top: 1px solid var(--paper-line); }
.faq-list details { border-bottom: 1px solid var(--paper-line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.25rem; font-size: var(--text-lg); font-weight: 600; line-height: 1.55; }
.faq-list .chevron { color: var(--paper-muted); }
.faq-list details > p { padding-bottom: 1.75rem; color: var(--paper-muted); font-size: var(--text-lg); line-height: 1.625; }
.final-masterclass { text-align: center; }
.final-masterclass .document { padding-block: 3.5rem; }
.final-masterclass .document > p:first-of-type { max-width: 58ch; margin: 1.25rem auto 0; color: rgb(255 255 255 / .8); line-height: 1.625; }
.final-price { margin-top: 1.75rem; font: var(--text-3xl)/1.2 var(--font-mono); }
.final-masterclass .button { width: 100%; margin-top: 1.75rem; }
.final-masterclass .final-note { max-width: 58ch; margin: 2rem auto 0; color: rgb(255 255 255 / .8); font-size: .75rem; line-height: 1.625; }
.price-bar { position: sticky; bottom: 0; z-index: 30; border-top: 1px solid var(--line); background: rgb(10 12 14 / .95); backdrop-filter: blur(8px); }
.price-bar .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .75rem; }
.price-bar .container > div { min-width: 0; }
.bar-price { font: var(--text-lg)/1 var(--font-mono); }
.bar-note { margin-top: .25rem; color: var(--muted); font-size: .75rem; line-height: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.price-bar .button { flex-shrink: 0; padding: .625rem 1.25rem; font-size: .875rem; line-height: 1.25rem; }

/* Course catalog. */
.courses-title { padding-block: 3rem; font-size: var(--text-4xl); }
.offer-section { border-block: 1px solid var(--cobalt); }
.section-offers { padding-block: 5rem; }
.offer-heading { display: grid; gap: 1.5rem; }
.offer-heading .eyebrow { color: var(--signal); }
.offer-heading h2 { margin-top: .75rem; }
.offer-heading > p { max-width: 36rem; color: rgb(255 255 255 / .75); line-height: 1.625; }
.offer-grid { display: grid; gap: 1.25rem; margin-top: 3rem; }
.offer-card { display: flex; flex-direction: column; border: 1px solid rgb(255 255 255 / .2); padding: 1.75rem; background: var(--paper-ink); }
.offer-challenge { border-color: var(--paper-ink); background: var(--signal); color: var(--paper-ink); }
.offer-labels { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.offer-labels > p:last-child { color: rgb(255 255 255 / .45); font: .75rem/1rem var(--font-mono); }
.offer-masterclass .eyebrow { color: var(--up); }
.offer-card h3 { max-width: 36rem; margin-top: 1rem; font-size: var(--text-3xl); }
.offer-copy { max-width: 36rem; margin-top: 1rem; color: rgb(255 255 255 / .7); font-size: .875rem; line-height: 1.625; }
.offer-challenge .offer-copy { color: rgb(21 25 23 / .75); }
.offer-card ul { margin-top: 1.75rem; border-top: 1px solid rgb(255 255 255 / .15); padding-top: 1.5rem; font: .75rem/1rem var(--font-mono); }
.offer-card li + li { margin-top: .75rem; }
.offer-challenge ul { border-color: rgb(21 25 23 / .3); }
.offer-purchase { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 2.5rem; }
.offer-purchase > p { font: var(--text-xl)/1.4 var(--font-mono); }
.offer-purchase > p span { display: block; margin-top: .25rem; font-size: .75rem; line-height: 1rem; }
.offer-masterclass .offer-purchase > p span { color: rgb(255 255 255 / .7); }
.offer-purchase .button { padding: .625rem 1rem; font-size: .875rem; line-height: 1.25rem; }
.offer-challenge .button { border: 1px solid var(--paper-ink); }
.offer-challenge .button:hover { background: transparent; color: var(--paper-ink); }

/* Challenge sales page. */
.challenge-hero { border-bottom: 1px solid var(--paper-ink); }
.challenge-hero-grid { display: grid; min-width: 0; gap: 3rem; padding-block: 4rem; }
.challenge-hero-grid > div { min-width: 0; }
.challenge-hero h1 { max-width: 48rem; font-size: 2.5rem; }
.challenge-description { max-width: 42rem; margin-top: 1.5rem; color: rgb(21 25 23 / .7); font-size: var(--text-lg); line-height: 1.625; }
.challenge-hero .button { margin-top: 2rem; }
.challenge-price-note { margin-top: 1rem; color: rgb(21 25 23 / .6); font-size: .875rem; line-height: 1.25rem; }
.bot-preview { min-width: 0; overflow: hidden; border: 1px solid var(--paper-ink); background: var(--paper-ink); color: white; font: .75rem/1rem var(--font-mono); }
.bot-heading { padding: 1rem 1.25rem; border-bottom: 1px solid rgb(255 255 255 / .15); }
.bot-heading p:first-child { color: var(--up); }
.bot-heading p + p { margin-top: .25rem; font-size: .875rem; line-height: 1.25rem; }
.bot-code { min-width: 0; border-bottom: 1px solid rgb(255 255 255 / .15); padding: 1.25rem; }
.bot-code p + p { margin-top: .75rem; }
.bot-code span { color: var(--cobalt); }
.bot-code .code-indent { padding-left: 1.25rem; }
.bot-log { padding: 1.25rem; }
.bot-log li { display: grid; min-width: 0; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: .5rem; border-bottom: 1px solid rgb(255 255 255 / .1); padding-block: .75rem; }
.bot-log li:first-child { padding-top: 0; }
.bot-log li:last-child { border-bottom: 0; }
.bot-log li span:first-child { color: rgb(255 255 255 / .35); }
.bot-log li span:last-child { color: var(--up); }
.challenge-section { padding-block: 5rem; }
.challenge-review { max-width: 64rem; margin-top: 2rem; border: 1px solid rgb(255 255 255 / .2); padding: 1.75rem; background: var(--paper-ink); }
.challenge-review .stars { color: var(--signal); font-size: var(--text-2xl); letter-spacing: .18em; }
.challenge-review blockquote { margin-top: 1.75rem; font-size: var(--text-2xl); line-height: 1.375; text-wrap: initial; }
.challenge-review figcaption { margin-top: 2rem; border-top: 1px solid rgb(255 255 255 / .15); padding-top: 1.25rem; }
.challenge-review figcaption p:first-child { font-weight: 500; }
.challenge-review figcaption p + p { margin-top: .25rem; color: rgb(255 255 255 / .5); font-size: .75rem; line-height: 1rem; }
.challenge-copy { max-width: 64rem; }
.challenge-copy.narrow { max-width: 48rem; }
.challenge-copy > p { margin-top: 1.5rem; font-size: var(--text-lg); line-height: 1.625; }
.challenge-copy > p + p { margin-top: 1rem; }
.section-paper .challenge-copy p { color: var(--paper-muted); }
.section-dark .challenge-copy p { color: rgb(255 255 255 / .6); }
.section-yellow .challenge-copy p { color: rgb(21 25 23 / .7); }
.challenge-steps { margin-top: 3rem; border-top: 1px solid rgb(255 255 255 / .2); }
.challenge-steps li { display: grid; gap: .75rem; border-bottom: 1px solid rgb(255 255 255 / .15); padding-block: 1.5rem; }
.step-number { color: var(--up); font: .75rem/1rem var(--font-mono); }
.challenge-steps h3 { font-size: var(--text-2xl); }
.challenge-steps li p { color: rgb(255 255 255 / .55); font-size: .875rem; line-height: 1.625; }
.challenge-steps li p + p { margin-top: .5rem; color: white; line-height: 1.25rem; }
.challenge-steps li:last-child { border-color: var(--signal); color: var(--signal); }
.challenge-steps li:last-child .step-number, .challenge-steps li:last-child p + p { color: var(--signal); }
.challenge-steps li:last-child p { color: rgb(242 203 69 / .8); }
.included-list { margin-top: 2.5rem; border-top: 1px solid rgb(255 255 255 / .2); }
.included-list > div { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .75rem; border-bottom: 1px solid rgb(255 255 255 / .15); padding-block: 1.25rem; }
.included-list > div > span:first-child { color: rgb(255 255 255 / .35); font: .75rem/1rem var(--font-mono); }
.included-list > div > span:last-child { color: var(--up); font: .75rem/1rem var(--font-mono); }
.challenge-price-card .eyebrow { color: var(--paper-muted); }
.challenge-price-card .card-price { margin-top: .75rem; font: var(--text-3xl)/1.2 var(--font-mono); }
.challenge-price-card .card-note { margin-top: 1.25rem; line-height: 1.625; }
.prerequisite { margin-top: .75rem; border-left: 2px solid var(--cobalt); padding-left: .75rem; color: var(--paper-muted); font-size: .875rem; line-height: 1.625; }
.challenge-price-card .button { min-height: 0; margin-top: 1.75rem; font-size: 1rem; }
.challenge-audience { display: grid; gap: 3rem; }
.challenge-audience h2 { font-size: var(--text-4xl); }
.challenge-audience ul { margin-top: 2rem; border-top: 1px solid var(--paper-line); }
.challenge-audience li { border-bottom: 1px solid var(--paper-line); padding-block: 1rem; font-size: .875rem; line-height: 1.625; }
.challenge-faqs { max-width: 56rem; margin-top: 2.5rem; border-top: 1px solid var(--paper-line); }
.challenge-faqs > div { border-bottom: 1px solid var(--paper-line); padding-block: 1.5rem; }
.challenge-faqs dt { font-size: var(--text-xl); }
.challenge-faqs dd { margin-top: .75rem; color: var(--paper-muted); line-height: 1.625; }
.masterclass-crosslink { display: grid; gap: 2.5rem; }
.masterclass-crosslink h2 { max-width: 42rem; font-size: var(--text-3xl); }
.masterclass-crosslink p { max-width: 42rem; margin-top: 1rem; color: rgb(255 255 255 / .6); line-height: 1.625; }
.masterclass-crosslink .button { width: fit-content; padding: .75rem 1.25rem; font-size: .875rem; line-height: 1.25rem; }
.final-challenge { text-align: center; }
.final-challenge .document { padding-block: 5rem; }
.final-challenge .final-price { margin-top: 1.5rem; }
.final-challenge .button { margin-top: 1.75rem; }

/* Blog, policies, support, and error page. */
.policy-date { margin-top: 1rem; color: var(--muted); font-size: .875rem; line-height: 1.25rem; }
.policy-prose { margin-top: 2.5rem; color: rgb(233 236 238 / .9); font-size: 15px; }
.prose { line-height: 1.75; overflow-wrap: anywhere; }
.prose > * + * { margin-top: 1.15rem; }
.prose h2, .prose h3 { font-family: var(--font-display); font-weight: 400; letter-spacing: -.01em; }
.prose h2 { margin-top: 2.5rem; font-size: 1.6rem; }
.prose h3 { margin-top: 2rem; font-size: 1.25rem; }
.prose a { color: var(--up); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.35rem; list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .4rem; }
.prose code { border: 1px solid var(--line); border-radius: 4px; padding: .1rem .35rem; background: var(--surface); font: .9em var(--font-mono); }
.prose pre { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; padding: 1rem 1.15rem; background: var(--surface); overflow-wrap: normal; tab-size: 4; }
.prose pre code { border: 0; padding: 0; background: none; font-size: .85rem; line-height: 1.65; }
.prose blockquote { border-left: 2px solid var(--up); padding-left: 1rem; color: var(--muted); }
.prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: .9rem; overflow-wrap: normal; }
.prose th, .prose td { min-width: 8rem; border: 1px solid var(--line); padding: .5rem .7rem; text-align: left; }
.prose th { color: var(--muted); font: .75rem var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.prose img { max-width: 100%; height: auto; margin-inline: auto; border-radius: 8px; }
.prose hr { margin-block: 2.5rem; border: 0; border-top: 1px solid var(--line); }
.prose li > p + p, .prose li > ul, .prose li > ol { margin-top: .75rem; }
.blog-index > h1 { font-size: var(--text-5xl); }
.empty-posts { margin-top: 3rem; color: var(--muted); }
.post-list { margin-top: 3rem; border-block: 1px solid var(--line); }
.post-list li + li { border-top: 1px solid var(--line); }
.post-list a { display: block; padding-block: 2rem; }
.post-list h2 { font-size: var(--text-3xl); transition: color 150ms; }
.post-list a:hover h2 { color: var(--up); }
.post-list p { margin-top: .75rem; color: var(--muted); line-height: 1.625; }
.blog-post { padding-block: 3rem; }
.back-link { color: var(--muted); font-size: .875rem; }
.back-link:hover { color: var(--text); }
.blog-post header { margin-top: 2rem; border-bottom: 1px solid var(--line); padding-bottom: 2rem; }
.blog-post h1 { font-size: var(--text-4xl); line-height: 1.25; }
.blog-post header p { margin-top: 1.25rem; color: var(--muted); font-size: var(--text-lg); line-height: 1.625; }
.blog-prose { margin-top: 2.5rem; color: rgb(233 236 238 / .9); font-size: 1.125rem; line-height: 1.85; }
.blog-prose > * + * { margin-top: 1.5rem; }
.blog-prose h1, .blog-prose h2, .blog-prose h3, .blog-prose h4 { line-height: 1.25; text-wrap: balance; scroll-margin-top: 7rem; }
.blog-prose h1, .blog-prose h2 { margin-top: 3rem; font-size: 2rem; }
.blog-prose h3 { font-size: 1.5rem; }
.blog-prose h4 { margin-top: 2rem; font-size: 1.125rem; font-weight: 600; }
.blog-prose pre, .blog-prose pre code { font-size: .9375rem; line-height: 1.7; }
.support-intro { max-width: 42rem; margin-top: 1.5rem; color: var(--muted); line-height: 1.625; }
.support-email { display: inline-block; margin-top: 1rem; color: var(--up); font-size: var(--text-lg); text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.support-page section { margin-top: 3rem; border-top: 1px solid var(--line); padding-top: 2rem; }
.support-page section + section { margin-top: 2.5rem; }
.support-page section h2 { font-size: var(--text-2xl); }
.support-page section p { margin-top: 1rem; color: var(--muted); line-height: 1.625; }
.support-page section .button { margin-top: 1.5rem; border-radius: 4px; padding: .75rem 1.25rem; }
.support-note { margin-top: 2.5rem; border-top: 1px solid var(--line); padding-top: 2rem; color: var(--muted); font-size: .875rem; line-height: 1.625; }
.error-page > p { margin-top: 1.5rem; color: var(--muted); }
.error-page .button { margin-top: 2rem; }
.error-page .back-link { display: block; margin-top: 1.5rem; }

@media (min-width: 640px) {
  .site-nav { height: 5.5rem; padding-inline: 1.25rem; gap: 1rem; }
  .site-logo img { width: 4.5rem; height: 4.5rem; }
  .nav-actions { gap: 1.25rem; font-size: var(--text-lg); line-height: 1.55; }
  .nav-actions .button { padding-inline: 1rem; }
  .container-wide, .container-reviews, .section-course { padding-inline: 2.5rem; }
  .hero-content { padding-block: 6rem; }
  .hero-content > p { font-size: 1.25rem; }
  .masterclass-hero > .container { padding-top: 5rem; padding-bottom: 3.5rem; }
  .masterclass-hero h1 { font-size: clamp(2.75rem, 4.5vw, 4.5rem); }
  .course-tagline { margin-top: 1.5rem; font-size: var(--text-2xl); }
  .course-intro { margin-top: 2rem; font-size: var(--text-xl); }
  .hero-purchase { width: auto; gap: 1.25rem; margin-top: 2.5rem; }
  .hero-buttons { display: flex; width: auto; max-width: none; flex-wrap: wrap; justify-content: center; gap: 1rem; }
  .hero-buttons .button { min-height: 4rem; min-width: 15rem; padding: 1rem 2.5rem; font-size: var(--text-xl); }
  .review-grid { padding-bottom: 5rem; }
  .review-card { padding: 1.75rem; }
  .review-card blockquote { margin-top: 1.5rem; font-size: var(--text-2xl); }
  .review-card figcaption { margin-top: 2rem; }
  .audience-grid { gap: 3rem; padding-block: 5rem; }
  .audience-grid ul { margin-top: 2rem; }
  .audience-grid li + li { margin-top: 1.5rem; }
  .section-course { padding-block: 6rem; }
  #contents { scroll-margin-top: 7rem; }
  .curriculum { margin-top: 4rem; }
  .curriculum summary { padding-block: 2rem; }
  .chapter-meta > span { display: inline; }
  .chapter-body ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .curriculum-action { margin-top: 3.5rem; }
  .project-grid { margin-top: 4rem; row-gap: 3rem; }
  .project-grid article { padding-top: 1.75rem; }
  .project-grid p { margin-top: 1rem; }
  .section-standard { padding-block: 5rem; }
  .tool-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tool-logos-five { margin-top: 2.5rem; }
  .tool-logos-five > div { min-height: 7rem; padding: 1.5rem; }
  .benefits-layout { gap: 3rem; }
  .faq-list { margin-top: 3.5rem; }
  .faq-list summary { padding-block: 1.75rem; }
  .final-masterclass .document { padding-block: 5rem; }
  .final-masterclass .button { width: auto; }
}

@media (min-width: 768px) {
  .document { padding-block: 6rem; }
  .document > h1 { font-size: var(--text-5xl); }
  .medium-heading { font-size: var(--text-5xl); }
  .large-heading, .section-heading h2 { font-size: var(--text-6xl); }
  .home-heading { font-size: var(--text-6xl); }
  .intro-copy, .overview-copy { font-size: var(--text-2xl); }
  .stage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .overview-quote { padding: 3rem; }
  .overview-quote blockquote { font-size: var(--text-3xl); }
  .course-tagline { font-size: var(--text-3xl); }
  .course-intro { font-size: var(--text-2xl); }
  .hero-price { font-size: var(--text-5xl); }
  .review-grid, .audience-grid, .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-card { padding: 2rem; }
  .audience-grid { column-gap: 4rem; }
  .audience-grid h2 { font-size: var(--text-4xl); }
  .audience-grid ul { font-size: var(--text-xl); }
  .curriculum summary h3, .project-grid h3 { font-size: var(--text-2xl); }
  .tools-heading h2 { font-size: var(--text-5xl); }
  .faq-list summary { font-size: var(--text-xl); }
  .final-masterclass .document { padding-block: 6rem; }
  .offer-heading, .offer-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .offer-heading { align-items: end; }
  .offer-heading > p { justify-self: end; }
  .section-offers { padding-block: 6rem; }
  .offer-card { padding: 2rem; }
  .offer-masterclass h3 { font-size: var(--text-4xl); }
  .offer-masterclass ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; color: rgb(255 255 255 / .8); }
  .offer-masterclass li + li { margin-top: 0; }
  .challenge-hero h1 { font-size: 3.375rem; }
  .challenge-section { padding-block: 6rem; }
  .challenge-review { padding: 2.25rem; }
  .challenge-review .stars, .challenge-review blockquote { font-size: var(--text-3xl); }
  .challenge-steps li { grid-template-columns: 5rem 15rem minmax(0, 1fr); align-items: start; gap: 1.5rem; }
  .masterclass-crosslink { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-block: 5rem; }
  .masterclass-crosslink h2 { font-size: var(--text-4xl); }
  .final-challenge .document { padding-block: 6rem; }
  .blog-index > h1 { font-size: var(--text-6xl); }
  .blog-post { padding-block: 5rem; }
  .blog-post h1 { font-size: var(--text-5xl); }
  .blog-post header { padding-bottom: 2.5rem; }
  .blog-prose { margin-top: 3rem; }
}

@media (min-width: 1024px) {
  .site-nav { padding-inline: 2.5rem; }
  .footer-inner { flex-direction: row; align-items: center; justify-content: space-between; padding-inline: 2.5rem; }
  .site-footer nav { justify-content: end; }
  .hero-content { min-height: 80svh; padding-block: 5rem; }
  .section-home { padding-block: 8rem; }
  .home-heading { font-size: var(--text-7xl); }
  .firm-strip { flex-direction: row; gap: 3rem; text-align: left; }
  .firm-logos { flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .stage-grid > div { padding: 2.5rem; }
  .stage-grid p { font-size: var(--text-xl); }
  .masterclass-hero > .container { padding-top: 6rem; padding-bottom: 4rem; }
  .review-grid { padding-bottom: 6rem; }
  .audience-grid { column-gap: 6rem; padding-block: 6rem; }
  .section-course { padding-block: 8rem; }
  .tool-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tool-logos-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .tool-logos-five > div:last-child { grid-column: auto; }
  .benefits-layout { grid-template-columns: minmax(0, 1fr) 22rem; align-items: start; padding-block: 6rem; }
  .challenge-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: 4rem; padding-block: 5rem; }
  .challenge-price-card { position: sticky; top: 6rem; }
  .challenge-audience { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-enter { animation: none; }
  .scroll-reveal { transition: none; }
  .reveal-pending { opacity: 1; transform: none; filter: none; }
  .chevron { transition: none; }
}
