:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:oklch(98% .006 85);--color-surface:oklch(99.5% .004 85);--color-border:oklch(88% .012 85);--color-ink:oklch(22% .01 260);--color-ink-muted:oklch(42% .02 260);--color-accent:oklch(48% .13 250);--color-accent-ink:oklch(98% .01 250);--color-correct:oklch(45% .15 145);--color-incorrect:oklch(45% .18 25);--font-ui:"Inter Tight", "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-math:"Source Serif 4", "Newsreader", Georgia, serif;--step--1:clamp(.76rem, .72rem + .2vw, .83rem);--step-0:clamp(.95rem, .9rem + .25vw, 1rem);--step-1:clamp(1.05rem, 1rem + .3vw, 1.15rem);--step-2:clamp(1.25rem, 1.1rem + .6vw, 1.5rem);--step-3:clamp(1.6rem, 1.3rem + 1.2vw, 2rem);--step-4:clamp(2rem, 1.4rem + 3vw, 3rem);--step-5:clamp(3rem, 2.2rem + 4vw, 4.5rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius:8px;--shadow-card:0 1px 2px #0000000d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:oklch(19% .012 260);--color-surface:oklch(23% .012 260);--color-border:oklch(32% .014 260);--color-ink:oklch(90% .01 85);--color-ink-muted:oklch(68% .02 260);--color-accent:oklch(72% .13 250);--color-accent-ink:oklch(15% .02 250);--color-correct:oklch(68% .16 150);--color-incorrect:oklch(70% .17 25)}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:oklch(19% .012 260);--color-surface:oklch(23% .012 260);--color-border:oklch(32% .014 260);--color-ink:oklch(90% .01 85);--color-ink-muted:oklch(68% .02 260);--color-accent:oklch(72% .13 250);--color-accent-ink:oklch(15% .02 250);--color-correct:oklch(68% .16 150);--color-incorrect:oklch(70% .17 25)}*{box-sizing:border-box}body{background:var(--color-bg);min-height:100dvh;color:var(--color-ink);font-family:var(--font-ui);font-size:var(--step-0);grid-template-rows:auto 1fr auto;margin:0;line-height:1.5;display:grid}h1,h2,h3,p,ul{margin:0}button{color:inherit;font-family:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-banner{border-bottom:1px solid var(--color-border)}.site-footer{border-top:1px solid var(--color-border)}.site-banner-inner,.site-footer-inner,#app{max-width:40rem;padding-inline:var(--space-4);margin-inline:auto}.site-banner-inner{padding-block:var(--space-3);justify-content:space-between;align-items:center;display:flex}.site-logo{font-size:var(--step-1);letter-spacing:.01em;color:var(--color-ink);font-weight:700;text-decoration:none}.theme-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:44px;height:44px;color:var(--color-ink);font-size:var(--step-1);cursor:pointer;justify-content:center;align-items:center;line-height:1;transition:border-color .15s,color .15s;display:inline-flex}.theme-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.site-footer-inner{padding-block:var(--space-4);justify-content:center;align-items:center;gap:var(--space-1);color:var(--color-ink-muted);font-size:var(--step--1);display:flex}.github-link{width:44px;height:44px;color:var(--color-ink-muted);justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.github-link:hover{color:var(--color-ink)}#app{width:100%;padding-block:var(--space-8) var(--space-10)}.menu{gap:var(--space-5);flex-direction:column;display:flex}.menu-subtitle{color:var(--color-ink-muted)}.mode-list{gap:var(--space-3);flex-direction:column;display:flex}.mode-card{align-items:center;gap:var(--space-4);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;min-height:44px;box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);cursor:pointer;transition:background-color .15s,border-color .15s;display:flex}.mode-card:hover,.mode-card:focus-visible{background:color-mix(in oklch, var(--color-accent) 6%, var(--color-bg));border-color:var(--color-accent)}.mode-card-index{text-align:center;width:1.6em;font-family:var(--font-math);font-style:italic;font-size:var(--step-3);color:var(--color-accent);flex:none}.mode-card-body{flex:1;min-width:0}.mode-card-title{font-size:var(--step-1);font-weight:600}.mode-card-description{margin-top:var(--space-1);color:var(--color-ink-muted);font-size:var(--step--1)}.mode-card-arrow{color:var(--color-ink-muted);flex:none;transition:transform .15s,color .15s}.mode-card:hover .mode-card-arrow,.mode-card:focus-visible .mode-card-arrow{color:var(--color-accent);transform:translate(3px)}.next-button,.secondary-button{border-radius:var(--radius);width:100%;min-height:44px;padding:var(--space-3) var(--space-4);font-size:var(--step-0);cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:flex}.next-button{background:var(--color-accent);color:var(--color-accent-ink);border:1px solid var(--color-accent);transition:background-color .15s}.next-button:hover{background:color-mix(in oklch, var(--color-accent) 88%, black)}.secondary-button{border:1px solid var(--color-border);background:0 0;transition:border-color .15s,color .15s}.secondary-button:hover{border-color:var(--color-accent);color:var(--color-accent)}.quiz{gap:var(--space-6);flex-direction:column;display:flex}.quiz-progress{align-items:center;gap:var(--space-3);display:flex}.quiz-progress-track{background:var(--color-border);border-radius:999px;flex:1;height:6px;overflow:hidden}.quiz-progress-fill{background:var(--color-accent);border-radius:inherit;height:100%;transition:width .2s}.quiz-score{color:var(--color-ink-muted);font-size:var(--step--1);font-variant-numeric:tabular-nums;flex:none}.prompt{text-align:center}.prompt-kind{margin-bottom:var(--space-2);color:var(--color-ink-muted);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.prompt-function{font-family:var(--font-math);font-style:italic;font-weight:500;font-size:var(--step-4);line-height:1.2}.frac{vertical-align:middle;font-size:.85em;line-height:1.15;font-family:var(--font-math);flex-direction:column;align-items:center;margin:0 .2em;font-style:italic;display:inline-flex}.frac-num,.frac-den{padding:0 .15em}.frac-num{border-bottom:1.5px solid}.sqrt-radicand{font-family:var(--font-math);border-top:1.5px solid;padding:0 .15em;font-style:italic}.choices{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.choice{text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-height:88px;box-shadow:var(--shadow-card);font-family:var(--font-math);font-style:italic;font-size:var(--step-1);padding:var(--space-3);cursor:pointer;justify-content:center;align-items:center;transition:background-color .15s,border-color .15s,color .15s;display:flex}.choice:hover:not(:disabled){border-color:var(--color-accent);background:color-mix(in oklch, var(--color-accent) 5%, var(--color-bg))}.choice:disabled{cursor:default}.choice.correct{border-color:var(--color-correct);background:color-mix(in oklch, var(--color-correct) 12%, var(--color-bg))}.choice.incorrect{border-color:var(--color-incorrect);background:color-mix(in oklch, var(--color-incorrect) 12%, var(--color-bg))}.feedback{text-align:center;min-height:1.4em;font-weight:600}.feedback.correct{color:var(--color-correct)}.feedback.incorrect{color:var(--color-incorrect)}.note{text-align:center;color:var(--color-ink-muted);font-size:var(--step--1)}.results{align-items:center;gap:var(--space-6);text-align:center;flex-direction:column;display:flex}.results h1{font-size:var(--step-2)}.score-summary{flex-direction:column;align-items:center;display:flex}.score-summary-numbers{align-items:baseline;gap:var(--space-1);font-family:var(--font-math);font-style:italic;display:flex}.score-summary-value{font-size:var(--step-5);color:var(--color-accent);font-weight:600;line-height:1}.score-summary-total{color:var(--color-ink-muted);font-size:var(--step-1)}.score-summary-percentage{margin-top:var(--space-1);font-family:var(--font-ui);color:var(--color-ink-muted);font-style:normal;font-size:var(--step-0)}.score-dots{justify-content:center;gap:var(--space-2);flex-wrap:wrap;list-style:none;display:flex}.score-dot{background:var(--color-border);border-radius:50%;width:12px;height:12px}.score-dot.correct{background:var(--color-correct)}.score-dot.incorrect{background:var(--color-incorrect)}.review{text-align:left;align-self:stretch}.review h3{margin-bottom:var(--space-3);color:var(--color-ink-muted);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.review-list{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.review-item{gap:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.review-item-function{font-family:var(--font-math);font-style:italic;font-size:var(--step-1)}.review-item-expected{color:var(--color-ink-muted);font-size:var(--step--1)}.review-answer{font-family:var(--font-math);font-style:italic;font-weight:600}.review-answer.correct{color:var(--color-correct)}.review-answer.incorrect{color:var(--color-incorrect)}.actions{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.math-editor{gap:var(--space-2);flex-direction:column;display:flex}.math-editor-formula{min-height:4rem;padding:var(--space-4) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-bottom:3px solid var(--color-accent);border-radius:var(--radius) var(--radius) 0 0;font-family:var(--font-math);font-style:italic;font-size:var(--step-2);justify-content:center;align-items:center;display:flex}.math-toolbar{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.toolbar-button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-width:44px;min-height:44px;font-family:var(--font-math);font-style:italic;font-size:var(--step-0);cursor:pointer;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:inline-flex}.toolbar-button:hover{border-color:var(--color-accent);color:var(--color-accent)}.toolbar-button-danger{color:var(--color-ink-muted);font-family:var(--font-ui);font-style:normal}.toolbar-button-danger:hover{border-color:var(--color-incorrect);color:var(--color-incorrect)}.math-block-list{display:inline}.math-input{border:none;border-bottom:1.5px solid var(--color-border);color:inherit;font:inherit;font-family:var(--font-math);background:0 0;min-width:1ch;padding:.1em .2em;font-style:italic}.math-input:focus{border-bottom-color:var(--color-accent);outline:none}.frac.editable .frac-num,.frac.editable .frac-den{justify-content:center;display:flex}.sqrt-block{align-items:baseline;display:inline-flex}.exp-block{font-size:.75em}.exp-block .math-input{border-bottom-width:1px}@media (width<=420px){.choices{grid-template-columns:1fr}}
