@font-face{font-family:Nohemi;src:url(/fonts/nohemi-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Raleway;src:url(/fonts/raleway-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Raleway;src:url(/fonts/raleway-italic-variable.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:SpaceMono;src:url(/fonts/space-mono.woff2) format("woff2");font-weight:400;font-display:swap}:root{--font-body: Raleway, Arial, sans-serif;--font-heading: Nohemi, Arial, sans-serif;font-family:var(--font-body);color:#202a42;background:#f3f6fc;font-synthesis:none;font-weight:400;--accent: #294ec9;--green: var(--accent);--dark: #202a42;--muted: #596579;--line: #dce2ef;--pale: #f3f6fc}h1,h2,h3,h4,h5,h6,.brand{font-family:var(--font-heading)}.brand small,.reading-question h1,.reading-question h2,.desk-review-answer h4{font-family:var(--font-body)}.sound-check{margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:8px}.sound-check legend{font-weight:700}.sound-check p{font-size:14px}.sound-check label{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:14px}.listening-content{display:flex;flex-direction:column;align-items:center}.listening-panel,.listening-question{width:100%;max-width:680px;margin:38px auto}.listening-panel{text-align:center}.listening-panel h1,.listening-question h1{font-size:clamp(25px,4vw,36px);line-height:1.3}.listening-panel p{color:var(--muted)}.listening-symbol{display:block;color:var(--green);font-size:64px;margin-bottom:20px}.listening-question fieldset{border:0;padding:0;margin:25px 0}.listening-question fieldset:disabled{opacity:.65}.listening-content>.callout{max-width:680px;width:100%}.listening-review summary{cursor:pointer;color:var(--green)}.auth-page{min-height:100dvh;background:radial-gradient(ellipse at 85% 15%,#eaf0e8 0,transparent 55%)}.auth-header{max-width:1320px;margin:auto;padding:34px 48px}.auth-card{max-width:640px;margin:8vh auto 0;padding:32px 36px 72px}.auth-eyebrow{display:block;margin-bottom:24px;font:11px SpaceMono,monospace;letter-spacing:1.4px;color:var(--muted)}.auth-card h1{font-size:clamp(32px,5vw,49px);line-height:1.16;letter-spacing:-1.8px}.auth-card h1 span{color:var(--green)}.auth-card p{color:var(--muted);max-width:490px}.auth-card .button{margin:10px 12px 12px 0}.auth-card .auth-google{min-width:235px}.auth-card .auth-error{color:#8d352c;border-left:3px solid #be6558;padding-left:14px}.auth-card .auth-setup{padding:16px 20px;background:var(--pale);border-radius:8px;color:var(--dark);font-size:14px}.email-auth{margin-top:24px;padding-top:26px;border-top:1px solid var(--line)}.email-auth h2{font-size:21px;letter-spacing:-.5px}.auth-form fieldset{border:0;margin:0;padding:0}.auth-form label{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;font-size:14px;font-weight:500}.auth-form input{width:100%;min-height:46px;padding:11px 13px;color:var(--dark);background:#fff;border:1px solid #cbd6cc;border-radius:6px}.auth-form label small{color:var(--muted);font-size:12px;font-weight:400}.auth-text-button{border:0;background:transparent;padding:8px 0;font-size:13px;text-decoration:underline;text-underline-offset:4px;color:var(--green)}.auth-form-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px}.auth-actions{display:flex;flex-wrap:wrap}@media(max-width:620px){.auth-header{padding:26px 24px}.auth-card{margin-top:4vh;padding-inline:24px}}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #d3ab59;outline-offset:4px}input:focus-visible{outline:2px solid var(--green);outline-offset:3px}button{color:inherit}p{line-height:1.65}h1,h2,h3,p{margin-top:0}a{text-underline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home{min-height:100dvh}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0;font-size:25px;font-weight:700;letter-spacing:-1.1px;line-height:1}.brand-light{font-weight:400}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:1.2px;color:var(--muted);margin:8px 0 0 2px}.brand-mark{width:30px;height:32px;display:flex;align-items:flex-end;gap:4px;transform:skewY(-14deg)}.brand-mark i{display:block;width:7px;background:var(--green)}.brand-mark i:nth-child(1){height:21px}.brand-mark i:nth-child(2){height:30px}.brand-mark i:nth-child(3){height:25px}.text-link{border:0;padding:0;background:transparent;font-size:12px;font-weight:500;color:var(--green);text-decoration:none}.text-link:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:13px;font-weight:700;border-radius:3px;min-height:42px;padding:10px 23px;border:1px solid transparent;gap:10px}.button-primary{background:var(--green);color:#fff}.button-primary:hover:not(:disabled){background:#0b493f}.button-outline{background:#fff;border-color:#c9d3cf;color:var(--dark)}.button-quiet{background:#edf1ee;color:#4b6256}.modal{border:1px solid var(--line);border-radius:7px;padding:29px 32px;width:520px;max-width:calc(100% - 28px);max-height:90dvh;box-shadow:0 25px 85px #0d35292e;color:var(--dark)}.modal::backdrop{background:#1c302c55}.modal-title{display:flex;gap:20px;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal h2{font-size:23px;letter-spacing:-.6px;font-weight:500;margin:0}.icon-button{background:transparent;border:0;font-size:24px;line-height:1}.modal p{font-size:13px;color:#52665c}.modal-actions{margin-top:27px;display:flex;justify-content:flex-end;gap:12px}.practice-mode{border:1px solid var(--line);padding:16px;margin:20px 0 12px}.practice-mode legend{font-size:12px;padding:0 6px}.practice-mode label{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:13px;cursor:pointer}.practice-mode input{accent-color:var(--green)}select{height:42px;width:100%;border:1px solid #c9d4cb;border-radius:3px;background:#fff;padding:0 12px;color:var(--dark)}.session-facts{display:flex;justify-content:space-between;margin:20px 0;border-bottom:1px solid var(--line);padding-bottom:16px;font-size:12px}.session-facts strong{font-family:SpaceMono;font-weight:400}.modal .fine-print{font-size:11px;color:var(--muted)}.player-error{background:#fbebe5;color:#843b2a;padding:15px 20px;font-size:13px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px;border-left:3px solid #b46952}.player-error button{border:0;background:transparent;color:inherit;text-decoration:underline;flex-shrink:0}.error-text{color:#a3402c!important}.loading{font-size:12px;color:var(--muted)}.empty-state{padding:80px;max-width:800px;margin:auto}.empty-state .brand{margin-bottom:50px}.empty-state>a,.empty-state>button{margin-right:20px}.empty-state h1{font-size:32px}.test-player{background:#fff;min-height:100dvh;display:flex;flex-direction:column;color:#172d2a}.test-header{height:87px;background:#f7f9f8;border-bottom:1px solid #dae2df;padding:0 32px;display:flex;gap:36px;align-items:center}.brand-compact{font-size:21px}.brand-compact small{display:none}.brand-compact .brand-mark{transform:scale(.85) skewY(-14deg);margin-right:-3px}.test-section-name{font-size:18px;font-weight:700;border-left:1px solid #cdd8d3;padding-left:29px;line-height:1.2}.test-section-name>span{display:block;font-size:10px;font-weight:400;color:#788880;margin-top:7px}.test-header-actions{margin-left:auto;display:flex;align-items:center;gap:23px}.test-header-actions button{font-size:12px;background:transparent;border:0;padding:5px 0;color:#405e53}.test-header-actions button:hover{text-decoration:underline}.test-timer{font-family:SpaceMono;font-size:22px;font-variant-numeric:tabular-nums;border-left:1px solid #cdd8d3;padding-left:25px;margin-left:5px;min-width:104px}.timer-urgent{color:#ab4a31}.test-header-actions .timer-toggle{font-size:10px;min-width:49px;margin-left:-10px}.test-subbar{padding:15px 38px;background:#fff;border-bottom:1px solid #e9eeeb;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#6a7c73}.test-subbar>span:first-child{color:#38594b;font-weight:500}.test-content{flex:1;width:100%;max-width:1440px;margin:auto;padding:45px 46px 30px;min-height:calc(100dvh - 235px)}.test-content h1{font-size:24px;line-height:1.3;text-align:center;color:#155459;letter-spacing:-.5px;font-weight:700;margin:0 0 12px}.task-instruction{text-align:center;font-size:12px;color:#78867f;line-height:1.5}.content-locked{pointer-events:none}.test-footer{position:sticky;bottom:0;z-index:10;border-top:1px solid #dce4df;padding:20px 38px;background:#f7f9f8;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}.save-indicator{font-size:10px;color:#77887c;display:flex;gap:8px;align-items:center}.save-dot{width:5px;height:5px;background:#7c9d81;border-radius:50%;display:inline-block}.save-saving{background:#c3ac65}.save-failed{background:#bd7157}.test-nav{display:flex;gap:12px}.test-nav .button{min-width:108px}.reading-exercise h1{margin-bottom:50px}.reading-columns{display:grid;grid-template-columns:1fr 1fr;gap:0}.reading-passage{height:min(61dvh,640px);min-height:350px;overflow-y:auto;padding:0 34px 28px 0;scrollbar-width:auto;scrollbar-color:#8b9990 #f1f3f1;font-size:17px;line-height:1.65;white-space:pre-line;overscroll-behavior:contain;border-right:1px solid #cbd6cf}.reading-passage p{margin-bottom:20px;line-height:1.65}.reading-question{padding:0 6px 25px 38px;overflow-y:auto;max-height:min(61dvh,640px);font-size:17px}.question-counter{font-family:SpaceMono;font-size:10px;color:#87938c;display:block;margin-bottom:16px}.reading-question h2{font-size:17px;font-weight:400;line-height:1.55;margin-bottom:25px;letter-spacing:0}.reading-question fieldset{padding:0;margin:0;border:0}.choice{display:flex;gap:13px;align-items:flex-start;padding:12px 13px;margin:0 0 11px -12px;border:1px solid transparent;border-radius:3px;cursor:pointer;font-size:16px;line-height:1.5}.choice:hover{background:#f6f8f4}.choice-selected{background:#f0f5f0;border-color:#d5e2d6}.choice input{accent-color:#155b50;margin-top:5px;width:17px;height:17px;flex-shrink:0}.daily-document>div{border:1px solid #c9d5ce;padding:27px 28px;min-height:250px;background:#fafbf9}.daily-document h2{font-size:18px;letter-spacing:-.2px;margin-bottom:18px;line-height:1.4;font-weight:700}.words-exercise{max-width:990px;margin:0 auto}.cloze-passage{font-size:23px;line-height:2.25;margin:70px auto 28px;letter-spacing:.1px}.cloze-word{display:inline-flex;align-items:baseline;white-space:nowrap}.cloze-word input{font-family:var(--font-body);font-size:inherit;letter-spacing:1.5px;color:#126356;border:0;border-bottom:1px solid #427766;background:transparent;padding:0;margin:0;border-radius:0;min-width:1.5ch;line-height:1.35}.cloze-word input::placeholder{color:#5b756a;opacity:.8;font-family:SpaceMono;font-size:.85em;letter-spacing:0}.task-footnote{color:#94a099;font-size:11px;margin-top:35px}.sentence-exercise{max-width:1080px;margin:0 auto}.conversation{margin-top:75px}.conversation-line{display:flex;gap:24px;align-items:center}.conversation-line>p{font-size:18px;line-height:1.5;margin:0}.speaker{height:61px;width:61px;border:1px solid #287a73;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:500;background:#e8f1ea;color:#4b7963;flex-shrink:0}.speaker-two{background:#e9eeef;color:#5d7b88;border-color:#63898b}.chunk-bank{min-height:91px;margin:28px 0 29px 85px;display:flex;flex-wrap:wrap;gap:12px;align-content:center;border:1px dashed transparent;padding:16px 6px}.bank-over{border-color:#94b2a2;background:#f6f9f5}.word-chunk{touch-action:none;background:#f1f4f1;border:1px solid #cdd9d0;color:#263d32;padding:11px 15px;border-radius:3px;font-size:16px;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 2px #e8ece8}.word-chunk:active{cursor:grabbing}.dragging{opacity:.25}.word-overlay{background:#fff;box-shadow:0 8px 20px #17332f25;cursor:grabbing}.answer-line{align-items:flex-start}.sentence-answer{display:flex;flex-wrap:wrap;align-items:baseline;gap:15px 9px;line-height:2.5;font-size:18px;padding-top:8px}.sentence-slot{border-bottom:1px solid #566f63;display:inline-flex;align-items:center;justify-content:center;min-width:90px;min-height:48px;vertical-align:baseline}.sentence-slot .word-chunk{font-size:16px;margin-bottom:5px}.slot-placeholder{width:96px}.slot-over{background:#e2eee4;border-color:#17694d}.sentence-tools{display:flex;justify-content:space-between;gap:20px;margin:62px 0 0 85px}.sentence-tools>span{font-size:10px;color:#8c9890;max-width:400px;line-height:1.5}.review-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0}.review-item{border:1px solid #dce4de;border-radius:3px;background:#fff;padding:11px 3px;min-height:63px}.review-item strong{display:block;font-family:SpaceMono;font-size:12px;font-weight:400}.review-item span{font-size:8px;color:#8d998f;display:block;margin-top:6px}.review-answered{background:#eef4ee;border-color:#b9d0bd}.review-current{box-shadow:0 0 0 2px var(--green)}.callout{background:#eef2e9;border-left:3px solid #a7b89b;padding:15px;font-size:12px;line-height:1.6;margin:22px 0}.success-text{color:#2b7056!important}.player-error{position:relative;z-index:30;margin:0}.submission-overlay{position:fixed;inset:0;background:#f8fbf3d9;display:flex;align-items:center;justify-content:center;gap:15px;z-index:100;font-size:17px}.spinner{width:21px;height:21px;border-radius:50%;border:2px solid #b8cec0;border-top-color:#125b50;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1450px){.test-content{padding-top:58px}.reading-columns{margin-top:65px}.cloze-passage,.conversation{margin-top:100px}}@media(max-width:900px){.test-header{padding:0 20px;gap:18px}.test-header-actions{gap:15px}.test-section-name{padding-left:18px}.test-content{padding:35px 25px}.test-content h1{font-size:22px}.reading-passage,.reading-question{font-size:16px}.reading-passage{padding-right:24px}.reading-question{padding-left:25px}.choice{font-size:15px}.cloze-passage{font-size:21px}.test-footer{padding:17px 25px}.speaker{width:49px;height:49px}.chunk-bank,.sentence-tools{margin-left:73px}}@media(max-width:620px){.brand{font-size:22px}.brand small{font-size:8px}.modal{padding:25px}.modal h2{font-size:21px}.test-header{height:77px;padding:0 16px;gap:10px;flex-wrap:wrap;align-content:center}.brand-compact{font-size:17px;gap:5px}.brand-compact .brand-mark{width:23px;transform:scale(.65) skewY(-14deg);margin-left:-5px}.test-section-name{font-size:13px;padding-left:12px}.test-section-name>span{font-size:8px}.test-header-actions{gap:13px}.test-header-actions button{font-size:10px}.test-timer{font-size:15px;min-width:auto;padding-left:12px;margin-left:0}.test-header-actions .timer-toggle{display:none}.test-subbar{padding:12px 18px;font-size:10px}.test-content{padding:30px 20px 20px;min-height:calc(100dvh - 210px)}.test-content h1{font-size:20px}.task-instruction{font-size:11px}.reading-exercise h1{margin-bottom:28px}.reading-columns{grid-template-columns:1fr}.reading-passage{height:33dvh;min-height:190px;max-height:300px;border-right:0;border-bottom:1px solid #cbd6cf;padding:0 12px 20px 0;font-size:16px}.daily-document>div{padding:19px;min-height:180px}.reading-question{padding:25px 0 0;max-height:none}.reading-question h2{font-size:16px}.choice{margin-left:-7px;padding:10px 7px}.test-footer{padding:15px 18px;min-height:74px;gap:12px}.save-indicator{font-size:8px;max-width:120px}.test-nav{gap:7px}.test-nav .button{min-width:75px;padding:8px 12px;font-size:11px;min-height:39px}.cloze-passage{font-size:20px;line-height:2.2;margin-top:40px}.conversation{margin-top:38px}.conversation-line{gap:13px}.speaker{height:40px;width:40px;font-size:16px}.conversation-line>p{font-size:16px}.chunk-bank{margin:20px 0 20px 50px;gap:9px;padding:12px 0}.word-chunk{font-size:14px;padding:9px 11px}.sentence-answer{font-size:16px;gap:10px 8px;padding-top:0}.sentence-slot{min-width:70px;min-height:44px}.slot-placeholder{width:70px}.sentence-slot .word-chunk{font-size:14px}.sentence-tools{margin:35px 0 0 53px;flex-direction:column;gap:20px}.sentence-tools>span{font-size:9px}.review-grid{grid-template-columns:repeat(4,1fr)}.empty-state{padding:50px 25px}}.writing-layout{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0;width:100%}.writing-prompt,.writing-editor{padding:32px 36px;overflow-y:auto}.writing-prompt{border-right:1px solid var(--line)}.writing-prompt li,.writing-review li{margin:10px 0;line-height:1.6}.writing-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.discussion-post{margin-top:20px;padding:18px;background:var(--pale);border:1px solid var(--line);border-radius:8px}.discussion-post h2{font-size:15px;margin:0 0 8px}.discussion-post p{margin:0}.writing-editor{display:flex;flex-direction:column;gap:14px}.writing-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.writing-editor-heading label{font-weight:600}.writing-editor-heading output{font-size:13px;color:var(--muted)}.writing-editor textarea{width:100%;min-height:350px;flex:1;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:18px;background:#fff;color:var(--dark);font:inherit;line-height:1.7}.writing-editor textarea:focus{outline:2px solid var(--green);outline-offset:2px}.writing-editor textarea:disabled{opacity:.7}.writing-review{margin-top:36px}.writing-review h4{margin:24px 0 12px}.writing-review details{margin:18px 0}.submitted-writing{padding:20px;background:var(--pale);border:1px solid var(--line);border-radius:8px}.writing-checklist{border:0;padding:0;margin:24px 0 0}.writing-checklist legend{font-size:13px;font-weight:600;margin-bottom:12px}.writing-checklist label{display:flex;align-items:flex-start;gap:10px;margin:12px 0;line-height:1.5}.writing-checklist input{margin-top:4px}@media(max-width:850px){.writing-layout{grid-template-columns:1fr}.writing-prompt{border-right:0;border-bottom:1px solid var(--line)}.writing-prompt,.writing-editor{padding:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
