:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}:root[data-theme=dark]{--background: #0b1020;--surface: #151c2f;--surface-strong: #202a43;--primary: #b7f34a;--secondary: #8b6cff;--success: #43d69c;--success-bg: #12382f;--error: #ff647c;--error-bg: #421923;--info: #7cc7ff;--info-bg: #102f45;--warning: #ffc857;--text: #f5f7ff;--muted: #b8c1d9;--border: #33405f;--focus: #ffc857;color-scheme:dark}:root[data-theme=light]{--background: #f4f7fb;--surface: #ffffff;--surface-strong: #e8eef8;--primary: #4f7d00;--secondary: #5941c9;--success: #087f5b;--success-bg: #dff6ec;--error: #c92a2a;--error-bg: #ffe3e3;--info: #1c6ea4;--info-bg: #e0f2ff;--warning: #8a5a00;--text: #13203a;--muted: #46546f;--border: #c8d2e3;--focus: #5941c9;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--background);color:var(--text)}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}select{min-height:2.5rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text);padding:0 .75rem}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.app-frame{display:flex;min-height:100vh;flex-direction:column}.app-shell{width:min(100% - 2rem,78rem);flex:1;margin:0 auto;padding:1rem 0 3rem}.app-navbar{background:var(--surface);border-bottom:1px solid var(--border)}.app-navbar-inner,.app-footer-inner{width:min(100% - 2rem,78rem);margin:0 auto}.app-navbar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem 0}.app-navbar-menu{display:flex;flex:1 1 auto;min-width:0;align-items:center;justify-content:space-between;gap:.5rem 1.5rem}.app-navbar-links{display:flex;flex-wrap:wrap;gap:.35rem}.app-navbar-link{border:1px solid transparent;border-radius:.375rem;background:transparent;color:var(--muted);font-weight:800;padding:.5rem .85rem}.app-navbar-link:hover{color:var(--text);background:var(--surface-strong)}.app-navbar-link.is-active{border-color:color-mix(in srgb,var(--primary),#000 20%);background:var(--primary);color:#101806}.app-navbar-actions{display:flex;min-width:0;justify-content:flex-end}.app-navbar-toggle{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text)}.app-navbar-toggle-bars,.app-navbar-toggle-bars:before,.app-navbar-toggle-bars:after{display:block;width:1.25rem;height:2px;border-radius:2px;background:currentColor}.app-navbar-toggle-bars{position:relative}.app-navbar-toggle-bars:before,.app-navbar-toggle-bars:after{content:"";position:absolute;left:0}.app-navbar-toggle-bars:before{top:-.375rem}.app-navbar-toggle-bars:after{top:.375rem}.app-footer{border-top:1px solid var(--border)}.app-footer-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:clamp(1.25rem,3vw,2rem) 0;text-align:center}.app-footer-line{color:var(--muted);font-size:.875rem}.brand-lockup{display:inline-flex;align-items:center;gap:.5rem}.brand-mark{display:block;flex:0 0 auto}.brand-wordmark{font-weight:800;font-size:1.125rem;letter-spacing:-.01em}.brand-wordmark-name{color:var(--text)}.brand-wordmark-code{color:var(--primary)}.selectors{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.selectors label{display:grid;gap:.25rem;color:var(--muted);font-size:.875rem}.home-layout,.match-layout,.tutorial-layout,.result-layout,.progress-layout,.categories-layout,.review-layout,.state-panel{display:grid;gap:clamp(1rem,3vw,2rem);min-height:70vh;align-content:center;padding:clamp(2rem,5vw,5rem) 0}.home-layout{grid-template-columns:minmax(0,1fr) minmax(20rem,28rem);align-items:center}.hero-copy{display:grid;gap:1rem}.categories-head{display:grid;gap:.75rem}.categories-head p:not(.eyebrow){color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}.category-card .primary-action,.category-card .secondary-action{margin-top:.25rem}.eyebrow{margin:0;color:var(--primary);font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin:0}h1{font-weight:900;letter-spacing:0}.app-hero-heading{max-width:13ch;font-size:clamp(3rem,9vw,7rem);line-height:.95}.tutorial-welcome-heading{max-width:18ch;font-size:clamp(2.5rem,7vw,5rem);line-height:1}.question-prompt,.tutorial-question-prompt{max-width:27ch;font-size:clamp(1.25rem,1rem + 1vw,2rem);line-height:1.28}.tutorial-question-prompt{max-width:29ch}h2{font-size:clamp(2rem,4vw,3rem);line-height:1}.hero-copy p:not(.eyebrow),.deck-card p,.state-panel p,.explanation p,.review p{color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}.deck-card{display:grid;gap:1.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:clamp(1.25rem,3vw,2rem)}.tutorial-invite{display:grid;grid-column:1 / -1;gap:1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:clamp(1.25rem,3vw,2rem)}.tutorial-invite h2{font-size:clamp(1.75rem,4vw,2.5rem)}.tutorial-invite p:not(.eyebrow){color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}.deck-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0}.deck-stats div,.result-stats span{border:1px solid var(--border);border-radius:.375rem;background:var(--surface-strong);padding:1rem}.deck-stats dt{color:var(--muted);font-size:.875rem;text-transform:uppercase}.deck-stats dd{margin:.25rem 0 0;color:var(--primary);font-size:2rem;font-weight:900}.primary-action,.secondary-action{min-height:3.25rem;border-radius:.375rem;padding:.75rem 1rem;font-weight:900}.primary-action{border:1px solid color-mix(in srgb,var(--primary),#000 20%);background:var(--primary);color:#101806}.secondary-action{border:1px solid var(--border);background:var(--surface);color:var(--text)}.match-layout{max-width:58rem}.tutorial-layout{max-width:62rem}.match-meta,.actions,.result-stats{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.match-meta{justify-content:space-between;color:var(--muted);font-weight:800}progress{width:100%;height:.875rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;border:1px solid var(--border);border-radius:999px;background:var(--surface);overflow:hidden}progress::-webkit-progress-bar{background:var(--surface)}progress::-webkit-progress-value{background:var(--primary)}progress::-moz-progress-bar{background:var(--primary)}.options{display:grid;gap:.75rem}.answer-option-stack{display:grid;gap:.5rem}.answer-option{display:flex;min-height:4.5rem;align-items:center;justify-content:space-between;gap:1rem;border:2px solid var(--border);border-radius:.5rem;background:var(--surface);color:var(--text);padding:1rem;text-align:left;font-size:clamp(1.0625rem,2vw,1.35rem);font-weight:800}.answer-option:hover:not(:disabled){border-color:var(--primary);background:var(--surface-strong)}.answer-option strong{flex:0 0 auto;color:var(--muted);font-size:.8rem;text-transform:uppercase}.answer-option.is-correct{border-color:var(--success);background:var(--success-bg)}.answer-option.is-incorrect{border-color:var(--error);background:var(--error-bg)}.explanation{display:grid;gap:.5rem;border-left:.375rem solid var(--primary);background:var(--surface);padding:1rem}.inline-feedback{margin-left:1rem;border:1px solid var(--border);border-left-width:.375rem;border-radius:0 .5rem .5rem 0}.inline-feedback.is-info{border-color:var(--info);background:var(--info-bg)}.answer-option.is-correct+.inline-feedback{border-left-color:var(--success)}.instruction-panel{display:grid;gap:.75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:1rem}.instruction-panel p{color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}.inline-error{border:1px solid var(--error);border-radius:.5rem;background:var(--error-bg);color:var(--text);padding:1rem}.recovery-warning{color:var(--muted);font-size:1rem;max-width:52rem}.result-layout{max-width:64rem}.progress-layout{max-width:72rem}.result-heading{max-width:14ch;font-size:clamp(2.75rem,7vw,6rem);line-height:.95}.score{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.score strong{color:var(--primary);font-size:clamp(4rem,12vw,9rem);line-height:.9}.score span{color:var(--muted);font-size:clamp(2rem,5vw,4rem);font-weight:900}.review{border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:1rem}.review summary{cursor:pointer;font-weight:900}.review ol{display:grid;gap:1rem;margin:1rem 0 0;padding-left:1.25rem}.review li{padding-left:.5rem}.home-progress,.progress-summary,.category-card,.question-progress-row{border:1px solid var(--border);border-radius:.5rem;background:var(--surface)}.home-progress{display:grid;gap:.35rem;padding:1rem}.home-progress strong{color:var(--primary);font-size:1.75rem;line-height:1}.home-progress span,.category-card p,.question-progress-row p,.progression-feedback{color:var(--muted)}.progress-summary{display:grid;gap:1rem;padding:1rem}.progress-summary h2{font-size:clamp(1.35rem,3vw,2rem)}.progress-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:0}.progress-metrics div{border:1px solid var(--border);border-radius:.375rem;background:var(--surface-strong);padding:.875rem}.progress-metrics dt,.question-progress-row dt{color:var(--muted);font-size:.8rem;text-transform:uppercase}.progress-metrics dd,.question-progress-row dd{margin:.25rem 0 0;font-weight:900}.category-grid,.question-progress-list{display:grid;gap:.75rem}.category-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.category-card{display:grid;gap:.75rem;padding:1rem}.category-card h3,.question-progress-row h3{margin:0;font-size:1.1rem}.areas-mastered{display:grid;gap:.5rem;padding:1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface-strong)}.areas-mastered-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.areas-mastered-head h3{margin:0;font-size:1.1rem}.areas-mastered-head strong{color:var(--success);font-size:1.35rem;font-weight:900;line-height:1}.areas-mastered-track::-webkit-progress-value{background:var(--success)}.areas-mastered-track::-moz-progress-bar{background:var(--success)}.category-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.category-card.is-mastered{border-color:var(--success);background:var(--success-bg)}.category-card.is-mastered progress::-webkit-progress-value{background:var(--success)}.category-card.is-mastered progress::-moz-progress-bar{background:var(--success)}.mastered-badge{flex-shrink:0;padding:.2rem .6rem;border-radius:999px;background:var(--success);color:var(--background);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.question-progress-row{display:grid;gap:1rem;padding:1rem}.question-progress-row dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:0}.progression-feedback{display:grid;gap:.25rem;margin:.5rem 0 0;padding-left:1.25rem}.completion-message{border:1px solid var(--success);border-radius:.5rem;background:var(--success-bg);padding:1rem;font-weight:900}.review-count{border:1px solid var(--border);border-radius:.5rem;background:var(--surface-strong);padding:1rem}.review-count strong{color:var(--primary);font-size:clamp(1.15rem,3vw,1.5rem);font-weight:900;line-height:1.1}.review-list{display:grid;gap:.75rem}.review-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:1rem}.review-row h3{margin:0;font-size:1.1rem}.review-row p{margin:.2rem 0 0;color:var(--muted)}.review-row-meta{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.9rem;font-weight:700}.mastery-chip{flex-shrink:0;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--warning);color:var(--warning);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.review-locked{display:grid;gap:.5rem;border:1px solid var(--warning);border-radius:.5rem;background:var(--surface-strong);padding:clamp(1.25rem,3vw,2rem)}.review-locked h2{font-size:clamp(1.5rem,4vw,2.25rem)}.review-locked p{color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}.review-locked-count{color:var(--warning);font-weight:900}.state-panel{max-width:52rem}@media(max-width:780px){.app-navbar-toggle{display:inline-flex}.app-navbar-menu{display:none;flex:1 1 100%;flex-direction:column;align-items:stretch;gap:.75rem}.app-navbar-menu.is-open{display:flex}.app-navbar-links{flex-direction:column}.app-navbar-link{text-align:left}.selectors{width:100%;justify-content:stretch}.selectors label{flex:1 1 12rem}.home-layout{grid-template-columns:1fr}.answer-option{align-items:flex-start;flex-direction:column}.inline-feedback{margin-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}}.account-sign-in{border:1px solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text);font-weight:800;padding:.5rem .85rem}.account-sign-in:hover{background:var(--surface-strong)}.account-controls{position:relative}.account-chip{display:flex;align-items:center;gap:.5rem;max-width:16rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-weight:800;padding:.35rem .85rem .35rem .35rem}.account-chip:hover{background:var(--surface-strong)}.account-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex:none;border-radius:50%;background:var(--primary);color:#101806;font-weight:900}.account-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.account-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:10;min-width:10rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface);box-shadow:0 .75rem 2rem #00000059;padding:.35rem}.account-menu-item{display:block;width:100%;border:1px solid transparent;border-radius:.25rem;background:transparent;color:var(--text);font-weight:800;text-align:left;padding:.5rem .75rem}.account-menu-item:hover{background:var(--surface-strong)}.auth-layout{display:grid;min-height:70vh;align-content:center;justify-content:center;padding:clamp(2rem,5vw,5rem) 0}.auth-card{display:grid;gap:1.25rem;width:min(28rem,100%);border:1px solid var(--border);border-radius:.5rem;background:var(--surface);padding:clamp(1.25rem,3vw,2rem)}.auth-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;border:1px solid var(--border);border-radius:.375rem;background:var(--surface-strong);padding:.25rem}.auth-toggle-option{border:1px solid transparent;border-radius:.25rem;background:transparent;color:var(--muted);font-weight:800;padding:.5rem .75rem}.auth-toggle-option.is-active{border-color:color-mix(in srgb,var(--primary),#000 20%);background:var(--primary);color:#101806}.auth-form{display:grid;gap:.85rem}.auth-form label{display:grid;gap:.25rem;color:var(--muted);font-size:.875rem;font-weight:800}.auth-form input{min-height:2.75rem;border:1px solid var(--border);border-radius:.375rem;background:var(--background);color:var(--text);font:inherit;padding:0 .75rem}.auth-form input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.auth-save-promise{border:1px solid var(--success);border-radius:.375rem;background:var(--success-bg);color:var(--text);font-weight:700;padding:.75rem 1rem}.auth-conflict-warning{border:1px solid var(--warning);border-radius:.375rem;background:var(--surface-strong);color:var(--text);font-weight:700;padding:.75rem 1rem}.auth-hint{margin:0;color:var(--muted);font-size:.875rem}.auth-error{border:1px solid var(--error);border-radius:.375rem;background:var(--error-bg);color:var(--text);font-weight:700;padding:.75rem 1rem}.auth-coming-soon{margin:0;color:var(--muted);font-size:.875rem;text-align:center}.save-progress-invite{display:grid;grid-column:1 / -1;gap:1rem;border:1px solid var(--success);border-radius:.5rem;background:var(--success-bg);padding:clamp(1.25rem,3vw,2rem)}.save-progress-invite h2{font-size:clamp(1.5rem,3vw,2rem)}.save-progress-invite p:not(.eyebrow){color:var(--muted);font-size:clamp(1rem,2vw,1.1875rem)}@media(max-width:780px){.account-controls,.account-sign-in{width:100%}.account-chip{width:100%;max-width:none}.account-menu{position:static;box-shadow:none;margin-top:.35rem}}
