:root{--ink:#1f2440;--ink-2:#4a5170;--line:#d5dcec;--grid:#e4ecfa;--paper:#fff;--page:#f7faff;--blue:#6c9bff;--blue-ink:#2a55c9;--blue-tint:#e6eeff;--coral:#ff7a6b;--coral-ink:#c4362a;--coral-tint:#ffe9e5;--green:#3ccb7f;--green-ink:#13804a;--green-tint:#def7e8;--sun:#ffc93c;--sun-ink:#8a5a00;--sun-tint:#fff4d1;--grape:#b89cff;--grape-ink:#6b4bd6;--grape-tint:#f0e9ff;--subj:var(--grape);--subj-ink:var(--grape-ink);--subj-tint:var(--grape-tint);--r-lg:20px;--r:14px;--head:"Baloo 2", "Nunito", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif}.subj-MAT{--subj:var(--blue);--subj-ink:var(--blue-ink);--subj-tint:var(--blue-tint)}.subj-TUR{--subj:var(--coral);--subj-ink:var(--coral-ink);--subj-tint:var(--coral-tint)}.subj-FEN{--subj:var(--green);--subj-ink:var(--green-ink);--subj-tint:var(--green-tint)}.subj-SOS{--subj:var(--sun);--subj-ink:var(--sun-ink);--subj-tint:var(--sun-tint)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--page);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;background-size:26px 26px;font-size:17px;line-height:1.5}h1,h2,h3,button,.btn,.brand{font-family:var(--head)}h1{margin:0 0 6px;font-size:34px;font-weight:700;line-height:1.15}h2{margin:0 0 12px;font-size:23px;font-weight:700;line-height:1.2}h3{margin:0 0 8px;font-size:19px;font-weight:700;line-height:1.25}a{color:var(--blue-ink);text-underline-offset:3px}p{margin:0 0 12px}strong{font-weight:800}.wrap{max-width:960px;margin:0 auto;padding:28px 16px 72px}.narrow{max-width:440px}.topbar{background:var(--paper);border-bottom:2px solid var(--ink);z-index:10;position:relative}.topbar .inner{flex-wrap:wrap;align-items:center;gap:14px;max-width:960px;margin:0 auto;padding:10px 16px;display:flex}.brand{color:var(--ink);align-items:center;gap:8px;font-size:21px;font-weight:700;text-decoration:none;display:inline-flex}.logo{background:var(--sun);border:2px solid var(--ink);width:40px;height:40px;box-shadow:2px 2px 0 var(--ink);letter-spacing:-.5px;border-radius:11px;place-items:center;font-size:17px;font-weight:800;display:inline-grid;transform:rotate(-6deg)}.nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.nav a{color:var(--ink-2);font-family:var(--head);border:2px solid #0000;border-radius:999px;padding:6px 12px;font-size:16px;font-weight:600;text-decoration:none}.nav a:hover{border-color:var(--ink);color:var(--ink);background:var(--sun-tint)}.who{color:var(--ink-2);font-weight:700}.topbar button.ghost{border:2px solid var(--line)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.sub{color:var(--ink-2);margin:0;font-size:18px}.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--r-lg);box-shadow:0 3px 0 var(--line);margin-bottom:16px;padding:20px}a.card{color:inherit;text-decoration:none;display:block}a.card:hover{border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;display:grid}.grid .card{margin-bottom:0}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.grid.stats .card{padding:14px 16px}.sticker{border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:var(--r-lg);background:var(--paper)}.btn,button{border-radius:var(--r);border:2px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 20px;font-size:17px;font-weight:700;line-height:1.2;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background-color .12s;display:inline-flex;box-shadow:0 4px #0c0f22}.btn:hover,button:hover{background:#2c3359}.btn:active,button:active{transform:translateY(3px);box-shadow:0 1px #0c0f22}.btn.secondary,button.secondary{background:var(--paper);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.btn.secondary:hover,button.secondary:hover{background:var(--sun-tint)}.btn.secondary:active,button.secondary:active{box-shadow:0 1px 0 var(--ink)}.btn.ghost,button.ghost{color:var(--ink-2);box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover,button.ghost:hover{background:var(--grape-tint);color:var(--ink)}.btn.ghost:active,button.ghost:active{transform:none}.btn.danger,button.danger{background:var(--paper);color:var(--coral-ink);border-color:var(--coral-ink);box-shadow:0 4px 0 var(--coral-ink)}.btn.danger:hover,button.danger:hover{background:var(--coral-tint)}.btn.ok,button.ok{background:var(--green);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.btn.ok:hover,button.ok:hover{background:#33b872}.btn.subj,button.subj{background:var(--subj);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.btn.subj:hover,button.subj:hover{filter:brightness(1.05);background:var(--subj)}.btn.big,button.big{border-radius:16px;min-height:56px;padding:12px 26px;font-size:20px}.btn.small,button.small{border-radius:11px;min-height:36px;padding:5px 13px;font-size:15px;box-shadow:0 3px #0c0f22}.btn.small.secondary,button.small.secondary,.btn.small.ok,button.small.ok{box-shadow:0 3px 0 var(--ink)}.btn.small.danger,button.small.danger{box-shadow:0 3px 0 var(--coral-ink)}.btn.small.ghost,button.small.ghost{box-shadow:none}button:disabled,button:disabled:hover{opacity:.5;cursor:not-allowed;transform:none}:focus-visible{outline:3px solid var(--grape-ink);outline-offset:3px}label{margin:14px 0 6px;font-weight:800;display:block}input[type=text],input[type=password],input[type=number],input[type=url],input[type=date],select,textarea{width:100%;min-height:48px;font:inherit;border:2px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;padding:10px 14px}input:focus,select:focus,textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--sun);outline:none}textarea{min-height:84px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--ink);vertical-align:middle}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.msg{border-radius:var(--r);border:2px solid;margin-bottom:16px;padding:12px 16px;font-weight:600}.msg.ok{background:var(--green-tint);color:var(--green-ink);border-color:var(--green)}.msg.err{background:var(--coral-tint);color:var(--coral-ink);border-color:var(--coral)}.msg.info{background:var(--blue-tint);color:var(--blue-ink);border-color:var(--blue)}.msg.warn{background:var(--sun-tint);color:var(--sun-ink);border-color:var(--sun)}.badge{background:var(--grape-tint);color:var(--grape-ink);font-size:14px;font-weight:700;font-family:var(--head);border:2px solid;border-radius:999px;padding:2px 11px;line-height:1.4;display:inline-block}.badge.mastered{background:var(--green-tint);color:var(--green-ink)}.badge.needs_support{background:var(--coral-tint);color:var(--coral-ink)}.badge.in_progress{background:var(--sun-tint);color:var(--sun-ink)}.badge.not_started{color:var(--ink-2);background:#f1f3f8}.subject-dot{border:2px solid var(--ink);vertical-align:-1px;background:var(--subj);border-radius:4px;width:13px;height:13px;margin-right:8px;display:inline-block}.table-box{border:2px solid var(--line);border-radius:var(--r-lg);background:var(--paper);box-shadow:0 3px 0 var(--line);margin-bottom:16px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:16px}th{text-align:left;color:var(--ink-2);font-family:var(--head);border-bottom:2px solid var(--line);white-space:nowrap;background:#f4f7fd;padding:10px 12px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}tr:last-child td{border-bottom:none}.stat{font-family:var(--head);font-size:40px;font-weight:800;line-height:1.1}.muted{color:var(--ink-2)}.small{font-size:15px}.tile{border-width:2px}.tile.t-sun{background:var(--sun-tint);border-color:var(--sun);box-shadow:0 3px 0 var(--sun)}.tile.t-coral{background:var(--coral-tint);border-color:var(--coral);box-shadow:0 3px 0 var(--coral)}.tile.t-grape{background:var(--grape-tint);border-color:var(--grape);box-shadow:0 3px 0 var(--grape)}a.tile:hover{border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}.hello{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:26px;display:flex}.hello h1{margin:0;font-size:40px}.hello .sub{font-size:18px}.stars{gap:6px;font-size:30px;line-height:1;display:inline-flex}.stars .off{filter:grayscale();opacity:.3}.hello .stars{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px;margin-left:auto;padding:8px 14px}.plan{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-bottom:36px;display:grid}.subj-card{flex-direction:column;display:flex;position:relative;overflow:hidden}.subj-card .band{background:var(--subj);border-bottom:2.5px solid var(--ink);align-items:center;gap:12px;padding:14px 18px;display:flex}.subj-card .icon{background:var(--paper);border:2.5px solid var(--ink);border-radius:14px;flex:none;place-items:center;width:52px;height:52px;font-size:28px;display:grid;transform:rotate(-5deg)}.subj-card .name{font-family:var(--head);font-size:24px;font-weight:800}.subj-card .body{flex-direction:column;flex:1;gap:6px;padding:18px;display:flex}.subj-card .topic{font-family:var(--head);margin:0;font-size:22px;font-weight:700;line-height:1.25}.subj-card .unit{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}.subj-card .actions{margin-top:auto;padding-top:8px}.subj-card .actions .btn,.subj-card .actions button{width:100%}.subj-card.done .band{background:var(--subj-tint)}.stamp{font-family:var(--head);color:var(--green-ink);border:3px solid var(--green-ink);background:var(--paper);border-radius:12px;padding:2px 10px;font-size:18px;font-weight:800;position:absolute;top:12px;right:14px;transform:rotate(8deg)}.waiting{background:var(--sun-tint);border:2px dashed var(--sun-ink);color:var(--sun-ink);border-radius:var(--r);margin:0;padding:10px 14px;font-weight:700}.extra{padding:22px}.extra h2{align-items:center;gap:10px;display:flex}.timer{z-index:5;background:linear-gradient(var(--page) 80%, transparent);padding:12px 0 10px;position:sticky;top:0}.timer .label{font-family:var(--head);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-weight:700;display:flex}.timer .chip{background:var(--subj);border:2px solid var(--ink);border-radius:999px;align-items:center;gap:8px;padding:3px 12px 3px 6px;font-size:16px;display:inline-flex}.timer .chip .ic{background:var(--paper);border:2px solid var(--ink);border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.timer .clock{font-variant-numeric:tabular-nums;background:var(--paper);border:2px solid var(--ink);border-radius:12px;padding:2px 12px;font-size:22px}.timer .bar{background:var(--paper);border:2px solid var(--ink);border-radius:999px;height:16px;overflow:hidden}.timer .fill{background:var(--subj);border-right:2px solid var(--ink);height:100%;transition:width 1s linear}.timer.warn .fill{background:var(--sun)}.timer.danger .fill{background:var(--coral)}.timer.danger .clock{background:var(--coral-tint);color:var(--coral-ink)}.qcard{margin-top:12px;padding:24px}.qnum{font-family:var(--head);color:var(--subj-ink);background:var(--subj-tint);border:2px solid var(--subj-ink);border-radius:10px;margin-bottom:12px;padding:0 10px;font-weight:800;display:inline-block}.stem{font-family:var(--head);white-space:pre-wrap;margin-bottom:22px;font-size:24px;font-weight:600;line-height:1.4}.options{gap:14px;display:grid}.option{text-align:left;background:var(--paper);width:100%;min-height:64px;color:var(--ink);border:2.5px solid var(--ink);font-family:var(--body);box-shadow:0 4px 0 var(--ink);border-radius:16px;justify-content:flex-start;align-items:center;gap:14px;padding:12px 16px;font-size:20px;font-weight:700;display:flex}.option:hover{background:var(--subj-tint)}.option.selected{background:var(--subj-tint);box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.letter{border:2.5px solid var(--ink);width:38px;height:38px;font-family:var(--head);background:var(--paper);border-radius:11px;flex:none;place-items:center;font-size:18px;font-weight:800;display:grid}.option.selected .letter{background:var(--subj)}.qactions{margin-top:24px}.hint{color:var(--ink-2);margin-top:18px;font-size:15px}.result-hero{grid-template-columns:auto 1fr;align-items:center;gap:22px;margin-bottom:20px;padding:22px;display:grid;position:relative;overflow:hidden}.medal{background:var(--subj);border:3px solid var(--ink);width:132px;height:132px;box-shadow:4px 4px 0 var(--ink);text-align:center;border-radius:50%;place-items:center;display:grid}.medal .pct{font-family:var(--head);font-size:40px;font-weight:800;line-height:1}.medal .lbl{font-size:14px;font-weight:700}.result-hero h1{font-size:30px}.result-hero .stars{margin:6px 0 4px;font-size:34px}.result-hero .actions{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.scores{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.score{border:2px solid var(--ink);border-radius:var(--r);box-shadow:0 3px 0 var(--ink);padding:12px 14px}.score .stat{font-size:36px}.score.s-right{background:var(--green-tint)}.score.s-wrong{background:var(--coral-tint)}.score.s-blank{background:var(--sun-tint)}.score .lbl{color:var(--ink-2);font-weight:700}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{border:1.5px solid var(--ink);opacity:0;border-radius:2px;width:10px;height:14px;position:absolute;top:-14px}@media (prefers-reduced-motion:no-preference){.confetti i{animation:1.8s cubic-bezier(.2,.6,.4,1) forwards drop}}@keyframes drop{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(260px)rotate(540deg)}}.review{background:var(--paper);border:2px solid var(--line);border-radius:var(--r);border-left-width:8px;margin-bottom:14px;padding:14px 16px}.review.right{border-left-color:var(--green)}.review.wrong{border-left-color:var(--coral)}.review.blank{border-left-color:var(--sun)}.review .meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:15px;display:flex}.verdict{font-family:var(--head);border:2px solid;border-radius:8px;padding:0 8px;font-weight:800}.review.right .verdict{color:var(--green-ink);background:var(--green-tint)}.review.wrong .verdict{color:var(--coral-ink);background:var(--coral-tint)}.review.blank .verdict{color:var(--sun-ink);background:var(--sun-tint)}.review ol{margin:8px 0;padding-left:24px}.review li{padding:2px 0}.review li.key{color:var(--green-ink);font-weight:800}.review li.picked{color:var(--coral-ink);font-weight:700}.explain{background:var(--grape-tint);border-radius:12px;padding:10px 12px}details summary{cursor:pointer;color:var(--ink-2);font-weight:700}.welcome{text-align:center;margin:44px 0 22px}.welcome .logo{width:84px;height:84px;box-shadow:4px 4px 0 var(--ink);border-width:3px;border-radius:22px;margin-bottom:18px;font-size:34px}.welcome .chips{justify-content:center;gap:10px;margin-top:14px;font-size:26px;display:flex}.welcome .chips span{border:2px solid var(--ink);width:46px;height:46px;box-shadow:2px 2px 0 var(--ink);border-radius:12px;place-items:center;display:grid}.welcome .chips span:nth-child(odd){transform:rotate(-6deg)}.welcome .chips span:nth-child(2n){transform:rotate(5deg)}.video-list{gap:18px;display:grid}.video-card{margin-bottom:0}.video{aspect-ratio:16/9;border:2px solid var(--ink);background:#000;border-radius:12px;width:100%;display:block}.thumb{aspect-ratio:16/9;border:2px solid var(--ink);background:#000;border-radius:12px;display:block;position:relative;overflow:hidden}.thumb img{object-fit:cover;opacity:.85;width:100%;height:100%}.thumb .play{background:var(--sun);color:var(--ink);font-family:var(--head);border:2px solid var(--ink);border-radius:999px;padding:6px 12px;font-size:15px;font-weight:700;position:absolute;inset:auto 12px 12px auto}@media (min-width:900px){.video-list.two{grid-template-columns:1fr 1fr}}@media (max-width:560px){h1{font-size:28px}.hello h1{font-size:32px}.hello .stars{margin-left:0}.stem{font-size:21px}.option{min-height:58px;font-size:18px}.result-hero{text-align:center;grid-template-columns:1fr;justify-items:center}.result-hero .actions{justify-content:center}.medal{width:116px;height:116px}.scores .stat{font-size:30px}.brand{font-size:19px}.logo{width:36px;height:36px;font-size:15px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:560px){.qactions>button.subj,.qactions>button.secondary{flex:100%}.qactions .spacer{display:none}}
