:root{--green:#58cc02;--green-dark:#58a700;--navy:#042c60;--blue:#1cb0f6;--red:#ff4b4b;--ink:#3c3c3c;--muted:#777;--line:#e5e5e5;--soft:#f7f7f7;--lip:4px}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.5 "DIN Round",Nunito,Arial,sans-serif}.topbar{height:70px;border-bottom:2px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,calc((100% - 1120px)/2));position:sticky;top:0;background:#fff;z-index:2}.brand{font-size:20px;font-weight:800;letter-spacing:.5px;color:var(--navy);text-decoration:none}.brand span{color:var(--green)}.stats{display:flex;gap:18px;font-weight:800;color:var(--navy)}#hearts{color:var(--red);letter-spacing:2px}.shell{max-width:1120px;margin:0 auto;padding:32px 20px 64px}.hero{max-width:720px;margin:24px auto 32px;text-align:center}.eyebrow{color:var(--green-dark);font-weight:800;text-transform:uppercase;letter-spacing:1px}.hero h1{font-size:clamp(30px,5vw,52px);line-height:1.08;color:var(--navy);margin:10px 0}.hero p{color:var(--muted);font-size:18px}.choice-grid,.part-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.part-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card{border:2px solid var(--line);border-radius:16px;padding:20px;background:#fff;cursor:pointer;text-align:left}.card:hover,.card:focus-within{border-color:var(--blue)}.card.selected{border-color:var(--green);box-shadow:0 var(--lip) 0 var(--green)}.card h2,.card h3{margin:0 0 8px;color:var(--navy)}.card p{margin:0;color:var(--muted)}.button{border:0;border-radius:16px;background:var(--green);color:#fff;font-weight:800;letter-spacing:.7px;text-transform:uppercase;padding:14px 20px;min-height:50px;box-shadow:0 var(--lip) 0 var(--green-dark);cursor:pointer}.button:hover{background:var(--green-dark)}.button.secondary{background:#fff;color:var(--blue);border:2px solid var(--line);box-shadow:none}.button.danger{color:var(--red);background:#fff;border:2px solid #ffd0d0;box-shadow:none}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}.notice{border-radius:12px;background:#fff8df;border:1px solid #f3d37a;padding:12px 16px;color:#6c5100;margin:16px 0}.progress-wrap{max-width:820px;margin:0 auto 24px}.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:14px;margin-bottom:8px}.progress{height:12px;background:var(--line);border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green);transition:width .2s}.error-state{margin:48px auto;max-width:720px}.word-count.warning{color:var(--red)}.question-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;max-width:1060px;margin:auto}.question-card{border:2px solid var(--line);border-radius:16px;padding:clamp(20px,4vw,40px)}.question-card h1{color:var(--navy);font-size:clamp(22px,3vw,32px);margin:8px 0 22px}.meta{color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.8px;font-size:13px}.options{display:grid;gap:12px}.option{width:100%;text-align:left;border:2px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px;font:inherit;cursor:pointer;min-height:54px}.option:hover,.option:focus{border-color:var(--blue)}.option[aria-pressed=true]{border-color:var(--green);background:#efffe7}.option.correct{border-color:var(--green);background:#efffe7}.option.wrong{border-color:var(--red);background:#fff0f0}.feedback{margin-top:16px;padding:14px;border-radius:12px;font-weight:700}.feedback p{margin:0 0 10px;line-height:1.6}.feedback p:last-child{margin-bottom:0}.feedback .feedback-status{font-size:1.05em;text-transform:uppercase;letter-spacing:.4px}.feedback.good{background:#efffe7;color:#267000}.feedback.bad{background:#fff0f0;color:#a50000}.side{border:2px solid var(--line);border-radius:16px;padding:18px;height:max-content}.side h2{color:var(--navy);font-size:18px;margin-top:0}.side p{color:var(--muted);margin:8px 0}.passage{background:var(--soft);border-radius:12px;padding:16px;margin:12px 0;white-space:pre-line}.coach{border-left:4px solid var(--blue);padding-left:12px}.tokens{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.token{border:2px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;font:inherit}.token.selected{background:#e8f7ff;border-color:var(--blue)}textarea{width:100%;min-height:240px;padding:14px;border:2px solid var(--line);border-radius:12px;font:inherit;resize:vertical}textarea:focus{outline:3px solid #b9edff;border-color:var(--blue)}.word-count{color:var(--muted);margin-top:8px}.rubric{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.rubric label{font-size:12px;color:var(--muted)}.rubric input{width:100%;padding:8px;border:2px solid var(--line);border-radius:8px}.section-break{text-align:center;max-width:680px;margin:72px auto}.section-break h1{color:var(--navy);font-size:40px}.results{max-width:820px;margin:auto}.score{font-size:56px;color:var(--green-dark);font-weight:900}.part-result{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:780px){.question-layout{grid-template-columns:1fr}.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side{order:2}.shell{padding:22px 14px 48px}.topbar{padding:0 14px}}@media(max-width:460px){.choice-grid{grid-template-columns:1fr}.part-grid{grid-template-columns:1fr 1fr}.brand{font-size:16px}.stats{gap:8px;font-size:14px}.rubric{grid-template-columns:repeat(2,1fr)}}
