*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#18343c;background:#fbfcf9;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #16816e;outline-offset:5px}header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;gap:28px;border-bottom:1px solid #e4e9e3}.brand{display:flex;align-items:center;font-size:17px;font-weight:800;letter-spacing:-.6px;gap:10px}.brandlight{font-weight:400}.logo{display:inline-flex;align-items:center;justify-content:center;background:#163b43;color:#fff;width:39px;height:39px;border-radius:10px;font-size:22px}.logo span{color:#bcebc6}nav{display:flex;gap:28px;margin-left:auto;font-size:13px}nav a:hover,.textlink:hover{color:#16816e}.login{font-size:13px}.button{background:#143b43;color:white;display:inline-flex;align-items:center;justify-content:center;gap:35px;padding:15px 23px;border-radius:7px;font-size:14px;font-weight:600;transition:transform .15s,background .15s}.button:hover{background:#22605e;transform:translateY(-2px)}.button.small{padding:11px 17px;font-size:12px;gap:10px}.hero{max-width:1440px;margin:auto;padding:84px 7% 78px;display:grid;grid-template-columns:1.12fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:23px;color:#527268}.dot{color:#4f9a72}h1{font-size:clamp(42px,4.4vw,67px);line-height:1.08;letter-spacing:-3.5px;font-weight:500;margin:0 0 26px}h1 em{font-family:Georgia,serif;color:#39765d;font-weight:400}h2{font-size:38px;line-height:1.16;letter-spacing:-1.5px;font-weight:500;margin:0 0 22px}h3{line-height:1.3}p{color:#687775}.lead{font-size:16px;line-height:1.85}.actions{display:flex;align-items:center;gap:24px;margin:30px 0 24px}.textlink{font-size:13px;font-weight:600}.micro{font-size:10px;color:#71817b}.micro span{margin:0 9px}.practice-art{position:relative;border:1px solid #dce4da;border-radius:13px;background:#fff;padding:23px 26px 13px;box-shadow:0 18px 60px #2142320a;transform:rotate(-2deg)}.art-top,.art-bottom{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1px;color:#6b7f76}.art-top{padding-bottom:18px;border-bottom:1px solid #e9ede8}.art-top i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#569e73;margin-right:5px}.sample-tag{text-transform:uppercase;font-size:8px;letter-spacing:1px;color:#7a897f;margin-top:24px}.sample-passage{font-family:monospace;font-size:clamp(20px,2vw,29px);line-height:1.65;padding:15px 0 22px;color:#bac4be;letter-spacing:-1px}.sample-passage>span{color:#30725b}.sample-passage b{font-weight:400;color:#1c3b34}.cursor{display:inline-block;height:29px;width:2px;background:#527a52;vertical-align:middle}.keyboard{padding:17px 8px;background:#f2f5ef;border:1px solid #e5e9df;border-radius:9px}.keyboard>div{display:flex;justify-content:center;gap:5px;margin:5px 0}.key{width:29px;height:30px;border:1px solid #dee4d8;background:#fff;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:10px;box-shadow:0 2px 0 #dbe2d5}.key.accent{background:#dcebd7;border-color:#c9ddbf}.space{padding:4px 40px;background:#fff;border:1px solid #dce2d6;font-size:8px;border-radius:4px;color:#889385}.art-bottom{padding:17px 0 0;letter-spacing:0;font-size:9px}.note{position:absolute;right:-26px;bottom:36px;background:#e9edc9;transform:rotate(8deg);padding:16px 25px;font-family:Georgia,serif;font-size:15px;line-height:1.4;box-shadow:0 8px 15px #30402010}.note span{position:absolute;right:10px;top:-20px;font-size:38px;color:#3b735a}.ribbon{padding:24px 7%;display:flex;justify-content:space-between;align-items:center;gap:22px;border-block:1px solid #e0e6dd;background:#f4f6ef;font-size:11px;letter-spacing:1px}.ribbon>span{font-size:11px;color:#758174;letter-spacing:0}.section{max-width:1440px;margin:auto;padding:70px 7%}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-head p{font-size:13px}.exam-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.exam-card{background:white;border:1px solid #dce4da;border-radius:8px;padding:23px;transition:border-color .2s}.exam-card:hover{border-color:#6d9a77}.card-top{display:flex;justify-content:space-between;color:#7a8c80;font-family:monospace;font-size:11px}.exam-card h3{font-size:22px;font-weight:500;letter-spacing:-.5px;margin:30px 0 7px}.exam-card p{font-size:12px;margin-top:0}.card-bottom{border-top:1px solid #e7ebe5;margin-top:25px;padding-top:15px;font-size:10px;color:#667d6d;display:flex;justify-content:space-between;gap:6px}.card-bottom span{font-size:9px;background:#eff3e9;padding:0 5px;border-radius:4px}.journey{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid #e0e5dd}.journey p{font-size:14px}.journey .button{margin-top:20px}.step{display:flex;gap:24px;padding:20px 0;border-bottom:1px solid #e0e5dd}.step>span{color:#6d8b72;font:12px monospace;margin-top:6px}.step h3{margin:0;font-size:18px;font-weight:500}.step p{margin-bottom:0;font-size:13px}.closing{background:#163e43;color:#fff;margin:20px 5% 65px;text-align:center;border-radius:12px;padding:60px 20px}.closing .eyebrow{color:#b5d1bd}.closing h2{font-size:40px}.closing p{color:#b5c7c4;font-size:14px}.button.light{background:#dfedcf;color:#234b40;margin-top:15px}footer{padding:38px 7% 20px;display:flex;justify-content:space-between;flex-wrap:wrap;border-top:1px solid #e0e5dd;gap:25px}footer p{font-size:12px}footer>div:nth-child(2){display:flex;gap:25px;font-size:12px}.copyright{width:100%;font-size:10px;padding-top:20px;border-top:1px solid #e0e5dd}.page-shell{max-width:1200px;margin:auto;padding:75px 6%;min-height:65vh}.page-shell h1{max-width:820px}.page-shell .lead{max-width:650px}.prose{max-width:740px;margin:40px 0}.prose-block{padding:10px 0 25px}.prose h2{font-size:24px;letter-spacing:-.5px}.prose p{line-height:1.9}.faqs{max-width:800px;margin:40px 0}details{border-bottom:1px solid #dce4da;padding:22px 0}summary{cursor:pointer;list-style:none;font-size:18px;display:flex;justify-content:space-between;gap:20px}details p{max-width:680px;font-size:15px}details[open] summary span{transform:rotate(45deg)}.search{display:block;margin:30px 0;font-size:12px;font-weight:bold;max-width:600px}.search input{display:block;width:100%;margin-top:9px;padding:15px 18px;border:1px solid #cbd6cb;border-radius:6px;background:white;color:#18343c}.auth-card{max-width:650px;margin:70px auto;padding:45px;border:1px solid #dce4da;background:white;border-radius:12px;min-height:400px}.auth-card h1{font-size:45px}.auth-card .button{margin:20px 0}.auth-card .textlink{display:block;margin-top:25px}@media(max-width:1050px){header{gap:15px}nav{gap:15px}.brand{font-size:14px}.hero{gap:35px;padding-inline:5%}h1{letter-spacing:-2px}.note{right:-10px}.key{width:24px}.exam-card{padding:17px}.exam-card h3{font-size:19px}}@media(max-width:760px){header{flex-wrap:wrap;padding:18px 5%;gap:12px}.brand{margin-right:auto}.brandlight{display:block;font-size:10px}.logo{width:33px;height:33px}nav{order:4;width:100%;justify-content:space-between;margin:8px 0 0;font-size:12px}.login{font-size:12px}.hero{grid-template-columns:1fr;padding:45px 7%;gap:40px}h1{font-size:48px}.lead{font-size:15px}.actions{gap:18px;flex-wrap:wrap}.practice-art{max-width:470px;width:95%;margin:0 auto}.sample-passage{font-size:26px}.key{width:27px}.ribbon{flex-wrap:wrap;justify-content:center;padding:20px;font-size:9px}.ribbon>span{width:100%;text-align:center}.section{padding:45px 6%}.section-head{display:block}.section-head h2{font-size:33px}.exam-grid{grid-template-columns:repeat(2,1fr)}.journey{grid-template-columns:1fr;gap:20px}.closing{margin:15px 5% 40px;padding:40px 20px}.closing h2{font-size:31px}footer{padding:30px 6%}.page-shell{padding:45px 6%}.page-shell h1{font-size:44px}.auth-card{margin:35px 5%;padding:30px 23px}.auth-card h1{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media(max-width:760px){.hero{grid-template-columns:minmax(0,1fr)}.hero-copy,.practice-art{min-width:0}.hero h1{font-size:clamp(35px,10.8vw,48px)}.practice-art{padding:20px 17px 13px}.key{min-width:0;flex:1;max-width:27px}.keyboard>div{gap:3px}.note{right:-4px;padding:12px 16px;font-size:13px}.sample-passage{font-size:clamp(18px,6vw,26px)}.art-top{font-size:7px;letter-spacing:.5px}.space{padding-inline:25px}}
/* Phase 2 · focused practice room */
button{cursor:pointer;border:0}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.plain-button{background:transparent;color:#254e47;padding:10px 0;text-decoration:underline;text-underline-offset:4px}button:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #16816e;outline-offset:3px}.typing-shell{max-width:1180px;margin:auto;padding:52px 5% 70px}.typing-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.typing-heading h1{font-size:43px;letter-spacing:-1.7px;max-width:720px}.typing-heading .eyebrow{margin-bottom:12px}.local-badge{font-size:11px;padding:8px 12px;border:1px solid #d3dfd4;border-radius:30px;white-space:nowrap;color:#3b755c;background:#eff5ec}.practice-progress{display:flex;gap:40px;padding:20px 0;border-block:1px solid #dfe6db;margin:12px 0 25px;font-size:13px;color:#869087}.practice-progress b{font-family:monospace;font-size:10px;margin-right:5px}.practice-progress [aria-current]{color:#175846;font-weight:bold}.practice-intro{font-size:13px;margin-bottom:27px}.setup-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:30px}.engine-panel{border:1px solid #dce4da;background:#fff;border-radius:12px;padding:30px}.panel-title>span{font-size:10px;letter-spacing:1.6px;color:#6b8574}.panel-title h2{font-size:28px;margin-top:10px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}select,.full-field input{width:100%;padding:13px 12px;color:#18343c;background:#fbfcf9;border:1px solid #ccd8cc;border-radius:6px;margin-top:8px;font:inherit;font-size:14px}label,legend{font-size:12px;font-weight:600}.full-field{display:block;margin:24px 0}.mode-options{border:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:24px 0}.mode-options legend{margin-bottom:10px}.mode-options label{padding:14px 10px;border:1px solid #dce4da;border-radius:7px;cursor:pointer}.mode-options input{accent-color:#2d7657;display:block;margin:0 0 10px}.mode-options span{display:block;font-size:10px;font-weight:400;line-height:1.5;color:#697b6d;margin-top:6px}.mode-options .selected{background:#edf4e9;border-color:#769575}.check-row{display:flex;align-items:center;gap:12px;margin:24px 0;font-weight:400}.check-row input{accent-color:#2d7657;width:18px;height:18px;flex-shrink:0}.check-row small{display:block;color:#798575;margin-top:4px}.wide{width:100%}.setup-aside{background:#edf2e6;padding:32px;border-radius:12px}.setup-aside h2{font:28px/1.25 Georgia,serif;color:#37654e}.passage-preview{font-size:19px;line-height:1.9;color:#526c58}.aside-rule{border-top:1px solid #d0ddc8;margin:24px 0}.setup-aside h3{font-size:16px}.setup-aside ul{padding-left:18px;font-size:13px;color:#66735f;line-height:1.9}.readiness{max-width:780px;margin:30px auto}.readiness h2{font-size:30px}.readiness>p{font-size:14px}.readiness-state{min-height:24px;color:#397457!important}.test-summary{display:flex;flex-wrap:wrap;gap:8px}.test-summary span{background:#eef3e8;padding:6px 10px;font-size:11px;border-radius:4px}.alert{background:#fff4d8;border:1px solid #e4d2a2;padding:14px 17px;border-radius:7px;color:#6b5726;font-size:13px}.recovery{padding:20px 24px;background:#eaf3e5;border:1px solid #cedec3;border-radius:9px;margin-bottom:25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.recovery p{font-size:12px;margin-bottom:0}.recovery .actions{margin:0;gap:15px}.test-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:25px 0}.test-toolbar .eyebrow{display:block;margin:0 0 7px}.test-toolbar strong{font-size:18px;font-weight:500}.timer{border:1px solid #ccdccc;background:#edf4e8;padding:10px 25px;border-radius:8px;text-align:center;min-width:130px}.timer small{font-size:9px;letter-spacing:2px;display:block}.timer strong{font:32px monospace;font-variant-numeric:tabular-nums;color:#254f3b}.timer.urgent{background:#fff0e5;border-color:#dfa879}.timer.urgent strong{color:#8e3f22}.live-stats{display:flex;gap:30px;font-size:12px;margin-bottom:20px;color:#718071}.live-stats b{font:22px monospace;color:#254b40;margin-right:5px}.passage-controls{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#718071;margin-bottom:18px;gap:12px}.passage-controls label{display:flex;align-items:center;gap:10px}.passage-controls input{width:100px;accent-color:#396f51}.reference-passage{max-height:235px;overflow:auto;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere;padding:18px 20px;background:#f6f8f2;border:1px solid #e2e8dd;border-radius:6px;font-family:ui-monospace,'Nirmala UI',monospace;color:#4e5d54;scroll-margin-top:20px}.char-correct{color:#276947;background:#e4f0df}.char-wrong{color:#a12d29;background:#ffe3de;text-decoration:underline}.char-current{border-bottom:3px solid #315d44;background:#e8edd2}.typing-label{display:flex;justify-content:space-between;gap:15px;margin:25px 0 10px}.typing-label small{font-weight:400;color:#7c8779}.test-panel textarea{display:block;width:100%;min-height:180px;max-height:400px;resize:vertical;padding:18px 20px;border:1px solid #afc7aa;border-radius:6px;line-height:1.8;color:#203f30;font-family:ui-monospace,'Nirmala UI',monospace;caret-color:#276947}.test-panel textarea::placeholder{font:14px Arial;color:#899284}.input-footer{font-size:11px;color:#70806d;margin-top:12px;display:flex;gap:20px;justify-content:space-between}.test-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.guide-keyboard{text-align:center;background:#eff3e9;padding:20px;border-radius:10px;margin-top:20px}.guide-keyboard>div{display:flex;gap:7px;justify-content:center;margin:7px 0}.guide-keyboard span{padding:7px 13px;background:#fff;border:1px solid #d7e0ce;border-radius:4px;font:14px monospace}.guide-keyboard .next-key{background:#28634a;color:#fff}.guide-keyboard p{font-size:12px}.finish-dialog{max-width:540px;border:1px solid #dce4da;border-radius:12px;padding:32px;color:#193d34}.finish-dialog::backdrop{background:#12342c88}.finish-dialog h2{font-size:28px}.finish-dialog p{font-size:14px}.result-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:35px 0}.result-banner .eyebrow{margin-bottom:10px;display:block}.result-banner h2{font-size:30px;margin-bottom:12px}.result-banner p{font-size:12px}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #d4dfce;border-radius:10px;background:#edf4e7;padding:25px 0}.result-stats>div{padding:0 24px;border-right:1px solid #d3dfcc}.result-stats>div:last-child{border:0}.result-stats strong{font-size:38px;font-weight:500;letter-spacing:-1px;display:block}.result-stats span{font-size:12px;color:#667c5e}.result-counts{display:flex;flex-wrap:wrap;gap:22px;margin:24px 0;font-size:12px;color:#71806b}.result-counts b{color:#2d513c;margin-right:4px}.review-panel h2{font-size:27px}.review-panel p{font-size:13px}.review-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;margin:24px 0}.review-legend span{padding:4px 9px;border-radius:4px}.review-correct{color:#275e36;background:#eaf3e3}.review-substitution{color:#92372b;background:#ffebe3}.review-omission{color:#775719;background:#fff1c9}.review-addition{color:#684081;background:#f1e7fa}.aligned-review{font:18px/2.3 ui-monospace,'Nirmala UI',monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto;padding:20px;background:#fafbf8;border-radius:5px}.comparison{white-space:pre-wrap;overflow-wrap:anywhere}.score-explainer{margin-top:20px}.score-explainer p,.score-explainer li{font-size:13px;color:#6b7868}.score-explainer summary,.review-panel summary{font-size:15px}.result-stats,.setup-grid,.engine-panel{min-width:0}@media(max-width:760px){.typing-shell{padding:35px 5%}.typing-heading{display:block}.typing-heading h1{font-size:35px}.local-badge{display:inline-block;margin-bottom:15px}.practice-progress{gap:0;justify-content:space-between;font-size:11px}.practice-progress b{display:block;margin-bottom:4px}.setup-grid{grid-template-columns:1fr}.engine-panel{padding:21px}.setup-aside{padding:24px}.fields{gap:12px}.mode-options{gap:6px}.mode-options label{padding:12px 8px}.recovery,.result-banner{display:block}.recovery .actions{margin-top:15px}.typing-label{display:block}.typing-label small{display:block;margin-top:6px}.test-toolbar strong{font-size:15px}.timer{min-width:105px;padding:8px 14px}.timer strong{font-size:28px}.live-stats{gap:12px;flex-wrap:wrap;font-size:10px}.live-stats b{font-size:18px}.passage-controls{flex-wrap:wrap}.reference-passage{padding:13px;max-height:210px}.input-footer{display:block}.test-actions{align-items:start}.test-actions .button{white-space:nowrap;padding:13px}.result-stats{grid-template-columns:1fr 1fr;gap:22px 0}.result-stats>div:nth-child(2){border:0}.result-stats strong{font-size:31px}.result-stats>div{padding:0 19px}.guide-keyboard span{padding:5px 6px;font-size:12px}.guide-keyboard>div{gap:4px}.finish-dialog{width:90%;padding:24px}}
