:root{--blue:#2A6F97;--light:#6EC1E4;--orange:#F7941D;--red:#F04444;--bg:#F4FAFD;--ink:#1F2E3B;--muted:#667789;--border:#D9E8F0}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#f8fdff,var(--bg));color:var(--ink)}main{max-width:1180px;margin:22px auto;padding:0 14px}header{display:flex;justify-content:space-between;align-items:center;background:#ffffffcc;border:1px solid var(--border);border-radius:24px;padding:16px 20px;box-shadow:0 18px 38px #17304017;gap:16px}header p{margin:6px 0 0;color:var(--blue);font-weight:800}.brand{font-size:clamp(2rem,4vw,3rem);font-weight:900;letter-spacing:-.03em}.brand span{color:var(--blue)}.brand b{color:var(--orange)}.brand strong{color:var(--red)}.badges{display:flex;gap:8px;flex-wrap:wrap}.badges em{font-style:normal;background:#EAF7FC;color:var(--blue);border:1px solid var(--border);padding:9px 12px;border-radius:999px;font-weight:800}.hero{margin:20px 0;display:grid;grid-template-columns:1.5fr .6fr;gap:20px;padding:28px;border-radius:28px;background:linear-gradient(135deg,var(--blue),var(--light));color:white;box-shadow:0 18px 38px #17304017}.hero h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1;margin:0}.hero p{font-size:1.08rem;line-height:1.55}.eyebrow{font-size:.83rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900}.score{width:180px;height:180px;border-radius:50%;display:grid;place-items:center;background:#ffffff30;align-self:center;justify-self:center}.score span{font-size:3rem;font-weight:900}.score small{text-transform:uppercase;font-weight:800}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stats div,.card{background:white;border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:0 18px 38px #17304010}.stats b{display:block;color:var(--blue);font-size:2rem}.stats span{color:var(--muted);font-weight:800}.grid{display:grid;grid-template-columns:1.55fr .85fr;gap:20px}.main label,.card small,.questionbox small,.answerbox small,.result small,.feedback small,.playback small{display:block;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin-bottom:8px}select,input,textarea{width:100%;padding:14px;margin:6px 0 10px;border-radius:14px;border:1px solid var(--border);font-size:1rem;font-family:inherit}textarea{min-height:96px}.counter div{height:12px;background:#E7F3F9;border-radius:99px;overflow:hidden}.counter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--light),var(--orange))}.notice{background:#FFF8ED;border:1px solid #FDE2B0;color:#8A4F00;padding:12px;border-radius:14px;font-weight:700}.notice.good{background:#ECFDF3;color:#166534}.questionbox,.answerbox,.writing,.result,.feedback,.breakdown,.playback{margin-top:16px;padding:18px;border-radius:20px;border:1px solid var(--border);background:#F7FBFD}.answerbox{background:#fff}.questionbox h2{font-size:clamp(1.65rem,3vw,2.5rem);margin:8px 0}.answerbox h3{font-size:clamp(1.35rem,2.2vw,2rem);margin:8px 0;color:var(--blue)}#hintText{background:#FFF8ED;border:1px solid #FDE2B0;color:#8A4F00;padding:12px;border-radius:14px;font-weight:800}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}button{border:0;border-radius:16px;padding:14px 18px;font-weight:900;color:var(--blue);background:#EAF7FC;cursor:pointer}button.primary{background:linear-gradient(135deg,var(--orange),#f9a73d);color:white}button.danger{background:#FDEBEC;color:#C23636}.nav{justify-content:space-between}.feedback p{font-weight:800}.good{color:#166534}.okay{color:#8A4F00}.needs-work{color:#C23636}.breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.breakdown div{text-align:center;background:white;border:1px solid var(--border);border-radius:14px;padding:12px}.breakdown b{display:block;color:var(--blue);font-size:1.4rem}.breakdown span{font-size:.75rem;text-transform:uppercase;color:var(--muted);font-weight:900}.breakdown p{grid-column:1/-1;font-weight:800}.hidden{display:none!important}audio{width:100%}aside{display:grid;gap:20px}h3{margin:0 0 8px;color:var(--blue)}ul{margin:8px 0 0 20px;padding:0;line-height:1.6}#recentAttempts div{border-left:5px solid var(--light);padding:10px;border-radius:12px;background:#F8FCFF;margin:8px 0}@media(max-width:900px){header,.hero,.grid,.stats{grid-template-columns:1fr;display:grid}.score{justify-self:start}.buttons button{width:100%}}