:root{--ink:#25233a;--muted:#757185;--blue:#5046b8;--blue-dark:#3d3596;--blue-soft:#eeecff;--purple:#2870cc;--coral:#e76558;--teal:#218f86;--yellow:#eeb33c;--line:#e8e6ef;--paper:#fff;--bg:#f8f9fd;--shadow:0 20px 50px rgba(37,45,85,.1)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 5%,rgba(65,105,216,.09),transparent 25rem),radial-gradient(circle at 93% 38%,rgba(118,87,216,.07),transparent 28rem),var(--bg);font-family:"Be Vietnam Pro",system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}.app-shell{display:flex;flex-direction:column;width:min(1180px,calc(100% - 36px));min-height:100vh;margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:84px}.brand{display:flex;align-items:center;gap:11px;border:0;padding:0;color:var(--ink);background:transparent;text-align:left}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;color:#fff;background:linear-gradient(145deg,#6486e5,var(--blue-dark));font-size:24px;font-weight:800;box-shadow:0 9px 22px rgba(65,105,216,.25)}.brand strong,.brand small{display:block}.brand strong{font-size:16px}.brand small{margin-top:2px;color:var(--muted);font-size:9px}.header-actions{display:flex;gap:8px}.header-button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:13px;padding:10px 13px;color:var(--muted);background:rgba(255,255,255,.85);font-size:10px}.header-button span:first-child{color:var(--yellow);font-size:17px}.header-button.sound-on span:first-child{color:var(--teal)}main{flex:1}.view{display:none;animation:rise .35s ease}.view.active{display:block}@keyframes rise{from{opacity:0;transform:translateY(8px)}}.eyebrow{display:inline-block;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.hero{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;min-height:440px;padding:45px 48px;border:1px solid rgba(255,255,255,.8);border-radius:32px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(238,243,255,.85));overflow:hidden}.hero h1{margin:14px 0 18px;font-size:clamp(39px,5vw,59px);line-height:1.1;letter-spacing:-.05em}.hero h1 span{color:var(--blue)}.hero-copy>p{max-width:650px;color:var(--muted);font-size:13px;line-height:1.8}.hero-facts{display:flex;gap:30px;margin-top:28px}.hero-facts span{color:var(--muted);font-size:9px}.hero-facts b{display:block;margin-bottom:3px;color:var(--ink);font-size:20px}.hero-art{position:relative;min-height:330px}.orbit{position:absolute;inset:10px 15px;border:2px dashed rgba(65,105,216,.18);border-radius:50%;transform:rotate(-12deg)}.book{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:190px;height:145px;border:8px solid #fff;border-radius:24px;color:var(--blue);background:#eaf0ff;font-size:33px;font-weight:800;line-height:1.2;box-shadow:0 17px 35px rgba(43,62,125,.17);transform:translate(-50%,-50%) rotate(-3deg);text-align:center}.book b{color:var(--coral)}.float-card{position:absolute;display:grid;place-items:center;width:61px;height:61px;border:5px solid #fff;border-radius:18px;color:#fff;font-size:25px;font-weight:800;box-shadow:0 10px 23px rgba(35,35,70,.13)}.card-a{left:25px;top:45px;background:var(--purple);transform:rotate(-9deg)}.card-b{right:20px;top:80px;background:var(--teal);transform:rotate(8deg)}.card-c{right:55px;bottom:35px;background:var(--yellow);transform:rotate(-5deg)}.pencil{position:absolute;left:45px;bottom:35px;color:var(--coral);font-size:55px;transform:rotate(-20deg)}
.profile-card{display:flex;align-items:center;gap:35px;margin:22px 0 48px;padding:21px 26px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 9px 30px rgba(37,45,85,.05)}.profile-card>div{display:flex;align-items:center;gap:11px;min-width:260px}.profile-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:var(--blue);background:var(--blue-soft);font-size:20px}.profile-card h2{margin:0 0 3px;font-size:14px}.profile-card p{margin:0;color:var(--muted);font-size:8px}.profile-card label{flex:1}.profile-card label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:8px;font-weight:700}.profile-card input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 13px;outline:0}.profile-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(65,105,216,.1)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 5px 20px}.section-heading h2{margin:7px 0 0;font-size:26px}.section-heading p{max-width:420px;margin:0;color:var(--muted);font-size:9px;text-align:right}.grade-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:50px}.grade-card{position:relative;min-height:160px;border:2px solid transparent;border-radius:20px;padding:20px;color:var(--ink);background:#fff;text-align:left;transition:.2s ease}.grade-card:hover,.grade-card.selected{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}.grade-number{display:grid;place-items:center;width:49px;height:49px;margin-bottom:18px;border-radius:15px;color:#fff;background:var(--blue);font-size:24px;font-weight:800}.grade-card:nth-child(2) .grade-number{background:var(--purple)}.grade-card:nth-child(3) .grade-number{background:var(--teal)}.grade-card:nth-child(4) .grade-number{background:var(--coral)}.grade-card:nth-child(5) .grade-number{color:#805b0d;background:var(--yellow)}.grade-card b,.grade-card small{display:block}.grade-card b{font-size:13px}.grade-card small{margin-top:5px;color:var(--muted);font-size:8px;line-height:1.5}.topic-section{padding-top:10px;scroll-margin-top:20px}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:55px}.topic-card{display:flex;flex-direction:column;min-height:230px;border:1px solid var(--line);border-radius:20px;padding:23px;background:#fff;transition:.2s ease}.topic-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.topic-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:var(--blue);background:var(--blue-soft);font-size:20px;font-weight:800}.topic-card:nth-child(3n+2) .topic-icon{color:var(--purple);background:#eeeaff}.topic-card:nth-child(3n) .topic-icon{color:var(--teal);background:#e7f8f5}.topic-card h3{margin:18px 0 8px;font-size:15px}.topic-card p{margin:0 0 18px;color:var(--muted);font-size:9px;line-height:1.65}.topic-card button{width:100%;margin-top:auto;border:0;border-radius:11px;padding:11px;color:#fff;background:var(--blue);font-size:9px;font-weight:800}
.back-link{border:0;padding:20px 0;color:var(--muted);background:transparent;font-size:10px}.setup-card{max-width:680px;margin:25px auto 70px;padding:43px;border:1px solid var(--line);border-radius:27px;background:#fff;box-shadow:var(--shadow);text-align:center}.setup-icon{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 18px;border-radius:22px;color:var(--blue);background:var(--blue-soft);font-size:30px;font-weight:800}.setup-card h1{margin:10px 0 8px;font-size:33px}.setup-card>p{margin:0 auto 28px;color:var(--muted);font-size:10px}.setup-card fieldset{margin:0;padding:0;border:0;text-align:left}.setup-card legend{margin-bottom:10px;font-size:9px;font-weight:700}.difficulty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.difficulty-grid input{position:absolute;opacity:0}.difficulty-grid label>span{display:block;border:2px solid var(--line);border-radius:14px;padding:15px;text-align:center}.difficulty-grid b,.difficulty-grid small{display:block}.difficulty-grid b{font-size:11px}.difficulty-grid small{margin-top:4px;color:var(--muted);font-size:7px}.difficulty-grid input:checked+span{border-color:var(--blue);color:var(--blue-dark);background:var(--blue-soft)}.primary-button,.secondary-button{border:0;border-radius:12px;padding:13px 20px;font-weight:800}.primary-button{color:#fff;background:linear-gradient(135deg,#557be1,var(--blue-dark));box-shadow:0 8px 20px rgba(65,105,216,.22)}.secondary-button{color:var(--ink);background:#f0eef5}.setup-card>.primary-button{width:100%;margin-top:24px}.setup-card>.primary-button span{float:right;font-size:17px}
#quiz-view{padding:27px 0 60px}.quiz-header{display:flex;align-items:center;gap:16px;max-width:860px;margin:0 auto 20px}.icon-button{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:#fff;font-size:21px}.quiz-progress{flex:1}.quiz-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px;color:var(--muted);font-size:8px}.quiz-progress strong{color:var(--ink)}.progress-track{height:8px;border-radius:20px;background:#e5e9f5;overflow:hidden}.progress-track span{display:block;width:10%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#86a3ee);transition:width .3s}.score-pill{display:flex;align-items:center;gap:6px;min-width:63px;padding:9px 12px;border-radius:12px;color:#9a6a0b;background:#fff4d7}.score-pill span{font-size:17px}.question-card{max-width:720px;min-height:570px;margin:0 auto;padding:28px 38px 34px;border:1px solid var(--line);border-radius:25px;background:#fff;box-shadow:var(--shadow)}.question-top{display:flex;align-items:center;justify-content:space-between}.coach{display:flex;align-items:center;gap:9px}.coach>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#fff;background:var(--blue);font-weight:800}.coach b,.coach small{display:block}.coach b{font-size:9px}.coach small{margin-top:2px;color:var(--muted);font-size:7px}#skill-tag{padding:7px 9px;border-radius:8px;color:var(--teal);background:#e7f8f5;font-size:7px;font-weight:800}.question-card>h1{margin:22px 0 16px;font-size:clamp(21px,4vw,30px);line-height:1.35;text-align:center}.question-art{display:grid;place-items:center;min-height:220px;border:1px solid #e9eaf1;border-radius:18px;background:linear-gradient(145deg,#fbfcff,#f3f6ff);overflow:hidden}.question-art svg{display:block;width:100%;height:auto;max-height:240px}.choice-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.choice-option{min-height:64px;border:2px solid var(--line);border-radius:14px;color:var(--ink);background:#fff;font-size:17px;font-weight:800}.choice-option:hover{border-color:#aabbea;background:#f7f9ff}.choice-option.correct{border-color:var(--teal);color:#168578;background:#e7f8f5}.choice-option.wrong{border-color:var(--coral);color:#c24d3e;background:#fff0ed}.number-answer{margin-top:17px}.number-answer>label{display:block;margin-bottom:7px;color:var(--muted);font-size:8px;font-weight:700}.answer-line{display:flex;align-items:center;gap:8px}.answer-line input{min-width:0;flex:1;border:2px solid var(--line);border-radius:11px;padding:11px 13px;outline:0;font-size:17px;font-weight:700}.answer-line input:focus{border-color:var(--blue)}#answer-unit{color:var(--muted);font-size:10px}.number-pad{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-top:13px}.number-pad button{border:1px solid var(--line);border-radius:8px;padding:7px;color:var(--ink);background:#f8f9fc;font-size:11px;font-weight:700}.feedback-panel{display:none;max-width:720px;margin:12px auto 0;padding:16px 18px;border-radius:16px;align-items:center;justify-content:space-between;gap:15px}.feedback-panel.show{display:flex}.feedback-panel.correct{color:#167f72;background:#e7f8f5}.feedback-panel.wrong{color:#bd4d3e;background:#fff0ed}.feedback-panel>div{display:flex;align-items:center;gap:11px}.feedback-panel>div>span{display:grid;place-items:center;width:36px;height:36px;border:2px solid currentColor;border-radius:50%;font-weight:800}.feedback-panel h2{margin:0 0 3px;font-size:12px}.feedback-panel p{margin:0;font-size:8px;line-height:1.5}.feedback-panel button{border:0;border-radius:10px;padding:10px 14px;color:#fff;background:var(--blue);font-size:9px;font-weight:800}
#result-view{padding:45px 0 70px}.result-card{max-width:700px;margin:auto;padding:39px 43px;border:1px solid var(--line);border-radius:27px;background:#fff;box-shadow:var(--shadow);text-align:center}.result-medal{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 18px;border-radius:22px;color:#fff;background:linear-gradient(145deg,#f7c95a,#eea735);font-size:30px;box-shadow:0 12px 27px rgba(238,167,53,.25);transform:rotate(-5deg)}.result-card h1{margin:9px 0 7px;font-size:31px}.result-card>p{margin:0;color:var(--muted);font-size:10px}.result-score{margin:22px 0}.result-score strong,.result-score span{display:block}.result-score strong{color:var(--blue);font-size:48px}.result-score span{color:var(--muted);font-size:8px}.result-details{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 0;border:1px solid var(--line);border-radius:14px}.result-details div{border-right:1px solid var(--line)}.result-details div:last-child{border:0}.result-details span,.result-details b{display:block}.result-details span{margin-bottom:5px;color:var(--muted);font-size:7px}.result-details b{font-size:11px}.review-list{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:17px 0}.review-list span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#fff;font-size:9px;font-weight:800}.review-list .ok{background:var(--teal)}.review-list .no{background:var(--coral)}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#progress-view{max-width:900px;margin:auto;padding:45px 0 70px}.progress-heading{display:flex;align-items:center;gap:16px;margin-bottom:22px}.progress-heading h1{margin:6px 0 0;font-size:29px}.progress-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:17px}.progress-summary article{display:flex;align-items:center;gap:12px;padding:19px;border:1px solid var(--line);border-radius:16px;background:#fff}.progress-summary article>span{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;color:var(--blue);background:var(--blue-soft);font-weight:800}.progress-summary small,.progress-summary b{display:block}.progress-summary small{margin-bottom:3px;color:var(--muted);font-size:7px}.progress-summary b{font-size:18px}.history-card{padding:23px;border:1px solid var(--line);border-radius:19px;background:#fff}.history-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.history-card h2{font-size:14px}.history-card button{border:0;color:var(--coral);background:transparent;font-size:8px}.history-item{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:13px 3px;border-top:1px solid var(--line)}.history-item h3{margin:0 0 3px;font-size:10px}.history-item p,.history-item time{margin:0;color:var(--muted);font-size:7px}.history-item b{color:var(--blue);font-size:12px}.empty-state{padding:38px;color:var(--muted);font-size:9px;text-align:center}footer{display:flex;justify-content:space-between;padding:20px 4px;border-top:1px solid var(--line);color:#aaa7b5;font-size:8px}.shake{animation:shake .28s}@keyframes shake{25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}
@media(min-width:901px){.grade-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.hero{grid-template-columns:1fr;text-align:center}.hero-copy>p{margin-inline:auto}.hero-facts{justify-content:center}.hero-art{display:none}.grade-grid{grid-template-columns:repeat(3,1fr)}.topic-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.app-shell{width:min(100% - 22px,1180px)}.site-header{min-height:70px}.brand small,.button-label{display:none}.header-button{padding:8px}.hero{min-height:0;padding:34px 20px}.hero h1{font-size:36px}.hero-facts{gap:16px}.profile-card{align-items:stretch;flex-direction:column;gap:16px}.grade-grid{grid-template-columns:repeat(2,1fr)}.topic-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.section-heading p{text-align:left}.setup-card{padding:31px 18px}.difficulty-grid{grid-template-columns:1fr}.question-card{min-height:0;padding:22px 15px}.question-art{min-height:180px}.choice-options{grid-template-columns:1fr}.number-pad{grid-template-columns:repeat(3,1fr)}.answer-line{display:grid;grid-template-columns:1fr auto}.answer-line .primary-button{grid-column:1/-1}.feedback-panel{align-items:stretch;flex-direction:column}.result-card{padding:32px 17px}.result-details{grid-template-columns:1fr;gap:12px}.result-details div{padding-bottom:12px;border-right:0;border-bottom:1px solid var(--line)}.result-actions{grid-template-columns:1fr}.progress-summary{grid-template-columns:1fr}.history-item{grid-template-columns:1fr auto}.history-item time{grid-column:1/-1}}
