*{box-sizing:border-box}:root{--bg:#0f172a;--surface:#1e293b;--surface-sunken:#0b1220;--border:#334155;--border-strong:#475569;--text:#e5e7eb;--muted:#94a3b8;--accent:#a78bfa;--accent-soft:#2e2550;--xp:#fbbf24;--success:#86efac;--error:#fca5a5;--task-code-bg:#0f172a;--task-code-text:#fde68a;--radius:14px;color:var(--text);background:radial-gradient(circle at 15% 0%, #1e1b4b 0, transparent 40%), radial-gradient(circle at 90% 10%, #0c4a6e 0, transparent 35%), var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-attachment:fixed;font-family:Nunito,system-ui,sans-serif;line-height:1.55}body{min-height:100vh;margin:0}main{max-width:1200px;margin:0 auto;padding:24px 16px 48px}h1,h2,h3{line-height:1.2}button,textarea{font:inherit}code,pre,textarea{font-variant-ligatures:none;font-family:JetBrains Mono,ui-monospace,monospace}textarea{border:1px solid var(--border-strong);background:var(--surface-sunken);width:100%;min-height:220px;color:var(--text);tab-size:2;resize:vertical;border-radius:10px;margin:8px 0 12px;padding:16px;font-size:15px;line-height:1.6;display:block}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;padding:10px 16px;font-weight:600;transition:background .15s,transform .1s}button:hover:not(:disabled){background:#334155}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}progress{appearance:none;background:var(--surface-sunken);border:none;border-radius:999px;width:100%;height:8px;overflow:hidden}progress::-webkit-progress-bar{background:var(--surface-sunken)}progress::-webkit-progress-value{background:linear-gradient(90deg, var(--accent), #38bdf8);border-radius:999px}progress::-moz-progress-bar{background:linear-gradient(90deg, var(--accent), #38bdf8);border-radius:999px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted);font-weight:400}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app-header{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#0f172ad9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 16px;display:flex;position:sticky;top:0}.app-header h1{margin:0;font-size:1.25rem;font-weight:800}.header-stats{align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.header-stats .avatar{width:auto;height:36px}.academy-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.academy-layout>*{min-width:0}.academy-layout>aside{gap:16px;display:grid}@media (width<=899px){.academy-layout>aside{order:1}}@media (width>=900px){.academy-layout{grid-template-columns:300px minmax(0,1fr)}.academy-layout>aside{max-height:calc(100vh - 88px);padding-right:4px;position:sticky;top:72px;overflow-y:auto}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-title{margin:0 0 12px;font-size:1rem;font-weight:800}.chip{border:1px solid var(--border-strong);background:var(--surface-sunken);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.chip-xp{color:var(--xp);border-color:#78350f}.chip-boss{color:#fde68a;background:#3b2a06;border-color:#a16207}.chip-done{color:var(--success);border-color:#166534}.hero-card{text-align:center;background:radial-gradient(circle at 50% 30%, var(--accent-soft), transparent 70%), var(--surface)}.hero-card h2{margin:0;font-size:1.4rem;font-weight:800}.hero-avatar{justify-content:center;display:flex}.avatar-body{transform-origin:60px 160px;animation:3.2s ease-in-out infinite breathe}@keyframes breathe{50%{transform:scaleY(1.02)translateY(-1px)}}.hero-stats{flex-wrap:wrap;justify-content:center;gap:6px;margin:8px 0 12px;display:flex}.growth{text-align:left;font-size:.9rem}.growth p{margin:0 0 6px}.continue-button{width:100%}.collection{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.collection-item{aspect-ratio:1;border:1px dashed var(--border-strong);background:var(--surface-sunken);color:var(--muted);border-radius:10px;place-items:center;font-size:1.4rem;font-weight:800;display:grid;position:relative}.collection-bolt{font-size:.8rem;position:absolute;top:-6px;right:-4px}.collection-item.earned{border:1px solid var(--accent);background:var(--accent-soft);animation:.4s ease-out pop}@keyframes pop{0%{transform:scale(.6)}}.track-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.track-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:8px;padding:10px;display:grid}.track-card.active{border-color:var(--accent)}.track-button{text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;min-height:40px;padding:4px 6px;display:flex}.track-icon{background:var(--surface-sunken);border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-size:.95rem;display:grid}.track-title{flex:1}.track-count{color:var(--muted);font-size:.85rem}.lesson-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.lesson-list button{width:100%;min-height:36px;color:var(--muted);text-align:left;background:0 0;border:none;padding:6px 10px;font-weight:400}.lesson-list button:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.lesson-list button[aria-current=true]{background:var(--accent-soft);color:var(--text);font-weight:600}.draft{color:var(--xp);font-size:.85em}.lesson-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.lesson-meta{flex-wrap:wrap;gap:6px;margin:0;display:flex}.lesson-title{margin:12px 0 8px;font-size:1.75rem;font-weight:800}.lesson-description{color:#cbd5e1;margin:0 0 12px}.lesson-task{border-left:4px solid var(--accent);background:var(--accent-soft);white-space:pre-line;border-radius:8px;margin:0 0 16px;padding:12px 16px;font-weight:600}.task-code{background:var(--task-code-bg);color:var(--task-code-text);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em}.lesson-docs{border:1px solid var(--border);background:var(--surface-sunken);border-radius:10px;margin:0 0 16px;padding:8px 12px}.lesson-docs summary{cursor:pointer;font-weight:600}.lesson-docs ul{margin:8px 0 0;padding-left:20px}.lesson-docs a{color:#c4b5fd}.lesson-panel label{color:var(--muted);font-size:.9rem;font-weight:600}.lesson-panel pre{overflow-x:auto}.lesson-file{background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:10px;margin:0 0 16px;padding:8px 12px}.lesson-file figcaption{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.85em}.lesson-file pre{margin:8px 0 0}.editor-actions{flex-wrap:wrap;gap:8px;display:flex}.preview{border:1px solid var(--border-strong);background:#fff;border-radius:10px;width:100%;height:240px;margin:12px 0;display:block}.primary-button{background:var(--accent);color:#111827;border-color:var(--accent);font-weight:800}.primary-button:hover:not(:disabled){background:#c4b5fd}.lesson-navigation{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px;padding-top:16px;display:flex}.feedback-success{color:var(--success)}.feedback-error{color:var(--error)}.feedback-message{font-size:1.1rem;font-weight:800}.xp-pop{color:var(--xp);margin-left:8px;animation:.6s ease-out xp-pop;display:inline-block}@keyframes xp-pop{0%{opacity:0;transform:translateY(8px)scale(.8)}60%{transform:translateY(-4px)scale(1.15)}}.console-output{border:1px solid var(--border-strong);background:#020617;border-radius:10px;margin:0 0 12px;padding:8px 12px}.console-output figcaption{color:var(--muted);font-size:.85rem;font-weight:600}.console-output pre{color:#e2e8f0;white-space:pre-wrap;margin:6px 0 0}.solution-compare{border:1px solid var(--border-strong);border-left:3px solid var(--success);background:var(--surface-sunken);border-radius:10px;margin:0 0 12px;padding:8px 12px}.solution-compare figcaption{color:var(--success);font-weight:600}.solution-compare pre{white-space:pre-wrap;margin:6px 0 0}.style-note{color:#bae6fd;background:#0c2233;border-left:3px solid #38bdf8;border-radius:8px;padding:10px 12px}.hint{color:#fde68a;background:#292515;border-left:3px solid #facc15;border-radius:8px;padding:12px}.test-results{gap:4px;padding:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9rem;list-style:none;display:grid}.level-up{border:1px solid var(--accent);background:radial-gradient(circle at 50% 35%, var(--accent-soft), transparent 70%), var(--surface);width:min(400px,100% - 32px);color:var(--text);text-align:center;border-radius:20px;padding:24px}.level-up[open]{animation:.35s ease-out rise}.level-up::backdrop{background:#020617b3}@keyframes rise{0%{opacity:0;transform:translateY(24px)scale(.95)}}.level-up h2{margin:0 0 8px;font-size:1.5rem;font-weight:800}.level-up-confetti{margin:0;font-size:2.5rem}.level-up-avatar{justify-content:center;animation:.8s ease-out .3s 2 jump;display:flex}@keyframes jump{40%{transform:translateY(-16px)}}.level-up-reward{background:var(--surface-sunken);border-radius:10px;padding:8px 12px}.level-up-can{font-weight:600}.level-up form{margin-top:16px}.account-panel input{border:1px solid var(--border-strong);background:var(--surface-sunken);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}.lesson-explain{border:1px solid var(--border);background:var(--surface-sunken);border-left:3px solid #38bdf8;border-radius:10px;margin:0 0 16px;padding:8px 12px}.lesson-explain ul{margin:8px 0;padding-left:22px}.lesson-explain li+li{margin-top:4px}.lesson-explain summary{cursor:pointer;font-weight:600}.lesson-explain p{margin:8px 0}.lesson-explain figure{margin:8px 0 4px}.lesson-explain figcaption{color:var(--muted);font-size:.85rem;font-weight:600}.hint-button{color:#fde68a;border-color:#facc15;margin:8px 0;display:block}.quiz-start{width:100%;margin:8px 0 16px;font-size:.9rem}.test-out-button{border-style:dashed;width:100%;min-height:36px;margin-top:8px;padding:6px 10px;font-size:.85rem}.quiz{border:1px solid var(--accent);background:var(--surface);width:min(560px,100% - 32px);max-height:calc(100% - 32px);color:var(--text);border-radius:20px;padding:24px}.quiz[open]{animation:.35s ease-out rise}.quiz::backdrop{background:#020617b3}.quiz h2{margin:0 0 4px;font-size:1.3rem;font-weight:800}.quiz-question{font-weight:700}.quiz-code{background:var(--surface-sunken);border-radius:10px;padding:10px 12px;overflow-x:auto}.quiz-options{gap:8px;display:grid}.quiz-option{text-align:left;white-space:pre-line;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:400}.quiz-option.is-correct{border-color:var(--success);color:var(--success)}.quiz-option.is-wrong{border-color:var(--error);color:var(--error)}.quiz-option:disabled{cursor:default;opacity:1}.quiz-explain{gap:8px;margin-top:12px;display:grid}.quiz-explain p{margin:0}.quiz-close{justify-content:flex-end;margin-top:16px;display:flex}.test-out-banner{border:1px dashed var(--xp);color:#fde68a;text-align:left;background:#292515;width:100%;margin:0 0 12px;display:block}.test-out-banner:hover{background:#3a3418}.chip-project{color:#bae6fd;background:#082f49;border-color:#0369a1}.project-picker{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.project-picker-title{margin:0 0 4px;font-size:.85rem;font-weight:600}.project-steps{margin-left:18px}.collection-subtitle{margin-top:16px}.mode-choice{border:1px dashed var(--accent);border-radius:var(--radius);flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:12px;display:flex}.mode-choice p{flex-basis:100%;margin:0}.lesson-why{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:8px;margin:12px 0;padding:12px 14px;line-height:1.5}.editor-tips{margin:-4px 0 12px;font-size:13px}.editor-tips kbd{border:1px solid var(--border-strong);background:var(--surface-sunken);border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.editor-tips-error{color:var(--error)}.header-nav{gap:8px;margin-left:auto;display:flex}.header-nav button{padding:6px 12px;font-size:.9rem}.header-nav button[aria-current=page]{border-color:var(--accent);background:var(--accent-soft)}.help-dialog{width:min(640px,100% - 32px)}.help-dialog h3{margin:20px 0 6px;font-size:1.05rem}.help-dialog ol,.help-dialog ul{gap:6px;margin:0;padding-left:22px;display:grid}.help-dialog form{margin-top:20px}.help-dialog kbd,.help-dialog code{background:var(--surface-sunken);border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.85em}.help-dialog kbd{border:1px solid var(--border-strong)}.playground-back{margin-bottom:8px;padding:4px 10px;font-size:.85rem}.playground-pick{flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;display:flex}.playground-pick select{border:1px solid var(--border-strong);background:var(--surface-sunken);max-width:100%;color:var(--text);font:inherit;border-radius:8px;padding:6px 10px}.playground-locked-note{margin:4px 0 12px;font-size:.85rem}.idea-card{border:1px solid var(--accent);background:var(--accent-soft);border-radius:12px;margin:12px 0;padding:12px 16px}.idea-card h3{margin:0 0 4px}.idea-card p{margin:6px 0}.idea-card ol{gap:4px;margin:8px 0;padding-left:22px;display:grid}.idea-buttons{flex-wrap:wrap;gap:8px;display:flex}.stuck-panel{border:1px solid var(--border-strong);background:var(--surface-sunken);border-radius:12px;margin:12px 0;padding:10px 14px}.stuck-panel summary{cursor:pointer;font-weight:700}.stuck-panel h3{margin:14px 0 6px;font-size:1rem}.stuck-panel ul{gap:6px;margin:0 0 10px;padding-left:22px;display:grid}.stuck-panel code,.stuck-panel kbd{background:var(--task-code-bg);border-radius:5px;padding:1px 5px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.85em}.stuck-panel kbd{border:1px solid var(--border-strong)}.stuck-resources li{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;display:flex}.stuck-panel a{color:var(--accent)}.stuck-note{margin:6px 0 0;font-size:.85rem}.step-panel{border:1px solid var(--xp);background:var(--surface-sunken);border-radius:12px;gap:10px;margin:12px 0;padding:14px 16px;display:grid}.step-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.step-header button{padding:4px 10px;font-size:.85rem}.step-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.step-count{text-align:center;min-width:7.5em;font-weight:700}.step-panel input[type=range]{width:100%;accent-color:var(--xp)}.step-status{margin:0}.step-vars{border-collapse:collapse;width:100%;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9rem}.step-vars th,.step-vars td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:6px 10px}.step-vars thead th{color:var(--muted);font-family:Nunito,system-ui,sans-serif;font-size:.8rem;font-weight:700}.step-vars tbody th{width:30%;color:var(--task-code-text);font-weight:600}.step-changed td,.step-changed th{background:#fbbf241f}.step-changed-label{color:var(--xp);margin-left:6px;font-family:Nunito,system-ui,sans-serif;font-size:.75rem;font-weight:700}.step-tip{margin:0;font-size:.8rem}.help-steps{font-size:1.05rem}.help-more{margin-top:12px}.help-more summary{cursor:pointer;color:var(--accent);font-weight:700}.feedback-try-again{align-items:flex-end;gap:10px;margin:12px 0;display:flex}.feedback-try-again .avatar{flex:none;width:auto;height:52px}.feedback-bubble{border:1px solid var(--border-strong);background:var(--surface);border-radius:14px 14px 14px 4px;margin:0;padding:10px 14px;position:relative}.error-hint{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:8px;margin:8px 0;padding:10px 14px}.error-hint code{background:var(--task-code-bg);color:var(--task-code-text);border-radius:5px;padding:1px 5px;font-size:.9em}.test-results code{background:var(--task-code-bg);border-radius:5px;padding:1px 5px}.diff-button{border-style:dashed;min-height:32px;margin:6px 0 2px;padding:4px 10px;font-size:.8rem;display:block}.diff-rows{background:var(--surface-sunken);color:var(--text);border-radius:8px;margin:6px 0 0;padding:8px 10px;overflow-x:auto}.diff-row{grid-template-columns:auto 1fr;column-gap:10px;padding:4px 0;display:grid}.diff-row+.diff-row{border-top:1px solid var(--border)}.diff-row dt{color:var(--muted)}.diff-row dd{white-space:pre;margin:0}.diff-row dd:first-of-type .diff-mark{background:#f8717159}.diff-row dd:nth-of-type(2) .diff-mark{background:#4ade804d}.diff-mark{color:var(--text);border-radius:3px;outline:1px solid}.diff-missing{color:var(--muted);font-style:italic}.diff-legend{color:var(--muted);margin:4px 0 0;font-family:Nunito,system-ui,sans-serif;font-size:.8rem}.render-log{border:1px solid var(--border-strong);background:var(--surface-sunken);border-radius:12px;margin:12px 0;padding:10px 14px}.render-log summary{cursor:pointer;font-weight:700}.render-log-intro{margin:6px 0;font-size:.85rem}.render-log-list{gap:4px;max-height:260px;margin:0 0 8px;padding:0;font-size:.9rem;list-style:none;display:grid;overflow-y:auto}.render-log-list li{border-radius:6px;padding:4px 8px}.render-log-new-burst{border-top:1px dashed var(--border-strong);margin-top:6px;padding-top:8px!important}.render-log-render{background:#a78bfa1a}.render-log-same{color:var(--muted)}.render-log-effect{background:#fbbf2414}.render-log code{background:var(--task-code-bg);color:var(--task-code-text);border-radius:5px;padding:1px 5px;font-size:.85em}.render-log-clear{padding:4px 10px;font-size:.85rem}.step-example{margin:0;font-size:.9rem}.step-example code,.step-status code{background:var(--task-code-bg);color:var(--task-code-text);border-radius:5px;padding:1px 5px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9em}.stuck-ai-intro{margin:0 0 8px}.stuck-ai-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.stuck-ai-status{color:var(--success);font-size:.9rem}.stuck-ai-prompt{margin:8px 0 4px}.stuck-ai-prompt summary{cursor:pointer;color:var(--accent);font-size:.9rem}.stuck-ai-prompt pre{background:var(--task-code-bg);white-space:pre-wrap;border-radius:8px;max-height:260px;margin:8px 0 0;padding:10px 12px;font-size:.8rem;overflow:auto}.runtime-status{background:var(--surface);border-radius:999px;margin:0;padding:4px 12px;font-size:.85rem}.runtime-status-ready{color:var(--success)}.runtime-status-starting,.runtime-status-loading{color:var(--xp)}.runtime-status-failed{color:var(--error)}.playground-inputs{gap:6px;margin:12px 0;font-weight:700;display:grid}.playground-inputs textarea{min-height:0;margin:0;padding:8px 12px;font-size:.9rem}.step-options{flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.9rem;display:flex}.step-speed,.step-guess-toggle{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.step-score{color:var(--xp);font-weight:700}.step-explain{border-left:3px solid var(--success);background:#86efac12;border-radius:8px;padding:10px 14px}.step-explain ul{margin:6px 0 0;padding-left:1.2em}.step-explain li+li{margin-top:4px}.step-question{border:1px dashed var(--accent);background:var(--accent-soft);border-radius:10px;gap:8px;padding:12px 14px;display:grid}.step-question p{margin:0;font-weight:700}.step-question-actions{flex-wrap:wrap;gap:8px;display:flex}.step-question input[type=text]{flex:12em;min-width:0;font-family:JetBrains Mono,ui-monospace,monospace}.step-question .step-skip{justify-self:start;padding:4px 10px;font-size:.85rem}.step-verdict-wrong{color:var(--error);margin:0}.step-stack{flex-wrap:wrap;align-items:center;gap:6px;font-size:.9rem;display:flex}.step-stack ol{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.step-stack li+li:before{content:"›";color:var(--muted);margin-right:4px}.step-stack-current code{outline:1px solid var(--xp)}.step-vars caption{text-align:left;padding-bottom:4px;font-family:Nunito,system-ui,sans-serif;font-size:.8rem}.step-outer summary{cursor:pointer;color:var(--muted);font-size:.9rem}.step-outer p{margin:8px 0 4px}.app-preview{margin:12px 0}.app-preview>figcaption{margin-bottom:6px;font-weight:700}.app-preview>figcaption .muted{font-size:.85rem;font-weight:400}.app-page{color:#31333f;background:#fff;border:1px solid #e5e7eb;border-radius:12px;gap:16px;padding:18px 20px;font-family:Source Sans Pro,Nunito,system-ui,sans-serif;display:grid}.app-page .muted{color:#6b7280}.app-with-sidebar{grid-template-columns:minmax(140px,30%) 1fr}.app-sidebar{background:#f0f2f6;border-radius:12px 0 0 12px;margin:-18px 0 -18px -20px;padding:18px 16px}.app-main,.app-sidebar,.app-columns>div,.app-tabs section{align-content:start;gap:10px;min-width:0;display:grid}.app-page h2,.app-page h3,.app-page h4,.app-page p{margin:0}.app-title{font-size:1.8rem}.app-caption{font-size:.85rem}.app-code{white-space:pre-wrap;background:#f0f2f6;border-radius:8px;margin:0;padding:8px 12px}.app-callout{border-radius:8px;padding:10px 14px}.app-success{color:#166534;background:#dcfce7}.app-info{color:#1e40af;background:#dbeafe}.app-warning{color:#854d0e;background:#fef9c3}.app-error{color:#991b1b;background:#fee2e2}.app-metric{gap:2px;display:grid}.app-metric strong{font-size:1.8rem;font-weight:600}.app-delta-up{color:#15803d}.app-delta-down{color:#b91c1c}.app-widget{gap:4px;display:grid}.app-widget-label{font-size:.9rem}.app-input{white-space:pre-wrap;background:#f0f2f6;border-radius:8px;padding:6px 10px}.app-slider{align-items:center;height:22px;display:flex;position:relative}.app-slider:before{content:"";background:#e5e7eb;border-radius:2px;position:absolute;inset:9px 0}.app-slider-fill{background:#ff4b4b;border-radius:2px;height:4px;position:relative}.app-slider strong{color:#ff4b4b;margin-left:8px;position:relative}.app-button{background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-self:start;padding:6px 14px}.app-check{font-size:.95rem}.app-columns{gap:16px;display:grid}.app-tab-name{border-bottom:2px solid #ff4b4b;padding-bottom:4px}.app-expander{border:1px solid #e5e7eb;border-radius:8px;padding:8px 12px}.app-expander summary{cursor:pointer}.app-table{overflow-x:auto}.app-table table{border-collapse:collapse;font-size:.9rem}.app-table th,.app-table td{text-align:left;border:1px solid #e5e7eb;padding:4px 10px}.app-table th{background:#f0f2f6}.app-chart{gap:4px;margin:0;display:grid}.app-bar-row{grid-template-columns:minmax(3em,auto) 1fr auto;align-items:center;gap:8px;font-size:.85rem;display:grid}.app-bar{background:#3b82f6;border-radius:3px;height:14px}.app-chart svg{width:100%;height:120px}.app-chart polyline{fill:none;stroke:#3b82f6;stroke-width:2px;vector-effect:non-scaling-stroke}.app-balloons{font-size:1.6rem}.live-app-start{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0;font-size:.9rem;display:flex}.live-app{gap:8px;margin:12px 0;display:grid}.live-app-header{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.live-app-header .muted{flex:12em;font-size:.9rem}.live-app iframe{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;height:560px}@media (width<=640px){.app-with-sidebar{grid-template-columns:1fr}.app-sidebar{border-radius:12px 12px 0 0;margin:-18px -20px 0}}.home-link{color:inherit;text-decoration:none}.home-link:hover{color:var(--accent)}.home{max-width:900px}.home-intro h2{margin:8px 0;font-size:1.8rem}.home-account{max-width:420px;margin-top:24px}.home section>h2{margin:32px 0 0}.course-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.course-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:100%;color:var(--text);flex-direction:column;gap:6px;padding:20px;text-decoration:none;display:flex}.course-card:hover,.course-card:focus-visible{border-color:var(--accent)}.course-card strong{font-size:1.3rem}.course-icon{font-size:2rem}.course-progress{color:var(--accent);margin-top:auto;padding-top:8px;font-weight:700}.course-loading{text-align:center;padding:48px 16px}.feedback-warnings{background:#a162072e;border:1px solid #a16207;border-radius:10px;margin:12px 0;padding:10px 16px}.feedback-warnings-title{color:#fde68a;margin:0;font-weight:800}.feedback-warnings ul{margin:6px 0 0;padding-left:20px}.error-box{background:#7f1d1d33;border:1px solid #7f1d1d;border-radius:10px;margin:12px 0;padding:12px 16px}.error-title{color:var(--error);margin:0;font-weight:800}.error-explain{margin:6px 0}.error-raw{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.85rem}.boss-note{color:#fde68a;background:#3b2a06;border:1px solid #a16207;border-radius:10px;padding:.6rem .9rem}.account-panel{gap:8px;margin-bottom:16px;display:grid}.account-panel h2,.account-panel p{margin:0}.account-panel form{gap:8px;display:grid}.account-panel input{border:1px solid var(--border-strong);background:var(--surface-sunken);width:100%;color:var(--text);border-radius:8px;padding:8px 10px}.account-email{overflow-wrap:anywhere;font-weight:700}.diploma-button{width:100%;margin-top:8px}.diploma-dialog label{gap:6px;margin:12px 0;font-weight:600;display:grid}.diploma-dialog input{font:inherit;color:var(--text);background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px}.diploma-links{flex-wrap:wrap;gap:8px 16px;padding:0;list-style:none;display:flex}.diploma-page{min-height:100vh;padding:24px 16px 48px}.diploma-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:24px;display:flex}.diploma-message{text-align:center}.diploma{color:#1f2937;text-align:center;background:#fffdf7;border:10px double #7c3aed;border-radius:6px;max-width:900px;margin:0 auto;padding:48px 56px 32px;font-family:Georgia,Times New Roman,serif;box-shadow:0 20px 50px #00000059}.diploma-school{color:#6d28d9;letter-spacing:.08em;text-transform:uppercase;margin:0;font-family:system-ui,sans-serif;font-weight:700}.diploma h1{letter-spacing:.12em;text-transform:uppercase;margin:8px 0 16px;font-size:clamp(2.4rem,7vw,4rem)}.diploma-lead{margin:6px 0;font-style:italic}.diploma-name{border-bottom:2px solid #c4b5fd;max-width:80%;margin:8px auto;padding-bottom:6px;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:700}.diploma-subject{color:#4c1d95;margin:8px 0 16px;font-size:clamp(1.4rem,4vw,2rem);font-weight:700}.diploma-figure{color:#6b7280;flex-direction:column;align-items:center;gap:4px;font-family:system-ui,sans-serif;font-size:.85rem;display:inline-flex}.diploma-parts{color:#4b5563;max-width:90%;margin:16px auto 0;font-size:.9rem;line-height:1.6}.diploma-note{color:#6b7280;margin:14px 0 0;font-family:system-ui,sans-serif;font-size:.75rem;line-height:1.4}.diploma-footer{color:#6b7280;border-top:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:28px;padding-top:12px;font-family:system-ui,sans-serif;font-size:.8rem;display:flex}@media (width<=600px){.diploma{border-width:6px;padding:28px 18px 20px}}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff}.diploma-page{min-height:0;padding:0}.diploma-actions{display:none}.diploma{max-width:none;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.path-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.path-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:20px;scroll-margin-top:80px;display:flex}.path-card h2{margin:0;font-size:1.2rem}.path-card p{margin:0}.path-courses{gap:6px;margin:0;padding-left:20px;display:grid}.path-courses li::marker{color:var(--muted)}.path-courses li{flex-wrap:wrap;justify-content:space-between;gap:4px 10px;display:flex}.path-next{margin-top:auto}.account-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.account-page section>p,.account-page section>button{margin-top:12px}.account-page .home-intro ul{padding-left:20px;line-height:1.6}.danger-button{border-color:var(--error);color:var(--error)}.danger-zone{border:1px solid var(--error);border-radius:12px;gap:12px;max-width:520px;margin-top:12px;padding:16px;display:grid}.danger-zone label{gap:6px;display:grid}.danger-zone input{border:1px solid var(--border-strong);background:var(--surface-sunken);min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:8px 12px}.danger-actions{flex-wrap:wrap;gap:12px;display:flex}.site-footer{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 20px;max-width:900px;margin:48px auto 24px;padding:16px 24px 0;font-size:.9rem;display:flex}.home-start{margin-top:20px}.start-button{border:1px solid var(--accent);border-radius:12px;align-items:center;min-height:56px;padding:14px 28px;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.home-start .muted{margin:10px 0 0}.lesson-column{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.save-nudge{border-color:var(--accent);justify-items:start;gap:12px;display:grid}.save-nudge p{margin:0}.save-nudge .account-panel{width:100%;max-width:420px;box-shadow:none;background:0 0;border:0;padding:0}.facit-keys-empty{border:1px dashed var(--border-strong);color:var(--muted);border-radius:10px;margin:0 0 12px;padding:8px 12px}.header-home-icon{display:none}@media (width<=640px){.app-header{flex-wrap:nowrap;gap:8px;padding:8px 12px}.app-header h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:1.05rem;overflow:hidden}.app-header .runtime-status{white-space:nowrap;text-overflow:ellipsis;flex-shrink:100;min-width:0;padding:2px 8px;font-size:.75rem;overflow:hidden}.app-header .runtime-status-ready,.header-label{display:none}.header-nav button{padding:6px 10px}.header-stats .avatar{height:28px}.header-home-icon{display:inline}}@media (hover:none) and (pointer:coarse){.editor-tips:has(>.editor-tips-keys){display:none}}.landing-steps{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.landing-steps li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:6px;padding:20px;display:flex}.landing-steps strong{font-size:1.1rem}.landing-icon{font-size:1.8rem}.landing-faq{gap:8px;margin-top:20px;display:grid}.landing-faq details{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px 16px}.landing-faq summary{cursor:pointer;font-weight:700}.landing-faq p{margin:8px 0 0}.app-brand{font-size:1.25rem;font-weight:800}.course-info h1{margin:4px 0 8px;font-size:2rem;line-height:1.2}.course-info-icon{margin:16px 0 0;font-size:2.6rem}.course-facts{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.course-facts li{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:.9rem}.course-example{border:1px solid var(--border);background:var(--surface-sunken);border-radius:10px;margin:16px 0 0;padding:16px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9rem;overflow-x:auto}.course-tracks{gap:10px;margin:16px 0 0;padding-left:24px;display:grid}.course-links{flex-wrap:wrap;gap:8px 16px;margin:16px 0 0;padding:0;list-style:none;display:flex}@media (width<=640px){.course-info h1{font-size:1.6rem}}
