:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;--bg:#0b1120;--bg-alt:#111827;--surface:#151f30;--surface-strong:#1b273a;--text:#e2e8f0;--text-bright:#f8fafc;--text-dim:#9aa6b8;--border:#263449;--accent:#34d399;--accent-strong:#6ee7b7;--accent-text:#07110d;--danger:#fb7185;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica,Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (prefers-color-scheme:light){:root{--bg:#fff;--bg-alt:#f3f4f6;--surface:#fff;--surface-strong:#edf0f3;--text:#253044;--text-bright:#0f141a;--text-dim:#5a6577;--border:#dce2ea;--accent:#047857;--accent-strong:#065f46;--accent-text:#fff;--danger:#be123c}}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100vh;padding-bottom:calc(82px + var(--safe-bottom))}.topbar{z-index:20;height:calc(58px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 18px 0;background:color-mix(in srgb, var(--bg) 90%, transparent);border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.wordmark{color:var(--text-bright);letter-spacing:-.04em;cursor:pointer;background:0 0;border:0;padding:10px 0;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-weight:800}.progress-chip{border:1px solid var(--border);color:var(--text-dim);border-radius:999px;align-items:baseline;gap:5px;padding:7px 11px;font-size:.75rem;display:flex}.progress-chip span{color:var(--accent);font-weight:800}main{width:100%}.screen{width:min(100%,780px);margin:0 auto;padding:28px 18px 40px}.intro{padding:18px 0 24px}.intro.compact{padding-bottom:12px}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 9px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:.72rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{color:var(--text-bright);letter-spacing:-.045em;margin-bottom:12px;font-size:clamp(1.75rem,8vw,2.6rem);line-height:1.08}.intro>p:last-child,.set-hero>p,.completion-card>p,.privacy-note p{color:var(--text-dim);line-height:1.6}.search-box{background:var(--bg-alt);border:1px solid var(--border);min-height:52px;color:var(--text-dim);border-radius:14px;align-items:center;gap:10px;padding:0 16px;display:flex}.search-box:focus-within{border-color:var(--accent)}.search-box input{width:100%;min-width:0;color:var(--text-bright);background:0 0;border:0;outline:0}.search-box input::placeholder{color:var(--text-dim)}.section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin:30px 2px 12px;display:flex}.section-heading h2{color:var(--text-bright);margin:0;font-size:1rem}.section-heading span{color:var(--text-dim);font-size:.76rem}.set-grid{gap:13px;display:grid}.set-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.set-open{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;width:100%;padding:17px;display:grid}.set-open>div{min-width:0}.set-open small,.card-row small{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:.66rem;display:block;overflow:hidden}.set-open h3{color:var(--text-bright);margin:0 0 4px;font-size:1rem;line-height:1.3}.set-open p{color:var(--text-dim);margin:0;font-size:.78rem}.set-symbol{background:color-mix(in srgb, var(--accent) 14%, transparent);width:48px;height:48px;color:var(--accent);border-radius:13px;place-items:center;font-family:SF Mono,JetBrains Mono,Consolas,monospace;font-size:1.2rem;font-weight:800;display:grid}.cram-shortcut{border:0;border-top:1px solid var(--border);background:var(--bg-alt);width:100%;min-height:44px;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:700}.back-button{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;margin:-8px 0 20px;padding:0;font-weight:700}.set-hero{padding:6px 0 8px}.tag-row{flex-wrap:wrap;gap:7px;margin:18px 0 24px;display:flex}.tag-row span{background:var(--surface-strong);color:var(--text-dim);border-radius:7px;padding:6px 9px;font-size:.72rem}.primary-action,.secondary-action,.reveal-action{cursor:pointer;border-radius:12px;width:100%;min-height:52px;padding:0 18px;font-weight:750}.primary-action,.reveal-action{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text)}.secondary-action{border:1px solid var(--border);color:var(--text-bright);background:0 0;margin-top:10px}.card-list{border:1px solid var(--border);border-radius:14px;overflow:hidden}.card-row{border:0;border-bottom:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;align-items:center;gap:12px;width:100%;min-height:58px;padding:12px 15px;display:flex}.card-row:last-child{border-bottom:0}.card-row-copy{flex:1;min-width:0}.card-row-copy strong{color:var(--text-bright);font-size:.9rem;line-height:1.4}.card-number{background:var(--surface-strong);width:30px;height:30px;color:var(--text-dim);border-radius:50%;flex:0 0 30px;place-items:center;font-size:.72rem;font-weight:800;display:grid}.card-number.known{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.empty-state{background:var(--surface);color:var(--text-dim);margin:0;padding:22px}.card-position{color:var(--text-dim);text-align:right;margin-bottom:10px;font-size:.76rem}.study-card{border:1px solid var(--border);background:var(--surface);border-radius:20px;flex-direction:column;justify-content:center;min-height:min(55vh,520px);padding:clamp(24px,7vw,44px);display:flex}.study-card h1{font-size:clamp(1.55rem,7vw,2.4rem)}.study-card .reveal-action{margin-top:24px}.answer{border-top:1px solid var(--border);color:var(--text);margin-top:18px;padding-top:22px;font-size:1rem;line-height:1.65}.answer>:last-child{margin-bottom:0}.answer strong{color:var(--text-bright)}.answer code{background:var(--surface-strong);color:var(--accent);border-radius:5px;padding:2px 5px;font-family:SF Mono,JetBrains Mono,Consolas,monospace}.answer pre{background:var(--bg);border-radius:10px;padding:12px;overflow-x:auto}.answer table{border-collapse:collapse;display:block;overflow-x:auto}.answer th,.answer td{border:1px solid var(--border);padding:7px 10px}.browse-controls,.rating-controls{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.browse-controls button,.rating-controls button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;min-height:54px;font-weight:700}.browse-note{color:var(--text-dim);text-align:center;margin:16px 0 0;font-size:.76rem}.cram-meter{background:var(--surface-strong);border-radius:99px;height:5px;margin:-6px 0 22px;overflow:hidden}.cram-meter span{background:var(--accent);height:100%;transition:width .18s;display:block}.cram-meta{color:var(--text-dim);justify-content:space-between;margin-bottom:10px;font-size:.75rem;display:flex}.rating-controls .again{border-color:color-mix(in srgb, var(--danger) 50%, var(--border));color:var(--danger)}.rating-controls .known-button{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.rating-controls small{opacity:.75;margin-bottom:2px;font-size:.65rem;font-weight:500;display:block}.completion-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:20px;padding:46px 24px}.completion-mark{background:color-mix(in srgb, var(--accent) 18%, transparent);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto 24px;font-size:1.6rem;display:grid}.stats-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0 24px;display:grid}.stats-grid article{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:13px;padding:17px 10px}.stats-grid strong{color:var(--text-bright);font-size:1.6rem;display:block}.stats-grid span{color:var(--text-dim);font-size:.67rem}.data-actions{margin:24px 0}.notice{background:var(--surface-strong);color:var(--accent);border-radius:10px;padding:12px 14px}.privacy-note{border:1px solid var(--border);background:var(--surface);border-radius:14px;margin-top:30px;padding:22px}.privacy-note h2{color:var(--text-bright);font-size:1rem}.privacy-note p{margin-bottom:0;font-size:.86rem}footer{border-top:1px solid var(--border);color:var(--text-dim);justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;font-size:.72rem;display:flex}footer a{color:var(--accent)}.bottom-nav{z-index:30;height:calc(68px + var(--safe-bottom));padding:6px max(18px, calc((100vw - 780px) / 2)) var(--safe-bottom);background:color-mix(in srgb, var(--bg-alt) 94%, transparent);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--text-dim);cursor:pointer;background:0 0;border:0;place-content:center;gap:3px;font-size:.68rem;display:grid}.bottom-nav button span{font-size:1.05rem}.bottom-nav button.active{color:var(--accent)}.center-state{min-height:70vh;color:var(--text-dim);place-content:center;justify-items:center;display:grid}.loader{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}.error-state{text-align:center;padding:30px}.error-state h1{font-size:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width:640px){.screen{padding:42px 28px 70px}.set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.study-card{min-height:440px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
