:root{color:#302a31;font-family:var(--font-body);font-synthesis:none;--font-body:ui-rounded, "NanumSquareRound", "Cafe24 Ssurround", "Pretendard Variable", Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--font-round:var(--font-body);--font-code:"D2Coding", "Cascadia Code", ui-monospace, SFMono-Regular, Consolas, monospace;--background:#fff9f0;--surface:#fffdf9;--surface-secondary:#edf7f1;--surface-lilac:#f2eafa;--surface-peach:#ffe9dd;--text:#302a31;--muted:#665e66;--line:#ded4dc;--accent:#26705c;--accent-strong:#185846;--highlight:#9b4f68;--on-accent:#fff;--on-danger:#fff;--soft:var(--surface-secondary);--green:var(--accent);--dark-green:var(--accent-strong);--coral:var(--highlight);--brand:var(--accent);--brand-strong:var(--accent-strong);--danger:#a33b4b;--success:#23704f;--warning:#855900;--focus:#7043a0;--danger-soft:#fde8eb;--success-soft:#e2f4e9;--warning-soft:#fff1c9;--code-surface:#17201d;--code-surface-soft:#21302a;--code-text:#eef7f2;--code-muted:#b7c8bf;--radius-sm:.75rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-pill:999px;--radius-control:var(--radius-sm);--radius-card:var(--radius-lg);--shadow:0 .75rem 2rem #50374717;--shadow-raised:0 1rem 2.5rem #50374724;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);background:#fff9f0}:root[data-theme=dark]{color:#f7eff5;--background:#18141b;--surface:#211c24;--surface-secondary:#2c2530;--surface-lilac:#332940;--surface-peach:#3b2929;--text:#f7eff5;--muted:#c8bdc6;--line:#4b3f49;--accent:#7bd6b7;--accent-strong:#a7e7d0;--highlight:#f0a6b8;--on-accent:#13221d;--on-danger:#2b1118;--soft:var(--surface-secondary);--green:var(--accent);--dark-green:var(--accent-strong);--coral:var(--highlight);--brand:var(--accent);--brand-strong:var(--accent-strong);--danger:#ff9caf;--success:#82dcb2;--warning:#f0c979;--focus:#d5b4ff;--danger-soft:#49252e;--success-soft:#203a31;--warning-soft:#45391f;--code-surface:#111714;--code-surface-soft:#1c2823;--code-text:#eef7f2;--code-muted:#b7c8bf;--shadow:0 .75rem 2rem #05020747;--shadow-raised:0 1rem 2.5rem #05020766;background:#18141b}:root[data-font-size=small]{font-size:14px}:root[data-font-size=medium]{font-size:16px}:root[data-font-size=large]{font-size:19px}*{box-sizing:border-box;-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}html,body{max-width:100%;overflow-x:clip}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}body{min-width:0;min-height:100dvh;color:var(--text);background:var(--background);margin:0;line-height:1.7}button,select,input,textarea{font:inherit}.toggle{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-secondary);cursor:pointer;justify-content:flex-start;align-items:center;min-width:3.25rem;min-height:2.75rem;padding:.25rem;transition:background-color .18s,border-color .18s;display:inline-flex}.toggle span{background:var(--muted);border-radius:50%;width:1.25rem;height:1.25rem;transition:background-color .18s,transform .18s}.toggle.on,.toggle[aria-checked=true]{border-color:var(--green);background:var(--green);justify-content:flex-end}.toggle.on span,.toggle[aria-checked=true] span{background:var(--surface)}.toggle:disabled{cursor:not-allowed;opacity:.55}code,pre,kbd,samp{font-family:var(--font-code)}h1,h2,h3,h4,.brand,.nav-link,.bottom-link,button,[role=button]{font-family:var(--font-round)}.skip-link{top:calc(.5rem + var(--safe-area-top));left:calc(.5rem + var(--safe-area-left));z-index:100;border-radius:var(--radius-sm);color:#fff;background:var(--brand-strong);box-shadow:var(--shadow-raised);padding:.75rem 1rem;position:fixed;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.editor-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);margin-top:1.5rem;overflow:hidden}.editor-loading{border:1px solid var(--line);border-radius:var(--radius-lg);min-height:300px;color:var(--muted);background:var(--surface);place-items:center;margin-top:1.5rem;display:grid}.editor-card.fullscreen{z-index:50;padding-top:var(--safe-area-top);padding-right:var(--safe-area-right);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);border:0;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0;overflow:hidden auto}.editor-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.editor-heading h2{margin:0 0 .25rem;font-size:1rem}.editor-actions{gap:.5rem;display:flex}.editor-actions .quiet-button,.execution-actions .quiet-button{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:2.5rem;color:var(--muted);background:var(--surface);padding:.45rem .7rem;font-size:.82rem}.editor-actions .quiet-button[aria-pressed=true]{border-color:color-mix(in srgb, var(--green) 40%, var(--line));color:var(--dark-green);background:color-mix(in srgb, var(--green) 8%, var(--surface))}.save-status{color:var(--muted);margin:0;font-size:.78rem}.save-status.saved:before{content:"✓ ";color:var(--green)}.save-status.error{color:var(--danger);font-weight:700}.tab-lock-notice{color:var(--warning);background:var(--warning-soft);padding:.8rem 1rem;font-size:.88rem}.sync-notice{border-bottom:1px solid var(--line);color:var(--muted);background:var(--soft);padding:.65rem 1rem;font-size:.82rem}.sync-notice.success{color:var(--dark-green);background:color-mix(in srgb, var(--green) 10%, var(--surface))}.sync-notice.success:before{content:"✓ ";font-weight:800}.sync-conflict{border-bottom:1px solid var(--line);background:var(--surface-peach);padding:1rem}.sync-conflict h3,.sync-conflict p{margin-top:0}.sync-conflict-versions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.sync-conflict-versions pre{min-height:7rem;color:var(--code-text);background:var(--code-surface);font-family:var(--font-code);white-space:pre-wrap;padding:.75rem;overflow:auto}@media (width<=640px){.sync-conflict-versions{grid-template-columns:1fr}}.editor-host{background:var(--code-surface);min-height:300px;overflow:auto}.editor-host .cm-editor{min-height:300px;color:var(--code-text);background:var(--code-surface);font-family:var(--font-code);font-variant-ligatures:none;font-size:1.05rem;line-height:1.6}.editor-host .cm-scroller{overscroll-behavior:contain;min-height:300px}.editor-host .cm-content{caret-color:#fff;padding:1rem 0}.select-field{gap:.5rem;font-weight:700;display:grid;position:relative}.select-trigger{border:1px solid var(--line);border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text);background:color-mix(in srgb, var(--surface-secondary) 42%, var(--surface));text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1.1rem .6rem .8rem;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex;overflow:hidden}.select-trigger:hover,.select-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--green) 58%, var(--line));background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 13%, transparent)}.select-arrow{width:1rem;height:1rem;color:var(--green);flex:none;transition:transform .18s}.select-trigger[aria-expanded=true] .select-arrow{transform:rotate(180deg)}.select-popup{z-index:20;border:1px solid var(--line);border-color:color-mix(in srgb, var(--green) 30%, var(--line));border-radius:var(--radius-md);max-height:min(22rem,55vh);color:var(--text);background:color-mix(in srgb, var(--surface) 94%, var(--surface-secondary));box-shadow:0 1rem 2rem color-mix(in srgb, var(--text) 14%, transparent);transform-origin:top;padding:.4rem;animation:.18s cubic-bezier(.2,.8,.2,1) both select-popup-in;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow-y:auto}.select-popup[data-placement=up]{transform-origin:bottom;animation-name:select-popup-up-in;top:auto;bottom:calc(100% + .3rem)}.select-popup [role=option]{border-radius:calc(var(--radius-sm) - .15rem);min-height:44px;color:var(--muted);cursor:pointer;grid-template-columns:1.25rem minmax(0,1fr);align-items:center;padding:.55rem .7rem;transition:background-color .15s,color .15s,transform .15s;display:grid}.select-popup [role=option]:hover,.select-popup [role=option].active{color:var(--dark-green);background:color-mix(in srgb, var(--green) 12%, var(--surface))}.select-popup [role=option][aria-selected=true]{color:var(--dark-green);background:color-mix(in srgb, var(--green) 18%, var(--surface))}.select-popup [role=option]:active{transform:scale(.985)}.select-trigger>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@keyframes select-popup-in{0%{opacity:0;transform:translateY(-.35rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes select-popup-up-in{0%{opacity:0;transform:translateY(.35rem)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.editor-host .cm-gutters{color:var(--code-muted);background:var(--code-surface);border-color:var(--code-surface-soft)}.editor-host .cm-focused{outline:3px solid var(--focus);outline-offset:-3px}.editor-host .cm-line.cm-edit-target{background:#f2b84b24;border-left:3px solid #f2b84b}.practice-reminder{border-bottom:1px solid var(--line);color:var(--text);background:color-mix(in srgb, var(--green) 7%, var(--surface));padding:.85rem 1rem}.practice-reminder ul{flex-wrap:wrap;gap:.35rem 1.4rem;margin:.45rem 0 0;padding-left:1.2rem;font-size:.84rem;display:flex}.editor-card.fullscreen .editor-host,.editor-card.fullscreen .cm-editor,.editor-card.fullscreen .cm-scroller{flex:1;min-height:0}.mobile-code-keys{border-top:1px solid var(--line);background:var(--soft);gap:.45rem;padding:.65rem;display:none;overflow-x:auto}.editor-keyboard-help{color:var(--muted);margin:0;padding:.65rem 1rem;font-size:.75rem}.editor-keyboard-help summary{cursor:pointer;width:fit-content}.editor-keyboard-help p{margin:.5rem 0 0}.mobile-code-keys button{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:2.8rem;min-height:2.75rem;color:var(--text);background:var(--surface);font-weight:700}.execution-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin:0 1rem 1rem;overflow:hidden}.submission-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin:0 1rem 1rem;padding:1rem}.requirement-result,.grading-help{border-radius:var(--radius-sm);background:var(--soft);margin-top:.75rem;padding:.75rem}.requirement-result.needs-change{border-left:4px solid var(--coral);background:var(--danger-soft)}.requirement-result.passed{border-left:4px solid var(--green)}.requirement-result .next-fix{color:var(--text);margin-bottom:0}:root[data-theme=dark] .requirement-result.needs-change{background:var(--danger-soft)}.grading-help pre{white-space:pre-wrap;overflow-wrap:anywhere}.review-items{text-align:left;gap:.5rem;width:min(100%,30rem);margin:1rem auto;padding:0;list-style:none;display:grid}.review-items li{border-radius:var(--radius-sm);background:var(--soft);justify-content:space-between;gap:1rem;padding:.75rem;display:flex}.execution-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.execution-heading h3,.execution-heading p{margin:0}.execution-heading p{color:var(--muted);margin-top:.25rem;font-size:.78rem}.execution-actions{gap:.4rem;display:flex}.execution-actions button{white-space:nowrap}.execution-output,.execution-error pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--code-text);background:var(--code-surface);font-family:var(--font-code);font-variant-ligatures:none;margin:0;padding:1rem;line-height:1.55;overflow:auto}.execution-output{min-height:7rem;max-height:18rem}.execution-output.empty{color:var(--code-muted)}.execution-error{color:var(--danger);background:var(--danger-soft);padding:1rem}:root[data-theme=dark] .execution-error{color:var(--danger);background:var(--danger-soft)}.execution-error pre{color:#ffd9d3;background:#311814;margin:.65rem 0}.execution-error p{margin:0;font-weight:700}.execution-input{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:end;gap:.5rem;padding:.9rem 1rem;display:grid}.execution-input label{grid-column:1/-1;font-weight:700}.execution-input input{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;min-height:2.75rem;color:var(--text);background:var(--surface);font:inherit;padding:.65rem .75rem}.run-button,.stop-button{border-radius:var(--radius-sm);width:calc(100% - 2rem);min-height:3rem;color:var(--on-accent);background:var(--green);font:inherit;cursor:pointer;border:0;margin:.8rem 1rem 1rem;font-weight:800}.stop-button{color:var(--on-danger);background:var(--danger);background:var(--danger)}.run-button:disabled,.stop-button:disabled{opacity:.55}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.icon{flex:none;width:1.3rem;height:1.3rem}.app-shell{grid-template-columns:224px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);z-index:5;height:100vh;box-shadow:.5rem 0 2rem color-mix(in srgb, var(--text) 4%, transparent);flex-direction:column;padding:1.75rem 1rem;display:flex;position:sticky;top:0}.brand{color:var(--dark-green);font-family:var(--font-round);letter-spacing:.14em;align-items:center;gap:.65rem;font-weight:700;display:flex}.brand-mark{border-radius:var(--radius-sm);width:2rem;height:2rem;display:block}.primary-nav{gap:.35rem;margin-top:2.5rem;display:grid}.nav-link{border-radius:var(--radius-md);min-height:3rem;color:var(--muted);border:1px solid #0000;align-items:center;gap:.8rem;padding:.75rem 1rem;font-weight:600;display:flex}.nav-link:hover{background:var(--soft);color:var(--text)}.nav-link.active{border-color:color-mix(in srgb, var(--green) 28%, var(--line));background:color-mix(in srgb, var(--green) 11%, var(--surface));color:var(--dark-green)}:root[data-theme=dark] .nav-link.active{background:color-mix(in srgb, var(--green) 15%, var(--surface));color:var(--green)}.settings-link{margin-top:auto}.page-area{min-width:0}.page-content{width:min(1060px,100% - 4rem);margin:0 auto;padding:4.5rem 0 5rem}.mobile-header,.bottom-nav{display:none}.mobile-header-actions{align-items:center;gap:.15rem;display:flex}.page-heading{max-width:46rem;margin-bottom:2.75rem}.eyebrow{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .7rem;font-size:.8rem;font-weight:800}.notification-setting{flex-direction:row;align-items:center;gap:1rem}.notification-setting>div{text-align:left;min-width:0;max-width:40rem}.notification-setting button{flex:none;margin-left:auto}.maintenance-page{min-height:100dvh;padding:max(1.5rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));background:var(--surface);place-items:center;display:grid}.maintenance-card{border-left:4px solid var(--green);width:min(100%,34rem);padding:clamp(1.5rem,6vw,2.5rem);font-family:Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}.maintenance-card h1{letter-spacing:-.035em;word-break:keep-all;margin:.55rem 0 .8rem;font-size:clamp(1.55rem,5vw,2rem);line-height:1.35}.maintenance-card p:not(.eyebrow){max-width:30rem;color:var(--muted);word-break:keep-all;margin:0 0 1.5rem;line-height:1.7}.maintenance-card .primary-button{width:auto;min-width:9rem}.maintenance-state{align-items:center;gap:.55rem;font-size:.82rem;font-weight:800;display:flex;color:var(--dark-green)!important;margin:0 0 .5rem!important}.maintenance-progress{gap:.28rem;display:inline-flex}.maintenance-progress i{background:var(--green);border-radius:50%;width:.38rem;height:.38rem;animation:1.15s ease-in-out infinite maintenance-pulse}.maintenance-progress i:nth-child(2){animation-delay:.16s}.maintenance-progress i:nth-child(3){animation-delay:.32s}@keyframes maintenance-pulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1.2)}}@media (prefers-reduced-motion:reduce){.maintenance-progress i{opacity:.8;animation:none;transform:none}}@media (width<=767px){.maintenance-card .primary-button{width:100%}}.python-basic,:root[data-theme=dark] .python-basic{--python-accent:var(--green);--python-accent-strong:var(--dark-green);--python-soft:var(--soft)}.python-learning-roadmap{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.65rem;margin:1.5rem 0;display:grid}.python-learning-roadmap>a{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;grid-template-columns:2rem minmax(0,1fr);align-content:center;gap:.15rem .65rem;min-height:6.5rem;padding:1rem;display:grid}.python-learning-roadmap>a>span{width:2rem;height:2rem;color:var(--on-accent);background:var(--python-accent);border-radius:50%;grid-row:1/3;place-items:center;font-weight:800;display:grid}.python-learning-roadmap small{color:var(--muted)}.python-learning-roadmap>span{color:var(--python-accent);font-weight:900}.python-concept-visual{border:1px solid color-mix(in srgb, var(--python-accent) 30%, var(--line));background:color-mix(in srgb, var(--python-accent) 5%, var(--surface));border-radius:1rem;margin:1.25rem 0;padding:clamp(1rem,3vw,1.5rem)}.python-visual-heading{justify-content:space-between;gap:1rem;display:flex}.python-visual-heading span,.python-concept-visual>p{color:var(--muted);font-size:.8rem}.python-visual-body{gap:.7rem;margin:1rem 0;display:grid}.python-visual-part{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:.75rem;place-items:center;gap:.25rem;min-width:0;min-height:4.5rem;padding:.8rem;display:grid}.python-visual-part>span{width:1.4rem;height:1.4rem;color:var(--on-accent);background:var(--python-accent);border-radius:50%;place-items:center;font-size:.7rem;font-weight:800;display:grid}.python-concept-visual.flow .python-visual-body{grid-template-columns:repeat(4,minmax(0,1fr))}.python-concept-visual.flow .python-visual-part:not(:last-child):after{content:"→";color:var(--python-accent);font-weight:900;position:absolute;transform:translate(calc(50% + 2.5rem))}.python-concept-visual.flow .python-visual-part{position:relative}.python-concept-visual.compare .python-visual-body,.python-concept-visual.group .python-visual-body{grid-template-columns:repeat(2,minmax(0,1fr))}.python-visual-center{color:var(--python-accent-strong);background:var(--python-soft);border-radius:999px;grid-column:1/-1;justify-self:center;padding:.55rem 1rem}.python-concept-visual.cycle .python-visual-body{grid-template-columns:repeat(4,minmax(0,1fr))}.python-concept-visual.cycle .python-visual-part:nth-child(2n){transform:translateY(.8rem)}.python-cycle-return{color:var(--python-accent-strong);grid-column:1/-1;justify-self:center;font-size:.78rem;font-weight:800}.python-concept-visual>p{margin:0}.python-course-summary,.python-action-card,.python-question-card,.python-complete-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:1rem;padding:1.5rem}.python-course-summary>div:first-child,.python-question-meta,.python-result-actions,.python-complete-card>div{justify-content:space-between;align-items:center;gap:1rem;display:flex}.python-course-summary strong{color:var(--python-accent-strong);font-size:1.4rem}.python-course-summary p{color:var(--muted);margin:.75rem 0 0}.python-progress{background:var(--soft);border-radius:999px;height:.65rem;margin-top:1rem;overflow:hidden}.python-progress span{border-radius:inherit;background:var(--python-accent);height:100%;display:block}.python-lesson-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.python-lesson-link{border:1px solid var(--line);background:var(--surface);border-radius:.8rem;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:7rem;padding:1.15rem;transition:border-color .14s,transform .14s;display:grid}a.python-lesson-link:hover{border-color:var(--python-accent);transform:translateY(-1px)}.python-lesson-link.locked{opacity:.58}.python-lesson-number{color:var(--python-accent);font:700 1.3rem ui-monospace,monospace}.python-lesson-copy{display:grid}.python-lesson-copy small,.python-step-kicker{color:var(--python-accent-strong);font-size:.78rem;font-weight:800}.python-lesson-copy strong{font-size:1.05rem}.python-lesson-copy>span{color:var(--muted)}.python-status{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:800}.python-status.completed,.python-status.in_progress,.python-status.available{border-color:color-mix(in srgb, var(--python-accent) 42%, var(--line));color:var(--python-accent-strong);background:var(--python-soft)}.python-back{color:var(--muted);font-size:.9rem;font-weight:700}.python-lesson-header{margin:1.5rem 0 2rem}.python-lesson-header h1{margin:.25rem 0;font-size:clamp(2rem,5vw,3.25rem);line-height:1.18}.python-lesson-header>p:last-of-type{color:var(--muted)}.python-cycle{grid-template-columns:repeat(4,1fr);gap:.5rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.python-cycle li{border-bottom:3px solid var(--line);min-height:3rem;color:var(--muted);align-items:center;gap:.55rem;padding:.65rem;font-size:.82rem;font-weight:700;display:flex}.python-cycle li span{background:var(--soft);border-radius:50%;place-items:center;width:1.55rem;height:1.55rem;display:grid}.python-cycle li.active{border-color:var(--python-accent);color:var(--python-accent-strong)}.python-cycle li.active span{color:var(--on-accent);background:var(--python-accent)}.python-concept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0 2rem;display:grid}@media (width<=700px){.python-learning-roadmap{grid-template-columns:1fr}.python-learning-roadmap>span{text-align:center;transform:rotate(90deg)}.python-concept-visual.flow .python-visual-body,.python-concept-visual.cycle .python-visual-body{grid-template-columns:1fr}.python-concept-visual.flow .python-visual-part:not(:last-child):after{bottom:-1rem;right:50%;transform:rotate(90deg)translateY(-50%)}.python-concept-visual.cycle .python-visual-part:nth-child(2n){transform:none}}.python-concept-grid article{border:1px solid var(--line);background:var(--surface);border-radius:.85rem;padding:1.25rem}.python-concept-grid article>span{color:var(--python-accent);font:700 .8rem ui-monospace,monospace}.python-concept-grid h3{margin:.25rem 0 .4rem}.python-concept-grid p,.python-example h2,.python-action-card h2{margin-top:0}.python-concept-grid details{color:var(--muted);margin-top:1rem}.python-concept-grid summary{color:var(--python-accent-strong);cursor:pointer;font-weight:700}.python-example{grid-template-columns:minmax(0,1.5fr) minmax(12rem,.7fr);gap:0;margin:2rem 0;display:grid}.python-example>div:first-child{grid-column:1/-1}.python-example>pre,.python-code-files pre{color:#e7edf7;white-space:pre-wrap;background:#172033;margin:0;padding:1.25rem;font:.92rem/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.python-output{color:#dce7f6;background:#222e44;padding:1.25rem}.python-output pre{white-space:pre-wrap}.python-primary,.python-secondary{min-height:3rem;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.65rem;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:800;display:inline-flex}.python-primary,:root[data-theme=dark] .python-primary{color:var(--on-accent);background:var(--python-accent)}.python-secondary{border-color:var(--line);color:var(--text);background:var(--surface)}.python-primary:disabled,.python-secondary:disabled{cursor:wait;opacity:.55}.python-action-card{max-width:42rem}.python-question-card{max-width:52rem;margin:0 auto}.python-question-meta{border-bottom:1px solid var(--line);color:var(--muted);padding-bottom:1rem;font-size:.82rem}.python-question-meta strong{color:var(--python-accent-strong)}.python-question-card h2{margin:1.5rem 0}.python-code-files{margin:1.25rem 0}.python-code-files article>span{color:#c7d6ec;background:#111827;padding:.5rem .8rem;font:.78rem ui-monospace,monospace;display:block}.python-options{border:0;gap:.65rem;margin:0 0 1.25rem;padding:0;display:grid}.python-options label{border:1px solid var(--line);cursor:pointer;border-radius:.65rem;grid-template-columns:auto 1.75rem minmax(0,1fr);align-items:center;gap:.6rem;min-height:3.5rem;padding:.75rem;display:grid}.python-options label:has(input:checked){border-color:var(--python-accent);background:var(--python-soft)}.python-options input{accent-color:var(--python-accent)}.python-options code{overflow-wrap:anywhere;white-space:pre-wrap}.python-short-answer{gap:.4rem;margin-bottom:1rem;font-weight:700;display:grid}.python-short-answer input{border:1px solid var(--line);min-height:3rem;color:var(--text);background:var(--surface);font:inherit;border-radius:.5rem;padding:.7rem}.python-result{border-left:4px solid var(--python-accent);background:var(--python-soft);margin-top:1.5rem;padding:1.2rem}.python-result.wrong{border-left-color:var(--coral)}.python-result>p{margin:.5rem 0}.python-result details{margin:.75rem 0}.python-result-actions{justify-content:flex-start;margin-top:1rem}.python-inline-error{color:var(--coral);margin-top:1rem;font-weight:700}.python-complete-card{text-align:center;max-width:40rem;margin:0 auto}.python-complete-card>span{width:4rem;height:4rem;color:var(--on-accent);background:var(--python-accent);border-radius:50%;place-items:center;margin:0 auto 1rem;font-size:2rem;display:grid}.python-complete-card>div{justify-content:center;margin-top:1.5rem}@media (width<=700px){.python-lesson-link{grid-template-columns:2.5rem minmax(0,1fr)}.python-status{grid-column:2;width:fit-content}.python-cycle{grid-template-columns:repeat(2,1fr)}.python-concept-grid,.python-example{grid-template-columns:1fr}.python-result-actions,.python-complete-card>div{flex-direction:column;align-items:stretch}.python-primary,.python-secondary{width:100%}}.catalog-tools{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(9rem,1fr));gap:1rem;margin-bottom:2rem;padding:1.25rem;display:grid}.catalog-tools label{gap:.45rem;font-weight:700;display:grid}.catalog-tools input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);width:100%;min-width:0;min-height:44px;color:var(--text);background:var(--surface);padding:.6rem .75rem}.catalog-filter-help{color:var(--muted);grid-column:1/-1;margin:0;font-size:.86rem}.catalog-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.term-results{gap:.75rem;display:grid}.catalog-result-count{color:var(--muted);margin:0 0 .25rem;font-size:.86rem;font-weight:800}.catalog-groups{gap:.75rem;display:grid}.catalog-groups>details>summary{min-height:3.5rem;color:var(--brand-strong);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.catalog-groups>details>summary span{color:var(--muted);font-size:.84rem}.catalog-groups>details[open]>summary{border-bottom:1px solid var(--line)}.catalog-groups>details>.catalog-grid{padding:1rem}.catalog-card,.term-detail,.mistake-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:1.4rem}.catalog-card{flex-direction:column;min-height:245px;display:flex}.catalog-card>p:last-of-type{margin-bottom:1.25rem}.catalog-card h2,.mistake-card h2{margin:.3rem 0 .65rem;font-size:1.12rem}.catalog-card .primary-button,.catalog-card .text-button{border-radius:var(--radius-pill);align-self:flex-end;align-items:center;min-height:44px;margin-top:auto;padding:.65rem .9rem;display:inline-flex}.catalog-card .text-button{background:var(--soft)}.term-translation{color:var(--green);margin:-.35rem 0 .7rem;font-size:.9rem;font-weight:800}.catalog-filter{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.catalog-filter button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-height:44px;color:var(--text);padding:.55rem 1rem}.catalog-filter button.active{border-color:var(--green);color:var(--dark-green);font-weight:800}.term-detail{padding:clamp(1.25rem,3vw,2rem);font-size:1rem;line-height:1.8}.term-detail h2{margin:.15rem 0 .65rem;font-size:1.05rem}.term-explanations,.term-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.term-explanations article,.term-context-grid>section{border-radius:var(--radius-md);background:var(--soft);padding:1.2rem}.term-context-grid{margin-top:1rem}.term-facts{gap:.55rem;margin:0;display:grid}.term-facts div{grid-template-columns:6rem minmax(0,1fr);gap:.75rem;display:grid}.term-facts dt{color:var(--muted);font-size:.85rem;font-weight:700}.term-facts dd{margin:0;font-weight:700}.related-terms{flex-wrap:wrap;gap:.5rem;display:flex}.related-terms a{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:.45rem .7rem;line-height:1.35;display:grid}.related-terms span{color:var(--muted);font-size:.75rem}.term-sources{border-left:3px solid var(--green);margin-top:1rem;padding:1rem 1.2rem}.term-sources a{color:var(--dark-green);font-weight:800}.related-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:1rem;margin:1.5rem -.25rem -.25rem;padding:1.25rem .25rem .25rem;display:flex}.related-actions>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.secondary-button{border:1px solid var(--line);border-radius:var(--radius-md);width:fit-content;min-height:3.15rem;color:var(--dark-green);background:var(--surface);justify-content:center;align-items:center;padding:.75rem 1rem;font-weight:800;display:inline-flex}.mistake-list{gap:1rem;display:grid}.mistake-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.mistake-card .status{color:var(--coral);font-weight:800}@media (width<=600px){.catalog-tools,.mistake-card,.term-explanations,.term-context-grid{grid-template-columns:1fr}.related-actions>a,.mistake-card>a{width:100%}.related-actions{flex-direction:column;align-items:stretch}.related-actions>div:last-child{display:grid}.related-actions .primary-button,.related-actions .secondary-button{width:100%}.catalog-card .primary-button,.catalog-card .text-button{justify-content:center;width:100%}}@media (width<=1199px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;height:auto;padding:.8rem 2rem;display:grid;position:sticky}.primary-nav{justify-content:center;margin:0;display:flex}.nav-link{min-height:2.8rem;padding:.65rem .9rem}.settings-link{margin:0}.page-content{padding-top:3.5rem}}@media (width<=767px){.sidebar{display:none}.mobile-header{z-index:10;min-height:calc(62px + var(--safe-area-top));padding:var(--safe-area-top) calc(1rem + var(--safe-area-right)) 0 calc(1rem + var(--safe-area-left));border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.mobile-header .brand{font-size:.82rem}.icon-button{place-items:center;min-width:2.75rem;min-height:2.75rem;padding:.6rem;display:grid}.page-content{width:auto;max-width:600px;margin-right:max(1rem, var(--safe-area-right));margin-left:max(1rem, var(--safe-area-left));padding:2.5rem 0 7rem}.page-heading{margin-bottom:1.8rem}.iphone-install-guide{display:block}.guide-dismiss{width:100%;margin-top:.8rem}.page-heading h1{font-size:2rem}.focus-header strong{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;overflow:hidden}.focus-stepper{padding:.7rem 1rem}.focus-stepper ol{justify-content:flex-start}.current-step-name{width:fit-content;color:var(--green);margin:.5rem 0 0;font-size:.78rem;font-weight:800;display:block;position:sticky;left:0}.step-marker{grid-template-columns:1fr;justify-items:center;min-width:2.75rem;min-height:2.75rem;padding:.35rem;display:grid}.step-marker small{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.focus-content{border-radius:0;width:calc(100% - 1rem);margin:.5rem auto 6.5rem;padding:1.25rem}.problem-workspace{grid-template-columns:minmax(0,1fr)}.hero-card{border-radius:.75rem;min-height:0;padding:1.6rem;display:block}.hero-card h2{font-size:1.75rem}.code-illustration{display:none}.primary-button{width:100%}.summary-grid{grid-template-columns:1fr}.summary-card{border-right:0;border-bottom:1px solid var(--line);min-height:170px}.summary-card:last-child{border-bottom:0}.section-block{margin-top:3rem}.section-title h2{font-size:1.3rem}.tip{align-items:flex-start}.bottom-nav{height:calc(68px + var(--safe-area-bottom));padding:.35rem calc(.5rem + var(--safe-area-right)) max(.35rem, var(--safe-area-bottom)) calc(.5rem + var(--safe-area-left));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-link{min-width:0;min-height:44px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.66rem;display:flex}.bottom-link .icon{width:1.25rem}.bottom-link.active{color:var(--green);font-weight:800}.lesson-row{grid-template-columns:auto 1fr}.lesson-row>:last-child{grid-column:2}.lesson-row .primary-button{width:fit-content}.history-list article{grid-template-columns:1fr auto}.history-list time{grid-column:1/-1;margin-bottom:.6rem}.focus-header{min-height:calc(64px + var(--safe-area-top));padding:var(--safe-area-top) calc(1rem + var(--safe-area-right)) 0 calc(1rem + var(--safe-area-left))}.focus-content{margin-bottom:calc(6.5rem + var(--safe-area-bottom));padding-top:1.5rem;padding-bottom:1.5rem}.problem-intro h1{margin-top:.45rem;font-size:1.7rem;line-height:1.25}.problem-intro .lead{font-size:1rem;line-height:1.6}.problem-goal{margin-top:1rem;padding:.85rem 1rem}.code-block{overflow-wrap:anywhere;white-space:pre-wrap;overflow-x:hidden}.focus-footer{padding:1rem calc(1rem + var(--safe-area-right)) calc(1rem + var(--safe-area-bottom)) calc(1rem + var(--safe-area-left))}.focus-footer .primary-button{width:auto}.focus-footer .quiet-button{padding:0 1rem}.editor-heading{grid-template-columns:1fr;align-items:center;gap:.65rem;padding:.9rem 1rem .75rem;display:grid}.editor-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.editor-actions button{min-height:2.75rem;padding-inline:.5rem;font-size:.82rem}.editor-card:not(.fullscreen){border-left:0;border-right:0;border-radius:0;margin-left:-1.25rem;margin-right:-1.25rem}.practice-reminder{z-index:2;position:sticky;top:0}.practice-reminder ul{gap:.2rem;display:grid}.editor-host,.editor-host .cm-editor,.editor-host .cm-scroller{min-height:12rem}.editor-host .cm-editor{font-size:1.08rem}.editor-host .cm-content{padding:.8rem 0}.editor-card.fullscreen{height:100dvh}.editor-card.fullscreen .editor-heading,.editor-card.fullscreen .editor-keyboard-help,.editor-card.fullscreen .mobile-code-keys,.editor-card.fullscreen .execution-panel,.editor-card.fullscreen .submission-panel{flex-shrink:0}.editor-card.fullscreen .editor-host,.editor-card.fullscreen .editor-host .cm-editor,.editor-card.fullscreen .editor-host .cm-scroller{flex:none;min-height:42dvh}.execution-heading{grid-template-columns:1fr;align-items:start;display:grid}.execution-heading>:first-child{min-width:0}.execution-heading .execution-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.execution-heading .execution-actions button{min-height:2.75rem}.mobile-code-keys{display:flex}.execution-panel,.submission-panel{border-bottom:0;border-left:0;border-right:0;border-radius:0;margin:0}.execution-output{min-height:5rem}.submission-panel{padding:1rem}.submission-panel>p{margin-bottom:.5rem}.submission-panel .execution-actions{display:block}.submission-panel .run-button{width:100%;margin:.75rem 0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.space-return{min-height:2.75rem;color:var(--green);align-items:center;margin-bottom:1.25rem;padding:.45rem 0;display:inline-flex}.learning-spaces{border-top:1px solid var(--line)}.learning-space{border-bottom:1px solid var(--line);overflow-wrap:anywhere;grid-template-columns:minmax(10rem,.65fr) minmax(16rem,1.5fr) auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);padding:2rem 0;display:grid}.spaces-heading{margin-bottom:1.5rem}.spaces-current-action{margin-bottom:2.5rem}.resume-learning{border-left:4px solid var(--green);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1.5rem;margin-bottom:2.5rem;padding:1.5rem 0 1.5rem 1.25rem;display:grid}.resume-learning .eyebrow,.resume-learning h2,.resume-learning p{margin:0}.resume-learning h2{margin-top:.25rem;font-size:1.35rem}.resume-learning div>p:last-child{color:var(--muted);margin-top:.35rem}.spaces-resume-error{color:var(--danger);justify-content:space-between;align-items:center;gap:1rem;margin:-1.5rem 0 2rem;display:flex}.spaces-resume-error button{flex:none}.space-index{letter-spacing:.04em;align-self:start;margin:0;font-size:.82rem;font-weight:800;color:var(--green)!important}.space-copy{min-width:0}.learning-space h2{margin:0 0 .35rem;font-size:1.45rem}.learning-space p{color:var(--muted);margin:0;line-height:1.75}.learning-space .space-detail{margin-top:.4rem;font-size:.86rem}.learning-space a{min-width:12.5rem}@media (width<=767px){.resume-learning{grid-template-columns:1fr;align-items:stretch}.resume-learning a{width:100%}.spaces-resume-error{align-items:flex-start}.learning-space{grid-template-columns:1fr;gap:.6rem;padding:1.6rem 0}.learning-space a{width:100%;min-width:0;margin-top:.65rem}}.kt-ax-list{border-top:1px solid var(--line)}.kt-ax-current-action{max-width:46rem;margin-bottom:2rem}.kt-ax-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.45fr) minmax(16rem,1.5fr) auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);padding:2rem 0;display:grid}.kt-ax-date{color:var(--green);align-self:start;margin:0;font-size:.82rem;font-weight:800}.kt-ax-item-copy h2{margin:0 0 .35rem;font-size:1.4rem}.kt-ax-item-copy>p{color:var(--muted);margin:0}.kt-ax-item>a{min-width:12rem}.kt-ax-status,.kt-ax-checks{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.kt-ax-status span{color:var(--muted);font-size:.84rem}.kt-ax-actions,.kt-summary-layout{overflow-wrap:anywhere;margin-bottom:1.5rem;line-height:1.8}.kt-ax-actions{border-left:3px solid var(--green);background:var(--soft);max-width:46rem;padding:1.25rem 1.5rem}.kt-summary-layout{border-top:1px solid var(--line);grid-template-columns:minmax(11rem,.34fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);max-width:68rem;padding-top:1rem;display:grid}.kt-summary-toc{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;padding:1rem;position:sticky;top:1rem}.kt-summary-toc ol{margin:.7rem 0 0;padding-left:1.25rem}.kt-summary-toc li{margin:.35rem 0}.kt-summary-toc li[data-level="3"]{margin-left:.75rem;font-size:.88rem}.kt-summary-toc a{color:var(--brand-strong)}.kt-ax-summary{min-width:0}.kt-ax-summary h3{margin-top:2rem}.kt-ax-summary a{color:var(--green);text-decoration:underline}.kt-ax-summary pre{background:var(--soft);padding:1rem;overflow:auto}.kt-ax-summary blockquote{border-left:3px solid var(--green);margin-left:0;padding-left:1rem}.kt-ax-table{max-width:100%;overflow-x:auto}.kt-ax-table table{border-collapse:collapse;width:100%}.kt-ax-table th,.kt-ax-table td{border:1px solid var(--line);text-align:left;vertical-align:top;min-width:7rem;padding:.75rem}.kt-ax-checks label{cursor:pointer;align-items:center;gap:.6rem;min-height:44px;display:flex}.kt-ax-checks input{width:1.2rem;height:1.2rem;accent-color:var(--green)}@media (width<=767px){.kt-summary-layout{grid-template-columns:minmax(0,1fr)}.kt-summary-toc{position:static}.kt-ax-item{grid-template-columns:minmax(0,1fr);gap:.6rem;padding:1.6rem 0}.kt-ax-item>a{width:100%;min-width:0;margin-top:.65rem}.kt-ax-actions{padding:1rem}}.account-page,.account-loading{min-height:100dvh;padding:calc(clamp(1rem, 4vw, 3.5rem) + var(--safe-area-top)) calc(1rem + var(--safe-area-right)) calc(clamp(1rem, 4vw, 3.5rem) + var(--safe-area-bottom)) calc(1rem + var(--safe-area-left));background:radial-gradient(circle at 9% 12%,#9dc2a245,#0000 22rem),radial-gradient(circle at 92% 86%,#f5c57e33,#0000 25rem),#f7f4ed;place-items:center;display:grid;position:relative;overflow:hidden}.account-shell{-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#fffefac7;border:1px solid #2349381f;border-radius:1.8rem;grid-template-columns:minmax(0,1fr) minmax(22rem,.88fr);width:min(100%,64rem);min-height:min(42rem,100dvh - 5rem);display:grid;overflow:hidden;box-shadow:0 1.5rem 4rem #1f312621}.account-card{background:0 0;align-self:center;min-width:0;padding:clamp(2rem,5vw,4.25rem)}.account-symbol{background:linear-gradient(145deg,#e6f0e3,#f8f3e8);border-radius:1rem;place-items:center;width:3rem;height:3rem;margin-bottom:1.6rem;display:grid;box-shadow:inset 0 0 0 1px #1f5b3b1a}.account-symbol img{width:2.35rem;height:2.35rem}.login-intro{gap:0;display:grid}.login-brand{color:#175438;letter-spacing:.16em;align-items:center;margin-bottom:1.15rem;font-size:.7rem;font-weight:900;line-height:1;display:inline-flex}.account-card--login .login-intro h1{letter-spacing:-.05em;text-wrap:balance;margin:0;font-size:clamp(2.35rem,8vw,3.2rem);line-height:1.1}.account-card h1{color:#193627;letter-spacing:-.055em;text-wrap:balance;word-break:keep-all;margin:.55rem 0;font-size:clamp(2rem,6vw,2.75rem);line-height:1.16}.account-card>p:not(.eyebrow){max-width:31rem;color:color-mix(in srgb, var(--muted) 90%, #315842);margin:.75rem 0 0;font-size:1rem;line-height:1.7}.account-page-intro>p:last-child{color:color-mix(in srgb, var(--muted) 90%, #315842);text-wrap:pretty;word-break:keep-all;margin:.8rem 0 0;line-height:1.7}.signup-journey{color:#8a928b;letter-spacing:-.02em;border-top:1px solid #23493821;border-bottom:1px solid #23493821;gap:clamp(.75rem,2vw,1.45rem);margin:2rem 0 0;padding:.85rem 0;font-size:.72rem;font-weight:750;display:flex}.signup-journey span{text-wrap:pretty;white-space:nowrap;line-height:1.4}.signup-journey b{color:#b2b8b1;margin-right:.25rem;font-family:ui-monospace,monospace;font-size:.66rem}.signup-journey .is-current,.signup-journey .is-current b{color:#1b6a45}.account-form,.account-form label,.account-field,.share-link label{gap:.45rem;display:grid}.account-form{gap:1.25rem;margin-top:2rem}.account-form--signup{margin-top:1.8rem}.account-form label,.account-field>label,.account-settings label,.share-link label{color:#254333;letter-spacing:-.02em;font-size:.84rem;font-weight:800}.account-form input,.account-settings input,.share-link input{width:100%;min-height:3.4rem;color:var(--text);font:inherit;background:#ffffffb3;border:1px solid #dcded6;border-radius:.85rem;padding:.8rem 1rem;transition:border-color .16s,box-shadow .16s,background .16s}.account-form input:focus,.account-settings input:focus,.share-link input:focus{background:#fffefa;border-color:#2d7d55;outline:0;box-shadow:0 0 0 .24rem #4a906524}.password-input{position:relative}.password-input input{padding-right:3.25rem}.password-toggle{color:#276849;cursor:pointer;background:0 0;border:0;width:2.75rem;min-height:2.75rem;padding:0;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--green);background:0 0}.password-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;width:1.05rem;height:1.05rem}.account-form small,.user-list span{color:var(--muted)}.account-form small{text-wrap:pretty;word-break:keep-all;font-size:.76rem;line-height:1.55}.account-form .primary-button,.account-back-link{width:100%}.account-card .primary-button{color:#fbfdf9;letter-spacing:-.02em;white-space:nowrap;background:linear-gradient(115deg,#1b6240,#287952);border:0;border-radius:.9rem;min-height:3.5rem;margin-top:.25rem;font-size:1rem;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s;box-shadow:0 .8rem 1.4rem #2269463d}.account-card .primary-button:hover:not(:disabled){background:linear-gradient(115deg,#154d32,#206442);transform:translateY(-.12rem);box-shadow:0 1rem 1.8rem #2269464a}.account-card .primary-button:disabled{cursor:wait;opacity:.7}.account-help{border-top:1px solid #23493821;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.9rem;padding:1.2rem 0 0;display:flex}.account-help p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.account-help a{color:#1d6745;white-space:nowrap;flex:none;font-size:.88rem;font-weight:750;text-decoration:none}.account-help a span{margin-left:.15rem;transition:transform .18s;display:inline-block}.account-help a:hover span{transform:translate(.18rem)}.account-back-link{margin-top:1.25rem}.account-error{border:1px solid color-mix(in srgb, var(--danger) 24%, transparent);color:color-mix(in srgb, var(--danger) 88%, #431d1d);background:color-mix(in srgb, var(--danger) 7%, transparent);border-radius:.75rem;margin:-.2rem 0 0;padding:.75rem .9rem;font-weight:700}.account-visual{isolation:isolate;color:#f7fbf4;background:radial-gradient(circle at 12% 11%,#e8bf6952,#0000 16rem),linear-gradient(145deg,#173f2d 0%,#1e6544 53%,#238052 100%);flex-direction:column;justify-content:end;padding:clamp(2.5rem,5vw,4.25rem);display:flex;position:relative;overflow:hidden}.account-visual:before,.account-visual:after{z-index:-1;content:"";border:1px solid #f4f7e92e;border-radius:50%;position:absolute}.account-visual:before{width:28rem;height:28rem;top:-14rem;right:-13rem}.account-visual:after{width:18rem;height:18rem;bottom:-10rem;right:-8rem}.account-visual__glow{background:#f8e1a3e6;border-radius:50%;width:5rem;height:5rem;position:absolute;top:3rem;right:2.5rem;box-shadow:0 0 0 .8rem #f8e1a31a,0 0 4rem #f8e1a366}.account-visual__eyebrow{color:#c8dece;letter-spacing:.13em;margin:0 0 1.25rem;font-size:.63rem;font-weight:800}.account-visual h2{letter-spacing:-.065em;text-wrap:balance;word-break:keep-all;max-width:9em;margin:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.17}.account-visual>p:not(.account-visual__eyebrow){color:#f4faf2c2;text-wrap:pretty;word-break:keep-all;max-width:19rem;margin:1.35rem 0 0;font-size:.9rem;line-height:1.7}.account-visual__rule{background:#f2faef3d;width:100%;max-width:19rem;height:1px;margin:2.2rem 0 1rem}.account-visual__note{align-items:center;gap:.75rem;display:flex}.account-visual__note span{color:#e6c986;font-family:ui-monospace,monospace;font-size:.7rem}.account-visual__note p{color:#f5faf3cc;text-wrap:pretty;margin:0;font-size:.75rem;font-weight:700;line-height:1.45}.account-heading{border:1px solid color-mix(in srgb, var(--green) 22%, var(--line));background:radial-gradient(circle at 100% 0, color-mix(in srgb, var(--green) 15%, transparent), transparent 38%), var(--surface);max-width:none;box-shadow:var(--shadow);border-radius:1.25rem;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.25rem;padding:clamp(1.4rem,4vw,2.25rem);display:flex}.account-heading .eyebrow,.account-section-heading .eyebrow{margin-bottom:.4rem}.account-heading h1{margin:0}.account-heading p:last-child{max-width:35rem;color:var(--muted);margin:.6rem 0 0}.account-identity{border:1px solid color-mix(in srgb, var(--green) 22%, var(--line));background:color-mix(in srgb, var(--green) 6%, var(--surface));border-radius:.9rem;align-items:center;gap:.7rem;min-width:10rem;padding:.75rem .9rem;display:flex}.account-avatar{width:2.7rem;height:2.7rem;color:var(--on-accent);background:var(--green);border-radius:50%;place-items:center;font-size:1.1rem;font-weight:800;display:grid}.account-identity>span:last-child{min-width:0;line-height:1.35;display:grid}.account-identity strong,.account-identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-identity small{color:var(--muted);margin-top:.15rem}.account-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.account-section-heading{grid-column:1/-1;justify-content:space-between;align-items:end;gap:1rem;margin:1.5rem 0 .2rem;display:flex}.account-section-heading h2{letter-spacing:-.02em;margin:0;font-size:1.15rem}.account-section-heading>span{color:var(--muted);font-size:.82rem}.account-summary article,.admin-panel{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;align-content:space-between;min-height:7.5rem;padding:1.1rem 1.2rem;display:grid;box-shadow:0 .4rem 1.1rem #23344f0a}.account-summary-loading{color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:.75rem;grid-column:1/-1;margin:0;padding:1.25rem}.account-summary strong,.account-summary span{display:block}.account-summary strong{color:var(--dark-green);letter-spacing:-.04em;font-size:clamp(1.6rem,4vw,2rem);line-height:1.05}.account-summary span{color:var(--muted);font-size:.84rem;font-weight:700}.account-settings,.admin-panel{margin-top:1.5rem}.share-link,.user-list article,.user-list article>div{align-items:end;gap:.75rem;display:flex}.account-settings{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:1rem;gap:1rem;padding:1.25rem;display:grid}.account-settings .account-section-heading{margin:0 0 .2rem}.account-profile-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.account-profile-form label{min-width:0}.account-settings-actions{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;padding-top:1.1rem;display:flex}.account-settings-actions strong{color:var(--text);overflow-wrap:anywhere}.account-notice{border-radius:.7rem;margin:1rem 0 0;padding:.85rem 1rem;font-weight:700}.account-notice.success{color:var(--success);background:color-mix(in srgb, var(--success) 10%, var(--surface))}.account-notice.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.admin-panel h2{margin:.25rem 0 .65rem}.share-link{align-items:end;margin:1rem 0 0}.share-link label{flex:1;min-width:0}.share-link input{text-overflow:ellipsis}.user-list{border-top:1px solid var(--line);margin-top:1.5rem}.user-list article{border-bottom:1px solid var(--line);justify-content:space-between;min-width:0;padding:1rem 0}.user-list article>div:first-child{align-items:start;min-width:0;display:grid}.user-list strong,.user-meta{overflow-wrap:anywhere}.secondary-button.compact{white-space:nowrap;min-height:2.75rem;padding:.55rem .75rem}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.account-link{margin-top:auto}.account-link+.settings-link{margin-top:.35rem}@media (width<=800px){.account-page{padding-top:calc(1.5rem + var(--safe-area-top));padding-bottom:calc(1.5rem + var(--safe-area-bottom));place-items:start center}.account-shell{width:min(100%,40rem);min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;grid-template-columns:1fr;overflow:visible}.account-visual{display:none}.account-card{padding:clamp(1.5rem,7vw,3.25rem)}}@media (width<=640px){.account-page{padding-top:calc(1.25rem + var(--safe-area-top));padding-bottom:calc(1.5rem + var(--safe-area-bottom));background:#f7f4ed;place-items:start center}.account-shell{min-height:0;display:block}.account-visual,.account-invite-link{display:none}.account-card{margin:auto 0;padding:1.35rem 1.25rem 1.85rem}.account-symbol{width:2.7rem;height:2.7rem;margin-bottom:1.25rem}.account-card h1{font-size:clamp(2.15rem,11vw,2.5rem);line-height:1.1}.signup-journey{justify-content:space-between;gap:.25rem;margin-top:1.65rem;font-size:.68rem}.signup-journey span{text-align:center;flex:1 1 0}.signup-journey b{margin:0 0 .18rem;display:block}.account-form--signup{gap:1.35rem;margin-top:1.6rem}.account-form--signup input{border-radius:.95rem;min-height:3.6rem}.account-form--signup .primary-button{border-radius:1rem;min-height:3.75rem;margin-top:.45rem}.account-card--login{padding:1.5rem 1.35rem}.login-brand{margin-bottom:1rem}.login-intro{gap:0}.account-card--login .account-form{margin-top:2rem}.account-help{align-items:flex-start;padding:.95rem 1rem}.account-card--login .account-help{justify-content:flex-start;padding-inline:0}.account-card--login .account-help p{display:none}.account-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.account-heading{border-radius:1rem;align-items:start;gap:1rem;padding:1.3rem;display:grid}.account-heading p:last-child{margin-top:.45rem;font-size:.94rem;line-height:1.55}.account-identity{width:100%;min-width:0;padding:.65rem .75rem}.account-section-heading{align-items:start;margin-top:1.25rem}.account-section-heading>span{text-align:right;max-width:8rem;line-height:1.4}.account-summary article{border-radius:.8rem;min-height:6.7rem;padding:.9rem}.account-summary strong{font-size:1.55rem}.account-summary span{font-size:.76rem;line-height:1.35}.account-settings{border-radius:.9rem;padding:1rem}.account-settings .account-section-heading{margin-top:0}.account-profile-form,.account-settings-actions,.share-link,.user-list article{align-items:stretch;display:grid}.account-profile-form .secondary-button,.share-link .secondary-button{width:100%}.account-settings-actions .quiet-button{justify-self:start;min-height:2.75rem}.user-list article>div:last-child{flex-wrap:wrap;width:100%}}.task-status-page{width:min(100%,46rem);margin:0 auto}.task-status-heading{margin-bottom:1.5rem}.task-status-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,7vw,3.2rem);line-height:1.15}.task-status-heading>p:last-child{color:var(--muted);line-height:1.65}.task-status-card,.task-status-message{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:1.25rem;padding:clamp(1.25rem,4vw,2rem)}.task-status-card.problem,.task-status-message.problem{border-color:color-mix(in srgb, var(--coral) 55%, var(--line))}.task-status-summary{align-items:flex-start;gap:.9rem;display:flex}.task-status-summary p,.task-status-summary h2{margin:0}.task-status-summary p{color:var(--muted);margin-bottom:.35rem;font-size:.9rem;font-weight:700}.task-status-summary h2{overflow-wrap:anywhere;font-size:clamp(1.35rem,4vw,1.8rem);line-height:1.3}.task-status-indicator{background:var(--green);width:.85rem;height:.85rem;box-shadow:0 0 0 .35rem color-mix(in srgb, var(--green) 15%, transparent);border-radius:50%;flex:none;margin-top:.4rem}.task-status-card.problem .task-status-indicator{background:var(--coral);box-shadow:0 0 0 .35rem color-mix(in srgb, var(--coral) 15%, transparent)}.task-status-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.task-status-details>div{background:var(--soft);border-radius:.85rem;min-width:0;padding:1rem}.task-status-details dt{color:var(--muted);margin-bottom:.35rem;font-size:.78rem;font-weight:700}.task-status-details dd{overflow-wrap:anywhere;margin:0;font-weight:700;line-height:1.45}.task-progress{margin-top:1.25rem}.task-progress-label{justify-content:space-between;align-items:center;margin-bottom:.55rem;display:flex}.task-progress-track{background:var(--soft);border-radius:999px;height:.85rem;overflow:hidden}.task-progress-track span{border-radius:inherit;background:var(--green);height:100%;transition:width .3s;display:block}.task-status-card.problem .task-progress-track span{background:var(--coral)}.task-status-refresh,.task-status-message button{border:1px solid var(--line);min-height:2.75rem;color:var(--text);background:var(--surface);cursor:pointer;border-radius:.75rem;margin-top:1.5rem;padding:.65rem 1rem;font-weight:700}.task-status-message strong{font-size:1.15rem;display:block}.task-status-message p{color:var(--muted);margin-bottom:0;line-height:1.65}.task-status-privacy{color:var(--muted);margin:1.25rem 0 0;font-size:.82rem;line-height:1.6}@media (width<=640px){.task-status-details{grid-template-columns:1fr}.task-status-refresh,.task-status-message button{width:100%}}@media (prefers-reduced-motion:reduce){.task-progress-track span{transition:none}}body{text-rendering:optimizelegibility}::selection{color:var(--text);background:color-mix(in srgb, var(--green) 24%, var(--surface))}.page-content{width:min(1120px,100% - 5rem)}.page-heading{margin-bottom:2.25rem}.page-heading h1,.python-lesson-header h1{text-wrap:balance}.page-heading>p:last-child{max-width:42rem}.eyebrow{letter-spacing:.09em;margin-bottom:.55rem}.sidebar{padding-inline:1.25rem}.nav-link{border-radius:var(--radius-md);border:1px solid #0000}.nav-link:hover,.nav-link.active,:root[data-theme=dark] .nav-link.active{border-color:color-mix(in srgb, var(--green) 32%, var(--line));color:var(--dark-green);background:color-mix(in srgb, var(--green) 12%, var(--surface))}.primary-button,.secondary-button,.python-primary,.python-secondary,.guide-dismiss{border-radius:var(--radius-md);transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s}.primary-button:hover,a.python-lesson-link:hover{box-shadow:0 .45rem 1rem color-mix(in srgb, var(--green) 20%, transparent);transform:translateY(-1px)}.secondary-button:hover,.python-secondary:hover{border-color:var(--green);background:var(--soft)}.secondary-button:hover,.python-secondary:hover,.guide-dismiss:hover{transform:translateY(-1px)}.catalog-card,.knowledge-item,.concept-card,.summary-card,.settings-card{transition:border-color .18s,box-shadow .18s,transform .18s}@media (hover:hover){.catalog-card:hover,.knowledge-item:hover,.concept-card:hover,.summary-card:hover{border-color:color-mix(in srgb, var(--green) 38%, var(--line));box-shadow:var(--shadow-raised);transform:translateY(-2px)}}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:3px;outline-width:2px}.empty-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-height:16rem;box-shadow:var(--shadow);padding:3rem}.pagination{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1.25rem;display:grid}.pagination p{color:var(--muted);text-align:center;margin:0}.pagination button{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--dark-green);background:var(--surface);cursor:pointer;padding:.55rem .9rem;font-weight:800}.pagination button:disabled{color:var(--muted);opacity:.55;cursor:not-allowed}@media (width<=380px){.pagination{gap:.35rem}.pagination button{padding-inline:.65rem}.pagination p span{display:block}}.settings-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.25rem 1.4rem}.iphone-install-guide{border:1px solid color-mix(in srgb, var(--green) 30%, var(--line));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--green) 7%, var(--surface));box-shadow:var(--shadow);padding:1.25rem 1.4rem}.account-heading,.account-settings,.admin-panel,.account-summary article,.account-summary-loading{border-radius:var(--radius-lg);box-shadow:var(--shadow)}.account-heading,.account-settings,.admin-panel,.account-summary article{border:1px solid var(--line);background:var(--surface)}.account-summary{gap:1rem}@media (width<=767px){.page-content{width:auto}.settings-card{padding:1rem}}@media (width<=400px){.settings-card{flex-direction:column;align-items:stretch;gap:.75rem}.settings-card .select-field{width:100%}.settings-card .toggle{align-self:flex-end}}.spaces-heading{max-width:52rem}.resume-learning{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:1.5rem}.learning-space{grid-template-columns:minmax(8rem,.42fr) minmax(16rem,1.5fr) auto;padding-block:2.25rem}.space-index,.kt-ax-date{letter-spacing:.08em;font-variant-numeric:tabular-nums}.space-detail{letter-spacing:.01em}.hero-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(circle at 92% 12%, var(--surface-lilac), transparent 34%), radial-gradient(circle at 82% 92%, var(--surface-peach), transparent 30%), var(--surface);min-height:0;box-shadow:var(--shadow-raised);padding:clamp(1.75rem,4vw,3rem);display:block}.hero-copy{max-width:46rem}.hero-kicker{margin:0}.step-label{margin-top:.75rem}.meta-row{border-top:1px solid var(--line);padding-block:.8rem}.summary-card{background:var(--surface);min-height:12rem;padding:1.5rem 1.75rem}.summary-icon{border-radius:var(--radius-md);width:2.75rem;height:2.75rem;color:var(--dark-green)!important;background:var(--soft)!important}.summary-card strong{font-variant-numeric:tabular-nums}.tip{border:1px solid color-mix(in srgb, var(--coral) 24%, var(--line));border-radius:var(--radius-md);background:var(--surface-peach);color:var(--text);padding:1.25rem 1.5rem}:root[data-theme=dark] .tip{border-color:var(--line);background:var(--surface-peach);color:var(--text)}@media (width<=767px){.learning-space{grid-template-columns:1fr}.hero-card{padding-inline:1.4rem}}.concept-topic-section{margin-top:3rem}.concept-course-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-height:0;box-shadow:var(--shadow-raised);grid-template-columns:minmax(0,1fr) minmax(19rem,.72fr);padding:clamp(1.5rem,4vw,3rem)}.concept-course-copy h2{max-width:18ch;margin-block:1.25rem .75rem}.course-meta{color:var(--muted);gap:0}.course-meta span,.quiz-count{color:var(--muted);background:0 0;border:0;border-radius:0;padding:0;font-size:.78rem;font-weight:700}.course-meta span+span:before{color:var(--line);content:"/";margin-inline:.6rem}.course-status{margin-block:1.25rem}.course-status span[aria-hidden=true]{display:none}.concept-course-card .course-overview{border:1px solid color-mix(in srgb, var(--green) 24%, var(--line));border-radius:var(--radius-md);background:var(--soft);place-items:stretch stretch;gap:1.5rem;min-height:0;padding:1.5rem;display:grid}.concept-course-card .course-overview>div:first-child{justify-content:initial;margin-bottom:0;display:grid}.course-progress{color:var(--muted);grid-template-columns:1fr auto;align-items:baseline;gap:.35rem 1rem;font-size:.8rem;font-weight:700;display:grid}.course-progress strong{color:var(--text);font-variant-numeric:tabular-nums;grid-area:1/2;font-size:1.05rem}.course-progress strong span{color:var(--muted);font-weight:700}.course-progress-bar{background:var(--line);border-radius:var(--radius-pill);grid-column:1/-1;height:.3rem;margin-top:.35rem;overflow:hidden}.course-progress-bar>span{background:var(--green);height:100%;display:block}.course-progress-summary{border-block:1px solid var(--line);gap:.2rem;padding-block:.85rem;display:grid}.course-progress-summary strong{font-size:.95rem}.course-progress-summary p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.55}.course-flow{color:var(--muted);gap:.45rem;font-size:.76rem;font-weight:700;display:grid}.course-flow ol{grid-template-columns:repeat(auto-fit,minmax(4.5rem,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.course-flow li{justify-items:start;gap:.45rem;min-width:0;display:grid;position:relative}.course-flow li:not(:last-child):after{background:var(--line);content:"";width:calc(100% - 1.35rem);height:1px;position:absolute;top:.58rem;left:1.35rem}.course-flow i{z-index:1;border:1px solid var(--green);width:1.2rem;height:1.2rem;color:var(--dark-green);background:var(--soft);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-style:normal;display:flex;position:relative}.course-flow li.done i{border-color:var(--green);color:var(--on-accent);background:var(--green)}.course-flow li.current i{box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 20%, transparent)}.course-flow li.current strong{color:var(--dark-green)}@media (prefers-reduced-motion:no-preference){.course-progress-bar>span{transform-origin:0;animation:.42s ease-out both course-progress-fill}}@keyframes course-progress-fill{0%{transform:scaleX(.05)}to{transform:scaleX(1)}}.course-flow strong{min-width:0;color:var(--text);font-size:.8rem;font-weight:700;line-height:1.35}.concept-card,.technology-map,.technology-map-disclosure{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.concept-card{border:1px solid var(--line)}.concept-lesson-card{border:0}.concept-writing,.concept-quiz-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:1.5rem}.technology-map-disclosure{border:1px solid var(--line)}.technology-map-disclosure>summary,.technology-map{padding-inline:1.25rem}.technology-paths article{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:1.25rem}.technology-step>a,.technology-step>div{border-radius:var(--radius-md);background:var(--surface)}.lesson-journey li.current>span{box-shadow:none}.lesson-visual,.python-concept-visual{border-radius:var(--radius-lg);box-shadow:var(--shadow)}.quiz-format-icon{border-radius:var(--radius-sm);background:var(--green)}.http-packet span{box-shadow:none}@media (width<=760px){.concept-course-card{padding:1.25rem}.concept-course-card .course-overview{border-top:1px solid var(--line);border-left:0;grid-template-columns:1fr;padding:1.25rem;display:grid}.course-flow{gap:.4rem}.course-flow ol{grid-template-columns:repeat(auto-fit,minmax(4rem,1fr))}}.course-overview:not(.concept-course-card .course-overview),.python-course-summary,.python-action-card,.python-complete-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:1.5rem}.lesson-number,.python-learning-roadmap>a>span,.python-cycle li span,.python-complete-card>span{border-radius:var(--radius-sm)}.python-learning-roadmap>a{border-radius:var(--radius-md);background:var(--surface);min-height:5.5rem}.python-learning-roadmap>a.current{border-color:var(--python-accent);background:var(--python-soft)}.python-lesson-list{border-top:0;gap:.75rem}.python-lesson-link{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-height:6.5rem;padding-inline:1.25rem}.python-status,.status-chip{border:1px solid color-mix(in srgb, var(--green) 25%, var(--line));border-radius:var(--radius-pill);padding:.35rem .7rem;background:var(--soft)!important}.python-concept-grid{border-top:0;gap:.75rem}.python-concept-grid article{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:1.5rem}.python-concept-grid article:nth-child(odd){border-right:1px solid var(--line)}.python-question-card{border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}.focus-shell{background:var(--background)}.focus-content{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.focus-footer{box-shadow:0 -.75rem 2rem color-mix(in srgb, var(--text) 7%, transparent)}.step-marker{border-radius:var(--radius-md)}.step-marker.current{box-shadow:0 0 0 2px color-mix(in srgb, var(--green) 18%, transparent)}.lesson-markdown ul,.lesson-markdown ol,.analogy,.problem-goal,.problem-example{border-radius:var(--radius-md)}@media (width<=700px){.python-concept-grid article:nth-child(odd){border-right:0}}.catalog-tools,.catalog-search{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);padding:1.25rem}.catalog-groups{border-top:0;gap:.75rem}.catalog-groups>details{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.catalog-groups>details>.catalog-grid{padding-inline:1rem}.catalog-grid{border-top:0;gap:.75rem}.catalog-card,.term-detail,.mistake-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:1.5rem}.catalog-card{min-height:14rem}.term-detail{border:1px solid var(--line);padding-inline:1.5rem}.term-explanations article,.term-context-grid>section{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:1.25rem}.related-terms a{border-radius:var(--radius-pill);background:var(--soft)}.catalog-filter button{border-radius:var(--radius-pill)}.kt-ax-item{grid-template-columns:minmax(7rem,.35fr) minmax(16rem,1.5fr) auto}.kt-ax-actions{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-md);background:var(--soft);padding:1.25rem 1.5rem}.kt-summary-toc{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:1rem}.history-list{border-top:0;gap:.75rem}.history-list article,.mistake-card{border-radius:var(--radius-md);background:var(--surface);border-width:1px}.concept-mistake-list{grid-template-columns:1fr;gap:.75rem}.concept-mistake-list .concept-card{border:1px solid var(--line)}@media (width<=767px){.kt-ax-item{grid-template-columns:1fr}}.knowledge-home-heading,.knowledge-heading{max-width:52rem}.knowledge-home-heading h1,.knowledge-heading h1{max-width:19ch}.knowledge-kicker{color:var(--coral);letter-spacing:.11em;text-transform:uppercase;margin:0 0 .55rem;font-size:.74rem;font-weight:800}.knowledge-next{border:1px solid var(--line);border-top:4px solid var(--green);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);justify-content:space-between;align-items:end;gap:2rem;margin:0 0 3.5rem;padding:clamp(1.5rem,4vw,3rem);display:flex}.knowledge-next h2{max-width:20ch;margin:0;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.2}.knowledge-next h2+p{max-width:40rem;color:var(--muted);margin:.9rem 0 0}.learning-action{border:1px solid var(--line);border-top:4px solid var(--green);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);justify-content:space-between;align-items:end;gap:clamp(1.25rem,3vw,2rem);margin:0 0 3.5rem;padding:clamp(1.5rem,4vw,3rem);display:flex}.learning-action h2{max-width:20ch;margin:0;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.2}.learning-action h2+p{max-width:40rem;color:var(--muted);margin:.9rem 0 0;line-height:1.6}.content-state{border-block:1px solid var(--line);color:var(--muted);margin:0 0 3.5rem;padding:clamp(1.25rem,3vw,1.75rem)}.content-state p{margin:0;line-height:1.6}.content-state-error{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));color:var(--text)}.content-state-action{margin-top:1rem}@media (prefers-reduced-motion:no-preference){.learning-action,.knowledge-item,.content-state{animation:.18s ease-out both learning-content-enter}.learning-action .primary-button,.knowledge-link{transition:transform .16s,box-shadow .16s}.learning-action .primary-button:hover,.learning-action .primary-button:focus-visible,.knowledge-link:hover,.knowledge-link:focus-visible{transform:translateY(-2px)}}@keyframes learning-content-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.learning-action{flex-direction:column;align-items:stretch;margin-bottom:2.5rem;padding:1.25rem}.learning-action .primary-button{width:100%}.content-state{margin-bottom:2.5rem}}.knowledge-empty-action{border-block:1px solid var(--line);color:var(--muted);margin:0 0 3.5rem;padding:1.25rem 0}.knowledge-section-heading{margin-bottom:1.3rem}.knowledge-section-heading h2{margin:0;font-size:1.45rem}.knowledge-followups{margin:0 0 3.5rem}.knowledge-followup-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.knowledge-followup-list li{border-bottom:1px solid var(--line)}.knowledge-followup-list a{justify-content:space-between;align-items:baseline;gap:1rem;min-height:4.75rem;padding:1rem 0;display:flex}.knowledge-followup-list span{font-weight:750}.knowledge-followup-list small{color:var(--muted);text-align:right}.knowledge-home-paths{margin-top:3rem}.knowledge-path-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.knowledge-path{border-right:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-rows:auto minmax(0,1fr) auto;min-height:18rem;padding:1.6rem;display:grid}.knowledge-path:nth-child(2n){border-right:0}.knowledge-path-index{color:var(--coral);letter-spacing:.08em;margin:0;font-size:.76rem;font-weight:800}.knowledge-path h2{margin:1.35rem 0 .65rem;font-size:1.45rem;line-height:1.3}.knowledge-path p{color:var(--muted);margin:0}.knowledge-path .knowledge-path-flow{color:var(--text);margin-top:.8rem;font-size:.82rem;font-weight:650}.knowledge-path .primary-button,.knowledge-path .secondary-button{justify-self:end;margin-top:1.5rem}.knowledge-filters{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);flex-wrap:wrap;gap:.5rem;margin:-.5rem 0 2.5rem;padding:1rem;display:flex}.knowledge-explorer{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);gap:1rem;margin:0 0 2.5rem;padding:clamp(1.25rem,3vw,1.75rem);display:grid}.knowledge-search{gap:.4rem;font-size:.84rem;font-weight:750;display:grid}.knowledge-search input{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;color:var(--text);background:var(--surface);font:inherit;padding:.55rem .75rem}.knowledge-mobile-scope{display:none}.knowledge-paths{flex-wrap:wrap;gap:.5rem;display:flex}.knowledge-paths button,.knowledge-reset{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;padding:.45rem .8rem;font-weight:750}.knowledge-paths button[aria-pressed=true],.knowledge-reset{border-color:var(--green);color:var(--dark-green);background:color-mix(in srgb, var(--green) 11%, var(--surface))}.knowledge-paths span{color:var(--muted);font-variant-numeric:tabular-nums}.knowledge-path-description{color:var(--muted);margin:0}.knowledge-facet-row,.knowledge-result-tools{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.knowledge-facet-row .knowledge-filters{box-shadow:none;border:0;margin:0;padding:0}.knowledge-result-tools{border-top:1px solid var(--line);justify-content:space-between;padding-top:1rem}.knowledge-sort{width:min(100%,9rem)}.knowledge-sort .select-field{gap:.25rem;font-size:.84rem}.knowledge-sort .select-trigger{background:var(--surface);min-height:44px;padding-inline:.75rem}.knowledge-sort .select-trigger:hover,.knowledge-sort .select-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--green) 42%, var(--line));background:color-mix(in srgb, var(--surface-secondary) 38%, var(--surface));box-shadow:none}.knowledge-sort .select-popup{min-width:max-content}.knowledge-empty{border-block:1px solid var(--line);color:var(--muted);margin:0;padding:2rem 0}.knowledge-scope-backdrop{z-index:20;background:color-mix(in srgb, var(--text) 42%, transparent);align-items:end;padding:1rem;display:grid;position:fixed;inset:0}.knowledge-scope-dialog{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);max-width:42rem;max-height:min(42rem,100dvh - 2rem);box-shadow:var(--shadow-raised);margin:auto;padding:1.25rem;overflow-y:auto}.knowledge-scope-dialog>header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.knowledge-scope-dialog h2{margin:0;font-size:1.35rem}.knowledge-scope-dialog>header button{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--text);font:inherit;background:0 0;padding:.45rem .75rem;font-weight:750}.knowledge-scope-options{border-top:1px solid var(--line);margin-top:1.25rem}.knowledge-scope-options button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:52px;color:var(--text);font:inherit;text-align:left;background:0 0;grid-template-columns:1.5rem 1fr auto;align-items:center;gap:.5rem;padding:.7rem 0;display:grid}.knowledge-scope-options button[aria-checked=true] span{color:var(--green)}.knowledge-scope-options small{color:var(--muted);font-weight:700}.knowledge-scope-facets{border:0;margin:1.25rem 0;padding:0}.knowledge-scope-facets legend{margin-bottom:.65rem;font-weight:800}.knowledge-scope-facets label{align-items:center;gap:.5rem;min-height:44px;margin-right:1rem;font-weight:700;display:inline-flex}.knowledge-scope-facets input{width:1.15rem;height:1.15rem;accent-color:var(--green)}.knowledge-scope-apply{width:100%}.knowledge-filters button{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--muted);background:var(--surface);cursor:pointer;padding:.45rem .85rem;font-weight:700}.knowledge-filters button[aria-pressed=true]{border-color:var(--green);color:var(--dark-green);background:color-mix(in srgb, var(--green) 11%, var(--surface))}.knowledge-catalog{gap:1rem;display:grid}.knowledge-result-count{color:var(--muted);margin:0 0 .25rem;font-size:.82rem;font-weight:700}.knowledge-item{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:clamp(1.25rem,3vw,1.75rem);display:grid;position:relative}.knowledge-item-marker{justify-content:center;height:100%;display:flex}.knowledge-item-marker:before{display:none}.knowledge-item-marker span{border:2px solid var(--green);background:var(--surface);border-radius:50%;width:.72rem;height:.72rem;margin-top:.45rem;position:static}.knowledge-item-copy h2{margin:.35rem 0;font-size:1.22rem}.knowledge-item-copy>p:last-child{color:var(--muted);margin:0}.knowledge-item-meta{color:var(--coral);gap:.55rem;margin:0;font-size:.76rem;font-weight:750;display:flex}.knowledge-item-meta span+span:before{color:var(--line);content:"/";margin-right:.55rem}.knowledge-link,.knowledge-action{border:1px solid var(--green);border-radius:var(--radius-pill);min-height:44px;color:var(--on-accent);background:var(--green);justify-content:center;align-items:center;gap:.8rem;padding:.7rem 1rem;font-weight:800;display:inline-flex}.knowledge-link{color:var(--dark-green);background:0 0}.knowledge-definition{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1.2rem;padding:clamp(1.5rem,4vw,2.5rem)}.knowledge-definition h2,.knowledge-detail-grid h2{margin:0;font-size:1.35rem}.knowledge-definition h2+p{max-width:48rem;margin:1rem 0 0;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.75}.knowledge-detail-grid{border-top:1px solid var(--line);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid}.knowledge-checklist,.knowledge-relations{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:15rem;padding:1.7rem}.knowledge-relations{border-right:0}.knowledge-checklist ul{margin:1.25rem 0;padding:0;list-style:none}.knowledge-checklist li{border-top:1px solid var(--line);padding:.75rem 0 .75rem 1.45rem;position:relative}.knowledge-checklist li:before{color:var(--green);content:"✓";position:absolute;left:0}.knowledge-relations ul{margin:1.25rem 0 0;padding:0;list-style:none}.knowledge-relations li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.knowledge-relation-type{color:var(--muted);font-size:.78rem;font-weight:700}.knowledge-relations a{color:var(--dark-green);gap:.5rem;font-weight:800;display:inline-flex}.knowledge-relation-empty{color:var(--muted)}.knowledge-back-link{width:fit-content;color:var(--dark-green);margin-top:1.7rem;font-weight:800;display:inline-block}.knowledge-quiz{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);max-width:48rem;box-shadow:var(--shadow);padding:clamp(1.5rem,4vw,2.5rem)}.knowledge-quiz-step{color:var(--coral);letter-spacing:.08em;align-items:center;gap:.7rem;margin-bottom:1.2rem;font-size:.78rem;font-weight:800;display:flex}.knowledge-quiz-step span{border:1px solid;border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid}.knowledge-quiz-step p{margin:0}.knowledge-quiz h2{margin:0;font-size:clamp(1.25rem,3vw,1.65rem);line-height:1.55}.knowledge-options{border:0;margin:1.7rem 0;padding:0}.knowledge-options legend{color:var(--muted);margin-bottom:.7rem;font-size:.86rem;font-weight:700}.knowledge-options label{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:.65rem;min-height:3.4rem;padding:.75rem;display:flex}.knowledge-options label:last-child{border-bottom:1px solid var(--line)}.knowledge-options input{width:1.1rem;height:1.1rem;accent-color:var(--green)}.knowledge-answer-input{gap:.45rem;margin:1.5rem 0;font-weight:750;display:grid}.knowledge-answer-input input{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:3rem;color:var(--text);background:var(--surface);font:inherit;padding:.6rem .8rem}.knowledge-result{border-left:4px solid var(--green);border-radius:var(--radius-md);background:color-mix(in srgb, var(--green) 8%, var(--surface));margin-top:1.5rem;padding:1.25rem}.knowledge-result.retry{border-color:var(--coral);background:color-mix(in srgb, var(--coral) 8%, var(--surface))}.knowledge-result strong{font-size:1.2rem}.knowledge-secondary-action{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;padding:.6rem .9rem;font-weight:750}@media (width<=700px){.knowledge-heading{margin-bottom:1.4rem}.knowledge-explorer{border-radius:var(--radius-md);box-shadow:none;gap:.9rem;margin-bottom:1.5rem;padding:1rem}.knowledge-mobile-scope{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;min-height:52px;padding-block:.75rem;display:flex}.knowledge-mobile-scope div{gap:.15rem;display:grid}.knowledge-mobile-scope span{color:var(--muted);font-size:.82rem;font-weight:700}.knowledge-mobile-scope button{border:1px solid var(--line);border-radius:var(--radius-pill);min-height:44px;color:var(--dark-green);font:inherit;white-space:nowrap;background:0 0;padding:.45rem .7rem;font-weight:800}.knowledge-paths,.knowledge-path-description,.knowledge-facet-row{display:none}.knowledge-result-tools{border-top:0;padding-top:0}.knowledge-next{flex-direction:column;align-items:flex-start}.knowledge-path-grid,.knowledge-detail-grid{grid-template-columns:1fr}.knowledge-path{border-right:0;min-height:15rem}.knowledge-checklist{border-right:0}.knowledge-item{grid-template-columns:1.3rem minmax(0,1fr)}.knowledge-link{grid-column:2;width:100%}.knowledge-followup-list a{flex-direction:column;align-items:flex-start;gap:.25rem}.knowledge-followup-list small{text-align:left}}.diagnostic-heading{max-width:50rem}.diagnostic-stages{flex-wrap:wrap;gap:.65rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.diagnostic-stages li{border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--muted);padding:.45rem .7rem;font-size:.85rem;font-weight:700}.diagnostic-stages li[aria-current=step]{border-color:var(--green);color:var(--dark-green);background:color-mix(in srgb, var(--green) 10%, var(--surface))}.diagnostic-question{border:1px solid var(--line);border-top:4px solid var(--green);border-radius:var(--radius-lg);background:var(--surface);max-width:48rem;box-shadow:var(--shadow);padding:clamp(1.4rem,4vw,2.4rem)}.diagnostic-step{color:var(--coral);margin:0 0 .6rem;font-size:.8rem;font-weight:800}.diagnostic-question h2{margin:0 0 1.5rem;font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.4}.diagnostic-options,.diagnostic-reason{border:0;margin:0 0 1.25rem;padding:0}.diagnostic-options legend,.diagnostic-reason legend{margin-bottom:.7rem;font-weight:800}.diagnostic-options label,.diagnostic-reason label{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;align-items:start;gap:.6rem;padding:.8rem;display:flex}.diagnostic-options label+label,.diagnostic-reason label+label{margin-top:.55rem}.diagnostic-reason{margin-top:1.5rem}.diagnostic-reason p{color:var(--muted);margin:0 0 .7rem;font-size:.9rem}.diagnostic-answer{gap:.5rem;margin-bottom:1.5rem;font-weight:800;display:grid}.diagnostic-answer input{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;font:inherit;padding:.6rem}.diagnostic-result{border-left:4px solid var(--coral);border-radius:var(--radius-md);background:color-mix(in srgb, var(--coral) 9%, var(--surface));margin-top:1.5rem;padding:1rem}.diagnostic-result.correct{border-color:var(--green);background:color-mix(in srgb, var(--green) 9%, var(--surface))}.diagnostic-result strong{display:block}.diagnostic-result .knowledge-action,.diagnostic-result .knowledge-link{margin:.75rem .6rem 0 0}
