:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#251c3c;background:#f7f7fb;font-synthesis:none;font-size:16px;--purple:#6437dc;--dark:#291844;--lime:#d9f66c;--line:#e1dce9;--muted:#70677f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}a{color:var(--purple);text-underline-offset:4px}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid var(--line);border-radius:14px;background:white;color:var(--dark);font-weight:700;padding:12px 20px;cursor:pointer;text-decoration:none}button:hover,.button:hover{border-color:var(--purple);background:#f0eaff}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--purple);border-color:var(--purple);color:white}.primary:hover{background:#512ac2;color:white}.dark{background:var(--dark);color:white}.small{font-size:.875rem}.muted{color:var(--muted)}.header{min-height:88px;padding:20px max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;gap:18px;background:white;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:7px;font-size:1.65rem;font-weight:850;color:var(--dark);text-decoration:none;letter-spacing:-1px}.brand>span:not(.brand-icon){color:var(--purple)}.brand-icon{background:var(--dark);color:var(--lime);border-radius:12px;padding:3px 12px;letter-spacing:0}.brand small{font-size:.9rem;font-weight:500;letter-spacing:0;border-left:1px solid var(--line);padding-left:12px;margin-left:7px}.header nav{display:flex;gap:22px;margin-left:auto;font-size:.9rem}.header nav a{color:var(--muted);text-decoration:none}.pill,.eyebrow{font-size:.8rem;font-weight:750;letter-spacing:.05em}.pill{background:#f0eafb;color:#5a3c83;border-radius:30px;padding:7px 12px}.eyebrow{text-transform:uppercase;color:var(--purple)}main{max-width:1240px;margin:40px auto;padding:0 24px;min-height:65vh}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.055em;margin:14px 0 22px}h2{font-size:1.5rem;letter-spacing:-.03em}h3{font-size:1.1rem}p{line-height:1.65}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;align-items:center;margin-bottom:32px}.hero p{max-width:55ch}.hero-art{background:var(--dark);color:white;border-radius:28px;padding:32px;position:relative;overflow:hidden}.hero-art strong{display:block;font-size:4.7rem;color:var(--lime);letter-spacing:-.08em;line-height:1.1}.hero-art p{color:#dfd5ee}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.card{background:white;border:1px solid var(--line);border-radius:24px;padding:26px;min-width:0}.card p:last-child{margin-bottom:0}.notice{border-left:4px solid #c5a843;background:#fff9e6;padding:14px 18px;border-radius:10px;line-height:1.6;margin:16px 0}.notice.error{border-color:#b32242;background:#fff0f3}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:16px}.meta{display:flex;gap:24px;margin:24px 0;color:var(--muted)}.meta strong{display:block;font-size:1.7rem;color:var(--dark)}.progress{height:8px;background:#eae4f5;border-radius:10px;overflow:hidden;margin:12px 0}.progress span{display:block;height:100%;background:var(--purple)}.exam-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px;flex-wrap:wrap}.timer{font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.timer.warning{color:#b32242}.exam{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 220px;gap:20px;align-items:start}.exam.no-reading{grid-template-columns:minmax(0,1fr) 230px;max-width:940px;margin:auto}.reading{background:#f0ecf7;border:1px solid #e5dced;border-radius:22px;padding:24px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.reading summary{font-weight:750;cursor:pointer;margin-bottom:14px;white-space:normal}.reading table{border-collapse:collapse;width:100%;font-size:.875rem}.reading th,.reading td{border:1px solid #cfc3df;padding:8px;white-space:normal}.question h2{font-size:1.25rem;line-height:1.6;letter-spacing:-.02em;white-space:pre-wrap}.choices{display:grid;gap:12px;margin:24px 0}.choice{justify-content:flex-start;text-align:left;font-weight:500;line-height:1.5;padding:14px;min-height:62px;width:100%}.choice b{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#f1eef7}.choice.selected{background:#f0e8ff;border:2px solid var(--purple);padding:13px}.choice.selected b{background:var(--purple);color:white}.choice.correct{border:2px solid #37784c}.qnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:16px}.qnav button{min-height:36px;padding:0;border-radius:9px;font-size:.8rem}.qnav button.answered{background:#e9e0fb;color:#562baf}.qnav button.flagged{box-shadow:inset 0 -4px #c8a520}.qnav button.active{background:var(--purple);color:white;border-color:var(--purple)}.navcard{position:sticky;top:20px;padding:18px}.navcard summary{font-weight:700;cursor:pointer}.question-foot{border-top:1px solid var(--line);padding-top:20px}.question-foot button{flex:1}.flag[aria-pressed=true]{background:#fff4c0;border-color:#cbb048}.save-status{font-size:.875rem;color:var(--muted);min-height:24px}.results-score{font-size:4rem;font-weight:850;color:var(--purple);letter-spacing:-.07em}.area-result{padding:16px 0;border-bottom:1px solid var(--line)}.area-result:last-child{border:0}.panel-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px}.item-list{max-height:70vh;overflow:auto}.item-list button{width:100%;justify-content:space-between;margin-bottom:8px;font-size:.875rem;padding:10px}.item-list button.active{border-color:var(--purple);background:#f0e8ff}.explanation{border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.explanation li{margin:12px 0;line-height:1.65}label{display:grid;gap:8px;font-weight:650}input,select{width:100%;min-height:50px;padding:12px;border:1px solid #cbc4d5;border-radius:12px;background:white;color:var(--dark)}input:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bd9dff;outline-offset:3px}.login{max-width:500px;margin:auto}.login .primary{width:100%}.divider{text-align:center;color:var(--muted);margin:24px 0}.login form{display:grid;gap:16px}.login h1{font-size:2.3rem}footer{font-size:.875rem;color:var(--muted);line-height:1.8;text-align:center;padding:30px 24px;border-top:1px solid var(--line)}.modal{position:fixed;inset:0;background:#1b102c99;display:grid;place-items:center;z-index:10;padding:24px}.modal>.card{max-width:480px;width:100%}[hidden]{display:none!important}.busy{opacity:.65;pointer-events:none}.flash{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--dark);color:white;border-radius:14px;padding:16px 24px;z-index:20;box-shadow:0 8px 30px #0002}
@media(max-width:1000px){.exam{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.navcard{grid-column:1/-1;position:static}.qnav{grid-template-columns:repeat(10,minmax(0,1fr))}.exam.no-reading{grid-template-columns:minmax(0,1fr)}.hero-art strong{font-size:3.5rem}}
@media(max-width:650px){.header{padding:16px;gap:12px;min-height:76px}.header nav{order:3;width:100%;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line)}.header>.pill{margin-left:auto;font-size:.7rem;padding:6px 9px}.brand{font-size:1.4rem}.brand small{display:none}main{padding:0 16px;margin:28px auto}.hero,.grid,.exam,.exam.no-reading,.panel-layout{grid-template-columns:minmax(0,1fr);gap:16px}.hero{margin-bottom:24px}.hero-art{padding:24px}.hero-art strong{font-size:3rem}.card{padding:20px;border-radius:20px}.exam .reading{grid-row:1;padding:18px}.exam .question{grid-row:2}.exam.no-reading .question{grid-row:auto}.exam-top{gap:12px}.exam-top .timer{font-size:1.35rem}.exam-top button{padding:10px 14px}.question h2{font-size:1.12rem}.qnav{grid-template-columns:repeat(8,minmax(0,1fr))}.qnav button{min-height:40px}.item-list{max-height:180px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.item-list button{margin:0;font-size:.75rem}.reading{font-size:1rem}.panel-layout .reading{margin-bottom:16px}.results-score{font-size:3.2rem}h1{font-size:2.2rem}.meta{gap:22px}.navcard{padding:16px}.question-foot{position:sticky;bottom:0;background:white;padding-bottom:8px}.row>.button{flex-grow:1}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,border-color .15s}}
