@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#203c36;background:#f6f5ef;font-synthesis:none;--green:#193c36;--lime:#dceba8;--muted:#64766f;--line:#dce2d9;--white:#fffef9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #4b8b75;outline-offset:4px}button{border:0;background:transparent}a{color:#275c4e}button,.primary,.secondary{transition:background .18s,transform .18s}.site-header{max-width:1300px;margin:auto;padding:28px 48px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;text-align:left;gap:12px;padding:0;font-size:20px;line-height:1.1;font-weight:700}.brand-mark{font:800 38px Manrope,sans-serif;background:var(--green);color:var(--lime);height:52px;width:52px;border-radius:15px;text-align:center;line-height:50px}.brand-small{display:block;font-size:12px;font-weight:500;letter-spacing:.03em;margin-top:5px}.site-header nav{display:flex;gap:27px;margin-left:auto;align-items:center}.site-header nav button{font-size:13px;font-weight:600;padding:10px 0;color:#6a7771;white-space:nowrap}.site-header nav button.active{color:var(--green);box-shadow:0 2px var(--green)}main{max-width:1204px;margin:0 auto;padding:0 0 64px;outline:none}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{font-size:clamp(34px,4vw,54px);font-weight:600;letter-spacing:-2.3px;line-height:1.13;margin:22px 0}h2{font-weight:600;letter-spacing:-.65px}p{line-height:1.65}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:75px;padding:65px 0 60px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0;color:#5b7267;text-transform:uppercase}.eyebrow span{padding:0 7px}.lede{font-size:16px;max-width:500px;color:var(--muted)}.skills{display:flex;gap:21px;font-size:12px;color:#456153;margin:28px 0}.skills span{display:flex;align-items:center;gap:7px}.skills b{font-size:19px;font-weight:400}.placement-card{border-radius:24px;padding:30px;background:var(--green);color:#f5f7e8;box-shadow:0 15px 40px #223e3411}.placement-card h2{font-size:27px;line-height:1.25;max-width:280px;margin:23px 0 14px}.placement-card p{color:#baccbd;font-size:13px;line-height:1.7}.card-top{display:flex;align-items:center;gap:15px}.orb{border:1px solid #829681;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:22px}.small-label{font-size:9px;letter-spacing:1.7px;color:#c0cfb5}.mini-route{display:flex;align-items:center;margin:24px 0 28px;font-size:10px;color:#d5e4ca}.mini-route i{height:1px;flex:1;background:#667d67;margin:0 8px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:15px;border-radius:9px;padding:13px 20px;font-size:13px;font-weight:600;line-height:1.4;min-height:44px}.primary{background:var(--green);color:#f7f9ed}.primary:hover{background:#2d5345}.placement-card .primary{background:var(--lime);color:var(--green);width:100%;justify-content:space-between}.placement-card .primary:hover{background:#e9f4c9}.secondary{border:1px solid #bac8bc;background:transparent}.secondary:hover{background:#e7eddf}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 25px;gap:20px}.section-head h2{font-size:23px;margin:0}.section-head>span{font-size:12px;color:var(--muted)}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.level-card{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:25px 26px 19px;transition:box-shadow .2s,border-color .2s}.level-card:hover{box-shadow:0 7px 20px #203c3608;border-color:#b5c6b5}.level-top{display:flex;justify-content:space-between;align-items:center}.level-number{font-size:10px;color:#7c8e80;font-weight:500}.bars{display:flex;gap:3px;align-items:end;height:16px}.bars i{height:12px;width:4px;background:#e4e9df;border-radius:1px}.bars i:nth-child(2){height:14px}.bars i:nth-child(3){height:16px}.bars i:nth-child(4){height:18px}.bars i:nth-child(5){height:20px}.bars i:nth-child(6){height:22px}.bars i.on{background:#779468}.level-card h3{font-size:16px;font-weight:500;margin:24px 0 9px;display:flex;align-items:center;gap:15px}.level-card h3 strong{font-size:34px;font-weight:600;letter-spacing:-1.5px}.level-card p{font-size:11px;color:var(--muted);margin:0}.level-card p span{padding:0 6px}.text-button{display:flex;width:100%;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:15px 0 0;font-size:12px;font-weight:600}.text-button span{font-size:20px;font-weight:400}.card-spacer{height:24px}.status-pill{font-size:10px;background:#edf3e6;color:#416d47;border-radius:20px;padding:3px 9px;display:inline-block;margin:9px 0}.history-section{margin-top:45px}.history-list{border:1px solid var(--line);border-radius:14px;background:var(--white);padding:0 24px}.history-row{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);gap:15px;align-items:center}.history-row:last-child{border:0}.history-row strong{font-size:13px}.history-row span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.history-row button{font-size:12px}.subtle{color:var(--muted);font-size:12px;padding:8px}.muted{color:var(--muted);font-size:13px}footer{border-top:1px solid var(--line);padding:25px 48px;max-width:1300px;margin:auto;color:#6d7c70;font-size:11px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}footer p{width:100%;margin:0;font-size:10px}footer button{font-size:11px}.quiz-top{display:flex;justify-content:space-between;align-items:center;padding:30px 0 20px;font-size:12px;color:var(--muted);gap:15px}.progress-track{height:4px;background:#e0e6d9;border-radius:4px;overflow:hidden}.progress-track>div{height:100%;background:#5e8258;transition:width .2s}.quiz-layout{display:grid;grid-template-columns:190px 1fr;gap:50px;padding-top:35px}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:20px}.question-grid button{border:1px solid var(--line);border-radius:7px;font-size:10px;aspect-ratio:1;background:var(--white)}.question-grid button.done{background:#dfebd2;border-color:#b0c7a2}.question-grid button.current{background:var(--green);border-color:var(--green);color:white}.sidebar-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:20px}.sidebar-note strong{font-size:24px;color:var(--green);font-family:Manrope,sans-serif;font-weight:500}.question-panel{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:32px 38px;min-width:0}.question-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:25px}.skill-label{font-size:12px;color:#537346;font-weight:600}.question-meta>span:last-child{margin-left:auto}.question-prompt{font-size:23px;line-height:1.5;letter-spacing:-.35px;margin:20px 0 24px}.passage{padding:24px;border-left:3px solid #9bb179;background:#f3f5ed;white-space:pre-wrap;font-size:15px;line-height:1.85;color:#374c40;margin:20px 0 26px}.choices{padding:0;margin:0;border:0;display:grid;gap:12px}.choice{position:relative;display:flex;gap:15px;align-items:center;border:1px solid var(--line);padding:15px;border-radius:10px;font-size:14px;line-height:1.6;cursor:pointer}.choice:hover{background:#f4f7ee}.choice.selected{background:#edf4e4;border-color:#7b9b67}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice:focus-within{outline:3px solid #4b8b75;outline-offset:3px}.choice-letter{border:1px solid #d1dcca;border-radius:7px;min-width:28px;height:29px;display:grid;place-items:center;font-size:11px}.choice.selected .choice-letter{background:var(--green);color:#fff;border-color:var(--green)}.quiz-actions{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.audio-panel{display:flex;align-items:center;gap:22px;border-radius:12px;background:#edf1e6;padding:20px}.audio-symbol{font-size:24px;letter-spacing:-3px;color:#779668}.audio-panel p{font-size:11px;color:var(--muted);margin:10px 0 0}.audio-panel button{font-size:12px;padding:9px 13px}.transcript-wrap{border-top:1px solid var(--line);margin-top:25px;padding-top:10px}.transcript-wrap p{font-size:13px}.assisted{color:#8b6022;background:#fbf3d9;padding:12px;border-radius:8px;font-size:12px}.error{font-size:13px;color:#a43e37}.response-label{display:block;font-size:12px;color:var(--muted);margin:15px 0 10px}textarea,input,select{color:var(--green)}textarea{display:block;width:100%;resize:vertical;border:1px solid #cbd7c5;background:white;border-radius:9px;padding:16px;font-size:15px;line-height:1.7}textarea:focus{border-color:#6a9162}.response-hint{font-size:11px;color:var(--muted)}.rubric{font-size:12px;margin-top:20px;color:var(--muted)}.rubric summary{cursor:pointer}.rubric li{line-height:1.8}.record-panel{border:1px dashed #b2c3a3;padding:25px;border-radius:13px}.record-panel p{font-size:12px;color:var(--muted)}.record-panel #record-status{font-size:12px;margin-left:15px}audio{max-width:100%;display:block;margin:15px 0;width:100%}.result-hero{padding:50px 0 20px}.result-metrics{display:flex;align-items:center;gap:32px;margin:30px 0}.score-ring{height:135px;width:135px;flex-shrink:0;border-radius:50%;border:8px solid #dce8cb;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-ring strong{font-size:32px;font-family:Manrope,sans-serif;font-weight:500}.score-ring span{font-size:9px;color:var(--muted)}.result-metrics h2{margin:0;font-size:25px}.result-metrics p{font-size:12px;margin:8px 0;color:var(--muted)}.recommendation{padding:28px 32px;border-radius:16px;background:var(--green);color:#f2f7e9;margin-bottom:25px}.recommendation .eyebrow{color:#b8cba6}.recommendation h2{font-size:27px}.recommendation p{font-size:13px;color:#c4d2be}.level-evidence{display:flex;gap:13px;flex-wrap:wrap}.level-evidence span{font-size:10px;color:#ccd9c4}.level-evidence b{margin-right:5px}.section-results{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.section-results article{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:22px}.section-results h3{font-size:21px;margin:16px 0 5px}.section-results p{font-size:11px;color:var(--muted);margin:5px 0}.export-panel{display:flex;gap:30px;justify-content:space-between;align-items:center;background:#e9eddf;border-radius:15px;margin:30px 0;padding:25px 30px}.export-panel h2{font-size:19px;margin:0}.export-panel p{font-size:12px;max-width:670px;color:var(--muted)}.button-stack{display:grid;gap:10px;flex-shrink:0}.upload-button{cursor:pointer}.review-section{margin:35px 0}.review-section h2{font-size:22px}.answer-review{border-bottom:1px solid var(--line)}.answer-review summary{display:flex;gap:15px;align-items:center;padding:20px 0;cursor:pointer;font-size:12px;list-style:none}.answer-review summary small{display:block;font-size:13px;font-weight:500;margin-top:7px;line-height:1.5}.answer-status{display:grid;place-items:center;height:26px;min-width:26px;border-radius:50%;font-size:14px}.yes{background:#dcebcf;color:#3d682c}.no{background:#f3dfd6;color:#964c33}.neutral{background:#e8e8df;color:#77806b}.answer-body{padding:0 35px 20px;font-size:13px;line-height:1.8}.answer-body .passage{font-size:13px}.teacher-feedback{background:#e8f1dc;padding:18px;border-radius:10px}.page-heading{padding:55px 0 30px}.page-heading p{max-width:730px;color:var(--muted);font-size:14px}.page-heading .primary{margin-top:15px}.filters{display:flex;gap:15px;margin:10px 0 30px}.filters input,.filters select{padding:13px;border:1px solid #cfd8c8;background:var(--white);border-radius:8px;font-size:12px}.filters input{flex:1}.word-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.word-card{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:22px}.word-card>div{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.word-card h3{font-size:20px;margin:19px 0 10px}.word-card p{font-size:13px}.word-card small{font-size:9px;color:var(--muted)}.teacher-item{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:30px;margin:25px 0}.teacher-item h2{font-size:20px;line-height:1.5}.teacher-item label{display:block;font-size:12px;margin:20px 0}.teacher-item select{display:block;margin-top:9px;padding:10px 24px;border:1px solid var(--line);border-radius:8px;background:transparent}.teacher-item textarea{margin-top:9px}.teacher-item ul{font-size:13px;line-height:1.8}.ai-draft{background:#fff3d5;border-radius:10px;padding:20px;font-size:13px}.sources article{border-bottom:1px solid var(--line);padding:20px 0}.sources h2{font-size:19px}.sources p{font-size:13px}.sources a{font-size:12px;overflow-wrap:anywhere}.loading{padding:80px;font-size:18px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--green);color:#fff;border:1px solid #739574;box-shadow:0 4px 25px #0002;padding:14px 20px;border-radius:10px;font-size:13px;max-width:90vw;opacity:0;pointer-events:none;transition:all .2s;z-index:100}#toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-100px;left:10px;z-index:101;background:white;padding:10px}.skip:focus{top:10px}
@media(min-width:1400px){main{max-width:1204px}}@media(max-width:1300px){main{margin:0 48px}.hero{gap:45px}.site-header{padding:25px 48px}}@media(max-width:1000px){.site-header{gap:15px}.site-header nav{gap:15px}.site-header nav button{font-size:11px}.hero{gap:30px;grid-template-columns:1.1fr 1fr}.skills{gap:12px}.placement-card{padding:24px}.quiz-layout{grid-template-columns:140px 1fr;gap:25px}.question-panel{padding:25px}.level-card h3{gap:10px;font-size:13px}.level-card{padding:22px 20px}.word-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){main{margin:0 23px}.site-header{padding:18px 23px;flex-wrap:wrap;gap:15px}.brand{font-size:17px}.brand-mark{height:43px;width:43px;font-size:31px;line-height:41px}.brand-small{font-size:10px}.site-header nav{order:3;flex-basis:100%;margin:0;justify-content:space-between;gap:12px}.site-header nav button{font-size:11px}.locale{margin-left:auto}.hero{grid-template-columns:1fr;padding:35px 0 40px;gap:25px}h1{font-size:39px;letter-spacing:-1.6px}.lede{font-size:14px}.skills{gap:18px;font-size:11px;margin:20px 0}.placement-card{padding:25px}.placement-card h2{max-width:100%;font-size:25px}.placement-card p{font-size:12px}.mini-route{margin:20px 0}.level-grid{grid-template-columns:repeat(2,1fr);gap:12px}.level-card{padding:20px 17px 17px}.level-card h3{display:block;font-size:12px;min-height:75px;margin:18px 0 10px;line-height:1.5}.level-card h3 strong{display:block;font-size:31px}.level-card p{font-size:10px}.level-card p span{padding:0 3px}.text-button{font-size:11px}.section-head{align-items:flex-start;gap:10px}.section-head h2{font-size:20px}.section-head>span{font-size:10px;text-align:right;line-height:1.6}.history-list{padding:0 17px}.history-row strong{font-size:12px}.history-row span{font-size:10px}.history-row button{font-size:11px}.quiz-layout{display:block;padding-top:20px}.quiz-sidebar{display:none}.quiz-top{font-size:10px;padding:20px 0;gap:9px}.quiz-top .subtle{padding:0;font-size:10px}.question-panel{padding:22px 18px;border-radius:12px}.question-meta{gap:12px;font-size:10px}.question-prompt{font-size:19px}.passage{padding:17px;font-size:14px}.choice{padding:12px;gap:10px;font-size:13px}.audio-panel{gap:12px;padding:14px}.audio-symbol{display:none}.audio-panel p{font-size:10px}.quiz-actions .primary,.quiz-actions .secondary{font-size:11px;padding:11px 12px;gap:7px}.quiz-actions{gap:10px}.section-results{grid-template-columns:repeat(2,1fr)}.section-results article{padding:18px}.export-panel{display:block;padding:23px}.button-stack{margin-top:18px}.result-hero{padding-top:35px}.result-metrics{gap:20px}.score-ring{height:110px;width:110px;border-width:6px}.score-ring strong{font-size:28px}.result-metrics h2{font-size:20px}.recommendation{padding:23px}.recommendation h2{font-size:22px}.filters{flex-wrap:wrap;gap:10px}.filters input{flex-basis:100%}.filters select{flex:1;max-width:50%}.word-grid{gap:10px}.word-card{padding:17px}.word-card h3{font-size:17px}.word-card p{font-size:12px}.page-heading{padding-top:35px}.teacher-item{padding:22px 18px}.answer-body{padding:0 0 20px 10px}.answer-review summary small{font-size:12px}.record-panel{padding:20px}.record-panel #record-status{display:block;margin:12px 0}footer{padding:25px 23px;font-size:10px}.loading{padding:35px}}
.skill-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-5px 0 24px}.skill-tabs button{border:1px solid var(--line);border-radius:20px;padding:9px 16px;font-size:11px;background:var(--white)}.skill-tabs button[aria-pressed=true]{background:var(--green);color:var(--white);border-color:var(--green)}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Keep selecting an answer and hearing it as separate, compact actions. */
.choice-row{display:flex;align-items:stretch;gap:8px;min-width:0}.choice-row .choice{flex:1;min-width:0}.choice-row .choice>span:last-child{overflow-wrap:anywhere}.choice-audio{flex:0 0 44px;align-self:center;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--green);cursor:pointer;font-size:13px}.choice-audio:hover{background:#edf4e4}.choice-audio[aria-pressed=true]{background:var(--green);color:white}.choice-audio:focus-visible,.audio-toggle:focus-visible{outline:3px solid #4b8b75;outline-offset:3px}.audio-panel{display:flex;align-items:center;gap:14px;padding:0;margin:24px 0;background:transparent;border:0}.audio-caption{color:var(--muted);font-size:12px}.audio-toggle{min-width:108px;justify-content:center}.audio-status{color:#8b3c2b;font-size:12px;line-height:1.5;margin:10px 0 0}.audio-status:empty{display:none}.content-update{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 16px;margin-top:18px;background:#edf4e4;border-radius:8px;font-size:12px}.content-update .text-button{border:0;padding:0;white-space:nowrap}.question-meta{justify-content:space-between}.question-meta .skill-label{margin-right:auto}@media(max-width:760px){.choice-row{gap:7px}.choice-row .choice{padding:10px;gap:8px}.choice-letter{min-width:25px;height:27px}.choice-audio{flex-basis:40px;height:40px}.content-update{align-items:flex-start;flex-direction:column;gap:9px}.audio-panel{margin:20px 0}.audio-caption{font-size:11px}}

.edit-question{font-size:11px;padding:4px 8px;white-space:nowrap}.question-meta .edit-question{margin-left:5px}.transfer-steps{padding-left:19px;font-size:12px;line-height:1.8;max-width:660px}.transfer-steps li{padding:3px 0 3px 5px}.teacher-steps{margin:22px 0 26px}.question-editor{width:min(720px,calc(100vw - 28px));max-height:88vh;border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--paper,#f8f7f1);color:var(--green);box-shadow:0 24px 90px #0004}.question-editor::backdrop{background:#102b2699}.question-editor header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.question-editor h2{font-size:25px;margin:6px 0 14px}.question-editor .muted,.editor-help{font-size:12px;line-height:1.6}.editor-close{font-size:27px;padding:0}.editor-field{display:block;font-size:12px;font-weight:600;margin:19px 0}.question-editor textarea{display:block;box-sizing:border-box;width:100%;font-size:14px;line-height:1.5;margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fffef9;color:var(--green);font-family:inherit;resize:vertical}.question-editor fieldset{border:0;padding:0;margin:20px 0}.question-editor legend{font-size:12px;font-weight:600;margin-bottom:8px}.editor-choice{display:flex;align-items:center;gap:12px;margin:9px 0}.editor-choice>label{display:flex;align-items:center;gap:6px;font-size:12px}.editor-choice textarea{margin:0;flex:1}.question-editor footer{padding:18px 0 0;display:flex;align-items:center;justify-content:space-between;border:0;margin:0;gap:10px}.question-editor .editor-message{font-size:13px;line-height:1.6;min-height:20px}.editor-try{margin-top:18px}.question-editor [hidden]{display:none}.editor-reset{font-size:12px}@media(max-width:760px){.question-editor{padding:20px}.question-meta{gap:9px}.edit-question{padding:3px 4px}.transfer-steps{font-size:11px}.question-editor footer{flex-wrap:wrap}.question-editor .primary{font-size:12px}}

.word-card .word-title{display:flex;align-items:center;gap:12px;margin:16px 0 8px;color:var(--green)}.word-card .word-title h3{margin:0;flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.35}.word-audio{flex:0 0 44px;height:44px}.word-card p{line-height:1.5}.word-card small{overflow-wrap:anywhere}#word-audio-status:not(:empty){margin:-10px 0 20px}@media(max-width:480px){.word-grid{grid-template-columns:1fr}}
/* Vocabulary expansion and focused typing practice. */
.typing-home-callout{display:flex;align-items:center;justify-content:space-between;gap:28px;background:#e8eddd;border:1px solid #d7e1c9;border-radius:18px;padding:28px 32px;margin-top:32px}.typing-home-callout h2{margin:12px 0;font-size:25px}.typing-home-callout p{max-width:650px;font-size:13px;color:var(--muted)}.typing-home-callout .primary{flex-shrink:0}.word-filters{flex-wrap:wrap}.word-filters select{max-width:100%}.word-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}.word-card>div:first-child{flex-wrap:wrap;gap:8px}.word-card .word-example{font-size:13px;border-top:1px solid var(--line);padding-top:12px;color:var(--green)}.word-card .word-example-translation{font-size:12px;color:var(--muted)}.word-card .text-button{margin-top:16px}.word-pagination{display:flex;justify-content:center;align-items:center;gap:25px;margin:30px 0}.word-pagination span{font-size:13px}.typing-dashboard{display:grid;grid-template-columns:2fr 1fr;gap:24px}.typing-setup h2{font-size:20px;margin-top:0}.typing-modes{display:flex;gap:9px;flex-wrap:wrap}.typing-modes [aria-pressed=true]{background:var(--green);color:white}.typing-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 18px}.typing-filters label,.typing-length{display:flex;flex-direction:column;font-size:12px;gap:8px}.typing-filters select,.typing-length select,.feedback-control select{padding:12px;border:1px solid #bccab8;border-radius:8px;background:var(--white);min-width:0;width:100%;font-size:13px}.typing-length{max-width:260px}.typing-goal{border-radius:18px;background:var(--green);color:#f5f7e8;padding:30px}.typing-goal .eyebrow{color:#c5d8b5}.typing-goal h2{font-size:52px;letter-spacing:-2px}.typing-goal h2 span{font-size:15px;letter-spacing:0;font-family:inherit}.typing-goal .muted{color:#d1ddca}.typing-goal .progress-track{background:#425f4c}.typing-goal .progress-track>div{background:var(--lime)}.typing-workspace{max-width:900px;margin:28px auto 0}.typing-card-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.feedback-control{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.feedback-control select{width:auto}.typing-target{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(22px,3vw,30px);line-height:1.8;background:#f1f4ea;border-radius:12px;padding:20px;margin:20px 0;color:#6d7b70;letter-spacing:1px}.typing-target .correct{color:#265f36;background:#dceecf}.typing-target .wrong{color:#a02c2c;background:#ffdfdb;text-decoration:underline wavy}.typing-target .cursor{border-bottom:3px solid #193c36}.typing-metrics{display:flex;gap:40px;flex-wrap:wrap;margin:24px 0 10px}.typing-metrics span{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.typing-metrics b{font-size:28px;color:var(--green);font-weight:500;font-variant-numeric:tabular-nums}.typing-keyboard{max-width:580px;margin:24px auto;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f7f8f2}.typing-keyboard>div{display:flex;justify-content:center;gap:5px;margin:5px 0}.typing-keyboard span{display:grid;place-items:center;background:white;border:1px solid #cbd7c4;border-bottom-width:3px;border-radius:5px;min-width:0;width:42px;height:37px;font-size:12px}.typing-keyboard span.next-key{background:var(--lime);border-color:#789753;color:var(--green);font-weight:700;box-shadow:0 0 0 2px #4b8b75}.typing-keyboard .space-key{width:220px}.typing-feedback{border-radius:12px;padding:20px;margin-top:25px;border:1px solid #dbca9c;background:#fbf5e4}.typing-feedback h3{font-size:18px;margin:0 0 10px}.typing-feedback p{font-size:14px;overflow-wrap:anywhere}.typing-feedback.is-correct{border-color:#aac98e;background:#edf5e1}.typing-context{border-left:3px solid #9bb179;padding-left:20px}.typing-listen{display:flex;align-items:center;gap:24px;background:#edf1e6;border-radius:12px;padding:10px 22px;margin:20px 0}.typing-listen>span{font-size:48px}.typing-summary{max-width:850px;margin:auto}.typing-workspace textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.typing-workspace [hidden]{display:none!important}.typing-workspace .quiz-actions{flex-wrap:wrap}.typing-summary .history-list{padding:0}.typing-summary .history-row{flex-wrap:wrap}.site-header nav{gap:18px}
@media(max-width:800px){.typing-dashboard{grid-template-columns:1fr}.typing-goal h2{font-size:38px;margin:15px 0}.typing-home-callout{align-items:flex-start;flex-direction:column}.typing-workspace{padding:24px}.typing-filters{grid-template-columns:1fr}.typing-card-head{align-items:flex-start;flex-direction:column}.typing-metrics{gap:24px}.site-header nav{gap:18px;overflow-x:auto;max-width:100%;}.feedback-control{flex-wrap:wrap}.word-toolbar{align-items:flex-start;flex-direction:column}.review-section .section-head{flex-wrap:wrap}}
@media(max-width:480px){.typing-workspace{padding:20px 15px}.typing-keyboard{padding:8px 2px}.typing-keyboard>div{gap:3px}.typing-keyboard span{font-size:10px;height:30px}.typing-setup{padding:24px}.typing-modes{flex-direction:column}.typing-home-callout{padding:24px}.typing-target{padding:12px}.typing-metrics{gap:20px}.typing-metrics b{font-size:24px}.word-filters input,.word-filters select{width:100%}}
.typing-search-label{grid-column:1/-1}.typing-filters input{min-width:0;width:100%;border:1px solid #bccab8;background:var(--white);border-radius:8px;padding:12px}

/* Portfolio mark and shared SVG language controls. */
.brand-mark{display:grid;place-items:center;flex-shrink:0;line-height:1}
.brand-mark svg{width:34px;height:40px;display:block}
.language-picker{position:relative;display:inline-block;flex-shrink:0;line-height:1.2}
.language-trigger,.language-menu button{display:flex;align-items:center;gap:10px;min-height:40px;font-size:12px;font-weight:600}
.language-trigger{padding:9px 12px;border:1px solid #cbd7ce;border-radius:22px;background:var(--white);color:var(--green)}
.language-trigger:hover,.language-trigger[aria-expanded="true"]{background:#eaf0e3;border-color:#8fa894}
.language-selected{display:flex;align-items:center;gap:8px}
.language-flag{display:block;width:24px;height:18px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px #193c361c}
.language-chevron{margin-left:1px;transition:transform .15s}
.language-trigger[aria-expanded="true"] .language-chevron{transform:rotate(180deg)}
.language-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:114px;padding:5px;z-index:30;border:1px solid var(--line);border-radius:13px;background:var(--white);box-shadow:0 10px 30px #193c3620}
.language-menu[hidden]{display:none}
.language-menu button{width:100%;padding:9px 8px;border-radius:8px;white-space:nowrap;text-align:left}
.language-menu button:hover,.language-menu button:focus-visible{background:#eaf0e3}
.language-menu button:focus-visible{outline-offset:0;outline-width:2px}
.language-check{margin-left:auto;visibility:hidden}
.language-menu [aria-checked="true"] .language-check{visibility:visible}
@media(max-width:760px){.brand-mark svg{width:29px;height:34px}}
/* Four-skill practice and timed challenges. */
.skill-icon{width:23px;height:23px;display:inline-block;flex-shrink:0;vertical-align:middle}
.skills{gap:22px;flex-wrap:wrap}.skills .skill-icon{width:24px;height:24px}.skill-label{display:inline-flex;align-items:center;gap:8px}
.placement-card h2{margin-top:0}.activity-section{margin:40px 0 0}.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.activity-card{padding:27px;background:var(--white);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column}
.activity-icon{width:44px;height:44px;border-radius:13px;background:#eaf0df;color:var(--green);display:grid;place-items:center}.activity-icon .skill-icon{width:25px;height:25px}
.activity-card h3{font-size:19px;margin:21px 0 10px}.activity-card p{font-size:13px;color:var(--muted);margin:0 0 26px}.activity-card .text-button{margin-top:auto}
.activity-tabs{margin:0 0 24px;flex-wrap:wrap}.activity-tabs button{display:flex;align-items:center;gap:9px}.activity-tabs .skill-icon{width:19px;height:19px}
.activity-setup{max-width:950px;margin-bottom:30px}.activity-setup h2{margin-top:0}.activity-setup>p{max-width:800px}
.activity-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.activity-filters label{display:grid;gap:10px;font-size:12px;font-weight:600}
.activity-filters select{width:100%;min-height:44px;border:1px solid #bccab8;border-radius:8px;background:var(--white);padding:10px;font-size:13px}.activity-availability{font-size:12px;font-weight:600;color:#4f7559}
.mock-options{border:0;padding:0;margin:25px 0;display:grid;grid-template-columns:1fr 1fr;gap:16px}.mock-option{display:flex;gap:12px;border:1px solid var(--line);border-radius:12px;padding:20px;cursor:pointer}.mock-option.selected{border-color:#74986e;background:#eef4e5}.mock-option input{margin:3px 0 0;accent-color:var(--green)}.mock-option:focus-within{outline:3px solid #4b8b75;outline-offset:3px}.mock-option strong,.mock-option span span,.mock-option small{display:block}.mock-option strong{font-size:15px}.mock-option span span{font-size:12px;margin:9px 0}.mock-option small{font-size:11px;color:var(--muted);line-height:1.6}
.mock-sections{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:22px 0;margin:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:20px}.mock-sections li{display:flex;gap:10px;align-items:center}.mock-sections strong{font-size:12px;font-weight:600;display:block}.mock-sections small{display:block;font-size:10px;margin-top:7px;color:var(--muted)}.source-link{font-size:12px;display:inline-block;margin:10px 0 20px}
.simulation-clock{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:#eaf0e2;border:1px solid #d3dfc6;border-radius:10px;padding:14px 18px;font-size:12px;margin-bottom:18px}.simulation-clock strong{font-size:21px;font-variant-numeric:tabular-nums;margin-left:10px}.simulation-clock small{width:100%;color:var(--muted);font-size:10px}.simulation-clock .time-low{color:#a43e37}.section-break-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:25px}
@media(max-width:1000px){.site-header nav{gap:16px}.activity-card{padding:22px}.activity-grid{gap:13px}.activity-card h3{font-size:17px}.mock-sections{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.site-header nav{overflow-x:auto;justify-content:flex-start;gap:22px}.skills{gap:16px}.activity-grid{grid-template-columns:1fr}.activity-card h3{font-size:20px}.activity-filters{grid-template-columns:1fr}.mock-options{grid-template-columns:1fr}.activity-setup{padding:23px}.activity-tabs{gap:8px}.activity-tabs button{font-size:11px}}

@media(max-width:760px){.site-header nav{overflow:visible;flex-wrap:wrap;column-gap:20px;row-gap:2px}}

.section-confirm{padding:20px;background:#f2f5e9;border:1px solid #aebf98;border-radius:12px;margin-top:24px}.section-confirm p{font-size:13px;margin-top:0}.section-confirm>div{display:flex;gap:12px;flex-wrap:wrap}

/* Reserve the control space, revealing only the hovered/focused answer row.
   Touch users always see the controls; playback remains visible until stopped. */
@media (hover:hover) and (pointer:fine){
 .choice-row>.choice-audio{opacity:0;pointer-events:none;transition:opacity .15s,background .18s}
 .choice-row:hover>.choice-audio,.choice-row:focus-within>.choice-audio,.choice-row>.choice-audio[aria-pressed=true]{opacity:1;pointer-events:auto}
 .choice-row>.choice-audio:disabled{opacity:0}
 .choice-row:hover>.choice-audio:disabled,.choice-row:focus-within>.choice-audio:disabled{opacity:.4}
}
@media(prefers-reduced-motion:reduce){.choice-row>.choice-audio{transition:none}}

/* Keep playback inside the answer outline, as a sibling of the radio label. */
.choice-row{position:relative;gap:0}
.choice-row:has(>.choice-audio)>.choice{padding-right:72px;min-height:64px}
.choice-row>.choice-audio{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:44px;height:44px;margin:0}

/* Branded startup screen, present before the app module and account requests load. */
.boot-screen{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:32px;text-align:center}
.boot-brand{display:flex;align-items:center;gap:18px;text-align:left}
.boot-brand img{display:block;flex-shrink:0;width:72px;height:72px}
.boot-brand p{margin:0;font:700 28px/1.15 Manrope,system-ui,sans-serif;letter-spacing:-.6px}
.boot-brand p span{display:block;margin-top:7px;font:500 17px/1.2 'DM Sans',system-ui,sans-serif;letter-spacing:.02em}
.boot-progress{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;color:var(--muted)}
.boot-spinner{display:block;width:18px;height:18px;border:2px solid var(--line);border-top-color:#8faf78;border-radius:50%;animation:boot-spin .85s linear infinite}
html[lang=en] [data-boot-lang="pt-BR"],html:not([lang=en]) [data-boot-lang=en]{display:none}
@keyframes boot-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.boot-spinner{animation:none}}
