
*{box-sizing:border-box}body{margin:0;font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif;background:#f3f6fa;color:#223449}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #1bacb2;outline-offset:3px}button{border:0}a{color:inherit;text-decoration:none}button svg{flex-shrink:0}button{transition:background .15s,color .15s}button:hover{filter:brightness(.97)}

.atlas{--ink:#223449;--muted:#728093;--line:#e7ecf2;--teal:#137e78;font-size:14px;min-width:320px}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;gap:24px}.brand{display:flex;gap:12px;align-items:center;font-size:18px;font-weight:700;white-space:nowrap;letter-spacing:.03em}.brand-symbol{width:42px;height:46px;background:#0c2f43;color:#72e0ca;border-radius:13px;display:grid;place-items:center;transform:rotate(-5deg)}.brand-symbol svg{transform:rotate(5deg)}.brand-divider{margin:0 9px;font-weight:400;color:#c5d0dc}.brand small{display:block;font-size:10px;color:#8592a1;letter-spacing:.18em;margin-top:6px;font-weight:500}.topbar nav{display:flex;align-self:stretch;gap:24px}.topbar nav button{background:none;color:#748091;display:flex;align-items:center;gap:8px;position:relative;font-size:14px;white-space:nowrap}.topbar nav button.active{color:#166962;font-weight:600}.topbar nav button.active:after{content:'';position:absolute;bottom:0;height:3px;border-radius:3px;background:#219b8e;left:0;right:0}.mastered{font-size:12px;color:#8794a1;white-space:nowrap}.mastered>span{font-size:21px;font-weight:650;color:#213c4e}.mastered small{display:block;font-size:11px;margin-top:4px}.workspace{display:grid;grid-template-columns:224px minmax(400px,1fr) 348px;align-items:start;min-height:calc(100vh - 120px)}.sidebar{background:#fff;padding:26px 18px 14px;border-right:1px solid var(--line);position:sticky;top:0;height:calc(100vh - 20px);display:flex;flex-direction:column}.side-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#80909f;margin-bottom:18px}.search{display:flex;align-items:center;gap:8px;background:#f3f6f9;border:1px solid #edf1f5;border-radius:8px;padding:10px;color:#8392a1}.search input{background:transparent;border:0;outline:0;width:100%;min-width:0;font-size:13px;color:var(--ink)}.search button{padding:0;background:transparent;color:#80909f;display:flex}.module-list{padding:18px 0 14px;border-bottom:1px solid var(--line)}.module-list>button{width:100%;display:flex;align-items:center;background:transparent;gap:11px;color:#586b7d;padding:7px 10px;text-align:left;border-radius:7px;margin:1px 0}.module-list>button>span:last-child{margin-left:auto;color:#8997a6;font-size:12px}.module-list>button.selected{background:#eaf6f2;color:#17685f;font-weight:600}.module-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;font-size:11px}.module-icon.all{background:#dbede7;color:#258476;font-size:20px}.list-label{font-size:12px;color:#8d9aa6;display:flex;justify-content:space-between;padding:19px 6px 12px}.topic-list{overflow:auto;flex:1;min-height:180px;scrollbar-width:thin}.topic-list>button{display:flex;align-items:center;gap:9px;width:100%;padding:10px 7px;font-size:13px;text-align:left;background:none;color:#617387;border-radius:6px;line-height:1.4}.topic-list>button.chosen{background:#eef4f8;color:#1f485e;font-weight:600}.topic-list>button>span:nth-child(2){flex:1}.status-dot{width:6px;height:6px;background:#ced6df;border-radius:100%;flex-shrink:0}.status-dot.s1{background:#5f9fc2}.status-dot.s2{background:#e8ad50}.status-dot.s3{background:#369d89}.side-note{font-size:11px;line-height:1.8;color:#7d8d9b;padding:18px 5px 0}.side-note small{font-size:10px}.live-dot{width:6px;height:6px;display:inline-block;border-radius:100%;background:#4dc9ae;margin-right:7px}.main-work{padding:28px 25px 30px;min-width:0}.work-heading{display:flex;justify-content:space-between;align-items:center;margin:3px 0 26px;gap:12px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.15em;color:#8b9aaa}.work-heading h1{font-size:25px;font-weight:650;letter-spacing:-.03em;margin:9px 0 10px;line-height:1.4}.work-heading p{font-size:13px;color:#80909d;margin:0;line-height:1.6}.edition{font-size:11px;white-space:nowrap;color:#95a2ae}.edition span{padding:5px 7px;background:#e5edf2;border-radius:5px;margin-left:6px;font-size:13px;color:#647b8c}.graph-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 17px;background:#102334;border:1px solid #203748;border-radius:13px 13px 0 0;color:#d8e5ef}.graph-toolbar>div:first-child{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px}.graph-toolbar strong{font-weight:500}.selected-dot{width:7px;height:7px;border-radius:100%;flex-shrink:0}.segmented{display:flex;gap:3px;flex-shrink:0}.segmented button{padding:6px 8px;background:transparent;border-radius:5px;color:#8ea4b7;font-size:11px;white-space:nowrap}.segmented button.on{background:#2a4052;color:#e3f0f7}.graph-wrap{position:relative;background:#0a1928;border-radius:0 0 13px 13px;color:#91a6b9;border:1px solid #21384a;border-top:0;overflow:hidden}.graph-caption{display:flex;align-items:center;padding:18px 18px 0;font-size:11px}.graph-caption small{margin-left:auto;font-size:10px;color:#667f94}.graph{width:100%;height:auto;min-height:360px;display:block;touch-action:none;cursor:grab}.graph:active{cursor:grabbing}.graph-node{cursor:pointer;outline:0}.graph-node:focus-visible circle:last-of-type{stroke:white;stroke-width:4}.graph-bottom{display:flex;justify-content:space-between;align-items:center;padding:0 18px 12px;font-size:10px}.graph-bottom>span{display:flex;align-items:center;gap:6px;color:#758da2}.zoom{display:flex;align-items:center;background:#142c3e;border-radius:6px}.zoom button{display:flex;padding:7px;background:none;color:#9bb1c1}.zoom span{font-size:10px;padding:0 5px;min-width:38px;text-align:center}.graph-legend{display:flex;gap:16px;padding:12px 18px;border-top:1px solid #1b3042;font-size:10px;color:#8ca0b2}.graph-legend>span{display:flex;align-items:center;gap:6px}.graph-legend i{width:15px;height:1px;background:#9fcde5}.graph-legend i.dashed{background:none;border-top:1px dashed #eabd72}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-title>div{display:flex;align-items:center;gap:8px}.section-title svg{color:#40857d}.section-title h2{font-size:15px;margin:0;font-weight:600}.section-title>span{font-size:11px;color:#8c9aa8}.path-section{padding:25px 0 0}.path-note{font-size:12px;color:#82919e;line-height:1.7;margin:12px 0 16px}.path-track{display:flex;gap:10px;overflow:auto;padding:2px 2px 12px;scrollbar-width:thin}.path-track>button{position:relative;text-align:left;background:#fff;border:1px solid #e0e7ed;border-radius:9px;padding:12px;flex:0 0 150px;min-height:105px;display:flex;flex-direction:column;gap:7px}.path-track>button.current{border-color:#419f93;background:#eef8f5;box-shadow:0 0 0 1px #419f9320}.path-track>button.complete small{background:#dff4ec;color:#297f69}.path-track small{display:grid;place-items:center;font-size:10px;border-radius:4px;background:#eef2f5;color:#7f8f9d;width:23px;height:20px}.path-track strong{font-size:13px;font-weight:600;color:#425e6f;line-height:1.5}.path-track span{font-size:10px;color:#8a9aa6;margin-top:auto}.path-track>button>svg{position:absolute;right:10px;top:15px;color:#aab8c2}.next-step{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-top:5px;padding:11px 0;color:#84939f}.next-step strong{color:#4e6774;font-weight:500}.next-step button,.text-button{display:inline-flex;align-items:center;gap:6px;color:#237c71;background:none;font-size:12px;font-weight:600}.detail{background:#fff;min-height:calc(100vh - 88px);border-left:1px solid var(--line);padding:27px 24px;position:sticky;top:0;max-height:100vh;overflow:auto;scrollbar-width:thin}.detail-top{display:flex;align-items:center;gap:8px;margin-bottom:17px}.pill{border-radius:5px;padding:5px 9px;font-size:11px}.detail-top>small{color:#94a1ac;font-size:10px}.state-tag{font-size:10px;color:#98a4af;margin-left:auto}.state3{color:#368f78}.state2{color:#b58332}.detail>h2{font-size:24px;line-height:1.4;letter-spacing:-.03em;font-weight:650;margin:0 0 11px}.focus{font-size:13px;color:#7c8e9b;line-height:1.9;margin:0 0 19px}.detail-tabs{display:flex;gap:19px;border-bottom:1px solid var(--line);margin-bottom:20px}.detail-tabs>button{position:relative;font-size:12px;color:#8a99a7;padding:0 0 12px;background:none}.detail-tabs>button.active{color:#2a8274;font-weight:600}.detail-tabs>button.active:after{position:absolute;content:'';height:2px;bottom:-1px;background:#2b9783;left:0;right:0}.detail section{margin:20px 0}.detail h3{font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;margin:0 0 12px}.muted{font-size:12px;color:#8694a2;line-height:1.8}.prereq-cta{padding:11px 12px;border:1px solid #ddebe8;background:#f3f9f7;color:#317b6c;display:flex;justify-content:space-between;align-items:center;font-size:12px;width:100%;border-radius:6px;text-align:left}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.chips>button{font-size:11px;border:1px solid #e4eaf0;color:#667e8b;border-radius:5px;padding:6px 8px;background:#fff;display:flex;align-items:center}.caution{padding:14px;background:#f8f5ee;border:1px solid #ede7d8;border-radius:8px;font-size:12px;color:#998053;line-height:1.9}.caution h3{color:#8b754f!important;margin-bottom:7px!important}.caution p{margin:0}.relationship-list>button{display:flex;align-items:center;text-align:left;width:100%;gap:9px;padding:10px 0;background:none;border-bottom:1px solid #eff2f5;font-size:12px;color:#4a6575}.relationship-list>button>span:nth-child(2){flex:1}.relationship-list small{display:block;font-size:10px;color:#9ba7b1;margin-top:5px}.line-icon{font-size:18px;color:#b4c4cd}.transfer-card{width:100%;background:#f7f9fc;border:1px solid #e8edf2;border-radius:7px;text-align:left;padding:11px 13px;margin-bottom:9px}.transfer-card strong{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:500;color:#5c7185}.transfer-card p{font-size:11px;line-height:1.9;color:#83939f;margin:7px 0}.transfer-card small{font-size:10px;line-height:1.7;color:#9a845c}.primary{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;background:#167e72;color:#fff;border-radius:7px;padding:12px 14px;font-size:13px;font-weight:500;margin:18px 0}.success{color:#348a76;font-size:12px;line-height:1.7}.progress-control{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.progress-control label{font-size:12px;margin-right:12px;color:#6f8392}.progress-control select{font-size:12px;color:#486676;border:1px solid #dce5eb;border-radius:5px;padding:6px 10px;background:white}.progress-control p{font-size:10px;color:#95a3af;line-height:1.9}.progress-control output{font-size:11px;color:#3d8a75;line-height:1.8;display:block}.path-picker{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.path-picker button{font-size:12px;padding:9px 12px;color:#6b8291;border:1px solid #dce6ec;border-radius:6px;background:white}.path-picker button.active{color:#1c7c6f;background:#e4f3ed;border-color:#9dc7b9}.question-chooser{display:flex;gap:6px;margin:18px 0}.question-chooser button{background:#f0f4f7;border:1px solid #e5ebef;border-radius:5px;color:#7d91a0;font-size:12px;width:30px;height:31px}.question-chooser button.active{background:#227e71;color:#fff;border-color:#227e71}.question-meta{font-size:12px;color:#556f82;display:flex;justify-content:space-between;margin-top:22px}.question-meta span{font-size:10px;color:#9e8a5e}.question-text{font-size:16px;line-height:2;color:#29455a;margin:15px 0 20px;white-space:pre-wrap;overflow-wrap:anywhere}.question-detail img{display:block;width:100%;border:1px solid #e4eaf0;border-radius:5px;margin-bottom:20px}.answer-label{display:block;font-size:11px;color:#758d9d;line-height:1.8}.answer-label textarea{display:block;background:#f8fafc;border:1px solid #dce6ed;border-radius:6px;padding:10px;margin-top:8px;width:100%;min-height:104px;resize:vertical;font-size:13px;line-height:1.8;color:#385a6b}.hint{font-size:12px;color:#8496a1;margin:13px 0}.hint summary{cursor:pointer;color:#56887e}.hint p{line-height:1.9}.solution{padding:14px;background:#eef7f3;border:1px solid #d7ebe2;border-radius:7px;font-size:13px;line-height:1.9;color:#496e61}.solution h4{font-size:14px;margin:0 0 9px}.solution p{white-space:pre-wrap}.self-check{display:flex;gap:8px}.self-check>button{background:white;border:1px solid #cbded4;color:#528576;font-size:11px;padding:8px;border-radius:5px}.question-source{font-size:10px;line-height:1.9;color:#98a6b2;overflow-wrap:anywhere;margin-top:20px}.question-source a{color:#519184}.question-source small{display:block;font-size:10px;color:#a58a59}.question-pointer{font-size:11px;display:flex;align-items:center;gap:6px;color:#5a9190;line-height:1.8}.question-network{padding:25px 0;border-top:1px solid #e3eaf0;margin-top:18px}.question-network>p{font-size:12px;color:#8296a3;line-height:1.8}.related-question-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.related-question-grid>button{text-align:left;padding:15px;background:white;border:1px solid #e2e9ef;border-radius:8px;color:#4e687c;display:flex;flex-direction:column;gap:9px}.related-question-grid>button.active{border-color:#48a793;box-shadow:0 0 0 1px #48a793}.relation-badge{color:#5c9c8c;font-size:10px}.relation-badge.gold{color:#b09053}.related-question-grid strong{font-size:13px;font-weight:600}.related-question-grid p{font-size:13px;line-height:1.9;margin:0}.related-question-grid small{font-size:11px;line-height:1.7;color:#9aa8b4}.comparison{background:#fff;padding:20px;border-radius:8px;margin-top:15px;border:1px solid #dfe9ee}.comparison h3{font-size:16px;margin:11px 0 17px}.comparison>div{display:grid;grid-template-columns:1fr 1fr;gap:20px}.comparison p{font-size:13px;line-height:1.9}.comparison b{font-size:11px;color:#7c9b9d;display:block;margin-bottom:10px}.source-detail>a{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid #e7edf2;font-size:12px;line-height:1.9;color:#567888;word-break:break-all}.source-detail>a>svg{flex-shrink:0;margin-top:4px}.source-detail>a span{flex:1}.source-detail small{display:block;color:#9aaaae;font-size:10px}.source-work h1{font-size:28px;line-height:1.5;letter-spacing:-.03em;margin:13px 0}.source-work>p{font-size:14px;line-height:1.9;color:#8495a4}.source-stats{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid #e1e9ef;border-radius:10px;margin:24px 0}.source-stats>div{padding:18px;border-right:1px solid #e9eef3}.source-stats strong{display:block;font-size:25px;color:#356d70;font-weight:600}.source-stats span{font-size:11px;color:#8d9caa;display:block;margin-top:8px}.coverage{padding:18px;background:#edf4f8;border-radius:8px;border:1px solid #dce7ef;color:#668294}.coverage h3{font-size:14px;margin:0 0 10px}.coverage p{font-size:12px;line-height:1.9;margin:8px 0}.source-work h2{font-size:19px;margin:30px 0 16px}.learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.learning-grid article{background:white;border:1px solid #e1e9ed;padding:18px;border-radius:8px}.learning-grid article>span{font-size:12px;color:#3b9c91}.learning-grid h3{font-size:15px;margin:12px 0 9px}.learning-grid p{font-size:12px;line-height:1.9;color:#8396a4;margin:0}.research a{color:#498e92;text-decoration:underline}.source-work>select{font-size:14px;padding:10px 15px;border:1px solid #d8e5ec;border-radius:6px;background:white;color:#517385}.lesson-list>div{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #e0e7ed}.lesson-list>div>span{color:#99a8b4;font-size:11px}.lesson-list strong{font-size:13px;font-weight:500;flex:1}.lesson-list>div>div{display:flex;gap:6px;flex-wrap:wrap;max-width:40%}.lesson-list button,.reference-list button{font-size:10px;background:#e8f1f4;color:#658492;border-radius:5px;padding:6px 8px}.lesson-list a{display:flex;align-items:center;gap:4px;font-size:11px;color:#479384;white-space:nowrap}.catalog-search{border:1px solid #dce7ee;border-radius:6px;padding:12px;background:white;width:100%;font-size:13px}.reference-list details{padding:11px 0;border-bottom:1px solid #e0e8ee;font-size:12px;line-height:1.8}.reference-list summary{cursor:pointer;overflow-wrap:anywhere}.reference-list summary span{color:#98a6b1;font-size:10px;margin-left:10px}.reference-list p{color:#8fa0ad;font-size:11px;overflow-wrap:anywhere}.empty{font-size:12px;line-height:1.9;color:#90a0ad;padding:10px}footer{font-size:10px;padding:12px 27px;display:flex;justify-content:space-between;color:#a0adb8;border-top:1px solid #e5ebf0;background:#fff}
@media(min-width:1600px){.workspace{grid-template-columns:250px minmax(400px,1fr) 390px}.main-work{padding:34px 36px}.graph{max-height:580px}.detail{padding:32px}.topbar{padding:0 32px}.work-heading h1{font-size:29px}}
@media(max-width:1200px){.workspace{grid-template-columns:195px minmax(350px,1fr) 310px}.main-work{padding:25px 18px}.detail{padding:23px 18px}.topbar{padding:0 20px}.topbar nav{gap:18px}.brand{font-size:16px}.brand-symbol{width:35px;height:40px}.edition{display:none}.sidebar{padding:22px 12px}.work-heading h1{font-size:23px}.graph-toolbar{padding:12px}.segmented button{padding:6px}.graph-legend{gap:10px}.graph{min-height:330px}}
@media(max-width:1000px){.workspace{grid-template-columns:180px minmax(0,1fr)}.detail{grid-column:2;position:relative;max-height:none;border-top:1px solid #e1e9ef;margin:0 18px 25px;border:1px solid #e1e9ef;border-radius:10px;min-height:0}.sidebar{grid-row:1/3;height:calc(100vh - 20px)}.mastered{display:none}.topbar nav{gap:16px}.topbar nav button svg{display:none}.topbar{gap:16px}.brand{font-size:15px}.brand-divider{margin:0 6px}.detail>h2{font-size:22px}.graph{min-height:350px}.progress-control{max-width:480px}}
@media(max-width:680px){.topbar{height:auto;min-height:110px;flex-wrap:wrap;padding:16px 18px 0;gap:13px}.brand{font-size:16px}.brand small{font-size:9px}.topbar nav{width:100%;justify-content:space-between;gap:10px;height:39px}.topbar nav button{font-size:12px}.workspace{display:flex;flex-direction:column}.sidebar{width:100%;position:relative;height:auto;padding:15px 18px 8px;border-bottom:1px solid #e1e9ef;border-right:0}.side-heading,.list-label,.side-note{display:none}.search{padding:10px}.module-list{display:flex;overflow:auto;gap:6px;padding:12px 0 8px;border:0}.module-list>button{width:auto;white-space:nowrap;padding:6px 9px;font-size:12px;gap:5px;background:#f5f7fa}.module-list>button>span:last-child{display:none}.module-icon{width:14px;height:17px;background:none!important;font-size:8px}.topic-list{min-height:0;max-height:100px;display:flex;flex-wrap:wrap;gap:5px}.topic-list>button{width:auto;font-size:11px;padding:6px 8px;border:1px solid #eaf0f4}.main-work{width:100%;padding:22px 16px}.work-heading{margin:0 0 18px}.work-heading h1{font-size:23px}.work-heading p{font-size:12px}.graph-toolbar{flex-wrap:wrap;padding:12px;gap:10px}.graph-toolbar strong{font-size:12px}.graph{min-height:290px}.graph-caption{font-size:10px;padding:15px 12px 0}.graph-caption small{font-size:9px}.graph-legend{font-size:9px;padding:11px;justify-content:space-between;gap:6px}.graph-bottom{padding:0 12px 10px;gap:6px}.graph-bottom>span{font-size:9px}.section-title h2{font-size:14px}.path-note{font-size:11px}.path-track>button{flex-basis:143px}.detail{margin:0 16px 25px;width:calc(100% - 32px);padding:24px;position:relative;max-height:none}.detail h3{font-size:14px}.detail .muted,.detail .caution{font-size:13px}.focus{font-size:14px}.detail-tabs>button{font-size:13px}.related-question-grid{grid-template-columns:1fr}.comparison>div{grid-template-columns:1fr}.source-stats>div{padding:14px 10px}.source-stats strong{font-size:22px}.learning-grid{grid-template-columns:1fr}.lesson-list>div{flex-wrap:wrap}.lesson-list>div>div{max-width:100%;order:3;flex-basis:100%}.source-work h1{font-size:24px}footer{font-size:9px;padding:12px 18px;gap:16px}footer>span:last-child{text-align:right}.next-step{gap:15px;line-height:1.8}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Reading sizes for children: actions 14px, learning explanations 16px. */
.atlas{font-size:16px}.topbar nav button,.module-list>button,.topic-list>button,.detail-tabs>button,.detail h3,.chips>button,.prereq-cta,.relationship-list>button,.transfer-card strong,.progress-control label,.progress-control select,.question-chooser button,.path-track strong,.section-title h2,.path-picker button,.segmented button,.next-step,.primary,.text-button{font-size:14px}.focus,.caution,.question-text,.solution,.related-question-grid p,.comparison p,.source-work>p,.learning-grid p{font-size:16px}.eyebrow,.brand small,.side-heading,.side-note,.side-note small,.list-label,.work-heading p,.edition,.graph-caption,.graph-caption small,.graph-bottom,.graph-bottom>span,.graph-legend,.path-note,.path-track span,.path-track small,.detail-top>small,.state-tag,.pill,.muted,.relationship-list small,.transfer-card p,.transfer-card small,.progress-control p,.progress-control output,.question-meta,.question-meta span,.question-source,.question-source small,.answer-label,.question-pointer,.relation-badge,.related-question-grid small,.comparison b,.source-detail small,.source-stats span,.coverage p,.lesson-list a,.lesson-list button,.reference-list button,.reference-list summary span,.reference-list p,footer{font-size:12px}.work-heading p,.muted,.transfer-card p,.path-note{color:#667e8f}.question-meta span,.question-source{color:#6f8294}.sidebar{height:calc(100vh - 20px)}.transfer-card small{color:#806b43}.focus{color:#637e8e}.source-detail>a{font-size:14px}.source-work .coverage p{font-size:14px}.search input{font-size:14px}.graph-caption small{color:#93a9bd}.graph-bottom>span{color:#9cb2c4}.graph-legend{color:#afc0cd}
@media(max-width:1200px){.graph-toolbar{flex-wrap:wrap}.graph-toolbar>div:first-child{font-size:14px}.graph-legend{flex-wrap:wrap}.topbar nav{gap:12px}.main-work{padding-left:18px;padding-right:18px}}
@media(max-width:680px){.sidebar{height:auto}.topbar nav button{font-size:13px}.module-list>button{font-size:14px}.topic-list>button{font-size:13px}.graph-caption,.graph-caption small,.graph-bottom>span,.graph-legend{font-size:12px}.graph-legend{justify-content:flex-start}.graph{min-height:280px}.side-note{display:none}}
.back-topic{display:flex;align-items:center;gap:7px;background:none;font-size:12px;color:#7b939f;margin:0 0 17px;padding:0;text-align:left;line-height:1.7}
.mobile-detail-link{display:none}@media(max-width:680px){.mobile-detail-link{display:block;padding:12px 16px;color:#b6e5dc;background:#142d3f;font-size:14px;border-left:1px solid #21384a;border-right:1px solid #21384a}.graph-node text{font-size:34px}.graph-node[aria-pressed="true"] text{font-size:38px}.graph-node circle[fill="transparent"]{r:45}.graph-node rect{display:none}.graph-node text{paint-order:stroke;stroke:#0a1928;stroke-width:6px;stroke-linejoin:round}.detail{scroll-margin-top:18px}}

/* Student exploration: one task per screen, with details opened on demand. */
.student{--ink:#233d49;--muted:#657a82;--accent:#147b6d;--border:#dfe7e7;min-width:320px;min-height:100vh;background:#f5f8f7;color:var(--ink);font-size:16px;line-height:1.65}
.student h1,.student h2,.student h3,.student p{margin-top:0}.student h1:focus{outline:none}.student h2{font-size:23px;line-height:1.55;letter-spacing:-.025em}.student h3{line-height:1.5}.student button{line-height:1.5}.student svg{flex-shrink:0}.student small{font-size:13px}.student em{font-style:normal}.student button,.student a{touch-action:manipulation}.student .skip-nav{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:20}.student .skip-nav:focus{top:10px}
.student-header{display:flex;align-items:center;gap:36px;min-height:88px;border-bottom:1px solid var(--border);background:#fff;padding:16px max(28px,calc((100vw - 1160px)/2));white-space:nowrap}
.student-brand{display:flex;align-items:center;gap:12px;background:none;text-align:left;color:var(--ink);font-size:19px;font-weight:700;padding:0}.student-brand small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:3px;letter-spacing:.08em}.brand-mark{width:43px;height:46px;border-radius:13px;background:#173e4a;color:#91d9c1;display:grid;place-items:center}.student-header nav{display:flex;gap:12px;margin-left:auto}.student-header nav button,.header-tools button{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;background:none;color:#617780;padding:12px 15px;font-size:14px}.student-header button.active{background:#edf6f2;color:#117460;font-weight:600}.header-tools{display:flex;align-items:center;gap:3px}.header-tools button{font-size:13px;padding:10px 8px}
.student-content{max-width:1100px;margin:auto;padding:42px 28px 70px;min-height:calc(100vh - 160px)}.student-content.focused-content{max-width:880px;padding-top:25px}.welcome{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.overline{font-size:12px!important;font-weight:600;letter-spacing:.1em;color:#527e72;display:block;margin-bottom:12px!important}.welcome h1,.page-heading h1{font-size:36px;line-height:1.35;letter-spacing:-.035em;margin:0 0 14px}.welcome h1 em{color:var(--accent)}.welcome p:not(.overline),.page-heading>p:last-child{color:var(--muted);font-size:15px;margin:0}.resume{background:#fff;border:1px solid var(--border);border-radius:12px;padding:15px 18px;min-width:200px;text-align:left;color:var(--ink)}.resume small{color:var(--muted);display:block}.resume strong{display:block;font-size:15px;margin:3px 0 8px}.resume>span{color:var(--accent);font-size:13px;display:flex;align-items:center;gap:4px}
.starter{display:grid;grid-template-columns:1.2fr 1fr;background:#e8f3ee;border:1px solid #d6e7df;border-radius:20px;overflow:hidden}.starter-copy{padding:28px 36px 32px}.small-tag{display:inline-block;font-size:12px;background:#dcece4;color:#416e5d;padding:4px 10px;border-radius:5px;font-weight:500}.starter h2{font-size:32px;line-height:1.35;margin:17px 0 12px;letter-spacing:-.025em}.starter-copy>p{color:#547568;font-size:14px;max-width:340px;margin-bottom:21px}.action{border-radius:9px;padding:12px 19px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:47px;background:#187966;color:#fff;font-size:15px;font-weight:600;max-width:100%;text-align:center}.action:hover{background:#116453}.starter-meta{display:block;color:#5f7b6e;font-size:12px;margin-top:13px}.starter-method{border-left:1px solid #cfdfd7;padding:26px 34px;margin:26px 0;align-self:center}.starter-method>p{color:#5c7c6b;font-size:13px;margin-bottom:16px}.starter-method>div{display:flex;gap:16px;align-items:center;margin:13px 0}.starter-method>div>span{color:#4b8e76;font-size:12px;font-weight:600;width:29px;height:29px;border:1px solid #bad4c6;border-radius:50%;display:grid;place-items:center}.starter-method p{margin:0}.starter-method b{font-size:15px;font-weight:600}.starter-method small{display:block;color:#698475;margin-top:2px;font-size:12px}
.home-section{margin-top:35px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:17px}.section-heading h2{margin:0;font-size:20px}.section-heading>span{font-size:12px;color:var(--muted)}.curiosity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.curiosity-card{position:relative;border:1px solid var(--border);border-radius:13px;padding:22px 24px;background:#fff;text-align:left;color:var(--ink)}.curiosity-card:hover{border-color:#9abfb2;transform:translateY(-2px)}.topic-symbol{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;margin-bottom:15px}.tone-0{background:#e6f3ed;color:#268775}.tone-1{background:#edeaf8;color:#7d69b2}.tone-2{background:#fbf0df;color:#a88445}.curiosity-card>small{display:block;color:var(--muted);font-size:11px}.curiosity-card h3{font-size:19px;line-height:1.5;margin:7px 0 11px;font-weight:650;min-height:57px}.curiosity-card>p{font-size:13px;color:var(--muted);margin-bottom:18px}.card-link{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c7d6a;font-weight:600}
.student-search{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #d6e2dc;border-radius:10px;padding:12px 15px;max-width:580px;color:#748b81}.student-search input{width:100%;border:0;background:none;outline:none;min-width:0;color:var(--ink);font-size:15px;min-height:26px}.student-search:focus-within{outline:2px solid #429986;outline-offset:2px}.student-search button{background:none;color:#607d71;display:flex;padding:6px}.module-pills{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.module-pills button{min-height:42px;padding:8px 16px;border:1px solid #d9e3df;border-radius:8px;background:white;color:#60756d;font-size:14px}.module-pills button[aria-pressed=true]{background:#e2f0e9;border-color:#9bbcae;color:#1f725b;font-weight:600}.secondary-text{color:var(--muted)!important;font-size:14px!important;line-height:1.85}.topic-results{display:grid;grid-template-columns:repeat(3,1fr);gap:0 24px}.link-row{display:flex;align-items:center;gap:12px;width:100%;background:none;text-align:left;border-bottom:1px solid var(--border);padding:15px 0;color:var(--ink);min-width:0}.link-row>span{flex:1;min-width:0}.link-row b{font-size:15px;display:block;font-weight:600}.link-row small{display:block;color:var(--muted);font-size:12px;line-height:1.7;margin-top:4px}.link-row>svg{color:#689a86}.empty-message{padding:30px 0;color:var(--muted)}
.lesson-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.lesson-topline>span{color:var(--muted);font-size:12px}.quiet{display:inline-flex;align-items:center;gap:7px;color:#257c68;background:none;padding:10px 0;font-size:14px;text-align:left;min-height:44px;max-width:100%}.lesson-title{font-size:30px;line-height:1.4;margin:0 0 22px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:24px}.steps button{display:flex;align-items:center;gap:10px;justify-content:center;background:#edf1ef;color:#7b8d85;border-radius:8px;font-size:14px;min-height:47px;padding:8px 5px}.steps button>span{font-size:12px;border:1px solid #cbd8d0;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}.steps button[aria-current=step]{background:#dcf0e6;color:#1e7157}.steps button[aria-current=step]>span{background:#297f61;border-color:#297f61;color:white}.steps b{font-weight:500}.lesson-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:34px 38px}.lesson-card h2{font-size:26px;margin-bottom:18px}.key-idea{font-size:19px;line-height:1.85;color:#395c51}.think-prompt{display:flex;gap:15px;padding:21px;background:#f2f7f3;border-radius:11px;margin:22px 0;color:#416354}.think-prompt>svg{color:#639e82;margin-top:2px}.think-prompt b{font-size:15px}.think-prompt p{font-size:14px;line-height:1.9;margin:6px 0 0}.disclosure{border-top:1px solid var(--border);padding:16px 0 0;margin-top:24px;font-size:14px;color:#526f62}.disclosure summary{cursor:pointer;line-height:1.7;min-height:28px;list-style-position:inside;font-weight:500}.disclosure summary>span{float:right;color:#7d8e84;font-size:12px}.disclosure[open] summary{margin-bottom:14px}.disclosure p{line-height:1.8}.skill-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.skill-chips span{background:#edf3f0;padding:5px 10px;border-radius:5px;font-size:13px}.question-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.question-heading .overline{margin:0!important}.question-heading label{display:flex;align-items:center;gap:9px;font-size:13px;white-space:nowrap;color:var(--muted)}.student select{padding:8px 10px;border-radius:7px;border:1px solid #d4e1d8;background:white;color:#395b4d;min-height:42px;max-width:100%;font-size:14px}.problem-text{font-size:19px;line-height:1.95;white-space:pre-wrap;color:#294c3c;margin:6px 0 22px!important;overflow-wrap:anywhere}.problem-image{display:block;margin:20px 0}.problem-image img{max-width:100%;max-height:360px;object-fit:contain;border:1px solid #e3e9e3;border-radius:8px}.soft-note{background:#faf4e6;color:#8d7242;border-radius:8px;padding:12px;font-size:14px}.writing-label{display:block;font-size:14px;color:#567264;margin:18px 0 10px}.student textarea{resize:vertical;min-height:130px;width:100%;border:1px solid #cddfd2;border-radius:9px;background:#fcfefc;padding:15px;color:var(--ink);font-size:16px;line-height:1.8;display:block}.student textarea::placeholder{color:#90a194}.hint-disclosure{margin:17px 0 19px;padding-top:0;border:0}.hint-disclosure p{padding:16px;background:#fcf6e9;border-radius:8px;color:#876d40}.answer-box{border:1px solid #d5e6da;border-radius:12px;background:#f7fbf6;margin-top:25px;padding:23px}.answer-box h3{font-size:21px;margin:16px 0 12px}.preserve-lines{white-space:pre-wrap;font-size:16px;line-height:1.9}.self-options{display:flex;gap:10px;flex-wrap:wrap}.self-options button{padding:10px 16px;min-height:44px;border:1px solid #bbd2c0;border-radius:8px;background:white;color:#4c775b;font-size:14px}.self-options button.chosen{background:#dcf0df;border-color:#599a65;color:#306e3d}.action-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:22px}.recovery{margin-top:20px;border-top:1px solid #dfebdf;padding-top:15px}.recovery p{font-size:14px;margin-bottom:5px}.recovery button{display:flex}.source-link{display:inline-flex;align-items:center;gap:7px;color:#217859}.notice{display:block;font-size:14px;color:#2b8060;line-height:1.8;margin-top:18px}.notice:empty{display:none}
.relation-choices{display:flex;gap:10px;margin:22px 0;flex-wrap:wrap}.relation-choices button{flex:1;min-width:190px;padding:15px 18px;background:#f7f9f7;border:1px solid var(--border);border-radius:10px;color:#466b54;text-align:left;position:relative}.relation-choices button[aria-pressed=true]{border-color:#55a075;background:#eaf5ec}.relation-choices small{display:block;color:#728777;font-size:12px;margin-bottom:7px}.relation-choices b{display:block;font-size:14px;font-weight:600;padding-right:20px}.relation-choices svg{position:absolute;right:12px;bottom:17px}.relation-reason{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.8;color:#51825d}.relation-reason svg{margin-top:3px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.compare-grid article{padding:20px;border:1px solid var(--border);border-radius:11px;min-width:0}.compare-grid article>span{display:block;font-size:12px;color:#77937c;margin-bottom:12px}.compare-grid .problem-text{font-size:16px;margin:0!important}.compare-grid .problem-image img{max-height:230px}.connection-list section{margin:22px 0}.connection-list h3{font-size:15px;color:#50785b;margin:0 0 7px}.connection-list .connection-caution{color:#937847}.reflection-prompts{display:grid;gap:9px;margin:24px 0;color:#658469;font-size:14px}.reflection-prompts span{border-left:3px solid #b4d0b9;padding:7px 13px;background:#f5f9f4}.save-status{font-size:12px;color:#719877;margin-top:8px}.status-setting{display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-top:15px;margin-top:20px;border-top:1px solid var(--border);gap:16px}.next-destination{border-top:1px solid var(--border);margin-top:25px;padding-top:25px}.next-destination>b{display:block;font-size:15px;margin-bottom:14px}.next-destination>div{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.page-heading{margin-bottom:28px}.route-tabs{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:30px 0 24px}.route-tabs button{display:flex;align-items:center;gap:15px;padding:21px;background:white;border:1px solid var(--border);border-radius:11px;text-align:left;color:#507463}.route-tabs button[aria-pressed=true]{background:#eaf5ef;border-color:#86b69c}.route-tabs b{font-size:16px;display:block}.route-tabs small{font-size:12px;display:block;margin-top:6px;color:#7c9285}.route-intro{background:white;padding:26px;border:1px solid var(--border);border-radius:13px;margin-top:24px}.route-intro h2{font-size:22px;margin-bottom:10px}.route-intro p{font-size:14px;color:var(--muted);line-height:1.9;max-width:820px}.learning-route{list-style:none;padding:0 15px;margin:26px 0}.learning-route li{display:flex;align-items:center;gap:23px;position:relative;padding:0 0 15px}.learning-route li>span{flex-shrink:0;position:relative;z-index:1;background:#e6eee8;border:1px solid #cbded0;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;color:#71937a;font-size:12px}.learning-route li:not(:last-child):before{content:'';position:absolute;top:50%;bottom:-50%;left:17px;border-left:1px solid #c8dccd}.learning-route li>button{display:flex;align-items:center;gap:20px;width:100%;background:white;border:1px solid var(--border);padding:17px 22px;border-radius:10px;text-align:left;color:var(--ink)}.learning-route li>button>span{flex:1}.learning-route b{font-size:16px}.learning-route small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.learning-route em{font-size:12px;white-space:nowrap;color:#79947c}.learning-route .done{background:#247b53;color:#fff;border-color:#247b53}.journal-stats{display:flex;gap:35px;padding:23px 0;border-block:1px solid var(--border);margin:26px 0;color:#73917b;font-size:14px}.journal-stats b{font-size:28px;color:#347447;margin-right:5px}.journal-list{display:grid;grid-template-columns:1fr 1fr;gap:18px}.journal-list article{background:white;border:1px solid var(--border);padding:24px;border-radius:13px;min-width:0}.journal-list h2{font-size:20px;margin:12px 0 15px}.saved-note{font-size:16px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.map-controls{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:20px 0}.map-controls>label{display:flex;align-items:center;gap:12px;font-size:14px}.map-controls select{max-width:290px}.map-controls .module-pills{margin:0}.student .graph-wrap{border-radius:15px}.student .graph{min-height:260px;max-height:620px}.student .graph-caption,.student .graph-caption small,.student .graph-bottom,.student .graph-legend{font-size:12px}.student .graph-bottom>span{color:#b4c8d5}.student .graph-legend{flex-wrap:wrap}.student .graph-node text{font-size:20px}.student .graph-node[aria-pressed=true] text{font-size:22px}.student .graph-node rect{display:block}.student .graph-node text{stroke-width:0}.map-detail{background:white;padding:25px 30px;border-radius:12px;border:1px solid var(--border);margin-top:22px}.student .source-work{max-width:900px;margin:auto}.student .source-work h1{font-size:32px}.student .source-work h2{margin-top:30px}.student .source-work h3{font-size:17px}.student .source-work p{font-size:14px;line-height:1.9;color:var(--muted)}.student .source-work button,.student .source-work a,.student .source-work small{font-size:13px}.student .source-work .lesson-list>div{padding:15px;gap:12px}.student .source-work .coverage{padding:20px}.student .source-work input{font-size:16px}.student .source-stats{margin:25px 0}.student .source-work .eyebrow{font-size:12px;color:#638972}.student-footer{max-width:1044px;margin:0 auto;padding:20px 0 24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#889b8c}.test-banner{background:#fff2d6;color:#8a6930;padding:9px 20px;font-size:12px;text-align:center}
@media(max-width:1050px){.student-header{padding:15px 24px;gap:20px;flex-wrap:wrap}.student-header nav{gap:2px}.student-header nav button{padding:11px 10px}.header-tools{margin-left:auto}.student-footer{margin-inline:28px}.curiosity-card{padding:21px}.welcome h1,.page-heading h1{font-size:32px}}
@media(max-width:760px){.student-header{padding:14px 20px 0;gap:12px;display:grid;grid-template-columns:1fr auto}.student-brand{font-size:17px}.student-brand small{font-size:10px}.brand-mark{height:39px;width:38px}.student-header nav{grid-column:1/-1;grid-row:2;margin:0;width:100%;gap:6px}.student-header nav button{flex:1;padding:12px 5px;border-radius:8px 8px 0 0;font-size:14px}.header-tools{grid-column:2;grid-row:1}.header-tools button{padding:9px 6px;font-size:12px}.header-tools button:last-child span{display:none}.student-content{padding:28px 20px 45px}.student-content.focused-content{padding:20px 16px 40px}.welcome{align-items:flex-start;flex-direction:column;gap:18px}.welcome h1,.page-heading h1{font-size:28px;line-height:1.45}.welcome h1 em{display:block}.welcome p:not(.overline),.page-heading>p:last-child{font-size:14px}.resume{width:100%;padding:12px 16px;display:grid;grid-template-columns:1fr auto;align-items:center}.resume>strong{grid-row:2;margin-bottom:0}.resume>span{grid-column:2;grid-row:1/3}.starter{grid-template-columns:1fr;border-radius:15px}.starter-copy{padding:24px}.starter h2{font-size:28px}.starter-method{padding:15px 24px 18px;margin:0;border-left:0;border-top:1px solid #cfdfd7;display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.starter-method>p{grid-column:1/-1;font-size:12px;margin:0 0 2px}.starter-method>div{margin:0;gap:8px}.starter-method>div>span{width:24px;height:24px;font-size:10px;flex-shrink:0}.starter-method b{font-size:12px}.starter-method small{display:none}.starter-meta{font-size:11px}.section-heading{align-items:flex-start;gap:5px;flex-direction:column}.section-heading h2{font-size:19px}.section-heading>span{font-size:12px}.curiosity-grid{grid-template-columns:1fr;gap:12px}.curiosity-card{padding:18px 19px 18px 78px;min-height:135px}.topic-symbol{position:absolute;left:20px;top:23px}.curiosity-card h3{font-size:17px;min-height:0;margin:6px 0}.curiosity-card>p{font-size:12px;margin-bottom:10px}.curiosity-card .card-link{font-size:12px}.topic-results{grid-template-columns:1fr}.module-pills{gap:7px}.module-pills button{padding:8px 13px;font-size:13px}.lesson-topline{gap:10px;align-items:flex-start}.lesson-topline .quiet{font-size:12px;padding:0;min-height:32px;max-width:76%}.lesson-topline>span{font-size:11px;white-space:nowrap}.lesson-title{font-size:26px}.steps{gap:5px;margin-bottom:17px}.steps button{gap:5px;font-size:12px;padding:8px 3px;min-height:43px}.steps button>span{width:19px;height:19px;font-size:10px}.lesson-card{padding:25px 20px;border-radius:13px}.lesson-card h2{font-size:23px}.overline{font-size:11px!important}.key-idea{font-size:17px}.think-prompt{padding:16px;gap:12px}.think-prompt p{font-size:14px}.lesson-card>.action{width:100%}.disclosure summary{font-size:13px}.disclosure summary>span{display:none}.question-heading{align-items:flex-start;gap:10px;flex-direction:column}.question-heading label{align-self:flex-end;margin-top:0}.problem-text{font-size:18px;line-height:1.9}.answer-box{padding:18px 15px}.answer-box h3{font-size:19px}.answer-box .action{font-size:13px;width:100%;padding:11px 12px}.compare-grid{grid-template-columns:1fr}.compare-grid article{padding:17px}.relation-choices{display:grid;grid-template-columns:1fr;gap:8px}.relation-choices button{min-width:0;padding:12px 15px}.relation-choices small{margin-bottom:4px}.compare-grid .problem-text{font-size:16px}.action-row{gap:8px}.action-row>.action{width:100%}.reflection-prompts{font-size:13px}.status-setting{font-size:13px;align-items:flex-start}.status-setting select{flex-shrink:0}.next-destination>div{gap:6px}.next-destination .action{width:100%}.route-tabs{grid-template-columns:1fr;gap:10px;margin-top:24px}.route-tabs button{padding:16px}.route-tabs b{font-size:15px}.route-intro{padding:20px}.route-intro .action{font-size:14px}.learning-route{padding:0;margin-top:23px}.learning-route li{gap:12px}.learning-route li>span{width:29px;height:29px;font-size:11px}.learning-route li:not(:last-child):before{left:14px}.learning-route li>button{padding:14px;gap:10px;flex-wrap:wrap}.learning-route b{font-size:15px}.learning-route small{font-size:12px}.learning-route em{display:none}.journal-stats{gap:12px;font-size:11px;justify-content:space-between}.journal-stats b{display:block;font-size:25px}.journal-list{grid-template-columns:1fr}.journal-list article{padding:22px}.map-controls>label{width:100%;flex-wrap:wrap;gap:8px}.map-controls select{flex:1;min-width:0;max-width:100%;font-size:13px}.student .graph-caption{padding:16px 12px 0;font-size:11px}.student .graph-caption small{font-size:10px}.student .graph-node text{font-size:30px;paint-order:stroke;stroke:#0a1928;stroke-width:4px;stroke-linejoin:round}.student .graph-node[aria-pressed=true] text{font-size:33px}.student .graph-node rect{display:none}.student .graph-node circle[fill=transparent]{r:32}.student .graph-bottom{padding:4px 12px 12px;flex-wrap:wrap;gap:13px}.student .graph-legend{font-size:11px;padding:12px;gap:10px}.student .graph{min-height:310px}.map-detail{padding:22px 18px}.map-detail .section-heading{gap:14px}.student .source-work h1{font-size:26px}.student .source-work .lesson-list>div{grid-template-columns:25px 1fr;padding:14px 10px}.student .source-work .lesson-list>div>div{grid-column:2}.student .source-work .lesson-list a{grid-column:2}.student .source-stats strong{font-size:23px}.student .source-stats span{font-size:10px}.student .source-work .learning-grid{grid-template-columns:1fr}.student-footer{margin:0 20px;padding:18px 0;display:block;font-size:11px}.student-footer span{display:block;margin:4px 0}}
@media(prefers-reduced-motion:reduce){.student *{transition:none!important;scroll-behavior:auto!important}.curiosity-card:hover{transform:none}}

@media(max-width:760px){.learning-route em{display:block;font-size:11px}.learning-route li>button{flex-wrap:nowrap;gap:8px}}

/* Shared studio masthead and production credit. Keep the supplied artwork intact. */
.student .student-header{position:relative;display:block;padding:0 max(28px,calc((100vw - 1100px)/2));border-top:3px solid #ff7910;white-space:normal}
.brand-masthead{display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:90px;padding:16px 0}
.student .student-brand{gap:14px;font-size:23px;letter-spacing:.02em;flex-shrink:0}
.student .student-brand small{font-size:11px;letter-spacing:.04em;margin-top:4px}
.studio-logo{display:block;width:48px;height:auto;aspect-ratio:421/439;object-fit:contain;border-radius:3px;flex-shrink:0}
.producer-credit{display:flex;align-items:center;justify-content:flex-end;gap:13px;min-width:0}
.producer-names{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#354b51;line-height:1.7;flex-wrap:wrap}
.producer-names>span{white-space:nowrap}
.producer-names .producer-amp{font-size:16px;color:#c97235;font-weight:400}
.producer-label{display:inline-block;border:1px solid #f0d6be;background:#fff6ee;color:#96521f;padding:3px 8px;font-size:11px;line-height:1.7;letter-spacing:.1em;white-space:nowrap;border-radius:4px;flex-shrink:0}
.student-navigation{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0ed;gap:20px}
.student .student-navigation nav{display:flex;gap:12px;margin:0;align-items:stretch}
.student .student-navigation nav button{min-height:47px;border-radius:7px 7px 0 0;padding:12px 18px}
.student .student-navigation .header-tools{display:flex;margin-left:auto;gap:8px}
.student .student-footer{display:block;max-width:1044px;margin:0 auto;padding:0 0 24px;border-top:1px solid #e4d3c3;font-size:12px;color:#7b8b83}
.footer-brandline{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:26px 0 23px;position:relative}
.footer-brandline:before{content:'';position:absolute;top:-1px;left:0;width:52px;height:3px;background:#ff7910}
.footer-producers{display:flex;align-items:center;gap:15px;min-width:0}
.footer-producers .studio-logo{width:40px}
.footer-producers .producer-credit{flex-direction:column;align-items:flex-start;gap:5px}
.student-footer .producer-names{font-size:13px;gap:9px}
.student-footer .producer-label{font-size:10px;letter-spacing:.12em;padding:0;color:#986541;background:none;border:0}
.student .footer-motto{font-size:12px;line-height:1.8;color:#7d8b81;margin:0;white-space:nowrap}
.footer-meta{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #e5eae5;padding-top:16px;font-size:11px;line-height:1.9;color:#728379}
.student-footer .footer-divider{display:inline;color:#c6cebf;margin:0 8px}
@media(max-width:1100px){.student .student-footer{margin-inline:28px}.producer-credit{gap:10px}.producer-names{font-size:13px;gap:8px}.brand-masthead{gap:18px}}
@media(max-width:760px){
 .student .student-header{padding:0 20px;border-top-width:3px}
 .brand-masthead{display:flex;align-items:flex-start;flex-direction:column;gap:13px;min-height:0;padding:16px 0 13px}
 .student .student-brand{font-size:21px;gap:12px}
 .student .student-brand small{font-size:10px}
 .studio-logo{width:43px}
 .brand-masthead>.producer-credit{justify-content:flex-start;gap:7px;flex-wrap:wrap;width:100%}
 .producer-names{font-size:11px;gap:6px;font-weight:500}
 .producer-names .producer-amp{font-size:12px}
 .producer-label{font-size:10px;padding:1px 5px;letter-spacing:.02em}
 .student-navigation{display:grid;grid-template-columns:1fr;gap:0;position:static}
 .student .student-navigation nav{grid-column:auto;grid-row:auto;gap:5px;justify-content:space-between;margin:0;width:100%}
 .student .student-navigation nav button{flex:1;font-size:13px;gap:6px;padding:12px 4px;min-height:45px}
 .student .student-navigation .header-tools{position:absolute;right:20px;top:19px;grid-column:auto;grid-row:auto;gap:3px;margin:0}
 .student .header-tools button{font-size:11px;padding:7px 5px;min-height:38px}
 .student .header-tools button:last-child span{display:none}
 .student .student-footer{margin:0 20px;padding:0 0 20px}
 .footer-brandline{padding:23px 0 18px;flex-direction:column;align-items:flex-start;gap:13px}
 .footer-producers{gap:12px;width:100%}
 .footer-producers .studio-logo{width:38px}
 .footer-producers .producer-credit{gap:3px;align-items:flex-start}
 .student .student-footer .producer-names{font-size:11px;gap:6px}
 .student .student-footer .producer-names>span{display:inline;margin:0}
 .student .student-footer .producer-label{display:block;margin:0;font-size:10px}
 .student .footer-motto{font-size:11px;margin-left:50px}
 .footer-meta{display:block;padding-top:13px;font-size:10px}
 .student-footer .footer-meta>span{display:block;margin:3px 0}
 .student-footer .footer-divider{margin:0 6px}
}
@media(max-width:380px){.brand-masthead>.producer-credit{gap:5px}.brand-masthead .producer-names{gap:4px;font-size:10px}.brand-masthead .producer-label{font-size:9px}.student .student-brand{font-size:19px}.student .student-brand small{font-size:9px}.student .student-navigation .header-tools{top:19px}.student .header-tools button{font-size:10px}}
@media print{.student .student-header{border-top:2px solid #ff7910}.student-navigation{display:none}.student .student-footer{break-inside:avoid}.brand-masthead{padding-block:10px;min-height:70px}.student .studio-logo{print-color-adjust:exact}.producer-credit{print-color-adjust:exact}}

@media(max-width:760px){.student .brand-masthead .producer-names,.student .student-footer .producer-names{font-size:12px;gap:6px}.student .brand-masthead .producer-label{font-size:10px}}

/* Knowledge review and a visible choice of challenge. */
.compact-welcome{margin-bottom:22px}.compact-welcome h1{font-size:30px;margin-bottom:0}.compact-welcome .overline{margin-bottom:6px!important}
.level-picker{border:0;padding:0;margin:0 0 26px;min-width:0}.level-picker legend{font-size:16px;font-weight:650;padding:0;margin-bottom:10px}.level-picker>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.level-picker button{border:1px solid #c8d9d5;background:#fff;text-align:left;padding:14px 17px;border-radius:10px;color:var(--ink);min-height:74px}.level-picker button b{font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:8px}.level-picker button b span{font-size:12px;letter-spacing:1px;color:#b88a41}.level-picker button small{font-size:14px;display:block;margin-top:5px;color:#57706f}.level-picker button[aria-pressed=true]{background:#e3f1eb;border:2px solid #187966;padding:13px 16px}.level-picker>p{font-size:14px;color:#657a76;margin:9px 0 0}.level-picker.compact{margin:13px 0 20px}.level-picker.compact legend{font-size:14px;margin-bottom:7px;color:#637973}.level-picker.compact button{min-height:43px;padding:8px 13px}.level-picker.compact button b{font-size:16px}.level-picker.compact button[aria-pressed=true]{padding:7px 12px}
.student .level-browser{margin-top:0}.level-browser h2{font-size:21px;margin-bottom:0}.level-browser .section-heading .quiet{font-size:14px}.level-browser .student-search{background:#fff;padding:13px 15px}.level-browser .student-search input{font-size:16px}.level-browser .module-pills{margin:15px 0 18px}.suggested-heading{margin-top:23px}.suggested-heading h3{font-size:17px;margin:0}.level-recommendations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.level-recommendations>button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;padding:22px;background:#fff;border:1px solid var(--border);border-radius:12px;color:var(--ink)}.level-recommendations>button:hover{border-color:#79aa98;background:#fcfffe}.level-recommendations small{font-size:14px;color:#557970}.level-recommendations b{font-size:21px;line-height:1.45}.level-recommendations span{font-size:15px;color:#59716e;line-height:1.65}.level-recommendations em{display:flex;align-items:center;gap:8px;color:#14745f;font-size:14px;margin-top:auto;padding-top:7px;font-weight:600}.starter-fold{margin-top:28px!important}.starter-fold p{font-size:16px}.student .level-browser .topic-results .link-row small{font-size:14px}.practice-method{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 15px}.practice-method p{margin:0}.practice-method button{flex-shrink:0;font-size:14px}
.concept-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.concept-heading .quiet{font-size:14px}.concept-lesson h2{font-size:25px;line-height:1.5;margin-bottom:12px}.concept-meaning{font-size:17px;line-height:1.85;color:#405e61;margin-bottom:22px}.concept-visual-box{background:#f1f7f4;border:1px solid #dbe8e1;border-radius:12px;padding:16px 22px 18px;margin:0 0 21px;text-align:center}.visual-label{font-size:16px;font-weight:600;text-align:left;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin:0 0 8px}.visual-label span{font-size:13px;font-weight:400;color:#627b76}.concept-svg{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;overflow:visible}.visual-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 16px;background:#fff;color:#176f5e;border:1px solid #9cbdad;border-radius:8px;font-size:15px;margin-top:10px}.visual-toggle[aria-pressed=true]{background:#dcefe6}.concept-condition{border-left:3px solid #dc8b3b;padding:2px 0 2px 16px;margin-bottom:23px}.concept-condition b{font-size:16px}.concept-condition p{font-size:16px;margin:5px 0 0;color:#536c6b;line-height:1.75}.concept-check{border:0;border-top:1px solid var(--border);padding:20px 0 0;margin:0 0 22px;min-width:0}.concept-check legend{font-size:15px;font-weight:600;padding:0 8px 0 0;color:#486c64}.concept-check>p{font-size:18px;margin:0 0 12px}.concept-check>div{display:flex;gap:10px;flex-wrap:wrap}.concept-check button{flex:1;min-width:170px;min-height:49px;border:1px solid #cbdad5;background:#fff;color:var(--ink);padding:12px 16px;font-size:16px;border-radius:8px;text-align:left}.concept-check button[aria-pressed=true]{border:2px solid #167b66;padding:11px 15px;background:#ecf7f1}.concept-check .concept-feedback{font-size:16px;line-height:1.8;margin:15px 0 0;border-radius:8px;padding:12px 15px}.concept-feedback.correct{background:#e1f3e8;color:#285b44}.concept-feedback.retry{background:#fff0df;color:#80521d}.concept-feedback b{margin-right:5px}.concept-example{margin-bottom:22px!important}.concept-example p{font-size:16px}.concept-next{border-top:1px solid var(--border);padding-top:20px}.concept-next>p{font-size:16px;margin-bottom:10px}.concept-next .action{margin-top:4px}.relationship-flow{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:left}.relationship-flow>div{background:white;border:1px solid #c9ddd2;border-radius:8px;padding:13px 18px;width:100%;max-width:520px}.relationship-flow small{display:block;color:#668277;font-size:14px;margin-bottom:4px}.relationship-flow b{font-weight:500;font-size:16px;line-height:1.7;display:block}.relationship-flow>span{color:#789c8d;font-size:24px;line-height:1}
@media(max-width:760px){.student-content{padding-top:24px}.compact-welcome h1{font-size:25px}.compact-welcome{align-items:flex-start;gap:15px}.compact-welcome .resume{min-width:0;max-width:42%;padding:10px 13px}.compact-welcome .resume strong{font-size:14px}.level-picker>div{gap:7px}.level-picker button{padding:12px 10px;min-height:85px}.level-picker button[aria-pressed=true]{padding:11px 9px}.level-picker button b{display:block;font-size:17px}.level-picker button b span{display:block;font-size:11px;margin-top:1px;letter-spacing:0}.level-picker button small{font-size:14px;line-height:1.45;margin-top:4px}.level-picker.compact button{min-height:42px}.level-picker.compact button b span{display:none}.level-recommendations{grid-template-columns:1fr;gap:10px}.level-recommendations>button{padding:17px 19px;gap:6px}.level-recommendations b{font-size:20px}.level-recommendations em{margin-top:2px}.student .level-browser .topic-results{grid-template-columns:1fr}.level-browser .section-heading{gap:8px;flex-wrap:wrap}.level-browser h2{font-size:20px}.concept-heading{align-items:flex-start;gap:10px}.concept-heading .quiet{font-size:14px;max-width:55%;text-align:right}.concept-lesson h2{font-size:22px}.concept-meaning{font-size:16px;line-height:1.8}.concept-visual-box{padding:13px 8px 15px;margin-left:-8px;margin-right:-8px}.visual-label{padding:0 8px;display:block}.visual-label span{display:block;font-size:13px;margin-top:3px}.concept-svg{max-width:400px}.concept-check>div{flex-direction:column}.concept-check button{min-width:0;width:100%;font-size:16px}.concept-next .action{width:100%}.practice-method{display:block}.practice-method button{margin-top:8px}.relationship-flow>div{padding:12px}.level-picker>p{line-height:1.6}.level-picker.compact{margin-bottom:16px}}
@media(max-width:760px){.compact-welcome .resume{max-width:none;width:100%;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:48px}.compact-welcome .resume small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.compact-welcome .resume strong{grid-area:1/1;margin:0}.compact-welcome .resume>span{grid-area:1/2;white-space:nowrap}.level-browser .section-heading{flex-direction:row;align-items:center}}

.graph-page-controls{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;padding:12px;color:#c8d6e4;font-size:14px}.graph-page-controls button{background:#24445c;color:#fff;border:1px solid #7299b5;border-radius:7px;padding:8px}.graph-page-controls button:disabled{opacity:.35}

.worked-model{padding:8px 0}.worked-model>svg{width:100%;max-height:270px;display:block;margin:0 auto}.worked-model svg text{font-family:inherit;fill:#1d534c}.worked-legend{display:flex;flex-wrap:wrap;gap:12px;padding:8px 0 18px;font-size:14px}.worked-legend span{display:flex;gap:6px;align-items:center}.worked-legend b{display:inline-grid;place-items:center;color:white;border-radius:4px;width:24px;height:24px}.worked-step-nav{display:flex;gap:8px;flex-wrap:wrap}.worked-step-nav button{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid #a8cabe;border-radius:8px;padding:10px;color:#28614f;font-size:14px}.worked-step-nav button[aria-current]{background:#22775f;color:white}.worked-step{padding:20px;background:#fff;border:1px solid #cee2d8;margin:12px 0;border-radius:10px;animation:worked-reveal .3s ease}.worked-step>b{font-size:20px;overflow-wrap:anywhere}.worked-step p{margin:10px 0;font-size:16px}.worked-step strong{font-size:16px;color:#247459}@keyframes worked-reveal{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.worked-step{animation:none}}

.worked-model>.quiet{white-space:nowrap}.worked-model>.quiet svg{width:17px;flex-shrink:0}

.recurring-number{display:inline-flex;white-space:nowrap;align-items:baseline;padding-top:.2em}.recurring-digit{position:relative;display:inline-block}.recurring-digit.dot:before{content:"";position:absolute;top:-.06em;left:50%;width:.14em;height:.14em;background:currentColor;border-radius:50%;transform:translateX(-50%)}.practice-check input,.battle-numeric input{display:block;width:100%;max-width:400px;padding:12px;border:1px solid #96b9aa;border-radius:8px;margin:8px 0 14px;font-size:20px}.battle-thinking textarea{margin:12px 0}.battle-thinking .quest-secondary{margin-bottom:18px}

.question-source-list{margin:28px 0;padding:24px;background:white;border:1px solid #d7e4de;border-radius:14px}.question-source-list table{width:100%;border-collapse:collapse;font-size:14px}.question-source-list th,.question-source-list td{text-align:left;padding:12px 8px;border-bottom:1px solid #e4ece7;overflow-wrap:anywhere}.question-source-list td:last-child{min-width:65px}.question-source-list details{margin-top:20px}.question-source-list summary{cursor:pointer;color:#28745b}
.recurring-model>svg{display:block;width:100%;height:auto;max-width:660px;margin:12px auto}.recurring-model .worked-step-nav{margin-top:15px}

.quest-map{--world:#257c9c;color:#234850}.quest-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.quest-kicker{display:flex;align-items:center;gap:6px;color:#438179;font-size:13px;margin:0 0 7px}.quest-heading h1{font-size:30px;letter-spacing:-1px;margin:0}.adventure-rank{display:flex;gap:12px;align-items:center;min-width:220px}.rank-emblem{display:grid;place-items:center;color:#b98529;position:relative;background:#fff3d4;border:1px solid #e8d399;border-radius:50%;width:51px;height:51px}.rank-emblem b{position:absolute;right:-4px;bottom:-5px;border-radius:12px;background:#244e55;color:white;font-size:11px;padding:1px 6px}.adventure-rank>div:last-child{flex:1}.adventure-rank strong{font-size:15px}.adventure-rank small{font-size:12px;color:#7a8a8c}.xp-track{height:8px;border-radius:8px;background:#dce6e4;overflow:hidden;margin:5px 0}.xp-track i{display:block;height:100%;background:#e8b753;border-radius:8px;transition:width .6s}.quest-summary{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:13px;color:#708583;margin-bottom:22px}.quest-summary>span{display:flex;align-items:center;gap:7px}.quest-summary b{font-size:22px;color:#326357}.world-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-bottom:22px}.world-picker button{border:1px solid #d6e3dd;border-radius:14px;background:#fff;min-width:0;display:flex;align-items:center;flex-direction:column;padding:13px 4px 10px;gap:4px;color:#53716f;transition:transform .18s,border-color .18s}.world-picker button[aria-pressed=true]{border:2px solid var(--world);padding:12px 3px 9px;background:#f8fcf9;box-shadow:0 4px 0 #dde8e2}.world-symbol{color:var(--world);background:color-mix(in srgb,var(--world) 10%,white);border-radius:12px;width:42px;height:42px;display:grid;place-items:center;margin-bottom:3px}.world-picker b{font-size:14px}.world-picker small{font-size:12px}.quest-workspace{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:18px;align-items:start}.quest-terrain{border:1px solid #d1e4da;border-radius:20px;background:#eaf4ee;overflow:hidden;box-shadow:0 7px 0 #e2ebe6}.terrain-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 24px 0}.terrain-heading h2{font-size:22px;margin:0 0 5px;color:var(--world)}.terrain-heading p{font-size:12px;margin:0;color:#71887f}.terrain-badge{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;color:#70867c;background:#fff9;border-radius:20px;padding:6px 10px}.quest-board{height:365px;position:relative;background-image:radial-gradient(#9fbfa333 .8px,transparent .8px);background-size:20px 20px;margin-top:5px}.quest-road{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.quest-road.narrow{display:none}.quest-road line{vector-effect:non-scaling-stroke;stroke-linecap:round}.road-base{stroke:#d7e4d8;stroke-width:13}.road-dots{stroke:#fff;stroke-width:2;stroke-dasharray:3 9}.road-lit{stroke:#ddb14b;stroke-width:7}.quest-node{position:absolute;left:var(--x);top:calc(var(--y) - 31px);transform:translateX(-50%);width:30%;padding:0;border:0;background:transparent;text-align:center;color:#486d60;z-index:1;display:flex;align-items:center;flex-direction:column;gap:8px}.node-disc{width:65px;height:65px;border-radius:50%;border:4px solid #fff;outline:2px solid #abc5b2;background:#dce9df;box-shadow:0 6px 0 #b4c9b9;display:grid;place-items:center;position:relative;color:#6d8a79;transition:transform .2s,background .2s}.node-disc>b{font-size:23px;font-weight:750}.quest-node.selected .node-disc{outline:3px solid var(--world);background:#fff;box-shadow:0 7px 0 color-mix(in srgb,var(--world) 40%,#c4d7c8);color:var(--world);transform:translateY(-3px)}.quest-node.lit .node-disc{outline-color:#d9ad47;background:#ffdc82;color:#b27b1b;box-shadow:0 6px 0 #d7ac4b}.node-pointer{position:absolute;top:-15px;right:-7px;display:grid;place-items:center;background:var(--world);color:white;width:26px;height:26px;border-radius:50%;border:3px solid #edf6ee}.quest-node strong{font-size:15px;line-height:1.4;max-width:160px;font-weight:650}.node-difficulty{display:flex;gap:4px;align-items:center;height:16px;color:#a3b7a6}.node-difficulty>span{display:flex}.node-difficulty .earned{color:#c49424}.node-difficulty small{font-size:11px}.terrain-footer{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-top:1px solid #d7e6db;background:#ffffff70;gap:5px}.terrain-footer>span{display:flex;align-items:center;gap:5px;color:#6e887b;font-size:11px}.terrain-footer i{width:7px;height:7px;border-radius:50%;margin-left:6px}.legend-lit{background:#e2b64d}.legend-next{background:#b7cdbb}.terrain-footer button{display:flex;align-items:center;gap:2px;border:0;color:#507663;background:transparent;font-size:12px;padding:8px 0;min-height:36px}.terrain-footer button:disabled{opacity:.35;cursor:default}.quest-detail{border:1px solid #dae5df;border-radius:18px;background:white;padding:18px;text-align:center}.quest-detail .level-picker{margin:0 0 15px}.quest-detail .level-picker legend{text-align:left;font-size:12px}.quest-detail .level-picker>div{gap:5px}.quest-detail .level-picker button{padding:7px 6px;min-height:37px;text-align:center}.quest-detail .level-picker button[aria-pressed=true]{padding:6px 5px}.quest-detail .level-picker button b{font-size:13px;display:block}.quest-detail .level-picker button b span{display:none}.quest-preview-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:18px;color:var(--world);background:color-mix(in srgb,var(--world) 9%,white);margin:18px auto 12px}.quest-small{font-size:12px;color:#718a7e}.quest-detail h2{font-size:22px;line-height:1.45;margin:7px 0 10px}.quest-reward{display:flex;justify-content:center;gap:5px;font-size:13px;color:#9f7c2d}.quest-mini-steps{display:flex;justify-content:center;align-items:center;gap:6px;margin:20px 0;color:#7b9487}.quest-mini-steps>span{display:flex;gap:4px;font-size:12px;align-items:center}.quest-mini-steps>i{width:10px;border-top:1px solid #c4d8cb}.quest-primary,.quest-secondary{min-height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-weight:650;font-size:15px;padding:11px 12px}.quest-primary{background:#24766a;border:1px solid #17665b;color:#fff;box-shadow:0 4px 0 #13554c;transition:transform .15s}.quest-primary:hover{background:#19675c;transform:translateY(-1px)}.quest-primary:active{box-shadow:0 1px 0 #13554c;transform:translateY(2px)}.quest-secondary{margin-top:12px;border:1px solid #d4e1d9;background:#fff;color:#51796a}.quest-prerequisites{text-align:left;margin-top:20px;border-top:1px dashed #d9e4dc;padding-top:13px}.quest-prerequisites>small{font-size:12px;color:#83968a}.quest-prerequisites>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.quest-prerequisites button{display:flex;align-items:center;gap:2px;min-height:30px;font-size:12px;color:#517765;background:#f1f7f1;border:0;border-radius:6px;padding:5px 7px}.quest-note-link{display:inline-flex;align-items:center;font-size:12px;margin-top:17px;border:0;background:transparent;color:#72897e}.quest-footnote{display:flex;align-items:flex-start;gap:5px;font-size:12px;color:#819186;margin:20px 0 12px;line-height:1.6}.quest-footnote svg{flex-shrink:0;margin-top:2px}.quest-notebook{border-top:1px solid #d6e2d9;padding-top:16px;margin-top:24px}.quest-notebook summary{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:15px;font-weight:650}.quest-notebook summary>span{color:#84998b;font-size:12px}.quest-notebook article{padding:16px 0;border-bottom:1px solid #e2e9e4}.quest-notebook h3{font-size:16px}.quest-notebook p{font-size:14px;line-height:1.7;color:#668073;white-space:pre-line}.quest-map button:focus-visible{outline:3px solid #d59336;outline-offset:5px}.quest-map button:disabled{cursor:default}
@media(max-width:950px){.quest-workspace{grid-template-columns:minmax(0,1fr) 258px}.quest-node strong{font-size:13px}.world-picker b{font-size:12px}}
@media(max-width:760px){.quest-heading{align-items:center;gap:12px}.quest-heading h1{font-size:23px;letter-spacing:-.5px}.quest-kicker{font-size:11px}.adventure-rank{min-width:112px;gap:7px}.rank-emblem{width:33px;height:33px;flex-shrink:0}.rank-emblem svg{width:17px}.adventure-rank strong{font-size:11px}.adventure-rank small{font-size:10px}.xp-track{height:6px;margin:4px 0}.quest-summary{font-size:11px;gap:7px;align-items:flex-start}.quest-summary>span:last-child{display:none}.quest-summary b{font-size:21px}.world-picker{display:flex;overflow-x:auto;gap:8px;margin-inline:-4px;padding:3px 4px 8px;scrollbar-width:thin}.world-picker button{min-width:87px;padding:9px 7px 7px;gap:3px}.world-picker button[aria-pressed=true]{padding:8px 6px 6px}.world-symbol{width:32px;height:32px;border-radius:9px}.world-symbol svg{width:20px}.world-picker b{font-size:12px}.world-picker small{font-size:11px}.quest-workspace{display:flex;flex-direction:column;gap:20px}.quest-terrain{width:100%;border-radius:17px}.terrain-heading{padding:18px 16px 0}.terrain-heading h2{font-size:21px}.terrain-heading p{font-size:11px}.terrain-badge{padding:5px 7px;font-size:11px}.quest-board{height:490px;margin-top:4px}.quest-road.wide{display:none}.quest-road.narrow{display:block}.quest-node{left:var(--mx);top:calc(var(--my) - 29px);width:45%;gap:8px}.node-disc{height:61px;width:61px}.quest-node strong{font-size:15px;max-width:145px}.terrain-footer{padding:10px 12px}.terrain-footer>span{font-size:10px}.terrain-footer button{font-size:11px}.quest-detail{width:100%;padding:20px}.quest-preview-icon{display:none}.quest-detail .level-picker{margin-bottom:16px}.quest-detail .level-picker button b{font-size:15px}.quest-detail h2{font-size:23px}.quest-mini-steps{margin:14px 0}.quest-footnote{font-size:11px}.quest-notebook{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.quest-map *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.quest-preview-icon:has(img){width:100px;height:95px;border-radius:0;background:none;margin:10px auto 5px}.quest-preview-icon img{width:100%;height:100%;object-fit:contain}.quest-battle{max-width:810px;margin:auto;color:#284d51}.battle-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;color:#789287;font-size:13px}.battle-topline .quiet{font-size:13px;padding:5px 0;min-height:36px}.boss-status{display:flex;align-items:center;gap:20px;background:#e8f3ed;border:1px solid #cfe2d5;border-radius:18px;padding:18px 24px}.monster-sprite{width:116px;height:116px;flex-shrink:0;animation:monster-float 3.5s ease-in-out infinite}.monster-sprite img{width:100%;height:100%;object-fit:contain}.boss-status>div:nth-child(2){flex:1;min-width:0}.boss-status h1{font-size:24px;line-height:1.4;margin:6px 0 12px}.boss-status p{font-size:13px;color:#698475;margin:8px 0 0}.boss-hp{display:flex;gap:5px;height:13px;max-width:330px}.boss-hp i{height:100%;flex:1;border-radius:6px;background:#cfded2;border:1px solid #b7cebd;transition:background .35s}.boss-hp i.remaining{background:#79aa81;border-color:#639a6d}.battle-reward{display:flex;align-items:center;flex-direction:column;gap:4px;color:#b68b2e}.battle-reward b{font-size:24px}.battle-reward small{font-size:11px}.battle-stage-tabs{display:flex;gap:25px;justify-content:center;margin:24px 0;color:#9cafa2}.battle-stage-tabs>span{display:flex;align-items:center;gap:7px;font-size:14px}.battle-stage-tabs>span>b,.battle-stage-tabs>span>svg{display:grid;place-items:center;border-radius:50%;height:23px;width:23px;font-size:11px;background:#e3ece5;padding:4px}.battle-stage-tabs .active{color:#317d63;font-weight:700}.battle-stage-tabs .active>b{background:#2c7b64;color:white}.battle-stage-tabs .done{color:#397e62}.battle-question{border-radius:18px;border:1px solid #d9e6dc;background:#fff;padding:30px 34px}.battle-question h2{font-size:21px;line-height:1.8;font-weight:550;margin:10px 0 18px;white-space:pre-line}.battle-choice-instruction{display:block;color:#83968b;font-size:12px;margin-bottom:14px}.battle-options{display:flex;flex-direction:column;gap:11px}.battle-options button{display:flex;align-items:center;gap:14px;text-align:left;padding:15px 16px;border:2px solid #dce8de;border-radius:11px;background:#fff;color:#335b4a;min-height:61px;box-shadow:0 3px 0 #e5ede7;font-size:18px;transition:transform .15s,border-color .15s}.battle-options button:hover:not(:disabled){border-color:#89b597;background:#f8fcf8;transform:translateY(-1px)}.battle-options button>span{display:grid;place-items:center;font-size:13px;width:30px;height:30px;flex-shrink:0;border-radius:8px;background:#eff5ef;color:#819b87}.battle-options button>b{font-weight:550;flex:1;line-height:1.6}.battle-options button.answer-correct{border-color:#6ba881;background:#edf9ef;color:#247249;box-shadow:0 3px 0 #b4d4b8}.battle-options button.answer-retry{border-color:#dfb771;background:#fffaf0;box-shadow:0 3px 0 #e3cfac}.battle-options button:disabled{cursor:default}.battle-options button:disabled:not(.answer-correct){opacity:.5}.battle-feedback{display:flex;align-items:flex-start;gap:8px;margin:20px 0 0;padding:13px 15px;font-size:15px;line-height:1.7;border-radius:9px}.battle-feedback svg{flex-shrink:0;margin-top:3px}.battle-feedback b{margin-right:5px}.battle-feedback.success{color:#3b7250;background:#e8f5e9}.battle-feedback.retry{color:#97723d;background:#fff5e3}.battle-continue{margin-top:20px}.battle-support{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.battle-support button{border:0;background:transparent;color:#789384;display:flex;align-items:center;gap:6px;font-size:13px;padding:6px 0;min-height:36px}.battle-hint{background:#f1f7f2;border-radius:12px;padding:15px;margin-top:13px}.battle-hint p{font-size:15px;line-height:1.75}.battle-problem-image{display:block;border:1px solid #dce6dd;border-radius:10px;overflow:hidden;margin:12px 0 18px}.battle-problem-image img{display:block;max-width:100%;width:100%;height:auto}.battle-problem-image small{display:block;padding:8px;font-size:12px;color:#8a826a}.quest-victory{max-width:670px;margin:10px auto;text-align:center;background:#fff;border:1px solid #d9e5dd;border-radius:24px;padding:38px 36px;overflow:hidden}.victory-burst{height:138px;width:138px;position:relative;margin:0 auto 15px;border:1px solid #f1e2b6;border-radius:50%;display:grid;place-items:center;background:#fff5d7;color:#e5b247;animation:victory-in .7s ease both}.victory-burst>svg{filter:drop-shadow(0 4px 0 #c99431)}.victory-burst>i{position:absolute;width:1px;height:160px;left:50%;top:-11px}.victory-burst>i:before{content:'';display:block;background:#e7be65;height:6px;width:6px;border-radius:2px}.victory-tag{display:flex;align-items:center;justify-content:center;gap:5px;color:#789573;font-size:13px}.quest-victory h1{font-size:25px;line-height:1.6;margin:10px 0}.quest-victory h1 em{color:#34876b;font-size:32px}.victory-xp{display:inline-flex;gap:9px;align-items:center;padding:11px 25px;border-radius:24px;background:#fff4d5;color:#b38727;font-weight:750;font-size:20px;margin:8px 0 17px}.quest-victory>p{font-size:15px;color:#779180;line-height:1.65}.quest-victory .victory-reminder{font-size:13px;margin:18px 0}.battle-explanation{margin-top:17px;border:1px solid #e1e9e0;border-radius:10px;text-align:left;padding:14px 17px;background:#f8fbf7}.battle-explanation summary{font-size:14px;cursor:pointer;color:#5f816b}.battle-explanation p{font-size:15px;line-height:1.8;white-space:pre-line;color:#567961}.victory-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:23px}.victory-actions .quest-secondary{margin-top:0}.monster-bounce{animation:monster-wiggle .4s ease!important}.monster-hit{animation:monster-hit .45s ease both!important}.quest-battle button:focus-visible{outline:3px solid #cf9339;outline-offset:3px}@keyframes monster-float{50%{transform:translateY(-5px)}}@keyframes monster-wiggle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes monster-hit{50%{transform:scale(.9);opacity:.6}}@keyframes victory-in{0%{transform:scale(.65);opacity:0}70%{transform:scale(1.07)}100%{transform:scale(1);opacity:1}}
@media(max-width:760px){.battle-topline{font-size:11px;gap:5px}.battle-topline .quiet{font-size:12px}.boss-status{padding:13px 13px;gap:10px;border-radius:15px}.monster-sprite{width:76px;height:87px}.boss-status h1{font-size:18px;margin:4px 0 9px}.boss-status .quest-small{font-size:10px}.boss-status p{font-size:11px;line-height:1.5}.boss-hp{height:10px}.battle-reward{gap:3px}.battle-reward b{font-size:19px}.battle-reward svg{width:16px}.battle-reward small{font-size:10px}.battle-stage-tabs{gap:22px;margin:20px 0}.battle-stage-tabs>span{font-size:13px}.battle-question{padding:22px 18px;border-radius:15px}.battle-question h2{font-size:18px;line-height:1.8}.battle-options button{padding:13px 12px;font-size:17px;gap:10px;min-height:59px}.battle-options button>span{width:25px;height:25px;font-size:12px}.battle-feedback{font-size:14px;padding:11px}.battle-support button{font-size:12px;gap:3px}.battle-hint{padding:10px 5px}.battle-choice-instruction{font-size:11px}.quest-victory{padding:28px 21px}.victory-burst{height:120px;width:120px}.victory-burst>i{height:142px}.quest-victory h1{font-size:21px}.quest-victory h1 em{font-size:29px}.victory-actions{grid-template-columns:1fr}.quest-victory .quest-secondary{margin-top:3px}.quest-detail .quest-preview-icon:has(img){display:none}}
@media(prefers-reduced-motion:reduce){.quest-battle *{animation:none!important;transition:none!important}}
.quest-mobile-level,.quest-map-return{display:none}.quest-node.visited:not(.lit) .node-disc:after{content:"";position:absolute;right:-2px;bottom:0;background:#dfad62;border:3px solid white;border-radius:50%;width:12px;height:12px}@media(max-width:760px){.quest-mobile-level{display:block;margin-bottom:16px}.quest-mobile-level .level-picker{margin:0}.quest-mobile-level .level-picker legend{font-size:12px}.quest-detail>.level-picker{display:none}.quest-map-return{display:flex;align-items:center;background:transparent;border:0;color:#708f7b;font-size:12px;padding:0 0 14px;min-height:34px}.quest-detail{scroll-margin-top:16px}.lesson-topline{flex-wrap:wrap}}
@media(min-width:761px){.quest-detail .quest-preview-icon:has(img){width:60px;height:74px;float:right;margin:3px 0 8px 6px}.quest-detail>.quest-small,.quest-detail>h2{text-align:left}.quest-detail>h2{font-size:20px;margin-top:5px}.quest-detail>.quest-reward{justify-content:flex-start}.quest-detail>.quest-primary{clear:both;margin-top:15px}.quest-detail .quest-mini-steps{margin:17px 0 12px}.quest-map .world-picker button{padding-top:10px;padding-bottom:8px}.quest-map .world-picker button[aria-pressed=true]{padding-top:9px;padding-bottom:7px}}

.quest-level-notice{font-size:14px;line-height:1.6;background:#e7f3eb;color:#356d59;border-left:3px solid #438365;padding:9px 12px;margin:0 0 14px}.quest-round-label{font-size:13px;color:#5e7d70;text-align:center;margin:11px 0 0}.quest-foundation-note{font-size:13px;line-height:1.65;color:#6d8477;margin:12px 0;text-align:left}.quest-foundation-note b{font-weight:550}.quest-question-preview{text-align:left;margin:12px 0;font-size:13px;color:#597b69}.quest-question-preview summary{cursor:pointer}.quest-question-preview p{font-size:15px;line-height:1.7;padding:10px;background:#f2f7f3;border-radius:8px;white-space:pre-line}
@media(min-width:761px){.student:has(.quest-map) .student-content{padding-top:24px}.quest-heading{margin-bottom:12px}.quest-summary{margin-bottom:16px}.world-picker{margin-bottom:18px}.quest-map .world-picker button{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px;padding:10px 5px}.quest-map .world-picker button[aria-pressed=true]{padding:9px 4px}.world-symbol{width:30px;height:30px;margin:0}.world-symbol svg{width:19px}.world-picker small{flex-basis:100%}.quest-detail .quest-mini-steps{margin:12px 0}}


.question-figure{margin:20px auto;border:1px solid #d7e7df;border-radius:15px;background:#f7fbf8;padding:13px 15px;max-width:540px;overflow:hidden}.question-figure.figure-expanded{max-width:100%}.question-figure img,.question-figure svg[viewBox="0 0 420 300"]{display:block;max-width:100%;width:100%;height:auto}.figure-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#587966;font-size:13px;margin-bottom:7px}.figure-toolbar button{display:flex;align-items:center;gap:5px;color:#397461;background:#fff;border:1px solid #ccdfd2;padding:7px 10px;border-radius:7px;font-size:13px;min-height:36px}.question-figure figcaption,.figure-caption{font-size:12px;line-height:1.6;color:#7c8e82;margin:8px 0 0}.figure-view-tabs{display:flex;gap:7px;justify-content:center;margin:8px 0 13px;flex-wrap:wrap}.figure-view-tabs button{border:1px solid #cbdfd0;background:#fff;padding:8px 12px;border-radius:8px;font-size:14px;color:#628572;min-height:39px}.figure-view-tabs button[aria-pressed=true]{background:#ddefe2;color:#216b4d;border-color:#739d80}.spatial-model text{font-family:inherit;fill:#315b4a}.spatial-model input{max-width:45%;accent-color:#418f70}.layer-control{display:flex;align-items:center;gap:8px;justify-content:center;font-size:13px;color:#548068;flex-wrap:wrap}.layer-control button{background:none;border:0;color:#4e7d64;display:flex;padding:7px}.concept-example-prompt{font-size:16px;line-height:1.75;margin:0 0 15px;color:#375b51}.concept-visual-box .question-figure{border:0;padding:0;margin:0 auto}.concept-visual-box .question-figure .figure-toolbar>span{display:none}.concept-visual-box .question-figure .figure-toolbar{justify-content:flex-end}.matching-example-label{display:block;font-size:13px;color:#67917d;margin-bottom:8px}.question-figure:focus-within{outline:2px solid #92b49b;outline-offset:3px}@media(max-width:760px){.question-figure{padding:10px 7px;margin-inline:0;max-width:100%}.figure-toolbar{font-size:12px}.figure-toolbar button{font-size:12px;padding:6px 8px}.question-figure figcaption{font-size:11px}.figure-view-tabs{gap:5px}.figure-view-tabs button{font-size:13px;padding:7px 9px}.layer-control{font-size:12px}.concept-example-prompt{font-size:16px}.question-figure.figure-expanded{width:calc(100% + 20px);max-width:calc(100% + 20px);margin-left:-10px}}

.figure-toolbar button{white-space:nowrap;flex-shrink:0}.figure-toolbar button svg{width:15px;height:15px;flex-shrink:0}.layer-control button svg{width:16px;height:16px}

.portal{--portal-ink:#193b45;--portal-teal:#187568;--portal-orange:#ff7910;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--portal-ink);min-height:100vh;background:#f4f8f7;font-size:16px}.portal *{box-sizing:border-box}.portal button,.portal input,.portal select{font:inherit}.portal button,.portal a{touch-action:manipulation}.portal button{cursor:pointer}.portal button:disabled{opacity:.5;cursor:not-allowed}.portal button:focus-visible,.portal a:focus-visible,.portal input:focus-visible,.portal select:focus-visible{outline:3px solid #f2b13e;outline-offset:3px}.portal-top{min-height:78px;padding:14px clamp(18px,4vw,64px);background:#fff;border-bottom:1px solid #dce7e4;display:flex;align-items:center;justify-content:space-between;gap:20px}.portal-brand{display:flex;gap:12px;align-items:center;color:var(--portal-ink);font-size:18px;font-weight:700;text-decoration:none}.portal-brand img{width:40px;height:40px;object-fit:cover;border-radius:8px}.portal-top nav{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.portal-top nav a,.portal-top nav button{display:inline-flex;gap:6px;align-items:center;font-size:14px;color:#456570;background:none;border:0;text-decoration:none;padding:7px 0}.portal-account{font-size:14px;font-weight:700}.portal-save{font-size:13px;color:#598274}.portal-login-layout{max-width:1120px;margin:0 auto;padding:68px 26px 48px;display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;min-height:calc(100vh - 150px)}.portal-eyebrow{font-size:14px;font-weight:700;color:#438073;letter-spacing:1px;margin:0 0 15px}.portal-intro h1{font-size:clamp(32px,4vw,48px);line-height:1.4;letter-spacing:-1px;margin:0 0 20px}.portal-intro>p:not(.portal-eyebrow){color:#607b82;line-height:1.8;font-size:16px;max-width:380px}.portal-programs{margin-top:34px;display:grid;gap:14px}.portal-programs>button,.portal-programs>div{display:flex;align-items:center;gap:14px;text-align:left;border-radius:14px;padding:21px;width:100%;border:1px solid #cdded8;background:#fff;color:#235547}.portal-programs span{flex:1}.portal-programs strong{display:block;font-size:17px}.portal-programs small{display:block;font-size:14px;margin-top:7px;color:#728681}.portal-programs>button{border:2px solid #318874;box-shadow:0 4px 0 #e0ebe6}.portal-programs>.program-soon{background:#edf2ef;color:#899894;border-style:dashed}.portal-login-card{padding:34px;border:1px solid #dbe7e2;background:#fff;border-radius:22px;box-shadow:0 18px 55px #254e4210}.portal-icon{background:#e7f4ef;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:#287760;margin-bottom:22px}.portal-login-card h2{font-size:24px;line-height:1.5;margin:0 0 12px}.portal-login-card>p:not(.portal-eyebrow){font-size:14px;line-height:1.7;color:#758980;margin:0 0 24px}.portal form{display:grid;gap:18px}.portal label{display:grid;gap:9px;font-weight:600;font-size:15px}.portal input,.portal select{width:100%;padding:13px 14px;border:1px solid #cbdcd5;border-radius:9px;background:#fff;color:#244b48;min-height:46px}.portal-primary{border:1px solid #176b5e!important;background:#187568!important;color:#fff!important;border-radius:10px;padding:13px 20px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.portal form>.portal-primary{width:100%}.portal-form-error{color:#a93d35;font-size:14px;line-height:1.6;margin:0;min-height:0}.portal-help{font-size:14px;color:#70877f;line-height:1.7}.portal-login-card .portal-help{text-align:center;margin:20px 0 0!important}.portal-footer{text-align:center;padding:20px;font-size:14px;color:#7b9087}.portal-loading{padding:100px 25px;text-align:center;color:#597b70}.portal-expired{max-width:660px;margin:80px auto;padding:36px;background:white;border:1px solid #dbe7df;border-radius:20px;line-height:1.8;text-align:center}.portal-expired>svg{color:#ba8c2d}.portal-expired h1{font-size:30px}.portal-expired .portal-primary{margin-top:20px}.portal-term{padding:10px 24px;text-align:right;background:#e8f1ed;color:#4c7067;font-size:14px}.portal-banner,.portal-success{margin:15px auto;padding:13px 18px;border-radius:9px;background:#fff2e9;color:#965129;font-size:15px;line-height:1.7;max-width:1200px}.portal-success{background:#e7f5ed;color:#247551;display:flex;align-items:center;gap:10px}.portal-admin{max-width:1240px;margin:0 auto;padding:38px 24px 70px}.admin-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.admin-heading h1{font-size:30px;margin:0}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.admin-stats>div{padding:20px 24px;border:1px solid #dce7e2;border-radius:14px;background:#fff}.admin-stats strong{display:block;font-size:30px;color:#256d5c}.admin-stats span{display:block;margin-top:8px;font-size:14px;color:#789083}.admin-providers{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;color:#84968f;margin-bottom:24px}.provider-open{color:#277864}.admin-toolbar{display:flex;gap:14px;margin:20px 0}.admin-toolbar>label{display:flex;align-items:center;position:relative;flex:1;font-weight:400}.admin-toolbar>label>svg{position:absolute;left:13px;color:#80988d}.admin-toolbar input{padding-left:40px}.admin-toolbar select{width:160px}.admin-toolbar>button{display:flex;align-items:center;gap:6px;border:1px solid #cbdcd5;border-radius:9px;padding:10px 16px;background:white}.admin-table-wrap{overflow:auto;background:#fff;border:1px solid #dbe5e0;border-radius:14px}.admin-table{width:100%;border-collapse:collapse;font-size:15px;min-width:850px}.admin-table th{text-align:left;padding:16px 18px;color:#71847d;font-size:14px;background:#f0f5f2;font-weight:600}.admin-table td{padding:21px 18px;border-top:1px solid #edf1ee;vertical-align:middle}.admin-table small{display:block;font-size:13px;margin-top:8px;color:#829289}.account-badge{padding:5px 10px;border-radius:6px;font-size:14px;white-space:nowrap}.account-badge.active{color:#24815d;background:#e9f6ee}.account-badge.expired{color:#ac6f2d;background:#fff1dc}.account-actions{display:flex;gap:13px;align-items:center}.account-actions button{border:0;padding:6px 0;background:none;color:#247b68;font-size:14px;white-space:nowrap}.admin-empty{text-align:center;padding:42px 20px;color:#769085;font-size:15px}.portal-modal-backdrop{position:fixed;inset:0;z-index:1000;background:#183a4266;display:flex;justify-content:center;align-items:center;padding:24px;overflow:auto}.portal-modal{width:min(540px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:32px;position:relative;box-shadow:0 20px 80px #173c4422}.portal-modal h2{font-size:24px;margin:0 32px 18px 0;line-height:1.5}.portal-modal h3{font-size:18px;margin:30px 0 16px}.portal-modal p{line-height:1.7;font-size:15px;overflow-wrap:anywhere}.portal-modal>label{margin:20px 0}.portal-modal button:not(.modal-close):not(.portal-primary):not(.portal-danger){border:1px solid #d2dfd7;background:white;border-radius:8px;padding:10px 15px;color:#456758}.modal-close{position:absolute;right:18px;top:18px;width:34px;height:34px;border:0;border-radius:9px;background:#edf4ef;color:#70867b;display:grid;place-items:center}.portal-actions{display:flex;gap:12px;margin:20px 0 0;flex-wrap:wrap}.portal-danger{border:1px solid #ecc1bb;background:#fff4f1;color:#a44032;border-radius:9px;padding:11px 17px;display:inline-flex;gap:7px;align-items:center}.history-modal{width:min(860px,100%)}.history-note{background:#f4f8f5;border:1px solid #e0eae3;padding:17px 20px;border-radius:10px;margin:12px 0}.history-note strong{font-size:15px}.history-note p{white-space:pre-wrap;color:#547165;margin-bottom:0}.history-timeline{padding:0;list-style:none}.history-timeline li{display:grid;grid-template-columns:145px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid #e6ede8}.history-timeline time{font-size:13px;color:#789083;line-height:1.8}.history-timeline strong{font-size:15px}.history-timeline p{font-size:14px;white-space:pre-wrap;margin:7px 0 0;color:#6a8075}.admin-operation-log{border-top:1px solid #dce5df;margin-top:26px;padding-top:20px;font-size:14px}.admin-operation-log summary{cursor:pointer}.action-backdrop{z-index:1100}.created-credentials{background:#edf6ef;padding:10px 16px;border-radius:10px;max-height:45vh;overflow:auto;margin-bottom:20px}.created-credentials p{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px solid #d9e6dd;padding:8px 0 14px;margin:0}.created-credentials code{font-size:22px;font-weight:700;letter-spacing:2px}.created-credentials small{font-size:13px;color:#789083;grid-column:1/-1}.new-password{display:block;font-size:34px;letter-spacing:7px;background:#edf7ef;padding:20px;text-align:center;border-radius:10px}.portal-modal textarea{width:100%;min-height:180px;font-family:inherit;font-size:14px;padding:12px}.portal-student-surface .student-header{border-top:0}.portal-student-surface .student-header .studio-logo{display:none}.portal-student-surface .student{min-height:calc(100vh - 125px)}
@media(max-width:760px){.portal-top{padding:12px 16px;align-items:flex-start;gap:10px;flex-wrap:wrap}.portal-brand{font-size:16px}.portal-brand img{width:34px;height:34px}.portal-top nav{gap:14px;margin-left:auto}.portal-top nav a,.portal-top nav button{font-size:14px}.portal-account{font-size:13px}.portal-save{display:none}.portal-login-layout{grid-template-columns:1fr;gap:25px;padding:28px 20px;min-height:0}.portal-intro h1{font-size:30px;margin-bottom:12px}.portal-intro h1 br{display:none}.portal-intro>.portal-eyebrow{margin-bottom:10px}.portal-intro>p:not(.portal-eyebrow){font-size:15px;margin:0}.portal-programs{margin-top:20px;gap:10px}.portal-programs>button,.portal-programs>div{padding:15px}.portal-programs strong{font-size:16px}.portal-programs small{font-size:13px;margin-top:4px}.portal-login-card{padding:25px;border-radius:17px}.portal-login-card h2{font-size:22px}.portal-icon{display:none}.portal-footer{font-size:13px}.portal-admin{padding:24px 16px}.admin-heading{align-items:flex-start;gap:12px}.admin-heading h1{font-size:24px}.admin-heading .portal-eyebrow{font-size:12px;letter-spacing:0}.admin-heading .portal-primary{font-size:14px;padding:10px 13px;white-space:nowrap}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px}.admin-stats>div{padding:16px}.admin-stats strong{font-size:26px}.admin-toolbar{flex-wrap:wrap;gap:10px}.admin-toolbar>label{flex-basis:100%}.admin-toolbar select{flex:1}.portal-modal-backdrop{padding:12px}.portal-modal{padding:25px 20px;max-height:94vh}.portal-modal h2{font-size:22px}.history-timeline li{grid-template-columns:1fr;gap:7px}.history-timeline time{font-size:13px}.portal-expired{margin:30px 16px;padding:26px}.portal-term{text-align:left;font-size:13px;padding:10px 16px}}

.portal-view-tabs{display:flex;gap:8px;align-items:center;padding:12px max(20px,calc((100vw - 1192px)/2));border-bottom:1px solid #dae7e1;background:#fff;overflow-x:auto}.portal-view-tabs button{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:11px 20px;border:1px solid transparent;border-radius:9px;background:transparent;color:#56756b;font-weight:700}.portal-view-tabs button[aria-pressed=true]{background:#e7f4ed;color:#126c59;border-color:#b6d9ca}.portal-student-surface[hidden]{display:none!important}.learning-report,.admin-learning,.student-leaderboard{max-width:1240px;padding:34px 24px 60px;margin:auto}.report-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:24px}.report-heading h1{font-size:34px;margin:0;letter-spacing:-1px}.report-heading-actions{display:flex;gap:10px}.report-heading button,.report-more{border:1px solid #cbded5;background:white;border-radius:9px;padding:11px 17px;color:#396c5e;display:inline-flex;align-items:center;gap:7px}.report-filters{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:20px 0 26px}.report-filters label{font-size:13px;font-weight:500;min-width:160px}.report-filters select{padding:10px 13px;min-height:42px}.report-filters>span{font-size:13px;color:#73887e;margin:0 0 12px 4px}.report-hero{display:flex;align-items:center;gap:32px;border-radius:22px;padding:32px 38px;background:linear-gradient(125deg,#174e47,#217d67);color:#fff;position:relative;overflow:hidden}.report-hero:after{content:"";width:240px;height:240px;border:1px solid #ffffff1a;border-radius:50%;position:absolute;right:-100px;top:-100px;pointer-events:none}.report-ring{width:164px;height:164px;position:relative;flex-shrink:0}.report-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.report-ring circle{fill:none;stroke-width:10}.ring-track{stroke:#ffffff25}.ring-value{stroke:#ffe096;stroke-linecap:round;transition:stroke-dasharray .65s ease}.report-ring>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.report-ring strong{font-size:40px;color:#ffdf96;font-variant-numeric:tabular-nums}.report-ring span{font-size:13px;color:#d3e9e0;margin-top:4px}.report-kicker{font-size:13px;color:#bddccd}.report-hero h2{font-size:27px;margin:9px 0 12px;line-height:1.45}.report-hero p{font-size:15px;line-height:1.8;color:#d7e8df;margin:0 0 18px;max-width:700px}.report-hero .portal-primary{background:#ffe0a0!important;color:#244e42!important;border-color:#ffe0a0!important;font-size:14px;padding:11px 16px;min-height:42px}.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.report-metrics>div{padding:23px;background:#fff;border:1px solid #dce8e1;border-radius:16px;position:relative}.report-metrics>div>svg{position:absolute;right:20px;top:22px;width:20px;color:#8cb1a1}.report-metrics span{display:block;font-size:14px;color:#5c7c6e}.report-metrics strong{display:block;font-size:33px;color:#1c6251;margin:12px 0 7px;font-variant-numeric:tabular-nums}.report-metrics i{font-size:13px;font-weight:400;font-style:normal;margin-left:6px}.report-metrics small{font-size:12px;color:#83958c;line-height:1.6;display:block}.report-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-card{border:1px solid #dbe7df;border-radius:18px;background:#fff;padding:26px;margin-bottom:22px;min-width:0}.report-card h2{font-size:21px;line-height:1.45;margin:0 0 20px;display:flex;align-items:center;gap:10px}.report-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:21px}.report-section-heading h2{margin:0}.report-section-heading>span{font-size:12px;color:#7e978b}.report-section-heading p{font-size:14px;color:#6c8778;margin:8px 0 0;line-height:1.75}.report-section-heading input{max-width:250px;font-size:14px}.module-progress-list{display:grid;gap:14px}.module-progress-list button{display:grid;grid-template-columns:48px 1fr 68px;align-items:center;gap:14px;border:0;background:none;text-align:left;padding:5px 0;color:#3d6956;font-size:14px}.module-progress-track,.admin-module-bars>div>div{height:12px;border-radius:10px;background:#ecf2ee;overflow:hidden}.module-progress-track i,.admin-module-bars i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#72b89b,#25856d);min-width:0;transition:width .6s}.module-progress-list b{text-align:right;color:#386d58;font-variant-numeric:tabular-nums}.module-progress-list small{font-size:12px;color:#94a49b;font-weight:400}.activity-chart{min-height:158px;display:flex;align-items:end;gap:5px;border-bottom:1px solid #e5ece6;padding:8px 0 13px}.activity-chart>div{flex:1;min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:end}.activity-chart b{font-size:11px;color:#477e65;font-weight:500;min-height:17px}.activity-chart i{display:block;background:#e3ede7;border-radius:4px 4px 0 0;min-width:3px;width:75%;max-width:22px}.activity-chart i.has-activity{background:#79b59a}.activity-chart small{font-size:10px;color:#8c9e93;white-space:nowrap;margin-top:9px;min-height:14px}.report-caption{font-size:12px;color:#7f9588;line-height:1.8;margin:16px 0 0}.report-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.report-badges>span{padding:9px 11px;border-radius:9px;background:#f2f5f1;color:#94a599;display:flex;align-items:center;gap:6px;font-size:12px}.report-badges small{font-size:10px}.report-badges>span.earned{background:#fff4dc;color:#a77822}.report-topic-tools{display:flex;gap:12px;margin-bottom:17px}.report-topic-tools label{flex:1;position:relative}.report-topic-tools label svg{position:absolute;left:14px;top:15px;color:#91a698}.report-topic-tools input{padding-left:39px;font-size:14px}.report-topic-tools select{width:150px;font-size:14px}.report-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:#83978c;margin:15px 0 19px}.report-legend .correct{color:#247d5e}.report-legend .retry{color:#b06d24}.report-legend .reviewed{color:#8165ad}.report-topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.report-topic-grid>button{padding:17px 16px;border:1px solid #e0e8e0;background:#fcfdfb;border-radius:12px;text-align:left;color:#2c5a48;transition:transform .15s,border-color .15s;min-width:0}.report-topic-grid>button:hover{transform:translateY(-2px);border-color:#75ae8d}.report-topic-grid>button.selected{border:2px solid #408c6d;background:#f2f8ef;padding:16px 15px;box-shadow:0 3px 0 #e4eddf}.report-topic-grid>button>span{display:flex;justify-content:space-between;color:#8a9d8e;font-size:11px}.report-topic-grid>button>span b{color:#5c8967;font-size:13px}.report-topic-grid>button>strong{font-size:16px;line-height:1.5;display:block;margin:10px 0 13px}.report-topic-grid>button>small{font-size:11px;color:#809580;display:block;margin-top:12px}.question-cells{display:flex;gap:4px;flex-wrap:wrap}.question-cells i{width:23px;height:24px;font-style:normal;font-size:11px;border-radius:5px;display:grid;place-items:center;background:#edf1e9;color:#a0ad97;border:1px solid #e5eade}.question-cells .correct{background:#d9eedb;border-color:#b4d9bc;color:#307c49}.question-cells .retry{background:#fff0d9;border-color:#eed6b5;color:#ac7c31}.question-cells .reviewed{background:#eee6f5;border-color:#d7c7e9;color:#8160a5}.report-more{display:flex;margin:23px auto 0;font-size:14px}.report-topic-detail{border-top:1px solid #dbe7db;padding-top:26px;margin-top:28px;scroll-margin-top:30px}.report-topic-detail h3{font-size:24px;margin:4px 0 0}.report-topic-detail .report-section-heading p{margin:0;font-size:12px}.question-detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.question-detail-list button{border:1px solid #dfe7dc;background:#fbfcf9;color:#76926f;border-radius:10px;text-align:left;padding:15px;display:flex;flex-direction:column;gap:8px;position:relative}.question-detail-list button:disabled{opacity:1;cursor:default}.question-detail-list b{font-size:16px;color:#315638}.question-detail-list span,.question-detail-list small{font-size:12px;font-weight:400}.question-detail-list strong{font-size:14px}.question-detail-list svg{position:absolute;right:12px;top:16px}.question-detail-list .correct{background:#edf8ee;border-color:#b4d9bd;color:#3d8a52}.question-detail-list .retry{background:#fff6e6;border-color:#ebcea2;color:#a1752a}.question-detail-list .reviewed{background:#f7f1fc;border-color:#dbcbea;color:#8164a1}.report-path{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:23px;padding:21px;border-radius:12px;background:#f2f7ee;font-size:14px;color:#548055}.report-path>div{display:flex;flex-direction:column;gap:7px}.report-path span{font-size:11px;color:#8ba084}.report-path button{border:1px solid #d8e6cd;border-radius:7px;padding:7px 11px;background:white;color:#567b43;font-size:13px}.report-path button:disabled{opacity:1;cursor:default}.report-path>strong{padding:13px 20px;border:1px solid #95bd82;border-radius:9px;background:#e2eed7;color:#527644}.report-method{padding:20px 23px;background:#eaf1e8;border:1px solid #dce7d8;border-radius:12px;color:#66815e;font-size:13px;margin-top:20px}.report-method summary{cursor:pointer;font-weight:700}.report-method p{line-height:1.9;margin:13px 0 0}.report-empty,.report-loading{padding:28px;text-align:center;color:#85977f;font-size:15px;line-height:1.8}.leaderboard-card{margin-top:25px}.leaderboard-switch{display:inline-flex;gap:5px;padding:5px;background:#edf2e9;border-radius:10px}.leaderboard-switch button{border:0;border-radius:8px;background:transparent;color:#7d8f70;padding:11px 18px;font-size:14px}.leaderboard-switch button[aria-pressed=true]{background:white;color:#49752f;box-shadow:0 2px 5px #667d5614;font-weight:700}.leaderboard-me{background:#fff2d3;color:#967330;border-radius:10px;padding:16px;font-size:14px;line-height:1.7}.leaderboard-table-wrap{overflow:auto}.leaderboard-table{border-collapse:collapse;width:100%;font-size:14px;min-width:540px}.leaderboard-table th{background:#f3f6ef;padding:13px 16px;text-align:left;font-size:12px;font-weight:500;color:#809170}.leaderboard-table td{padding:16px;border-bottom:1px solid #e8eddf;color:#53703d;font-variant-numeric:tabular-nums}.leaderboard-table td small{display:block;font-size:11px;font-weight:400;color:#899a7b;margin-top:6px}.leaderboard-table button{border:0;background:none;padding:5px 0;color:#5a7d3b;display:inline-flex;align-items:center;gap:6px}.leaderboard-table .is-me{background:#f7f8e4}.rank-medal{display:inline-flex;gap:4px;align-items:center;justify-content:center;min-width:38px;font-weight:700;padding:5px 7px;border-radius:8px;color:#8c9d74}.rank-medal.top-three{color:#ab822d;background:#fff2d1}.admin-module-bars{display:grid;gap:19px}.admin-module-bars>div{display:grid;grid-template-columns:48px 1fr 70px 42px;align-items:center;gap:9px;font-size:13px;color:#677f50}.admin-module-bars small{font-size:12px;color:#8ba471;text-align:right}.weak-topic{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #eaf0e0;color:#6b8145}.weak-topic b{font-size:14px;font-weight:500}.weak-topic small{display:block;margin-top:6px;font-size:11px;color:#8fa074}.weak-topic strong{font-size:18px;color:#ab8a3d}.student-progress-mini{height:5px;background:#edf1e6;width:100%;max-width:150px;margin-top:8px;border-radius:4px}.student-progress-mini i{display:block;height:100%;border-radius:4px;background:#96b769}.practice-check{padding:22px;background:#f1f8f3;border:1px solid #cfe3d5;border-radius:14px;margin:20px 0}.practice-check h3{margin:0 0 8px;font-size:18px}.practice-check>p,.practice-record-note{font-size:13px;line-height:1.7;color:#688570}.practice-choices{display:grid;gap:9px;margin:18px 0}.practice-choices button{display:flex;gap:13px;align-items:center;text-align:left;padding:14px;border:1px solid #d7e3d9;background:white;border-radius:9px;color:#2f5d40;font-size:16px}.practice-choices button[aria-pressed=true]{border-color:#388659;background:#e3f2e6;box-shadow:inset 0 0 0 1px #388659}.practice-choices b{border:1px solid #c9daca;border-radius:6px;min-width:28px;min-height:28px;display:grid;place-items:center;font-size:13px}.practice-check .practice-success{color:#2c7e46;font-weight:700}.practice-check .practice-retry{color:#a97829}.practice-record-note{margin:18px 0;padding:12px 16px;border-left:3px solid #acbd9d;background:#f5f8f1}.admin-learning .learning-report{padding:0}.student-leaderboard .leaderboard-card{margin-top:0}
@media(max-width:1050px){.report-topic-grid{grid-template-columns:repeat(3,1fr)}.report-two-columns{grid-template-columns:1fr}.report-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.learning-report,.admin-learning,.student-leaderboard{padding:23px 15px 45px}.portal-view-tabs{padding:10px 14px;gap:5px}.portal-view-tabs button{padding:10px 13px;font-size:14px}.report-heading{align-items:flex-start;gap:10px}.report-heading h1{font-size:27px}.report-heading .portal-eyebrow{font-size:11px;letter-spacing:0}.report-heading button{font-size:12px;padding:9px}.report-hero{padding:25px 20px;gap:19px;align-items:flex-start;flex-direction:column}.report-ring{width:126px;height:126px;align-self:center}.report-ring strong{font-size:33px}.report-hero h2{font-size:22px}.report-hero p{font-size:14px}.report-hero .portal-primary{width:100%;font-size:13px}.report-filters{gap:11px;margin:16px 0 21px}.report-filters label{min-width:0;flex:1}.report-filters>span{flex-basis:100%;margin:0;font-size:11px}.report-metrics{gap:10px}.report-metrics>div{padding:17px 14px}.report-metrics span{font-size:12px}.report-metrics strong{font-size:29px}.report-metrics small{font-size:11px}.report-metrics>div>svg{display:none}.report-metrics i{font-size:11px}.report-card{padding:20px 15px;border-radius:14px}.report-card h2{font-size:19px}.report-section-heading{align-items:flex-start;flex-wrap:wrap;gap:9px}.report-section-heading>span{font-size:11px}.report-topic-tools{flex-wrap:wrap}.report-topic-tools label{flex-basis:100%}.report-topic-tools select{width:100%;min-height:40px}.report-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.report-topic-grid>button{padding:12px 10px}.report-topic-grid>button.selected{padding:11px 9px}.report-topic-grid>button>strong{font-size:14px;margin:9px 0 12px}.report-topic-grid>button>small{font-size:10px;line-height:1.7}.question-cells{gap:3px}.question-cells i{width:18px;height:21px;font-size:10px}.report-legend{font-size:11px;gap:10px}.question-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.report-path{padding:17px 12px;gap:9px;font-size:12px}.report-path>svg:first-child{display:none}.report-path>strong{padding:9px 12px}.report-path button{font-size:11px}.report-path>svg{width:16px}.report-badges{gap:7px}.report-badges>span{font-size:11px;padding:8px}.report-badges small{display:none}.leaderboard-table{min-width:430px;font-size:13px}.leaderboard-table td{padding:12px 10px}.leaderboard-table th{padding:12px 10px;font-size:11px}.leaderboard-switch{display:flex}.leaderboard-switch button{flex:1;font-size:13px;padding:11px}.report-caption{font-size:11px}.report-topic-detail h3{font-size:22px}.report-method{font-size:12px}.admin-module-bars>div{grid-template-columns:45px 1fr 62px 35px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.ring-value,.module-progress-track i,.report-topic-grid>button{transition:none}}

.practice-sequence{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0;padding:12px;background:#eef6f2;border-radius:10px}.practice-sequence span{margin-right:auto;font-size:14px}.practice-sequence button{border:1px solid #bfd7cd;border-radius:8px;padding:8px 12px;background:white;color:#245d50;font-size:14px}.practice-sequence button[aria-current]{background:#217c65;color:white}.practice-sequence button:disabled{opacity:.5;cursor:default}

.achievement-panel{background:#fffaf0;border:1px solid #eddcb6;border-radius:18px;margin:22px 0;padding:26px}.achievement-total{display:flex;align-items:center;gap:42px}.achievement-total>div:first-child{display:grid;grid-template-columns:40px 1fr;gap:4px 12px;color:#ac7e26;min-width:200px}.achievement-total svg{grid-row:1/3;align-self:center}.achievement-total span{font-size:14px}.achievement-total strong{font-size:34px}.achievement-total strong small{font-size:14px;margin-left:8px}.achievement-total>div:last-child{flex:1}.achievement-total h2{margin:0;font-size:24px;color:#6e571f}.achievement-total p{font-size:14px;color:#937d4d}.achievement-progress{height:9px;background:#ece3ce;border-radius:9px;overflow:hidden}.achievement-progress i{display:block;height:100%;background:#d8a83d;border-radius:9px}.achievement-badges{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:25px}.achievement-badges article{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:18px 8px;background:#f3f0e8;border:1px solid #e5dece;border-radius:12px;color:#9a9486}.achievement-badges article>span{padding:15px;border:2px dashed #c9c3b3;border-radius:50%}.achievement-badges b{font-size:15px}.achievement-badges small,.achievement-badges em{font-size:12px;font-style:normal}.achievement-badges article.earned{background:#fff0c5;border-color:#dfb45b;color:#9c6b14}.achievement-badges .earned>span{background:#f5d679;border:2px solid #e4b13b;box-shadow:0 3px 0 #d4a949}.achievement-rules{font-size:14px;margin-top:20px;color:#8a743e}.achievement-rules p{line-height:1.8}.achievement-rules summary{cursor:pointer}@media(max-width:700px){.achievement-panel{padding:20px 15px}.achievement-total{display:block}.achievement-total>div:last-child{margin-top:16px}.achievement-badges{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.achievement-badges article{padding:13px 4px}.achievement-badges b{font-size:13px}.achievement-badges article>span{padding:10px}.achievement-badges em{font-size:12px}}

.student-overview{max-width:1240px;margin:auto;padding:25px 24px 45px}.overview-heading{display:flex;gap:20px;justify-content:space-between;align-items:center}.overview-heading h1{font-size:28px;margin:5px 0 15px}.overview-boards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.compact-board{padding:22px;margin-top:12px}.compact-board .portal-eyebrow{display:none}.compact-board .report-section-heading p{font-size:13px}.compact-board .report-filters{margin:15px 0}.compact-board .report-filters label{min-width:0;flex:1}.compact-board .leaderboard-table{min-width:0;font-size:14px}.compact-board .leaderboard-table th,.compact-board .leaderboard-table td{padding:12px 6px}.compact-board .leaderboard-me{padding:12px;font-size:13px}.compact-board .report-caption{font-size:12px}.compact-board .report-more{margin:15px auto 0}.student-settings{max-width:720px;margin:auto;padding:30px 24px 60px}.student-settings h1{font-size:30px}.student-settings>p{line-height:1.8;color:#638273}.student-settings form{background:white;padding:28px;border:1px solid #d4e5da;border-radius:15px}.student-settings label{display:block;margin-bottom:20px;font-size:15px}.student-settings label small{display:block;color:#789183;font-size:13px;line-height:1.8;margin-top:7px}.student-settings input{display:block;width:100%;margin-top:8px;min-height:44px}.student-settings form>.portal-primary{width:100%}@media(max-width:760px){.student-overview{padding:20px 14px}.overview-heading{align-items:flex-start;gap:10px}.overview-heading h1{font-size:24px}.overview-heading .portal-primary{font-size:13px;padding:10px;white-space:nowrap}.overview-boards{grid-template-columns:1fr;gap:0}.compact-board .leaderboard-table{min-width:0}.compact-board .leaderboard-table td{font-size:12px}.compact-board .leaderboard-table th{font-size:11px}.compact-board .rank-points{display:table-cell}.compact-board .leaderboard-table td:nth-child(2){max-width:90px;overflow-wrap:anywhere}.student-settings{padding:22px 16px}.student-settings form{padding:20px}}

.question-provenance{background:#eff6f1;border-left:3px solid #559b7c;padding:12px 16px;margin:14px 0;font-size:14px;color:#46735c}.question-provenance button{background:white;border:1px solid #bdd5c7;padding:8px 10px;border-radius:7px;margin-left:10px;color:#307554;font-size:14px}.question-provenance small{display:block;overflow-wrap:anywhere;font-size:12px;margin-top:8px;line-height:1.7}.battle-provenance{font-size:12px;line-height:1.8;color:#668573;margin:10px 0 18px}

.training-hub{max-width:1180px;margin:0 auto;padding:32px 30px 64px;color:#173e48}.training-hub[hidden]{display:none}.training-hub button,.training-board button{cursor:pointer}.training-hub button:disabled{cursor:default;opacity:.55}.training-setup{display:flex;align-items:end;gap:18px;padding:22px;background:#fff;border:1px solid #d8e6e7;border-radius:16px}.training-setup label{display:grid;gap:8px;font-size:14px;font-weight:600}.training-setup select{padding:12px;min-width:130px;border:1px solid #bbd2d3;border-radius:9px;background:white;color:inherit;font-size:16px}.training-levels{display:flex;gap:8px;flex:1}.training-levels button{background:#fff;border:1px solid #c5d9db;border-radius:10px;display:grid;gap:5px;padding:10px 18px;flex:1;color:inherit}.training-levels button[aria-pressed=true]{background:#e3f2ee;border:2px solid #16776a;padding:9px 17px}.training-levels small{font-size:13px;color:#536e76}.training-start-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px;margin:24px 0}.training-start-grid article{display:flex;flex-direction:column;align-items:flex-start;padding:24px;border:1px solid #d5e4e5;border-radius:16px;background:#fff}.training-start-grid h2{font-size:23px;line-height:1.45;margin:4px 0 10px}.training-start-grid p{font-size:16px;line-height:1.8}.training-start-grid small{font-size:13px;line-height:1.7;display:block;margin-top:12px;color:#526d77}.training-start-grid .portal-primary{margin-top:auto}.training-family-list{width:100%;margin:10px 0 24px}.training-family-list>div{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #e0ebed}.training-family-list small{margin:2px 0;font-size:13px}.training-family-list b{font-size:12px;white-space:nowrap;padding:5px 8px;border-radius:6px;background:#edf2f3}.training-family-list .passed{color:#9c6713;background:#fff3cf}.training-family-list .retained{color:#16766d;background:#e1f4ec}.training-text-button{display:flex;gap:6px;align-items:center;border:0;background:none;color:#1a776c;padding:16px 0 0;font-size:14px}.training-resume{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:18px;background:#e3f2ec;border-radius:12px;margin:20px 0}.training-resume span{display:flex;align-items:center;gap:8px}.training-progress{padding:24px 0}.training-totals{display:flex;gap:28px;flex-wrap:wrap;margin:20px 0;color:#53717a}.training-totals b{color:#1a776b;font-size:26px;margin-right:5px}.training-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.training-topic-grid article{border:1px solid #d5e4e5;border-radius:14px;padding:20px;background:white}.training-topic-grid article>strong{font-size:18px}.mastery-rings{display:flex;margin-top:18px;gap:8px;justify-content:space-between}.mastery-rings button{flex:1;background:none;border:0;color:#5a7179;padding:0;display:grid;justify-items:center;gap:7px;opacity:1!important}.mastery-rings button>span{display:grid;place-items:center;width:53px;height:53px;border:3px solid #dce6e7;border-radius:50%;background:#f5f8f9}.mastery-rings button.passed>span{color:#ac7716;border-color:#e9ba56;background:#fff7d9}.mastery-rings button.retained>span{color:#147969;border-color:#168671;background:#e3f5ec;box-shadow:0 0 0 4px #edf9f1}.mastery-rings small{font-size:12px}.training-due{color:#976013;font-size:13px}.training-rules{font-size:14px;line-height:1.9;margin:20px 0;background:#edf4f4;padding:18px;border-radius:12px}.training-rules summary{cursor:pointer;font-weight:600}.training-workspace{max-width:830px;margin:0 auto}.training-run-top{display:flex;justify-content:space-between;gap:15px;font-size:15px;margin:24px 0 14px}.training-step-track{display:flex;gap:5px;margin-bottom:24px}.training-step-track i{height:8px;flex:1;border-radius:10px;background:#dce9e9}.training-step-track .current{background:#e6b249}.training-step-track .done{background:#218777}.training-lesson{background:#e9f4ef;border:1px solid #cee5dc;border-radius:14px;padding:20px;margin-bottom:20px;font-size:16px;line-height:1.9}.training-lesson summary{display:flex;gap:8px;align-items:center;cursor:pointer;font-weight:600}.training-visual{border-radius:12px;background:#fff;padding:22px 12px;margin:15px 0;overflow:hidden}.training-visual svg{width:100%;height:140px;font-size:16px;fill:#235660}.sequence-tiles,.cycle-tiles,.cancel-tiles{display:flex;align-items:center;justify-content:center;gap:10px;font-size:22px}.sequence-tiles>span{display:flex;gap:10px;align-items:center}.sequence-tiles b{padding:12px;border-radius:10px;background:#e1f1ed}.sequence-tiles small{font-size:13px}.cancel-tiles s{color:#8a7179;text-decoration-color:#b76573;text-decoration-thickness:2px}.cycle-tiles>span{padding:8px 12px;border-radius:10px;background:#def0e9;animation:cycle-pulse 3s ease-in-out infinite}.triangle-tiles{display:grid;gap:5px;justify-content:center}.triangle-tiles>div{display:flex;gap:6px}.triangle-tiles span{width:32px;height:30px;border-radius:6px;background:#e4eeef;text-align:center;font-size:16px}.triangle-tiles .marked{background:#f4cb68;color:#563e0a}.training-question{background:#fff;padding:32px;border-radius:18px;border:1px solid #d5e4e5}.training-question h2{font-size:22px;font-weight:550;line-height:2;margin:12px 0 26px;white-space:pre-wrap;overflow-wrap:anywhere}.training-answer-fields{display:flex;gap:18px;flex-wrap:wrap}.training-answer-fields label{display:grid;gap:10px;flex:1;min-width:170px;font-size:15px}.training-answer-fields input{width:100%;box-sizing:border-box;font-size:18px;color:#163c46;border:1px solid #b9d3d1;border-radius:10px;padding:15px;background:#fafffd}.training-save{display:block;color:#69828a;font-size:12px;min-height:24px;margin:10px 0}.training-help{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.training-help button{background:none;border:0;color:#32796e;padding:5px 0;font-size:14px;text-decoration:underline;text-underline-offset:4px}.training-feedback,.training-hint,.training-break{padding:15px 18px;border-radius:10px;background:#fff6dd;color:#785724;line-height:1.8}.training-feedback.correct{background:#e1f3e8;color:#1b7456}.training-solution{margin:20px 0;padding:22px;background:#edf5f4;line-height:1.9;border-left:3px solid #3b897c}.training-result{max-width:850px;margin:0 auto;background:white;border:1px solid #d5e4e5;border-radius:18px;padding:32px}.training-result>h2{font-size:27px;line-height:1.5}.training-result-icon{display:grid;place-items:center;width:85px;height:85px;border-radius:50%;background:#fff1c5;color:#b68122}.training-result-list{margin-top:25px}.training-result-list details{padding:18px 0;border-top:1px solid #dce8e8;line-height:1.9;overflow-wrap:anywhere}.training-result-list summary{display:flex;gap:10px;align-items:center;cursor:pointer}.training-result-list summary span{color:#268276}.training-board h2{display:flex;align-items:center;gap:9px}.training-board .report-section-heading p{line-height:1.7}.training-board .leaderboard-table{min-width:0;width:100%}.training-board .leaderboard-table td{padding:12px}.training-board .leaderboard-table small{display:block}.training-board p.report-empty{line-height:1.8}.training-banner{display:flex;gap:18px;align-items:center;justify-content:space-between;margin:20px 0;padding:20px 24px;border:1px solid #b5d8ce;background:#e6f3ed;border-radius:14px}.training-banner p{margin:6px 0;line-height:1.7}.training-banner strong{font-size:20px}.training-banner button{white-space:nowrap}.training-board .report-caption{font-size:12px}
@keyframes cycle-pulse{0%,100%{background:#e3f1ed}40%{background:#f9de96}}
@media(prefers-reduced-motion:reduce){.cycle-tiles>span{animation:none}}
@media(max-width:950px){.training-start-grid{grid-template-columns:1fr 1fr}.training-start-grid article:first-child{grid-column:1/-1}.training-setup{flex-wrap:wrap}.training-topic-grid{grid-template-columns:1fr 1fr}.training-levels{min-width:270px}}
@media(max-width:600px){.training-hub{padding:24px 16px 45px}.training-setup{padding:16px;gap:12px}.training-setup label{flex:1}.training-setup select{width:100%;min-width:0}.training-levels{width:100%;min-width:0}.training-levels button{padding:10px 5px}.training-levels button[aria-pressed=true]{padding:9px 4px}.training-start-grid,.training-topic-grid{grid-template-columns:1fr}.training-start-grid article:first-child{grid-column:auto}.training-start-grid article{padding:22px}.training-resume,.training-banner{align-items:flex-start;flex-direction:column}.training-resume span{font-size:14px;line-height:1.7}.training-totals{gap:12px}.training-totals span{font-size:13px}.training-totals b{font-size:22px}.training-question{padding:22px 18px}.training-question h2{font-size:20px}.training-result{padding:24px 18px}.training-result>h2{font-size:23px}.sequence-tiles,.cycle-tiles,.cancel-tiles{gap:5px;font-size:17px}.sequence-tiles>span{gap:5px}.sequence-tiles b{padding:7px}.cycle-tiles>span{padding:6px}.training-visual{padding:18px 8px}.training-answer-fields{flex-direction:column}.training-question .portal-primary{width:100%;justify-content:center}.training-board .leaderboard-table th,.training-board .leaderboard-table td{padding:10px 6px;font-size:13px}}

.training-history details{margin:12px 0;padding:12px;border:1px solid #d7e4df;border-radius:10px;background:white}.training-history article{border-top:1px solid #dce8e3;margin-top:15px;padding-top:15px}.training-history button{margin:12px 14px 0 0;color:#187d68;border:1px solid #bad4c9;padding:8px 12px;border-radius:7px;background:#eff7f1}.training-history p{overflow-wrap:anywhere}
.training-board .is-me{background:#e0f3e9;color:#125c4a;font-weight:700}.training-board .is-me td:first-child{border-left:4px solid #197e62}.board-me-tag{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:5px;background:#197e62;color:white;font-size:12px;white-space:nowrap}.training-board .board-position-gap td{text-align:center;color:#758a83;background:#f8faf9;font-size:12px;padding:9px}.board-not-ranked{font-size:13px;line-height:1.8;color:#526d65;background:#f0f6f3;padding:12px;border-radius:8px}.board-pagination{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:12px;margin-top:16px}.board-pagination button{border:1px solid #c5d9d0;color:#1a6854;background:#f3f9f6;padding:8px 10px;border-radius:7px}.board-pagination button:disabled{opacity:.4;cursor:default}.overview-boards{align-items:start}
.training-board .board-expanded{max-height:460px;overflow:auto;scrollbar-gutter:stable}.training-board .board-expanded th{position:sticky;top:0;background:#f2f6f1;z-index:1}.training-board .board-expanded:focus-visible{outline:2px solid #197e62;outline-offset:3px}
.training-board .board-scope{font-size:13px;line-height:1.8;color:#4c7165;margin:0 0 16px}.board-score-help{margin:14px 0 5px;border-top:1px solid #deebe5;padding-top:13px;font-size:13px;line-height:1.9;color:#46695d}.board-score-help summary{cursor:pointer;color:#176c53;font-weight:600}.board-score-help p{margin:10px 0;overflow-wrap:anywhere}
.site-board-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 22px}.site-board-tabs button{background:white;border:1px solid #cbded6;border-radius:9px;padding:11px 20px;font:inherit;color:#295b51;cursor:pointer}.site-board-tabs button[aria-pressed=true]{background:#197360;color:white;border-color:#197360;box-shadow:0 3px 0 #104e42}.site-boards .training-board{min-width:0}.site-boards .leaderboard-table{min-width:0;width:100%}.site-boards .leaderboard-table th,.site-boards .leaderboard-table td{white-space:normal;overflow-wrap:anywhere}.site-boards .leaderboard-table small{font-size:12px;line-height:1.65;display:block}.site-boards .leaderboard-table th:first-child{width:12%}.site-boards .leaderboard-table th:nth-child(2){width:24%}.site-boards .leaderboard-table th:nth-child(3){width:38%}.site-boards .leaderboard-table th:nth-child(4){width:26%}.overview-entries{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.overview-entries article{border:1px solid #cadfd6;background:white;border-radius:16px;padding:26px;display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.overview-entries article>svg{color:#1d816a;margin-top:5px}.overview-entries article>div{flex:1;min-width:180px}.overview-entries h2{margin:0 0 10px;font-size:22px}.overview-entries p{font-size:15px;line-height:1.8;margin:0;color:#58746d}.overview-entries button{margin-left:43px}.calculation-directory{padding:24px;background:white;border:1px solid #d6e5de;border-radius:16px;margin-bottom:22px}.calculation-directory input{border:1px solid #c5d8ce;border-radius:8px;padding:10px 12px;font-size:15px;max-width:100%}.calculation-topic-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.calculation-topic-buttons button{display:flex;gap:12px;align-items:center;text-align:left;background:#f9fcfa;border:1px solid #d5e3db;border-radius:10px;padding:13px 12px;color:#284d43;font-size:15px;cursor:pointer}.calculation-topic-buttons button> b{display:grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:#e9efe8;color:#537b6a}.calculation-topic-buttons button small{display:block;font-size:12px;color:#6e857b;margin-top:5px}.calculation-topic-buttons button[aria-pressed=true]{border:2px solid #208366;background:#e7f4ed;padding:12px 11px}.calculation-topic-buttons button[aria-pressed=true]>b{background:#208366;color:white}.challenge-topic-list{background:#eef6f0;padding:12px;border-radius:8px;font-size:14px!important}.training-lesson .worked-model svg{width:100%;height:auto}.calculation-directory .report-section-heading{gap:12px;flex-wrap:wrap}
@media(max-width:900px){.calculation-topic-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.site-board-tabs{gap:6px}.site-board-tabs button{flex:1 0 21%;padding:9px 5px;font-size:14px}.overview-entries{grid-template-columns:1fr}.calculation-directory{padding:16px}.calculation-topic-buttons{gap:8px}.calculation-topic-buttons button{padding:10px 7px;gap:6px;font-size:14px}.calculation-topic-buttons button[aria-pressed=true]{padding:9px 6px}.calculation-topic-buttons button>b{min-width:25px;height:25px;font-size:12px}.calculation-topic-buttons button small{font-size:11px}.site-boards .leaderboard-table td{padding:10px 5px}.site-boards .report-filters{gap:10px}}

@media(max-width:600px){.overview-heading{display:block}.overview-heading>.portal-primary{display:none}.overview-heading h1{font-size:26px}.calculation-topic-buttons button small{font-size:12px}}

.route-explorer{margin-top:24px;color:#173e48}.route-visual-toolbar,.route-station-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:20px 0}.route-visual-toolbar h2,.route-station-heading h2{font-size:24px;margin:7px 0}.route-visual-toolbar>div:last-child{display:flex;gap:8px}.route-visual-toolbar button,.relation-map-bottom button{display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid #c4d9d7;border-radius:9px;background:white;color:#286d66;font-size:13px}.route-visual-toolbar button[aria-pressed=true]{background:#e3f2ea;border-color:#57a28d}.relation-map{border:1px solid #cbdedc;border-radius:20px;background:radial-gradient(ellipse at 50% 45%,#e2f4ef,transparent 70%),#f9fcfc;overflow:hidden;box-shadow:0 8px 0 #e1eeea}.relation-map-labels{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;padding:24px 12px 5px;color:#517981;font-size:14px}.relation-map-labels b:first-child{color:#3d739f}.relation-map-labels b:last-child{color:#22856c}.relation-plane{height:380px;position:relative;margin:0 22px;transform-style:preserve-3d;transition:transform .5s}.dimensional .relation-plane{transform:perspective(1500px) rotateX(12deg)}.relation-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.relation-wires path:not(defs path){fill:none;stroke:#a3c3bb;stroke-width:2;stroke-dasharray:6 7}.relation-wires path.left{stroke:#a1bfd4}.relation-wires path.highlight{stroke:#2b8b77;stroke-width:3}.in-motion .relation-wires path:not(defs path){animation:relation-flow 4s linear infinite}.relation-node{position:absolute;transform:translate(-50%,-50%);width:22%;max-width:200px;min-height:94px;padding:12px 8px;box-sizing:border-box;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border:1px solid #cbddd9;border-radius:16px;color:#254c54;box-shadow:0 7px 0 #d4e5e1,0 12px 16px #3155480e;transition:transform .45s,box-shadow .45s}.dimensional .relation-node{transform:translate(-50%,-50%) translateZ(12px)}.relation-node b{font-size:15px;line-height:1.5}.relation-node small{font-size:11px;color:#68848a;margin-top:5px}.relation-node-symbol{display:grid;place-items:center;color:#3a8978;margin-bottom:6px}.relation-node.left .relation-node-symbol{color:#467eac}.relation-node.central{background:#187e70;border:1px solid #176c60;color:white;min-height:135px;box-shadow:0 12px 0 #105d53,0 25px 25px #14584c26}.dimensional .relation-node.central{transform:translate(-50%,-50%) translateZ(38px)}.relation-node.central h3{font-size:19px;line-height:1.5;margin:3px 0}.relation-node.central small,.relation-node.central .relation-node-symbol{color:#c2e9dc}.relation-node.related{border-color:#3e9a83;box-shadow:0 8px 0 #afdacc,0 15px 24px #2f927018}.relation-node:focus-visible{outline:3px solid #cd9224;outline-offset:4px}.relation-empty{position:absolute;top:44%;font-size:13px;color:#799092;max-width:22%;text-align:center}.relation-empty.left{left:2%}.relation-empty.right{right:0}.relation-map-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 22px 18px;font-size:12px;color:#6d8a8c}.relation-map-bottom>div{display:flex;align-items:center;gap:10px}.relation-map-bottom button:disabled{opacity:.4}.relation-transfer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;background:#f4f4e9;border-top:1px dashed #d8dac0;padding:15px;font-size:13px;color:#83753c}.relation-transfer button{display:flex;gap:6px;align-items:center;background:white;border:1px solid #ddd6b5;color:#807029;border-radius:8px;padding:8px}.relation-transfer button[aria-pressed=true]{border-color:#bd9b32;background:#fff6cf}.route-learning-panels{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:20px;margin:30px 0}.route-demo,.route-bridge{padding:24px;background:#fff;border:1px solid #d7e5e2;border-radius:18px;min-width:0}.route-demo-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #dce9e5;padding-bottom:14px;margin-bottom:20px}.route-demo .quiet{font-size:12px;white-space:nowrap}.route-demo .worked-model{border:0;padding:0;background:none}.route-demo .concept-svg{width:100%;height:auto;max-height:350px}.route-demo .recurring-model>svg{width:100%;height:auto}.route-demo .worked-step-nav{flex-wrap:wrap}.route-practice{margin-top:24px!important;font-size:14px!important}.route-bridge h3{font-size:21px;line-height:1.5;margin:20px 0 10px}.route-bridge p{font-size:15px;line-height:1.9;color:#4f737b}.bridge-names{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:18px}.bridge-names button{padding:8px 10px;border-radius:8px;background:#eef5f3;border:1px solid #cfdfd9;color:#39796a;font-size:13px}.bridge-example{padding:18px;background:#eff7f3;border-left:3px solid #53a08a;font-size:17px;line-height:1.9;overflow-wrap:anywhere;border-radius:0 10px 10px 0;margin:17px 0}.bridge-check{background:#fff7e8;border-radius:10px;padding:16px;color:#8c641f;margin:17px 0}.bridge-check b{font-size:13px}.bridge-check p{margin:6px 0 0;color:#816841;font-size:14px}.bridge-steps{display:flex;gap:5px;flex-wrap:wrap;font-size:12px;color:#537b73;align-items:center}.route-bridge details{margin-top:20px;font-size:13px;color:#68868a}.route-bridge details button{display:block;background:none;border:0;text-align:left;color:#2d786a;padding:9px 0;line-height:1.6}.route-station-heading p{font-size:13px;color:#6d888d;line-height:1.8;margin:5px 0}.route-station-heading label{display:flex;align-items:center;gap:7px;background:white;border:1px solid #cbded9;border-radius:9px;padding:10px 12px}.route-station-heading input{width:170px;border:0;background:none;font-size:15px;outline:none}.route-stations{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding-bottom:20px}.route-stations button{position:relative;text-align:left;background:#fff;border:1px solid #d4e3df;border-bottom:5px solid #d8e7e2;border-radius:12px;padding:18px 14px 13px;transition:transform .2s;color:#335761}.route-stations button[aria-pressed=true]{border-color:#268b73;background:#e8f5ee;transform:translateY(-4px)}.route-stations button>span{font-size:12px;color:#849c9a;display:block;margin-bottom:7px}.route-stations button>div{display:flex;align-items:center;gap:7px}.route-stations b{font-size:14px;line-height:1.6}.route-stations svg{flex-shrink:0;color:#6a9a8d}.route-stations small{font-size:11px;color:#82988f;display:block;margin-top:9px}.route-stations .visited{border-bottom-color:#79b59b}.route-stations .visited small{color:#267f5e}.math-scene{line-height:1.8}.scene-title{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;font-size:16px}.scene-title span{font-size:12px;color:#77918b}.scene-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0}.scene-controls label{display:flex;gap:10px;align-items:center;font-size:13px;flex-wrap:wrap}.scene-controls input[type=range]{width:120px;accent-color:#168570;padding:0;min-height:30px}.scene-controls button{font-size:13px!important;padding:10px 13px!important}.scene-equation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;background:#eef6f2;border-radius:10px;padding:17px;font-size:16px;color:#216d5c}.scene-equation b{color:#a37121}.math-scene>p{font-size:14px;color:#5e7f7c;line-height:1.9}.scene-explanation{padding:15px;background:#eff6f1;border-radius:10px;margin-top:16px;font-size:15px;line-height:1.9}.dissection-stage{height:285px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse,#e7f2ed,#fbfcfc);border-radius:14px;margin-top:18px}.dissection-floor{position:relative;width:315px;height:265px;transform:perspective(850px) rotateX(28deg) rotateZ(-9deg);transform-style:preserve-3d}.square-outline{position:absolute;top:25px;left:25px;border:1px dashed #a9c8bf;transition:opacity .7s}.joined .square-outline{opacity:0}.removed-square{position:absolute;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 5px,#e9e9e9 5px,#e9e9e9 6px);border:1px dashed #b0bdba;display:grid;place-items:center;font-size:13px;color:#84928e;text-align:center}.dissection-piece{position:absolute;top:0;left:0;background-color:#5aaf95;background-image:linear-gradient(#ffffff40 1px,transparent 1px),linear-gradient(90deg,#ffffff40 1px,transparent 1px);background-size:17px 17px;box-shadow:0 7px 0 #2e7c69,4px 12px 15px #34654b25;transform-origin:0 0;transition:transform 1.5s cubic-bezier(.4,0,.2,1),width .4s,height .4s;display:grid;place-items:center;border:1px solid #3a8c74;box-sizing:border-box}.piece-b{background-color:#e4b354;border-color:#c58c2e;box-shadow:0 7px 0 #b58224,4px 12px 15px #34654b25}.dissection-piece span{font-size:14px;font-weight:700;background:#ffffffdc;padding:4px 7px;border-radius:6px;white-space:nowrap;color:#286b59}.sequence-stage{perspective:800px;min-height:215px;background:#f4f9f7;border-radius:14px;padding:28px 14px;margin-top:18px}.number-train{display:flex;gap:7px;justify-content:center;transform:rotateX(18deg);margin:15px 0;transition:transform 1s}.number-train span{width:42px;height:43px;background:#72baa3;box-shadow:0 6px 0 #408971;display:grid;place-items:center;font-size:17px;font-weight:700;color:white;border-radius:8px;transition:transform .8s}.number-train.second span{background:#f0c46e;box-shadow:0 6px 0 #c2953e;color:#664d17}.paired .number-train.second{animation:train-turn .9s ease-out}.pair-sums{display:flex;justify-content:center;gap:7px;color:#356956;margin-top:20px}.pair-sums b{width:42px;text-align:center;font-size:15px}.cancel-stage{display:flex;justify-content:center;align-items:center;gap:14px;min-height:190px;background:#f1f8f5;border-radius:14px;margin:18px 0;perspective:850px}.fraction-pair{display:flex;gap:7px;align-items:center;transform:rotateX(18deg)}.fraction-pair span,.fraction-pair b{padding:18px 10px;background:#c2e4d7;border-radius:8px;box-shadow:0 6px 0 #80b49f;font-size:18px;transition:transform 1s,opacity 1s}.fraction-pair b{background:#f2dca5;box-shadow:0 6px 0 #d3b975;color:#8b681f}.fraction-pair i{font-style:normal}.cancelled .fraction-pair b{transform:translateY(-38px) rotateX(35deg);opacity:.16;text-decoration:line-through}.number-terraces{background:#f2f8f6;border-radius:14px;margin:18px 0;padding:22px 12px;transform-style:preserve-3d;perspective:1000px}.number-terraces>div{display:flex;align-items:center;gap:6px;margin:10px 0;min-height:28px}.number-terraces small{font-size:11px;min-width:43px;color:#6d8c87}.number-terraces b{width:33px;height:29px;background:#e0eae8;color:#466e67;text-align:center;box-shadow:0 5px 0 #bbd3ca;border-radius:5px;font-size:14px;transition:background .7s,transform .7s,opacity .7s}.number-terraces b.target{background:#f4c664;color:#67501c;box-shadow:0 5px 0 #c79736;transform:translateY(-7px)}.number-terraces b.before{opacity:.3}.placevalue-scene{display:flex;justify-content:center;gap:42px;min-height:200px;align-items:flex-end;padding:24px;margin:16px 0;background:#f3f8f6;border-radius:14px}.placevalue-scene>div{display:grid;justify-items:center;gap:8px}.bead-rod{position:relative;width:53px;height:160px;border-bottom:8px solid #b0d3c3}.bead-rod:before{content:'';position:absolute;left:23px;top:0;width:6px;height:155px;background:#ccdcd6;border-radius:4px}.bead-rod b{position:absolute;left:4px;width:45px;height:13px;border-radius:50%;background:#57a889;box-shadow:0 4px 0 #347e64;transition:bottom .7s}.placevalue-scene>div:nth-child(2) .bead-rod b{background:#e0b15a;box-shadow:0 4px 0 #ae8537}.placevalue-scene>div:nth-child(3) .bead-rod b{background:#6fabc7;box-shadow:0 4px 0 #457d97}.placevalue-scene span{font-size:13px;color:#628278}.placevalue-scene small{font-size:14px;color:#286d53}.foundation-steps{display:grid;grid-template-columns:1fr 30px 1fr;gap:12px;align-items:center;margin:30px 0}.foundation-steps>div{background:#f2f7f5;border:1px solid #cde2d9;border-bottom:7px solid #bcd9cb;border-radius:12px;padding:18px;min-height:200px;transition:transform .8s}.foundation-steps .revealed{transform:translateY(-10px);background:#e4f5e9}.foundation-steps b{display:block;margin:12px 0}.foundation-steps p{font-size:14px;line-height:1.9}.route-explorer button{cursor:pointer}.route-explorer button:disabled{cursor:default}.scene-check{background:#fff8e8;padding:13px;border-radius:8px}
@keyframes relation-flow{to{stroke-dashoffset:-52}}@keyframes train-turn{0%{transform:rotateX(18deg) translateY(10px);opacity:.3}100%{transform:rotateX(18deg);opacity:1}}
@media(max-width:900px){.route-learning-panels{grid-template-columns:1fr}.route-stations{grid-template-columns:repeat(3,minmax(0,1fr))}.route-bridge{display:block}.route-demo{padding:22px}.route-visual-toolbar{align-items:flex-start}.route-visual-toolbar h2{font-size:22px}.relation-node h3{font-size:17px!important}}
@media(max-width:600px){.route-visual-toolbar{display:block}.route-visual-toolbar>div:last-child{margin-top:15px}.relation-map-labels{font-size:11px;padding:20px 3px 8px}.relation-plane{height:340px;margin:0 8px}.relation-node{width:29%;padding:9px 5px;min-height:88px;border-radius:11px}.relation-node b{font-size:12px;line-height:1.6}.relation-node small{font-size:10px}.relation-node-symbol svg{width:19px;height:19px}.relation-node.central{width:29%;min-height:120px}.relation-node.central h3{font-size:14px!important}.relation-map-bottom{padding:12px 12px 15px;flex-wrap:wrap;line-height:1.7}.relation-map-bottom button{font-size:11px;padding:7px 9px}.relation-map-bottom>div{width:100%;justify-content:flex-end}.relation-transfer{font-size:12px;padding:12px 8px;gap:7px}.relation-empty{font-size:11px;max-width:25%;line-height:1.7}.route-stations{grid-template-columns:1fr 1fr;gap:10px}.route-stations button{padding:13px 10px}.route-stations button>div{gap:5px}.route-stations b{font-size:13px}.route-stations svg{width:15px}.route-station-heading{display:block}.route-station-heading label{margin:16px 0}.route-station-heading input{width:100%}.route-demo,.route-bridge{padding:20px 15px}.route-demo-heading{align-items:flex-start;gap:8px}.route-demo-heading .quiet{font-size:11px}.route-practice{width:100%;justify-content:center}.scene-title{font-size:15px}.dissection-stage{height:270px}.dissection-floor{transform:perspective(850px) rotateX(28deg) rotateZ(-9deg) scale(.85);width:315px;flex-shrink:0}.scene-controls{display:grid;gap:13px}.scene-controls label{font-size:12px}.scene-controls .action{justify-content:center}.scene-equation{font-size:14px;gap:7px;padding:13px}.number-train{gap:4px}.number-train span{width:32px;height:35px;font-size:14px}.number-train.second span{font-size:14px}.pair-sums{gap:4px}.pair-sums b{width:32px;font-size:13px}.sequence-stage{padding:22px 5px}.fraction-pair{gap:4px}.fraction-pair span,.fraction-pair b{font-size:15px;padding:15px 7px}.cancel-stage{gap:8px}.placevalue-scene{gap:25px;padding:20px 12px}.number-terraces{padding:18px 5px}.number-terraces>div{gap:4px}.number-terraces small{min-width:39px;font-size:10px}.number-terraces b{width:27px;font-size:12px}.foundation-steps{grid-template-columns:1fr;justify-items:center}.foundation-steps>div{width:100%;box-sizing:border-box;min-height:0}.foundation-steps>svg{transform:rotate(90deg)}}
@media(prefers-reduced-motion:reduce){.route-explorer *, .route-explorer *:before{animation:none!important;transition:none!important}.dimensional .relation-plane{transform:none}}

.recurring-play{margin:12px 0;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.recurring-model .recurring-play>svg{width:16px;height:16px;flex-shrink:0}.tail-cancel-line{stroke-dasharray:204;animation:cancel-stroke .75s ease-out both}@keyframes cancel-stroke{from{stroke-dashoffset:204}to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.tail-cancel-line{animation:none}}

.foundation-platform{border-radius:14px;background:radial-gradient(ellipse,#e5f3eb,#fbfcfb);border-bottom:7px solid #dceae3;margin:15px 0 22px}.foundation-platform svg{display:block;width:100%;height:auto;max-height:320px}.foundation-platform rect,.foundation-platform circle,.foundation-platform path,.foundation-platform g{transition:fill .5s,opacity .6s,transform .8s}.foundation-platform text{fill:#234e59;font-size:17px}
