/* Image-led layout, scoped to the public landing. */
.landing-hero{grid-template-columns:1.02fr 1fr;gap:60px;padding-block:40px 42px;align-items:center}
.hero-copy h1{font-size:clamp(2.3rem,3.6vw,3.5rem)}
.hero-description{max-width:450px}
.hero-visual{margin:0;position:relative;min-width:0}
.hero-visual img{display:block;width:100%;height:425px;object-fit:cover;object-position:35% center;border-radius:2px}
.hero-visual figcaption{font-size:.875rem;color:var(--quiet);padding-top:12px;text-align:right}
.landing-page .login-strip{display:grid;grid-template-columns:240px minmax(0,1fr) 265px;gap:30px;align-items:center;width:min(1200px,calc(100% - 96px));padding:28px 0 32px;border-block:1px solid var(--rule);margin-bottom:0}
.login-strip .login-intro .eyebrow{display:none}
.landing-page .login-strip h2{font-size:1.35rem;margin-bottom:8px}
.login-strip .login-intro .muted{margin:0;font-size:.875rem}
.login-strip .login-intro br{display:none}
.landing-page .login-strip .login-actions{grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0}
.landing-page .login-strip .login-help{margin:0;font-size:.8125rem}
.login-controls{min-width:0}.login-controls>div>p{font-size:.875rem;line-height:1.7;margin-bottom:6px}
.learning-path{padding-top:0}.learning-path>.landing-width{border:0;padding-block:26px 0}
.learning-path p{display:none}.learning-path ol{width:100%;justify-content:space-between;font-size:.875rem;gap:20px;color:var(--quiet)}
.learning-path li{display:flex;align-items:center;gap:10px}.learning-path li:before{content:'';width:7px;height:7px;border-radius:50%;background:#8c9fb8}
.learning-path li+li:before{background:#244ad6}
.visual-label{font-size:.8125rem;color:var(--quiet);margin:0 0 20px;letter-spacing:0}
.review-visual{background:#eff3f9;margin-top:35px;padding:26px 28px;max-width:430px}
.review-visual header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}
.review-visual header strong{font-size:1rem;font-weight:500}.review-visual header span{font-size:.8125rem;color:var(--quiet)}
.review-calendar{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;list-style:none;padding:0;margin:0;text-align:center}
.review-calendar li{font-size:.8125rem;color:var(--quiet);display:grid;gap:9px;justify-items:center}
.review-calendar strong{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:white;color:var(--ink);font-size:1rem;font-weight:500}
.review-calendar .review-day strong{background:#203d67;color:white}
.review-calendar .review-next strong{background:#d9e4f7;color:#244ad6;border:1px solid #bacced}
.review-track{margin-top:22px;display:flex;align-items:center;gap:12px;font-size:.8125rem;color:#4b607c}
.review-track svg{width:130px;height:45px;flex-shrink:0;overflow:visible}
.review-visual .visual-footnote{font-size:.8125rem;line-height:1.8;color:var(--quiet);margin:18px 0 0}
.materials-visual{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:42px;background:white}
.materials-visual>img{display:block;width:100%;height:100%;min-height:390px;max-height:470px;object-fit:cover}
.transform-graphic{padding:34px 38px;display:grid;align-content:center;gap:20px;min-width:0}
.transform-graphic .visual-label{margin:0}.transform-source{display:flex;align-items:center;gap:14px;font-size:1rem}
.transform-source svg{width:36px;height:42px;flex-shrink:0;color:#244ad6}
.transform-source strong{font-weight:500;display:block}.transform-source small{font-size:.8125rem;color:var(--quiet)}
.transform-connector{display:flex;gap:12px;align-items:center;font-size:.8125rem;color:var(--quiet);padding-left:11px}
.transform-connector svg{width:17px;height:45px;color:#8c9fb8;flex-shrink:0}
.sample-flashcard{padding:24px;background:#eaf0fc;border-radius:5px;border:1px solid #dce5f6}
.sample-flashcard .sample-type{font-size:.8125rem;color:#48618b;display:block;margin-bottom:13px}
.sample-flashcard strong{display:block;font-size:1.2rem;font-weight:500;letter-spacing:-.04em;margin-bottom:8px}
.sample-flashcard p{font-size:.875rem;line-height:1.8;color:#516482;margin:0}
.sample-question{display:flex;gap:14px;align-items:center;padding-top:2px;font-size:.875rem;color:#425675}
.sample-question svg{width:27px;height:27px;flex-shrink:0}
.teacher-section .section-heading{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 55px;align-items:end}
.teacher-section .section-heading .eyebrow{grid-column:1/-1}
.teacher-section .section-heading h2{font-size:clamp(1.9rem,2.8vw,2.5rem);margin:0}
.teacher-media{display:grid;grid-template-columns:1.2fr .8fr;margin-bottom:48px;align-items:stretch}
.teacher-media img{display:block;width:100%;height:360px;object-fit:cover}
.teacher-loop{background:#e9eff7;display:flex;flex-direction:column;justify-content:center;padding:35px 42px}
.teacher-loop .visual-label{margin-bottom:24px}
.teacher-loop ol{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.teacher-loop li{display:flex;align-items:center;gap:16px;font-size:1rem}
.teacher-loop li span{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:white;color:#385d91;font-size:.8125rem}
.teacher-loop li:last-child span{background:#203d67;color:white}
.teacher-loop p:last-child{font-size:.875rem;color:var(--quiet);line-height:1.8;margin:24px 0 0}
.together-items svg{width:35px;height:35px;display:block;color:#496a98;margin-bottom:18px}
@media(max-width:1100px){
 .landing-hero{gap:35px}.hero-visual img{height:360px}
 .landing-page .login-strip{width:calc(100% - 64px);grid-template-columns:210px 1fr;gap:14px 35px}.landing-page .login-strip .login-help{grid-column:1/-1}
 .review-visual{padding:22px}.review-calendar{gap:5px}.review-calendar strong{width:35px;height:35px}
 .transform-graphic{padding:25px}.materials-visual>img{min-height:380px}
 .teacher-media{grid-template-columns:1fr 1fr}.teacher-loop{padding:28px}.teacher-media img{height:340px}
}
@media(max-width:760px){
 .landing-hero{display:grid;grid-template-columns:1fr;gap:26px;padding-block:30px}
 .hero-copy h1{font-size:clamp(2.1rem,6.3vw,3rem);margin-bottom:20px}.hero-description{font-size:.9375rem;margin-bottom:0}
 .hero-links{display:none}.hero-visual img{height:255px;object-position:center 47%}.hero-visual figcaption{font-size:.8125rem;padding-top:10px}
 .landing-page .login-strip{width:calc(100% - 40px);grid-template-columns:1fr;gap:10px;padding-block:24px}.landing-page .login-strip .login-help{grid-column:auto}
 .landing-page .login-strip .login-actions{grid-template-columns:1fr;margin-block:8px}.landing-page .login-strip h2{font-size:1.35rem}
 .learning-path>.landing-width{padding-top:22px}.learning-path ol{display:grid;grid-template-columns:1fr 1fr;gap:14px}
 .review-visual{max-width:none;margin-top:26px;padding:24px}.review-calendar strong{width:40px;height:40px}.review-track{justify-content:space-between}
 .materials-visual{grid-template-columns:1fr;margin-bottom:30px}.materials-visual>img{height:235px;min-height:0}.transform-graphic{padding:28px 24px;gap:17px}
 .transform-connector svg{height:30px}.sample-flashcard{padding:20px}.sample-flashcard strong{font-size:1.1rem}
 .teacher-section .section-heading{display:block}.teacher-section .section-heading h2{font-size:1.95rem;margin-bottom:20px}
 .teacher-media{grid-template-columns:1fr;margin-bottom:32px}.teacher-media img{height:260px}.teacher-loop{padding:27px 24px}
 .teacher-loop ol{gap:14px}.teacher-loop p:last-child{margin-top:20px}
 .together-items article{position:relative;padding-left:53px}.together-items svg{position:absolute;left:0;top:2px;width:32px;height:32px}
}

/* 2D editorial art direction: framed surfaces and responsive motion. */
.landing-page{--paper:#f7f9fd;--quiet:#53647a;--rule:#d9e2ef;background:var(--paper)}
.landing-header{position:relative;z-index:5;min-height:90px}
.landing-header nav .nav-login{border-radius:999px;background:#fff;border-color:#ced9e9}
.landing-hero{gap:24px;align-items:stretch;padding-block:25px 32px}
.hero-copy{padding:42px 36px;background:linear-gradient(145deg,#fff 48%,#eaf0ff);border:1px solid #d6e1f3;border-radius:32px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.hero-copy .eyebrow{font-weight:600;color:#2852ba;font-size:.875rem;margin-bottom:22px}
.hero-copy h1{font-size:clamp(2.1rem,3.15vw,3.15rem);letter-spacing:-.065em;line-height:1.38}
.hero-copy h1 em{font-weight:650;color:#244ed8}
.hero-description{max-width:none;margin:0;font-size:1rem}
.hero-visual{border:1px solid #cbd7ee;border-radius:32px;overflow:hidden;background:#dce9ff;isolation:isolate;box-shadow:0 18px 45px -34px #17367566}
.hero-visual img{height:100%;min-height:430px;object-position:center;border-radius:0;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.hero-visual figcaption{position:absolute;inset:auto 20px 20px auto;border:1px solid #ffffffaa;background:#ffffffeb;border-radius:999px;padding:11px 18px;color:#1a3557;font-weight:600;backdrop-filter:blur(12px)}
.landing-button{border-radius:999px;padding-inline:24px;gap:18px;background:#244ed8;border-color:#244ed8;box-shadow:0 7px 18px -12px #244ed8;transition:transform .25s,background .25s,box-shadow .25s}
.landing-button:after{content:'↗';font-size:1.15em}.landing-button:hover{background:#1738a5;transform:translateY(-2px);box-shadow:0 12px 24px -12px #244ed866}
.landing-page .login-strip{padding:25px 30px;border:1px solid #ccd8eb;border-radius:24px;background:#fff;grid-template-columns:205px minmax(0,1fr) 245px;gap:24px;box-shadow:0 10px 35px -28px #1d3e7866}
.landing-page .login-actions a,.landing-page .login-actions button{border-radius:12px;transition:background .2s,box-shadow .2s,transform .2s}
.landing-page .login-actions .primary{background:#203f9a;border-color:#203f9a}
.learning-path{background:transparent;padding:0}.learning-path>.landing-width{padding-block:22px 0}
.learning-path ol{gap:10px}.learning-path li{background:#eef2fa;border:1px solid #e0e6f1;border-radius:999px;padding:9px 20px;flex:1;justify-content:center}
.landing-section{padding-block:90px}
.section-heading h2{font-weight:650;line-height:1.4}
.section-heading>.eyebrow,.together-section .eyebrow{color:#2852ba;font-weight:600}
#learners{gap:0 40px;grid-template-columns:.95fr 1.05fr}
/* Keep concise benefits and their AI help together; no empty full-width row. */
#learners .learner-layout{display:grid;align-content:start;gap:16px;padding-top:0}
#learners .feature-list article{grid-template-columns:32px minmax(0,1fr);gap:14px}
#learners .support-strip{grid-column:auto;grid-template-columns:1fr;gap:12px;margin:0;padding:26px 28px;align-items:start}
.feature-list{gap:16px;counter-reset:features}
.landing-page .feature-list article,.teacher-benefits article,.together-items article{position:relative;padding:27px 28px;border:1px solid #d4deef;border-radius:22px;background:#fff;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background .28s ease;overflow:hidden}
.feature-list article{counter-increment:features;display:grid;grid-template-columns:36px 1fr;gap:14px}
.feature-list article:before{content:counter(features,decimal-leading-zero);font-size:.875rem;font-weight:600;color:#244ed8;line-height:32px;width:32px;height:32px;background:#e2eaff;border-radius:10px;text-align:center}
.landing-page .feature-list article:nth-child(2){background:#edf3ff;border-color:#cbdcf9}
.landing-page .feature-list article:nth-child(3){background:#fff5ec;border-color:#eddccf}
.feature-list h3{font-size:1.125rem;margin-bottom:10px}.feature-list p{font-size:1rem}
.review-visual{background:linear-gradient(135deg,#e0eaff,#f3f7ff);border:1px solid #bfd0f0;border-radius:24px;padding:26px;max-width:none}
.review-calendar strong{transition:transform .25s,box-shadow .25s}
.review-track svg path{stroke:#8ba3cd;stroke-dasharray:4 5}
.support-strip{gap:36px;margin-top:32px;padding:32px;border:1px solid #b9caef;border-radius:24px;background:#e5edff;align-items:center}
.support-strip h3{font-weight:600}.support-strip p{color:#42587e}
.materials-section{background:#eaf0fb;border-block:1px solid #dae3f3}
.materials-section .section-heading{gap:0 45px;margin-bottom:36px}
.materials-visual{border:1px solid #cbd8ec;border-radius:30px;overflow:hidden;box-shadow:0 20px 50px -38px #1b3c7866}
.materials-visual>img{transition:transform .7s ease;max-height:none;min-height:450px}
.transform-graphic{background:radial-gradient(ellipse at 100% 0%,#edf2ff,transparent 65%),#fff;padding:38px}
.sample-flashcard{background:#f1f5ff;border:1px solid #bcccF0;border-radius:18px;box-shadow:5px 6px 0 #dce5f7;transition:transform .35s ease,box-shadow .35s ease}
.sample-question{padding:13px 16px;background:#eff5f1;border:1px solid #d5e5db;border-radius:12px}
.teacher-section{background:var(--paper)}
.teacher-section .section-heading{margin-bottom:36px}
.teacher-media{border:1px solid #cad7ee;border-radius:30px;overflow:hidden;grid-template-columns:1.15fr .85fr;margin-bottom:28px}
.teacher-media img{height:390px;object-position:center;transition:transform .7s ease}
.teacher-loop{background:#e7eeff;padding:34px}
.teacher-loop li{border:1px solid #c7d5ef;border-radius:14px;background:#f8faff;padding:12px 14px;transition:transform .25s,background .25s}
.teacher-loop li span{background:#e3ebfc}.teacher-loop li:last-child{background:#203f9a;border-color:#203f9a;color:#fff}.teacher-loop li:last-child span{background:#ffffff22;color:white}
.teacher-layout{gap:28px;align-items:stretch}.teacher-benefits{padding:0;gap:15px}
.teacher-benefits article:nth-child(2){background:#edf3ff}
.agent-examples{border:1px solid #3a5882;border-radius:24px;background:radial-gradient(ellipse at 100% 0%,#294b8e,transparent 75%),#162b4c;padding:30px}
.agent-examples article{border:1px solid #6b8abe55;background:#ffffff07;border-radius:16px;padding:19px 21px;margin-bottom:12px;transition:background .25s,transform .25s,border-color .25s}
.agent-examples blockquote{font-size:1rem;line-height:1.85;margin-top:8px}.agent-examples article>span{color:#b5ccff}.agent-examples .approval-note{margin-top:20px}
.together-section{padding-top:12px;border:0}.together-items{gap:18px}
.together-items article{padding:28px;display:flex;flex-direction:column}.together-items svg{position:static;width:42px;height:42px;padding:8px;box-sizing:content-box;border:1px solid #c6d6f0;background:#eaf0ff;border-radius:16px;margin-bottom:24px;transition:transform .3s}
.together-items article:nth-child(2){background:#edf3ff}.together-items article:nth-child(3){background:#fff5ec;border-color:#eddccf}
.faq-section{padding-top:0}.faq-list{display:grid;gap:12px;align-content:start}
.landing-page .faq-list details{padding:21px 24px;border:1px solid #d5deed;border-radius:17px;background:#fff;transition:background .25s,border-color .25s,box-shadow .25s}
.faq-list details[open]{background:#eaf0ff;border-color:#afc3ee;box-shadow:0 8px 24px -20px #244ed866}
.faq-list summary:after{width:25px;height:25px;border-radius:50%;background:#e5edfc;color:#2852ba;text-align:center;line-height:24px}
.faq-list details p{font-size:1rem}
.final-cta{padding:45px;border:1px solid #bfd0f1;background:linear-gradient(120deg,#e1ebff,#f1f5ff);border-radius:30px;margin-bottom:50px}
.final-cta h2{font-size:clamp(1.75rem,2.5vw,2.5rem)}
.landing-page :is(a,button,summary):focus-visible{outline:3px solid #365fea;outline-offset:5px}
.landing-page .section-heading>p:not(.eyebrow){font-size:1rem;line-height:1.9;color:var(--quiet)}
@media(hover:hover) and (pointer:fine){
 .hero-visual:hover img{transform:scale(1.035)}
 .landing-page .feature-list article:hover,.teacher-benefits article:hover,.together-items article:hover{transform:translateY(-5px);border-color:#8da9e7;box-shadow:0 18px 34px -23px #345dbd77}
 .together-items article:hover svg{transform:rotate(-7deg)}
 .agent-examples article:hover{background:#ffffff10;border-color:#9ebcff77;transform:translateX(3px)}
 .sample-flashcard:hover{transform:rotate(-1.5deg) translateY(-3px);box-shadow:8px 10px 0 #dce5f7}
 .review-calendar li:hover strong{transform:translateY(-4px);box-shadow:0 6px 15px -5px #244ed855}
 .teacher-loop li:hover{transform:translateX(4px)}
 .faq-list details:hover{border-color:#9bb4e8}
}
@keyframes landing-arrive{from{opacity:.45;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.landing-page .is-arriving{animation:landing-arrive .65s cubic-bezier(.2,.7,.2,1) both}
@media(max-width:1100px){
 .hero-copy{padding:30px 26px}.hero-copy h1{font-size:clamp(2rem,3.2vw,2.8rem)}.hero-visual img{min-height:440px}
 .landing-page .login-strip{grid-template-columns:190px 1fr;padding:24px}.landing-page .login-strip .login-help{grid-column:1/-1}
 #learners{gap:0 25px}.landing-page .feature-list article{padding:23px 21px;grid-template-columns:1fr;gap:12px}
 .teacher-media{grid-template-columns:1fr 1fr}.teacher-loop{padding:25px}.teacher-media img{height:410px}
 .teacher-layout{gap:20px}.teacher-benefits article{padding:23px}.agent-examples{padding:24px}
 .final-cta{padding:32px}.final-cta h2{font-size:1.8rem}
}
@media(max-width:760px){
 .landing-header{min-height:78px}.landing-hero{gap:16px;padding-block:12px 22px}
 .hero-copy{padding:27px 23px;border-radius:24px}.hero-copy h1{font-size:clamp(1.95rem,6.5vw,2.6rem);margin-bottom:18px}.hero-copy .eyebrow{font-size:.875rem;margin-bottom:16px}.hero-description{font-size:1rem}
 .hero-visual{border-radius:24px}.hero-visual img{height:auto;min-height:0;aspect-ratio:3/2}.hero-visual figcaption{right:12px;bottom:12px;font-size:.8125rem;padding:8px 13px}
 .landing-page .login-strip{grid-template-columns:1fr;padding:24px;border-radius:20px;gap:12px}.landing-page .login-strip .login-help{grid-column:auto;font-size:.875rem}
 .learning-path li{padding:9px 10px;font-size:.875rem}.learning-path ol{gap:8px}
 .landing-section{padding-block:60px}#learners{grid-template-columns:1fr;gap:28px}
 .landing-page .feature-list article{padding:24px;grid-template-columns:1fr;gap:12px}.feature-list h3{font-size:1.125rem}.feature-list p{font-size:1rem}
 .support-strip{margin-top:0;padding:26px;gap:14px}.support-strip p{font-size:1rem}
 .materials-visual,.teacher-media{border-radius:24px}.materials-visual>img{min-height:0;height:235px}.transform-graphic{padding:27px 24px}
 .teacher-media{grid-template-columns:1fr}.teacher-media img{height:auto;aspect-ratio:3/2}.teacher-loop{padding:27px 24px}
 .teacher-layout{gap:24px}.teacher-benefits p,.together-items p{font-size:1rem}.teacher-benefits article,.together-items article{padding:25px}
 .agent-examples{padding:26px 22px}.agent-examples article{padding:18px}.together-section{padding-top:0}
 .together-items{gap:15px}.together-items svg{position:static;margin-bottom:20px}
 .faq-section{padding-top:0}.landing-page .faq-list details{padding:21px}.faq-list details p{margin-right:0}
 .final-cta{padding:28px 24px;margin-bottom:36px;border-radius:24px}.final-cta h2{font-size:1.8rem}
}
@media(prefers-reduced-motion:reduce){
 .landing-page *, .landing-page *:before,.landing-page *:after{animation:none!important;transition:none!important}
 .landing-page :is(article,img,svg,li,.sample-flashcard,.landing-button):hover{transform:none!important}
}

/* One-screen launch film: inert Next is animated; only the end card restarts. */
.strategy-story-section{scroll-margin-top:24px;padding-block:clamp(44px,6vw,82px) clamp(42px,5vw,68px)}
.story-heading{max-width:880px;margin-bottom:25px}
.story-heading .eyebrow{margin-bottom:12px}
.story-heading h2{font-size:clamp(1.85rem,3.1vw,2.65rem);line-height:1.35;letter-spacing:-.055em;margin:0 0 12px}
.story-subtitle{font-size:1rem;line-height:1.7;color:#354e70;margin:0}
.story-stage{position:relative;--story-motion-scale:2}
.story-stage *,.story-stage *:before,.story-stage *:after{box-sizing:border-box}
.stage-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;border:1px solid #c6d4e9;border-radius:26px;background:
 radial-gradient(1200px 520px at 12% -10%,#e9f0ff 0%,rgba(233,240,255,0) 62%),
 radial-gradient(900px 480px at 108% 118%,#e7f7f4 0%,rgba(231,247,244,0) 58%),#f7f9fd;
 box-shadow:0 34px 80px -46px #17367573,0 2px 0 #ffffffcc inset;overflow:hidden}
.stage-bar{position:relative;display:flex;align-items:center;gap:14px;padding:15px 22px;border-bottom:1px solid #dae3f2;background:#ffffffc9}
.stage-progress-track{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#e3eaf6}
.stage-progress-fill{height:100%;width:16.6667%;background:linear-gradient(90deg,#244ed8,#3f7bf0);border-radius:0 3px 3px 0;transition:width calc(.45s * var(--story-motion-scale)) cubic-bezier(.2,.7,.2,1)}
.stage-bar-title{font-size:.9375rem;font-weight:750;letter-spacing:-.02em;color:#203d67}
.stage-bar-title:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;background:#244ed8;margin-right:9px;vertical-align:1px;box-shadow:0 0 0 4px #244ed822}
.stage-count{margin-left:auto;font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums;color:#40597b;letter-spacing:.02em}
.stage-tabs{display:none;gap:8px}
.stage-tabs[hidden]{display:none}
.stage-tab{min-height:44px;padding:7px 13px;border:1px solid #b9c8e2;border-radius:999px;background:#fff;color:#33507d;font-family:inherit;font-size:.875rem;font-weight:650;cursor:pointer}
.stage-tab[aria-pressed="true"]{background:#244ed8;border-color:#244ed8;color:#fff}
.stage-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:22px;min-height:0}
.stage-lane{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:15px;min-width:0;min-height:0;padding:21px 22px;border:1px solid #d5e0f0;border-radius:20px;background:#ffffffF2;box-shadow:0 18px 44px -34px #17367555}
.concept-lane{border-color:#b9c9ec}
.problem-lane{border-color:#c6dcd6}
.stage-lane[hidden]{display:none}
.shared-lane{grid-column:1/-1;--story-title-x:0px;border-color:#c3d3eb;background:linear-gradient(135deg,#fffffffa,#f4f8ffff)}
.shared-lane .lane-badge{background:linear-gradient(140deg,#3359ba,#268c83);box-shadow:0 8px 18px -10px #3359ba99;font-size:1.25rem}
.shared-lane .stage-lane-heading,.shared-lane .stage-steps{width:100%;max-width:880px;justify-self:center}
.shared-lane .stage-lane-heading h3{color:#24416c}
.story-stage[data-enhanced][data-layout="shared"] .stage-lanes{grid-template-columns:minmax(0,1fr)}
.stage-lane-heading{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:0 12px;border-bottom:1px solid #e6edf8;padding-bottom:13px}
.stage-lane-heading .story-kicker{grid-column:2;margin-bottom:2px;font-size:.8125rem}
.stage-lane-heading h3{grid-column:2;font-size:1.28rem;line-height:1.32;letter-spacing:-.035em;margin:0}
.lane-badge{grid-row:1/3;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:.75rem;font-weight:800;letter-spacing:.02em;color:#fff}
.concept-lane .lane-badge{background:linear-gradient(140deg,#244ed8,#4b7cf5);box-shadow:0 8px 18px -10px #244ed8cc}
.problem-lane .lane-badge{background:linear-gradient(140deg,#0f8a72,#2fb39a);box-shadow:0 8px 18px -10px #0f8a72cc}
.concept-lane .stage-lane-heading h3{color:#1d3f8f}
.problem-lane .stage-lane-heading h3{color:#116153}
.stage-steps{list-style:none;padding:0;margin:0;min-height:0;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
.stage-step{min-width:0}
.story-skip{font-size:.8125rem;line-height:1.65;color:#116153;background:#eaf6f1;border-radius:9px;padding:9px 10px;margin:10px 0 0!important}
.stage-steps .story-step-card{position:relative;height:100%;padding:18px 19px 18px 20px;border:1px solid #d3deee;border-radius:15px;background:#fff;box-shadow:0 14px 34px -26px #17367566}
.concept-lane .stage-steps .story-step-card{border-left:3px solid #244ed8}
.problem-lane .stage-steps .story-step-card{border-left:3px solid #17a084}
.step-chip{display:inline-flex;align-items:center;gap:7px;min-height:26px;padding:4px 10px;border-radius:999px;background:#eef3fc;color:#244ed8;font-size:.75rem;font-weight:800;letter-spacing:.04em;margin:0 0 10px;white-space:nowrap}
.step-chip:before{content:'';width:6px;height:6px;border-radius:50%;background:#244ed8}
.stage-prompt{display:flex;align-items:center;gap:11px;margin:0;padding:13px 22px;border-top:1px solid #dae3f2;background:#ffffffc9;font-size:.9375rem;line-height:1.6;color:#33507d}
.stage-prompt strong{color:#203f9a}
.stage-prompt-dot{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:#244ed8;box-shadow:0 0 0 5px #244ed822}
.story-kicker{font-size:.875rem;line-height:1.5;letter-spacing:.01em;font-weight:650;color:#40597b;margin:0 0 8px}
.stage-step h4{font-size:1.08rem;line-height:1.5;letter-spacing:-.025em;margin:0 0 8px;color:#203d67}
.stage-step p:not(.story-kicker):not(.story-note):not(.story-footnote){font-size:.9375rem;line-height:1.72;color:#415975;margin:0 0 10px}
.story-action,.story-rating{display:inline-flex;align-items:center;min-height:35px;margin-top:8px;padding:6px 11px;border-radius:10px;background:#eef3fc;color:#203f77;font-size:.9375rem;line-height:1.5;font-weight:600}
.story-rating{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;max-width:100%;background:none;padding:0;color:#334b6b;font-weight:500}
.story-flashcard{padding:16px 18px;border:1px solid #bdcdec;border-radius:14px;background:#fff;box-shadow:3px 4px 0 #e6edfb;min-width:0}
.story-flashcard-label{display:block;font-size:.75rem;font-weight:650;color:#627596;margin-bottom:8px}
.story-step-card .story-flashcard h4{font-size:1.2rem;text-align:center;margin:5px 0 9px;line-height:1.45}
.story-flashcard-answer{border-top:1px solid #dce6f6;background:#f0f4ff;border-radius:8px;padding:10px 12px;margin-top:10px}
.story-flashcard-answer>span{font-size:.75rem;font-weight:700;color:#526b98}
.story-stage .stage-step .story-flashcard .story-flashcard-answer p{font-size:1rem;line-height:1.5;margin:5px 0 0;color:#213f78;font-weight:600}
.story-grade{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:72px;padding:10px;border:1px solid;border-radius:10px;text-align:left;line-height:1.4;cursor:default}
.story-grade strong{font-size:.8125rem}.story-grade small{font-size:.6875rem;line-height:1.45;font-weight:400}
.story-grade-1{border-color:#cb777c;color:#902e35;background:#fff5f5}
.story-grade-2{border-color:#c3a16f;color:#795117;background:#fffaf2}
.story-grade-3{border-color:#6f8cde;color:#2149b9;background:#f0f4ff}
.story-grade-4{border-color:#77a894;color:#236a4b;background:#f0faf5}
.story-grade.is-selected{box-shadow:inset 0 0 0 1px #2149b9;background:#e5edff}
.story-step-card .story-rating-prompt{font-size:.8125rem!important;margin:10px 0 0!important;line-height:1.5!important;font-weight:600}
.story-response-chip{display:inline-flex;align-items:center;min-height:35px;max-width:100%;margin-top:8px;padding:6px 11px;border:1px solid #cfdaeb;border-radius:10px;background:#eef3fc;color:#203f77;font-size:.9375rem;line-height:1.5;font-weight:600}
.story-note{font-size:.8125rem;line-height:1.7;color:#405774;margin:10px 0 0}
.story-footnote{font-size:.8125rem;line-height:1.7;color:#50627b;margin:12px 0 0}
.story-branch{display:grid;gap:4px;margin-top:10px;padding:11px 13px;border-left:3px solid #244ed8;border-radius:0 10px 10px 0;background:#f1f5fd;color:#334b6b;font-size:.9375rem;line-height:1.7}
.story-branch strong{font-size:.9375rem;font-weight:700;color:#203d67}
.story-branch span{color:#405774}
.story-branch-dashed{border-left-style:dashed;border-left-color:#566e92;background:#f6f7fa}
.stage-finish-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0;margin:2px 0 0}
.stage-finish-list li{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:baseline;gap:0 7px;padding:8px 10px;border:1px solid #d9e3f2;border-radius:11px;background:#f8fafd;font-size:.875rem;line-height:1.55;font-weight:600;color:#263f62}
.stage-finish-list li:last-child{grid-column:1/-1}
.stage-finish-list li:before{content:'✓';color:#244ed8;font-weight:800}
.stage-finish-list li>span:not(.story-type-run){grid-column:2;font-size:.875rem;font-weight:500;color:#50627b}
.stage-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 22px;border-top:1px solid #dae3f2;background:#fff}
.stage-controls[hidden]{display:none}
.stage-next{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:13px 26px;border:0;border-radius:999px;background:linear-gradient(135deg,#244ed8,#1a3cad);color:#fff;font-family:inherit;font-size:1.0625rem;font-weight:750;letter-spacing:-.01em;cursor:pointer;box-shadow:0 14px 30px -14px #244ed899}
.stage-next svg{width:19px;height:19px;transition:transform calc(.18s * var(--story-motion-scale)) ease}
.stage-next:hover svg{transform:translateX(4px)}
.stage-next:active{transform:translateY(1px)}
.stage-next:disabled{background:#e6ebf3;color:#6b7c93;box-shadow:none;cursor:default}
.stage-next:disabled svg{display:none}
.stage-next:focus-visible,.stage-pause:focus-visible,.stage-tab:focus-visible{outline:3px solid #365fea;outline-offset:4px}
.stage-pause{min-height:44px;padding:10px 17px;border:1px solid #9eb4dc;border-radius:999px;background:#fff;color:#203f9a;font-family:inherit;font-size:.9375rem;font-weight:650;cursor:pointer}
.stage-pause:disabled{background:#eef1f6;border-color:#c3cdde;color:#7a8aa1;cursor:default}
.stage-dots{display:flex;gap:2px;list-style:none;padding:0;margin:0}
.stage-dots li{display:flex}
.stage-dot{min-width:44px;min-height:44px;padding:8px;border:1px solid transparent;border-radius:999px;background:#eef3fc;color:#52698b;font-family:inherit;font-size:.8125rem;font-weight:650;line-height:1;cursor:pointer}
.stage-dot.is-current{background:#244ed8;color:#fff}
.stage-dot.is-done{background:#dbe5f8;color:#203f9a}
.stage-dot:focus-visible{outline:3px solid #365fea;outline-offset:2px}
.stage-hint{margin:0;flex:1 1 180px;font-size:.875rem;line-height:1.65;color:#50627b}

.stage-controls [data-story-status]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;clip-path:inset(50%)}
/* Without JS use natural document flow: no fixed-height panels or clipped steps. */
.story-stage:not([data-enhanced]) .stage-frame,.story-stage:not([data-enhanced]) .stage-lane{display:block}
.story-stage:not([data-enhanced]) .stage-steps{overflow:visible}
.story-stage:not([data-enhanced]) .stage-step{height:auto;margin-block:12px}
/* Progressive enhancement: with JS the frame fits one screen and only the current step shows. */
.story-stage[data-enhanced] .stage-frame{height:min(700px,calc(100svh - 36px))}
.story-stage[data-enhanced] .stage-steps{scrollbar-gutter:stable}
.story-stage[data-enhanced] .stage-step{display:none}
.story-stage[data-enhanced] .stage-step>.story-kicker{display:none}
.story-stage[data-enhanced] .stage-step.is-current{display:block}
.concept-lane{--story-title-x:-12px}.problem-lane{--story-title-x:12px}
/* Shared native timeline: blank beat -> concept -> blind lift -> problem.
   Glyphs remain inline, so wrapping and the final layout never shift as we type. */
.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current.story-reveal-box,.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current .story-reveal-box{animation:story-box-enter var(--story-item-duration) cubic-bezier(.22,.8,.24,1) calc(var(--story-lane-start) + var(--story-item-delay)) both}
.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current .story-reveal-title{animation:story-title-enter var(--story-item-duration) cubic-bezier(.22,.8,.24,1) calc(var(--story-lane-start) + var(--story-item-delay)) both}
.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current .story-reveal-label{animation:story-label-enter var(--story-item-duration) cubic-bezier(.22,.8,.24,1) calc(var(--story-lane-start) + var(--story-item-delay)) both}
.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current .story-reveal-detail{animation:story-detail-enter var(--story-item-duration) ease calc(var(--story-lane-start) + var(--story-item-delay)) both}
.story-stage[data-enhanced][data-reveal="true"] .stage-lane-heading{animation:story-title-enter calc(420ms * var(--story-motion-scale)) cubic-bezier(.22,.8,.24,1) calc(var(--story-lane-start) + 480ms * var(--story-motion-scale)) both}
.story-stage[data-enhanced][data-reveal="true"] .stage-step.is-current .story-type-glyph{animation:story-type-glyph calc(1ms * var(--story-motion-scale)) steps(1,start) calc(var(--story-lane-start) + var(--story-glyph-delay)) both}
.story-type-readable{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none}
.story-stage[data-enhanced] .problem-lane:after{content:'';position:absolute;inset:0;z-index:3;border-radius:inherit;background:linear-gradient(135deg,#d9e4ef8c 0%,#ffffffc9 22%,#63768f70 47%,#f1f6fba3 67%,#9cacbf96 100%),radial-gradient(ellipse at 8% 88%,#91b4d970,transparent 62%),radial-gradient(ellipse at 92% 5%,#ffffffd9,transparent 52%);backdrop-filter:blur(24px) saturate(.7);-webkit-backdrop-filter:blur(24px) saturate(.7);box-shadow:inset 0 1px 2px #ffffffeb,inset 1px 0 3px #ffffffa6,inset 0 -18px 42px #3c557e1f;pointer-events:none;opacity:0}
.story-stage[data-enhanced][data-reveal="true"] .problem-lane:after{animation:story-blind-lift calc(720ms * var(--story-motion-scale)) cubic-bezier(.65,0,.2,1) var(--story-blind-delay) both}
.story-stage[data-enhanced][data-started="false"]:not([data-state="done"]) .stage-step.is-current,.story-stage[data-enhanced][data-started="false"]:not([data-state="done"]) .stage-lane-heading{opacity:0}
.story-stage[data-enhanced][data-started="false"]:not([data-state="done"]) .problem-lane:after{animation:none;opacity:1}
/* The outgoing scene leaves during the finite Next cue; the next one starts blank. */
.story-stage[data-enhanced][data-reveal="true"][data-phase="press"] .stage-step.is-current.story-reveal-box{animation:story-scene-leave calc(260ms * var(--story-motion-scale)) ease calc(340ms * var(--story-motion-scale)) both}
.story-stage[data-enhanced][data-reveal="true"][data-phase="press"] .stage-lane-heading{animation:story-scene-leave calc(260ms * var(--story-motion-scale)) ease calc(340ms * var(--story-motion-scale)) both}
.story-stage[data-enhanced][data-reveal="true"][data-phase="switch"] .stage-step.is-current.story-reveal-box,.story-stage[data-enhanced][data-reveal="true"][data-phase="switch"] .stage-lane-heading{animation:story-scene-leave calc(260ms * var(--story-motion-scale)) ease both}
.story-stage[data-enhanced][data-viewport="mobile"] .problem-lane:after{animation:none!important;opacity:0!important}
.story-stage[data-phase="press"] .stage-prompt-dot{animation:stage-prompt-pulse calc(.6s * var(--story-motion-scale)) ease}
@keyframes story-box-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes story-title-enter{from{opacity:0;transform:translate(var(--story-title-x),5px)}to{opacity:1;transform:none}}
@keyframes story-label-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes story-detail-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes story-type-glyph{from{opacity:0}to{opacity:1}}
@keyframes story-blind-lift{0%{opacity:1;clip-path:inset(0 round 20px)}85%{opacity:1}100%{opacity:0;clip-path:inset(0 0 100% 0 round 20px)}}
@keyframes story-scene-leave{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-7px)}}
@keyframes stage-prompt-pulse{0%{box-shadow:0 0 0 5px #244ed822}45%{box-shadow:0 0 0 13px #244ed833}100%{box-shadow:0 0 0 5px #244ed822}}

@media(max-width:1100px){
 .landing-header nav{gap:13px;flex-wrap:wrap;justify-content:flex-end}
 .stage-lanes{padding:16px;gap:14px}.stage-lane{padding:15px}
}
@media(max-width:760px){
 .hero-links{display:flex}.hero-links .landing-button{width:100%}
 .strategy-story-section{padding-block:40px}
 .story-heading h2{font-size:1.8rem}.story-subtitle{font-size:.9375rem}
 .stage-frame{border-radius:20px}
 .stage-bar{display:grid;grid-template-columns:1fr auto;padding:10px 14px;gap:6px 10px}
 .stage-tabs:not([hidden]){display:flex;grid-row:2;grid-column:1/-1}
 .stage-tab{flex:1;padding:8px 10px}
 .stage-count{grid-row:1;grid-column:2}
 .stage-lanes{grid-template-columns:1fr;padding:12px;gap:0}
 .stage-lane{padding:12px;border-radius:14px;gap:8px}
 .stage-lane[data-hidden-lane="true"]{display:none}
 .stage-lane-heading{padding-bottom:8px;grid-template-columns:34px 1fr;gap:0 9px}
 .lane-badge{width:34px;height:34px;border-radius:10px}
 .stage-lane-heading h3{font-size:1.0625rem}
 .stage-lane-heading .story-kicker{font-size:.75rem}
 .stage-steps .story-step-card{padding:5px 2px;border:0;border-radius:0;background:transparent;box-shadow:none}
 .stage-step h4{font-size:1rem;line-height:1.45;margin-bottom:6px}
 .stage-step p:not(.story-kicker):not(.story-note):not(.story-footnote){font-size:.875rem;line-height:1.65;margin-bottom:8px}
 .step-chip{font-size:.6875rem;padding:3px 8px;min-height:22px;margin-bottom:7px}
 .story-kicker{font-size:.75rem;margin-bottom:5px}
 .story-action,.story-rating,.story-response-chip{font-size:.8125rem;min-height:30px;padding:5px 8px;margin-top:5px}
 .story-flashcard{padding:9px 11px;border-radius:11px;box-shadow:2px 3px 0 #e6edfb}
 .story-flashcard-label{font-size:.6875rem;margin-bottom:4px}
 .story-step-card .story-flashcard h4{font-size:1.0625rem;margin:3px 0 5px}
 .story-flashcard-answer{padding:6px 8px;margin-top:6px}
 .story-stage .stage-step .story-flashcard .story-flashcard-answer p{font-size:.875rem;margin:3px 0 0;line-height:1.45}
 .story-rating{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;gap:6px;min-height:0;margin-top:6px}
 .story-grade{min-height:44px;padding:6px 8px;gap:2px}
 .story-grade strong{font-size:.8125rem}.story-grade small{font-size:.625rem}
 .story-step-card .story-rating-prompt{font-size:.75rem!important;margin-top:6px!important}
 .story-note,.story-skip{font-size:.75rem;line-height:1.6;margin-top:7px}
 .story-branch{font-size:.8125rem;line-height:1.6;padding:6px 10px;margin-top:7px;gap:2px}
 .story-branch strong{font-size:.8125rem}
 .stage-finish-list{grid-template-columns:1fr;gap:5px}.stage-finish-list li{display:flex;flex-wrap:wrap;align-items:baseline;font-size:.8125rem;line-height:1.5;padding:5px 7px;gap:2px 5px}.stage-finish-list li>span:not(.story-type-run){font-size:.6875rem;margin-left:auto;white-space:nowrap}.stage-finish-list li:before{flex-shrink:0}
 .story-footnote{font-size:.6875rem;line-height:1.6;margin-top:7px}
 .stage-prompt{font-size:.8125rem;padding:6px 14px;gap:8px}
 .stage-prompt-dot{width:8px;height:8px;box-shadow:0 0 0 3px #244ed822}
 .stage-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 14px}
 .stage-next{min-height:48px;padding:10px;font-size:.875rem;justify-content:center}
 .stage-pause{padding:8px 6px;font-size:.75rem}
 .stage-lane-heading .story-kicker{display:none}
 .stage-lane-heading h3{grid-row:1}
 .lane-badge{grid-row:1}
 .stage-step[data-story-step="5"] .step-chip{display:none}
 .stage-dots{display:flex;grid-column:1/-1;justify-content:flex-end}
 .stage-hint{display:none}
}
@media(max-height:720px) and (max-width:760px){
 .stage-prompt{display:none}
 .stage-controls{padding:8px 12px;gap:4px}
 .stage-lanes{padding:10px}
 .stage-bar{padding:8px 12px;gap:4px 8px}
}
@media(max-height:600px) and (min-width:761px){
 .stage-lanes{padding:10px;gap:12px}.stage-lane{padding:10px;gap:8px}
 .stage-bar{padding:9px 16px}.stage-lane-heading{padding-bottom:8px}
 .stage-lane-heading .story-kicker{display:none}.stage-lane-heading h3{font-size:1.0625rem}
 .stage-lane-heading{grid-template-columns:30px 1fr}.lane-badge{width:30px;height:30px;grid-row:1}
 .stage-prompt{display:none}.stage-controls{padding:8px 14px}.stage-hint{display:none}
 .stage-steps .story-step-card{padding:11px 13px}.stage-step h4{font-size:1rem}
 .story-kicker,.story-note,.story-footnote,.story-branch,.story-branch strong,.stage-step p:not(.story-kicker):not(.story-note):not(.story-footnote){font-size:.8125rem;line-height:1.55}
 .step-chip{font-size:.6875rem;margin-bottom:5px}.stage-finish-list li{padding:5px 8px}
}
@media(prefers-reduced-motion:reduce){
 .story-stage [data-story-step],.story-stage [data-story-step] *,.stage-prompt-dot{animation:none!important;transform:none!important}
 .story-stage .problem-lane:after{animation:none!important;opacity:0!important}
 .stage-progress-fill,.stage-dots li,.stage-next svg{transition:none}
}

/* The prop is a nonfocusable, noninteractive part of the film, never a real control. */
.stage-next[hidden],.stage-pause[hidden]{display:none}
.stage-next-prop{pointer-events:none;user-select:none;cursor:default;min-width:150px;justify-content:center}
.stage-bar-title small{margin-left:8px;font-size:.75rem;font-weight:500;color:#52698b}
.replay-caption{font-size:.75rem;font-weight:500;opacity:.85}
.stage-next-prop .launch-cursor{position:absolute;right:16px;bottom:3px;width:24px;height:28px;opacity:0}
.story-stage[data-phase="press"] .stage-next-prop{animation:launch-next-press calc(.6s * var(--story-motion-scale)) ease both}
.story-stage[data-phase="press"] .launch-cursor{animation:launch-cursor-press calc(.6s * var(--story-motion-scale)) ease both}
@keyframes launch-next-press{0%,100%{transform:none}45%,65%{transform:scale(.96)}}
@keyframes launch-cursor-press{0%{opacity:0;transform:translate(16px,12px)}30%{opacity:1;transform:none}65%{opacity:1;transform:scale(.9)}100%{opacity:0;transform:none}}
/* CSS keyframes start paused offscreen; WAAPI also freezes in-flight transitions. */
.story-stage[data-enhanced][data-playing="false"] *,.story-stage[data-enhanced][data-playing="false"] *:before,.story-stage[data-enhanced][data-playing="false"] *:after{animation-play-state:paused!important}
.story-stage[data-started="false"] *,.story-stage[data-state="done"] *,.story-stage[data-state="done"] *:before,.story-stage[data-state="done"] *:after{animation:none!important;transition:none!important}
@media(max-width:760px){.stage-next-prop{min-width:0}.stage-pause{min-width:100px}.stage-bar-title small{font-size:.6875rem;margin-left:6px}.replay-caption{font-size:.6875rem}}

/* Only a newly revealed paused lane uses a poster, until the next scene.
   Leave the already visible lane's exact animation/transition clocks untouched. */
.story-stage[data-enhanced] .stage-lane[data-static-poster="true"] *,.story-stage[data-enhanced] .stage-lane[data-static-poster="true"]:after{animation:none!important;transition:none!important}
