.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 24px;display:flex}.card{position:relative}.mascot{opacity:.85;place-items:center;width:52px;height:52px;font-size:1.7rem;transition:transform .25s;display:grid;position:absolute;top:24px;right:24px}.eyebrow{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:14px;font-size:.72rem;font-weight:500;display:flex}.pills{gap:6px;display:flex}.pill{background:var(--paper-2);color:var(--ink);font-family:var(--mono);text-transform:none;letter-spacing:0;border:1px solid var(--line-soft);border-radius:2px;padding:3px 8px;font-size:.68rem;font-weight:500}.pill.new{background:var(--paper);border-color:var(--ink)}.pill.learning{color:var(--gold-ink);background:#fbf0d8;border-color:#e6cf91}.pill.review{background:var(--paper-2);color:var(--ink)}.pill.mastered{background:var(--good-bg);color:var(--good);border-color:#c2d9bd}.question{font-family:var(--display);letter-spacing:-.025em;margin:24px 0 28px;font-size:clamp(1.6rem,3.6vw,2.5rem);font-weight:600;line-height:1.1}.answers{gap:10px;display:grid}.opt{text-align:left;background:var(--paper);border:1.5px solid var(--line);width:100%;font-family:var(--display);color:var(--ink);border-radius:2px;align-items:center;gap:14px;padding:15px 18px;font-size:1rem;font-weight:500;transition:border-color .12s linear,background .12s linear,color .12s linear;display:flex}.opt:not(:disabled):hover{border-color:var(--gold);background:#fff6e2}.opt .letter{background:var(--paper-2);width:30px;height:30px;color:var(--ink);font-family:var(--mono);border-radius:2px;flex-shrink:0;place-items:center;font-size:.82rem;font-weight:700;display:grid}.opt.correct{border-color:var(--good);background:var(--good-bg);color:var(--good);animation:.6s ease-out correctPulse}.opt.correct .letter{background:var(--good);color:#fff}.opt.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad);animation:.42s wrongShake}.opt.wrong .letter{background:var(--bad);color:#fff}.feedback{border:1px solid var(--line);background:var(--paper-2);border-radius:2px;margin-top:20px;padding:16px 18px;font-size:.95rem;line-height:1.6}.feedback.info{background:var(--paper-2);border-color:var(--line)}.feedback.good{background:var(--good-bg);border-color:#c2d9bd}.feedback.bad{background:var(--bad-bg);border-color:#e3c5c0}.feedback strong{font-family:var(--display);margin-bottom:6px;font-weight:700;display:block}.feedback a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold);text-underline-offset:3px}.feedback a:hover{background:var(--gold)}.card-hist{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin-top:12px;font-size:.76rem;display:flex}.queued{font-family:var(--mono);color:var(--gold-ink);margin-top:12px;font-size:.78rem;font-weight:500}.queued.done{color:var(--good)}.card-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:18px;display:flex}.progress-text{font-family:var(--mono);color:var(--muted);font-size:.76rem}.footer-actions{gap:8px;display:flex}.side h2{font-family:var(--display);letter-spacing:-.02em;margin:0 0 14px;font-size:1.15rem;font-weight:700}.stats{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.stat .num{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);font-size:2rem;font-weight:700;line-height:1}.stat .label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:5px;font-size:.7rem}.bar{background:var(--paper-2);border:1px solid var(--line);border-radius:0;height:8px;margin:16px 0 6px;overflow:hidden}.bar>div{background:var(--ink);height:100%;transition:width .3s linear}.mode-info{font-family:var(--mono);color:var(--muted);margin-top:6px;font-size:.76rem;line-height:1.5}.topic-list{gap:0;margin-top:12px;display:grid}.topic-row{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.topic-row:last-child{border-bottom:0}.topic-name{font-family:var(--display);font-size:.9rem;font-weight:500}.topic-score{font-family:var(--mono);color:var(--muted);align-items:center;gap:4px;font-size:.76rem;display:flex}.dot{width:7px;height:7px;margin:0 2px 0 6px;display:inline-block}.dot.ok{background:var(--good)}.dot.bad{background:var(--bad)}.hist-list{gap:0;max-height:260px;margin-top:10px;display:grid;overflow:auto}.hist-item{font-family:var(--display);border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:10px;padding:9px 0;font-size:.84rem;display:flex}.hist-item:last-child{border-bottom:0}.hist-item .h-mark{font-family:var(--mono);flex-shrink:0;font-size:.85rem;font-weight:700}.hist-item.ok .h-mark{color:var(--good)}.hist-item.bad .h-mark{color:var(--bad)}.hist-item.meh .h-mark{color:var(--gold-ink)}.hist-item .h-q{line-height:1.35}.hist-item .h-meta{font-family:var(--mono);color:var(--muted);margin-top:2px;font-size:.72rem}.side-reset{border-color:var(--line);width:100%;color:var(--muted);margin-top:20px;padding-top:14px;font-size:.85rem;font-weight:500}.side-reset:hover{color:var(--bad);border-color:var(--bad);background:var(--paper)}#confetti-layer{pointer-events:none;z-index:9999;position:fixed;inset:0;overflow:hidden}.confetti{will-change:transform, opacity;transition:transform 1.15s cubic-bezier(.18,.6,.32,1),opacity 1.15s linear;position:absolute}#streak-toast{background:var(--ink);color:var(--paper);font-family:var(--display);letter-spacing:-.01em;opacity:0;pointer-events:none;z-index:10000;border-radius:2px;padding:11px 20px;font-weight:700;transition:opacity .25s,transform .25s;position:fixed;top:18px;left:50%;transform:translate(-50%,-22px)}#streak-toast.show{opacity:1;transform:translate(-50%)}.card.pop{animation:.52s ease-out pop}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.012)}to{transform:scale(1)}}.card.shake{animation:.54s shake}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-5px)}60%{transform:translate(5px)}75%{transform:translate(-3px)}}@keyframes correctPulse{0%{box-shadow:0 0 #1f7a3a73}to{box-shadow:0 0 0 14px #1f7a3a00}}@keyframes wrongShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.mascot.celebrate{animation:.92s ease-out celebrate}@keyframes celebrate{0%{transform:rotate(0)scale(1)}25%{transform:rotate(-14deg)scale(1.2)}50%{transform:rotate(11deg)scale(1.2)}75%{transform:rotate(-6deg)scale(1.1)}to{transform:rotate(0)scale(1)}}.mascot.sad{animation:.92s ease-in-out sad}@keyframes sad{0%{transform:translateY(0)rotate(0)}30%{transform:translateY(7px)rotate(-9deg)}60%{transform:translateY(7px)rotate(9deg)}to{transform:translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.card.pop,.card.shake,.opt.correct,.opt.wrong,.mascot.celebrate,.mascot.sad,.confetti{transition:none!important;animation:none!important}}@media (width<=520px){.stats{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch}.toolbar .btn{width:100%}.footer-actions{flex-direction:column;width:100%}.footer-actions .btn{width:100%}.mascot{display:none}}.focused{max-width:720px;margin:0 auto}.strip{border-bottom:1px solid var(--line);font-family:var(--mono);justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;padding-bottom:14px;display:flex}.strip__stat{flex-direction:column;gap:4px;min-width:0;display:flex}.strip__num{color:var(--ink);font-size:1.2rem;font-weight:700;line-height:1}.strip__num.accent{color:var(--gold-ink)}.strip__label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.62rem}@media (width<=600px){.strip{gap:12px}.strip__label{font-size:.56rem}}:root{--paper:#fbf8f1;--paper-2:#f4efe2;--ink:#15171c;--muted:#6b7280;--line:#d9d2c2;--line-soft:#e7e1d2;--gold:#ffb627;--gold-ink:#7a4f00;--good:#1f7a3a;--good-bg:#eaf3e8;--bad:#9c2f2f;--bad-bg:#f6e6e3;--display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;font-family:var(--display);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);border-top:6px solid var(--ink);min-height:100vh}a{color:var(--ink)}button{cursor:pointer;font:inherit}.app{max-width:1120px;margin:0 auto;padding:32px 28px 64px}.topnav{border-bottom:1px solid var(--line);max-width:1120px;font-family:var(--mono);align-items:center;gap:12px;margin:0 auto;padding:18px 28px;font-weight:500;display:flex}.topnav a{color:var(--ink);text-decoration:none}.topnav .brand{font-family:var(--display);letter-spacing:-.01em;align-items:center;gap:9px;font-size:1.05rem;font-weight:700;display:inline-flex}.topnav .brand-mark{width:26px;height:26px;color:var(--ink);display:block}.topnav .crumb{color:var(--muted);font-size:.82rem}.panel{background:var(--paper);border:1px solid var(--line);border-radius:2px;padding:28px}.grid{grid-template-columns:1fr 360px;align-items:start;gap:24px;display:grid}.display{font-family:var(--display);letter-spacing:-.035em;font-weight:700;line-height:.98}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#586074;font-size:.74rem;font-weight:500}.lead{color:var(--muted);max-width:60ch;font-size:1.15rem;line-height:1.5}.btn{border:1px solid var(--ink);font-family:var(--display);background:var(--paper);color:var(--ink);border-radius:2px;padding:11px 18px;font-size:.95rem;font-weight:600;transition:background .14s linear,color .14s linear,border-color .14s linear}.btn:hover{background:var(--ink);color:var(--paper)}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}.btn.secondary{background:var(--paper);color:var(--ink)}.btn.good{background:var(--good);color:#fff;border-color:var(--good)}.btn.good:hover{background:var(--ink);border-color:var(--ink)}.btn.bad{background:var(--paper);color:var(--bad);border-color:var(--bad)}.btn.bad:hover{background:var(--bad);color:#fff;border-color:var(--bad)}.hidden{display:none!important}.topic-row{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr auto 24px;align-items:center;gap:20px;padding:22px 8px;transition:background .12s linear;display:grid}.topic-row:hover{background:var(--paper-2)}.topic-row__no{font-family:var(--mono);color:var(--muted);font-size:.8rem}.topic-row__title{flex-direction:column;gap:4px;min-width:0;display:flex}.topic-row__name{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1}.topic-row__blurb{color:var(--muted);font-size:.92rem;line-height:1.4}.topic-row__meta{font-family:var(--mono);color:var(--muted);text-align:right;white-space:nowrap;font-size:.78rem}.topic-row__arrow{font-family:var(--mono);color:var(--muted);transition:transform .14s linear,color .14s linear}.topic-row:hover .topic-row__arrow{color:var(--ink);transform:translate(4px)}@media (width<=600px){.topic-row{grid-template-columns:28px 1fr auto;gap:12px;padding:18px 4px}.topic-row__arrow,.topic-row__blurb{display:none}}@media (width<=800px){.grid{grid-template-columns:1fr}.app{padding:20px 16px 48px}.panel{padding:20px}}.prose{font-size:1.02rem;line-height:1.7}.prose h1{font-family:var(--display);letter-spacing:-.03em;margin:0 0 .6em;font-size:clamp(2rem,5vw,2.8rem);font-weight:700;line-height:1}.prose h2{font-family:var(--display);letter-spacing:-.02em;border-top:1px solid var(--line);margin:2em 0 .6em;padding-top:.6em;font-size:1.5rem;font-weight:700}.prose h3{font-family:var(--display);margin:1.6em 0 .4em;font-size:1.15rem;font-weight:600}.prose p,.prose li{color:var(--ink)}.prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:2px}.prose a:hover{background:var(--gold)}.prose code{font-family:var(--mono);background:var(--paper-2);border:1px solid var(--line-soft);padding:1px 6px;font-size:.85em}.prose table{border-collapse:collapse;width:100%;margin:16px 0;font-size:.9rem}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:8px 11px}.prose th{background:var(--paper-2);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.prose blockquote{border-left:3px solid var(--gold);color:var(--ink);margin:16px 0;padding:4px 0 4px 16px}.topic-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:18px;margin-top:20px;padding-top:18px;display:grid}.topic-stat__num{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700;line-height:1}.topic-stat__num.accent{color:var(--gold-ink)}.topic-stat__label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-size:.68rem}@media (width<=600px){.topic-stats{grid-template-columns:repeat(2,1fr);gap:14px}}.challenge-meta{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding-bottom:14px;display:flex}.challenge-meta__timer{font-family:var(--mono);color:var(--ink);letter-spacing:-.02em;font-size:2rem;font-weight:700}.challenge-meta__timer.warn{color:var(--bad)}.challenge-meta__counter{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.catalog-head{margin-bottom:36px}.catalog-head__title{margin:10px 0 0;font-size:clamp(2.2rem,6vw,3.4rem)}.course-list{flex-direction:column;gap:26px;display:flex}.course-sheet{background:var(--paper);border:1px solid var(--line);color:inherit;border-radius:2px;padding:0 0 0 22px;text-decoration:none;transition:border-color .16s linear,background .16s linear,transform .16s linear,box-shadow .16s linear;display:block;position:relative;overflow:hidden}.course-sheet__edge{background:var(--ink);width:6px;transition:background .16s linear,width .16s linear;position:absolute;inset:0 auto 0 0}.course-sheet__body{padding:26px 28px 24px}.course-sheet__head{align-items:baseline;gap:14px;display:flex}.course-sheet__mark{font-size:1.6rem;line-height:1}.course-sheet__title{font-family:var(--display);letter-spacing:-.03em;flex:auto;margin:0;font-size:clamp(1.7rem,3.6vw,2.3rem);font-weight:700;line-height:1}.course-sheet__arrow{font-family:var(--mono);color:var(--muted);font-size:1.3rem;transition:transform .16s linear,color .16s linear}.course-sheet__blurb{color:var(--muted);max-width:68ch;margin:12px 0 0;font-size:.98rem;line-height:1.5}.course-sheet__meta{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 0;font-size:.74rem}.course-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px;padding-top:20px;display:grid}.course-stat{flex-direction:column;display:flex}.course-stat__num{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.7rem,3vw,2.2rem);font-weight:700;line-height:1}.course-stat__num.accent{color:var(--gold-ink)}.course-stat__num.good{color:var(--good)}.course-stat__num.bad{color:var(--bad)}.course-stat__label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:7px;font-size:.68rem}.course-sheet:hover{border-color:var(--ink);background:var(--paper-2);transform:translateY(-1px);box-shadow:0 6px 18px -12px #15171c66}.course-sheet:hover .course-sheet__edge{background:var(--gold);width:9px}.course-sheet:hover .course-sheet__arrow{color:var(--ink);transform:translate(4px)}.course-sheet:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (width<=600px){.course-list{gap:18px}.course-sheet{padding-left:16px}.course-sheet__body{padding:20px 18px 18px}.course-stats{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:18px;padding-top:16px}.course-sheet__blurb{font-size:.92rem}}.challenge-progress{background:var(--paper-2);border:1px solid var(--line);height:6px;margin-bottom:24px}.challenge-progress>div{background:var(--gold);height:100%;transition:width .2s linear}.review-list{gap:0;margin-top:16px;display:grid}.review-row{border-bottom:1px solid var(--line-soft);font-family:var(--display);grid-template-columns:28px 1fr auto;gap:12px;padding:12px 0;font-size:.9rem;display:grid}.review-row__mark{font-family:var(--mono);font-weight:700}.review-row__mark.ok{color:var(--good)}.review-row__mark.bad{color:var(--bad)}.review-row__time{font-family:var(--mono);color:var(--muted);font-size:.74rem}
