:root{--bg:#f7f8fc;--card:#fff;--ink:#121631;--muted:#667085;--line:#e6e8f0;--brand:#5b4cf0;--brand2:#7a5cff;--good:#138a5b;--warn:#b7791f;--bad:#c23b4a;--shadow:0 18px 50px rgba(31,35,64,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.container{max-width:1180px;margin:auto;padding:0 22px}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;font-size:21px;letter-spacing:-.02em}.brand span{color:var(--brand)}.navlinks{display:flex;gap:18px;align-items:center}.btn{border:0;border-radius:12px;padding:12px 17px;cursor:pointer;font-weight:700}.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:white}.btn-outline{background:white;border:1px solid var(--line)}.btn-ghost{background:transparent}.btn-danger{background:#fff0f1;color:var(--bad)}.hero{padding:70px 0 60px;display:grid;grid-template-columns:1.08fr .92fr;gap:38px;align-items:center}.eyebrow{display:inline-flex;padding:7px 11px;border-radius:999px;background:#eeeaff;color:#5645e7;font-weight:700;font-size:13px}.hero h1{font-size:58px;line-height:1.02;letter-spacing:-.045em;margin:18px 0}.hero p{font-size:20px;line-height:1.6;color:var(--muted);max-width:650px}.hero-actions{display:flex;gap:12px;margin-top:26px}.mock{background:#171a34;border-radius:24px;padding:18px;box-shadow:var(--shadow);color:white;transform:rotate(1deg)}.mock-inner{background:#fff;color:var(--ink);border-radius:16px;padding:18px}.score{font-size:46px;font-weight:800;letter-spacing:-.04em}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.mini{border:1px solid var(--line);padding:12px;border-radius:12px}.mini b{display:block;font-size:19px}.section{padding:58px 0}.section h2{font-size:38px;letter-spacing:-.03em;margin:0 0 12px}.sectionlead{color:var(--muted);font-size:18px;max-width:760px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 28px rgba(30,36,70,.04)}.card h3{margin:0 0 9px}.card p{color:var(--muted);line-height:1.55}.footer{padding:38px 0;color:var(--muted);border-top:1px solid var(--line);font-size:14px}.authwrap{min-height:100vh;display:grid;place-items:center;padding:30px}.authcard{width:min(460px,100%);background:white;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.authcard h1{margin:0 0 6px}.field{margin:15px 0}.field label{display:block;font-weight:700;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #d8dce8;border-radius:11px;background:white}.field textarea{min-height:140px;resize:vertical}.error{padding:10px 12px;background:#fff0f1;color:var(--bad);border-radius:10px;margin:10px 0;display:none}.success{padding:10px 12px;background:#edf9f4;color:var(--good);border-radius:10px;margin:10px 0}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#13162e;color:#eef0ff;padding:22px 16px;position:sticky;top:0;height:100vh}.sidebrand{font-size:20px;font-weight:800;padding:9px 10px 20px}.sidebrand span{color:#9c8cff}.sideitem{display:block;padding:12px 13px;border-radius:11px;color:#c8cce4;margin:3px 0}.sideitem:hover,.sideitem.active{background:#242848;color:white}.app-main{padding:26px 30px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.muted{color:var(--muted)}.dashgrid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.scorecard{background:linear-gradient(135deg,#5b4cf0,#8169ff);color:white;border-radius:20px;padding:24px}.scorecard .muted{color:#ddd8ff}.section-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.section-score{background:rgba(255,255,255,.12);padding:14px;border-radius:13px}.section-score b{display:block;font-size:24px}.task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.taskbtn{padding:16px;border:1px solid var(--line);background:white;border-radius:14px;text-align:left;cursor:pointer}.taskbtn:hover{border-color:#b9b1ff;box-shadow:0 8px 24px rgba(80,65,200,.08)}.pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#f1efff;color:#5a49e8}.practice-layout{display:grid;grid-template-columns:270px 1fr;gap:18px}.question{font-size:20px;line-height:1.55;margin:16px 0}.stimulus{background:#f6f7fb;border:1px solid var(--line);padding:17px;border-radius:13px;line-height:1.65;white-space:pre-wrap}.choices{display:grid;gap:10px}.choice{border:1px solid var(--line);padding:13px;border-radius:11px;cursor:pointer;background:white}.choice:hover{border-color:#a99eff}.choice.selected{border-color:var(--brand);background:#f4f1ff}.feedback{margin-top:16px;padding:16px;border-radius:13px;background:#f7f8fb;display:none}.feedback.good{background:#edf9f4}.feedback.bad{background:#fff3f4}.coach{background:#181b37;color:white;border-radius:18px;padding:20px}.coach .muted{color:#c7cbea}.metricrow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{background:white;border:1px solid var(--line);padding:15px;border-radius:13px}.metric strong{font-size:23px;display:block}.bars{display:grid;gap:11px;margin-top:15px}.barrow{display:grid;grid-template-columns:130px 1fr 42px;gap:10px;align-items:center}.bar{height:9px;background:#eceef5;border-radius:999px;overflow:hidden}.bar > span{display:block;height:100%;background:var(--brand);border-radius:999px}.pricing{display:grid;grid-template-columns:repeat(2,minmax(0,360px));justify-content:center;gap:20px;margin-top:28px}.price{font-size:42px;font-weight:800}.tag{font-size:12px;padding:5px 8px;border-radius:999px;background:#eef0f7;color:#47506a}.recording{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.55}}.hide{display:none!important}.mobilemenu{display:none}.legal{max-width:800px;margin:50px auto;padding:0 22px;line-height:1.7}.legal h1{font-size:40px}.legal h2{margin-top:28px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero h1{font-size:44px}.grid3{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;display:flex;overflow:auto}.sidebrand{min-width:max-content}.sideitem{min-width:max-content}.dashgrid,.practice-layout{grid-template-columns:1fr}.task-list{grid-template-columns:1fr}.section-scores,.metricrow{grid-template-columns:repeat(2,1fr)}.app-main{padding:20px}.navlinks a:not(.btn){display:none}.pricing{grid-template-columns:1fr}.mini-grid{grid-template-columns:repeat(2,1fr)}}
.testclock{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;background:#171a34;color:white;padding:10px 16px;border-radius:12px}.testclock.urgent{background:#8f2633}.testbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.testquestion{max-width:900px;margin:auto}.blueprint{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.blueprint span{background:#f6f7fb;border:1px solid var(--line);padding:12px;border-radius:12px}.blueprint b{display:block;margin-top:5px}@media(max-width:700px){.blueprint{grid-template-columns:repeat(2,1fr)}.testbar{align-items:flex-start;flex-direction:column}.testclock{font-size:24px}}
/* V5 mobile-first and device-security UX */
.device-list{display:grid;gap:10px;margin-top:16px}.device-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.device-row .muted{font-size:13px;margin-top:4px}
.mobile-exam-note{display:none;background:#fff7e8;border:1px solid #f1d49a;color:#76551c;padding:12px 14px;border-radius:12px;margin:0 0 14px}
@media(max-width:700px){
  body{padding-bottom:env(safe-area-inset-bottom)}.container{padding-left:16px;padding-right:16px}.app-main{padding:16px 14px 88px}.topbar{align-items:flex-start;gap:10px}.topbar h1{font-size:25px}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;z-index:40;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:flex;justify-content:flex-start;gap:3px;overflow-x:auto;border-top:1px solid #303557}.sidebrand{display:none}.sideitem{font-size:12px;padding:9px 10px;white-space:nowrap;text-align:center;min-width:auto}.card{padding:16px}.scorecard{padding:18px}.score{font-size:40px}.section-scores{grid-template-columns:repeat(2,1fr)}.metricrow{grid-template-columns:repeat(2,1fr)}.practice-layout{display:block}.practice-layout>aside{margin-bottom:12px}.question{font-size:18px}.stimulus{max-height:42vh;overflow:auto;-webkit-overflow-scrolling:touch}.choice{min-height:52px;padding:14px;font-size:16px}.btn{min-height:44px}.field textarea{min-height:160px;font-size:16px}.testquestion{width:100%}.testbar{position:sticky;top:0;z-index:20;background:var(--bg);padding:8px 0}.testclock{font-size:22px;padding:8px 12px}.mobile-exam-note{display:block}.device-row{align-items:flex-start;flex-direction:column}.device-row>div:last-child{width:100%;display:flex;justify-content:space-between;align-items:center}.hero{padding-top:38px}.hero h1{font-size:40px}.hero p{font-size:17px}.hero-actions{flex-direction:column}.hero-actions .btn{text-align:center;width:100%}
}
@media(max-width:420px){.section-scores,.metricrow,.mini-grid,.blueprint{grid-template-columns:1fr 1fr}.testclock{font-size:20px}.app-main{padding-left:12px;padding-right:12px}}

/* V10 AI Coach audio */
.coach-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.coach-listen{min-height:44px}.coach-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.ai-coach-card p{line-height:1.55}.ai-coach-card .pill{display:inline-block}@media(max-width:700px){.coach-head .btn,.coach-actions .btn{width:100%}}

.coach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.plan-row{display:grid;grid-template-columns:1.2fr .6fr;gap:6px 14px;padding:12px 0;border-bottom:1px solid #ddd}.plan-row small{grid-column:1/-1}.mastery-bar{height:9px;border-radius:999px;background:#e8e8e8;overflow:hidden;margin:10px 0}.mastery-bar span{display:block;height:100%;background:currentColor}@media(max-width:600px){.plan-row{grid-template-columns:1fr}.plan-row small{grid-column:auto}}

.sentence-builder{display:grid;gap:14px}.tile-pool,.sentence-dropzone{display:flex;flex-wrap:wrap;gap:10px;min-height:72px;padding:14px;border:2px dashed rgba(127,127,127,.35);border-radius:14px;align-items:center}.tile-pool{background:rgba(127,127,127,.05)}.sentence-dropzone{background:rgba(127,127,127,.025)}.sentence-tile{appearance:none;border:1px solid rgba(127,127,127,.35);border-radius:12px;padding:10px 14px;background:var(--card,#fff);color:inherit;font:inherit;font-weight:650;cursor:grab;box-shadow:0 2px 7px rgba(0,0,0,.06);touch-action:manipulation}.sentence-tile:active{cursor:grabbing}.sentence-tile.dragging{opacity:.45}.sentence-actions{display:flex;gap:10px;flex-wrap:wrap}.listen-repeat-card{text-align:center}.lr-status{font-weight:700;margin-top:16px}.lr-timer{font-size:2rem;font-variant-numeric:tabular-nums;margin-top:8px}@media(max-width:600px){.sentence-tile{width:100%;text-align:left}.tile-pool,.sentence-dropzone{align-items:stretch}}

.section-intro{padding:18px 0}.section-instruction-card{max-width:720px;margin:20px auto;padding:28px;border:1px solid rgba(127,127,127,.25);border-radius:18px;text-align:left}.instruction-icon{font-size:34px}.section-instruction-card h2{margin:10px 0}.section-instruction-card p{font-size:1.05rem;line-height:1.65}.instruction-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.complete-words-wrap{padding:20px 4px}.complete-words-instruction{text-align:center;font-size:1.1rem;font-weight:700;margin-bottom:28px}.complete-words-passage{font-size:1.18rem;line-height:2.05;max-width:900px;margin:0 auto}.partial-word{white-space:nowrap}.missing-letters{display:inline-block;min-width:2.5em;width:auto;border:0;border-bottom:3px solid rgba(127,127,127,.65);background:rgba(127,127,127,.13);border-radius:5px 5px 0 0;padding:2px 5px;margin:0 2px;font:inherit;font-weight:700;text-align:center;outline:none}.missing-letters:focus{border-bottom-color:currentColor;background:rgba(127,127,127,.2)}.complete-words-actions{text-align:center;margin-top:26px}
.auto-audio-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;margin-bottom:14px;border-radius:12px;background:rgba(127,127,127,.07);font-size:.92rem}
@media(max-width:600px){.complete-words-passage{font-size:1.05rem;line-height:1.9}.instruction-actions .btn{width:100%}.auto-audio-bar{align-items:flex-start;flex-direction:column}}
.setup-card{max-width:760px;margin:20px auto}.setup-card h2{font-size:1.55rem}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.setup-option{display:flex;gap:12px;border:1px solid rgba(127,127,127,.28);border-radius:12px;padding:16px;cursor:pointer}.setup-option:has(input:checked){outline:2px solid currentColor;background:rgba(127,127,127,.06)}.setup-option span{display:flex;flex-direction:column;gap:5px}.setup-option small{line-height:1.45}.setup-option em{font-style:normal;font-weight:700;font-size:.85rem}.setup-note{padding:13px;border-left:4px solid currentColor;background:rgba(127,127,127,.07);margin-bottom:18px}.task-table{width:100%;border-collapse:collapse;margin:20px 0}.task-table th,.task-table td{border:1px solid rgba(127,127,127,.3);padding:11px;text-align:left}.task-table th{background:rgba(127,127,127,.1)}
.writing-split{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(380px,1.25fr);gap:0;margin-top:18px;min-height:520px}.writing-prompt{padding:18px 22px 18px 4px;border-right:1px solid rgba(127,127,127,.22);font-size:1.04rem;line-height:1.55}.writing-response{padding:18px 4px 18px 20px}.writing-toolbar{display:flex;gap:7px;align-items:center;border:1px solid rgba(127,127,127,.28);border-radius:12px 12px 0 0;padding:7px}.writing-toolbar button{padding:7px 12px;border:1px solid rgba(127,127,127,.3);border-radius:8px;background:transparent}.word-count{margin-left:auto}.writing-editor{width:100%;min-height:300px;border:1px solid rgba(127,127,127,.35);border-top:0;padding:14px;font:inherit;resize:vertical}.writing-editor.tall{min-height:390px}.email-head{padding:10px 0;line-height:1.6}.person-card{display:flex;gap:12px;padding:12px 0}.person-card p{margin:4px 0;line-height:1.45}.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:2px solid currentColor;font-weight:800;flex:0 0 48px}.discussion-editor{min-height:220px}.interview-stage{text-align:center;max-width:720px;margin:25px auto}.interviewer-avatar{width:180px;height:180px;border-radius:50%;display:grid;place-items:center;margin:18px auto;background:rgba(127,127,127,.08);font-size:72px}.interview-topic{font-weight:700;margin-bottom:12px}.interview-stage h2{font-size:1.35rem;line-height:1.4}.lr-timer{font-size:2rem;font-weight:800;margin:12px}
@media(max-width:800px){.option-grid,.writing-split{grid-template-columns:1fr}.writing-prompt{border-right:0;border-bottom:1px solid rgba(127,127,127,.22);padding-right:4px}.writing-response{padding-left:4px}.option-grid.two{grid-template-columns:1fr}}

.question-visual{display:flex;justify-content:center;align-items:center;margin:10px 0 18px}.question-visual img{display:block;width:min(100%,420px);max-height:320px;object-fit:contain;border-radius:18px}.speaker-visual img{width:min(100%,330px);max-height:300px}.speaking-scene img{width:min(100%,440px);max-height:300px}.writing-visual img{width:min(100%,320px);max-height:230px}.workspace-visual{grid-column:1/-1}.workspace-visual .question-visual{margin-top:0}
@media(max-width:700px){.question-visual img{max-height:240px}.speaker-visual img{max-height:220px}}

.quick-instruction{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:rgba(127,127,127,.07);margin-bottom:12px}.quick-instruction span{font-size:.9rem;line-height:1.35}.quick-instruction .btn{padding:7px 10px}
@media(max-width:700px){.quick-instruction{grid-template-columns:1fr}.quick-instruction .btn{width:100%}}

/* V12 staged listening */
.listening-stage{max-width:560px;margin:0 auto 16px;text-align:center}.listening-stage .question-visual{margin-bottom:12px}.listening-complete{opacity:.82}.listening-question{animation:fadeIn .25s ease}.listening-question.hide{display:none!important}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
/* V12 authentic partial sentence builder */
.authentic-builder{max-width:920px;margin:0 auto}.builder-context{font-size:1rem;color:var(--muted,#64748b);margin:8px 0 24px}.sentence-frame{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.18rem;line-height:2.1;padding:24px 8px}.fixed-fragment{font-weight:650}.inline-dropzone{display:inline-flex;min-width:150px;min-height:46px;align-items:center;justify-content:center;border-bottom:2px solid #8793a8;padding:2px 6px;gap:6px}.inline-dropzone .sentence-tile{padding:7px 10px}.slot-hint{font-size:.8rem;color:#8a94a6}.sentence-punctuation{font-weight:700}.word-bank{margin-top:18px}
.stance-label{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:800;letter-spacing:.04em;padding:3px 7px;border-radius:999px;background:rgba(127,127,127,.12)}.stance.agree{border-left:4px solid currentColor}.stance.disagree{border-left:4px solid #888}.stance p{line-height:1.55}
.mic-test-box,.mic-success,.mic-fail{display:grid;gap:8px;margin-top:14px;padding:14px;border-radius:12px;background:rgba(127,127,127,.07)}.mic-meter{height:12px;border-radius:999px;background:#dfe3e8;overflow:hidden}.mic-meter span{display:block;height:100%;width:0;background:currentColor;transition:width .08s linear}.mic-success{margin-bottom:10px}.mic-success span,.mic-fail span{font-size:.9rem}
@media(max-width:700px){.sentence-frame{font-size:1.02rem}.inline-dropzone{min-width:120px}.stance-label{display:block;width:max-content;margin:5px 0 0}}
.ibt-sentence-builder{max-width:900px;margin:0 auto;padding:8px 4px 20px}.ibt-builder-title{text-align:center;font-size:1.35rem;margin:8px 0 32px}.dialogue-line{display:grid;grid-template-columns:74px 1fr;gap:18px;align-items:center;margin:18px 0}.dialogue-avatar{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;border:2px solid currentColor;font-weight:800;font-size:1.15rem;background:rgba(127,127,127,.05)}.dialogue-text{font-size:1.15rem;line-height:1.45}.ibt-sentence-frame{display:flex;flex-wrap:wrap;align-items:center;gap:8px 7px;font-size:1.15rem;line-height:2.2;min-height:80px}.ibt-fixed{white-space:nowrap}.ibt-slot{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:42px;border-bottom:2px solid #738097;padding:1px 4px}.ibt-slot .sentence-tile{padding:6px 9px;border-radius:8px;font-size:1rem;box-shadow:none}.word-bank-label{margin:28px 0 10px;color:#64748b;font-size:.92rem}.ibt-word-bank{border:none!important;background:transparent!important;padding:6px 0!important;min-height:58px!important;justify-content:center}.ibt-word-bank .sentence-tile{background:#fff;border:1px solid #cfd5df;box-shadow:0 2px 6px rgba(0,0,0,.08)}@media(max-width:650px){.dialogue-line{grid-template-columns:52px 1fr;gap:10px}.dialogue-avatar{width:46px;height:46px}.dialogue-text,.ibt-sentence-frame{font-size:1rem}.ibt-slot{min-width:70px}.ibt-word-bank .sentence-tile{width:auto;text-align:center}}
.speaking-result{margin-top:14px}.speaking-processing,.auto-transcript,.speaking-error{display:grid;gap:7px;padding:14px 16px;border:1px solid rgba(127,127,127,.22);border-radius:14px;background:rgba(127,127,127,.05)}.speaking-processing small{color:#64748b}.pulse-dot{width:10px;height:10px;border-radius:50%;background:currentColor;animation:pulseSpeak 1s infinite}.auto-transcript p{margin:0;line-height:1.5}.speaking-error{background:rgba(220,60,80,.06)}@keyframes pulseSpeak{50%{opacity:.25;transform:scale(.8)}}

/* V12.5 listening is audio-first */
.listening-only-stage{max-width:620px;margin:0 auto 18px}.listening-only-stage .speaker-visual img{max-height:260px;object-fit:contain}.revealed-listening-prompt{font-size:1.35rem;font-weight:650;line-height:1.45;margin:4px 0 20px}.listening-question.hide{display:none!important}
/* Larger, ETS-like reading presentation */
.complete-words-passage,.stimulus{line-height:1.75}.stimulus{font-size:1.08rem}.question{line-height:1.4}.practice-layout .card:nth-child(2){min-width:0}

/* V12.6 WAV speaking recorder */
.lr-status{min-height:26px}.speaking-processing{font-size:1rem}.speaking-error p{word-break:break-word}

/* V12.7 Complete the Words — 10 blanks */
.complete-words-instruction{display:grid;gap:4px;margin-bottom:18px}.multi-pass{font-size:1.08rem;line-height:2.15}.partial-word.multi{display:inline-flex;align-items:baseline;margin:0 2px}.multi-blank{min-width:32px!important;width:auto;padding:2px 3px!important;margin:0 1px;border:0!important;border-bottom:2px solid #8b93a4!important;border-radius:0!important;background:rgba(127,127,127,.07)!important;font:inherit;text-align:center}.multi-blank.blank-right{border-bottom-color:#168a4a!important;background:rgba(22,138,74,.08)!important}.multi-blank.blank-wrong{border-bottom-color:#d33b55!important;background:rgba(211,59,85,.08)!important}

/* V12.8 free-first provider mode */
.email-head{display:grid;gap:8px;padding:14px 16px;border-radius:12px;background:rgba(127,127,127,.08);margin-bottom:12px}

/* V12.9 timed-test / practice parity */
.exam-body{background:#f6f7fb}
.exam-shell{max-width:1180px;margin:0 auto;padding:18px 22px 90px}
.exam-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}
.exam-task-name{font-size:14px;color:#667085;margin-top:7px}
.exam-clock-wrap{text-align:right}
.exam-question-card{min-height:560px;padding:28px}
.exam-nav{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.exam-timing-note:empty{display:none}
.exam-body .testclock{font-size:24px;padding:12px 18px}
.exam-body .listening-stage{max-width:780px;margin:28px auto}
.exam-body #listenReveal{max-width:900px;margin:22px auto}
.exam-body .question-visual img{max-height:240px}
.exam-body .writing-split{margin-top:0}
.exam-body .complete-words-passage{font-size:20px;line-height:2.2}
.exam-body .testquestion .question{font-size:24px;line-height:1.45;margin-bottom:18px}
@media(max-width:760px){.exam-shell{padding:10px}.exam-question-card{padding:16px;min-height:500px}.exam-header{align-items:center}.exam-body .writing-split{grid-template-columns:1fr}}


/* V12.28 Complete the Words — ETS-style individual letter lines */
.blank-word{position:relative;display:inline-flex;align-items:flex-end;gap:3px;margin:0 3px;vertical-align:baseline}
.letter-slot{appearance:none;display:inline-block;width:1.05em!important;min-width:1.05em;height:1.65em;padding:0!important;border:0!important;border-bottom:2px solid #667085!important;border-radius:0!important;background:transparent!important;color:inherit;font:inherit;font-weight:400;line-height:1.25;text-align:center;outline:none}
.letter-slot:focus{border-bottom-color:#1456b8!important;box-shadow:0 2px 0 rgba(20,86,184,.18)}
.blank-word.blank-right .letter-slot{border-bottom-color:#168a4a!important;background:rgba(22,138,74,.05)!important}
.blank-word.blank-wrong .letter-slot{border-bottom-color:#d33b55!important;background:rgba(211,59,85,.05)!important}
.blank-word.is-complete{gap:1px}
.blank-word.is-complete .letter-slot{width:1.05em!important;min-width:1.05em;font-weight:400;letter-spacing:0;box-shadow:none}
.partial-word .blank-word{margin-left:0;margin-right:0}
.completed-word{display:none}
.blank-word.is-complete:not(:focus-within) .letter-slot{display:none}
.blank-word.is-complete:not(:focus-within) .completed-word{display:inline-flex;align-items:flex-end;gap:1px;font:inherit;font-weight:400;letter-spacing:normal;line-height:1.25;cursor:text}
.completed-letter{display:inline-block;min-width:.48em;padding:0 .01em 1px;text-align:center;border-bottom:2px solid #667085}
.blank-word.blank-right .completed-letter{border-bottom-color:#168a4a;background:rgba(22,138,74,.05)}
.blank-word.blank-wrong .completed-letter{border-bottom-color:#d33b55;background:rgba(211,59,85,.05)}
@media(max-width:700px){
  .app-main{padding:calc(12px + env(safe-area-inset-top)) 10px calc(76px + env(safe-area-inset-bottom))}
  .sidebar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;overflow:hidden;padding:6px max(4px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))}
  .sidebar .sideitem{min-width:0;padding:9px 2px;margin:0;font-size:10px;line-height:1.15;overflow:hidden;text-overflow:ellipsis}
  .complete-words-wrap{padding:8px 0 18px}
  .complete-words-instruction{font-size:1rem;line-height:1.35;margin-bottom:14px;padding:0 4px}
  .complete-words-instruction .muted{font-size:.88rem}
  .complete-words-passage,.exam-body .complete-words-passage{font-size:1.03rem;line-height:1.82;padding:0 2px;max-width:100%}
  .partial-word.multi{margin:0 1px}
  .blank-word{gap:1px;margin:0}
  .letter-slot{width:.82em!important;min-width:.82em;height:1.5em}
  .blank-word.is-complete:not(:focus-within) .completed-word{gap:0}
  .completed-letter{min-width:0;padding:0 0 1px}
  .complete-words-actions{margin-top:18px}
  .complete-words-actions .btn{width:100%}
  .exam-shell{padding:calc(8px + env(safe-area-inset-top)) 8px calc(72px + env(safe-area-inset-bottom))}
  .exam-question-card{padding:14px 12px;min-height:auto}
  .exam-header{gap:8px;margin-bottom:10px}
  .exam-nav{position:sticky;bottom:0;z-index:25;padding:9px 0 calc(9px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(246,247,251,0),#f6f7fb 18%)}
  .exam-nav .btn{min-width:96px}
}


/* Speaking interview: live talking-person video */
.interview-video-wrap{position:relative;width:min(100%,720px);margin:0 auto 18px;border-radius:20px;overflow:hidden;background:#111827;box-shadow:0 14px 36px rgba(15,23,42,.18);aspect-ratio:16/9}
.interviewer-video{display:block;width:100%;height:100%;object-fit:cover;background:#111827;transition:transform .18s ease;will-change:transform}
.interviewer-video[data-gender="female"]{transform:scale(1.5);transform-origin:50% 28%;object-position:50% 26%}
.interviewer-video[data-gender="male"]{transform:scale(1.72);transform-origin:50% 27%;object-position:50% 25%}
.interview-video-label{position:absolute;left:14px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em}
.interview-stage{max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:700px){.interview-video-wrap{border-radius:14px;margin-bottom:14px;aspect-ratio:4/3}.interview-stage h2{font-size:21px}.interviewer-video[data-gender="female"]{transform:scale(1.42)}.interviewer-video[data-gender="male"]{transform:scale(1.6)}}


/* Two-step Practice Take an Interview flow */
.interview-flow-card{max-width:760px;margin:0 auto;padding:8px 0 6px;text-align:center}
.interview-step-kicker{font-size:12px;font-weight:800;letter-spacing:.1em;color:#64748b;margin-bottom:10px}
.interview-instruction-title{font-size:28px;line-height:1.2;margin:6px 0 18px;color:#0f172a}
.interview-scenario-text{font-size:22px;line-height:1.35;font-weight:700;color:#111827;max-width:680px;margin:0 auto 22px}
.interview-intro-card .intro-video{max-width:560px}
.interview-play-btn,.interview-next-btn{min-width:170px;margin:14px 6px 0}
.interview-question-card .interview-video-wrap{max-width:560px}
.interview-topic{font-size:20px;font-weight:800;color:#0f172a;margin:18px 0 12px}
.interview-question-text{font-size:28px;line-height:1.25;font-weight:800;color:#0f172a;max-width:700px;margin:0 auto 18px}
.interview-record-note{font-size:19px;line-height:1.45;max-width:650px;margin:0 auto 14px}
.interview-waiting-row{display:flex;justify-content:center;align-items:center;gap:0;margin:14px auto 10px}
.interview-waiting-row #waitingState{border:1px solid #cbd5e1;border-radius:10px 0 0 10px;padding:14px 18px;font-weight:700;color:#64748b;background:#fff;min-width:120px}
.interview-waiting-row .lr-timer{margin:0;border:1px solid #cbd5e1;border-left:0;border-radius:0 10px 10px 0;padding:8px 18px;min-width:110px;background:#fff}
@media(max-width:700px){
  .interview-instruction-title{font-size:22px}
  .interview-scenario-text{font-size:18px}
  .interview-question-text{font-size:22px}
  .interview-record-note{font-size:17px}
  .interview-play-btn,.interview-next-btn{width:100%;margin:10px 0 0}
}


/* Exam-style section and task surfaces inspired by contemporary TOEFL prep UIs */
.m-section-intro{max-width:820px;margin:0 auto;background:#fff;padding:26px 28px;border-radius:18px;border:1px solid #e5e7eb;box-shadow:0 10px 30px rgba(15,23,42,.06)}
.m-section-intro h1{font-size:36px;line-height:1.15;margin:0 0 14px;color:#111827;font-weight:650}
.m-section-stat{font-size:18px;font-weight:750;color:#374151;padding:16px 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}
.m-section-desc{font-size:18px;line-height:1.55;color:#4b5563;margin:18px 0}
.m-section-actions{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb}
.m-section-actions .btn{min-width:160px}
.timed-section-intro{width:min(820px,100%)}

.m-exam-flow{width:min(820px,100%);margin:0 auto}
.m-instruction-banner{background:#fff1b8;border:1px solid #f3dda0;border-radius:12px 12px 0 0;padding:16px 18px;text-align:center;font-size:18px;line-height:1.4;color:#4b5563;margin-bottom:18px}
.m-content-card{background:#fff;border:2px solid #eef0f3;border-radius:4px;padding:26px 28px;margin:0 auto 18px;box-shadow:0 2px 8px rgba(15,23,42,.025)}
.m-volume-row{display:flex;justify-content:space-between;gap:16px;color:#6b7280;font-size:15px;margin-bottom:20px}
.m-task-title{font-size:24px;line-height:1.25;text-align:center;color:#111827;margin:0 0 20px}
.m-scenario-title{font-size:22px;line-height:1.35;text-align:center;color:#111827;margin:0 auto 22px;max-width:690px}
.m-gradient-btn{display:block;margin:20px auto 0;min-width:230px;border-radius:999px;padding:13px 22px}
.m-bottom-actions{display:flex;justify-content:flex-start;margin-top:16px}
.m-record-panel{background:#f8fafc;border:1px solid #eef2f7;padding:24px;text-align:center;margin-top:16px;border-radius:8px}
.m-record-panel em{display:block;font-size:18px;color:#4b5563;margin-bottom:14px}
.m-waiting-row{display:flex;justify-content:center;align-items:stretch;margin:14px auto 0}
.m-waiting-row>span,.m-waiting-row>.lr-timer{display:flex;align-items:center;justify-content:center;min-width:116px;padding:12px 18px;background:#fff;border:2px solid #d7dce2;color:#6b7280;font-weight:700}
.m-waiting-row>span{border-radius:8px 0 0 8px}
.m-waiting-row>.lr-timer{border-left:0;border-radius:0 8px 8px 0;margin:0;font-size:28px;color:#111827}
.lr-context-visual{max-width:680px;margin:14px auto}
.lr-context-visual img{width:100%;max-height:360px;object-fit:contain;background:#f3f4f6;border-radius:8px}

.m-radio-choices{display:grid;gap:4px;margin-top:14px}
.m-radio-choices .choice{position:relative;text-align:left;border:0;background:#fff;box-shadow:none;padding:13px 12px 13px 42px;border-radius:8px;color:#374151;font-size:17px}
.m-radio-choices .choice:before{content:'';position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;border:2px solid #9ca3af;border-radius:50%;background:#fff}
.m-radio-choices .choice.selected:before{border-color:#2563eb;box-shadow:inset 0 0 0 4px #fff;background:#2563eb}
.listening-only-stage.m-content-card .question-visual,.listening-stage.m-content-card .question-visual{max-width:480px;margin:0 auto 18px}
.listening-only-stage.m-content-card .question-visual img,.listening-stage.m-content-card .question-visual img{max-height:380px;object-fit:contain}

.writing-exam-flow{display:block}
.m-writing-prompt-card{font-size:17px;line-height:1.55}
.m-writing-prompt-card h3,.m-writing-response-card h3{font-size:22px;margin:0 0 16px;color:#111827}
.m-writing-prompt-card ul{padding-left:26px}
.m-writing-response-card{background:#fff;border-top:1px solid #e5e7eb;padding-top:20px;margin-top:22px}
.m-writing-response-card .email-head{font-size:17px;line-height:1.7;margin-bottom:12px}
.m-writing-response-card .writing-editor{min-height:260px}

@media(max-width:700px){
  .m-section-intro{padding:20px 16px;border-radius:12px}
  .m-section-intro h1{font-size:30px}
  .m-section-stat,.m-section-desc{font-size:16px}
  .m-section-actions{flex-direction:column-reverse;align-items:stretch}
  .m-section-actions .btn{width:100%}
  .m-instruction-banner{font-size:16px;padding:14px 12px;margin-left:-12px;margin-right:-12px;border-radius:0}
  .m-content-card{padding:22px 16px}
  .m-scenario-title{font-size:19px}
  .m-task-title{font-size:22px}
  .m-gradient-btn{width:100%;min-width:0}
  .m-record-panel{padding:20px 12px}
  .m-waiting-row>span,.m-waiting-row>.lr-timer{min-width:0;flex:1}
  .m-writing-prompt-card,.m-writing-response-card{font-size:16px}
}


/* Closer portrait interviewer treatment */
.interview-reference-style{max-width:620px;margin:0 auto;text-align:center}
.interview-reference-style>h2{font-size:24px;line-height:1.25;margin:0 0 18px}
.interview-reference-style .interview-video-wrap,
.interview-question-card .interview-video-wrap{width:min(100%,500px);aspect-ratio:1/1;margin:0 auto 18px;border-radius:8px}
.interview-reference-style .interviewer-video,
.interview-question-card .interviewer-video{object-fit:cover}
.interview-reference-style .interviewer-video[data-gender="female"],
.interview-question-card .interviewer-video[data-gender="female"]{transform:scale(1.75);transform-origin:50% 24%;object-position:50% 24%}
.interview-reference-style .interviewer-video[data-gender="male"],
.interview-question-card .interviewer-video[data-gender="male"]{transform:scale(2.0);transform-origin:50% 23%;object-position:50% 23%}
.lr-context-visual img{display:block}
@media(max-width:700px){
  .interview-reference-style .interview-video-wrap,
  .interview-question-card .interview-video-wrap{width:min(100%,460px);aspect-ratio:1/1}
  .interview-reference-style>h2{font-size:21px}
}


/* Writing task directions: scenario-specific email + academic discussion */
.writing-context{font-size:19px;line-height:1.55;color:#4b5563;margin:0 0 22px}
.email-task-bullets,.academic-task-bullets{margin:12px 0 20px;padding-left:28px}
.email-task-bullets li,.academic-task-bullets li{font-size:18px;line-height:1.5;margin:9px 0;color:#374151}
.writing-guidance{font-size:17px;line-height:1.5;color:#6b7280;text-align:center;margin:20px 0 26px}
.academic-discussion-card .writing-guidance{text-align:left}
.discussion-post{display:grid;grid-template-columns:54px 1fr;gap:14px;padding:20px 0;border-top:1px solid #e5e7eb;text-align:left}
.discussion-post:first-of-type{border-top:0}
.discussion-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef2ff;color:#334155;font-weight:800;font-size:18px;border:1px solid #dbe2ea}
.discussion-post b{display:block;font-size:17px;margin-bottom:5px;color:#111827}
.discussion-post p{margin:0;font-size:17px;line-height:1.55;color:#4b5563}
.professor-post{display:block;text-align:center;padding-top:10px}
.professor-post .discussion-avatar{margin:0 auto 10px;width:76px;height:76px;font-size:24px}
.professor-post p{max-width:680px;margin:8px auto 0;text-align:left;font-size:18px}
.student-post{align-items:start}
@media(max-width:700px){
  .writing-context{font-size:17px}
  .email-task-bullets li,.academic-task-bullets li{font-size:17px}
  .writing-guidance{font-size:16px}
  .discussion-post{grid-template-columns:44px 1fr;gap:12px;padding:18px 0}
  .discussion-avatar{width:42px;height:42px;font-size:16px}
  .discussion-post p{font-size:16px}
  .professor-post .discussion-avatar{width:68px;height:68px}
  .professor-post p{font-size:17px}
}


/* Academic Discussion portrait personas */
.discussion-photo{position:relative;width:50px;height:50px;border-radius:50%;overflow:hidden;background:#eef2ff;border:1px solid #dbe2ea;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.discussion-photo::after{content:attr(data-initial);font-weight:800;color:#475569;font-size:18px}
.discussion-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.discussion-photo.professor{width:86px;height:86px;margin:0 auto 10px}
.discussion-photo.professor::after{font-size:24px}
.professor-post>.discussion-photo+div>b{font-size:19px;text-align:center;margin-bottom:10px}
.professor-post>.discussion-photo+div>p{max-width:680px;margin:0 auto;text-align:left}
.student-post>.discussion-photo+div>b{font-size:18px}
.academic-discussion-card .student-post p{max-width:680px}
@media(max-width:700px){
  .discussion-photo{width:46px;height:46px}
  .discussion-photo.professor{width:78px;height:78px}
  .professor-post>.discussion-photo+div>b{font-size:18px}
  .student-post>.discussion-photo+div>b{font-size:17px}
}


/* Final persona-specific interviewer framing: full face + shoulders + upper chest */
.interviewer-video[data-persona="asian_female"]{
  transform:scale(1.00)!important;
  transform-origin:50% 34%!important;
  object-position:50% 34%!important;
}
.interviewer-video[data-persona="asian_male"]{
  transform:scale(1.00)!important;
  transform-origin:50% 33%!important;
  object-position:50% 33%!important;
}
.interviewer-video[data-persona="white_female"]{
  transform:scale(1.08)!important;
  transform-origin:50% 31%!important;
  object-position:50% 31%!important;
}
.interviewer-video[data-persona="white_male"]{
  transform:scale(1.08)!important;
  transform-origin:50% 31%!important;
  object-position:50% 31%!important;
}
@media(max-width:700px){
  .interviewer-video[data-persona="asian_female"]{transform:scale(1.00)!important;object-position:50% 35%!important}
  .interviewer-video[data-persona="asian_male"]{transform:scale(1.00)!important;object-position:50% 34%!important}
  .interviewer-video[data-persona="white_female"]{transform:scale(1.04)!important;object-position:50% 32%!important}
  .interviewer-video[data-persona="white_male"]{transform:scale(1.04)!important;object-position:50% 32%!important}
}


/* Clean interview question screen: video + live status + response controls only */
.interview-clean-screen{max-width:620px;margin:0 auto;text-align:center;padding-top:4px}
.interview-clean-screen .interview-video-wrap{margin:0 auto 16px}
.interview-clean-screen .lr-status{margin-top:8px;font-weight:750}
.interview-clean-screen .interview-waiting-row{margin-top:12px}
@media(max-width:700px){
  .interview-clean-screen{padding-top:0}
  .interview-clean-screen .interview-video-wrap{width:100%;max-width:520px}
}


/* Large portrait interviewer frame */
.interview-clean-screen .interview-video-wrap,
.interview-question-card .interview-video-wrap,
.interview-reference-style .interview-video-wrap{
  width:100%!important;
  max-width:620px!important;
  aspect-ratio:3/4!important;
  margin:0 auto 16px!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
.interview-clean-screen .interviewer-video,
.interview-question-card .interviewer-video,
.interview-reference-style .interviewer-video{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 24%!important;
}
@media(max-width:700px){
  .interview-clean-screen .interview-video-wrap,
  .interview-question-card .interview-video-wrap,
  .interview-reference-style .interview-video-wrap{
    width:100%!important;
    max-width:none!important;
    aspect-ratio:3/4!important;
    border-radius:14px!important;
    margin-bottom:14px!important;
  }
}


/* Compact active interview question screen */
.interview-question-card .interview-video-wrap,
.interview-clean-screen .interview-video-wrap{
  width:min(100%,360px)!important;
  max-width:360px!important;
  aspect-ratio:4/3!important;
  margin:0 auto 12px!important;
}
@media(max-width:700px){
  .interview-question-card .interview-video-wrap,
  .interview-clean-screen .interview-video-wrap{
    width:min(100%,320px)!important;
    max-width:320px!important;
    aspect-ratio:4/3!important;
  }
}

/* TOEFL-style active interview layout */
.interview-clean-screen.interview-reference-layout{
  width:100%!important;
  max-width:1040px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(290px,.92fr)!important;
  gap:28px!important;
  align-items:start!important;
  text-align:center!important;
  padding:0!important;
}
.interview-reference-layout .interview-media-panel{
  border:1px solid #e5e7eb;
  background:#fff;
  padding:26px 26px 30px;
  min-height:470px;
}
.interview-reference-layout .interview-question-heading{
  margin:0 0 24px;
  font-size:21px;
  line-height:1.25;
  font-weight:750;
}
.interview-reference-layout .interview-video-wrap{
  width:min(320px,100%)!important;
  max-width:100%!important;
  aspect-ratio:1/1!important;
  margin:0 auto 20px!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.interview-reference-layout .interview-record-panel{
  background:#f7f7f8;
  min-height:160px;
  padding:24px 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:24px;
}
.interview-reference-layout .interview-record-panel em{
  font-size:17px;
  color:#374151;
}
.interview-reference-layout .interview-waiting-row{
  margin-top:0!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.interview-reference-layout .interview-video-status{
  display:inline-block;
  margin-top:0!important;
  padding:8px 16px;
  border-radius:999px;
  background:#f3f4f6;
  font-weight:600;
}
@media(max-width:850px){
  .interview-clean-screen.interview-reference-layout{
    display:block!important;
    max-width:560px!important;
  }
  .interview-reference-layout .interview-media-panel{
    min-height:auto;
    padding:20px 16px 24px;
  }
  .interview-reference-layout .interview-video-wrap{
    width:min(100%,320px)!important;
    max-width:320px!important;
  }
  .interview-reference-layout .interview-record-panel{
    margin-top:16px;
    min-height:130px;
  }
}

/* Controlled animated interviewer avatar */
.interviewer-avatar{
  width:100%;
  height:100%;
  display:block;
  overflow:hidden;
  background:#eef2f6;
}
.interviewer-avatar svg{
  width:100%;
  height:100%;
  display:block;
}
.interviewer-avatar .avatar-mouth-open{
  transform-box:fill-box;
  transform-origin:center;
  transform:scaleY(.18);
  opacity:.35;
}
.interviewer-avatar .avatar-arm{
  transform-box:fill-box;
  transform-origin:50% 18%;
}
.interviewer-avatar .avatar-head,
.interviewer-avatar .avatar-body{
  transform-box:fill-box;
  transform-origin:center;
}
.interviewer-avatar.is-speaking .avatar-mouth-open{
  animation:avatarMouthTalk .22s infinite alternate ease-in-out;
  opacity:1;
}
.interviewer-avatar.is-speaking .avatar-arm-left{
  animation:avatarHandLeft 1.6s infinite ease-in-out;
}
.interviewer-avatar.is-speaking .avatar-arm-right{
  animation:avatarHandRight 1.9s infinite ease-in-out;
}
.interviewer-avatar.is-speaking .avatar-head{
  animation:avatarHeadTalk 2.2s infinite ease-in-out;
}
.interviewer-avatar.is-speaking .avatar-body{
  animation:avatarBodyTalk 2.8s infinite ease-in-out;
}
@keyframes avatarMouthTalk{
  0%{transform:scaleY(.22) scaleX(.96)}
  45%{transform:scaleY(1.05) scaleX(1.02)}
  100%{transform:scaleY(.42) scaleX(.98)}
}
@keyframes avatarHandLeft{
  0%,100%{transform:rotate(0deg) translate(0,0)}
  40%{transform:rotate(-4deg) translate(-4px,-7px)}
  70%{transform:rotate(2deg) translate(2px,-3px)}
}
@keyframes avatarHandRight{
  0%,100%{transform:rotate(0deg) translate(0,0)}
  35%{transform:rotate(4deg) translate(5px,-8px)}
  72%{transform:rotate(-2deg) translate(-2px,-3px)}
}
@keyframes avatarHeadTalk{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-2px) rotate(.4deg)}
}
@keyframes avatarBodyTalk{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-1px)}
}
@media(prefers-reduced-motion:reduce){
  .interviewer-avatar.is-speaking .avatar-mouth-open,
  .interviewer-avatar.is-speaking .avatar-arm-left,
  .interviewer-avatar.is-speaking .avatar-arm-right,
  .interviewer-avatar.is-speaking .avatar-head,
  .interviewer-avatar.is-speaking .avatar-body{animation:none}
  .interviewer-avatar.is-speaking .avatar-mouth-open{transform:scaleY(.75);opacity:1}
}


/* Mobile explicit Audio + Video start control */
.mobile-av-play{margin:16px auto 0;min-width:230px}
@media(max-width:700px){
  .mobile-av-play{display:block;width:100%;min-height:52px;font-size:17px;border-radius:12px}
}


/* Formal interviewers: keep male framing; reveal more of female face + upper body */
.interviewer-video[data-persona="formal_female"]{
  transform:scale(.94)!important;
  transform-origin:50% 22%!important;
  object-position:50% 22%!important;
}
.interviewer-video[data-persona="formal_male"]{
  transform:scale(1)!important;
  transform-origin:50% 30%!important;
  object-position:50% 30%!important;
}
@media(max-width:700px){
  .interviewer-video[data-persona="formal_female"]{
    transform:scale(.94)!important;
    transform-origin:50% 22%!important;
    object-position:50% 22%!important;
  }
  .interviewer-video[data-persona="formal_male"]{
    transform:scale(1)!important;
    object-position:50% 31%!important;
  }
}


/* Responsive hardening audit */
html,body{max-width:100%;overflow-x:hidden}
img,video,svg,canvas{max-width:100%}
button,input,select,textarea{max-width:100%}
table{max-width:100%}
.nav,.navlinks,.topbar,.exam-header,.m-volume-row,.writing-toolbar{min-width:0}
.nav>*,
.topbar>*,
.exam-header>*{min-width:0}
.exam-task-name,.question,.stimulus,.choice,.m-radio-choices .choice{overflow-wrap:anywhere}
.writing-toolbar{flex-wrap:wrap}
.word-count{white-space:nowrap}
.task-table{table-layout:fixed}
.task-table th,.task-table td{white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){
  .nav{height:auto;min-height:64px;padding:9px 0;gap:8px}
  .navlinks{gap:6px;min-width:0}
  .navlinks .btn{padding:10px 11px;font-size:14px;white-space:nowrap}
  .mock{transform:none}
  .hero h1{font-size:clamp(34px,10.5vw,40px)}
  .section h2,.legal h1{font-size:clamp(30px,9vw,38px)}
  .topbar{flex-wrap:wrap}
  .topbar>*{max-width:100%}
  .exam-header{align-items:flex-start;flex-wrap:wrap}
  .exam-header>div:first-child{flex:1 1 190px;min-width:0}
  .exam-clock-wrap{flex:0 0 auto;margin-left:auto}
  .m-volume-row{flex-wrap:wrap;row-gap:8px}
  .writing-toolbar button{flex:0 0 auto}
  .word-count{margin-left:auto}
}
@media(max-width:420px){
  .container{padding-left:12px;padding-right:12px}
  .authwrap{padding:20px 12px calc(20px + env(safe-area-inset-bottom))}
  .authcard{padding:22px 16px}
  .exam-body .testquestion .question{font-size:20px}
  .exam-body .testclock{font-size:20px;padding:9px 12px}
  .exam-nav{gap:7px}
  .exam-nav .btn{min-width:0;flex:1}
  .m-content-card{padding-left:12px;padding-right:12px}
  .m-volume-row{font-size:13px}
  .m-radio-choices .choice{font-size:16px;padding-left:38px}
  .barrow{grid-template-columns:90px 1fr 36px}
}
@media(max-width:360px){
  .section-scores,.metricrow,.mini-grid,.blueprint{grid-template-columns:1fr}
}


/* Fasiho 2026 visual identity */
:root{--bg:#f7f9ff;--card:#fff;--ink:#0b1739;--muted:#64708a;--line:#e7ebf5;--brand:#3157ff;--brand2:#7448ff;--accent:#16c7b7;--shadow:0 24px 70px rgba(35,62,145,.12)}
body{background:radial-gradient(circle at 85% 5%,rgba(93,155,255,.16),transparent 28%),radial-gradient(circle at 12% 20%,rgba(115,72,255,.09),transparent 26%),var(--bg)}
.brand,.sidebrand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:850;letter-spacing:-.045em}
.brand span,.sidebrand span{color:inherit}
.brand:before,.sidebrand:before{content:"";display:inline-block;width:36px;height:36px;flex:0 0 36px;background:url('/assets/fasiho-mark.svg?v=1') center/contain no-repeat;filter:drop-shadow(0 7px 12px rgba(49,87,255,.18))}
.sidebrand{color:white}
.nav{height:82px}
.navlinks{gap:26px}.navlinks>a:not(.btn){font-size:14px;font-weight:650;color:#44506a}.navlinks>a:not(.btn):hover{color:var(--brand)}
.btn{border-radius:14px;padding:13px 20px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#3157ff,#643dff);box-shadow:0 12px 30px rgba(49,87,255,.23)}.btn-outline{border-color:#dce3f2}
.hero{min-height:650px;padding:86px 0 74px;gap:64px}.hero h1{font-size:clamp(48px,5.4vw,72px);line-height:.98;max-width:720px}.hero p{font-size:19px}.eyebrow{background:#edf2ff;color:#3157ff;letter-spacing:.04em}
.mock{transform:none;background:linear-gradient(145deg,#0b1739,#182963);border-radius:30px;padding:12px;box-shadow:0 35px 90px rgba(20,39,101,.2)}
.mock-inner{border-radius:23px;padding:25px}.mini{background:#fbfcff}.score{color:#183cce}
.card{border-color:#e9edf7;border-radius:22px;box-shadow:0 10px 35px rgba(30,54,130,.055)}
.grid3 .card{min-height:185px;transition:transform .2s ease,box-shadow .2s ease}.grid3 .card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(30,54,130,.1)}
.section{padding:76px 0}.section h2{font-size:clamp(34px,4vw,48px)}
.sidebar{background:linear-gradient(180deg,#0b1739,#111d46)}.sideitem:hover,.sideitem.active{background:rgba(255,255,255,.1)}
.scorecard{background:linear-gradient(135deg,#3157ff,#7147ff);box-shadow:0 20px 50px rgba(49,87,255,.22)}
.authcard{border-radius:28px;padding:34px}.field input,.field select,.field textarea{border-radius:13px;padding:14px}
.footer{background:rgba(255,255,255,.55)}
@media(max-width:700px){.hero{padding:50px 0 45px;min-height:0}.hero h1{font-size:clamp(39px,12vw,52px)}.hero p{font-size:17px}.hero-actions{flex-direction:column}.hero-actions .btn{text-align:center}.nav{height:72px}.brand:before{width:30px;height:30px;border-radius:9px}.mock{border-radius:22px}}

/* Fasiho visual homepage */
.f-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);gap:34px;align-items:center;min-height:620px;padding:54px 0 34px}.f-copy{position:relative;z-index:2}.f-copy h1{font-size:clamp(50px,5vw,76px);line-height:.98;letter-spacing:-.055em;margin:25px 0 24px;max-width:760px}.f-copy h1 span{background:linear-gradient(90deg,#3157ff,#7a45ff);-webkit-background-clip:text;background-clip:text;color:transparent}.f-copy>p{font-size:18px;line-height:1.65;max-width:720px}.f-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.f-benefits>div{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.f-benefits b{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#eef2ff;color:#4d4cff;font-size:20px}.f-disclaimer{font-size:12px!important;margin-top:16px;color:#7b849a}.f-visual{height:540px;position:relative}.f-orb{position:absolute;inset:20px 20px 25px 50px;border-radius:48% 52% 45% 55%;background:radial-gradient(circle at 45% 35%,#fff 0,#eef0ff 38%,#dfe4ff 68%,#f8f9ff 69%);box-shadow:inset 0 0 80px rgba(86,87,255,.08)}.f-student{position:absolute;left:12%;bottom:0;width:42%;height:78%;z-index:2}.f-hair{position:absolute;left:13%;top:0;width:75%;height:46%;border-radius:48% 48% 42% 42%;background:linear-gradient(145deg,#392a2d,#160f18);box-shadow:12px 18px 0 #24171f}.f-face{position:absolute;left:29%;top:11%;width:46%;aspect-ratio:.82;border-radius:46% 46% 48% 48%;background:#f3c5a7;display:grid;place-items:center;font-size:58px;color:#8c4e44;z-index:2}.f-body{position:absolute;left:7%;bottom:0;width:90%;height:55%;border-radius:48% 48% 15% 15%;background:linear-gradient(135deg,#d6b9ff,#9b7fe7);box-shadow:0 22px 45px rgba(72,56,143,.18)}.f-books{position:absolute;right:-8%;bottom:13%;font-size:70px;line-height:.35;color:#f7f2e8;transform:rotate(-4deg);text-shadow:0 5px 15px rgba(0,0,0,.12);z-index:3}.f-note{position:absolute;left:3%;top:12%;z-index:4;transform:rotate(-7deg);font-size:18px;font-style:italic;color:#3032a8;line-height:1.18}.f-scorecard{position:absolute;right:0;top:10%;width:53%;z-index:5;background:rgba(255,255,255,.94);border:1px solid #eef0fa;border-radius:28px;padding:22px;box-shadow:0 28px 70px rgba(53,58,150,.16);transform:rotate(-1.5deg)}.f-scoretop{display:flex;align-items:center;gap:14px}.f-ring{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#5948ff 0 25%,#8ddddd 25% 82%,#eef2f8 82%);position:relative}.f-ring:after{content:"";position:absolute;inset:8px;border-radius:50%;background:white}.f-ring b{z-index:2;font-size:24px}.f-scoregrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.f-scoregrid>div{display:grid;gap:3px;text-align:center;padding:11px 4px;border-radius:14px;background:#f7f9ff;color:#4f56d9}.f-scoregrid small{color:#68728a;font-size:10px}.f-scoregrid b{color:#101936;font-size:17px}.f-next{display:grid;gap:5px;background:#f5f2ff;border-radius:16px;padding:14px}.f-next small{font-weight:750}.f-next b{color:#292e83}.f-next span{font-size:11px;color:#7a8296}.f-feedback{position:absolute;left:36%;bottom:5%;z-index:7;background:rgba(255,255,255,.96);border-radius:18px;padding:15px 20px;box-shadow:0 16px 45px rgba(47,53,133,.14);display:grid;gap:3px}.f-feedback b{color:#292e83}.f-feedback span{font-size:12px;color:#747d91}.f-sectioncards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0 0 52px}.f-sectioncards>a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:20px;background:rgba(255,255,255,.92);border:1px solid #e8ecf6;border-radius:20px;box-shadow:0 12px 35px rgba(31,48,110,.07);color:inherit;text-decoration:none;transition:.2s}.f-sectioncards>a:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(31,48,110,.12)}.f-sectioncards>a>b{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eef2ff;color:#4c50ef;font-size:21px}.f-sectioncards h3{margin:0 0 5px;font-size:17px}.f-sectioncards p{margin:0;font-size:12px;line-height:1.4;color:#778198}.f-sectioncards>a>span{font-size:26px;color:#717a92}
@media(max-width:1050px){.f-hero{grid-template-columns:1fr;padding-top:45px}.f-copy{text-align:center}.f-copy h1,.f-copy>p{margin-left:auto;margin-right:auto}.f-benefits{max-width:650px;margin-left:auto;margin-right:auto}.f-visual{max-width:760px;width:100%;margin:0 auto}.f-sectioncards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.f-nav .navlinks>a:not(.btn){display:none}.f-hero{display:block;padding:35px 0 25px}.f-copy h1{font-size:clamp(42px,12vw,58px)}.f-benefits{grid-template-columns:repeat(2,1fr);max-width:360px}.f-visual{height:440px;margin-top:28px}.f-scorecard{width:66%;right:0;top:7%;padding:14px}.f-student{left:0;width:50%;height:70%}.f-note{display:none}.f-feedback{left:20%;bottom:2%;padding:12px 14px}.f-scoregrid{grid-template-columns:repeat(2,1fr)}.f-sectioncards{grid-template-columns:1fr;padding-bottom:30px}.f-sectioncards>a{padding:16px}.f-books{font-size:48px}}
@media(max-width:420px){.f-visual{height:390px}.f-scorecard{width:70%;border-radius:20px}.f-ring{width:55px;height:55px}.f-ring b{font-size:19px}.f-scoretop span{font-size:11px}.f-feedback{left:8%;max-width:180px}.f-student{width:52%;height:65%}}


/* Homepage layout hotfix: scope global app styles that were collapsing Fasiho hero */
.f-hero .hero-actions{display:flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;margin-top:26px!important}
.f-hero .hero-actions .btn{width:auto!important;min-width:0!important}
.f-benefits{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important}
.f-benefits>div{min-width:0!important;white-space:normal!important}
.f-visual{display:block!important;visibility:visible!important;min-width:0!important}
.f-orb,.f-student,.f-scorecard,.f-feedback{display:block}
.f-scoretop{display:flex!important}.f-scoregrid{display:grid!important}.f-next,.f-feedback{display:grid!important}
@media(max-width:1050px){
 .f-hero{display:grid!important;grid-template-columns:1fr!important}
 .f-visual{display:block!important}
}
@media(max-width:700px){
 .f-hero{display:block!important}
 .f-hero .hero-actions{flex-direction:column!important;align-items:stretch!important}
 .f-hero .hero-actions .btn{width:100%!important;text-align:center!important}
 .f-benefits{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* Fasiho vocabulary review */
.vocab-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.vocab-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.vocab-stat small{display:block;color:var(--muted);margin-bottom:7px}.vocab-stat strong{font-size:28px}.vocab-toolbar-card{margin-bottom:18px}.vocab-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.vocab-toolbar>div:first-child{margin-right:auto}.vocab-toolbar h3{margin-bottom:4px}.vocab-toolbar select{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}.vocab-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px}.vocab-review-card{min-width:0}.vocab-review-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.vocab-session-progress{height:7px;background:#eceef5;border-radius:999px;overflow:hidden;margin:13px 0 18px}.vocab-session-progress span{display:block;height:100%;width:0;background:var(--brand);border-radius:999px;transition:width .25s ease}.vocab-flashcard{width:100%;min-height:340px;border:1px solid #dcd8ff;border-radius:22px;background:linear-gradient(145deg,#fff,#f7f5ff);padding:30px;text-align:center;color:var(--ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 18px 45px rgba(65,53,170,.08)}.vocab-flashcard:focus-visible{outline:3px solid #bdb5ff;outline-offset:3px}.vocab-kicker{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--brand);margin-bottom:12px}.vocab-word{font-size:50px;line-height:1.05;font-weight:850;letter-spacing:-.045em}.vocab-word-small{font-size:25px;font-weight:800;margin-bottom:14px;color:var(--brand)}.vocab-tap{margin-top:16px}.vocab-definition{font-size:25px;line-height:1.4;font-weight:750;max-width:680px;margin:auto}.vocab-example{font-size:17px;line-height:1.6;color:var(--muted);max-width:700px;margin:20px auto 0}.vocab-card-actions{display:flex;justify-content:center;gap:10px;margin-top:14px}.vocab-ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.vocab-ratings .btn{border:1px solid var(--line)}.vocab-miss{background:#fff1f2;color:#a62f3d}.vocab-learning{background:#fff8e9;color:#8a621a}.vocab-know{background:#edf9f4;color:#08734a}.vocab-side h3{margin-top:0}.vocab-side p{line-height:1.6}.vocab-meter-label{display:flex;justify-content:space-between;margin-top:20px}.vocab-master-bar{height:10px;background:#eceef5;border-radius:999px;overflow:hidden;margin-top:8px}.vocab-master-bar span{display:block;height:100%;width:0;background:var(--brand);border-radius:999px;transition:width .3s ease}.vocab-rule{border:0;border-top:1px solid var(--line);margin:24px 0}.vocab-done{text-align:center;padding:42px 18px}.vocab-done h2{margin-top:0}
@media(max-width:900px){.vocab-stats{grid-template-columns:repeat(2,1fr)}.vocab-layout{grid-template-columns:1fr}.vocab-toolbar>div:first-child{width:100%}.vocab-toolbar select{flex:1;min-width:150px}}
@media(max-width:600px){.vocab-stat{padding:14px}.vocab-stat strong{font-size:24px}.vocab-flashcard{min-height:300px;padding:22px 16px}.vocab-word{font-size:42px}.vocab-definition{font-size:21px}.vocab-card-actions{display:grid;grid-template-columns:1fr 1fr}.vocab-ratings{grid-template-columns:1fr}.vocab-toolbar .btn,.vocab-toolbar select{width:100%}}

.vocab-synonyms{margin:16px auto 0;padding:10px 14px;border-radius:12px;background:#f0edff;color:#5142c7;font-weight:700;line-height:1.5;max-width:680px}

/* Multi-exam selector + hubs */
.exam-picker-page{background:radial-gradient(circle at 15% 10%,#eeeaff 0,transparent 32%),var(--bg)}
.exam-picker-wrap{max-width:1180px;margin:auto;padding:34px 22px 60px}.exam-picker-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}.exam-picker-head h1{font-size:42px;letter-spacing:-.04em;margin:0 0 8px}.exam-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.exam-choice-card{background:white;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:440px;position:relative;overflow:hidden}.exam-choice-card:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:#5b4cf0}.exam-choice-ielts:before{background:#c83b52}.exam-choice-oet:before{background:#0a8770}.exam-choice-card.selected{outline:3px solid rgba(91,76,240,.2)}.exam-choice-card h2{font-size:32px;margin:18px 0 8px}.exam-choice-card p{line-height:1.6;color:var(--muted)}.exam-choice-badge{font-size:11px;font-weight:800;letter-spacing:.11em}.exam-specs{display:grid;gap:8px;margin:16px 0 24px}.exam-specs span{padding:10px 12px;background:#f7f8fb;border-radius:11px;font-size:14px}.exam-choice-card .btn{margin-top:auto}.exam-independent{text-align:center;color:var(--muted);font-size:13px;margin-top:24px}
.exam-hub-page{min-height:100vh}.exam-hub-page.theme-ielts{--exam:#b52d48;--exam-soft:#fff1f4;background:#fffafb}.exam-hub-page.theme-oet{--exam:#087e69;--exam-soft:#eaf9f5;background:#f8fdfb}.exam-hub-shell{max-width:1180px;margin:auto;padding:0 22px 54px}.exam-hub-top{height:76px;display:flex;align-items:center;justify-content:space-between}.exam-hub-switch{display:flex;gap:18px;font-size:14px;color:var(--muted)}.exam-hub-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;align-items:center;padding:56px 0 34px}.exam-kicker{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--exam-soft,#f1efff);color:var(--exam,var(--brand));font-size:12px;font-weight:850;letter-spacing:.09em}.exam-hub-hero h1{font-size:50px;line-height:1.04;letter-spacing:-.045em;margin:15px 0}.exam-hub-hero p{font-size:18px;line-height:1.65;color:var(--muted);max-width:750px}.exam-hero-actions{display:flex;gap:10px;margin-top:20px}.theme-ielts .btn-primary{background:linear-gradient(135deg,#a92843,#d94f68)}.theme-oet .btn-primary{background:linear-gradient(135deg,#08705e,#0aa184)}.exam-score-panel{border-radius:24px;padding:28px;background:var(--exam,#5b4cf0);color:white;box-shadow:var(--shadow)}.exam-score-panel small,.exam-score-panel span{display:block;opacity:.82}.exam-score-panel strong{font-size:46px;display:block;margin:8px 0}.exam-section-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.exam-section-card{background:white;border:1px solid var(--line);border-radius:20px;padding:22px;min-height:220px;transition:.2s}.exam-section-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--exam,#5b4cf0)}.exam-section-card>span{font-size:12px;font-weight:850;color:var(--exam,#5b4cf0)}.exam-section-card h3{font-size:24px;margin:10px 0}.exam-section-card p{color:var(--muted);line-height:1.6}.exam-section-card b{color:var(--exam,#5b4cf0)}.exam-format-note,.fpgec-note{margin-top:18px;padding:14px 16px;border-radius:13px;background:var(--exam-soft,#f5f3ff);color:#4b5565;line-height:1.5}.fpgec-note{max-width:760px;font-size:14px}
.exam-lab-page.theme-ielts{--exam:#b52d48;--exam-soft:#fff1f4}.exam-lab-page.theme-oet{--exam:#087e69;--exam-soft:#eaf9f5}.exam-lab{min-height:100vh;background:#f5f6f8}.exam-lab-header{height:70px;padding:0 22px;background:white;border-bottom:1px solid #dfe2e8;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;position:sticky;top:0;z-index:30}.exam-lab-header div:nth-child(2){display:flex;flex-direction:column}.exam-lab-header small{color:var(--muted);margin-top:2px}.exam-lab-timer{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;padding:8px 12px;border-radius:10px;background:#20242e;color:white}.exam-lab-timer.urgent{background:#9d263a}.exam-lab-nav{display:flex;justify-content:center;gap:3px;background:#fff;border-bottom:1px solid #dfe2e8;position:sticky;top:70px;z-index:25}.exam-lab-nav button{border:0;background:transparent;padding:14px 22px;font-weight:750;cursor:pointer;border-bottom:3px solid transparent}.exam-lab-nav button.active{color:var(--exam);border-bottom-color:var(--exam)}.exam-lab-main{max-width:1180px;margin:auto;padding:26px 22px 70px}.lab-section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.lab-section-head h1{font-size:34px;margin:8px 0}.lab-section-head p{margin:0;color:var(--muted);max-width:780px;line-height:1.55}.lab-reading-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;align-items:start}.lab-source,.lab-questions,.lab-part,.writing-task,.speaking-card{background:white;border:1px solid #dde1e8;border-radius:16px;padding:22px}.lab-source{position:sticky;top:132px;max-height:calc(100vh - 155px);overflow:auto}.lab-source h2{margin-top:0}.lab-passage{white-space:pre-line;line-height:1.75;font-size:16px}.lab-questions{display:grid;gap:17px}.lab-question{padding-bottom:16px;border-bottom:1px solid #eceef2;line-height:1.5}.lab-options{display:grid;gap:8px;margin-top:10px}.lab-options label{display:flex;gap:8px;padding:10px;border:1px solid #e2e4ea;border-radius:10px;background:#fafbfc}.lab-text-answer{width:100%;margin-top:10px;padding:11px 12px;border:1px solid #cfd4df;border-radius:9px}.lab-result{margin-top:16px;padding:16px;border-radius:13px;background:#eef7f4;display:grid;gap:8px}.lab-result>span{color:var(--muted)}.listening-parts{display:grid;gap:16px}.lab-part-head{display:flex;justify-content:space-between;align-items:center}.lab-part-head small{color:var(--exam);font-weight:800}.lab-part-head h3{margin:4px 0}.audio-status{padding:10px 12px;background:var(--exam-soft);border-radius:9px;margin:12px 0;color:#566070}.writing-task{margin-bottom:18px}.writing-task-label{font-size:18px;font-weight:800;color:var(--exam);margin-bottom:12px}.writing-prompt-box{white-space:pre-line;line-height:1.65;padding:16px;background:#f7f8fb;border-radius:12px;margin:12px 0}.exam-writing-editor{width:100%;min-height:360px;border:1px solid #cfd4df;border-radius:12px;padding:16px;font:inherit;line-height:1.6;resize:vertical}.writing-count{text-align:right;color:var(--muted);font-size:13px;margin:7px 0 12px}.ielts-chart{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end;height:210px;padding:18px;border:1px solid #e0e3e9;border-radius:14px;background:#fff}.ielts-chart>div{display:grid;grid-template-rows:auto 1fr auto;height:100%;gap:7px}.ielts-chart span{align-self:end;height:var(--a);min-height:25px;background:linear-gradient(to right,var(--exam) 0 55%,#8c96a8 55% 100%);border-radius:7px 7px 0 0}.ielts-chart small{font-size:11px;color:var(--muted)}.criteria-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.criteria-grid>div{background:white;padding:10px;border-radius:9px;border:1px solid #dde4e1}.criteria-grid b,.criteria-grid span{display:block}.criteria-grid span{font-size:13px;color:var(--muted);margin-top:4px}.speaking-cards{display:grid;gap:16px}.speaking-part{font-weight:850;color:var(--exam);margin-bottom:10px}.speaking-prompt{white-space:pre-line;font-size:18px;line-height:1.65;padding:18px;background:#f8f9fb;border-radius:12px}.speaking-meta{color:var(--muted);font-size:13px;margin:10px 0}.patient-opening{padding:12px;background:var(--exam-soft);border-radius:10px;margin-bottom:10px;line-height:1.5}.speaking-transcript{background:#fff;padding:10px;border-radius:10px;border:1px solid #dde4e1}.exam-lab-footer{display:flex;justify-content:space-between;gap:15px;padding:18px 22px;background:white;border-top:1px solid #dfe2e8;color:var(--muted);font-size:13px}
@media(max-width:900px){.exam-choice-grid{grid-template-columns:1fr}.exam-hub-hero,.lab-reading-grid{grid-template-columns:1fr}.exam-section-grid{grid-template-columns:1fr}.lab-source{position:relative;top:auto;max-height:none}.exam-hub-hero h1{font-size:40px}.exam-choice-card{min-height:auto}.criteria-grid{grid-template-columns:1fr}}
@media(max-width:650px){.exam-picker-head{display:block}.exam-picker-head h1{font-size:34px;margin-top:20px}.exam-hub-switch{gap:10px;font-size:12px}.exam-hub-hero{padding-top:32px}.exam-hub-hero h1{font-size:34px}.exam-hero-actions{flex-direction:column}.exam-lab-header{grid-template-columns:auto 1fr auto;padding:0 12px;gap:9px}.exam-lab-header .brand{font-size:17px}.exam-lab-header small{display:none}.exam-lab-nav{overflow-x:auto;justify-content:flex-start}.exam-lab-nav button{padding:12px 14px;white-space:nowrap}.exam-lab-main{padding:18px 12px 65px}.lab-section-head{display:block}.lab-section-head .btn{margin-top:12px}.ielts-chart{grid-template-columns:repeat(2,1fr);height:auto}.ielts-chart>div{height:150px}.exam-lab-footer{flex-direction:column}.exam-score-panel strong{font-size:36px}}


/* TOEFL Writing one-frame split workspace */
.toefl-writing-split{
  width:100%!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:minmax(0,48%) minmax(0,52%);
  grid-template-rows:auto minmax(0,1fr);
  gap:0;
  min-height:0;
  overflow:hidden;
  background:#fff;
  border:1px solid #dfe3e8;
  border-radius:8px;
}
.toefl-writing-split>.m-instruction-banner{
  grid-column:1/-1;
  margin:0!important;
  border:0!important;
  border-bottom:1px solid #e1e5ea!important;
  border-radius:0!important;
  padding:10px 14px!important;
  font-size:14px!important;
  line-height:1.25;
  background:#fff8d9!important;
}
.toefl-writing-split>.m-writing-prompt-card,
.toefl-writing-split>.m-writing-response-card{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  min-width:0;
  min-height:0;
  height:100%;
}
.toefl-writing-split>.m-writing-prompt-card{
  overflow:auto;
  overscroll-behavior:contain;
  padding:18px 20px!important;
  border-right:1px solid #dfe3e8!important;
}
.toefl-writing-split>.m-writing-response-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:18px 20px!important;
  background:#fff!important;
  border-top:0!important;
}
.toefl-writing-split>.m-writing-response-card h3{
  flex:0 0 auto;
  margin:0 0 8px!important;
  font-size:18px!important;
}
.toefl-writing-split .email-head{
  flex:0 0 auto;
  margin:0 0 8px!important;
  padding:8px 10px!important;
  font-size:14px!important;
  line-height:1.35!important;
}
.toefl-writing-split .writing-toolbar{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 8px!important;
  padding:7px 8px!important;
  border:1px solid #dfe3e8;
  border-radius:7px;
  background:#f7f8fa;
}
.toefl-writing-split .writing-tools{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}
.toefl-writing-split .writing-toolbar button{
  min-height:30px;
  padding:4px 9px!important;
  border:1px solid #cfd5de!important;
  border-radius:6px!important;
  background:#fff!important;
  font-size:12px!important;
  color:#344054!important;
}
.toefl-writing-split .word-count{
  margin-left:auto;
  white-space:nowrap;
  font-size:12px!important;
  color:#667085;
}
.toefl-writing-split .writing-editor{
  flex:1 1 auto!important;
  width:100%!important;
  min-height:0!important;
  height:100%!important;
  resize:none!important;
  overflow:auto!important;
  margin:0!important;
  padding:14px!important;
  border:1px solid #cfd5de!important;
  border-radius:8px!important;
  font-size:15px!important;
  line-height:1.55!important;
  background:#fff!important;
}
.toefl-writing-split .writing-context{
  font-size:15px!important;
  line-height:1.45!important;
  margin:0 0 12px!important;
}
.toefl-writing-split .academic-task-bullets,
.toefl-writing-split .email-task-bullets{
  margin:8px 0 10px!important;
  padding-left:22px!important;
}
.toefl-writing-split .academic-task-bullets li,
.toefl-writing-split .email-task-bullets li{
  font-size:14px!important;
  line-height:1.35!important;
  margin:5px 0!important;
}
.toefl-writing-split .writing-guidance{
  margin:10px 0 12px!important;
  font-size:13px!important;
  line-height:1.35!important;
  text-align:left!important;
}
.toefl-writing-split .discussion-post{
  grid-template-columns:42px 1fr!important;
  gap:10px!important;
  padding:10px 0!important;
}
.toefl-writing-split .discussion-photo.student{
  width:38px!important;
  height:38px!important;
}
.toefl-writing-split .discussion-photo.professor{
  width:46px!important;
  height:46px!important;
}
.toefl-writing-split .professor-post{
  display:grid!important;
  grid-template-columns:50px 1fr!important;
  gap:10px!important;
  text-align:left!important;
}
.toefl-writing-split .professor-post .discussion-photo{
  margin:0!important;
}
.toefl-writing-split .discussion-post b{
  font-size:14px!important;
  margin-bottom:3px!important;
}
.toefl-writing-split .discussion-post p{
  font-size:13px!important;
  line-height:1.42!important;
}

/* Timed TOEFL: header + split writing workspace + navigation all stay in one viewport */
.exam-body.toefl-writing-mode{
  overflow:hidden!important;
  height:100dvh;
}
.exam-body.toefl-writing-mode .exam-shell{
  width:100%;
  max-width:none!important;
  height:100dvh;
  padding:10px 14px!important;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.exam-body.toefl-writing-mode #testArea:not(.hide){
  flex:1 1 auto;
  min-height:0;
  display:flex!important;
  flex-direction:column;
  overflow:hidden;
}
.exam-body.toefl-writing-mode .exam-header{
  flex:0 0 auto;
  margin-bottom:8px!important;
}
.exam-body.toefl-writing-mode .exam-question-card{
  flex:1 1 auto;
  min-height:0!important;
  height:auto!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:8px!important;
}
.exam-body.toefl-writing-mode .exam-question-card>#responseArea{
  height:100%;
  min-height:0;
}
.exam-body.toefl-writing-mode .toefl-writing-split{
  height:100%;
}
.exam-body.toefl-writing-mode .exam-nav{
  flex:0 0 auto;
  margin-top:8px!important;
  padding:0!important;
  position:static!important;
  background:transparent!important;
}

/* Practice TOEFL Writing: split panels instead of stacked prompt/editor */
body.toefl-writing-mode .practice-layout .card:nth-child(2){
  min-height:0;
}
body.toefl-writing-mode .practice-layout .toefl-writing-split{
  height:min(680px,calc(100dvh - 185px));
  min-height:460px;
}

/* Phone/tablet: still one viewport; prompt and response share the frame vertically */
@media(max-width:760px){
  .toefl-writing-split{
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(0,42%) minmax(0,58%);
  }
  .toefl-writing-split>.m-writing-prompt-card{
    border-right:0!important;
    border-bottom:1px solid #dfe3e8!important;
    padding:12px 14px!important;
  }
  .toefl-writing-split>.m-writing-response-card{
    padding:10px 12px!important;
  }
  .toefl-writing-split .writing-toolbar{
    padding:5px 6px!important;
    margin-bottom:6px!important;
  }
  .toefl-writing-split .writing-toolbar button{
    padding:3px 7px!important;
    font-size:11px!important;
  }
  .toefl-writing-split .writing-context{font-size:13px!important}
  .toefl-writing-split .academic-task-bullets li,
  .toefl-writing-split .email-task-bullets li,
  .toefl-writing-split .discussion-post p{font-size:12px!important}
  .exam-body.toefl-writing-mode .exam-shell{
    padding:6px 7px calc(6px + env(safe-area-inset-bottom))!important;
  }
  .exam-body.toefl-writing-mode .exam-header{
    margin-bottom:5px!important;
  }
  .exam-body.toefl-writing-mode .exam-nav{
    margin-top:5px!important;
  }
  body.toefl-writing-mode .practice-layout .toefl-writing-split{
    height:calc(100dvh - 210px);
    min-height:520px;
  }
}

.build-sentence-review-notice{margin:0 0 14px;padding:11px 13px;border-radius:10px;background:#fff7d6;border:1px solid #ead27a;color:#5f4c00;font-weight:750;font-size:14px;line-height:1.4}

/* TOEFL Writing shows only the active task timer, never a second overall section clock. */
body.toefl-writing-section #sectionClock{display:none!important}
body.toefl-writing-section .exam-clock-wrap{align-items:flex-end}


/* TOEFL 2026 visual Writing screens */
.exam-body.toefl-writing-section{
  height:100dvh!important;
  min-height:100dvh!important;
  overflow:hidden!important;
  background:#eef0f3;
}
.exam-body.toefl-writing-section .exam-shell{
  height:100dvh!important;
  min-height:0!important;
  max-width:none!important;
  width:100%!important;
  padding:8px 12px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.exam-body.toefl-writing-section #testArea:not(.hide){
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.exam-body.toefl-writing-section .exam-header{
  flex:0 0 auto!important;
  min-height:58px!important;
  margin:0 0 6px!important;
  padding:8px 12px!important;
}
.exam-body.toefl-writing-section .exam-question-card{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
  padding:0!important;
  margin:0!important;
  border-radius:4px!important;
}
.exam-body.toefl-writing-section #responseArea{
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
.exam-body.toefl-writing-section .exam-nav{
  flex:0 0 auto!important;
  min-height:50px!important;
  margin:6px 0 0!important;
  padding:0!important;
}
.exam-body.toefl-writing-section #prompt,
.exam-body.toefl-writing-section #audioStage,
.exam-body.toefl-writing-section #timingNote{
  display:none!important;
}
.toefl-person-photo,
.discussion-photo{
  flex:0 0 auto;
  overflow:hidden;
  border-radius:50%;
  background:#dfe4ea;
  position:relative;
}
.toefl-person-photo:after,
.discussion-photo:after{
  content:attr(data-initial);
  position:absolute;inset:0;
  display:grid;place-items:center;
  font-weight:800;color:#667085;
  z-index:0;
}
.toefl-person-photo img,
.discussion-photo img{
  position:relative;z-index:1;
  width:100%;height:100%;
  object-fit:cover;object-position:center top;
  display:block;
}
.toefl-person-photo.large{width:82px;height:82px;border:3px solid #fff;box-shadow:0 2px 10px rgba(16,24,40,.12)}
.toefl-person-photo.email{width:74px;height:74px;border:2px solid #d7dce4}
.discussion-photo.student{width:48px!important;height:48px!important}
.discussion-photo.professor{width:54px!important;height:54px!important}

/* Academic Discussion */
.toefl-discussion-screen{
  grid-template-columns:minmax(0,50%) minmax(0,50%)!important;
  grid-template-rows:40px minmax(0,1fr)!important;
  height:100%!important;
}
.toefl-discussion-screen .m-instruction-banner{
  height:40px!important;
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-weight:700!important;
  padding:6px 12px!important;
}
.toefl-discussion-screen .m-writing-prompt-card{
  padding:12px 16px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.toefl-discussion-intro{
  flex:0 0 auto;
  display:flex;flex-direction:column;
  gap:2px;
  padding:0 0 8px;
  border-bottom:1px solid #e3e6eb;
  font-size:12px;
  line-height:1.3;
}
.toefl-discussion-intro b{font-size:14px;color:#1f2937}
.toefl-discussion-intro span{color:#667085}
.toefl-thread{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:6px;
  padding-top:7px;
}
.toefl-thread-row{
  min-height:0;
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:7px 9px;
  border:1px solid #e1e5eb;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}
.toefl-thread-row.professor{
  grid-template-columns:58px minmax(0,1fr);
  background:#f7f8fa;
  border-color:#d9dee6;
}
.toefl-thread-row b{display:block;font-size:13px;margin:0 0 2px;color:#20242b}
.toefl-thread-row p{
  margin:0!important;
  font-size:11.5px!important;
  line-height:1.32!important;
  color:#343b47;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
}
.toefl-discussion-screen .m-writing-response-card{
  padding:12px 14px!important;
}
.toefl-discussion-screen .writing-editor{
  min-height:0!important;
  height:auto!important;
  flex:1 1 auto!important;
}

/* Write an Email */
.toefl-email-screen{
  grid-template-columns:minmax(0,45%) minmax(0,55%)!important;
  grid-template-rows:40px minmax(0,1fr)!important;
  height:100%!important;
}
.toefl-email-screen .m-instruction-banner{
  height:40px!important;
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:6px 12px!important;
  font-weight:700!important;
}
.toefl-email-screen .m-writing-prompt-card{
  padding:14px 18px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px;
}
.toefl-email-recipient{
  display:grid;
  grid-template-columns:78px 1fr;
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid #dde2e9;
  border-radius:10px;
  background:#f8f9fb;
}
.toefl-email-recipient small{display:block;color:#747d8c;font-size:10px;font-weight:800;letter-spacing:.08em}
.toefl-email-recipient strong{display:block;font-size:18px;margin:2px 0}
.toefl-email-recipient span{display:block;color:#667085;font-size:12px}
.toefl-email-scenario{
  flex:0 1 auto;
  padding:10px 12px;
  border-left:4px solid #5b6472;
  background:#fff;
  font-size:13px;
  line-height:1.42;
}
.toefl-email-scenario p{margin:0!important}
.toefl-email-task{
  flex:0 1 auto;
  font-size:13px;
  line-height:1.35;
}
.toefl-email-task b{font-size:14px}
.toefl-email-screen .email-task-bullets{margin:6px 0!important;padding-left:20px!important}
.toefl-email-screen .email-task-bullets li{font-size:12.5px!important;line-height:1.3!important;margin:4px 0!important}
.toefl-email-screen .writing-guidance{margin:auto 0 0!important;font-size:11.5px!important;color:#667085}
.toefl-email-screen .m-writing-response-card{padding:12px 14px!important}
.toefl-email-screen .writing-editor{flex:1 1 auto!important;min-height:0!important;height:auto!important}

/* Build a Sentence */
.toefl-build-screen{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:40px minmax(0,1fr);
  overflow:hidden;
  background:#fff;
}
.toefl-build-screen>.m-instruction-banner{
  margin:0!important;
  border:0!important;
  border-bottom:1px solid #e1e4e9!important;
  border-radius:0!important;
  min-height:40px!important;
  height:40px!important;
  padding:6px 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff3c9!important;
  font-size:14px!important;
  font-weight:750!important;
}
.toefl-build-main{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,58%) minmax(280px,42%);
  overflow:hidden;
}
.toefl-build-conversation{
  min-height:0;
  padding:18px 20px;
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:14px;
  border-right:1px solid #dfe3e8;
  background:#fff;
}
.toefl-build-speaker-card,
.toefl-build-reply-card{
  min-height:0;
  display:grid;
  grid-template-columns:94px minmax(0,1fr);
  align-items:center;
  gap:15px;
  padding:14px 16px;
  border:1px solid #e1e5eb;
  border-radius:12px;
  background:#fafbfc;
}
.toefl-build-reply-card{background:#f6f8fb;border-color:#d5dbe4}
.toefl-build-speaker-copy span,
.toefl-build-reply-copy span{display:block;font-size:12px;font-weight:800;color:#667085;margin-bottom:6px}
.toefl-build-speaker-copy p{margin:0;font-size:17px;line-height:1.45;color:#20242b}
.toefl-build-reply-copy{min-width:0}
.toefl-build-reply-copy .ibt-sentence-frame{
  min-height:54px!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:5px!important;
  padding:8px!important;
  border:1px solid #b9c1cd!important;
  border-radius:8px!important;
  background:#fff!important;
}
.toefl-build-bank{
  min-height:0;
  padding:20px 18px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#f8f9fb;
}
.toefl-build-bank .word-bank-label{flex:0 0 auto;font-size:13px;font-weight:700;margin-bottom:10px;color:#4b5563}
.toefl-build-bank .tile-pool{
  flex:1 1 auto;
  min-height:0;
  align-content:flex-start;
  justify-content:flex-start;
  overflow:hidden;
  padding:10px!important;
  border:1px dashed #cbd2dc;
  border-radius:10px;
  background:#fff;
}
.toefl-build-bank .sentence-tile,
.toefl-build-reply-card .sentence-tile{
  font-size:13px!important;
  padding:7px 10px!important;
  margin:3px!important;
}

/* Keep all Writing content in the frame on standard test screens. */
@media(min-width:761px) and (max-height:760px){
  .exam-body.toefl-writing-section .exam-header{min-height:50px!important;padding:5px 10px!important}
  .exam-body.toefl-writing-section .exam-nav{min-height:44px!important;margin-top:4px!important}
  .toefl-thread-row p{font-size:10.5px!important;-webkit-line-clamp:3}
  .toefl-discussion-intro{font-size:11px}
  .toefl-person-photo.large{width:68px;height:68px}
  .toefl-build-speaker-card,.toefl-build-reply-card{grid-template-columns:78px minmax(0,1fr);padding:9px 12px}
  .toefl-build-conversation{padding:10px 14px;gap:8px}
  .toefl-build-bank{padding:12px}
}
@media(max-width:760px){
  .exam-body.toefl-writing-section .exam-shell{padding:4px 5px!important}
  .toefl-discussion-screen,.toefl-email-screen{
    grid-template-columns:45% 55%!important;
    grid-template-rows:34px minmax(0,1fr)!important;
  }
  .toefl-discussion-screen .m-instruction-banner,.toefl-email-screen .m-instruction-banner,
  .toefl-build-screen>.m-instruction-banner{height:34px!important;min-height:34px!important;font-size:11px!important}
  .toefl-thread-row{grid-template-columns:34px minmax(0,1fr);padding:4px;gap:5px}
  .toefl-thread-row.professor{grid-template-columns:38px minmax(0,1fr)}
  .discussion-photo.student{width:30px!important;height:30px!important}
  .discussion-photo.professor{width:34px!important;height:34px!important}
  .toefl-thread-row b{font-size:10px}.toefl-thread-row p{font-size:9px!important;line-height:1.2!important;-webkit-line-clamp:4}
  .toefl-discussion-intro{font-size:9px;padding-bottom:4px}.toefl-discussion-intro b{font-size:10px}
  .toefl-discussion-screen .m-writing-prompt-card,.toefl-email-screen .m-writing-prompt-card{padding:6px!important}
  .toefl-discussion-screen .m-writing-response-card,.toefl-email-screen .m-writing-response-card{padding:6px!important}
  .toefl-email-recipient{grid-template-columns:40px 1fr;gap:6px;padding:5px}
  .toefl-person-photo.email{width:36px;height:36px}.toefl-email-recipient strong{font-size:11px}.toefl-email-recipient span{font-size:9px}
  .toefl-email-scenario,.toefl-email-task{font-size:9.5px;padding:5px}.toefl-email-screen .email-task-bullets li{font-size:9px!important}
  .toefl-build-main{grid-template-columns:62% 38%}
  .toefl-build-conversation{padding:7px;gap:6px}
  .toefl-build-speaker-card,.toefl-build-reply-card{grid-template-columns:42px minmax(0,1fr);gap:7px;padding:6px}
  .toefl-person-photo.large{width:38px;height:38px;border-width:1px}
  .toefl-build-speaker-copy p{font-size:11px}
  .toefl-build-bank{padding:7px}
  .toefl-build-bank .sentence-tile,.toefl-build-reply-card .sentence-tile{font-size:9px!important;padding:4px 6px!important}
}


/* TOEFL Writing v13.5 — scenario-left / opinions-above-editor / full viewport */
.exam-body.toefl-writing-section .exam-shell{padding:0!important;background:#fff!important}
.exam-body.toefl-writing-section .exam-header{border-radius:0!important;margin:0!important;min-height:56px!important;padding:7px 16px!important;border-bottom:1px solid #dfe3e8!important}
.exam-body.toefl-writing-section .exam-question-card{border:0!important;border-radius:0!important;box-shadow:none!important}
.exam-body.toefl-writing-section .exam-nav{margin:0!important;min-height:54px!important;padding:6px 14px!important;border-top:1px solid #dfe3e8!important;background:#fff!important}
.exam-body.toefl-writing-section .toefl-writing-split{border:0!important;border-radius:0!important;height:100%!important}
.toefl-scenario-label{flex:0 0 auto;font-size:10px;font-weight:850;letter-spacing:.12em;color:#667085;margin:2px 0 -3px}
.toefl-email-screen{grid-template-columns:minmax(0,46%) minmax(0,54%)!important}
.toefl-email-screen .m-writing-prompt-card{padding:12px 18px!important;gap:8px!important}
.toefl-email-screen .toefl-email-scenario{flex:0 0 auto!important;padding:12px 14px!important;border-left:4px solid #667085!important;background:#f8f9fb!important;font-size:13px!important;line-height:1.43!important}
.toefl-email-screen .toefl-email-task{flex:0 0 auto!important}
.toefl-email-screen .writing-guidance{margin:auto 0 0!important}
.toefl-email-screen .m-writing-response-card{padding:10px 14px!important}
.toefl-email-screen .writing-editor{min-height:0!important;overflow:auto!important}

/* Academic Discussion: professor scenario only on left; exactly two opinions above editor on right */
.toefl-discussion-screen{grid-template-columns:minmax(0,43%) minmax(0,57%)!important}
.toefl-discussion-screen .m-writing-prompt-card{padding:12px 16px!important;display:flex!important;flex-direction:column!important;gap:9px!important;overflow:hidden!important}
.toefl-discussion-instructions{flex:0 0 auto;padding:10px 12px;border:1px solid #e1e5eb;border-radius:8px;background:#f8f9fb;display:grid;gap:4px;font-size:12px;line-height:1.35}
.toefl-discussion-instructions b{font-size:14px}
.toefl-discussion-instructions span{color:#596273}
.toefl-professor-scenario{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:62px minmax(0,1fr);align-content:start;gap:12px;padding:14px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;overflow:hidden}
.toefl-professor-scenario .discussion-photo.professor{width:58px!important;height:58px!important}
.toefl-professor-scenario b{display:block;font-size:14px;margin:2px 0 6px}
.toefl-professor-scenario p{margin:0!important;font-size:14px!important;line-height:1.48!important;color:#2d3440;display:block!important;overflow:hidden}
.toefl-discussion-screen .m-writing-response-card{padding:9px 12px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.toefl-opinions-title{flex:0 0 auto;font-size:11px;font-weight:850;letter-spacing:.08em;color:#667085;margin-bottom:5px}
.toefl-two-opinions{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:7px}
.toefl-opinion-card{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:7px;padding:7px 8px;border:1px solid #dfe3e8;border-radius:8px;background:#f8f9fb;overflow:hidden}
.toefl-opinion-card .discussion-photo.student{width:38px!important;height:38px!important}
.toefl-opinion-card b{display:block;font-size:11px;margin-bottom:2px}
.toefl-opinion-card p{margin:0!important;font-size:10.5px!important;line-height:1.25!important;color:#3f4753;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.toefl-response-heading{flex:0 0 auto;display:flex;align-items:end;justify-content:space-between;gap:10px;margin:0 0 4px}
.toefl-response-heading h3{margin:0!important;font-size:16px!important}
.toefl-response-heading span{font-size:10px;color:#667085}
.toefl-discussion-screen .writing-toolbar{margin-bottom:5px!important}
.toefl-discussion-screen .writing-editor{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:auto!important}

/* Listen & Repeat topic illustrations — no people */
.lr-illustrated-task{height:100%;min-height:0;overflow:hidden}
.lr-illustrated-card{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
.lr-topic-illustration{flex:1 1 auto;min-height:180px;display:grid;place-items:center;margin:6px auto 10px;width:min(620px,92%);overflow:hidden}
.lr-topic-illustration svg{display:block;width:100%;height:100%;max-height:360px}
.lr-illustrated-card .m-gradient-btn{flex:0 0 auto;align-self:center}
.lr-illustrated-card .m-task-title{flex:0 0 auto}

/* Fit common laptop heights without page scrolling */
@media(min-width:761px) and (max-height:760px){
 .exam-body.toefl-writing-section .exam-header{min-height:48px!important;padding:4px 12px!important}
 .exam-body.toefl-writing-section .exam-nav{min-height:46px!important;padding:4px 10px!important}
 .toefl-email-screen .m-instruction-banner,.toefl-discussion-screen .m-instruction-banner{height:34px!important;min-height:34px!important}
 .toefl-email-recipient{grid-template-columns:56px 1fr!important;padding:7px!important}
 .toefl-person-photo.email{width:52px!important;height:52px!important}
 .toefl-email-recipient strong{font-size:14px!important}
 .toefl-email-screen .toefl-email-scenario{font-size:11.5px!important;padding:8px 10px!important}
 .toefl-email-screen .email-task-bullets li{font-size:11px!important;margin:2px 0!important}
 .toefl-discussion-instructions{padding:7px 9px;font-size:10.5px}.toefl-discussion-instructions b{font-size:12px}
 .toefl-professor-scenario{grid-template-columns:50px 1fr;padding:9px;gap:8px}
 .toefl-professor-scenario .discussion-photo.professor{width:46px!important;height:46px!important}
 .toefl-professor-scenario p{font-size:11.5px!important;line-height:1.36!important}
 .toefl-opinion-card{grid-template-columns:34px 1fr;padding:5px;gap:5px}
 .toefl-opinion-card .discussion-photo.student{width:30px!important;height:30px!important}
 .toefl-opinion-card p{font-size:9.5px!important;-webkit-line-clamp:3}
 .toefl-opinion-card b{font-size:10px}
}

/* Keep mobile in one test frame too. */
@media(max-width:760px){
 .toefl-email-screen{grid-template-columns:45% 55%!important}
 .toefl-discussion-screen{grid-template-columns:41% 59%!important}
 .toefl-discussion-instructions{padding:4px;font-size:8.5px;line-height:1.18}.toefl-discussion-instructions b{font-size:9px}
 .toefl-professor-scenario{grid-template-columns:30px 1fr;padding:4px;gap:4px}
 .toefl-professor-scenario .discussion-photo.professor{width:27px!important;height:27px!important}
 .toefl-professor-scenario b{font-size:9px;margin:0 0 2px}.toefl-professor-scenario p{font-size:8.5px!important;line-height:1.2!important}
 .toefl-two-opinions{gap:3px;margin-bottom:3px}
 .toefl-opinion-card{grid-template-columns:26px 1fr;padding:3px;gap:3px}
 .toefl-opinion-card .discussion-photo.student{width:23px!important;height:23px!important}
 .toefl-opinion-card b{font-size:8px}.toefl-opinion-card p{font-size:7.5px!important;line-height:1.15!important;-webkit-line-clamp:4}
 .toefl-opinions-title{font-size:8px;margin-bottom:2px}.toefl-response-heading h3{font-size:11px!important}.toefl-response-heading span{font-size:7px}
 .lr-topic-illustration{min-height:120px;width:96%;margin:2px auto 5px}.lr-topic-illustration svg{max-height:230px}
}

/* Public Fasiho homepage hero photo + learner stories */
.f-photo-visual{height:560px!important;display:grid!important;place-items:center!important}
.f-photo-wrap{position:relative;width:min(100%,620px);height:520px;border-radius:34px;overflow:hidden;background:#eef3f8;box-shadow:0 30px 80px rgba(23,40,93,.16)}
.f-photo-wrap>img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.f-photo-score{position:absolute;left:18px;top:22px;width:210px;padding:14px 15px;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 16px 40px rgba(20,34,83,.16);border:1px solid rgba(226,230,240,.9)}
.f-photo-score small{display:block;font-size:10px;color:#667085;font-weight:750;margin-bottom:5px}
.f-photo-score>strong{font-size:33px;letter-spacing:-.04em;color:#101936}
.f-photo-score>strong span{font-size:14px;color:#778198}
.f-photo-score>div{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;margin-top:10px}
.f-photo-score>div span{display:flex;justify-content:space-between;gap:6px;font-size:10px;padding:6px 7px;border-radius:8px;background:#f7f9ff;color:#68728a}
.f-photo-score>div b{color:#3157ff}
.f-photo-target{position:absolute;right:18px;top:150px;display:grid;gap:3px;padding:12px 14px;border-radius:15px;background:rgba(255,255,255,.97);box-shadow:0 16px 38px rgba(20,34,83,.14)}
.f-photo-target b{font-size:13px;color:#08734a}
.f-photo-target span{font-size:10px;color:#6d768a}
.f-stories{background:linear-gradient(180deg,#fbfcff,#f6f8ff)}
.f-stories-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px}
.f-stories-head h2{max-width:820px;margin-top:14px}
.f-testimonials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.f-testimonial{min-width:0;display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid #e4e8f2;border-radius:20px;background:white;box-shadow:0 12px 34px rgba(31,48,110,.06)}
.f-testimonial.t-toefl{border-color:#d6e4ff;background:linear-gradient(180deg,#fff,#f7faff)}
.f-testimonial.t-ielts{border-color:#f2dce3;background:linear-gradient(180deg,#fff,#fff8fa)}
.f-testimonial.t-oet{border-color:#d3ebe5;background:linear-gradient(180deg,#fff,#f7fcfa)}
.f-testimonial-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.f-testimonial-top>span{font-weight:850;color:#3157ff;font-size:13px}
.t-ielts .f-testimonial-top>span{color:#c33f5d}.t-oet .f-testimonial-top>span{color:#087e69}
.f-testimonial-top small{font-size:9px;line-height:1.25;color:#8a92a3;text-align:right}
.f-stars{color:#f5a524;letter-spacing:2px;font-size:16px}
.f-testimonial blockquote{margin:0;font-size:14px;line-height:1.55;color:#263047;flex:1}
.f-result{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:11px;border-radius:13px;background:rgba(245,247,252,.95);text-align:center}
.f-result>div{display:grid;gap:2px}.f-result b{font-size:21px}.f-result small{font-size:9px;color:#7b8496}.f-result>span{color:#98a1b3}
.f-result-pass{grid-template-columns:1fr}.f-result-pass b{color:#08734a;font-size:17px}
.f-person{display:flex;align-items:center;gap:10px;border-top:1px solid #e7eaf1;padding-top:12px}
.f-person img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center top;background:#e7ebf2}
.f-person div{display:grid;gap:2px}.f-person b{font-size:12px}.f-person span{font-size:10px;color:#778198}
@media(max-width:1100px){.f-testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .f-photo-visual{height:470px!important}
 .f-photo-wrap{height:440px;border-radius:24px}
 .f-photo-score{left:10px;top:12px;width:180px;padding:11px}.f-photo-score>strong{font-size:27px}
 .f-photo-target{right:10px;top:122px;padding:10px}
 .f-testimonials{grid-template-columns:1fr}
 .f-stories-head{display:block}
}

/* Fasiho product-first homepage hero v13.7 */
.f-preview-hero{grid-template-columns:minmax(0,.88fr) minmax(540px,1.12fr);gap:38px;min-height:650px;padding:42px 0 44px}
.f-preview-hero .f-copy h1{max-width:650px}
.f-live-preview{height:auto!important;min-height:560px!important;display:block!important}
.f-live-shell{height:100%;min-height:560px;border:1px solid #e1e7f2;border-radius:30px;background:linear-gradient(180deg,#fff,#f8faff);box-shadow:0 30px 80px rgba(29,49,118,.14);padding:16px;display:flex;flex-direction:column;overflow:hidden}
.f-live-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:6px 4px 13px}
.f-live-top>div{display:grid;gap:3px}.f-live-top small{font-size:10px;font-weight:850;letter-spacing:.12em;color:#3157ff}.f-live-top strong{font-size:16px;color:#111a39}
.f-live-pill{font-size:10px;font-weight:800;padding:7px 9px;border-radius:999px;background:#eaf0ff;color:#3157ff}
.f-preview-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;border-radius:14px;background:#eef2f8}
.f-preview-tabs button{border:0;border-radius:10px;padding:9px 8px;background:transparent;color:#6b7488;font-size:11px;font-weight:800;cursor:pointer}
.f-preview-tabs button.active{background:#fff;color:#18244d;box-shadow:0 4px 14px rgba(31,48,110,.08)}
.f-preview-stage{flex:1 1 auto;min-height:0;padding:11px 0 10px}
.f-preview-panel{height:100%;min-height:330px;border:1px solid #e2e7ef;border-radius:18px;background:#fff;padding:14px;overflow:hidden}
.f-preview-panel[hidden]{display:none!important}
.f-preview-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.f-preview-meta span{font-weight:850;font-size:12px}.f-preview-meta b{font-size:10px;color:#3157ff;background:#eef3ff;padding:6px 8px;border-radius:999px}
.f-toefl-demo{display:grid;gap:9px}.f-demo-speaker,.f-demo-reply{display:grid;grid-template-columns:42px 1fr;gap:9px;align-items:center;padding:9px 10px;border:1px solid #e5e8ef;border-radius:12px;background:#fafbfc}.f-demo-speaker img,.f-demo-reply img,.f-oet-patient img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center top}.f-demo-speaker small,.f-demo-reply small{font-size:9px;font-weight:800;color:#7a8395}.f-demo-speaker p{margin:2px 0 0;font-size:12px;line-height:1.35}
.f-demo-answer{display:flex;align-items:center;gap:5px;margin-top:4px;flex-wrap:wrap}.f-demo-answer span{min-width:52px;padding:5px 7px;border-bottom:2px solid #6f7788;text-align:center;font-size:11px;font-weight:750;color:#29334b}.f-demo-answer span.filled{color:#3157ff}.f-demo-answer.correct span{border-color:#0b8a65;color:#08734a}.f-demo-answer b{font-size:16px}
.f-demo-bank{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:9px;border-radius:12px;background:#f5f7fb}.f-demo-bank button{border:1px solid #d8deea;border-radius:8px;background:#fff;padding:7px 10px;font-size:11px;font-weight:750;color:#313b5b;cursor:pointer}.f-demo-bank button.selected{background:#eaf0ff;border-color:#8da8ff;color:#2449d8}.f-demo-hint{text-align:center;color:#8790a2;font-size:9px}
.f-ielts-demo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.f-ielts-task,.f-ielts-response{border:1px solid #e5e8ef;border-radius:12px;padding:11px;background:#fbfbfc}.f-ielts-task small{font-size:9px;font-weight:850;color:#b52d48}.f-ielts-task h3{font-size:14px;line-height:1.25;margin:6px 0}.f-ielts-task p,.f-ielts-response p{font-size:10px;line-height:1.45;color:#5d6678;margin:0}.f-ielts-response>div{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.f-ielts-response b{font-size:11px}.f-ielts-response span{font-size:9px;color:#b52d48}.f-score-chips{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.f-score-chips span{display:flex;justify-content:space-between;gap:5px;padding:8px;border-radius:9px;background:#fff3f5;font-size:9px;color:#7b5260}.f-score-chips b{color:#a82944}
.f-oet-demo{display:grid;grid-template-columns:.9fr 1.1fr;gap:10px}.f-oet-patient,.f-oet-card{border:1px solid #dbe9e5;border-radius:12px;padding:11px;background:#f8fcfb}.f-oet-patient{display:grid;grid-template-columns:46px 1fr;gap:9px;align-items:start}.f-oet-patient small,.f-oet-card small{font-size:9px;font-weight:850;color:#087e69;letter-spacing:.08em}.f-oet-patient p{font-size:11px;line-height:1.4;margin:4px 0 0}.f-oet-card h3{font-size:14px;margin:6px 0}.f-oet-card ul{margin:4px 0 0;padding-left:16px}.f-oet-card li{font-size:9.5px;line-height:1.35;margin:3px 0}.f-oet-feedback{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:10px;background:#eaf8f4}.f-oet-feedback b{font-size:10px;color:#087e69}.f-oet-feedback span{font-size:9px;color:#55736c}
.f-preview-student{flex:0 0 auto;display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;background:#101a3a;color:#fff}.f-preview-student img{width:56px;height:56px;border-radius:11px;object-fit:cover;object-position:center top}.f-preview-student>div{display:grid;gap:2px}.f-preview-student b{font-size:11px}.f-preview-student span{font-size:9px;color:#bac4df}.f-preview-student>strong{font-size:9px;padding:7px 8px;border-radius:999px;background:#dff8ee;color:#08734a;white-space:nowrap}
@media(max-width:1100px){.f-preview-hero{grid-template-columns:1fr!important}.f-preview-hero .f-copy{text-align:center}.f-preview-hero .f-copy h1,.f-preview-hero .f-copy>p{margin-left:auto;margin-right:auto}.f-live-preview{width:min(760px,100%);margin:8px auto 0}}
@media(max-width:700px){.f-preview-hero{padding-top:30px}.f-live-shell{min-height:520px;border-radius:22px;padding:11px}.f-live-top strong{font-size:13px}.f-live-pill{display:none}.f-preview-tabs button{font-size:9px;padding:8px 3px}.f-preview-panel{min-height:310px;padding:10px}.f-ielts-demo,.f-oet-demo{grid-template-columns:1fr}.f-score-chips,.f-oet-feedback{grid-column:1}.f-preview-student{grid-template-columns:46px 1fr}.f-preview-student img{width:46px;height:46px}.f-preview-student>strong{display:none}.f-demo-answer span{min-width:42px}}


/* Fasiho immersive 3D homepage v13.8 */
body:has(.f-preview-hero){
  background:
    radial-gradient(circle at 86% 14%,rgba(78,111,255,.14),transparent 28%),
    radial-gradient(circle at 14% 24%,rgba(126,78,255,.10),transparent 30%),
    linear-gradient(180deg,#fbfcff 0,#f7f9ff 44%,#fff 100%);
}
.f-preview-hero{
  perspective:1500px;
  perspective-origin:62% 42%;
  isolation:isolate;
  position:relative;
}
.f-preview-hero:before{
  content:"";
  position:absolute;
  inset:4% -6% 10% 38%;
  z-index:-2;
  border-radius:50%;
  background:radial-gradient(circle,rgba(87,103,255,.13),rgba(125,77,255,.055) 42%,transparent 70%);
  filter:blur(12px);
  pointer-events:none;
}
.f-preview-hero .f-copy{
  transform:translateZ(42px);
  transform-style:preserve-3d;
}
.f-preview-hero .f-copy .eyebrow{transform:translateZ(18px)}
.f-preview-hero .f-copy h1{transform:translateZ(28px)}
.f-preview-hero .f-copy .hero-actions{transform:translateZ(16px)}

.f-3d-scene{
  --tilt-x:0;
  --tilt-y:0;
  --parallax-x:0px;
  --parallax-y:0px;
  perspective:1300px;
  transform-style:preserve-3d;
  position:relative!important;
  overflow:visible!important;
  padding:18px 10px 22px;
}
.f-3d-scene:before{
  content:"";
  position:absolute;
  left:10%;right:8%;bottom:-24px;height:48px;
  background:radial-gradient(ellipse,rgba(25,39,99,.22),rgba(25,39,99,.07) 46%,transparent 74%);
  filter:blur(16px);
  transform:translateZ(-100px) rotateX(72deg);
  pointer-events:none;
}
.f-3d-orb{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  z-index:0;
  filter:blur(.2px);
  will-change:transform;
}
.f-3d-orb-a{
  width:150px;height:150px;
  right:-38px;top:62px;
  background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.98),rgba(123,87,255,.42) 40%,rgba(62,88,255,.08) 72%);
  box-shadow:inset -18px -22px 36px rgba(57,49,173,.16),0 30px 60px rgba(65,76,194,.15);
  transform:translate3d(calc(var(--parallax-x) * -.55),calc(var(--parallax-y) * -.55),90px);
}
.f-3d-orb-b{
  width:78px;height:78px;
  left:-34px;bottom:100px;
  background:radial-gradient(circle at 34% 28%,#fff,rgba(88,203,211,.68) 42%,rgba(67,104,255,.12) 75%);
  box-shadow:0 22px 46px rgba(53,125,175,.18);
  transform:translate3d(calc(var(--parallax-x) * .8),calc(var(--parallax-y) * .65),120px);
}
.f-3d-ring{
  position:absolute;
  width:210px;height:82px;
  right:-72px;bottom:92px;
  border:16px solid rgba(87,101,255,.12);
  border-left-color:rgba(123,81,255,.3);
  border-radius:50%;
  pointer-events:none;
  z-index:0;
  transform:translate3d(calc(var(--parallax-x) * -.9),calc(var(--parallax-y) * .7),30px) rotateX(68deg) rotateZ(-24deg);
  box-shadow:0 18px 42px rgba(70,77,177,.08);
}

.f-3d-scene .f-live-shell{
  position:relative;
  z-index:2;
  transform-style:preserve-3d;
  will-change:transform;
  transform:
    rotateX(calc(var(--tilt-x) * -4.5deg))
    rotateY(calc(var(--tilt-y) * 5.5deg))
    translateZ(28px);
  transition:box-shadow .25s ease;
  box-shadow:
    0 46px 90px rgba(29,49,118,.18),
    0 10px 28px rgba(41,54,116,.08),
    inset 0 1px rgba(255,255,255,.9);
}
.f-3d-scene .f-live-shell:before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(94,111,255,.33),rgba(129,79,255,.17),rgba(255,255,255,.85));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
.f-3d-scene .f-live-top{transform:translateZ(36px)}
.f-3d-scene .f-preview-tabs{transform:translateZ(44px)}
.f-3d-scene .f-preview-stage{transform:translateZ(26px);transform-style:preserve-3d}
.f-3d-scene .f-preview-panel{box-shadow:0 18px 36px rgba(35,50,118,.07)}
.f-3d-scene .f-demo-speaker,
.f-3d-scene .f-demo-reply,
.f-3d-scene .f-ielts-task,
.f-3d-scene .f-ielts-response,
.f-3d-scene .f-oet-patient,
.f-3d-scene .f-oet-card{transform:translateZ(18px)}
.f-3d-scene .f-demo-bank,
.f-3d-scene .f-score-chips,
.f-3d-scene .f-oet-feedback{transform:translateZ(30px)}
.f-3d-scene .f-preview-student{
  position:relative;
  z-index:4;
  transform:translateZ(52px) translateY(2px);
  box-shadow:0 18px 34px rgba(13,25,67,.24);
}
.f-3d-scene .f-preview-student img{
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}

.f-depth-card{
  transform-style:preserve-3d;
  will-change:transform;
  transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)) translateZ(0);
  transition:transform .18s ease,box-shadow .18s ease;
}
.f-depth-card:hover{
  transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)) translateZ(16px)!important;
  box-shadow:0 24px 56px rgba(31,48,110,.14)!important;
}
.exam-home-cards>a.f-depth-card>b,
.f-testimonial.f-depth-card .f-result,
.grid3 .card.f-depth-card h3{
  transform:translateZ(22px);
}
.f-testimonial.f-depth-card .f-person{transform:translateZ(14px)}

@keyframes f-float-a{
  0%,100%{translate:0 0}
  50%{translate:0 -10px}
}
@keyframes f-float-b{
  0%,100%{translate:0 0}
  50%{translate:7px -7px}
}
.f-3d-orb-a{animation:f-float-a 6s ease-in-out infinite}
.f-3d-orb-b{animation:f-float-b 5s ease-in-out infinite}

@media(max-width:1100px){
  .f-preview-hero{perspective:1200px}
  .f-preview-hero .f-copy{transform:none}
}
@media(max-width:700px){
  .f-3d-scene{padding:8px 0 14px}
  .f-3d-orb-a{width:92px;height:92px;right:-18px;top:80px}
  .f-3d-orb-b{width:54px;height:54px;left:-12px;bottom:88px}
  .f-3d-ring{display:none}
  .f-3d-scene .f-live-shell{transform:none!important}
  .f-depth-card,.f-depth-card:hover{transform:none!important}
}
@media(prefers-reduced-motion:reduce){
  .f-3d-orb-a,.f-3d-orb-b{animation:none}
  .f-3d-scene .f-live-shell,.f-depth-card{transform:none!important;transition:none!important}
}


/* Homepage polish v13.8.1 */
.f-home-faq{background:#fff}
.f-faq-head{max-width:760px;margin-bottom:24px}
.f-faq-head h2{margin-top:14px}
.f-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.f-faq-grid details{border:1px solid #e4e8f2;border-radius:16px;background:#fbfcff;padding:0 18px;box-shadow:0 8px 24px rgba(31,48,110,.035)}
.f-faq-grid summary{cursor:pointer;list-style:none;padding:17px 28px 17px 0;font-weight:800;font-size:14px;position:relative;color:#18213d}
.f-faq-grid summary::-webkit-details-marker{display:none}
.f-faq-grid summary:after{content:"+";position:absolute;right:0;top:14px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#eef2ff;color:#3157ff;font-size:17px}
.f-faq-grid details[open] summary:after{content:"−"}
.f-faq-grid details p{margin:0 0 17px;color:#667085;font-size:13px;line-height:1.6}
.f-home-cta{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;border-radius:22px}
.f-home-cta h2{font-size:26px;margin:0 0 7px}
.f-home-cta p{margin:0;max-width:720px;line-height:1.55}
.f-home-cta .btn{white-space:nowrap}
@media(max-width:900px){body:has(.f-preview-hero) .navlinks a.f-nav-signin{display:inline-flex}}
@media(max-width:700px){
 .f-faq-grid{grid-template-columns:1fr}
 .f-home-cta{align-items:stretch;flex-direction:column}
 .f-home-cta .btn{text-align:center;width:100%}
}
@media(max-width:420px){body:has(.f-preview-hero) .navlinks a.f-nav-signin{display:none}}

/* OET exam lab — one-screen workstation */
body[data-exam="oet"].exam-lab-page{height:100dvh;overflow:hidden}
body[data-exam="oet"] .exam-lab{height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
body[data-exam="oet"] .exam-lab-main{min-height:0;overflow:hidden;padding:12px 18px}
body[data-exam="oet"] .lab-section-head{margin-bottom:10px}
body[data-exam="oet"] .lab-section-head p{margin:4px 0;font-size:13px}
body[data-exam="oet"] .lab-reading-grid{height:calc(100% - 82px);min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);gap:14px}
body[data-exam="oet"] .lab-source,body[data-exam="oet"] .lab-questions{min-height:0;overflow:auto;overscroll-behavior:contain}
body[data-exam="oet"] .listening-parts,body[data-exam="oet"] .speaking-cards{height:calc(100% - 82px);min-height:0;overflow:auto;overscroll-behavior:contain}
body[data-exam="oet"] .writing-task{height:calc(100% - 82px);display:grid;grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:10px 16px;overflow:hidden}
body[data-exam="oet"] .writing-task .writing-task-label{grid-column:1/-1}
body[data-exam="oet"] .writing-task .writing-prompt-box{grid-column:1;grid-row:2;overflow:auto;min-height:0}
body[data-exam="oet"] .writing-task .writing-editor-wrap{grid-column:2;grid-row:2;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
body[data-exam="oet"] .writing-task .exam-writing-editor{min-height:0;height:100%;resize:none}
body[data-exam="oet"] .writing-task .grade-writing{grid-column:2;grid-row:3;justify-self:end}
body[data-exam="oet"] .writing-task .writing-grade{position:absolute;inset:90px 18px 54px auto;max-width:min(520px,48vw);overflow:auto;z-index:5}
@media(max-width:760px){
 body[data-exam="oet"] .exam-lab-main{padding:8px 10px}
 body[data-exam="oet"] .lab-reading-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,.9fr) minmax(0,1.1fr)}
 body[data-exam="oet"] .writing-task{grid-template-columns:1fr;grid-template-rows:auto minmax(0,.85fr) minmax(0,1.15fr) auto}
 body[data-exam="oet"] .writing-task .writing-prompt-box{grid-column:1;grid-row:2}
 body[data-exam="oet"] .writing-task .writing-editor-wrap{grid-column:1;grid-row:3}
 body[data-exam="oet"] .writing-task .grade-writing{grid-column:1;grid-row:4}
 body[data-exam="oet"] .writing-task .writing-grade{inset:82px 10px 48px 10px;max-width:none}
}


/* Fasiho premium homepage v14.0 */
body:has(.f-preview-hero){overflow-x:hidden}
.f-nav-wrap{position:sticky;top:0;z-index:60;background:rgba(251,252,255,.76);backdrop-filter:saturate(165%) blur(18px);-webkit-backdrop-filter:saturate(165%) blur(18px);border-bottom:1px solid rgba(225,229,240,.72);transition:box-shadow .25s ease,background .25s ease}
.f-nav-wrap.f-scrolled{background:rgba(255,255,255,.9);box-shadow:0 12px 36px rgba(25,39,88,.07)}
.f-nav{height:74px}
.f-brand{display:inline-flex;align-items:center;gap:9px;font-size:22px;letter-spacing:-.035em}
.f-brand-mark{width:31px;height:31px;display:inline-grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#2c50ff,#7c55f6 62%,#9b6cff);color:#fff;font-size:16px;font-weight:900;box-shadow:0 8px 20px rgba(76,76,235,.23),inset 0 1px rgba(255,255,255,.35)}
.f-brand-word{background:linear-gradient(120deg,#111938 12%,#353c68 52%,#5b4cf0 92%);-webkit-background-clip:text;background-clip:text;color:transparent}
.f-nav .navlinks>a:not(.btn){font-size:13px;font-weight:720;color:#5c6478;transition:color .18s ease}
.f-nav .navlinks>a:not(.btn):hover{color:#1c2648}
.f-nav-cta{border-radius:999px;padding:10px 16px;box-shadow:0 8px 20px rgba(82,72,240,.2)}
.f-premium-eyebrow{gap:7px;padding:8px 12px;background:rgba(240,237,255,.84);border:1px solid rgba(112,90,245,.12);box-shadow:0 6px 18px rgba(72,60,176,.05)}
.f-premium-eyebrow i{width:7px;height:7px;border-radius:50%;background:#6b56ef;box-shadow:0 0 0 4px rgba(107,86,239,.11)}
.f-preview-hero{padding-top:54px}
.f-preview-hero .f-copy h1{font-size:clamp(48px,5.2vw,70px);line-height:.99;letter-spacing:-.058em;margin:20px 0 20px;color:#0d1533;text-wrap:balance}
.f-preview-hero .f-copy h1 span{background:linear-gradient(115deg,#3157ff 12%,#6d4af2 52%,#a24fe6 95%);-webkit-background-clip:text;background-clip:text;color:transparent;position:relative;white-space:nowrap}
.f-hero-lead{font-size:18px!important;line-height:1.7!important;max-width:610px!important;color:#667087!important}
.f-benefits{border:1px solid rgba(221,225,238,.95);box-shadow:0 12px 28px rgba(35,46,95,.055);background:rgba(255,255,255,.72)!important;backdrop-filter:blur(10px)}
.f-benefits>div{position:relative}
.f-benefits>div:not(:last-child):after{content:"";position:absolute;right:-6px;top:18%;height:64%;width:1px;background:#e7eaf2}
.f-hero-primary{border-radius:999px;padding:14px 21px;box-shadow:0 14px 34px rgba(75,68,238,.25);transition:transform .18s ease,box-shadow .18s ease}
.f-hero-primary:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(75,68,238,.3)}
.f-hero-primary span{display:inline-block;margin-left:5px;transition:transform .18s ease}.f-hero-primary:hover span{transform:translateX(3px)}
.f-hero-secondary{border-radius:999px;padding:13px 18px;background:rgba(255,255,255,.8);box-shadow:0 8px 22px rgba(35,46,95,.05)}
.f-play-dot{display:inline-grid;place-items:center;width:23px;height:23px;margin-right:7px;border-radius:50%;background:#eef1ff;color:#4b55dd;font-size:8px;vertical-align:-1px}
.f-hero-trust{display:flex;flex-wrap:wrap;gap:13px 18px;margin-top:18px;color:#747d92;font-size:11px;font-weight:650}
.f-hero-trust span{display:inline-flex;align-items:center;gap:5px}.f-hero-trust b{color:#14845f;font-size:11px}
.f-disclaimer{font-size:10px!important;color:#99a0af!important;margin-top:16px!important}
.f-live-shell{border-color:rgba(219,225,240,.92);background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(249,250,255,.96));box-shadow:0 36px 95px rgba(36,48,115,.17),0 1px 0 rgba(255,255,255,.9) inset}
.f-live-top{padding:8px 7px 14px}
.f-live-pill{background:linear-gradient(135deg,#edf1ff,#f5eeff);border:1px solid rgba(89,84,235,.1)}
.f-preview-tabs{border:1px solid #e8ebf2;background:#f4f6fa}
.f-preview-tabs button{transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.f-preview-tabs button:hover{transform:translateY(-1px)}
.f-preview-panel{border-color:#e7eaf2}
.f-preview-student{background:linear-gradient(130deg,#101937,#1c2852 68%,#29386f)}
.f-proof-strip{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:18px;margin:8px 0 26px;padding:21px 24px;border:1px solid rgba(224,228,239,.9);border-radius:22px;background:rgba(255,255,255,.7);box-shadow:0 16px 45px rgba(31,48,110,.055);backdrop-filter:blur(12px)}
.f-proof-item{display:grid;gap:3px}.f-proof-item small{font-size:9px;letter-spacing:.11em;font-weight:850;color:#7b69e9}.f-proof-item b{font-size:14px;color:#19213e}.f-proof-item span{font-size:11px;color:#7c8497}.f-proof-sep{width:1px;height:38px;background:#e5e8f0}
.exam-home-cards{gap:12px!important;margin-top:0!important}
.exam-home-cards>a{border-radius:18px!important;background:rgba(255,255,255,.9)!important;box-shadow:0 9px 28px rgba(31,48,110,.045)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important}
.exam-home-cards>a:hover{border-color:#cfd6fa!important}
.exam-home-cards>a>b{border-radius:12px!important;background:linear-gradient(145deg,#eef2ff,#f4f0ff)!important;color:#384fd7!important}
.f-premium-features{padding:92px 0;background:linear-gradient(180deg,rgba(255,255,255,.2),#fff 24%,#fff 82%,rgba(247,249,255,.7))}
.f-section-head{max-width:780px;margin-bottom:32px}.f-section-head h2{margin:14px 0 12px;font-size:clamp(34px,4vw,48px);line-height:1.08;text-wrap:balance}
.f-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.f-bento .card{grid-column:span 3;position:relative;overflow:hidden;min-height:230px;padding:23px;border-radius:22px;border-color:#e6e9f1;background:linear-gradient(155deg,#fff,#fbfcff);box-shadow:0 10px 34px rgba(31,48,110,.045)}
.f-bento .card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-105px;background:radial-gradient(circle,rgba(102,84,239,.11),transparent 67%);pointer-events:none}
.f-bento .card h3{font-size:19px;line-height:1.25;margin:8px 0 9px;letter-spacing:-.02em}
.f-bento .card p{font-size:13px;line-height:1.6;margin:0;color:#6b7488}
.f-bento-main{grid-column:span 6!important;grid-row:span 2;min-height:474px!important;padding:28px!important;background:linear-gradient(145deg,#101936,#182552 58%,#26386f)!important;color:#fff}
.f-bento-main:before{width:380px!important;height:380px!important;right:-120px!important;top:-140px!important;background:radial-gradient(circle,rgba(127,105,255,.42),rgba(77,105,255,.08) 54%,transparent 70%)!important}
.f-bento-main .f-feature-kicker{color:#aebcff}.f-bento-main h3{font-size:31px!important;max-width:470px}.f-bento-main p{color:#c8d0e4!important;font-size:14px!important;max-width:520px}
.f-bento-wide{grid-column:span 6!important;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;column-gap:16px;min-height:230px!important;background:linear-gradient(145deg,#fbfdff,#f4f7ff)!important}
.f-bento-wide .f-progress-preview{grid-column:2}
.f-feature-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#eef2ff,#f6efff);color:#5360dd;font-weight:900;box-shadow:inset 0 0 0 1px rgba(86,93,217,.08)}
.f-bento-main .f-feature-icon{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);margin-bottom:36px}
.f-feature-kicker{display:block;margin-top:15px;font-size:9px;letter-spacing:.11em;font-weight:900;color:#6b61d6}
.f-mini-flow{position:absolute;left:28px;right:28px;bottom:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.f-mini-flow span{display:grid;gap:4px;padding:14px 13px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.06);font-size:9px;color:#aeb9d7;backdrop-filter:blur(8px)}.f-mini-flow b{font-size:13px;color:#fff}
.f-progress-preview{display:grid;gap:8px;align-self:end;margin-top:17px}.f-progress-preview:before{content:"Recent skill strength";font-size:10px;font-weight:800;color:#798297}
.f-progress-preview span{height:8px;border-radius:99px;background:linear-gradient(90deg,#5265ea var(--w),#e8ebf4 var(--w));box-shadow:inset 0 1px rgba(0,0,0,.03)}
.f-premium-section{position:relative}
.f-stories{padding:90px 0;background:linear-gradient(180deg,#f8faff 0,#f5f7ff 50%,#fbfcff 100%)}
.f-stories:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(110,88,245,.07),transparent 25%),radial-gradient(circle at 85% 75%,rgba(55,125,220,.06),transparent 27%);pointer-events:none}
.f-testimonial{border-radius:24px!important;box-shadow:0 14px 40px rgba(31,48,110,.065)!important}
.f-testimonial blockquote{font-size:13.5px!important;line-height:1.65!important}
.f-person img{box-shadow:0 4px 12px rgba(25,34,80,.12)}
.f-home-faq{padding:92px 0!important;background:linear-gradient(180deg,#fff,#fbfcff)!important}
.f-faq-grid details{border-radius:18px!important;box-shadow:0 9px 28px rgba(31,48,110,.04)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.f-faq-grid details:hover{border-color:#d5dcf4;box-shadow:0 14px 34px rgba(31,48,110,.07)!important;transform:translateY(-1px)}
.f-home-cta{position:relative;overflow:hidden;background:linear-gradient(130deg,#111936,#1b2854 66%,#2b3d78)!important;box-shadow:0 22px 54px rgba(24,35,84,.18)!important}
.f-home-cta:after{content:"";position:absolute;width:260px;height:260px;right:-70px;top:-150px;border-radius:50%;background:radial-gradient(circle,rgba(119,91,255,.45),transparent 68%);pointer-events:none}.f-home-cta>*{position:relative;z-index:1}
.f-home-cta .btn{box-shadow:0 12px 28px rgba(89,79,241,.25)}
.f-premium-footer{background:#0f1731;color:#b6bfd3;border-top:0;padding:38px 0}
.f-premium-footer>.container{display:flex;align-items:center;justify-content:space-between;gap:30px}
.f-footer-brand{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:9px;row-gap:3px}.f-footer-brand .f-brand-mark{width:28px;height:28px;font-size:14px;grid-row:1/3}.f-footer-brand b{color:#fff;font-size:16px}.f-footer-brand>span:last-child{font-size:10px;color:#8792ad}
.f-footer-links{font-size:11px;text-align:right}.f-footer-links a{color:#c5cce0}.f-footer-links a:hover{color:#fff}
.f-reveal{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.2,.8,.2,1),transform .65s cubic-bezier(.2,.8,.2,1)}
.f-reveal.f-visible{opacity:1;transform:none}
.f-reveal[data-delay="1"]{transition-delay:.06s}.f-reveal[data-delay="2"]{transition-delay:.12s}.f-reveal[data-delay="3"]{transition-delay:.18s}
@media(max-width:1100px){
 .f-preview-hero .f-copy h1{font-size:58px}
 .f-bento .card{grid-column:span 6}.f-bento-main{grid-column:span 12!important;grid-row:auto;min-height:400px!important}.f-bento-wide{grid-column:span 12!important}
}
@media(max-width:760px){
 .f-nav-wrap{position:sticky}.f-nav{height:66px}.f-brand-mark{width:29px;height:29px;border-radius:9px}
 .f-nav .navlinks{gap:8px}.f-nav-cta{padding:9px 12px;font-size:12px}
 .f-preview-hero{padding-top:34px!important}.f-preview-hero .f-copy h1{font-size:clamp(42px,12vw,56px);line-height:1.02}.f-hero-lead{font-size:16px!important}
 .f-benefits>div:not(:last-child):after{display:none}
 .hero-actions{display:grid!important;grid-template-columns:1fr!important}.f-hero-primary,.f-hero-secondary{width:100%;text-align:center}
 .f-hero-trust{justify-content:center}
 .f-proof-strip{grid-template-columns:1fr;gap:13px;padding:18px}.f-proof-sep{width:100%;height:1px}.f-proof-item{text-align:center}
 .f-premium-features,.f-stories,.f-home-faq{padding:66px 0!important}
 .f-section-head h2{font-size:34px}
 .f-bento{grid-template-columns:1fr}.f-bento .card,.f-bento-main,.f-bento-wide{grid-column:1!important;min-height:auto!important}
 .f-bento-main{padding:23px!important;min-height:430px!important}.f-bento-main h3{font-size:27px!important}.f-mini-flow{left:23px;right:23px;bottom:23px;grid-template-columns:1fr}.f-mini-flow span{display:flex;justify-content:space-between}.f-bento-wide{grid-template-columns:auto 1fr}
 .f-premium-footer>.container{display:grid;text-align:left}.f-footer-links{text-align:left;line-height:2}
}
@media(max-width:430px){
 .f-brand-word{font-size:20px}.f-nav-signin{display:none!important}
 .f-preview-hero .f-copy h1{font-size:43px}
 .f-hero-trust{display:grid;justify-content:start;text-align:left}
 .f-mini-flow{position:static;margin-top:28px}
 .f-bento-main{min-height:auto!important}
 .f-bento-main .f-feature-icon{margin-bottom:20px}
 .f-bento-wide{display:block}.f-bento-wide .f-progress-preview{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.f-reveal{opacity:1!important;transform:none!important;transition:none!important}}


/* Fasiho professional cross-exam results v14 */
.professional-results,.pro-exam-result{--result-ink:#101828;--result-muted:#667085;--result-line:#e6e9f0;--result-soft:#f8f9fc}
.professional-results{max-width:1180px;margin:0 auto;padding:8px 0 44px;color:var(--result-ink)}
.pro-score-hero,.pro-result-hero{display:grid;grid-template-columns:minmax(0,1.45fr) repeat(2,minmax(170px,.55fr));gap:14px;align-items:stretch;background:linear-gradient(135deg,#3547ff,#7547f7);color:#fff;border-radius:26px;padding:28px;box-shadow:0 20px 50px rgba(61,62,185,.16)}
.pro-result-hero{grid-template-columns:minmax(0,1fr) minmax(180px,.32fr);border-radius:18px;padding:22px;margin:-2px -2px 0}
.result-eyebrow,.pro-result-hero .exam-kicker{display:block;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#e8e7ff}
.pro-score-main .score{font-size:68px;font-weight:900;line-height:1;margin:12px 0 8px;letter-spacing:-.05em}.pro-score-main p,.pro-result-hero p{margin:0;color:#ecebff}
.pro-hero-stat,.pro-best-card{display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:18px}
.pro-hero-stat small,.pro-best-card small{color:#dedcff}.pro-hero-stat strong,.pro-best-card strong{font-size:24px;margin:5px 0}.pro-hero-stat span,.pro-best-card span{font-size:11px;color:#dedcff}
.pro-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.pro-section-score{background:#fff;border:1px solid var(--result-line);border-radius:18px;padding:18px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.pro-section-score>span{display:block;font-size:12px;font-weight:800;color:#5d6578;text-transform:uppercase;letter-spacing:.06em}.pro-section-score strong{display:block;font-size:30px;margin:7px 0 3px}.pro-section-score small{display:block;color:var(--result-muted)}.pro-section-score em{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #eef0f4;font-size:11px;font-style:normal;color:#7b8190}
.result-tabs{display:flex;gap:6px;overflow:auto;padding:5px;background:#eef0f6;border-radius:14px;margin:18px 0}.result-tabs button{border:0;background:transparent;color:#5d6476;padding:11px 15px;border-radius:10px;font:inherit;font-size:13px;font-weight:750;white-space:nowrap;cursor:pointer}.result-tabs button.active{background:#fff;color:#181b37;box-shadow:0 2px 9px rgba(16,24,40,.08)}
.pro-result-panel{background:#fff;border:1px solid var(--result-line);border-radius:20px;padding:24px}.pro-result-panel h2,.pro-result-panel h3{margin-top:0}.result-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.result-summary-card{background:var(--result-soft);border-radius:16px;padding:20px}.result-summary-card h2,.result-summary-card h3{margin:0 0 9px}.result-loading-bar{height:8px;background:linear-gradient(90deg,#eceef4,#d9d5ff,#eceef4);background-size:200% 100%;border-radius:999px;animation:resultShimmer 1.2s linear infinite}@keyframes resultShimmer{to{background-position:-200% 0}}
.pro-review-list{display:grid;gap:10px}.result-review-section{display:grid;gap:10px;margin-bottom:24px}.result-review-section>h3{margin:6px 0}.pro-review-item{border:1px solid var(--result-line);border-radius:14px;background:#fff;overflow:hidden}.pro-review-item summary{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none}.pro-review-item summary::-webkit-details-marker{display:none}.pro-review-item summary>span:last-child{color:var(--result-muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pro-review-body{padding:0 16px 17px;border-top:1px solid #f0f1f4}.pro-review-body p{line-height:1.55}.pro-review-body small{display:block;color:#7a8190;margin-bottom:4px;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.result-status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.result-status.good{background:#eaf8f1;color:#157347}.result-status.bad{background:#fff0f1;color:#b42318}.result-status.neutral{background:#eef1ff;color:#5146c8}
.response-copy,.response-review-box{background:#f8f9fb;border:1px solid #e7e9ef;border-radius:13px;padding:15px}.response-copy p{white-space:pre-wrap;line-height:1.65;margin-bottom:0}.response-prompt{white-space:pre-wrap;line-height:1.55}
.word-compare{display:grid;gap:12px;margin-top:14px}.word-compare>div:not(.word-legend){border:1px solid #e7e9ef;background:#fafbfc;border-radius:12px;padding:14px}.word-compare p{line-height:2;margin:7px 0 0}.word-token{display:inline-block;border-radius:6px;padding:1px 4px}.word-ok{background:#e8f7ef;color:#176a46}.word-missed{background:#ffeaec;color:#a92832;text-decoration:line-through}.word-changed{background:#fff2d9;color:#8a5a00}.word-legend{display:flex;gap:8px;flex-wrap:wrap}.word-legend span{font-size:10px;padding:5px 8px;border-radius:999px}
.improve-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.improve-grid article{border:1px solid var(--result-line);border-radius:14px;padding:16px;background:#fafbfc}.improve-grid article span{font-size:11px;font-weight:850;color:#5e53cf;text-transform:uppercase;letter-spacing:.06em}.improve-grid article p{margin-bottom:0;line-height:1.55}
.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.personal-best-badge{display:inline-flex;vertical-align:middle;margin-left:8px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.18);font-size:10px;letter-spacing:.02em}
.exam-best-strip{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:10px;align-items:center;background:#fff;border:1px solid #e2e5eb;border-radius:15px;padding:13px 16px;margin:0 0 18px}.exam-best-title span,.exam-best-title small{display:block}.exam-best-title span{font-weight:850}.exam-best-title small{color:#7a8190;margin-top:3px}.exam-best-strip>div:not(.exam-best-title){border-left:1px solid #eceef2;padding-left:12px}.exam-best-strip small{font-size:10px;color:#7a8190}.exam-best-strip strong{display:block;margin-top:4px}
.pro-exam-result{padding:0!important;background:#fff!important;border:1px solid #e2e5eb;overflow:hidden}.pro-exam-result>.result-tabs,.pro-exam-result>.pro-result-panel{margin-left:18px;margin-right:18px}.pro-exam-result>.pro-result-panel{margin-bottom:18px}.pro-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pro-stat-grid>div{background:#f7f8fb;border-radius:12px;padding:14px}.pro-stat-grid small{display:block;color:#7a8190}.pro-stat-grid strong{display:block;font-size:22px;margin-top:5px}.feedback-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.feedback-columns>div{background:#f8f9fb;border-radius:12px;padding:14px}.result-disclaimer{color:#72798a;font-size:12px}.result-loading{padding:18px}
@media(max-width:850px){.pro-score-hero{grid-template-columns:1fr 1fr}.pro-score-main{grid-column:1/-1}.pro-section-grid{grid-template-columns:repeat(2,1fr)}.result-overview-grid{grid-template-columns:1fr}.exam-best-strip{grid-template-columns:repeat(2,1fr)}.exam-best-title{grid-column:1/-1}.exam-best-strip>div:not(.exam-best-title){border-left:0;border-top:1px solid #eceef2;padding:9px 0 0}.pro-result-hero{grid-template-columns:1fr}.feedback-columns{grid-template-columns:1fr}}
@media(max-width:560px){.professional-results{padding:0 2px 30px}.pro-score-hero{grid-template-columns:1fr;padding:20px;border-radius:20px}.pro-score-main{grid-column:auto}.pro-score-main .score{font-size:54px}.pro-section-grid{grid-template-columns:1fr 1fr}.result-tabs{border-radius:12px}.pro-result-panel{padding:17px}.pro-review-item summary{grid-template-columns:auto 1fr}.pro-review-item summary>span:last-child{grid-column:1/-1;white-space:normal}.improve-grid,.pro-stat-grid{grid-template-columns:1fr}.pro-result-hero{margin:0;border-radius:14px}.pro-exam-result>.result-tabs,.pro-exam-result>.pro-result-panel{margin-left:10px;margin-right:10px}}

/* Exam progress / recommendations */
.exam-progress-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px;padding:14px 16px;border:1px solid #ddd8ff;background:#f8f6ff;border-radius:15px}.exam-progress-banner>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.exam-progress-banner b{font-size:14px}.exam-progress-banner small{grid-column:2;color:#707587;margin-top:2px}.exam-progress-banner .in-progress-dot{width:9px;height:9px;border-radius:50%;background:#6554d9;box-shadow:0 0 0 4px #ebe7ff}.exam-lab-nav button{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}.exam-section-check{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#e7f7ef;color:#147349;font-size:11px;font-weight:900}.exam-section-recommended{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f3eaff;color:#8a3ec0;font-size:9px;font-weight:800;letter-spacing:.01em}
@media(max-width:650px){.exam-progress-banner{align-items:flex-start;flex-direction:column}.exam-progress-banner .btn{width:100%}.exam-lab-nav button{justify-content:center}.exam-section-recommended{font-size:8px}}

.exam-hub-progress{margin:16px 0 20px}.hub-section-badge{display:inline-flex;align-items:center;width:max-content;margin:2px 6px 8px 0;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.hub-section-badge.completed{background:#e8f7ef;color:#19734a}.hub-section-badge.recommended{background:#f3eaff;color:#8a3ec0}.exam-section-card.recommended-section{border-color:#cfc4ff;box-shadow:0 10px 28px rgba(98,81,223,.08)}.hub-recommendation-note{grid-column:1/-1;margin:14px 0 0;padding:13px 15px;border:1px solid #ece6ff;border-radius:13px;background:#fbf9ff;color:#666b7a;font-size:12px}

/* TOEFL coherent Listen & Repeat scenarios + exit dialog */
.lr-scenario-intro{margin:0 0 18px;padding:16px 18px;border:1px solid #e2e6ef;border-radius:15px;background:#f8fafc;text-align:left}.lr-scenario-intro b{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5b55c8;margin-bottom:6px}.lr-scenario-intro p{margin:0;line-height:1.5;font-weight:650;color:#20263a}.lr-scenario-intro.compact{padding:11px 14px}.lr-scenario-intro.compact p{font-size:14px;font-weight:600}.exit-test-card{max-width:520px}.exit-test-card>p{line-height:1.55;color:#636a7a}.exit-test-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.exit-test-actions .btn-ghost{grid-column:1/-1}.danger-outline{border-color:#efc6c9!important;color:#a72f38!important}.danger-outline:hover{background:#fff3f4!important}.exam-tools{flex-wrap:wrap}
@media(max-width:560px){.exit-test-actions{grid-template-columns:1fr}.exit-test-actions .btn-ghost{grid-column:auto}.lr-scenario-intro{padding:14px}.exam-tools{gap:4px}.exam-tool{padding-left:8px!important;padding-right:8px!important;font-size:12px!important}}


/* Listen & Repeat visual focus: keep one coherent scene and highlight the object/area named by each sentence. */
.lr-highlight-scene{position:relative!important;min-height:300px;max-height:360px;aspect-ratio:16/10;border:1px solid #e1e6ee;border-radius:22px;background:linear-gradient(180deg,#fbfcfe,#f3f6fa);box-shadow:0 14px 34px rgba(39,51,73,.08);isolation:isolate}
.lr-highlight-scene .lr-scene-base{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-height:none!important}
.lr-hotspot{position:absolute;z-index:2;display:grid;place-items:center;width:54px;height:54px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.96);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 7px 18px rgba(31,41,55,.13);opacity:.42;filter:saturate(.65);transition:opacity .18s ease,transform .18s ease,filter .18s ease,box-shadow .18s ease}
.lr-hotspot-icon{font-size:28px;line-height:1;filter:none}
.lr-hotspot-label{position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);min-width:118px;max-width:170px;padding:6px 9px;border-radius:9px;background:#182033;color:#fff;font-size:12px;font-weight:800;line-height:1.2;text-align:center;box-shadow:0 6px 14px rgba(24,32,51,.2);opacity:0;pointer-events:none}
.lr-hotspot.is-highlighted{z-index:5;width:68px;height:68px;border:4px solid #f2b705;background:#fff7c7;box-shadow:0 0 0 8px rgba(255,218,74,.28),0 12px 28px rgba(89,70,0,.25);opacity:1;filter:none;transform:translate(-50%,-50%) scale(1.05);animation:lrFocusPulse 1.45s ease-in-out infinite}
.lr-hotspot.is-highlighted .lr-hotspot-label{opacity:1}
.lr-highlight-caption{position:absolute;z-index:6;top:11px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:88%;padding:7px 11px;border:1px solid #f0d267;border-radius:999px;background:rgba(255,251,226,.96);box-shadow:0 5px 15px rgba(78,61,0,.08);white-space:nowrap}
.lr-highlight-caption span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#876b00}
.lr-highlight-caption strong{overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#2f2a18}
@keyframes lrFocusPulse{0%,100%{box-shadow:0 0 0 7px rgba(255,218,74,.24),0 12px 28px rgba(89,70,0,.22)}50%{box-shadow:0 0 0 13px rgba(255,218,74,.11),0 14px 30px rgba(89,70,0,.28)}}
@media(max-width:650px){.lr-highlight-scene{min-height:230px;max-height:270px}.lr-hotspot{width:43px;height:43px;border-radius:14px}.lr-hotspot-icon{font-size:23px}.lr-hotspot.is-highlighted{width:56px;height:56px}.lr-hotspot-label{min-width:100px;max-width:130px;font-size:10px;padding:5px 7px}.lr-highlight-caption{top:7px;padding:5px 8px}.lr-highlight-caption span{display:none}.lr-highlight-caption strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){.lr-hotspot,.lr-hotspot.is-highlighted{animation:none;transition:none}}


/* Homepage practice-bank proof v14.1 */
.f-brand:before{display:none!important;content:none!important}
.f-bank-showcase{max-width:1180px;margin:26px auto 10px;padding:34px;border:1px solid rgba(91,76,240,.12);border-radius:30px;background:
 radial-gradient(circle at 8% 5%,rgba(91,76,240,.09),transparent 34%),
 linear-gradient(145deg,#fff 0%,#fbfbff 54%,#f7f5ff 100%);
 box-shadow:0 18px 54px rgba(34,44,92,.08)}
.f-bank-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);column-gap:54px;align-items:end;margin-bottom:24px}
.f-bank-intro .eyebrow{grid-column:1/-1;width:max-content;margin-bottom:11px}
.f-bank-intro h2{font-size:clamp(30px,3.4vw,45px);line-height:1.04;letter-spacing:-.045em;margin:0;color:#111831}
.f-bank-intro h2 span{background:linear-gradient(115deg,#3157ff,#6d4af2 55%,#9b4fe1);-webkit-background-clip:text;background-clip:text;color:transparent}
.f-bank-intro p{margin:0;color:#687189;line-height:1.7;font-size:15px}
.f-bank-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.f-bank-card{position:relative;overflow:hidden;border:1px solid #e7e9f4;border-radius:22px;padding:21px;background:rgba(255,255,255,.9);box-shadow:0 9px 28px rgba(29,38,85,.055)}
.f-bank-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-50px;top:-58px;background:var(--bank-glow,rgba(91,76,240,.09));pointer-events:none}
.f-bank-toefl{--bank-glow:rgba(65,91,255,.15)}.f-bank-ielts{--bank-glow:rgba(112,73,239,.13)}.f-bank-oet{--bank-glow:rgba(22,154,117,.12)}
.f-bank-card-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.f-bank-card-top>span{font-size:12px;font-weight:850;letter-spacing:.08em;color:#667085;text-transform:uppercase;padding-top:7px}
.f-bank-card-top strong{font-size:38px;line-height:1;color:#141a36;letter-spacing:-.05em}
.f-bank-card>p{font-size:13px;color:#697289;line-height:1.55;min-height:40px;margin:13px 0 16px}
.f-bank-breakdown{display:flex;flex-wrap:wrap;gap:7px}
.f-bank-breakdown span{padding:7px 9px;border-radius:999px;background:#f5f6fb;color:#596277;font-size:11px;white-space:nowrap}
.f-bank-breakdown b{color:#2c3561}
.f-bank-bottom{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid rgba(220,224,237,.82);font-size:12px;color:#747c91}
.f-bank-bottom>span:first-child{color:#353e64}.f-bank-bottom>span:first-child b{font-size:17px;color:#5448e8}
.f-bank-bottom>a{font-weight:800;color:#5548ea;text-decoration:none}.f-bank-bottom>a:hover{text-decoration:underline}
@media(max-width:900px){
 .f-bank-showcase{margin:20px 18px 8px;padding:25px}
 .f-bank-intro{grid-template-columns:1fr;gap:12px}.f-bank-intro .eyebrow{grid-column:1}.f-bank-intro h2{font-size:36px}
 .f-bank-stats{grid-template-columns:1fr}.f-bank-card>p{min-height:0}
 .f-bank-bottom{grid-template-columns:1fr;gap:7px}
}
@media(max-width:430px){
 .f-bank-showcase{margin-left:14px;margin-right:14px;padding:20px;border-radius:24px}
 .f-bank-intro h2{font-size:31px}.f-bank-card-top strong{font-size:34px}
}

.f-brand-logo{width:36px;height:36px;display:block;object-fit:contain;filter:drop-shadow(0 7px 12px rgba(49,87,255,.16))}
.f-footer-brand .f-brand-logo{width:31px;height:31px;grid-row:1/3}
.f-bank-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 20px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}
.f-bank-pager span{font-size:13px;font-weight:750;color:#5e6881;text-align:center}
.ielts-chart .dual-reading{display:flex;gap:8px;margin-top:7px}
.ielts-chart .dual-reading i{height:8px;border-radius:999px;display:block;background:linear-gradient(90deg,#3157ff,#6c4bf1)}
.ielts-chart .dual-reading i:last-child{background:linear-gradient(90deg,#16a99d,#39c6b5)}
@media(max-width:430px){.f-brand-logo{width:32px;height:32px}.f-bank-pager{gap:6px}.f-bank-pager .btn{padding:9px 11px;font-size:12px}}


/* Listen & Repeat story visuals v2 — large topic hero, then a distinct visual for each sentence. */
.lr-visual-stage{width:100%;display:grid;place-items:center;min-height:0}
.lr-hero-scene,.lr-step-scene{position:relative!important;width:min(760px,96%)!important;min-height:300px!important;max-height:none!important;aspect-ratio:16/10!important;margin:5px auto 10px!important;border:1px solid #dfe5ee;border-radius:24px;background:#fff;box-shadow:0 16px 38px rgba(35,47,69,.10);overflow:hidden;isolation:isolate}
.lr-hero-scene svg,.lr-step-scene svg{position:absolute;inset:0;width:100%;height:100%;max-height:none!important}
.lr-hero-copy{position:absolute;left:24px;bottom:22px;z-index:3;display:grid;gap:4px;max-width:72%;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(32,39,55,.14);backdrop-filter:blur(6px)}
.lr-hero-copy span,.lr-step-badge span{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#6b58d6}
.lr-hero-copy strong{font-size:22px;line-height:1.12;color:#182033}
.lr-step-badge{position:absolute;left:20px;top:18px;z-index:4;display:flex;align-items:center;gap:9px;padding:8px 12px;border:2px solid #f1c94d;border-radius:999px;background:#fff8cf;box-shadow:0 8px 20px rgba(95,72,0,.12)}
.lr-step-badge strong{font-size:13px;color:#2b2a20}
.lr-sentence-focus{position:absolute;left:22px;right:22px;bottom:18px;z-index:4;padding:11px 14px;border-radius:14px;background:rgba(24,32,51,.92);color:#fff;font-size:15px;font-weight:700;line-height:1.4;text-align:center;box-shadow:0 8px 22px rgba(24,32,51,.2)}
.lr-sentence-focus mark{padding:2px 4px;border-radius:5px;background:#ffd84d;color:#231c00;font-weight:900}
.lr-step-scene:after{content:"";position:absolute;inset:9px;border:3px solid rgba(255,216,77,.42);border-radius:19px;pointer-events:none;animation:lrSceneGlow 1.7s ease-in-out infinite}
@keyframes lrSceneGlow{0%,100%{opacity:.55}50%{opacity:1}}
@media(max-width:650px){
 .lr-hero-scene,.lr-step-scene{width:98%!important;min-height:245px!important;margin:2px auto 7px!important;border-radius:18px}
 .lr-hero-copy{left:12px;bottom:12px;padding:9px 11px;max-width:78%}.lr-hero-copy strong{font-size:17px}
 .lr-step-badge{left:11px;top:10px;padding:6px 9px}.lr-step-badge strong{font-size:11px}
 .lr-sentence-focus{left:10px;right:10px;bottom:9px;padding:8px 9px;font-size:11px;line-height:1.3}
}
@media(prefers-reduced-motion:reduce){.lr-step-scene:after{animation:none}}

/* Full-scene Listen & Repeat subject spotlight v3 */
.lr-step-scene svg{overflow:visible}
.lr-target-ring{transform-box:fill-box;transform-origin:center;animation:lrSubjectRing 1.45s ease-in-out infinite}
.lr-target-pulse{transform-box:fill-box;transform-origin:center;animation:lrSubjectDot 1.45s ease-in-out infinite}
@keyframes lrSubjectRing{0%,100%{opacity:.72;transform:scale(.985)}50%{opacity:1;transform:scale(1.018)}}
@keyframes lrSubjectDot{0%,100%{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.28)}}
@media(prefers-reduced-motion:reduce){.lr-target-ring,.lr-target-pulse{animation:none}}


/* Keep OET recording controls inside the workstation above its footer. */
body[data-exam="oet"] .exam-lab-main:has(.speaking-cards){align-self:stretch;margin:0 auto;width:100%;height:100%;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}
body[data-exam="oet"] .speaking-cards{height:auto;min-height:0;overflow:visible}
.record-btn,.patient-audio{touch-action:manipulation}

/* Reference Writing screens: readable text, wide workspace, fixed navigation. */
.exam-body.toefl-reference-writing .exam-shell{width:calc(100% - 32px)!important;max-width:1464px!important;margin:0 auto!important;height:100dvh!important;background:#f7f7fa!important}
.exam-body.toefl-reference-writing .exam-header{min-height:90px!important;padding:16px 20px!important;background:#f7f7fa!important;border:0!important}
.exam-body.toefl-reference-writing #blockLabel{background:transparent!important;border:0!important;padding:0!important;font-size:30px!important;font-weight:400!important;letter-spacing:0!important;color:#171717!important}
.exam-body.toefl-reference-writing #progressLabel{display:inline;font-size:15px;margin-left:10px}
.exam-body.toefl-reference-writing #taskLabel{font-size:16px;margin-top:6px}
.exam-body.toefl-reference-writing #sectionClock{display:inline-block!important;font-size:20px;font-weight:700;color:#283747}
.exam-body.toefl-reference-writing .toefl-writing-split{border:0!important;border-radius:0!important}
.exam-body.toefl-reference-writing .exam-question-card{background:#fff!important;width:100%!important;max-width:none!important;margin:0!important}
.exam-body.toefl-reference-writing .m-instruction-banner{height:70px!important;min-height:70px!important;background:#fff3c0!important;font-size:20px!important;font-weight:400!important;border:0!important;border-radius:0!important}
.exam-body.toefl-reference-writing .exam-nav{display:flex!important;justify-content:space-between!important;align-items:center!important;min-height:84px!important;padding:14px 18px!important;background:#dcdcdc!important;border:0!important}
.exam-body.toefl-reference-writing #nextBtn{background:#20b68a!important;color:#fff!important;border:0!important;border-radius:3px!important;font-size:19px!important;padding:12px 22px!important}
.exam-body.toefl-reference-writing #prevBtn{display:inline-flex!important;font-size:16px}
/* Timed tests already have Help in the header; keep the navigation unobstructed. */
.exam-body:has(#testArea:not(.hide)) .site-help-launch,
.exam-body:has(#initialReadingIntro) .site-help-launch{display:none}
.exam-body.toefl-reference-build .toefl-build-screen{grid-template-rows:70px minmax(0,1fr)!important}
.exam-body.toefl-reference-build .toefl-build-main{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:24px!important;padding:24px clamp(18px,8vw,140px)!important;overflow:auto!important}
.exam-body.toefl-reference-build .toefl-build-conversation{display:flex!important;flex-direction:column!important;gap:36px!important;padding:0!important;border:0!important;width:min(100%,1000px);margin:0 auto}
.exam-body.toefl-reference-build .toefl-build-speaker-card,.exam-body.toefl-reference-build .toefl-build-reply-card{display:grid!important;grid-template-columns:116px minmax(0,1fr)!important;gap:24px!important;padding:0!important;background:#fff!important;border:0!important;border-radius:0!important;min-height:116px}
.exam-body.toefl-reference-build .toefl-person-photo.large{width:116px!important;height:116px!important;border:2px solid #58b5a5!important;box-shadow:none!important}
.exam-body.toefl-reference-build .toefl-build-speaker-copy span,.exam-body.toefl-reference-build .toefl-build-reply-copy>span{display:none!important}
.exam-body.toefl-reference-build .toefl-build-speaker-copy p{font-size:20px!important;line-height:1.5!important}
.exam-body.toefl-reference-build .toefl-build-reply-copy .ibt-sentence-frame{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;gap:8px!important;font-size:20px!important;min-height:110px!important}
.exam-body.toefl-reference-build .ibt-sentence-frame>span{font:inherit!important;color:#171717!important;margin-bottom:0!important}
.exam-body.toefl-reference-build .ibt-slot{display:inline-flex!important;align-items:center;justify-content:center;min-width:140px!important;min-height:40px!important;border-bottom:1px solid #606060!important;max-width:100%}
.exam-body.toefl-reference-build .toefl-build-bank{display:block!important;padding:0!important;overflow:visible!important;background:#fff!important;width:min(100%,1000px);margin:0 auto}
.exam-body.toefl-reference-build .word-bank-label{display:none!important}
.exam-body.toefl-reference-build .toefl-build-bank .tile-pool{justify-content:center!important;align-content:center!important;gap:12px!important;border:0!important;border-radius:0!important;padding:4px!important;overflow:visible!important;background:transparent!important}
.exam-body.toefl-reference-build .toefl-build-bank .sentence-tile,.exam-body.toefl-reference-build .toefl-build-reply-card .sentence-tile{font-size:20px!important;font-weight:400!important;padding:5px 10px!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;cursor:grab}
.exam-body.toefl-reference-build .sentence-tile:focus-visible{outline:2px solid #4b61e5;outline-offset:3px}
.exam-body.toefl-reference-writing .toefl-email-screen,.exam-body.toefl-reference-writing .toefl-discussion-screen{grid-template-columns:minmax(0,32%) minmax(0,68%)!important;grid-template-rows:70px minmax(0,1fr)!important}
.exam-body.toefl-reference-writing .m-writing-prompt-card{padding:20px!important;background:#fff!important;overflow:auto!important;gap:18px!important;font-size:19px!important;line-height:1.55!important}
.exam-body.toefl-reference-writing .toefl-email-scenario{padding:0!important;background:#fff!important;border:0!important;font-size:19px!important;line-height:1.55!important;flex:0 0 auto!important}
.exam-body.toefl-reference-writing .toefl-email-scenario p{margin:0}
.exam-body.toefl-reference-writing .toefl-email-task,.exam-body.toefl-reference-writing .email-task-bullets li{font-size:19px!important;line-height:1.55!important}
.exam-body.toefl-reference-writing .email-task-bullets{padding-left:22px;margin:12px 0}
.exam-body.toefl-reference-writing .email-task-bullets li{margin-bottom:12px}
.exam-body.toefl-reference-writing .writing-guidance{font-size:18px!important;line-height:1.5!important;text-align:center;margin:12px 0!important}
.exam-body.toefl-reference-writing .m-writing-response-card{padding:28px 36px!important;overflow:auto!important;gap:12px!important}
.exam-body.toefl-reference-writing .m-writing-response-card h3{font-size:19px!important;font-weight:700!important;margin:0!important}
.exam-body.toefl-reference-writing .email-head{display:block!important;background:transparent!important;border:0!important;padding:0!important;font-size:19px!important;line-height:1.5!important}
.exam-body.toefl-reference-writing .writing-editor{height:auto!important;font-size:19px!important;line-height:1.55!important;border-radius:2px!important;border:1px solid #bfc1c5!important;padding:12px 14px!important;min-height:240px!important;flex:1 0 240px!important;resize:none!important}
.exam-body.toefl-reference-writing .writing-toolbar{background:transparent!important;border:0!important;padding:0!important;min-height:28px}
.exam-body.toefl-reference-writing .writing-tools button{font-size:12px;padding:3px 7px}
.exam-body.toefl-reference-writing .toefl-discussion-instructions{display:block;background:transparent!important;border:0!important;padding:0!important;font-size:19px!important;line-height:1.55!important}
.exam-body.toefl-reference-writing .toefl-discussion-instructions b{font-size:19px!important;font-weight:400!important;display:block;margin-bottom:16px}
.exam-body.toefl-reference-writing .toefl-discussion-instructions span{color:inherit;display:block}
.exam-body.toefl-reference-writing .toefl-scenario-label,.exam-body.toefl-reference-writing .toefl-opinions-title{display:none}
.exam-body.toefl-reference-writing .toefl-professor-scenario{display:flex!important;flex-direction:column!important;align-items:center!important;background:#fff!important;border:0!important;padding:0!important;overflow:visible!important;flex:0 0 auto!important;gap:12px!important}
.exam-body.toefl-reference-writing .discussion-photo.professor{width:150px!important;height:150px!important;flex:0 0 150px}
.exam-body.toefl-reference-writing .toefl-professor-scenario b{display:block;text-align:center;font-size:19px!important;margin:8px 0 16px}
.exam-body.toefl-reference-writing .toefl-professor-scenario p{font-size:19px!important;line-height:1.55!important;display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;margin:0!important}
.exam-body.toefl-reference-writing .toefl-two-opinions{display:flex!important;flex-direction:column!important;gap:14px!important;flex:0 0 auto!important}
.exam-body.toefl-reference-writing .toefl-opinion-card{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:22px!important;padding:10px 0!important;border:0!important;border-top:1px solid #ddd!important;border-radius:0!important;overflow:visible!important;background:#fff!important}
.exam-body.toefl-reference-writing .discussion-photo.student{width:86px!important;height:86px!important}
.exam-body.toefl-reference-writing .toefl-opinion-card b{font-size:17px!important;font-weight:400!important}
.exam-body.toefl-reference-writing .toefl-opinion-card p{font-size:19px!important;line-height:1.5!important;display:block!important;overflow:visible!important;-webkit-line-clamp:unset!important;margin:0!important}
.writing-task-intro{position:fixed;inset:0;z-index:90;padding:8px;background:#f7f7fa;overflow:auto}
.writing-task-intro-card{background:#fff;width:min(100%,1464px);margin:0 auto;border-radius:3px}
.writing-task-intro h1{font-size:38px;font-weight:400;margin:0 20px;padding:12px 0 16px;border-bottom:1px solid #eee}
.writing-task-intro p{font-size:20px;line-height:1.5;margin:18px 20px}
.writing-task-intro footer{background:#dcdcdc;padding:18px 20px;display:flex;justify-content:space-between;gap:16px}
.writing-task-intro button{font:inherit;font-size:20px;border-radius:3px;padding:12px 18px;cursor:pointer}
#writingBeginTask{background:#20b68a;border:1px solid #20b68a;color:#fff}
#writingSkipTask{background:#fff;border:1px solid #aaa;color:#46556a}
#writingIntroError{padding:0 20px;color:#a12a30}
@media(max-width:760px){
 .exam-body.toefl-reference-writing .exam-shell{width:100%!important}
 .exam-body.toefl-reference-writing .exam-header{min-height:72px!important;padding:10px 12px!important}
 .exam-body.toefl-reference-writing #blockLabel{font-size:24px!important}
 .exam-body.toefl-reference-writing .m-instruction-banner{height:auto!important;min-height:54px!important;font-size:16px!important;padding:12px!important}
 .exam-body.toefl-reference-build .toefl-build-screen{grid-template-rows:54px minmax(0,1fr)!important}
 .exam-body.toefl-reference-build .toefl-build-main{padding:18px 12px!important;justify-content:flex-start!important;gap:24px!important}
 .exam-body.toefl-reference-build .toefl-build-conversation{gap:22px!important}
 .exam-body.toefl-reference-build .toefl-build-speaker-card,.exam-body.toefl-reference-build .toefl-build-reply-card{grid-template-columns:60px minmax(0,1fr)!important;gap:12px!important;min-height:60px}
 .exam-body.toefl-reference-build .toefl-person-photo.large{width:60px!important;height:60px!important}
 .exam-body.toefl-reference-build .toefl-build-speaker-copy p,.exam-body.toefl-reference-build .toefl-build-reply-copy .ibt-sentence-frame{font-size:17px!important}
 .exam-body.toefl-reference-build .ibt-slot{min-width:85px!important}
 .exam-body.toefl-reference-build .toefl-build-bank .sentence-tile,.exam-body.toefl-reference-build .toefl-build-reply-card .sentence-tile{font-size:16px!important;padding:5px 7px!important}
 .exam-body.toefl-reference-writing .toefl-email-screen,.exam-body.toefl-reference-writing .toefl-discussion-screen{display:flex!important;flex-direction:column!important;overflow:auto!important}
 .exam-body.toefl-reference-writing .m-writing-prompt-card,.exam-body.toefl-reference-writing .m-writing-response-card{flex:0 0 auto!important;overflow:visible!important;height:auto!important;padding:16px!important}
 .exam-body.toefl-reference-writing .m-writing-response-card{min-height:480px}
 .exam-body.toefl-reference-writing .exam-nav{min-height:64px!important;padding:8px!important}
 .exam-body.toefl-reference-writing #nextBtn,.exam-body.toefl-reference-writing #prevBtn{font-size:14px!important;padding:10px!important}
 .writing-task-intro h1{font-size:27px}.writing-task-intro p{font-size:17px}.writing-task-intro button{font-size:16px;padding:10px 12px}
}

/* Keep the Academic Discussion editor visible while long opinions scroll. */
.exam-body.toefl-reference-writing .toefl-email-task b{font-size:19px!important;line-height:1.5!important}
@media(min-width:761px){
 .exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-response-card{display:grid!important;grid-template-rows:minmax(120px,.9fr) auto auto minmax(240px,1fr)!important;gap:12px!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-two-opinions{min-height:0!important;overflow:auto!important;align-self:stretch}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-opinion-card{flex:0 0 auto!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .writing-editor{min-height:240px!important}
}

/* Public homepage refresh: clearer first step and a contrasting practice stage. */
.f-home-relaunch{background:#f8f9fc}
.f-home-relaunch .f-preview-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:38px;align-items:center;margin:28px 0 30px;padding:54px 42px;border-radius:30px;background:radial-gradient(ellipse at 95% 10%,#253c69 0,transparent 55%),linear-gradient(135deg,#101a33,#172442);box-shadow:0 24px 55px rgba(15,26,51,.12)}
.f-home-relaunch .f-preview-hero:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(ellipse at 0% 100%,rgba(52,179,157,.13),transparent 50%);pointer-events:none}
.f-home-relaunch .f-premium-eyebrow{color:#e5edf8;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);font-size:11px}
.f-home-relaunch .f-premium-eyebrow i{background:#91e6c8;box-shadow:0 0 0 4px rgba(145,230,200,.1)}
.f-home-relaunch .f-preview-hero .f-copy h1{font-size:clamp(40px,4.1vw,60px);line-height:1.08;letter-spacing:-.045em;color:#fff;margin:24px 0 20px}
.f-home-relaunch .f-preview-hero .f-copy h1 span{background:none;color:#a4edce;white-space:normal}
.f-home-relaunch .f-hero-lead{color:#c5cfdf!important;font-size:17px!important;line-height:1.65!important}
.f-home-relaunch .f-benefits{background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.13);box-shadow:none;padding:16px 14px;margin:24px 0;color:#d9e2f0}
.f-home-relaunch .f-benefits span{color:#d9e2f0;font-size:11px}
.f-home-relaunch .f-benefits>div:not(:last-child):after{background:rgba(255,255,255,.13)}
.f-home-relaunch .f-benefits b{color:#a4edce}
.f-home-relaunch .f-hero-primary{background:#a4edce;color:#122a27;border-color:#a4edce;box-shadow:0 9px 24px rgba(100,209,172,.13);font-weight:800}
.f-home-relaunch .f-hero-primary:hover{background:#c0f5df;box-shadow:0 12px 28px rgba(100,209,172,.2)}
.f-home-relaunch .f-hero-secondary{background:transparent;border-color:#65718c;color:#edf3fc;box-shadow:none}
.f-home-relaunch .f-hero-secondary:hover{background:rgba(255,255,255,.08)}
.f-home-relaunch .f-hero-trust{color:#c5cfdf;font-size:11px;gap:10px 14px}
.f-home-relaunch .f-hero-trust b{color:#a4edce}
.f-home-relaunch .f-disclaimer{color:#9ba9bf!important;font-size:10px!important;line-height:1.6!important}
.f-home-relaunch .f-live-shell{transform:none!important;box-shadow:0 22px 42px rgba(0,0,0,.2);border-radius:22px}
.f-home-relaunch .f-3d-orb,.f-home-relaunch .f-3d-ring{display:none}
.f-home-relaunch .f-live-preview{min-width:0;scroll-margin-top:95px}
.f-home-relaunch .f-preview-student strong{font-size:9px;white-space:normal;text-align:right}
.f-home-relaunch .f-proof-strip{box-shadow:none;background:#fff;margin-bottom:42px;border-radius:16px}
.f-home-relaunch #exam-practice{padding:56px 0;background:#edf2f7}
.f-home-relaunch #exam-practice h2{font-size:36px;letter-spacing:-.03em}
.f-exam-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px}
.f-exam-guide-grid .card{display:flex;flex-direction:column;padding:26px;border-radius:20px}
.f-exam-guide-grid h3{font-size:22px;margin:0 0 12px}
.f-exam-guide-grid p{font-size:15px;line-height:1.7;color:#647087;flex:1}
.f-exam-guide-grid a{font-size:14px;font-weight:750;color:#3454cc}
.f-home-relaunch a:focus-visible,.f-home-relaunch button:focus-visible{outline:3px solid #4f8dff;outline-offset:4px}
@media(max-width:1050px){.f-home-relaunch .f-preview-hero{padding:36px 26px;gap:24px}.f-home-relaunch .f-preview-hero .f-copy h1{font-size:43px}.f-home-relaunch .f-benefits{display:none!important}.f-home-relaunch .hero-actions{display:flex;flex-wrap:wrap}}
@media(max-width:760px){
 .f-home-relaunch .f-nav .navlinks>a:not(.btn):not([href="/pricing.html"]){display:none}
 .f-home-relaunch .f-preview-hero{grid-template-columns:1fr;gap:28px;padding:32px 20px!important;border-radius:24px;margin-top:18px}
 .f-home-relaunch .f-preview-hero .f-copy{text-align:left}
 .f-home-relaunch .f-preview-hero .f-copy h1{font-size:clamp(38px,9.8vw,54px)}
 .f-home-relaunch .f-hero-lead{font-size:16px!important}
 .f-home-relaunch .f-hero-trust{justify-content:start;display:flex;flex-wrap:wrap}
 .f-home-relaunch .f-live-preview{width:100%;max-width:100%}
 .f-home-relaunch .f-live-shell{padding:14px!important}
 .f-home-relaunch .f-preview-student{gap:8px}.f-home-relaunch .f-preview-student strong{display:none}
 .f-exam-guide-grid{grid-template-columns:1fr}.f-home-relaunch #exam-practice h2{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.f-home-relaunch *, .f-home-relaunch *:before{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.f-home-relaunch .f-preview-student img{transform:none!important}
.f-home-relaunch .f-hero .hero-actions .btn{white-space:nowrap}

/* Short landscape viewports need one scrollable writing workspace. */
@media (max-height:600px) and (orientation:landscape){
 .exam-body.toefl-reference-writing .exam-header{min-height:64px!important;padding:8px 14px!important}
 .exam-body.toefl-reference-writing #blockLabel{font-size:24px!important}
 .exam-body.toefl-reference-writing .exam-nav{min-height:60px!important;padding:8px 14px!important}
 .exam-body.toefl-reference-writing .toefl-email-screen,
 .exam-body.toefl-reference-writing .toefl-discussion-screen{display:block!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .exam-body.toefl-reference-writing .m-instruction-banner{min-height:48px!important;height:auto!important;padding:12px!important;font-size:17px!important}
 .exam-body.toefl-reference-writing .m-writing-prompt-card,
 .exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-response-card,
 .exam-body.toefl-reference-writing .toefl-email-screen .m-writing-response-card{display:flex!important;flex-direction:column!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:18px!important}
 .exam-body.toefl-reference-writing .toefl-two-opinions{overflow:visible!important;flex:none!important}
 .exam-body.toefl-reference-writing .writing-editor{flex:none!important;min-height:260px!important;height:260px!important}
}

/* Compact inline missing-letter passages, preserving one input per letter. */
.exam-body .complete-words-wrap{padding:8px 0 12px}
.exam-body .complete-words-passage{max-width:940px;margin:0 auto;padding:18px 20px;border:2px solid #eef0f3;background:#fff;font-size:18px;line-height:1.65}
.exam-body .complete-words-instruction{margin-bottom:16px}
.exam-body .partial-word.multi{margin:0;gap:0;white-space:nowrap}
.exam-body .blank-word{gap:1px;margin:0}
.exam-body .letter-slot,.exam-body .blank-word.is-complete .letter-slot{width:.68em!important;min-width:.68em!important;height:1.35em;background:#eef0f3!important;border-bottom-width:1px!important}
.exam-body .completed-word{gap:1px!important}
.exam-body .completed-letter{min-width:.5em;border-bottom-width:1px}
@media(max-width:700px){
 .exam-body .complete-words-passage{padding:14px 12px;font-size:16px;line-height:1.65}
 .exam-body .letter-slot,.exam-body .blank-word.is-complete .letter-slot{width:.72em!important;min-width:.72em!important}
}

/* Academic Discussion reference: professor left, complete student posts above the editor. */
.exam-body.toefl-reference-writing .toefl-discussion-screen{grid-template-columns:minmax(0,40%) minmax(0,60%)!important;grid-template-rows:minmax(0,1fr)!important}
.exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-prompt-card{padding:16px!important;border:1px solid #dedede!important;border-radius:16px!important;gap:12px!important}
.toefl-discussion-screen .toefl-discussion-instructions p{margin:0 0 14px!important}
.toefl-discussion-screen .toefl-discussion-instructions strong{font-weight:700}
.toefl-discussion-screen .toefl-discussion-instructions ul{margin:10px 0 16px;padding-left:30px}
.toefl-discussion-screen .toefl-discussion-instructions li{margin:6px 0}
.exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-response-card{padding:16px!important;gap:0!important}
.exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-two-opinions{gap:16px!important;margin:0 0 14px!important}
.exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-opinion-card{grid-template-columns:88px minmax(0,1fr)!important;gap:20px!important;border:0!important;padding:8px 0!important;align-items:start}
.toefl-discussion-person{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-opinion-card b{font-size:18px!important;text-align:center;overflow-wrap:anywhere}
.exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-opinion-card p{font-size:18px!important;line-height:1.4!important}
.exam-body.toefl-reference-writing .toefl-discussion-screen .writing-toolbar{padding:12px!important;border:1px solid #dedede!important;border-radius:16px 16px 0 0!important;background:#f8f8f8!important;margin:0!important;gap:8px!important;flex-wrap:wrap}
.exam-body.toefl-reference-writing .toefl-discussion-screen .writing-tools button{background:#dedede!important;border:0!important;border-radius:9px!important;min-height:40px;padding:9px 16px!important;font-size:15px!important;color:#222!important}
.toefl-discussion-screen .word-count{display:flex;align-items:center;gap:12px}
.exam-body.toefl-reference-writing .toefl-discussion-screen #toggleWordCount{background:transparent!important;border:0!important;color:#187777!important;font-size:14px!important;padding:6px!important}
.exam-body.toefl-reference-writing .toefl-discussion-screen #wordCount{font-size:18px!important;color:#222}
.exam-body.toefl-reference-writing .toefl-discussion-screen .writing-editor{border-color:#dedede!important;border-top:0!important;border-radius:0 0 16px 16px!important}
@media(min-width:761px) and (min-height:521px){
 .exam-body.toefl-reference-writing:has(.toefl-discussion-screen) .exam-header{min-height:70px!important;padding:8px 16px!important}
 .exam-body.toefl-reference-writing:has(.toefl-discussion-screen) .exam-nav{min-height:60px!important;padding:8px 14px!important}
 .exam-body.toefl-reference-writing:has(.toefl-discussion-screen) .exam-nav .btn{padding:10px!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-response-card{display:grid!important;grid-template-rows:minmax(0,1.75fr) auto minmax(180px,1fr)!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-two-opinions{overflow:auto!important;min-height:0!important;align-self:stretch;margin-bottom:0!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .writing-editor{min-height:180px!important}
}
@media(max-width:760px),(max-height:520px){
 .exam-body.toefl-reference-writing .toefl-discussion-screen{display:block!important;overflow:auto!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .m-writing-response-card{display:flex!important;flex-direction:column!important;height:auto!important;overflow:visible!important;min-height:0!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-two-opinions{overflow:visible!important;flex:none!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .toefl-opinion-card{grid-template-columns:64px minmax(0,1fr)!important;gap:12px!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .discussion-photo.student{width:62px!important;height:62px!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .writing-editor{height:320px!important;min-height:320px!important;flex:none!important}
 .exam-body.toefl-reference-writing .toefl-discussion-screen .writing-tools button{padding:8px 12px!important}
}

/* Calm interview framing: keep the upper body visible in both video phases. */
.interviewer-video[data-persona^="calm_interviewer"]{object-fit:contain!important;object-position:center!important;transform:none!important;background:#e0e5e5!important}

/* One fixed navigation bar for every timed section. */
.exam-body #testArea:not(.hide) .exam-nav{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:300!important;display:flex!important;justify-content:space-between!important;align-items:center!important;min-height:74px!important;margin:0!important;padding:10px 22px calc(10px + env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid #dce0ef!important;box-sizing:border-box!important}
.exam-body #testArea:not(.hide) .exam-nav .btn{flex:0 0 auto!important;width:auto!important;min-width:140px!important;font-size:17px!important;padding:12px 18px!important}
.exam-body #testArea:not(.hide) #helpBtn{position:fixed;right:22px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:301;background:#fff;border:1px solid #dce0ef;border-radius:8px;padding:8px 18px;font-size:14px;box-shadow:0 2px 8px #202c4914}
.exam-body:has(#testArea:not(.hide)) .exam-shell{padding-bottom:calc(126px + env(safe-area-inset-bottom))!important}
.exam-body .exam-help{z-index:50000!important}
.exam-body:has(#moduleTransition) #helpBtn,.exam-body:has(#moduleTransition) .site-help-launch,.exam-body:has(.section-transition.show) #helpBtn,.exam-body:has(.section-transition.show) .site-help-launch{display:none}
.module-transition{position:fixed;inset:0;z-index:12000;background:#f4f5ff;color:#202c49;overflow:auto}
.module-intro-main{box-sizing:border-box;max-width:1040px;width:calc(100% - 32px);margin:24px auto;padding:24px 32px 110px;background:#fff;border:1px solid #e2e5f2;border-radius:20px}
.module-intro-main h1{font-size:34px;line-height:1.2;margin:0 0 18px}.module-intro-main p{font-size:17px;line-height:1.55}
.module-intro-table{border-collapse:collapse;width:100%;margin-top:20px;font-size:16px}.module-intro-table th,.module-intro-table td{border:1px solid #d6d6d6;padding:12px;text-align:left}.module-intro-table th{background:#4338ca;color:#fff}
.module-intro-nav{position:fixed;left:0;right:0;bottom:0;min-height:74px;display:flex;justify-content:space-between;align-items:center;padding:10px 22px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce0ef;box-sizing:border-box}.module-intro-nav .btn{min-width:140px;font-size:17px;padding:12px 18px}
@media(max-width:700px){.exam-body #testArea:not(.hide) .exam-nav{padding:10px 10px calc(10px + env(safe-area-inset-bottom))!important}.exam-body #testArea:not(.hide) .exam-nav .btn{min-width:108px!important;font-size:15px!important;padding:12px!important}.exam-body #testArea:not(.hide) #helpBtn{right:10px}.module-intro-main{width:100%;margin:0;padding:20px 14px 110px;border:0;border-radius:0}.module-intro-main h1{font-size:29px}.module-intro-table{font-size:14px}.module-intro-table th,.module-intro-table td{padding:9px}.module-intro-nav{padding-left:10px;padding-right:10px}.module-intro-nav .btn{min-width:108px;font-size:15px}}

/* Shared section and module instructions. Keep content above the fixed controls. */
body .fasiho-test-intro{position:fixed;inset:0;z-index:12000;background:#f4f5ff;color:#202c49;font-family:inherit;overflow:auto;padding:20px 16px calc(94px + env(safe-area-inset-bottom));box-sizing:border-box}
body .section-transition{display:none}
body .section-transition.show{display:block}
body .fasiho-test-intro .fasiho-intro-card{box-sizing:border-box;width:100%;max-width:1040px;margin:0 auto;padding:24px 28px;background:#fff;border:1px solid #e2e5f2;border-radius:20px;overflow:visible}
body .fasiho-test-intro .fasiho-intro-brand{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4338ca;margin:0 0 12px}
body .fasiho-test-intro h1{font-size:32px;line-height:1.2;font-weight:750;color:#192443;margin:0;padding:0 0 12px;border-bottom:1px solid #e2e5f2}
body .fasiho-test-intro p{font-size:16px;line-height:1.45;margin:12px 0 0;max-width:none}
body .fasiho-test-intro .fasiho-intro-note,body .fasiho-test-intro .reading-module-note,body .fasiho-test-intro .section-module-note{font-size:14px!important;color:#59647b;margin:10px 0 0!important;line-height:1.4}
body .fasiho-test-intro table{border-collapse:collapse;table-layout:fixed;width:100%;max-width:100%;font-size:15px;margin:14px 0 0}
body .fasiho-test-intro th,body .fasiho-test-intro td{padding:9px 10px;border:1px solid #dce0ef;text-align:left;vertical-align:middle;white-space:normal;overflow-wrap:normal;width:auto}
body .fasiho-test-intro th{background:#4338ca;color:#fff;font-weight:700}
body .fasiho-test-intro tbody tr:nth-child(even){background:#f7f8ff}
body .fasiho-test-intro .fasiho-intro-nav{position:fixed;left:0;right:0;bottom:0;z-index:1;box-sizing:border-box;min-height:74px;margin:0;padding:10px 22px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-top:1px solid #dce0ef}
body .fasiho-test-intro .fasiho-intro-nav .btn{font-family:inherit;font-size:17px;min-width:140px;width:auto;padding:12px 18px;border-radius:12px;line-height:1.2;border:1px solid #dce0ef;background:#fff;color:#202c49}
body .fasiho-test-intro .fasiho-intro-nav .btn-primary{background:#4338ca;color:#fff;border-color:#4338ca}
body .fasiho-test-intro .fasiho-intro-nav .btn-primary:hover{background:#3730a3}
body .fasiho-test-intro [role=status],#readingStartError,#sectionIntroError{color:#b42318;font-size:14px}
body:has(.fasiho-test-intro:not(.section-transition)),body:has(.section-transition.show){overflow:hidden}
body:has(.fasiho-test-intro:not(.section-transition)) .site-help-launch{display:none}
@media(max-width:700px){
 body .fasiho-test-intro{padding:16px 12px 94px}
 body .fasiho-test-intro .fasiho-intro-card{padding:16px 14px;border-radius:16px}
 body .fasiho-test-intro h1{font-size:27px}
 body .fasiho-test-intro table{font-size:14px}
 body .fasiho-test-intro th,body .fasiho-test-intro td{padding:6px 7px}
 body .fasiho-test-intro .fasiho-intro-nav{padding-left:12px;padding-right:12px}
 body .fasiho-test-intro .fasiho-intro-nav .btn{font-size:15px;min-width:112px;padding:12px 10px}
}
@media(min-width:701px) and (max-height:650px){
 body .fasiho-test-intro{padding:12px 16px calc(72px + env(safe-area-inset-bottom))}
 body .fasiho-test-intro .fasiho-intro-card{padding:16px 22px}
 body .fasiho-test-intro .fasiho-intro-details{display:grid;grid-template-columns:1fr 1.25fr;gap:20px}
 body .fasiho-test-intro h1{font-size:27px;padding-bottom:8px}
 body .fasiho-test-intro .fasiho-intro-brand{margin-bottom:8px}
 body .fasiho-test-intro p{margin-top:8px;font-size:15px}
 body .fasiho-test-intro table{margin-top:10px;font-size:14px}
 body .fasiho-test-intro th,body .fasiho-test-intro td{padding:6px 8px}
 body .fasiho-test-intro .fasiho-intro-nav{min-height:64px;padding-top:8px;padding-bottom:8px}
 body .fasiho-test-intro .fasiho-intro-nav .btn{padding:10px 16px;font-size:15px}
}
@media(min-width:701px) and (max-height:450px){
 body .fasiho-test-intro .fasiho-intro-card{padding:10px 18px}
 body .fasiho-test-intro .fasiho-intro-brand{font-size:10px;margin-bottom:4px}
 body .fasiho-test-intro h1{font-size:24px;padding-bottom:5px}
 body .fasiho-test-intro p{margin-top:6px;line-height:1.3}
 body .fasiho-test-intro table{margin-top:6px;line-height:1.25}
 body .fasiho-test-intro th,body .fasiho-test-intro td{padding:4px 6px}
 body .fasiho-test-intro .fasiho-intro-note,body .fasiho-test-intro .reading-module-note,body .fasiho-test-intro .section-module-note{font-size:13px!important;margin-top:6px!important;line-height:1.3}
}
body .fasiho-test-intro table:not(.reading-module-table):not(.section-module-table) th:first-child,body .fasiho-test-intro table:not(.reading-module-table):not(.section-module-table) td:first-child{width:40%}

.test-time-up{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;padding:20px;background:rgba(25,36,67,.45)}
.test-time-up-card{box-sizing:border-box;width:min(620px,100%);background:#fff;color:#202c49;border:1px solid #e2e5f2;border-radius:18px;box-shadow:0 16px 60px #19244333;font-family:inherit;overflow:hidden}
.test-time-up-card h1{font-size:30px;font-weight:750;margin:0;padding:24px 28px 18px;border-bottom:1px solid #e2e5f2}
.test-time-up-card p{font-size:17px;line-height:1.5;margin:20px 28px}
.test-time-up-card footer{padding:18px 28px;background:#f4f5ff;display:flex;justify-content:flex-end;border-top:1px solid #e2e5f2}
.test-time-up-card .btn-primary{background:#4338ca;border-color:#4338ca;color:white;min-width:140px}
#timeUpError{color:#b42318;font-size:14px}
body:has(#testTimeUp){overflow:hidden}
body:has(#testTimeUp) .site-help-launch{display:none}
@media(max-height:450px){.test-time-up-card h1{padding:16px 24px;font-size:26px}.test-time-up-card p{margin:12px 24px}.test-time-up-card footer{padding:12px 24px}}

/* Keep retry guidance readable on the dark practice feedback card. */
#feedback .coach p{color:#e4e9ff}
