:root{--ink:#14213d;--blue:#163f8f;--aqua:#10b9ad;--gold:#f6bf3c;--paper:#f5f8fd;--line:#dce5f2;--muted:#68738a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 0,#dff9f7,transparent 28%),var(--paper);color:var(--ink);font:16px/1.55 Inter,system-ui,sans-serif}button,select{font:inherit}button{cursor:pointer}header{max-width:1120px;margin:auto;padding:20px 22px;display:flex;align-items:center;gap:20px}header img{width:180px;margin:auto}header a,header button{color:var(--blue);font-weight:800;text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 13px}main{max-width:1080px;margin:auto;padding:8px 22px 70px}.hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:38px;border-radius:30px;color:#fff;background:linear-gradient(125deg,#163f8f,#2868c9 65%,#10b9ad);box-shadow:0 20px 50px #163f8f22}.hero h1{font-size:clamp(2rem,5vw,3.3rem);line-height:1.08;margin:8px 0 12px}.hero p{max-width:680px;margin:0;font-size:1.08rem}.eyebrow{font-weight:900;letter-spacing:.12em;font-size:.78rem}.hero-mark{font-size:6rem}.notice,.official{margin-top:18px;padding:18px 20px;background:#fff8db;border:1px solid #ead071;border-radius:18px;display:grid;gap:5px}.setup{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:15px;align-items:end}.setup h2{margin:0}.setup p{margin:4px 0 0;color:var(--muted)}label{display:grid;gap:6px;font-weight:800}select{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}button{border:0;border-radius:13px;padding:13px 17px;background:var(--blue);color:#fff;font-weight:900}.setup button{grid-column:1/-1}.practice,.result{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:25px;padding:26px}.practice-head{display:flex;justify-content:space-between;align-items:center}.practice-head h2{margin:3px 0}.timer{font-weight:900;color:var(--blue);background:#eaf3ff;padding:8px 13px;border-radius:12px}.progress{height:9px;background:#e8edf5;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--aqua),#45cb6d);width:10%;transition:.25s}.question{padding-top:22px}.question>p{font-size:1.2rem;font-weight:800}.visual{font-size:2.2rem;letter-spacing:.2em;padding:18px;border-radius:18px;background:#f3f7fd;text-align:center;min-height:76px}.answers{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.answers button{background:#fff;color:var(--ink);border:2px solid var(--line);min-height:58px}.answers button:hover{border-color:var(--blue)}.answers button.correct{background:#e7faef;border-color:#2aaa68}.answers button.wrong{background:#fff0f0;border-color:#dc5a5a}#feedback{min-height:28px;color:#2a7253}.result{text-align:center}.result-star{font-size:4rem}.result h2{font-size:2rem}.result #score{font-size:1.2rem;font-weight:800}.official{background:#eef6ff;border-color:#cbdcf3}.official a{color:var(--blue);font-weight:900}@media(max-width:760px){header{padding:14px}header img{width:130px}.hero{padding:25px}.hero-mark{font-size:3rem}.setup{grid-template-columns:1fr}.answers{grid-template-columns:1fr}main{padding:6px 14px 90px}}

.visual{white-space:pre-wrap;overflow-wrap:anywhere;letter-spacing:.04em;font-size:clamp(1.1rem,3.5vw,2rem)}.visual.structured{white-space:normal}.row-label{font-size:.9rem;font-weight:700;text-align:left;margin:6px 0}.symbol-row{display:grid;grid-template-columns:repeat(var(--cells),minmax(0,1fr));gap:3px;margin-bottom:16px}.symbol-row>span{display:grid;justify-items:center;gap:5px;font-size:clamp(1.15rem,3.6vw,2.2rem)}.symbol-row small{font:600 .875rem system-ui;color:#526481}.matrix-grid{display:grid;grid-template-columns:repeat(3,minmax(50px,100px));justify-content:center;gap:8px}.matrix-grid>span{padding:12px;border:1px solid #bbcee5;border-radius:10px;background:white}.answers button{overflow-wrap:anywhere;white-space:pre-wrap}.visual:not(.structured){line-height:1.9}.answers button:focus-visible{outline:3px solid #163f8f;outline-offset:3px}
