@font-face{font-family:Manrope;src:url(manrope-400.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url(manrope-700.ttf) format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url(manrope-800.ttf) format('truetype');font-weight:800;font-display:swap}
:root{--ink:#121d30;--muted:#566176;--red:#d90836;--blue:#2365a8;--wash:#f4f7fb;--line:#dbe2eb;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scrollbar-color:#93abc3 var(--wash);scroll-padding:24px}body{margin:0;background:white;color:var(--ink);font:17px/1.55 Manrope,Arial,sans-serif}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}::selection{background:#dcecff;color:#143d65}input{accent-color:var(--blue);caret-color:var(--blue)}h1,h2,p{margin:0}h1,h2{text-wrap:balance;letter-spacing:-.03em;line-height:1.18}h1{font-size:clamp(30px,4vw,46px);font-weight:800}h2{font-size:24px}em{font-style:normal;color:var(--red)}p{max-width:70ch}p+p{margin-top:16px}img{display:block;max-width:100%}.header{height:100px;max-width:1240px;margin:auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:800;line-height:1.2;color:var(--ink);text-decoration:none}.brand strong{display:block;color:var(--red)}.header>a:last-child{white-space:nowrap}main{min-height:calc(100svh - 188px);outline:0}.footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:26px 20px;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}.skip{position:absolute;top:-80px;left:20px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:54px;padding:14px 24px;border:1px solid transparent;border-radius:10px;background:var(--red);color:white;font-weight:800;line-height:1.35;text-decoration:none;transition:background-color 140ms,transform 140ms var(--ease)}.button:hover{background:#b8072d}.button:active{transform:translateY(2px)}.secondary{color:var(--blue);background:white;border-color:var(--line)}.secondary:hover{background:var(--wash);border-color:var(--blue)}.small{font-size:14px;min-height:44px;padding:10px 16px}.text-button{background:transparent;border:0;color:var(--blue);text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:10px;font-size:15px}.button[aria-disabled=true]{background:var(--wash);color:var(--muted);pointer-events:none}.muted,.quiet{color:var(--muted)}.quiet{font-size:14px;line-height:1.5}.error{color:#961d39;background:#fff1f4;padding:16px;border-radius:12px;margin:20px 0;overflow-wrap:anywhere}.back{font-size:26px;text-decoration:none;width:44px;min-height:44px;display:grid;place-items:center;flex-shrink:0}.backlink{display:inline-block;margin-bottom:26px;min-height:44px;padding-top:10px}
.hero{max-width:1160px;margin:auto;padding:32px 32px 56px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:32px}.hero h1{font-size:clamp(42px,4.65vw,65px)}.hero p{margin-top:24px;max-width:40ch}.hero form{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.socrates{object-fit:contain;width:100%;height:560px}.wizard{max-width:1040px;margin:auto;padding:12px 32px 48px}.progress-row{display:flex;gap:16px;align-items:center;min-width:0;margin:12px 0 28px;font-size:14px;font-variant-numeric:tabular-nums}.progress-row span{white-space:nowrap}.progress-row progress{appearance:none;flex:1;min-width:30px;width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;background:#e7ebf1;color:var(--blue)}progress::-webkit-progress-bar{background:#e7ebf1;border-radius:8px}progress::-webkit-progress-value{background:var(--blue);border-radius:8px}progress::-moz-progress-bar{background:var(--blue);border-radius:8px}.question{max-width:680px;margin:auto;position:relative}.question>h1{max-width:18ch}.guide{object-fit:contain;float:right;width:96px;height:144px;margin:0 0 16px 18px}.question>p{margin-top:16px}.options{border:0;padding:0;margin:28px 0 24px;display:grid;gap:12px;clear:both}.option{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:16px;min-height:62px;cursor:pointer;transition:background-color 120ms,border-color 120ms}.option:hover{background:var(--wash)}.option:has(input:checked){border-color:var(--blue);background:#eef5fc}.option input{flex:0 0 20px;width:20px;height:20px;margin:0}.option span{min-width:0;overflow-wrap:anywhere}.actions{display:flex;align-items:center;gap:20px;margin:24px 0 8px}.actions .button{min-width:190px}.ready,.narrow{max-width:820px;margin:auto;padding:38px 32px 64px}.ready{max-width:780px}.ready>p,.narrow>p{margin-top:20px}.ready>.button,.ready>form{margin:28px 8px 16px 0}.ready>p.quiet{margin-bottom:24px}.course{border-top:1px solid var(--line);padding:26px 0;margin-top:30px}.course p{margin:14px 0 24px}.empty{padding:36px 0}.empty p{margin:18px 0 26px}
.path{list-style:none;margin:28px 0 0;padding:0}.path-node{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.node-index{height:44px;width:44px;border-radius:50%;background:#edf3fa;color:var(--blue);display:grid;place-items:center;font-weight:800}.path-node.done .node-index{background:#e5f4eb;color:#1b6945}.path-node.locked .node-index{background:var(--wash);color:var(--muted)}.path-node h2{margin:8px 0 12px}.path-node .button{margin-top:20px}.lesson{max-width:900px;margin:auto;padding:12px 32px 64px}.exercise,.feedback{max-width:700px;margin:auto}.exercise>h1{margin:10px 0 24px}.prompt{font-size:21px;line-height:1.6;margin:24px 0;white-space:normal}.hint{border:1px solid var(--line);border-radius:12px;background:var(--wash);padding:20px;margin-top:16px}.hint p{margin-top:8px}.hint-form{margin-top:14px}.order-slot{display:block;font-size:14px;margin:16px 0}.order-slot select{display:block;width:100%;min-height:56px;margin-top:6px;background:white;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px}.feedback{padding:36px 0}.feedback>p{margin-top:24px;font-size:18px}.feedback .button{margin-top:32px}.feedback.correct h1{color:#1b6945}.feedback[data-feedback]{animation:reveal 260ms var(--ease)}.answer-form>.button{margin-top:12px}.lesson .progress-row .text-button{white-space:nowrap;font-size:12px;padding:6px}.lesson .quiet{margin-top:14px}@keyframes reveal{from{filter:blur(2px);transform:translateY(8px)}to{filter:blur(0);transform:none}}
@media(max-width:700px){.header{height:80px;padding:0 20px}.brand{font-size:14px;gap:9px}.brand img{width:27px;height:39px}.header>a:last-child{font-size:13px}.hero{padding:26px 24px 40px;gap:8px;grid-template-columns:1fr}.hero p{font-size:17px}.hero .socrates{height:280px;width:190px;justify-self:end;margin-top:-8px}.hero h1{font-size:44px}.hero form{gap:10px}.hero .quiet{margin-top:22px}.wizard{padding:8px 20px 40px}.progress-row{gap:10px;margin-bottom:22px}.question h1{font-size:30px}.guide{width:78px;height:117px}.question>.muted{clear:both;padding-top:10px}.option{padding:15px 13px}.actions{gap:8px;justify-content:space-between}.actions .button{min-width:0;flex:1}.narrow,.ready{padding:28px 20px 48px}.ready .button{display:flex;width:100%;margin-top:16px}.path-node{grid-template-columns:36px 1fr;gap:14px}.node-index{width:34px;height:34px}.path-node h2{font-size:22px}.lesson{padding:8px 20px 48px}.lesson .progress-row{gap:4px}.prompt{font-size:19px}.feedback{padding-top:16px}.feedback .button,.answer-form>.button{width:100%}.lesson h1{font-size:30px}.footer{font-size:12px}.order-slot select{font-size:14px}.error{font-size:15px}}
[hidden]{display:none!important}.order-builder .option{text-align:left}.order-builder [aria-pressed=true]{background:#eef5fc;border-color:var(--blue)}.order-builder ol{padding-left:24px}.order-builder li{padding:8px 0}.earned{font-weight:800;color:#1b6945}.text-button:disabled{color:var(--muted);cursor:default}.header>a:last-child{display:inline-flex;align-items:center;min-height:44px}.footer a{display:inline-flex;align-items:center;min-height:44px}.reference{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.reference p{margin-top:16px}
.order-builder .option{background:white}
.reading-explanation{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;padding:4px 0}.reading-explanation summary{min-height:48px;padding:12px 0;cursor:pointer;font-weight:700;color:var(--blue)}.reading-explanation summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.reading-explanation p{padding:4px 0 20px;font-size:17px;line-height:1.6}
.learning-path .progress-row{margin-bottom:10px}.learning-path .path-score{margin-top:0}.next-lesson{padding:28px 0 24px;margin-top:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.next-lesson h2{font-size:28px}.next-lesson p{margin-top:12px}.next-lesson .button{margin-top:22px}.course-paths{margin-top:42px}.course-path+.course-path{margin-top:40px}.course-path>h2{font-size:23px;margin-bottom:18px}.path-module{border-top:1px solid var(--line)}.path-module:last-child{border-bottom:1px solid var(--line)}.path-module>summary{cursor:pointer;position:relative;min-height:72px;padding:22px 84px 22px 24px;list-style-position:outside;margin-left:16px;font-weight:700}.path-module.current>summary{color:var(--blue)}.module-count{position:absolute;right:0;top:24px;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--muted)}.path-module summary:focus-visible,.path-about summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.path-module .path{margin:0 0 22px 12px}.path-module .path-node{position:relative;border:0;padding:16px 0;gap:16px}.path-module .path-node:not(:last-child)::after{content:"";position:absolute;left:21px;top:60px;bottom:-16px;width:1px;background:var(--line)}.path-node h3{margin:4px 0 8px;font-size:20px;line-height:1.4;letter-spacing:-.02em}.lesson-status{font-size:14px;font-weight:700;color:#1b6945;margin-top:8px}.path-about{margin-top:32px}.path-about summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--blue)}.path-about p{margin-top:12px}.path-module .path-node .button{margin-top:12px}.path-module .quiet+.quiet{margin-top:8px}.path-module .node-index{font-variant-numeric:tabular-nums}.path-module .path-node.available .node-index{background:var(--blue);color:white}
@media(max-width:700px){.next-lesson{padding:22px 0}.next-lesson h2{font-size:25px}.next-lesson .button{width:100%}.course-paths{margin-top:32px}.course-path>h2{font-size:22px}.path-module>summary{padding:18px 64px 18px 10px;min-height:64px}.module-count{top:22px;font-size:13px}.path-module .path{margin-left:4px}.path-module .path-node{gap:12px}.path-module .path-node:not(:last-child)::after{left:16px;top:50px}.path-node h3{font-size:18px}}
.mentor{display:flex;align-items:center;gap:16px;max-width:700px;min-height:120px;margin:0 auto 20px}.mentor img{width:80px;height:120px;object-fit:contain;flex:none;transform-origin:50% 90%}.mentor strong{font-size:15px;color:var(--blue)}.mentor p{font-size:18px;margin-top:4px;max-width:36ch}.mentor[data-motion=greet] img{animation:mentor-greet 600ms var(--ease) 1}.mentor[data-motion=nod] img{animation:mentor-nod 420ms var(--ease) 1}.mentor[data-motion=think] img{animation:mentor-think 500ms var(--ease) 1}.mentor[data-motion=celebrate] img{animation:mentor-complete 650ms var(--ease) 1}.motion-off .mentor img{animation:none!important}
.lesson-effects{position:relative;flex:none}.lesson-effects summary{min-height:44px;display:flex;align-items:center;color:var(--blue);cursor:pointer;padding:6px}.lesson-effects[open] summary{text-decoration:underline;text-underline-offset:4px}.lesson-effects>div{position:absolute;right:0;z-index:2;background:white;border:1px solid var(--line);border-radius:12px;padding:8px;min-width:180px;display:grid}.lesson-effects summary:focus-visible,.abilities summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.abilities{border-top:1px solid var(--line);margin-top:24px;padding-top:8px}.abilities summary{cursor:pointer;min-height:48px;padding:12px 0;font-weight:700}.abilities ul{list-style:none;padding:0;margin:8px 0}.abilities li{display:flex;gap:20px;justify-content:space-between;padding:8px 0}.abilities strong{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--blue)}.review-due{color:var(--blue);font-weight:700;margin-top:12px}.mentor+.feedback{padding-top:12px}.mentor+.exercise>h1{margin-top:8px}
@keyframes mentor-greet{0%{transform:rotate(0)}35%{transform:rotate(-3deg)}70%{transform:rotate(1.5deg)}100%{transform:rotate(0)}}
.next-lesson:has(.path-guide){display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:24px;background:var(--wash);border:0;border-radius:16px;padding:28px}.path-guide.mentor{display:flex;flex-direction:column;justify-content:center;gap:0;margin:0;align-self:center;min-height:0}.path-guide.mentor img{width:140px;height:210px}.path-guide figcaption{font-size:14px;font-weight:700;color:var(--blue);margin-top:8px}.module-state{display:block;font-size:12px;margin-top:2px}.path-module.current .module-state{color:var(--blue);font-weight:700}.path-module.done .module-state{color:#1b6945}
@media(max-width:700px){.next-lesson:has(.path-guide){grid-template-columns:minmax(0,1fr) 72px;gap:12px;padding:20px 16px}.path-guide.mentor{align-self:start;margin-top:8px}.path-guide.mentor img{width:72px;height:108px}.path-guide figcaption{font-size:11px}.next-lesson-copy{display:contents}.next-lesson-copy h2,.next-lesson-copy>p{grid-column:1}.next-lesson-copy form,.next-lesson-copy>a{grid-column:1 / -1}.next-lesson-copy p{margin-top:0}.next-lesson-copy .button{margin-top:8px}.path-guide.mentor{grid-column:2;grid-row:1 / 3}.next-lesson-copy h2{font-size:24px}.module-count{top:14px}}
@keyframes mentor-nod{0%,100%{transform:translateY(0)}45%{transform:translateY(4px) scaleY(.98)}}
@keyframes mentor-think{0%,100%{transform:rotate(0)}50%{transform:rotate(2deg)}}
@keyframes mentor-complete{0%,100%{transform:translateY(0)}40%{transform:translateY(-7px) rotate(-2deg)}70%{transform:translateY(0) rotate(1deg)}}
@media(max-width:700px){.mentor{min-height:96px;margin-bottom:16px;gap:12px}.mentor img{width:64px;height:96px}.mentor p{font-size:17px}.abilities li{font-size:15px;gap:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
html:not(.learning-motion-ready) *,html:not(.learning-motion-ready) *::before,html:not(.learning-motion-ready) *::after,.motion-off *,.motion-off *::before,.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html:not(.learning-motion-ready) .button:active,.motion-off .button:active{transform:none}
.module-goal{font-size:16px;color:var(--muted);margin:0 0 18px 24px;max-width:58ch}
.path-module .path{margin-left:0}
.path-module .path-node{grid-template-columns:56px minmax(0,1fr);gap:20px;padding:20px 0}
.path-module .path-node:not(:last-child)::after{left:27px;top:76px;bottom:-20px;width:2px}
.path-module .node-index{width:56px;height:56px;border-radius:50%;position:relative;z-index:1}
.node-index svg,.section-complete svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.path-node.done::after{background:#a6c9b5!important}
.path-node.available .node-index{box-shadow:0 5px 9px #183e641f}
.path-node.available h3{color:var(--blue)}
.section-complete{display:flex;gap:12px;align-items:center;padding:16px 0 24px;color:#1b6945;font-size:15px}
.section-complete svg{flex:none}
@media(min-width:701px){.path-module .path{margin-left:20px}.path-module .path-node{max-width:620px}.path-module .path-node:nth-child(even){margin-left:36px}.path-module .path-node:nth-child(odd):not(:last-child)::after{transform:rotate(-12deg);transform-origin:top}.path-module .path-node:nth-child(even):not(:last-child)::after{transform:rotate(12deg);transform-origin:top}}
@media(max-width:700px){.path-module .path-node{grid-template-columns:48px minmax(0,1fr);gap:14px}.path-module .node-index{width:48px;height:48px}.path-module .path-node:not(:last-child)::after{left:23px;top:68px}.module-goal{margin-left:0;font-size:15px}.module-name{overflow-wrap:anywhere}.course-path>h2{font-size:21px}.path-node h3{font-size:19px}.module-count{font-size:12px}}
