/* Learning and motion activities share the existing Grammar Station palette. */
.zh-title{display:block;margin-top:6px;font:700 14px/1.5 'DM Sans',Arial,sans-serif;color:#478187}.meaning-zh{font-weight:800;color:#245c65!important;line-height:1.6!important}.station-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.station-link{padding:23px;border:1px solid #d6e4df;border-radius:17px;background:#fff;text-align:left;color:#183747}.station-link b{display:block;font:900 23px Nunito,Arial,sans-serif}.station-link span{display:block;margin-top:10px;line-height:1.5;font-size:13px;color:#52757e}.station-link.featured{background:#ffedcc;border-color:#e8cda0}.tense-card>.button+.button{margin-top:9px}.clue-instructions{font-size:14px;line-height:1.9;border-left:4px solid #df785c;padding:12px 15px;background:#fff4e2;color:#704b2b}.clue-surface{position:relative;touch-action:none;user-select:none;cursor:pointer}.clue-surface .word-token{cursor:pointer;position:relative;z-index:1;touch-action:none}.circle-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}.clue-surface.unlocked{touch-action:auto;user-select:auto}.clue-circled{border:2px solid #de7557!important;border-radius:50%!important;background:#fff2d3!important;color:#71422c!important}.inline-answer:disabled{background:#e4eae7;opacity:1;color:#6c817a;border:2px dashed #a6bbb3;cursor:help;font-size:13px}.activity-top{gap:14px;flex-wrap:wrap}.activity-top>.button{font-size:12px}.concept-card{max-height:none}.tense-card .clue-chips{margin-bottom:20px}.tense-card>.button:first-of-type{margin-top:auto}.station-link:hover,.race-set:hover{border-color:#248a88}.timeline-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.timeline-card{background:#fff;border:1px solid #dce7e1;border-radius:19px;padding:24px}.timeline-card h2{font-size:21px;line-height:1.3;min-height:57px;margin-bottom:12px}.timeline-card h2 small{display:block;color:#50747c;font-size:14px;margin-top:8px}.timeline-card>strong{font-size:14px;line-height:1.6;display:block;margin-top:15px}.timeline-card>p{font-size:13px;line-height:1.7;margin-bottom:0}.timeline-svg{width:100%;overflow:visible;margin:20px 0 5px}.timeline-svg text{font:8px Arial;fill:#697f86}.timeline-svg .ref-label{font-size:9px;fill:#586b70}.difference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:25px}.difference-card{background:white;border:1px solid #dce8e1;border-radius:18px;padding:25px}.difference-card h2{font-size:23px}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:14px}.comparison>div{background:#e9f5f2;padding:17px;border-radius:12px}.comparison>div+div{background:#fff0da}.comparison b{font-size:13px;color:#17636b}.comparison p,.difference-card>p{font-size:14px;line-height:1.8;margin:10px 0 0}.mixed-hero{padding:35px 40px;background:#163d4a;color:#fff;border-radius:24px}.mixed-hero .eyebrow{color:#b5e9d3}.mixed-hero h1{font-size:clamp(30px,4vw,46px);margin:12px 0}.mixed-hero p{color:#c7dce0}.mixed-hero .clue-chips{margin-top:22px}.match-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px}.match-intro p{font-size:14px;line-height:1.7;margin-bottom:0}.race-set-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.race-set{position:relative;background:white;border:1px solid #dce7e1;border-radius:19px;padding:26px;overflow:hidden}.race-set h3{font-size:24px;margin:16px 0 8px;padding-right:12px}.race-set p{color:#5b7b83;font-size:14px;margin-bottom:23px}.set-number{position:absolute;right:12px;bottom:10px;color:#edf3f0;font:900 78px Nunito;pointer-events:none}.race-set .button{position:relative}.game-heading h1{font-size:clamp(28px,3vw,42px);margin:12px 0}.game-heading p{line-height:1.8;font-size:14px}.game-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:15px;margin:18px 0}.game-toolbar label{display:flex;align-items:center;gap:8px;white-space:nowrap}.game-toolbar select{width:auto;margin:0;max-width:150px}.game-toolbar b,.game-toolbar strong,.game-toolbar span{font-size:13px}.game-feedback{background:#e9f3ee;border-radius:12px;min-height:58px;padding:16px;color:#285969;font-size:14px;line-height:1.7;margin:16px 0}.game-review{text-align:left;max-height:420px;overflow:auto;padding:15px;margin:24px 0;background:#f3f7f2;border-radius:15px}.game-review p{margin:8px 0!important;font-size:13px!important}.game-review details{padding:13px;border-bottom:1px solid #d8e6df;font-size:14px;line-height:1.7}.game-review summary{cursor:pointer;font-weight:800}.game-pause-cover{position:absolute;inset:38px 14px auto;background:#173e49e6;color:white;text-align:center;padding:18px;border-radius:15px;z-index:12;font-size:14px}.game-pause-cover[hidden],.race-pause[hidden]{display:none}.timing-world{position:relative;height:395px;border-radius:18px;border:2px solid #cae3e2;overflow:hidden;background:linear-gradient(#d9f1f7,#eef8f2 70%,#ede3c9 70%);isolation:isolate}.timing-cloud{position:absolute;width:124px;min-height:64px;background:#fff;border:2px solid #abd5dc;border-radius:45px;padding:10px 9px;font-size:12px;line-height:1.35;font-weight:800;color:#234857;box-shadow:0 5px 0 #adcdd24d;touch-action:manipulation;z-index:3}.timing-cloud:before{content:'';position:absolute;width:45px;height:25px;left:25px;top:-13px;border-radius:50%;background:white;z-index:-1;border-top:2px solid #abd5dc}.timing-cloud:disabled{opacity:.85}.timing-cloud.popped{opacity:0}.timing-cloud:hover:not(:disabled){border-color:#df785c}.moving-train{position:absolute;bottom:23px;display:flex;align-items:end;height:75px;will-change:left}.moving-train img{width:84px;height:68px;object-fit:contain}.catch-car{height:75px;flex-shrink:0;background:#f6b36c;border:4px solid #235563;border-top:6px solid #e26f49;border-radius:4px 4px 15px 15px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:5px;text-align:center}.catch-car strong{font-size:12px;line-height:1.3}.catch-car small{font-size:8px;margin-top:6px}.catch-car:before,.catch-car:after{content:'';position:absolute;bottom:-14px;width:21px;height:21px;border-radius:50%;border:4px solid #94a5a3;background:#203e48}.catch-car:before{left:17px}.catch-car:after{right:17px}.coupling{width:24px;flex-shrink:0;border-top:4px solid #5b655e;margin-bottom:22px}.catch-line{position:absolute;bottom:96px;left:0;right:0;border-top:1px dashed #71998866}.dropped-word{position:absolute;transform:translate(-50%,-50%);padding:7px 10px;border-radius:10px;background:#ffdf80;border:2px solid #daa552;font-size:12px;font-weight:900;z-index:5;white-space:nowrap;pointer-events:none}.timing-train>p{font-size:14px;line-height:1.8}.check-label input{width:20px;min-height:20px;margin:0}.match-board{display:grid;grid-template-columns:minmax(240px,.75fr) 1.6fr;gap:28px;align-items:start;background:#e9f1ea;border-radius:23px;padding:28px}.match-card{width:100%;min-height:230px;background:#fff1cf;border:3px dashed #d5ab59;border-radius:20px;padding:25px;display:flex;flex-direction:column;justify-content:center;gap:18px;color:#4f452a;touch-action:none;position:relative;z-index:3}.match-card small{font-size:11px;text-transform:uppercase;letter-spacing:1px}.match-card b{font:900 29px Nunito}.match-card span{font-size:14px;line-height:1.7}.match-card.selected{border:3px solid #dc7954;box-shadow:0 0 0 4px #f4dfbb}.tense-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tense-target{min-height:83px;border:2px solid #d0e2db;background:white;border-radius:13px;padding:16px;text-align:left;color:#245467;touch-action:none;position:relative}.tense-target:hover{border-color:#27898a}.tense-target b{display:block;font-size:15px}.tense-target span{display:block;margin-top:7px;font-size:12px;color:#557b83}.dragging{z-index:40!important;box-shadow:0 12px 25px #183b4233;opacity:.9}.race-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(400px,1.3fr);gap:24px;align-items:start}.passage-panel{border:1px solid #dce7e1;border-radius:18px;padding:26px;background:#fff;max-height:760px;overflow:auto}.passage-panel h2{font-size:22px;margin:10px 0}.passage-panel p{font-size:14px;line-height:2.1}.passage-sentence.current{background:#fff0b5;box-shadow:0 0 0 3px #fff0b5;border-radius:3px}.passage-sentence b{color:#227783}.race-question{background:#fff7e1;border:1px solid #eddfb9;border-radius:14px;padding:20px;margin:12px 0}.race-question small{display:block;font-size:11px;color:#8d7550;margin-bottom:11px}.race-question strong{display:block;font:800 19px/1.8 Nunito,Arial,sans-serif}.race-blank{color:#b65f3b}.race-road{position:relative;height:355px;overflow:hidden;border-radius:17px;background:#24444b;border:6px solid #7c9990;touch-action:none;--road-shift:0px}.lane-lines{position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 37px,#d5e4dc 37px 62px,transparent 62px 72px),repeating-linear-gradient(180deg,transparent 0 37px,#d5e4dc 37px 62px,transparent 62px 72px);background-size:3px 72px;background-repeat:repeat-y;background-position:33.33% var(--road-shift),66.66% var(--road-shift);opacity:.45}.race-options{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;background:#16353f;padding:9px;z-index:5}.race-options button{min-height:75px;border:2px solid #71999a;border-radius:9px;background:#e9f3e9;color:#19444d;padding:8px 4px;overflow-wrap:anywhere}.race-options small{display:block;font-size:9px;color:#54777b;margin-bottom:6px}.race-options b{font:900 15px/1.35 Nunito}.race-options .selected{background:#ffe6a0;border-color:#f0a45a}.race-gate{position:absolute;left:0;right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 12px;pointer-events:none}.race-gate span{display:flex;align-items:center;justify-content:center;min-height:40px;border-radius:9px;background:#f1f4e8;color:#274e53;font-size:12px;text-align:center;padding:5px;overflow-wrap:anywhere;box-shadow:0 3px 0 #142f37}.race-car{position:absolute;bottom:29px;transform:translateX(-50%) rotate(0deg);font-size:44px;line-height:1;width:56px;text-align:center;z-index:3;cursor:grab;touch-action:none;transition:left .1s}.finish-line{position:absolute;left:0;right:0;bottom:24px;height:7px;background:repeating-linear-gradient(90deg,#fff9dc 0 15px,#183d44 15px 30px);opacity:.7}.race-controls{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:14px}.race-controls .button{font-size:12px}.race-pause{position:absolute;inset:105px 20px auto;padding:25px;background:#102e38eb;color:white;text-align:center;border-radius:13px;z-index:8}.finish-card>.button{margin:8px}.race-set .eyebrow{font-size:10px}.plain-header h1{font-size:clamp(30px,4vw,44px)}
@media(max-width:1100px){.timeline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.race-layout{grid-template-columns:1fr}.passage-panel{max-height:260px}.race-set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.race-road{max-width:780px}.station-link{padding:20px}.station-link b{font-size:20px}}
@media(max-width:700px){.station-links,.difference-grid,.timeline-grid{grid-template-columns:1fr}.station-link{padding:20px}.timeline-card h2{min-height:0}.timeline-svg{max-height:120px}.mixed-hero{padding:28px 24px}.match-intro{align-items:start;flex-direction:column}.race-set-grid{grid-template-columns:1fr}.match-board{grid-template-columns:1fr;padding:17px;gap:18px}.match-card{min-height:150px;padding:17px;gap:12px}.match-card b{font-size:25px}.tense-target{min-height:75px;padding:12px}.tense-target b{font-size:12px}.tense-target span{font-size:11px}.game-toolbar{gap:10px}.game-toolbar .button{padding:9px 12px}.game-toolbar select{max-width:129px}.comparison{grid-template-columns:1fr}.timing-cloud{width:112px;font-size:11px}.timing-world{height:380px}.timing-train{padding:21px 15px}.catch-car strong{font-size:11px}.game-heading h1{font-size:30px}.race-options b{font-size:12px}.race-controls .button{padding:8px 11px;font-size:11px}.race-gate{gap:6px;padding:0 6px}.race-gate span{font-size:10px}.race-question strong{font-size:18px}.passage-panel{padding:20px}.clue-instructions{font-size:13px}.clue-surface{padding:18px 13px}.word-token{padding-left:3px;padding-right:3px}.race-road{height:350px}.activity-top>.eyebrow{font-size:10px}.inline-answer{max-width:138px}}
@media(prefers-reduced-motion:reduce){.race-car{transition:none}.station-link,.race-set{transition:none}}
.race-car img{display:block;width:44px;height:66px;margin:auto;pointer-events:none}.race-car{width:60px;height:66px}
.timing-world{overflow:clip}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
@media(max-width:760px){.lesson-layout #activityMount{order:0}.lesson-layout .concept-card{order:1}}

.train-bonus-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin:7px 0;border:1px solid #d5e5d9;border-radius:12px;background:#f4fbf5}.train-bonus-row b{color:#205c46}.train-bonus-row span{flex:1;min-width:120px}.train-bonus-row button{border:1px solid #88c6a0;border-radius:9px;padding:7px 10px;background:#e7f8ea;color:#14613b;font-weight:800}.train-bonus-row button:disabled{opacity:.7}
.train-practice-prompt{font-size:1.15rem;font-weight:800;color:#123746;background:#fff8df;border:2px solid #efcf70;border-radius:16px;padding:14px 18px;margin:12px 0 18px;line-height:1.5}
