:root{color-scheme:light dark;--c-bg:light-dark(#fafafa,#0f0f12);--c-surface:light-dark(#fff,#18181b);--c-surface-muted:light-dark(#f4f4f5,#232328);--c-border:light-dark(#e4e4e7,#2e2e35);--c-border-strong:light-dark(#c7c7d1,#45454f);--c-text:light-dark(#18181b,#f4f4f5);--c-text-muted:light-dark(#71717a,#a1a1aa);--c-accent:light-dark(#6c5ce7,#a5a0ff);--c-accent-strong:light-dark(#5145cd,#a5a0ff);--c-accent-hover:light-dark(#4338ca,#bcb8ff);--c-accent-soft:light-dark(#f1efff,#24213d);--c-success:light-dark(#15803d,#4ade80);--c-success-soft:light-dark(#f0fdf4,#0f2a1a);--c-danger:light-dark(#b91c1c,#f87171);--c-danger-soft:light-dark(#fef2f2,#2a1414);--c-danger-border:light-dark(#fecaca,#5b2626);--radius:8px;--radius-sm:6px;--c-correct:light-dark(#16a34a,#22c55e);--c-row-hover:light-dark(#f7f7fb,#1d1d22);--c-code-text:light-dark(#3f3f46,#d4d4d8);--c-on-accent:light-dark(#fff,#16133a);--c-toast-action:light-dark(#c4bfff,#4338ca);--c-toast-action-hover:light-dark(#ffffff1a,#00000014);--c-scrim:light-dark(#18181b6b,#0009);--c-shadow:light-dark(#18181b,#000);--c-focus:light-dark(#6c5ce738,#a5a0ff59);--focus-ring:0 0 0 3px var(--c-focus);--transition:.18s ease;--ease-out:cubic-bezier(.2, .8, .2, 1);--font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--container:1088px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (prefers-contrast:more){:root{--c-border:var(--c-border-strong);--c-text-muted:light-dark(#52525b,#d4d4d8)}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;text-size-adjust:100%;min-height:100%}body{min-height:100%;color:var(--c-text);background:var(--c-bg);font-family:var(--font);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;margin:0;font-size:100%;line-height:1.6}a,button,label,summary{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}body,h1,h2,h3,h4,p,ol,ul,figure{margin-block-start:0}body.modal-open{overflow:hidden}a{color:inherit}button,input,textarea,select{font:inherit}button{cursor:pointer}:focus-visible{box-shadow:var(--focus-ring);outline:none}#root{flex-direction:column;min-height:100vh;display:flex}.site-shell{flex:1}.site-header{border-bottom:1px solid var(--c-border);background:var(--c-bg)}.site-header__inner,.page-wrap,.site-footer__inner{width:min(100%, var(--container));margin-inline:auto;padding-inline:20px}.site-header__inner{justify-content:space-between;align-items:center;gap:18px;min-height:58px;display:flex}.site-brand,.site-nav{align-items:center;gap:10px;display:inline-flex}.site-brand{color:var(--c-text);font-weight:780;text-decoration:none}.site-brand__mark{width:24px;height:24px;color:var(--c-accent-strong);border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);place-items:center;font-weight:800;display:grid}.site-nav{margin-left:auto}.site-nav a{border-radius:var(--radius-sm);min-height:36px;color:var(--c-text-muted);justify-content:center;align-items:center;padding:7px 10px;font-size:.92rem;font-weight:650;text-decoration:none;transition:background-color .14s,color .14s,border-color .14s;display:inline-flex}.site-nav a:hover{color:var(--c-text);background:var(--c-surface-muted)}.site-nav a.is-active{color:var(--c-accent-strong);background:var(--c-accent-soft)}.site-nav__cta{border:1px solid var(--c-accent-strong);background:var(--c-accent-strong)!important;color:var(--c-on-accent)!important}.site-nav__cta:hover{background:var(--c-accent-hover)!important}.site-nav__cta.is-active{box-shadow:var(--focus-ring)}.theme-switch{--theme-pos:2;border:1px solid var(--c-border);background:var(--c-surface-muted);border-radius:999px;grid-template-columns:repeat(3,32px);margin:0;padding:2px;display:inline-grid;position:relative}.theme-switch:before{content:"";background:var(--c-surface);width:32px;height:32px;box-shadow:0 1px 3px color-mix(in srgb, var(--c-shadow) 18%, transparent);transform:translateX(calc(var(--theme-pos) * 100%));transition:transform .24s var(--ease-out);border-radius:999px;position:absolute;top:2px;left:2px}.theme-switch:has(input[value=light]:checked){--theme-pos:0}.theme-switch:has(input[value=dark]:checked){--theme-pos:1}.theme-switch label{width:32px;height:32px;color:var(--c-text-muted);cursor:pointer;transition:color .14s ease, transform .16s var(--ease-out);border-radius:999px;place-items:center;display:grid;position:relative}.theme-switch label:hover,.theme-switch label:has(input:checked){color:var(--c-text)}.theme-switch label:active{transition-duration:60ms;transform:scale(.9)}.theme-switch label:has(input:focus-visible){box-shadow:var(--focus-ring)}.theme-switch svg{width:17px;height:17px}.page-wrap{padding-block:36px 72px}.page-wrap.landing{padding-top:0}.landing-search{align-content:center;min-height:min(650px,100vh - 96px);display:grid}.landing-search:has(.grado-grid.has-query){align-content:start;min-height:0;padding-top:26px}.landing-search .landing-header{transition:opacity .24s;overflow:hidden}.landing-search:has(.grado-grid.has-query) .landing-header{opacity:0;pointer-events:none;max-height:0;margin-bottom:0;transition:none}.home-header,.landing-header,.section-heading{max-width:760px}.landing-header--centered{text-align:center;margin-inline:auto}.landing-header{margin-bottom:24px}.home-header{margin-bottom:32px}h1,.home-header h1,.landing-header h1,.quiz-header h1,.results-summary h1{color:var(--c-text);letter-spacing:-.02em;margin:0 0 10px;font-size:clamp(2.25rem,6vw,4.8rem);line-height:.98}.quiz-header h1,.results-summary h1{font-size:clamp(1.7rem,4vw,2.45rem);line-height:1.08}.home-header p,.hero-subtitle,.section-heading p,.quiz-description{color:var(--c-text-muted);max-width:68ch;font-size:1.02rem}.landing-header--centered .hero-subtitle{margin-inline:auto}.section-kicker,.result-type,.grado-meta{font-family:var(--font-mono)}.section-kicker{color:var(--c-accent-strong);letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px;font-size:.76rem;font-weight:750}.study-terminal{text-align:left;width:min(100%,520px);color:var(--c-code-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);font-family:var(--font-mono);gap:6px;margin:22px auto 0;padding:14px 16px;font-size:.9rem;display:grid}.section-heading{margin-bottom:18px}.section-heading h2,.landing-info h2,.landing-steps h2,.landing-faq h2{letter-spacing:-.01em;margin:0 0 8px;font-size:clamp(1.45rem,3vw,2rem);line-height:1.2}.user-actions,.quiz-actions,.prompt-actions,.pagination-controls,.cookie-banner__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn-primary,.btn-secondary,.btn-clear,.btn-validate,.btn-submit,.submit-btn,.retry-btn,.btn-copy,.btn-change-file,.tab-btn,.filter-tab{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);min-height:40px;color:var(--c-text);transition:background-color .14s ease, border-color .14s ease, color .14s ease, transform .16s var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-weight:650;text-decoration:none;display:inline-flex}:is(.btn-primary,.btn-secondary,.btn-clear,.btn-validate,.btn-submit,.submit-btn,.retry-btn,.btn-copy,.btn-change-file,.tab-btn,.filter-tab,.site-nav a):active:not(:disabled){transition-duration:60ms;transform:scale(.97)}.btn-primary,.submit-btn,.btn-submit{border-color:var(--c-accent-strong);background:var(--c-accent-strong);color:var(--c-on-accent)}.btn-primary:hover,.submit-btn:hover:not(:disabled),.btn-submit:hover:not(:disabled){background:var(--c-accent-hover)}.btn-secondary:hover,.btn-clear:hover,.btn-validate:hover,.btn-copy:hover,.tab-btn:hover,.filter-tab:hover{border-color:var(--c-border-strong);background:var(--c-surface-muted)}.btn-danger{color:var(--c-danger);border-color:var(--c-danger-border)}button:disabled,.btn-submit:disabled,.submit-btn:disabled{opacity:.55;cursor:not-allowed}.quiz-back,.breadcrumbs{color:var(--c-text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;font-size:.93rem;line-height:1.35;text-decoration:none;display:inline-flex}.breadcrumbs span:last-child{color:var(--c-text);font-weight:650}.breadcrumbs a,.quiz-back:hover{color:var(--c-accent-strong)}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{text-underline-offset:3px;text-decoration:underline}.landing-topics,.landing-catalog,.landing-info,.landing-steps,.landing-faq,.courses-catalog-shell,.help-section{margin-top:48px}.content-grid,.steps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.content-grid article,.step-card,.legal-card,.help-section,.prompt-card,.json-format-help,.create-quiz-form,.report-box,.cookie-banner__panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:16px}.content-grid h3,.step-card h3{margin:0 0 6px;font-size:1rem}.content-grid p,.step-card p{color:var(--c-text-muted);margin:0}.steps-list{max-width:760px;color:var(--c-text-muted);gap:10px;padding-left:22px;display:grid}.steps-list strong{color:var(--c-text)}.catalog-search{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:10px;display:grid}.landing-search .catalog-search{max-width:100%}.catalog-search input[type=search]{background:var(--c-surface);border-color:var(--c-border-strong);min-height:46px;font-family:var(--font-mono)}.filter-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filter-tab{min-height:34px;color:var(--c-text-muted);font-family:var(--font-mono);font-size:.82rem}.filter-tab.active{color:var(--c-accent-strong);border-color:var(--c-accent-strong);background:var(--c-accent-soft)}.catalog-summary,.catalog-hint{color:var(--c-text-muted);margin-bottom:10px;font-size:.9rem}.catalog-summary--reserved{min-height:1.45em}.catalog-summary-placeholder{visibility:hidden;font-variant-numeric:tabular-nums}.catalog-summary-row{flex-wrap:wrap;align-items:baseline;gap:8px 12px;min-height:24px;display:flex}.catalog-refreshing-indicator{color:var(--c-text-muted);font-size:.82rem;font-weight:650}.catalog-soft-error{color:var(--c-text-muted);margin:2px 0 0;font-size:.86rem}.catalog-more-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.result-type{width:fit-content;color:var(--c-accent-strong);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:800}.catalog-results{animation:.35s both results-enter}.search-results-list{max-width:100%}@keyframes results-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.grado-grid{gap:10px;display:grid}.course-list-transition,.grade-grid,.unit-grid{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);display:grid;overflow:hidden}.grado-card,.unit-card{min-height:64px;color:var(--c-text);background:var(--c-surface);border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;transition:background-color .14s,border-color .14s;display:flex}.grado-card:active,.unit-card:active{background:color-mix(in srgb, var(--c-accent) 12%, var(--c-surface));transition-duration:0s}.course-list-transition>:last-child,.grade-grid>:last-child,.unit-grid>:last-child{border-bottom:0}.grado-card:hover,.unit-card:hover{background:color-mix(in srgb, var(--c-accent) 7%, var(--c-surface));box-shadow:inset 3px 0 0 var(--c-accent-strong)}.grado-card:hover .grado-label,.unit-card:hover strong{color:var(--c-accent-strong)}.grado-label,.unit-card strong{transition:color .14s}.feed-ad.unit-card,.feed-ad.grado-card{background:var(--c-surface-muted);grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:6px;display:grid}.feed-ad.unit-card:hover,.feed-ad.grado-card:hover{background:var(--c-surface-muted);box-shadow:none}.feed-ad__label{color:var(--c-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.feed-ad__unit{width:100%}.feed-ad.is-filled{animation:.26s ad-reveal}.grado-card-main{display:contents}.grado-info,.unit-card article{gap:2px;min-width:0;display:grid}.grado-label,.unit-card strong{font-size:1rem;font-weight:750;line-height:1.25}.grado-desc,.grado-meta,.unit-title{color:var(--c-text-muted);font-size:.88rem;line-height:1.35}.unit-title{font-family:var(--font-mono)}.card-tag{color:var(--c-accent-strong);font-weight:700}.grado-card-cta,.unit-action{color:var(--c-accent-strong);background:var(--c-accent-soft);white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:.88rem;font-weight:700;transition:background-color .14s,color .14s}.grado-card:hover .grado-card-cta,.unit-card:hover .unit-action{color:var(--c-on-accent);background:var(--c-accent-strong)}.unit-action:after{content:"→" / "";margin-left:.3em}.grado-arrow,.unit-action:after{transition:transform .16s var(--ease-out);display:inline-block}.grado-card:hover .grado-arrow,.unit-card:hover .unit-action:after{transform:translate(3px)}.grado-icon,.grado-stats,.grado-stat{display:none}.course-search-section{z-index:4;top:calc(10px + var(--ad-anchor-top,0px));border:1px solid var(--c-border);border-radius:var(--radius);background:color-mix(in srgb, var(--c-bg) 88%, transparent);backdrop-filter:blur(14px);min-height:108px;box-shadow:0 12px 28px color-mix(in srgb, var(--c-shadow) 8%, transparent);margin-top:8px;margin-bottom:28px;padding:10px;transition:top .2s;position:sticky}.courses-catalog-shell .catalog-search{z-index:4;top:calc(10px + var(--ad-anchor-top,0px));border:1px solid var(--c-border);border-radius:var(--radius);background:color-mix(in srgb, var(--c-bg) 88%, transparent);backdrop-filter:blur(14px);box-shadow:0 12px 28px color-mix(in srgb, var(--c-shadow) 8%, transparent);padding:10px;transition:top .2s;position:sticky}.course-section{margin-top:34px}.course-section h2{margin:0 0 12px;font-size:1.2rem}.unit-card-link{min-width:0;color:inherit;flex:1;justify-content:space-between;align-items:center;gap:14px;text-decoration:none;display:flex}.unit-card-extra{flex:none;align-items:center;gap:8px;display:flex}.quiz-container{width:min(100%,760px);margin-inline:auto}.quiz-header{border-bottom:1px solid var(--c-border);width:100%;margin-bottom:22px;padding-bottom:18px}.quiz-progress{color:var(--c-text-muted);gap:8px;font-size:.95rem;display:grid}.quiz-progress-bar{background:var(--c-surface-muted);border-radius:999px;height:8px;overflow:hidden}.quiz-progress-fill{background:var(--c-accent-strong);transform-origin:0;height:100%;transform:scaleX(var(--progress,1));transition:transform .24s var(--ease-out)}.question-card,.review-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-top:14px;padding:18px;scroll-margin-top:16px}.question-card h3,.review-card h4{margin:0 0 14px;font-size:1.05rem;line-height:1.45}.question-number{color:var(--c-text-muted);font-weight:700}.option-label{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-sm);cursor:pointer;width:100%;min-height:44px;transition:background-color .12s ease, border-color .12s ease, transform .16s var(--ease-out);align-items:flex-start;gap:10px;margin-top:8px;padding:12px;display:flex}.option-label:hover{border-color:var(--c-border-strong);background:var(--c-surface)}.option-label:active{border-color:var(--c-accent-strong);transition-duration:60ms;transform:scale(.99)}.option-label.selected{border-color:var(--c-accent-strong);background:var(--c-accent-soft)}.option-label input{accent-color:var(--c-accent-strong);margin-top:4px}.quiz-browse .question-card{padding:20px}.browse-options{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.browse-option{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text);padding:10px 12px;line-height:1.5}.browse-option.is-correct{border-color:color-mix(in srgb, var(--c-success) 45%, var(--c-border));background:var(--c-success-soft);justify-content:space-between;align-items:baseline;gap:10px;display:flex}.browse-correct-tag{color:var(--c-success);flex:none;font-size:.78rem;font-weight:750}.browse-explanation{color:var(--c-code-text);margin:10px 0 0;font-size:.94rem;line-height:1.55}.browse-heading{margin:26px 0 12px;font-size:1.15rem}.quiz-intro{max-width:70ch;color:var(--c-code-text)}.study-guide{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-bottom:16px;padding:16px}.study-guide h2{margin-bottom:8px;font-size:1.05rem}.study-guide ol{gap:4px;margin:0 0 8px;padding-left:20px;display:grid}.study-guide .help-note{margin:0}.related-topics{margin-top:36px}.related-topics h2{margin-bottom:12px;font-size:1.15rem}.catalog-intro{max-width:75ch;color:var(--c-code-text)}.course-section-desc{max-width:75ch;color:var(--c-text-muted);margin:-6px 0 12px;font-size:.94rem}.btn-start-test{min-height:46px;margin:6px 0 4px;padding:12px 20px}.btn-start-test--bottom{margin-top:22px}.quiz-actions--centered{justify-content:center}.submit-btn,.retry-btn{width:100%;margin-top:18px}.results-summary{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-bottom:22px;padding:20px}.score-display{margin:10px 0 4px;font-size:clamp(2.4rem,8vw,4rem);font-weight:800;line-height:1}.score-label{color:var(--c-text-muted)}.review-card.correct{border-left:4px solid var(--c-success)}.review-card.incorrect{border-left:4px solid var(--c-danger)}.answer-row{color:var(--c-text-muted);margin:8px 0}.answer-row strong{color:var(--c-text)}.user-correct strong{color:var(--c-success)}.user-incorrect strong{color:var(--c-danger)}.explanation-box{color:var(--c-code-text);background:var(--c-surface-muted);border-radius:var(--radius-sm);margin-top:12px;padding:12px}form{gap:16px;display:grid}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-group,label{gap:6px;font-weight:650;display:grid}input[type=text],input[type=search],textarea,select,.json-textarea{width:100%;min-height:44px;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);padding:10px 12px}textarea,.json-textarea{resize:vertical;min-height:160px}.input-mode-tabs{flex-wrap:wrap;gap:8px;display:flex}.tab-btn.active{border-color:var(--c-accent-strong);color:var(--c-accent-strong);background:var(--c-accent-soft)}.dropzone{text-align:center;background:var(--c-bg);border:1px dashed var(--c-border-strong);border-radius:var(--radius);place-items:center;min-height:160px;padding:20px;display:grid}.dropzone.has-file{background:var(--c-surface);border-style:solid}.dropzone-icon{color:var(--c-accent-strong);font-weight:800}.dropzone-text,.dropzone-filename{margin:8px 0 0;font-weight:700}.dropzone-hint,.dropzone-info,.help-note{color:var(--c-text-muted);font-size:.92rem}.dropzone-link{color:var(--c-accent-strong);text-decoration:underline}.questions-preview{border:1px solid var(--c-border);border-radius:var(--radius);padding:14px}.preview-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.quiz-editor-modal{z-index:60;background:var(--c-scrim);place-items:center;padding:18px;display:grid;position:fixed;inset:0}.quiz-editor-panel{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg);width:min(100%,1080px);height:min(92dvh,920px);max-height:min(92dvh,920px);box-shadow:0 24px 70px color-mix(in srgb, var(--c-shadow) 22%, transparent);grid-template-rows:auto auto minmax(0,1fr) auto;display:grid;overflow:hidden}.quiz-editor-header,.quiz-editor-footer{background:var(--c-surface);justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.quiz-editor-header{border-bottom:1px solid var(--c-border)}.quiz-editor-footer{border-top:1px solid var(--c-border);justify-content:flex-end}.quiz-editor-add-footer{min-width:44px;margin-right:auto}.quiz-editor-header h2{margin:0;font-size:1.35rem}.quiz-editor-header p{color:var(--c-text-muted);margin:0}.quiz-editor-header-actions,.quiz-editor-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.quiz-editor-error{margin:12px 16px 0}.quiz-editor-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;gap:14px;min-height:0;padding:16px;display:grid;overflow-y:auto}.quiz-editor-card{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);gap:14px;padding:14px;display:grid}.quiz-editor-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quiz-editor-card-header h3{margin:2px 0 0;font-size:1rem;line-height:1.35}.quiz-editor-options{gap:10px;display:grid}.quiz-editor-options-heading{color:var(--c-text-muted);grid-template-columns:1fr auto;gap:10px;font-size:.86rem;font-weight:700;display:grid}.quiz-editor-option-row{grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;display:grid}.quiz-editor-radio{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-bg);place-items:center;min-height:44px;display:grid}.quiz-editor-radio input{accent-color:var(--c-accent-strong)}.quiz-editor-add-option,.quiz-editor-add-question{justify-self:start}.questions-list{gap:12px;margin-top:12px;display:grid}.question-preview-item{background:var(--c-bg);border-radius:var(--radius-sm);padding:12px}.correct-option{color:var(--c-success);font-weight:700}.loading,.empty-state,.error-msg{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text-muted);padding:18px}.error-msg,.error-box{color:var(--c-danger);background:var(--c-danger-soft);border-color:var(--c-danger-border)}.empty-icon{display:none}.skeleton-list,.quiz-skeleton,.catalog-skeleton,.catalog-loading-sections{gap:12px;display:grid}.quiz-skeleton{width:100%}.skeleton-card,.skeleton-title,.skeleton-heading,.skeleton-progress,.skeleton-question,.skeleton-option{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);position:relative;overflow:hidden}.skeleton-card:after,.skeleton-title:after,.skeleton-heading:after,.skeleton-progress:after,.skeleton-question:after,.skeleton-option:after{content:"";background:linear-gradient(90deg,#0000,#64748b14,#0000);animation:1.4s ease-in-out infinite skeleton-pulse;position:absolute;inset:0;transform:translate(-100%)}.skeleton-card{min-height:68px}.skeleton-heading{width:min(220px,52%);min-height:29px;margin-bottom:12px}.skeleton-card--unit{border:0;border-bottom:1px solid var(--c-border);border-radius:0;min-height:64px}.unit-grid>.skeleton-card--unit:last-child{border-bottom:0}.skeleton-title{width:min(520px,84%);min-height:50px;margin-bottom:4px}.skeleton-progress{border-radius:var(--radius-sm);width:100%;max-width:760px;min-height:30px}.skeleton-question,.skeleton-option{width:min(100%,760px);margin-inline:auto}.skeleton-question{min-height:124px;margin-top:10px}.skeleton-option{border-radius:var(--radius-sm);min-height:48px}@keyframes skeleton-pulse{to{transform:translate(100%)}}.faq-list{gap:10px;display:grid}.faq-item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:14px 16px}.faq-item summary{cursor:pointer;font-weight:700}.faq-item p{color:var(--c-text-muted);margin:10px 0 0}.more-info{max-width:760px;margin-top:6px}.more-info>summary{min-height:44px;color:var(--c-text-muted);cursor:pointer;align-items:center;gap:8px;font-size:.92rem;font-weight:650;list-style:none;transition:color .14s;display:inline-flex}.more-info>summary::-webkit-details-marker{display:none}.more-info>summary:after{content:"";width:7px;height:7px;transition:transform .2s var(--ease-out);border-bottom:2px solid;border-right:2px solid;transform:translateY(-2px)rotate(45deg)}.more-info[open]>summary:after{transform:translateY(2px)rotate(225deg)}.more-info>summary:hover{color:var(--c-text)}.more-info[open]>.more-info__body{animation:drop-in .2s var(--ease-out)}.more-info__body{color:var(--c-code-text);gap:12px;padding-bottom:8px;font-size:.95rem;display:grid}.more-info__body p,.more-info__body ol,.more-info__body ul{margin:0}.more-info__body>p,.more-info__list{max-width:75ch}.landing-info .more-info{max-width:none}.more-info__body>h3{margin:6px 0 0;font-size:1rem}.more-info__list{gap:10px;margin:0;display:grid}.more-info__list dt{color:var(--c-text);font-weight:700}.more-info__list dd{color:var(--c-text-muted);margin:2px 0 0}.study-guide.more-info{max-width:none;padding:0 16px}.study-guide.more-info>summary{width:100%;color:var(--c-text);justify-content:space-between;font-size:1rem;font-weight:700}.study-guide.more-info[open]>.more-info__body{padding-bottom:16px}.prompt-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.prompt-card pre{white-space:pre-wrap;overflow-x:auto}.legal-page{max-width:860px}.legal-card+.legal-card{margin-top:14px}.quiz-list-controls{grid-template-columns:minmax(0,1fr) auto;margin-bottom:18px}.pagination-controls{justify-content:center;margin-top:20px}.fab-stack{right:max(16px, env(safe-area-inset-right), calc((100vw - var(--container)) / 2 + 16px));bottom:calc(max(18px, env(safe-area-inset-bottom)) + var(--ad-anchor-bottom,0px));z-index:30;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:10px;display:flex;position:fixed}body.modal-open .fab-stack{display:none}body:has(.fab-stack) .page-wrap{padding-bottom:112px}.fab{--fab-ease:cubic-bezier(.2, .8, .2, 1);border:1px solid var(--c-accent-strong);background:var(--c-accent-strong);min-width:56px;height:56px;color:var(--c-on-accent);white-space:nowrap;box-shadow:0 10px 28px #5145cd52, 0 2px 6px color-mix(in srgb, var(--c-shadow) 12%, transparent);pointer-events:auto;transition:padding .32s var(--fab-ease), transform .22s var(--fab-ease), box-shadow .16s ease, background-color .14s ease, opacity .22s ease, visibility 0s;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex;position:relative}.fab-stack.is-hidden .fab{opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s,opacity .18s,visibility 0s linear .22s;transform:translateY(18px)scale(.9)}.fab--secondary{border-color:var(--c-border-strong);background:var(--c-surface);min-width:48px;height:48px;color:var(--c-text);box-shadow:0 8px 22px color-mix(in srgb, var(--c-shadow) 14%, transparent);padding:0 18px;font-size:.95rem}@media (hover:hover){.fab:hover:not(:disabled){box-shadow:0 14px 32px #5145cd61, 0 3px 8px color-mix(in srgb, var(--c-shadow) 14%, transparent);transform:translateY(-2px)}.fab--primary:hover:not(:disabled){background:var(--c-accent-hover)}.fab--secondary:hover:not(:disabled){background:var(--c-surface-muted);box-shadow:0 12px 26px color-mix(in srgb, var(--c-shadow) 18%, transparent)}}.fab:active:not(:disabled){transform:scale(.95)}.fab:focus-visible{box-shadow:var(--focus-ring), 0 10px 28px #5145cd52}.fab:disabled{opacity:.6;cursor:not-allowed}.fab-icon-wrap{opacity:0;width:0;transition:width .28s var(--fab-ease), opacity .16s ease, transform .28s var(--fab-ease);justify-content:center;display:inline-flex;transform:scale(.6)}.fab-icon{flex:none}.fab--secondary .fab-icon{width:20px;height:20px}.fab-label{max-width:18em;transition:max-width .3s var(--fab-ease) 40ms;display:inline-flex;overflow:hidden}.fab-char{transition:opacity .16s ease, transform .22s var(--fab-ease);transition-delay:calc(var(--i) * 6ms + 60ms);display:inline-block}.fab-badge{border:2px solid var(--c-bg);background:var(--c-text);min-width:22px;color:var(--c-bg);text-align:center;border-radius:999px;padding:1px 6px;font-size:.72rem;font-weight:750;line-height:1.4;position:absolute;top:-6px;right:-4px}.fab-stack.is-collapsed .fab{padding:0 15px}.fab-stack.is-collapsed .fab--secondary{padding:0 13px}.fab-stack.is-collapsed .fab-label{max-width:0;transition-delay:60ms}.fab-stack.is-collapsed .fab-char{opacity:0;transition-delay:calc((var(--n) - var(--i)) * 5ms);transform:translateY(-4px)scale(.85)}.fab-stack.is-collapsed .fab-icon-wrap{opacity:1;width:24px;transition-delay:.1s;transform:none}.fab-stack.is-collapsed .fab--secondary .fab-icon-wrap{width:20px}.fab-confirm{border:1px solid var(--c-border-strong);border-radius:var(--radius);background:var(--c-surface);width:min(340px,100vw - 32px);box-shadow:0 16px 40px color-mix(in srgb, var(--c-shadow) 20%, transparent);pointer-events:auto;padding:14px 40px 14px 14px;animation:.22s cubic-bezier(.2,.8,.2,1) fab-confirm-in;position:relative}.fab-confirm p{margin:0 0 10px}.fab-confirm__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fab-confirm__close{width:30px;height:30px;color:var(--c-text-muted);background:0 0;border:0;border-radius:50%;font-size:1.2rem;line-height:1;position:absolute;top:6px;right:6px}.fab-confirm__close:hover{background:var(--c-surface-muted)}@keyframes fab-confirm-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes fab-confirm-out{to{opacity:0;transform:translateY(10px)scale(.97)}}.fab-confirm[data-state=closing]{pointer-events:none;animation:.2s ease-in forwards fab-confirm-out}.report-box[data-state=open]{animation:drop-in .2s var(--ease-out)}.report-box[data-state=closing]{pointer-events:none;animation:.2s ease-in forwards drop-out}@keyframes drop-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes drop-out{to{opacity:0;transform:translateY(-6px)}}.quiz-editor-modal[data-state=open]{animation:.2s ease-out scrim-in}.quiz-editor-modal[data-state=open] .quiz-editor-panel{animation:panel-in .26s var(--ease-out)}.quiz-editor-modal[data-state=closing]{pointer-events:none;animation:.2s ease-in forwards scrim-out}.quiz-editor-modal[data-state=closing] .quiz-editor-panel{animation:.2s ease-in forwards panel-out}@keyframes scrim-in{0%{opacity:0}}@keyframes scrim-out{to{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}@keyframes panel-out{to{opacity:0;transform:translateY(16px)scale(.98)}}.undo-toast{left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--ad-anchor-bottom,0px));z-index:45;background:var(--c-text);width:max-content;max-width:calc(100vw - 32px);color:var(--c-bg);box-shadow:0 12px 32px color-mix(in srgb, var(--c-shadow) 24%, transparent);border-radius:12px;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-size:.95rem;font-weight:600;display:flex;position:fixed;transform:translate(-50%)}.quiz-editor-modal .undo-toast{bottom:calc(max(16px, env(safe-area-inset-bottom)) + 88px)}body:not(.modal-open):has(.fab-stack:not(.is-hidden)) .undo-toast{bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--ad-anchor-bottom,0px) + 76px)}.undo-toast[data-state=open]{animation:toast-in .24s var(--ease-out)}.undo-toast[data-state=closing]{pointer-events:none;animation:.2s ease-in forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,16px)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%,16px)}}.undo-toast__text{min-width:0}.undo-toast__action{min-height:36px;color:var(--c-toast-action);transition:background-color .12s ease, transform .16s var(--ease-out);background:0 0;border:0;border-radius:8px;flex:none;padding:6px 12px;font-weight:750}.undo-toast__action:hover{background:var(--c-toast-action-hover)}.undo-toast__action:active{transition-duration:60ms;transform:scale(.95)}@media (pointer:coarse){.filter-tab{min-height:44px}.fab-confirm__close{width:44px;height:44px;top:2px;right:2px}.undo-toast__action{min-height:44px}}.ad-slot-wrap{border-top:1px solid var(--c-border);width:100%;margin:32px 0;padding-top:10px;display:block}.ad-slot-label{color:var(--c-text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:650;display:block}.ad-slot-unit{width:100%}ins.adsbygoogle[data-ad-status=unfilled]{display:none!important}.feed-ad:not(.is-filled),.ad-slot-wrap:not(.is-filled){border:0;height:0;min-height:0;margin:0;padding-block:0;overflow:hidden}.ad-slot-wrap.is-filled{animation:.26s ad-reveal}@keyframes ad-reveal{0%{opacity:0}}.cookie-banner{right:16px;bottom:calc(16px + var(--ad-anchor-bottom,0px));z-index:40;pointer-events:none;position:fixed;left:16px}.cookie-banner__panel{pointer-events:auto;max-width:760px;margin-inline:auto}.cookie-banner__eyebrow{color:var(--c-accent-strong);margin:0 0 4px;font-size:.8rem;font-weight:750}.site-footer{border-top:1px solid var(--c-border);background:var(--c-surface)}.site-footer__inner{color:var(--c-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding-block:24px;font-size:.92rem;display:flex}.site-footer__brand{color:var(--c-text);margin:0;font-weight:800}.site-footer__links{flex-wrap:wrap;gap:12px;display:flex}.site-footer__links a{color:var(--c-text-muted);text-decoration:none}.site-footer__links a:hover{color:var(--c-accent-strong)}.site-footer__meta{margin:0}.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}.spinner{border:3px solid var(--c-border);border-top-color:var(--c-accent-strong);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.site-header__inner,.page-wrap,.site-footer__inner{padding-inline:14px}.site-header__inner{align-items:flex-start;gap:12px;padding-block:12px;display:grid}.site-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.site-nav a{min-height:44px;padding-inline:8px}.site-nav__cta{grid-column:1/-1}.site-header__inner{grid-template-columns:minmax(0,1fr) auto;align-items:center}.site-nav{grid-area:2/1/auto/-1}.theme-switch{grid-template-columns:repeat(3,40px)}.theme-switch:before,.theme-switch label{width:40px;height:40px}.page-wrap{padding-block:28px 52px}.page-wrap.landing{padding-top:0}.landing-search,.landing-search:has(.grado-grid.has-query){min-height:auto;padding:34px 0 12px}.course-search-section,.courses-catalog-shell .catalog-search{top:calc(8px + var(--ad-anchor-top,0px));padding:8px}.course-search-section{min-height:154px}.quiz-editor-modal{align-items:stretch;padding:0}.quiz-editor-panel{border-radius:0;width:100%;height:100dvh;max-height:100dvh}.quiz-editor-header,.quiz-editor-footer,.quiz-editor-card-header{align-items:stretch;display:grid}.quiz-editor-header{padding-block:12px}.quiz-editor-header-actions{display:none}.quiz-editor-card-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.quiz-editor-footer{padding:10px 12px max(10px, env(safe-area-inset-bottom));grid-template-columns:auto 1fr 1fr}.quiz-editor-add-text{display:none}.quiz-editor-footer{gap:8px}.quiz-editor-footer>*{white-space:nowrap;padding-inline:10px;font-size:.95rem}.quiz-editor-option-row{grid-template-columns:36px minmax(0,1fr)}.content-grid,.steps-grid,.catalog-search,.form-row,.quiz-list-controls{grid-template-columns:1fr}.grado-card,.unit-card,.unit-card-link{align-items:flex-start}.unit-card--with-actions{flex-wrap:wrap}.unit-card--with-actions .unit-card-extra{width:100%}.site-footer__inner{display:grid}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color,box-shadow,visibility!important;transition-duration:.15s!important;transition-delay:0s!important;animation-duration:.15s!important;animation-iteration-count:1!important}.skeleton-card:after,.skeleton-title:after,.skeleton-heading:after,.skeleton-progress:after,.skeleton-question:after,.skeleton-option:after{animation:none!important}.spinner{animation-duration:1.6s!important;animation-iteration-count:infinite!important}@keyframes results-enter{0%{opacity:0}}@keyframes fab-confirm-in{0%{opacity:0}}@keyframes fab-confirm-out{to{opacity:0}}@keyframes drop-in{0%{opacity:0}}@keyframes drop-out{to{opacity:0}}@keyframes panel-in{0%{opacity:0}}@keyframes panel-out{to{opacity:0}}@keyframes toast-in{0%{opacity:0}}@keyframes toast-out{to{opacity:0}}}@media (prefers-reduced-transparency:reduce){.course-search-section,.courses-catalog-shell .catalog-search{background:var(--c-bg);backdrop-filter:none}}@media (prefers-contrast:more){.course-search-section,.courses-catalog-shell .catalog-search{background:var(--c-bg);backdrop-filter:none;border-color:var(--c-text-muted)}}.unit-grid>astro-island:last-child>.feed-ad,.unit-grid>a.unit-card:not(:has(~a.unit-card)):not(:has(~astro-island .feed-ad.is-filled)){border-bottom:0}.page-wrap:has(+.related-wrap){padding-bottom:0}.related-wrap{padding-top:0}.landing-topics .course-section h3{margin:0 0 10px;font-size:1.05rem}.landing-topics .course-section h3 a{text-decoration:none}.landing-topics .course-section h3 a:hover{color:var(--c-accent-strong)}
