:root{--bg:#eef2f6;--paper:#fff;--ink:#1b2a3a;--muted:#5d6b7b;--line:#d3dbe4;--accent:#1f5fbf;--accent-soft:#dde8f8;--hl:#ffe680;--ok:#1d8a5a;--ok-soft:#dcf2e7;--bad:#c23a32;--bad-soft:#fbe1df;--f-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--f-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111821;--paper:#18222e;--ink:#e4ebf3;--muted:#93a2b3;--line:#2b3a4b;--accent:#6fa3f0;--accent-soft:#1f3350;--hl:#6b5a12;--ok:#4cc38a;--ok-soft:#173a2a;--bad:#f07a71;--bad-soft:#45201e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111821;--paper:#18222e;--ink:#e4ebf3;--muted:#93a2b3;--line:#2b3a4b;--accent:#6fa3f0;--accent-soft:#1f3350;--hl:#6b5a12;--ok:#4cc38a;--ok-soft:#173a2a;--bad:#f07a71;--bad-soft:#45201e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);padding-bottom:env(safe-area-inset-bottom,0px);margin:0;font-size:16px;line-height:1.5}[hidden]{display:none!important}a{color:var(--accent)}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.site-header{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) 10px max(16px, env(safe-area-inset-left,0px));position:sticky;top:0}.brand{max-width:880px;font-family:var(--f-display);color:var(--ink);margin:0 auto;font-size:18px;font-weight:700;text-decoration:none;display:block}.brand span{color:var(--accent)}.wrap{max-width:880px;padding:24px max(16px, env(safe-area-inset-right,0px)) 48px max(16px, env(safe-area-inset-left,0px));margin:0 auto}.drill{flex-direction:column;gap:22px;display:flex}.back{min-height:var(--tap);align-items:center;margin:-10px 0 6px;font-size:15px;text-decoration:none;display:inline-flex}.back:hover{text-decoration:underline}.page-head h1{font-family:var(--f-display);text-wrap:balance;margin:0;font-size:clamp(28px,6vw,40px);font-weight:700;line-height:1.1}.page-head p{color:var(--muted);max-width:62ch;margin:6px 0 0}.label{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.empty{color:var(--muted);font-size:15px}.drill-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px;margin:24px 0 0;padding:0;list-style:none;display:grid}.drill-card{background:var(--paper);border:1px solid var(--line);height:100%;color:var(--ink);border-radius:12px;flex-direction:column;gap:6px;padding:18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.drill-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.drill-title{font-family:var(--f-display);font-size:22px;font-weight:700;line-height:1.2}.drill-desc{color:var(--muted);font-size:15px}.tags{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px;display:flex}.tags span{background:var(--accent-soft);color:var(--ink);border-radius:999px;padding:2px 9px;font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{font:inherit;border:1px solid var(--line);background:var(--paper);min-height:36px;color:var(--ink);cursor:pointer;border-radius:999px;padding:5px 14px;font-size:14px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--paper)}.tabs{border-bottom:2px solid var(--line);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{font:inherit;font-family:var(--f-display);white-space:nowrap;min-height:var(--tap);color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-2px;padding:8px 14px;font-size:17px;font-weight:500}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.board{background:var(--paper);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:16px;padding:18px;display:flex}.board-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.step{font-family:var(--f-display);margin:0;font-size:20px;font-weight:500}.step b{color:var(--accent)}.stats{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:13px;display:flex}.stats strong{color:var(--ink)}.card{font:inherit;text-align:left;border:1.5px solid var(--line);background:var(--bg);min-height:52px;color:var(--ink);cursor:pointer;overflow-wrap:anywhere;border-radius:8px;flex-direction:column;justify-content:center;gap:1px;padding:8px 12px;transition:background .15s,border-color .15s;display:flex}.card.sel{background:var(--hl);border-color:var(--ink)}.card.done{background:var(--ok-soft);border-color:var(--ok);cursor:default;opacity:.85}.card.wrong{background:var(--bad-soft);border-color:var(--bad);animation:.3s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.feedback{min-height:52px;color:var(--muted);font-size:15px}.feedback .bad,.bad-text{color:var(--bad);font-weight:600}.feedback .ok,.ok-text{color:var(--ok);font-weight:600}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{font:inherit;min-height:var(--tap);border:1.5px solid var(--accent);background:var(--accent);color:var(--paper);cursor:pointer;border-radius:8px;padding:9px 18px;font-weight:600}.btn.ghost{color:var(--accent);background:0 0}.chip:focus-visible,.card:focus-visible,.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.tab:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}@media (hover:hover){.card:hover:not(:disabled){border-color:var(--accent)}.drill-card:hover{border-color:var(--accent);transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.card.wrong{animation:none}.card,.drill-card{transition:none}}@media (width<=520px){.wrap{padding-top:16px}.board{padding:12px}.card{padding:7px 9px;font-size:15px}.btn{flex:auto}}
