/* Public learning journey. App styles remain scoped to the authenticated workspace. */
.landing-page { overflow-x: clip; }
.landing-container { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.landing-page section[id] { scroll-margin-top: 96px; }
.landing-header { display: flex; align-items: center; justify-content: space-between; gap: 28px; width: min(1280px, calc(100% - 64px)); min-height: 92px; margin: auto; }
.landing-header .brand { font-size: 27px; }
.landing-links, .landing-header-actions { display: flex; align-items: center; gap: 26px; }
.landing-links a, .landing-signin { font-size: 13px; font-weight: 500; min-height: 44px; display: inline-flex; align-items: center; }
.landing-links a { color: var(--muted); }
.landing-header-actions { gap: 20px; }
.landing-header .language-control select { background: transparent; min-width: 102px; }
.landing-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 64px; padding-block: 48px 64px; }
.landing-hero .eyebrow { color: #5c6854; max-width: 42ch; font-size: 11px; }
.landing-hero h1 { font-size: clamp(38px,4.7vw,62px); line-height: 1.08; letter-spacing: -.04em; margin: 20px 0 24px; text-wrap: balance; }
.landing-hero h1 span { color: var(--purple); }
.landing-lead { font-size: 17px; line-height: 1.7; color: var(--muted); max-width: 47ch; margin-bottom: 26px; }
.landing-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.landing-ctas .button { min-height: 50px; }
.landing-micro { font-size: 12px; color: var(--muted); line-height: 1.6; margin: 13px 0 24px; }
.science-pill { display: inline-flex; gap: 10px; align-items: center; padding: 12px 15px; border: 1px solid #dce3d4; border-radius: 10px; background: #edf1e6; color: #4e6445; font-size: 12px; line-height: 1.5; }
.science-pill > span:last-child { margin-left: auto; }
.landing-demo { border: 1px solid #dedde7; border-radius: 22px; background: #fff; box-shadow: 0 20px 64px #34275c0b; min-width: 0; overflow: hidden; }
.demo-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.demo-top > div { display: flex; gap: 8px; align-items: center; font-size: 13px; }
.demo-dot { width: 7px; height: 7px; background: var(--purple); border-radius: 50%; }
#demo-playback { color: var(--muted); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; min-height: 36px; }
.demo-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 12px 18px 0; gap: 6px; }
.demo-steps button { display: flex; gap: 8px; align-items: center; min-height: 46px; padding: 10px; font-size: 12px; line-height: 1.3; border-radius: 9px; color: var(--muted); text-align: left; }
.demo-steps button > span:first-child { font-size: 10px; opacity: .75; }
.demo-steps button[aria-pressed="true"] { background: var(--purple-soft); color: var(--purple); font-weight: 600; }
.demo-stage { min-height: 470px; padding: 22px; display: grid; align-items: center; }
.demo-scene { animation: demo-arrive .35s ease-out; }
.demo-scene-label { color: var(--muted); font-size: 10px; letter-spacing: .09em; font-weight: 600; margin: 2px 0 18px; }
.demo-prompt { display: flex; gap: 10px; align-items: flex-start; background: #f3f2f8; border-radius: 10px; padding: 14px; font-size: 14px; line-height: 1.6; margin-bottom: 16px; }
.demo-prompt > span:first-child { color: var(--purple); }
.demo-generated { display: grid; gap: 8px; }
.demo-generated > div { display: flex; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 9px; padding: 12px 14px; font-size: 14px; }
.demo-generated span { color: var(--muted); text-align: right; }
.demo-explanation { font-size: 12px; line-height: 1.65; color: var(--muted); margin: 17px 0 0; }
.demo-next { font-size: 13px; color: var(--purple); font-weight: 600; padding: 12px 0 0; min-height: 44px; }
.demo-footnote { font-size: 11px; line-height: 1.6; color: var(--muted); border-top: 1px solid var(--line); margin: 0; padding: 14px 22px; }
.demo-flashcard { border: 1px solid #e2e1eb; background: #fdfcfb; border-radius: 14px; padding: 22px 20px; text-align: center; margin-bottom: 16px; min-height: 194px; display: flex; flex-direction: column; justify-content: center; }
.demo-flashcard .small-label { font-size: 9px; }
.demo-word { font-size: 30px; font-weight: 550; line-height: 1.3; margin: 16px 0; }
.demo-question { font-size: 13px; color: var(--muted); }
.demo-answer { border-top: 1px solid var(--line); padding-top: 14px; animation: demo-arrive .25s ease-out; }
.demo-answer > strong { font-size: 18px; font-weight: 500; }
.demo-answer p { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 8px 0 0; }
.demo-ratings { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.demo-ratings button { border: 1px solid var(--line); border-radius: 10px; padding: 10px 5px; min-height: 62px; font-size: 11px; }
.demo-ratings strong { display: block; font-weight: 500; }
.demo-ratings span { display: block; margin-top: 6px; font-size: 10px; color: var(--muted); }
.demo-ratings .good { background: var(--purple); color: #fff; }
.demo-ratings .good span { color: #fff; }
.demo-scheduled { background: #f0f3e9; padding: 22px; border-radius: 14px; text-align: center; }
.scheduled-check { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #dde8d5; color: #4e6d3e; border-radius: 50%; font-size: 22px; margin: 0 auto 12px; }
.demo-scheduled > span:not(.scheduled-check) { display: block; font-size: 12px; color: #5b6d50; }
.demo-scheduled > strong { display: block; font-size: 30px; letter-spacing: -.03em; margin: 4px 0 10px; }
.demo-scheduled p { font-size: 13px; line-height: 1.6; margin: 0; color: #5b6d50; }
.demo-timeline { display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--muted); margin-top: 22px; }
.demo-timeline i { flex: 1; height: 1px; background: #dedbe9; }
.demo-timeline .current { color: var(--purple); font-weight: 600; }
@keyframes demo-arrive { from { opacity: .3; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
.landing-problem { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; border-block: 1px solid var(--line); padding-block: 48px; }
.landing-problem h2 { font-size: 32px; margin: 14px 0 0; line-height: 1.22; }
.landing-problem p { color: var(--muted); line-height: 1.75; font-size: 16px; max-width: 55ch; }
.landing-problem p:last-child { margin-bottom: 0; }
.landing-section { padding-block: 80px; }
.landing-section-head { max-width: 720px; margin-bottom: 34px; }
.landing-section h2, .landing-usecases h2, .landing-control h2, .landing-signup h2 { font-size: 36px; line-height: 1.2; margin: 14px 0 16px; text-wrap: balance; }
.landing-section-head > p { font-size: 16px; color: var(--muted); line-height: 1.7; max-width: 65ch; margin-bottom: 0; }
.landing-three-col { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.landing-feature { padding: 26px; border: 1px solid var(--line); border-radius: 16px; background: #fff; display: flex; flex-direction: column; }
.feature-number { color: var(--purple); background: var(--purple-soft); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 10px; font-size: 12px; font-weight: 600; margin-bottom: 24px; }
.landing-feature h3, .usecase-card h3 { font-size: 20px; line-height: 1.3; margin-bottom: 12px; }
.landing-feature p, .usecase-card p { font-size: 14px; color: var(--muted); line-height: 1.75; margin-bottom: 20px; }
.feature-tag { font-size: 12px; color: #536849; margin-top: auto; padding-top: 10px; }
.landing-usecases { padding-block: 70px; background: #eeefe8; }
.usecase-card { padding: 26px; border: 1px solid #e0e3d8; border-radius: 16px; background: #f9faf6; display: flex; flex-direction: column; }
.usecase-icon { width: 40px; height: 40px; border-radius: 10px; background: #e2e9db; color: #577046; display: flex; align-items: center; justify-content: center; font-size: 19px; font-weight: 500; margin-bottom: 24px; }
.usecase-example { border-top: 1px solid #e0e3d8; padding-top: 18px; margin-top: auto; }
.usecase-example span { font-size: 11px; color: var(--muted); display: block; margin-bottom: 7px; }
.usecase-example strong { font-size: 13px; font-weight: 500; line-height: 1.6; display: block; }
.landing-section-note { color: var(--muted); font-size: 13px; line-height: 1.6; margin: 24px 0 0; }
.research-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.research-card { padding: 26px; background: #fff; border: 1px solid var(--line); border-radius: 16px; display: flex; flex-direction: column; }
.research-type { font-size: 9px; letter-spacing: .08em; color: var(--muted); line-height: 1.6; }
.research-number { font-size: 48px; letter-spacing: -.04em; font-weight: 550; color: var(--purple); margin-top: 20px; line-height: 1.1; }
.research-word { font-size: 29px; line-height: 1.15; letter-spacing: -.035em; color: var(--purple); margin-top: 20px; font-weight: 550; min-height: 53px; }
.research-card h3 { font-size: 16px; margin: 14px 0; line-height: 1.5; letter-spacing: -.02em; }
.research-card p { font-size: 13px; line-height: 1.75; color: var(--muted); }
.research-card a { font-size: 12px; color: var(--purple); font-weight: 500; margin-top: auto; min-height: 44px; display: flex; align-items: center; text-decoration: underline; text-underline-offset: 3px; }

.landing-control { padding: 54px; background: #eeeafa; border: 1px solid #e0d9f1; border-radius: 22px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 60px; align-items: center; }
.control-copy > p { font-size: 15px; line-height: 1.75; color: #655f77; }
.landing-checks { list-style: none; padding: 0; margin: 24px 0; }
.landing-checks li { position: relative; padding-left: 26px; margin: 13px 0; font-size: 14px; line-height: 1.6; }
.landing-checks li::before { content: '✓'; position: absolute; left: 0; color: var(--purple); }
.control-example { border: 1px solid #ddd6eb; border-radius: 15px; padding: 30px; background: #fbf9ff; }
.control-example blockquote { font-size: 23px; line-height: 1.4; font-weight: 500; letter-spacing: -.025em; margin: 22px 0 26px; }
.control-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 12px; color: var(--purple); }
.control-example p { font-size: 12px; line-height: 1.7; margin: 24px 0 0; color: var(--muted); }
.access-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.access-card { border: 1px solid #d9d3e9; border-radius: 18px; background: #fff; padding: 32px; }
.access-card h3 { font-size: 24px; margin: 20px 0; }
.access-amount { display: flex; align-items: center; gap: 18px; max-width: 350px; }
.access-amount > strong { font-size: 50px; line-height: 1.1; font-weight: 550; letter-spacing: -.04em; color: var(--purple); }
.access-amount > span { font-size: 14px; color: var(--muted); line-height: 1.5; max-width: 18ch; }
.access-card .landing-micro { margin-bottom: 0; text-align: center; }
.access-card p { font-size: 14px; line-height: 1.75; color: var(--muted); }
.access-secondary { border-color: var(--line); background: #fafaf6; }
.access-secondary h3 { margin-top: 0; }
.access-later { font-size: 19px !important; color: var(--ink) !important; font-weight: 500; }
.access-price { display: flex; gap: 16px; flex-wrap: wrap; }
.credit-explainer { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--line); }
.credit-explainer > strong { font-size: 16px; }
.credit-explainer p:last-child { color: var(--ink); font-weight: 500; }
.landing-faq { padding-top: 0; }
.landing-faq details { border-bottom: 1px solid var(--line); }
.landing-faq summary { cursor: pointer; padding: 21px 26px 21px 0; font-size: 16px; font-weight: 500; line-height: 1.6; }
.landing-faq details p { font-size: 14px; line-height: 1.8; color: var(--muted); padding-bottom: 18px; max-width: 80ch; }
.landing-signup { padding: 56px; background: #e9eddf; border: 1px solid #dce2d2; border-radius: 22px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: start; }
.signup-copy { padding-top: 24px; }
.signup-copy > p { font-size: 16px; line-height: 1.75; color: #5b6851; }
.signup-points { display: grid; grid-template-columns: 16px 1fr; gap: 13px; font-size: 14px; color: #536849; margin-top: 26px; }
.signup-points span:nth-child(odd) { color: #4e6d3e; }
.landing-signup .auth-form-area { padding: 28px; border: 1px solid #dce1d5; background: #fff; border-radius: 16px; }
.landing-signup .auth-form-wrap { width: 100%; }
.landing-signup .auth-form-wrap h2 { font-size: 26px; }
.landing-signup .auth-legal { margin-bottom: 0; }
.landing-footer { display: flex; gap: 30px; align-items: center; justify-content: space-between; padding-block: 38px; }
.landing-footer .brand { font-size: 22px; }
.landing-footer > span { font-size: 12px; color: var(--muted); }
.landing-footer > div { display: flex; gap: 20px; font-size: 12px; }
.landing-footer > div a { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 1000px) {
  .landing-hero { gap: 32px; padding-top: 36px; }
  .landing-links { gap: 18px; }
  .landing-header { gap: 20px; }
  .landing-three-col, .research-grid { gap: 16px; }
  .landing-feature, .usecase-card, .research-card { padding: 22px; }
  .landing-problem { gap: 40px; }
  .landing-control, .landing-signup { padding: 36px; gap: 32px; }
  .landing-control h2, .landing-section h2, .landing-signup h2, .landing-usecases h2 { font-size: 32px; }
  .landing-signup .auth-form-area { padding: 24px; }
}
@media (max-width: 800px) {
  .landing-header .landing-links { display: none; }
  .landing-hero { grid-template-columns: 1fr; max-width: 620px; gap: 36px; padding-top: 32px; padding-bottom: 48px; }
  .landing-hero-copy { max-width: 560px; }
  .landing-hero h1 { max-width: 17ch; font-size: 48px; }
  .landing-lead { max-width: 54ch; }
  .landing-demo { max-width: 560px; width: 100%; }
  .landing-problem { grid-template-columns: 1fr; gap: 24px; }
  .landing-three-col, .research-grid { grid-template-columns: 1fr; gap: 16px; }
  .landing-feature, .usecase-card, .research-card { padding: 28px; }
  .landing-feature h3, .usecase-card h3 { font-size: 21px; }
  .feature-number, .usecase-icon { margin-bottom: 18px; }
  .research-word { min-height: 0; }
  .landing-control, .landing-signup { grid-template-columns: 1fr; gap: 24px; }
  .landing-footer { flex-wrap: wrap; gap: 16px 24px; }
  .landing-footer > span { order: 3; flex-basis: 100%; }
  .landing-signup .auth-form-wrap { max-width: 480px; }
  .landing-signup .auth-form-area { display: block; }
}
@media (max-width: 480px) {
  .landing-container, .landing-header { width: calc(100% - 40px); }
  .landing-header { min-height: 82px; gap: 12px; }
  .landing-header .brand { font-size: 24px; gap: 7px; }
  .landing-header .brand-mark { width: 30px; height: 30px; }
  .landing-header .beta { display: none; }
  .landing-header-actions { gap: 12px; }
  .landing-header .language-control select { min-width: 91px; padding-inline: 8px; font-size: 13px; }
  .landing-signin { font-size: 12px; }
  .landing-hero { padding-top: 26px; padding-bottom: 40px; gap: 28px; }
  .landing-hero .eyebrow { font-size: 9px; letter-spacing: .08em; }
  .landing-hero h1 { font-size: clamp(33px,9vw,42px); margin: 16px 0 20px; line-height: 1.1; letter-spacing: -.035em; }
  .landing-lead { font-size: 15px; line-height: 1.7; }
  .landing-ctas { gap: 10px; }
  .landing-ctas .button { font-size: 13px; padding-inline: 15px; }
  .landing-micro { font-size: 11px; }
  .science-pill { padding: 11px 12px; font-size: 11px; }
  .demo-top { padding: 12px 16px; }
  .demo-top > div { font-size: 12px; }
  #demo-playback { font-size: 11px; }
  .demo-steps { padding: 10px 12px 0; gap: 3px; }
  .demo-steps button { padding: 9px 7px; font-size: 11px; gap: 5px; }
  .demo-steps button > span:first-child { font-size: 9px; }
  .demo-stage { padding: 18px 16px; min-height: 480px; }
  .demo-scene-label { font-size: 9px; }
  .demo-footnote { font-size: 10px; padding: 12px 16px; }
  .demo-generated > div { padding: 12px; font-size: 13px; }
  .demo-generated span { max-width: 50%; }
  .demo-ratings { gap: 5px; }
  .demo-ratings button { font-size: 10px; padding-inline: 3px; }
  .demo-ratings span { font-size: 9px; }
  .demo-timeline { font-size: 10px; gap: 6px; }
  .landing-problem { padding-block: 34px; }
  .landing-problem h2 { font-size: 28px; }
  .landing-problem p { font-size: 15px; }
  .landing-section { padding-block: 48px; }
  .landing-section-head { margin-bottom: 26px; }
  .landing-section h2, .landing-control h2, .landing-usecases h2, .landing-signup h2 { font-size: 28px; }
  .landing-section-head > p { font-size: 15px; }
  .landing-three-col, .research-grid { gap: 14px; }
  .landing-feature, .usecase-card, .research-card { padding: 24px; }
  .landing-usecases { padding-block: 44px; }
  .landing-control { padding: 26px; }
  .control-example { padding: 22px; }
  .control-example blockquote { font-size: 21px; }
  .access-grid { grid-template-columns: 1fr; gap: 16px; }
  .access-card { padding: 26px; }
  .landing-faq { padding-top: 0; }
  .landing-faq summary { font-size: 15px; }
  .landing-signup { padding: 26px 18px 18px; gap: 20px; }
  .signup-copy { padding: 0 6px; }
  .landing-signup .auth-form-area { padding: 22px 18px; }
  .landing-signup .auth-form-wrap h2 { font-size: 25px; }
  .landing-signup .auth-tabs { gap: 24px; }
  .landing-signup .auth-tabs button { font-size: 13px; }
  .landing-footer { padding-block: 28px; }
  .landing-footer > div { gap: 14px; font-size: 11px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { .demo-scene, .demo-answer { animation: none; } }

.landing-hero .eyebrow { max-width: none; white-space: nowrap; letter-spacing: .06em; }
