:root{--bg:#f5f4ef;--bg-subtle:#efede6;--surface:#fbfaf7;--surface-raised:#fff;--ink:#1f2420;--ink-2:#4f584f;--muted:#5f675f;--faint:#6d756c;--line:#e2dfd4;--line-strong:#d2cec1;--accent:#2f624f;--accent-hover:#275441;--accent-soft:#e8efe9;--accent-ink:#285743;--accent-contrast:#fff;--success:#356b55;--success-soft:#e8efe9;--warm:#906528;--warm-soft:#f5eddd;--danger:#9c4d40;--danger-soft:#f5e8e4;--code-bg:#f0eee7;--code-head:#e9e6dd;--code-border:#e0ddd2;--code-ink:#26362d;--code-muted:#7c857c;--code-active:#e3ece5;--output-bg:#222a24;--output-ink:#e8ede7;--shadow-sm:0 1px 2px #1f24200a;--shadow-md:0 12px 36px #1f242017;--overlay:#1419157a;--toast-bg:#202823;--toast-ink:#f4f3ed;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono:"SFMono-Regular", "Cascadia Code", "Cascadia Mono", Menlo, Consolas, "Liberation Mono", monospace;--sidebar-width:250px;--lesson-topbar:calc(58px + env(safe-area-inset-top,0px))}[data-theme=dark]{--bg:#121512;--bg-subtle:#1b201c;--surface:#181c19;--surface-raised:#1e231f;--ink:#e9e8e1;--ink-2:#bdc2ba;--muted:#939b92;--faint:#737b72;--line:#2c322d;--line-strong:#3b423c;--accent:#8fbea8;--accent-hover:#a3cfb9;--accent-soft:#203129;--accent-ink:#a9d1be;--accent-contrast:#17241d;--success:#8fbea8;--success-soft:#203129;--warm:#d2ab6b;--warm-soft:#30291d;--danger:#de9587;--danger-soft:#32221f;--code-bg:#0e120f;--code-head:#171c18;--code-border:#29302a;--code-ink:#dfe6de;--code-muted:#7f8a80;--code-active:#223128;--output-bg:#090c0a;--output-ink:#e2e9e2;--shadow-sm:0 1px 2px #0000002e;--shadow-md:0 16px 40px #00000052;--overlay:#040705ad;--toast-bg:#e7e8e1;--toast-ink:#171b18}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100%}body{background:var(--bg);min-width:320px;min-height:100%;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.65;transition:background-color .18s,color .18s}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}button:not(:disabled){-webkit-tap-highlight-color:transparent}a{color:var(--accent)}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.025em;font-weight:650;line-height:1.32}code,pre{font-family:var(--font-mono)}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small-copy{font-size:13px}.dot-divider{opacity:.45;background:currentColor;border-radius:50%;flex:none;width:3px;height:3px;display:inline-block}.icon-svg{flex:none;display:block}.button{letter-spacing:-.005em;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:14.5px;font-weight:550;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:var(--accent);color:var(--accent-contrast)}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.secondary{background:var(--surface-raised);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}.button.secondary:hover:not(:disabled){border-color:var(--line-strong);background:var(--bg-subtle)}.button.ghost{color:var(--ink-2);background:0 0}.button.ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--ink)}.button.danger{background:var(--danger);color:#fff}.button.danger-outline{border-color:color-mix(in srgb, var(--danger) 35%, var(--line));color:var(--danger);background:0 0}.button.danger-outline:hover{background:var(--danger-soft)}.button:disabled{opacity:.42}.button.small{gap:6px;min-height:40px;padding:0 14px;font-size:13.5px}.button.large{border-radius:11px;min-height:52px;padding:0 24px;font-size:15.5px}.button.full{width:100%}.text-button{min-height:40px;color:var(--accent);white-space:nowrap;justify-content:center;align-items:center;gap:5px;font-size:13.5px;font-weight:550;display:inline-flex}.text-button:hover{color:var(--accent-hover)}.text-button.small{min-height:36px;font-size:12.5px}.text-button.danger-text{color:var(--danger)}.icon-button{width:44px;height:44px;color:var(--muted);border-radius:10px;place-items:center;transition:background-color .15s,color .15s;display:inline-grid}.icon-button:hover{background:var(--bg-subtle);color:var(--ink)}.icon-button.active{color:var(--accent)}.danger-hover:hover{color:var(--danger);background:var(--danger-soft)}.eyebrow{color:var(--accent);letter-spacing:.11em;text-transform:uppercase;font-size:11px;font-weight:650;line-height:1.5}.page-container{width:100%;max-width:1080px;margin:0 auto;padding:46px 40px 92px}.page-header{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:38px;display:flex}.page-header h1{letter-spacing:-.035em;margin-top:5px;font-size:32px}.page-description{max-width:640px;color:var(--muted);margin-top:10px;font-size:14.5px;line-height:1.75}.page-header-action{flex:none;padding-top:18px}.progress-track{background:var(--line);border-radius:99px;width:100%;height:4px;overflow:hidden}.progress-track>span{border-radius:inherit;background:var(--accent);height:100%;transition:width .25s;display:block}.pill{background:var(--bg-subtle);min-height:23px;color:var(--muted);white-space:nowrap;border:1px solid #0000;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-style:normal;font-weight:550;line-height:1.4;display:inline-flex}.pill.accent{color:var(--accent-ink);background:var(--accent-soft)}.pill.warn{color:var(--warm);background:var(--warm-soft)}.pill.done{color:var(--success);background:var(--success-soft)}.pill.learning{color:var(--accent-ink);background:var(--accent-soft)}.pill.start{color:#fff;background:var(--accent)}[data-theme=dark] .pill.start{color:var(--accent-contrast)}.pill.neutral{border-color:var(--line);background:0 0}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.segmented{border:1px solid var(--line);background:var(--bg-subtle);border-radius:10px;padding:3px;display:inline-flex}.segmented button{min-height:36px;color:var(--muted);border-radius:7px;padding:0 14px;font-size:13px}.segmented button.active{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.demo-notice{border:1px solid var(--line);background:var(--bg-subtle);color:var(--muted);border-radius:10px;align-items:flex-start;gap:9px;padding:14px 16px;font-size:12.5px;line-height:1.7;display:flex}.demo-notice .icon-svg{color:var(--muted);margin-top:2px}.demo-notice.compact{padding:10px 13px;font-size:12px}.empty-state{text-align:center;max-width:470px;margin:48px auto;padding:42px 28px}.empty-icon{border:1px solid var(--line);width:48px;height:48px;color:var(--muted);background:var(--surface);border-radius:50%;place-items:center;margin:0 auto 18px;display:grid}.empty-state h3{font-size:19px}.empty-state p{color:var(--muted);margin:9px 0 22px;font-size:13.5px;line-height:1.8}.app-shell{min-height:100dvh}.sidebar{z-index:40;width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;padding:24px 16px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{text-align:left;align-items:center;gap:11px;width:100%;padding:2px 10px 4px;display:flex}.static-brand{cursor:default}.brand-mark{background:var(--accent);border-radius:9px;flex:0 0 35px;width:35px;height:35px;position:relative;overflow:hidden}.brand-mark.small{border-radius:8px;flex-basis:29px;width:29px;height:29px}.brand-mark.tiny{border-radius:6px;flex-basis:22px;width:22px;height:22px}.brand-mark i{background:#f2efdf;border-radius:1px;width:5px;display:block;position:absolute;bottom:8px}.brand-mark i:first-child{height:7px;left:8px}.brand-mark i:nth-child(2){height:11px;left:15px}.brand-mark i:nth-child(3){height:15px;left:22px}.brand-mark.small i{width:4px;bottom:6px}.brand-mark.small i:first-child{height:6px;left:6px}.brand-mark.small i:nth-child(2){height:9px;left:12px}.brand-mark.small i:nth-child(3){height:12px;left:18px}.brand-mark.tiny i{width:3px;bottom:5px}.brand-mark.tiny i:first-child{height:4px;left:5px}.brand-mark.tiny i:nth-child(2){height:7px;left:9px}.brand-mark.tiny i:nth-child(3){height:10px;left:13px}.brand-copy{flex-direction:column;min-width:0;display:flex}.brand-copy strong{color:var(--ink);letter-spacing:.05em;font-size:18px;font-weight:680;line-height:1.3}.brand-copy small{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;margin-top:1px;font-size:9.5px}.side-nav{flex-direction:column;gap:2px;margin-top:36px;display:flex}.side-nav button{width:100%;min-height:44px;color:var(--ink-2);text-align:left;border-radius:8px;align-items:center;gap:11px;padding:0 11px;font-size:14px;transition:background-color .14s,color .14s;display:flex}.side-nav button:hover{background:var(--bg-subtle);color:var(--ink)}.side-nav button.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:550}.side-nav button span{flex:1}.side-nav button em{border:1px solid var(--line);color:var(--faint);border-radius:4px;padding:1px 5px;font-size:9.5px;font-style:normal;line-height:1.6}.side-nav-minor{margin-top:0}.side-divider{background:var(--line);height:1px;margin:18px 10px 14px}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding:16px 10px 0}.local-status{color:var(--ink-2);align-items:center;gap:7px;font-size:12px;font-weight:550;display:flex}.status-dot{background:var(--accent);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.sidebar-foot p{color:var(--faint);margin-top:7px;font-size:11px;line-height:1.7}.app-main{min-height:100dvh;margin-left:var(--sidebar-width)}.main-content{min-width:0}.mobile-bar,.bottom-nav{display:none}.toast{z-index:200;background:var(--toast-bg);max-width:calc(100vw - 32px);color:var(--toast-ink);box-shadow:var(--shadow-md);pointer-events:none;border-radius:9px;align-items:center;gap:8px;padding:11px 16px;font-size:13px;line-height:1.5;animation:.2s both toast-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast.error{background:var(--danger);color:#fff}.update-banner{z-index:210;background:var(--toast-bg);max-width:calc(100vw - 32px);color:var(--toast-ink);box-shadow:var(--shadow-md);border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@media (width<=640px){.update-banner{flex-wrap:wrap;bottom:84px}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.welcome-page{flex-direction:column;width:100%;max-width:1240px;min-height:100dvh;margin:0 auto;padding:0 48px 26px;display:flex}.welcome-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:84px;display:flex}.welcome-top-note{color:var(--faint);white-space:nowrap;font-size:11.5px}.welcome-main{flex:1;grid-template-columns:minmax(0,1.22fr) minmax(310px,.78fr);align-items:center;gap:clamp(48px,8vw,110px);padding:68px 0 58px;display:grid}.welcome-hero h1{letter-spacing:-.055em;margin-top:12px;font-size:clamp(44px,5.6vw,70px);font-weight:660;line-height:1.13}.welcome-lede{max-width:550px;color:var(--ink-2);margin-top:24px;font-size:17px;line-height:1.9}.welcome-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:34px;display:flex}.welcome-meta{color:var(--faint);align-items:center;gap:6px;margin-top:16px;font-size:11.5px;display:flex}.welcome-route{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;padding:27px 28px 20px}.welcome-route ol{margin:15px 0 0;padding:0;list-style:none}.welcome-route li{border-top:1px solid var(--line);align-items:center;gap:13px;min-height:59px;display:flex}.welcome-route li:first-child{border-top:0}.welcome-route li.current{color:var(--accent-ink)}.route-number{width:27px;color:var(--faint);font-family:var(--font-mono);font-size:11px}.welcome-route li.current .route-number{color:var(--accent)}.welcome-route li>span:nth-child(2){flex-direction:column;flex:1;gap:1px;display:flex}.welcome-route strong{font-size:14px;font-weight:560}.welcome-route small{color:var(--faint);font-size:11px}.welcome-route em{background:var(--accent-soft);color:var(--accent-ink);border-radius:99px;padding:2px 7px;font-size:10px;font-style:normal}.welcome-principles{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:46px;padding:31px 0;display:grid}.welcome-principles>div{grid-template-columns:24px 1fr;column-gap:10px;display:grid}.welcome-principles .icon-svg{color:var(--accent);grid-row:span 2;margin-top:2px}.welcome-principles h2{letter-spacing:-.01em;font-size:14px;font-weight:600}.welcome-principles p{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.75}.welcome-foot{padding-top:8px}.test-page{background:var(--bg);min-height:100dvh}.immersive-top,.lesson-topbar{height:var(--lesson-topbar);padding:env(safe-area-inset-top,0px) 24px 0;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);align-items:center;gap:16px;display:flex}.test-top{z-index:30;position:sticky;top:0}.back-button{min-height:44px;color:var(--ink-2);border-radius:8px;align-items:center;gap:6px;margin-left:-8px;padding:0 8px;font-size:13px;display:inline-flex}.back-button:hover{background:var(--bg-subtle);color:var(--ink)}.immersive-brand{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.top-spacer{flex:0 0 70px;width:70px}.test-wrap{width:100%;max-width:720px;margin:0 auto;padding:36px 28px 80px}.test-progress-area{margin-bottom:22px}.test-progress-copy{color:var(--ink-2);justify-content:space-between;gap:20px;margin-bottom:12px;font-size:12px;display:flex}.group-progress{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:16px;display:grid}.group-progress-item{min-width:0}.group-progress-label{min-height:18px;color:var(--faint);white-space:nowrap;align-items:center;gap:4px;margin-bottom:6px;font-size:10.5px;display:flex}.group-progress-label em{color:var(--accent);font-size:9.5px;font-style:normal}.group-progress-track{background:var(--line);border-radius:99px;height:2px;display:block;overflow:hidden}.group-progress-track i{background:var(--accent);height:100%;transition:width .25s;display:block}.question-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;padding:34px}.question-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;font-size:11.5px;display:flex}.question-count{color:var(--faint);font-family:var(--font-mono);font-size:10.5px}.question-title{letter-spacing:-.025em;margin:15px 0 24px;font-size:23px;font-weight:600;line-height:1.55}.option-list{flex-direction:column;gap:9px;display:flex}.option-button{border:1px solid var(--line);background:var(--surface-raised);width:100%;min-height:56px;color:var(--ink-2);text-align:left;border-radius:10px;align-items:flex-start;gap:12px;padding:14px 15px;font-size:14px;line-height:1.65;transition:border-color .14s,background-color .14s,color .14s;display:flex}.option-button:hover:not(:disabled){border-color:var(--line-strong);background:var(--bg-subtle)}.option-button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.option-button.correct{border-color:color-mix(in srgb, var(--accent) 60%, var(--line));background:var(--accent-soft);color:var(--ink)}.option-button.wrong{border-color:color-mix(in srgb, var(--danger) 55%, var(--line));background:var(--danger-soft);color:var(--ink)}.option-key{border:1px solid var(--line-strong);width:23px;height:23px;color:var(--muted);font-family:var(--font-mono);background:var(--bg);border-radius:50%;flex:0 0 23px;place-items:center;margin-top:1px;font-size:10.5px;display:grid}.option-button.selected .option-key,.option-button.correct .option-key{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.option-button.wrong .option-key{border-color:var(--danger);background:var(--danger);color:#fff}.option-text{white-space:pre-line;flex:1;min-width:0}.option-text.mono{font-family:var(--font-mono);font-size:13px;line-height:1.75}.option-radio{border:1px solid var(--line-strong);border-radius:50%;flex:0 0 17px;place-items:center;width:17px;height:17px;margin-top:4px;display:grid}.option-radio i{background:var(--accent);border-radius:50%;width:7px;height:7px}.question-actions{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:28px;padding-top:22px;display:flex}.test-auto-note{color:var(--faint);text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:18px;font-size:11px;display:flex}.test-empty{text-align:center;width:100%;max-width:560px;margin:0 auto;padding:110px 28px}.test-empty h1{margin:8px 0 14px;font-size:32px}.test-empty>p:not(.eyebrow){color:var(--muted);margin:0 auto 28px;font-size:14px;line-height:1.8}.test-empty .button{margin:0 auto;display:flex}.test-empty .text-button{margin-top:10px}.result-page{padding-bottom:80px}.result-wrap{width:100%;max-width:760px;margin:0 auto;padding:52px 28px 0}.result-header h1{letter-spacing:-.04em;margin-top:8px;font-size:36px}.result-lede{color:var(--ink-2);margin-top:12px;font-size:16px;line-height:1.8}.result-score-line{color:var(--faint);flex-wrap:wrap;align-items:center;gap:8px;margin-top:15px;font-size:11.5px;display:flex}.recommend-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;margin-top:32px;padding:31px 32px}.recommend-top{color:var(--faint);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font-size:11.5px;display:flex}.course-kicker{color:var(--muted);font-size:12px}.recommend-card h2{letter-spacing:-.035em;margin-top:6px;font-size:27px}.recommend-desc{color:var(--ink-2);margin-top:9px;font-size:14px;line-height:1.75}.reason-list{flex-direction:column;gap:11px;margin:23px 0;padding:0;list-style:none;display:flex}.reason-list li{color:var(--ink-2);align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.7;display:flex}.reason-list .icon-svg{color:var(--accent);margin-top:3px}.focus-row{border-top:1px solid var(--line);padding-top:19px}.focus-row>span{color:var(--faint);margin-bottom:9px;font-size:11px;display:block}.recommend-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:27px;display:flex}.result-groups{margin-top:38px}.result-groups>h2{font-size:16px;font-weight:600}.result-group-list{border-top:1px solid var(--line);margin-top:12px}.result-group{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:15px 0;display:flex}.result-group>div:first-child{min-width:0}.result-group strong{font-size:13.5px;font-weight:560;display:block}.result-group small{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;line-height:1.6;display:block;overflow:hidden}.mini-score{flex:0 0 120px;align-items:center;gap:10px;display:flex}.mini-score>span:first-child{color:var(--muted);font-family:var(--font-mono);white-space:nowrap;font-size:10.5px}.mini-score-bar{background:var(--line);border-radius:99px;flex:1;height:3px;overflow:hidden}.mini-score-bar i{background:var(--accent);height:100%;display:block}.home-page{max-width:1120px}.home-intro{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:30px;display:flex}.home-intro h1{letter-spacing:-.04em;margin-top:6px;font-size:34px}.home-lede{max-width:620px;color:var(--muted);margin-top:9px;font-size:14.5px;line-height:1.8}.desktop-assistant-button{border:1px solid var(--line);background:var(--surface);margin-bottom:2px}.demo-tag{background:var(--bg-subtle);color:var(--faint);border-radius:4px;padding:1px 5px;font-size:9.5px;font-weight:500}.inline-banner{border:1px solid color-mix(in srgb, var(--warm) 22%, var(--line));background:var(--warm-soft);color:var(--ink);border-radius:10px;align-items:center;gap:12px;margin-bottom:20px;padding:13px 16px;display:flex}.inline-banner>.icon-svg{color:var(--warm);flex:none}.inline-banner>div{flex-direction:column;flex:1;display:flex}.inline-banner strong{font-size:12.5px;font-weight:600}.inline-banner span{color:var(--muted);font-size:11.5px;line-height:1.6}.inline-banner.quiet{border-color:var(--line);background:var(--surface)}.inline-banner.quiet>.icon-svg{color:var(--muted)}.inline-banner .button{background:var(--surface);border-color:var(--line);flex:none}.home-grid{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:32px;display:grid}.home-primary{min-width:0}.continue-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:minmax(0,1fr) 228px;gap:24px;padding:30px 30px 28px;display:grid;position:relative;overflow:hidden}.continue-copy{min-width:0}.continue-kicker{color:var(--faint);flex-wrap:wrap;align-items:center;gap:9px;font-size:10.5px;display:flex}.continue-card h2{letter-spacing:-.035em;margin-top:15px;font-size:26px}.continue-card p{max-width:540px;color:var(--ink-2);margin-top:9px;font-size:13.5px;line-height:1.8}.continue-meta{color:var(--faint);align-items:center;gap:7px;margin-top:20px;font-size:11.5px;display:flex}.continue-meta>span{align-items:center;gap:5px;display:flex}.continue-progress-label{font-family:var(--font-mono);margin-left:auto;font-size:10.5px}.continue-card .progress-track{margin-top:8px}.continue-actions{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:22px;display:flex}.continue-art{border:1px solid var(--line);background:var(--bg-subtle);border-radius:12px;align-self:center;min-width:0;padding:17px 17px 13px}.mini-code{color:var(--code-ink);font-family:var(--font-mono);white-space:nowrap;flex-direction:column;gap:2px;font-size:10.5px;line-height:1.7;display:flex;overflow:hidden}.mini-code i{color:var(--accent);font-style:normal}.mini-code b{color:var(--warm);font-weight:500}.mini-code-caption{border-top:1px solid var(--line);color:var(--faint);margin-top:10px;padding-top:9px;font-size:10px}.next-task-section{margin-top:31px}.section-label{color:var(--ink-2);justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;font-size:11.5px;font-weight:600;display:flex}.section-label .muted{font-size:10.5px;font-weight:400}.next-task{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;border-radius:12px;align-items:center;gap:14px;padding:16px 18px;transition:border-color .15s,background-color .15s;display:flex}.next-task:hover{border-color:var(--line-strong);background:var(--surface)}.next-task-icon{background:var(--accent-soft);width:39px;height:39px;color:var(--accent-ink);border-radius:9px;flex:0 0 39px;place-items:center;display:grid}.next-task-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.next-task-copy small{color:var(--faint);font-size:10px}.next-task-copy strong{font-size:13.5px;font-weight:570}.next-task-copy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:1.6;overflow:hidden}.next-task-action{color:var(--accent);flex:none;align-items:center;gap:4px;font-size:11.5px;font-weight:550;display:flex}.stage-overview{border-top:1px solid var(--line);margin-top:42px;padding-top:28px}.section-heading{justify-content:space-between;align-items:flex-start;gap:22px;display:flex}.section-heading h2{letter-spacing:-.025em;margin-top:3px;font-size:19px}.section-heading.compact h2{font-size:20px}.section-heading .text-button{padding-top:2px}.stage-summary{max-width:600px;color:var(--muted);margin-top:10px;font-size:13px;line-height:1.8}.stage-progress-row{justify-content:space-between;align-items:flex-end;gap:24px;margin:22px 0 10px;display:flex}.stage-courses strong{font-family:var(--font-mono);color:var(--ink);font-size:18px;font-weight:500}.stage-courses span{color:var(--faint);margin-left:9px;font-size:11px}.stage-dots{gap:4px;display:flex}.stage-dots span{background:var(--line);border-radius:99px;width:22px;height:4px}.stage-dots span.current,.stage-dots span.done{background:var(--accent)}.stage-footnote{color:var(--faint);align-items:center;gap:6px;margin-top:10px;font-size:10.5px;display:flex}.home-aside{flex-direction:column;gap:27px;padding-top:2px;display:flex}.aside-section{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:20px 20px 18px}.aside-section .section-heading h2{font-size:18px}.review-preview-list{border-top:1px solid var(--line);flex-direction:column;margin-top:12px;display:flex}.review-preview-list button{border-bottom:1px solid var(--line);min-height:55px;color:var(--ink);text-align:left;align-items:center;gap:8px;display:flex}.review-preview-list button:hover strong{color:var(--accent)}.review-dot{background:var(--warm);border-radius:50%;flex:0 0 5px;width:5px;height:5px}.review-preview-list button>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.review-preview-list strong{font-size:12px;font-weight:550;line-height:1.55}.review-preview-list small{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.review-preview-list .icon-svg{color:var(--faint)}.review-preview .button{margin-top:13px}.aside-empty{color:var(--muted);margin:13px 0 2px;font-size:11.5px;line-height:1.8}.quiet-record dl{margin:14px 0 0}.quiet-record dl>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding:9px 0;display:flex}.quiet-record dt{color:var(--muted);font-size:11.5px}.quiet-record dd{color:var(--ink-2);text-align:right;margin:0;font-size:11.5px}.record-note{color:var(--faint);margin-top:12px;font-size:10px;line-height:1.75}.quick-link{border:1px solid var(--line);text-align:left;background:0 0;border-radius:11px;grid-template-columns:1fr auto;gap:2px 12px;width:100%;padding:15px 17px;transition:background-color .15s;display:grid}.quick-link:hover{background:var(--surface)}.quick-link>span{color:var(--ink);align-items:center;gap:8px;font-size:12px;font-weight:550;display:flex}.quick-link small{color:var(--faint);grid-column:1;padding-left:26px;font-size:10px}.quick-link>.icon-svg{color:var(--faint);grid-area:1/2/span 2;align-self:center}.roadmap-page{max-width:980px}.roadmap-summary{color:var(--muted);flex-wrap:wrap;gap:7px 18px;font-size:11px;display:flex}.roadmap-summary strong{color:var(--ink);font-family:var(--font-mono);font-size:13px;font-weight:500}.roadmap-note{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:10px;align-items:flex-start;gap:9px;margin-bottom:22px;padding:13px 15px;display:flex}.roadmap-note .icon-svg{color:var(--accent);flex:none;margin-top:2px}.roadmap-note p{font-size:12px;line-height:1.75}.stage-list{flex-direction:column;gap:13px;display:flex}.stage-block{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:hidden}.stage-block.current{border-color:color-mix(in srgb, var(--accent) 32%, var(--line))}.stage-header{text-align:left;align-items:flex-start;gap:16px;width:100%;padding:21px 22px;display:flex}.stage-header:hover{background:color-mix(in srgb, var(--bg-subtle) 55%, transparent)}.stage-marker{border:1px solid var(--line);width:37px;height:37px;color:var(--muted);background:var(--bg);font-family:var(--font-mono);border-radius:50%;flex:0 0 37px;place-items:center;font-size:10.5px;display:grid}.stage-block.current .stage-marker{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.stage-heading-copy{flex:1;min-width:0}.stage-heading-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-heading-top strong{letter-spacing:-.02em;font-size:16px;font-weight:600}.stage-description{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.7;display:block}.stage-meta{color:var(--faint);font-family:var(--font-mono);flex-wrap:wrap;gap:5px 15px;margin-top:9px;font-size:9.5px;display:flex}.stage-chevron{width:34px;height:34px;color:var(--faint);place-items:center;transition:transform .18s;display:grid}.stage-block.open .stage-chevron{transform:rotate(180deg)}.stage-body{padding:0 22px 22px 75px}.stage-outcome{background:var(--bg-subtle);border-radius:8px;margin-bottom:14px;padding:13px 15px}.stage-outcome span{color:var(--faint);font-size:9.5px;display:block}.stage-outcome p{color:var(--ink-2);margin-top:3px;font-size:11.5px;line-height:1.65}.course-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.course-list li{border-bottom:1px solid var(--line)}.course-row{width:100%;color:var(--ink);text-align:left;align-items:flex-start;gap:14px;padding:16px 2px;display:flex}.course-row:hover{background:color-mix(in srgb, var(--bg-subtle) 58%, transparent)}.course-order{width:22px;color:var(--faint);font-family:var(--font-mono);flex:0 0 22px;padding-top:3px;font-size:9.5px}.course-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.course-title-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.course-title-line strong{font-size:13.5px;font-weight:570;line-height:1.5}.course-row.available .course-title-line strong{color:var(--accent-ink)}.course-description{color:var(--muted);font-size:11.5px;line-height:1.65}.course-meta{color:var(--faint);align-items:center;gap:5px;margin-top:2px;font-size:10px;display:flex}.pending-label{color:var(--warm)}.course-side{padding-top:4px}.course-open{color:var(--accent);align-items:center;gap:4px;font-size:11px;font-weight:550;display:inline-flex}.course-open.done{color:var(--muted)}.course-pending-icon{color:var(--faint)}.stage-tip{color:var(--faint);align-items:flex-start;gap:7px;margin-top:14px;font-size:10.5px;line-height:1.7;display:flex}.stage-tip .icon-svg{color:var(--accent);margin-top:1px}.roadmap-footer-note{border-top:1px solid var(--line);grid-template-columns:240px 1fr;gap:36px;margin-top:43px;padding-top:27px;display:grid}.roadmap-footer-note h2{margin-top:4px;font-size:20px}.roadmap-footer-note>p{color:var(--muted);font-size:12.5px;line-height:1.85}.lesson-immersive{background:var(--bg);min-height:100dvh}.lesson-topbar{z-index:40;position:sticky;top:0}.lesson-topbar-title{text-align:center;flex-direction:column;flex:1;align-items:center;gap:1px;min-width:0;display:flex}.lesson-topbar-title strong{max-width:100%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:560;overflow:hidden}.lesson-topbar-title small{color:var(--faint);font-family:var(--font-mono);font-size:9px}.bookmark-button{margin-right:-9px}.lesson-top-progress{top:var(--lesson-topbar);z-index:39;background:var(--line);height:2px;position:sticky}.lesson-top-progress span{background:var(--accent);height:100%;transition:width .25s;display:block}.lesson-layout{grid-template-columns:minmax(0,800px) 256px;align-items:start;gap:48px;width:100%;max-width:1160px;margin:0 auto;padding:38px 32px 100px;display:grid}.lesson-sheet{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);border-radius:16px;padding:48px 58px 36px}.lesson-heading{border-bottom:1px solid var(--line);padding-bottom:27px}.lesson-kicker{color:var(--faint);flex-wrap:wrap;align-items:center;gap:9px;font-size:10.5px;display:flex}.lesson-heading h1{letter-spacing:-.045em;margin-top:17px;font-size:37px;font-weight:660;line-height:1.28}.lesson-subtitle{max-width:610px;color:var(--ink-2);margin-top:10px;font-size:15.5px;line-height:1.8}.lesson-meta{color:var(--faint);flex-wrap:wrap;align-items:center;gap:7px 17px;margin-top:20px;font-size:10.5px;display:flex}.lesson-meta>span{align-items:center;gap:5px;display:inline-flex}.lesson-toc-trigger{display:none}.step-heading{padding:34px 0 25px}.step-index{color:var(--faint);font-family:var(--font-mono);align-items:center;gap:9px;font-size:9.5px;display:flex}.step-index>span:first-child{color:var(--accent)}.step-rule{background:var(--line-strong);width:27px;height:1px}.step-heading h2{letter-spacing:-.035em;margin-top:11px;font-size:27px;font-weight:640}.step-content{animation:.28s both step-in}@keyframes step-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.step-content p{color:var(--ink-2);margin-bottom:20px;font-size:16.5px;line-height:1.95}.step-content p:last-child{margin-bottom:0}.step-content strong{color:var(--ink);font-weight:600}.reading-lede{letter-spacing:-.012em;color:var(--ink)!important;margin-bottom:27px!important;font-size:18.5px!important;line-height:1.85!important}.step-content code,.line-detail code,.next-course-note code{background:var(--code-bg);color:var(--code-ink);font-family:var(--font-mono);word-break:break-word;border-radius:4px;padding:1.5px 5px;font-size:.86em}.aside-title{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:650}.objectives-block{border:1px solid var(--line);background:var(--bg);border-radius:11px;margin:25px 0;padding:21px 22px}.check-list{flex-direction:column;gap:10px;margin:13px 0 0;padding:0;list-style:none;display:flex}.check-list li{color:var(--ink-2);align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.75;display:flex}.check-icon{background:var(--accent-soft);width:19px;height:19px;color:var(--accent);border-radius:50%;flex:0 0 19px;place-items:center;margin-top:2px;display:grid}.reading-note{border-left:2px solid var(--accent);background:var(--bg-subtle);border-radius:0 9px 9px 0;margin:26px 0;padding:18px 20px}.reading-note.accent-note{background:var(--accent-soft)}.reading-note.warn-note{border-left-color:var(--warm);background:var(--warm-soft)}.note-label{color:var(--accent-ink);letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px;font-size:9.5px;font-weight:650;display:block}.warn-note .note-label{color:var(--warm)}.reading-note p{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.85}.reading-note p code{background:color-mix(in srgb, var(--surface) 65%, transparent)}.analogy-machine{grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:stretch;margin:27px 0 25px;display:grid}.analogy-cell{border:1px solid var(--line);background:var(--bg);border-radius:10px;min-width:0;padding:17px 15px}.analogy-cell.accent{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--accent-soft)}.analogy-step{color:var(--faint);font-family:var(--font-mono);font-size:8.5px;display:block}.analogy-cell strong{color:var(--ink);margin-top:4px;font-size:13px;display:block}.analogy-cell p{color:var(--muted);margin:6px 0 10px;font-size:10.5px;line-height:1.7}.analogy-cell code{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:0;font-size:8.5px;display:block;overflow:hidden}.analogy-arrow{color:var(--faint);place-items:center;display:grid}.inline-insight{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:28px 0;padding:20px 0}.inline-insight>span{color:var(--accent);letter-spacing:.07em;margin-bottom:6px;font-size:10px;font-weight:650;display:block}.inline-insight p{margin:0;font-size:14px}.explain-code-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:26px;padding-top:20px;display:flex}.explain-code-row p{color:var(--faint);margin:0;font-size:12px}.line-explorer{margin:26px 0}.line-detail{border:1px solid var(--line);background:var(--bg);border-radius:10px;margin-top:12px;padding:19px 21px}.line-detail-head{align-items:center;gap:9px;margin-bottom:8px;display:flex}.line-detail-head>span{color:var(--faint);font-family:var(--font-mono);font-size:9px}.line-detail-head>code{background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font-mono);border-radius:3px;padding:1px 5px;font-size:10px}.line-detail p{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.85}.line-detail-code{background:var(--code-bg);color:var(--code-ink);white-space:pre;border-radius:6px;margin-top:13px;padding:10px 12px;font-size:11px;line-height:1.7;display:block;overflow-x:auto}.whole-code-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:27px 0;padding:21px 0}.whole-code-summary p:last-child{margin:8px 0 0;font-size:14px;line-height:1.85}.explain-inline{margin-top:7px}.compare-table-wrap{border:1px solid var(--line);border-radius:10px;margin:25px 0;overflow-x:auto}.compare-table{border-collapse:collapse;width:100%;font-size:12.5px}.compare-table th,.compare-table td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);color:var(--ink-2);text-align:left;padding:12px 14px;line-height:1.65}.compare-table th:first-child,.compare-table td:first-child{color:var(--muted);border-left:0}.compare-table tr:last-child td{border-bottom:0}.compare-table th{background:var(--bg-subtle);color:var(--ink);font-size:11px;font-weight:600}.compare-table td:nth-child(2){color:var(--accent-ink)}.code-shell{border:1px solid var(--code-border);background:var(--code-bg);border-radius:11px;margin:24px 0;overflow:hidden}.code-shell.compact{margin:12px 0 0}.code-head{border-bottom:1px solid var(--code-border);background:var(--code-head);min-height:36px;color:var(--code-muted);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:16px;padding:0 14px;font-size:9.5px;display:flex}.code-copy{min-height:30px;color:var(--code-muted);font-family:var(--font-sans);align-items:center;gap:5px;font-size:10px;display:inline-flex}.code-copy:hover{color:var(--code-ink)}.code-body{color:var(--code-ink);tab-size:4;-webkit-overflow-scrolling:touch;margin:0;padding:15px 0;font-size:12.8px;line-height:1.9;overflow-x:auto}.code-body code{min-width:max-content;display:block}.code-line{min-height:24px;padding-right:24px;transition:background-color .12s;display:flex}.code-line.clickable{cursor:pointer}.code-line.clickable:hover{background:color-mix(in srgb, var(--code-active) 62%, transparent)}.code-line.active{background:var(--code-active)}.line-number{width:45px;color:var(--code-muted);opacity:.72;text-align:right;-webkit-user-select:none;user-select:none;flex:0 0 45px;padding-right:15px;font-size:9.5px}.line-code{white-space:pre;padding-right:24px}.code-tip{border-top:1px solid var(--code-border);color:var(--code-muted);margin:0;padding:8px 14px;font-size:9.5px}.output-block{background:var(--output-bg);color:var(--output-ink);border-radius:8px;margin:-8px 0 24px;overflow:hidden}.output-label{color:#e8ede78c;letter-spacing:.08em;border-bottom:1px solid #ffffff14;padding:8px 13px;font-size:9px;display:block}.output-block pre{color:var(--output-ink);margin:0;padding:12px 14px;font-size:11.5px;line-height:1.75;overflow-x:auto}.practice-wrap{margin-top:8px}.practice-overview{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:13px;display:flex}.practice-intro{color:var(--muted)!important;margin-top:4px!important;margin-bottom:0!important;font-size:12px!important;line-height:1.7!important}.practice-count{color:var(--faint);font-family:var(--font-mono);flex:none;font-size:9.5px}.exercise-nav{gap:6px;margin:14px 0 20px;display:flex}.exercise-nav button{border:1px solid var(--line);background:var(--bg);width:32px;height:32px;color:var(--faint);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:10px;display:grid}.exercise-nav button.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.exercise-nav button.correct{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.exercise-nav button.wrong{border-color:color-mix(in srgb, var(--warm) 45%, var(--line));color:var(--warm);background:var(--warm-soft)}.exercise-card{border:1px solid var(--line);background:var(--bg);border-radius:13px;padding:25px 26px}.exercise-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.exercise-number{color:var(--faint);font-family:var(--font-mono);align-items:center;gap:8px;font-size:9.5px;display:flex}.exercise-progress{color:var(--faint);font-family:var(--font-mono);font-size:9.5px}.exercise-card h3{color:var(--ink);letter-spacing:-.02em;margin:15px 0 20px;font-size:19px;font-weight:600;line-height:1.6}.exercise-card .code-shell{margin:16px 0}.exercise-card .option-button{background:var(--surface)}.exercise-card .option-button.selected{background:var(--accent-soft)}.exercise-card .option-button.wrong{background:var(--danger-soft)}.exercise-card .option-button.correct{background:var(--accent-soft)}.line-selection{color:var(--faint)!important;margin:9px 0 0!important;font-size:10.5px!important;line-height:1.6!important}.line-selection.set{color:var(--accent)!important}.fill-answer{flex-direction:column;gap:7px;margin:18px 0;display:flex}.fill-answer label,.fill-answer>span{color:var(--ink-2);font-size:11.5px;font-weight:550}.fill-answer input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:48px;color:var(--ink);font-family:var(--font-mono);border-radius:8px;padding:0 14px;font-size:14px}.fill-answer input::placeholder{color:var(--faint);font-family:var(--font-sans);font-size:12.5px}.fill-hint{color:var(--faint);font-size:10.5px}.hint-panel{border:1px solid color-mix(in srgb, var(--warm) 24%, var(--line));background:var(--warm-soft);border-radius:9px;margin-top:18px;padding:16px 17px}.hint-title{color:var(--warm);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:flex}.hint-panel p{color:var(--ink-2);margin:7px 0 0;font-size:12.5px;line-height:1.8}.hint-panel .hint-sub{color:var(--muted);font-size:10.5px}.result-panel{border:1px solid var(--line);border-radius:9px;margin-top:18px;padding:17px}.result-panel.correct{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft)}.result-panel.wrong{border-color:color-mix(in srgb, var(--danger) 22%, var(--line));background:var(--danger-soft)}.result-title{align-items:center;gap:8px;font-size:13px;display:flex}.result-icon{background:var(--surface);width:25px;height:25px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.result-panel.wrong .result-icon{color:var(--danger)}.correct-answer{border-top:1px solid color-mix(in srgb, var(--ink) 9%, transparent);align-items:baseline;gap:9px;margin-top:13px;padding-top:12px;display:flex}.correct-answer span{color:var(--faint);flex:none;font-size:9.5px}.correct-answer strong{color:var(--ink);font-size:12px;line-height:1.65}.answer-explanation{margin-top:13px}.answer-explanation>span{color:var(--faint);margin-bottom:3px;font-size:9.5px;display:block}.answer-explanation p{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.85}.review-note{align-items:flex-start;gap:5px;display:flex;color:var(--muted)!important;margin:12px 0 0!important;font-size:10.5px!important;line-height:1.65!important}.review-note .icon-svg{margin-top:1px}.exercise-ai-help{border:1px solid color-mix(in srgb, var(--accent) 26%, var(--line));background:var(--surface);min-height:38px;color:var(--accent-ink);border-radius:7px;align-items:center;gap:5px;margin-top:10px;padding:0 10px;font-size:10.5px;font-weight:550;display:inline-flex}.exercise-ai-help:hover{border-color:var(--accent)}.exercise-actions{border-top:1px solid var(--line);align-items:center;gap:14px;margin-top:21px;padding-top:17px;display:flex}.exercise-auto-note{color:var(--faint);font-size:9.5px;line-height:1.55}.practice-summary{border:1px solid var(--line);background:var(--bg);text-align:center;border-radius:13px;padding:34px 30px}.practice-result-mark{background:var(--accent);width:48px;height:48px;color:var(--accent-contrast);border-radius:50%;place-items:center;margin:0 auto 15px;display:grid}.practice-summary h3{margin-top:5px;font-size:24px}.practice-result-copy{max-width:500px;margin:9px auto 0!important;font-size:13.5px!important;line-height:1.8!important}.practice-summary-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);max-width:430px;margin:25px auto 0;display:grid}.practice-summary-stats>div{border-left:1px solid var(--line);padding:14px 8px}.practice-summary-stats>div:first-child{border-left:0}.practice-summary-stats strong{font-family:var(--font-mono);font-size:21px;font-weight:500;display:block}.practice-summary-stats span{color:var(--faint);font-size:10px}.reviewed-concept-list{text-align:left;max-width:480px;margin:22px auto 0}.reviewed-concept-list .aside-title{margin-bottom:8px}.reviewed-concept-list .muted{font-size:12px;line-height:1.7}.practice-summary-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:27px;display:flex}.practice-save-note{justify-content:center;align-items:center;gap:5px;display:flex;color:var(--faint)!important;margin:14px 0 0!important;font-size:10px!important}.takeaway-list{border-top:1px solid var(--line);margin:25px 0}.takeaway-list>div{border-bottom:1px solid var(--line);align-items:flex-start;gap:16px;padding:19px 0;display:flex}.takeaway-list>div>span{width:24px;color:var(--accent);font-family:var(--font-mono);flex:0 0 24px;font-size:10px}.takeaway-list p{margin:0;font-size:14px;line-height:1.85}.self-check{background:var(--bg-subtle);border-radius:9px;margin:25px 0;padding:19px 20px}.self-check p:last-child{margin:8px 0 0;font-size:13px;line-height:1.85}.summary-result-card{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:22px;margin:25px 0;padding:19px 21px;display:flex}.summary-result-card>div{flex-direction:column;gap:2px;display:flex}.summary-result-card strong{font-size:16px;font-weight:600}.summary-result-card>div>span{color:var(--muted);font-size:11.5px;line-height:1.7}.next-suggestion{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));background:var(--accent-soft);border-radius:10px;margin:30px 0;padding:22px 23px}.next-suggestion h3{color:var(--accent-ink);margin-top:5px;font-size:19px}.next-suggestion>p:not(.eyebrow){color:var(--ink-2);margin-top:7px;font-size:12.5px;line-height:1.8}.next-suggestion-actions{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:13px;display:flex}.next-course-note{border-top:1px solid color-mix(in srgb, var(--accent) 20%, transparent);padding-top:12px;color:var(--muted)!important;margin:16px 0 0!important;font-size:10.5px!important}.next-course-note span{color:var(--warm)}.finish-block{text-align:center;margin-top:30px}.finish-block .button{min-width:190px}.finish-hint{max-width:440px;color:var(--faint)!important;margin:10px auto 0!important;font-size:10.5px!important;line-height:1.65!important}.lesson-completed-panel{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft);border-radius:11px;grid-template-columns:50px minmax(0,1fr);gap:4px 16px;margin-top:28px;padding:23px;display:grid}.completed-mark{background:var(--accent);width:44px;height:44px;color:var(--accent-contrast);border-radius:50%;place-items:center;display:grid}.lesson-completed-panel h3{color:var(--accent-ink);margin-top:3px;font-size:18px}.lesson-completed-panel p:not(.eyebrow){color:var(--muted);margin-top:4px;font-size:11.5px;line-height:1.7}.completed-actions{flex-wrap:wrap;grid-column:2;gap:8px;margin-top:12px;display:flex}.lesson-tools{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:3px;margin-top:34px;padding:10px 0;display:flex}.lesson-tools button{min-height:38px;color:var(--muted);border-radius:7px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;display:inline-flex}.lesson-tools button:hover{background:var(--bg-subtle);color:var(--ink)}.lesson-tools button.active{color:var(--accent)}.lesson-step-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:22px;padding-top:20px;display:flex}.step-footer-progress{color:var(--faint);font-family:var(--font-mono);font-size:9.5px}.lesson-aside{min-width:0}.lesson-aside-inner{padding:2px 0;position:sticky;top:98px}.lesson-step-list{margin:13px 0 0;padding:0;list-style:none}.lesson-step-list li{border-left:1px solid var(--line)}.lesson-step-list button{width:100%;min-height:37px;color:var(--faint);text-align:left;border-left:1px solid #0000;align-items:flex-start;gap:9px;margin-left:-1px;padding:7px 0 7px 11px;font-size:11px;line-height:1.55;display:flex}.lesson-step-list button:hover{color:var(--ink)}.lesson-step-list button.active{border-left-color:var(--accent);color:var(--accent-ink);font-weight:550}.lesson-step-list button.done{color:var(--muted)}.step-list-marker{border:1px solid var(--line);background:var(--bg);width:17px;height:17px;color:var(--faint);font-family:var(--font-mono);border-radius:50%;flex:0 0 17px;place-items:center;margin-top:0;font-size:8px;display:grid}.lesson-step-list button.active .step-list-marker{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.lesson-step-list button.done .step-list-marker{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.aside-progress{border-top:1px solid var(--line);margin-top:23px;padding-top:17px}.aside-progress>div{color:var(--faint);justify-content:space-between;margin-bottom:8px;font-size:9.5px;display:flex}.aside-progress strong{color:var(--ink-2);font-family:var(--font-mono);font-weight:500}.aside-save-note{color:var(--faint);align-items:center;gap:4px;margin-top:9px;font-size:9.5px;display:flex}.aside-exit{color:var(--muted);text-underline-offset:3px;margin-top:18px;font-size:10.5px;text-decoration:underline}.aside-exit:hover{color:var(--ink)}.sheet-step-list{margin-top:0}.sheet-step-list button{align-items:center;min-height:47px;font-size:13px}.sheet-step-list small{color:var(--faint);font-family:var(--font-mono);margin-left:auto;font-size:9px}.selection-action{left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--toast-bg);width:max-content;max-width:calc(100vw - 28px);color:var(--toast-ink);box-shadow:var(--shadow-md);border-radius:11px;align-items:center;gap:11px;padding:7px 8px 7px 14px;animation:.18s both toast-in;display:flex;position:fixed;transform:translate(-50%)}.selection-action>span{text-overflow:ellipsis;white-space:nowrap;opacity:.72;max-width:46vw;font-size:10.5px;overflow:hidden}.selection-explain{background:var(--accent);min-height:34px;color:var(--accent-contrast);white-space:nowrap;border-radius:7px;align-items:center;gap:5px;padding:0 10px;font-size:11px;font-weight:550;display:inline-flex}.selection-dismiss{width:29px;height:29px;color:var(--toast-ink);opacity:.6;border-radius:6px;place-items:center;display:grid}.selection-dismiss:hover{opacity:1;background:#ffffff1a}.lesson-pending{text-align:center;width:100%;max-width:560px;margin:0 auto;padding:90px 28px}.pending-symbol{border:1px solid var(--line);width:52px;height:52px;color:var(--muted);border-radius:50%;place-items:center;margin:0 auto 20px;display:grid}.lesson-pending h1{margin-top:7px;font-size:28px}.lesson-pending>p:not(.eyebrow){color:var(--muted);margin:12px 0 26px;font-size:13.5px;line-height:1.85}.sheet-overlay{z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(2px);justify-content:center;align-items:flex-end;animation:.16s both overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.sheet{border:1px solid var(--line);background:var(--surface);border-bottom:0;border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-width:620px;max-height:90dvh;animation:.22s cubic-bezier(.22,.8,.4,1) both sheet-in;display:flex;overflow:hidden;box-shadow:0 -10px 50px #0003}.sheet.small{max-width:460px}.sheet.chat{max-width:680px;height:min(720px,88dvh)}@keyframes sheet-in{0%{opacity:.4;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.sheet-grabber{background:var(--line-strong);border-radius:99px;flex:0 0 4px;width:34px;height:4px;margin:8px auto 0}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 24px 15px;display:flex}.sheet-head h2{letter-spacing:-.025em;font-size:19px}.sheet-head p{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.6}.sheet-head .icon-button{margin:-5px -8px 0 0}.sheet-content{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:20px 24px 24px;overflow-y:auto}.sheet-footer{padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface);align-items:center;gap:8px;display:flex}.sheet-footer>.button:last-child{margin-left:auto}.sheet-footer .button{flex:none}.footer-spacer{flex:1}.sheet-lead{color:var(--ink-2);margin-bottom:20px;font-size:13.5px;line-height:1.85}.modal-list{margin:16px 0 0;padding:0;list-style:none}.modal-list li{color:var(--muted);margin-bottom:8px;padding-left:15px;font-size:12px;line-height:1.75;position:relative}.modal-list li:before{content:"";background:var(--accent);border-radius:50%;width:3px;height:3px;position:absolute;top:9px;left:2px}.status-facts{border-top:1px solid var(--line);margin-top:18px}.status-facts>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:12px 0;display:flex}.status-facts span{color:var(--muted);font-size:12px}.status-facts strong{color:var(--ink-2);text-align:right;font-size:12px;font-weight:550}.field-label{color:var(--ink-2);margin-bottom:9px;font-size:12px;font-weight:550;display:block}.note-textarea{resize:vertical;border:1px solid var(--line-strong);background:var(--bg);width:100%;min-height:150px;color:var(--ink);border-radius:9px;padding:13px 14px;font-size:14px;line-height:1.8}.note-textarea::placeholder{color:var(--faint)}.field-help{color:var(--faint);margin-top:8px;font-size:10.5px;line-height:1.7}.note-preview{background:var(--bg-subtle);max-height:140px;color:var(--muted);white-space:pre-wrap;border-radius:8px;padding:13px;font-size:12px;line-height:1.75;overflow:auto}.chat-composer{align-items:center;gap:7px;width:100%;display:flex}.chat-composer input{border:1px solid var(--line);background:var(--bg);min-width:0;height:43px;color:var(--ink);border-radius:9px;flex:1;padding:0 13px;font-size:13px}.chat-composer input::placeholder{color:var(--faint)}.send-button{background:var(--accent);width:43px;height:43px;color:var(--accent-contrast);border-radius:9px;flex:0 0 43px;place-items:center;display:grid}.send-button:disabled{opacity:.4}.chat-empty{border:1px dashed var(--line-strong);text-align:center;border-radius:10px;margin-top:20px;padding:22px}.chat-empty.compact{margin-top:14px}.chat-empty-mark{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto 10px;display:grid}.chat-empty p{color:var(--muted);margin:0 auto 15px;font-size:11.5px;line-height:1.75}.prompt-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.prompt-chips button{border:1px solid var(--line);min-height:34px;color:var(--ink-2);background:var(--surface);border-radius:99px;padding:0 10px;font-size:10px}.prompt-chips button:hover{border-color:var(--accent);color:var(--accent)}.chat-messages{flex-direction:column;gap:16px;margin-top:17px;display:flex}.chat-message{align-items:flex-start;gap:8px;max-width:100%;display:flex}.chat-message.user{justify-content:flex-end}.chat-message .chat-bubble{border:1px solid var(--line);background:var(--bg);border-radius:3px 11px 11px;max-width:88%;padding:11px 13px}.chat-message.user .chat-bubble{background:var(--accent-soft);color:var(--ink);border-color:#0000;border-radius:11px 3px 11px 11px}.chat-message.assistant .assistant-avatar{background:var(--accent);width:27px;height:27px;color:var(--accent-contrast);border-radius:8px;flex:0 0 27px;place-items:center;margin-top:1px;display:grid}.chat-bubble pre{color:inherit;font-family:var(--font-sans);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12.2px;line-height:1.85}.chat-demo-label{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);color:var(--faint);margin-top:8px;padding-top:7px;font-size:9px;display:block}.chat-bubble.typing{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chat-bubble.typing em{color:var(--muted);font-size:10px;font-style:normal}.typing-dots{gap:3px;display:flex}.typing-dots span{background:var(--muted);border-radius:50%;width:4px;height:4px;animation:1s ease-in-out infinite typing}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.chat-settings-link{min-height:36px;color:var(--faint);align-items:center;gap:5px;margin-top:14px;font-size:10px;display:inline-flex}.chat-settings-link:hover{color:var(--accent)}.review-page{max-width:960px}.review-head-count{color:var(--muted);align-items:baseline;gap:7px;font-size:11px;display:flex}.review-head-count strong{color:var(--ink);font-family:var(--font-mono);font-size:27px;font-weight:500}.review-principle{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:10px;align-items:flex-start;gap:9px;margin-bottom:21px;padding:13px 15px;display:flex}.review-principle .icon-svg{color:var(--accent);flex:none;margin-top:2px}.review-principle p{font-size:11.5px;line-height:1.75}.review-tabs{border-bottom:1px solid var(--line);gap:25px;display:flex}.review-tabs button{min-height:45px;color:var(--muted);align-items:center;gap:7px;font-size:13px;display:flex;position:relative}.review-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.review-tabs button.active{color:var(--ink);font-weight:550}.review-tabs button.active:after{background:var(--accent)}.review-tabs button span{background:var(--bg-subtle);min-width:18px;color:var(--faint);font-family:var(--font-mono);border-radius:99px;padding:1px 5px;font-size:9px}.filter-row{flex-wrap:wrap;gap:5px;margin:17px 0;display:flex}.filter-row button{min-height:35px;color:var(--muted);border:1px solid #0000;border-radius:7px;align-items:center;gap:5px;padding:0 10px;font-size:11px;display:inline-flex}.filter-row button:hover{background:var(--bg-subtle)}.filter-row button.active{border-color:var(--line);background:var(--surface);color:var(--ink)}.filter-row button span{color:var(--faint);font-family:var(--font-mono);font-size:9px}.review-list{border:1px solid var(--line);background:var(--surface);border-radius:13px;overflow:hidden}.review-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding:20px 22px;display:flex}.review-item:last-child{border-bottom:0}.review-item-main{flex:1;min-width:0}.review-item-top{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.review-type{color:var(--faint);font-size:9.5px}.review-date{color:var(--faint);margin-left:auto;font-size:9px}.review-item h2{letter-spacing:-.015em;margin-top:7px;font-size:16px;font-weight:570}.review-item p{color:var(--muted);margin-top:3px;font-size:11.5px}.review-item-meta{color:var(--faint);flex-wrap:wrap;gap:5px 14px;margin-top:9px;font-size:9.5px;display:flex}.review-item-meta span{align-items:center;gap:4px;display:inline-flex}.review-item-actions{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.review-empty-wrap{border:1px solid var(--line);background:var(--surface);border-radius:13px}.review-empty-wrap .empty-state{margin:0 auto}.review-quiz-question h3{margin:10px 0 18px;font-size:19px;font-weight:600;line-height:1.65}.review-fill{margin-top:18px}.profile-page{max-width:960px}.identity-strip{border:1px solid var(--line);background:var(--surface);border-radius:13px;align-items:center;gap:15px;padding:20px 21px;display:flex}.identity-avatar{background:var(--bg-subtle);width:44px;height:44px;color:var(--muted);border-radius:50%;flex:0 0 44px;place-items:center;display:grid}.identity-copy{flex:1;min-width:0}.identity-copy>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.identity-copy strong{font-size:14px;font-weight:600}.identity-copy p{color:var(--muted);margin-top:3px;font-size:11.5px;line-height:1.6}.record-section,.profile-lesson-section,.library-links-section{margin-top:38px}.record-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:17px;display:grid}.record-cell{border-left:1px solid var(--line);padding:18px 17px}.record-cell:first-child{border-left:0;padding-left:0}.record-cell>span{color:var(--muted);font-size:10.5px;display:block}.record-cell strong{letter-spacing:-.02em;margin-top:6px;font-size:17px;font-weight:560;display:block}.record-cell small{color:var(--faint);margin-top:3px;font-size:9.5px;line-height:1.6;display:block}.profile-lesson{border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:25px;margin-top:16px;padding:21px 22px;display:flex}.profile-lesson>div{flex:1;min-width:0}.profile-lesson-top{color:var(--faint);flex-wrap:wrap;align-items:center;gap:8px;font-size:10px;display:flex}.profile-lesson h3{margin-top:9px;font-size:19px}.profile-lesson p{color:var(--muted);margin:4px 0 13px;font-size:11.5px;line-height:1.65}.profile-lesson>.button{flex:none}.profile-stage-meta{color:var(--faint);flex-wrap:wrap;gap:5px 16px;margin-top:10px;font-size:9.5px;display:flex}.link-list{border-top:1px solid var(--line);margin-top:14px}.link-row,.tool-row{border-bottom:1px solid var(--line);width:100%;min-height:67px;color:var(--ink);text-align:left;align-items:center;gap:13px;padding:10px 2px;display:flex}.link-row:hover .link-copy strong,.tool-row:hover strong{color:var(--accent)}.link-icon,.tool-icon{background:var(--bg-subtle);width:36px;height:36px;color:var(--muted);border-radius:9px;flex:0 0 36px;place-items:center;display:grid}.link-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.link-copy strong,.tool-row strong{font-size:13px;font-weight:570}.link-copy small,.tool-row small{color:var(--muted);font-size:10.5px;line-height:1.55}.link-count{color:var(--faint);font-family:var(--font-mono);font-size:10px}.link-row>.icon-svg,.tool-row>.icon-svg{color:var(--faint)}.profile-tools-section{border-top:1px solid var(--line);margin-top:31px}.tool-row>span:nth-child(2){flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.library-page{max-width:940px}.library-tabs{border-bottom:1px solid var(--line);gap:8px;margin-bottom:28px;padding-bottom:17px;display:flex}.library-tabs button{min-height:40px;color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:0 13px;font-size:12px;display:inline-flex}.library-tabs button:hover{background:var(--bg-subtle);color:var(--ink)}.library-tabs button.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:550}.library-tabs button span{color:var(--faint);font-family:var(--font-mono);font-size:9px}.note-list,.favorite-list{flex-direction:column;gap:13px;display:flex}.note-card,.favorite-card{border:1px solid var(--line);background:var(--surface);border-radius:12px}.note-card{padding:20px 22px 18px}.note-card-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.note-card-top>div:first-child{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.note-date{color:var(--faint);font-size:9.5px}.note-actions{gap:1px;margin-top:-8px;margin-right:-9px;display:flex}.note-actions .icon-button{width:36px;height:36px;color:var(--faint)}.note-card h2{margin-top:12px;font-size:17px;font-weight:570}.note-body{color:var(--ink-2);white-space:pre-wrap;margin-top:8px;font-size:13.5px;line-height:1.9}.note-source{min-height:32px;margin-top:13px;font-size:10.5px}.favorite-card{align-items:stretch;display:flex}.favorite-main{min-width:0;color:var(--ink);text-align:left;flex:1;align-items:flex-start;gap:12px;padding:17px 18px;display:flex}.favorite-main:hover .favorite-copy strong{color:var(--accent)}.favorite-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:8px;flex:0 0 32px;place-items:center;display:grid}.favorite-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.favorite-copy strong{font-size:13px;font-weight:570}.favorite-copy>span{color:var(--muted);font-size:11.5px;line-height:1.7}.favorite-copy small{color:var(--faint);font-size:9.5px}.favorite-main>.icon-svg{color:var(--faint);margin-top:8px}.remove-favorite{border-left:1px solid var(--line);min-width:58px;color:var(--faint);flex:none;font-size:10.5px}.remove-favorite:hover{color:var(--danger);background:var(--danger-soft)}.glossary-toolbar{justify-content:space-between;align-items:center;gap:13px;display:flex}.search-field{border:1px solid var(--line);background:var(--surface);max-width:320px;height:42px;color:var(--faint);border-radius:9px;flex:1;align-items:center;gap:7px;padding:0 11px;display:flex}.search-field:focus-within{border-color:var(--accent)}.search-field input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:12.5px}.search-field input::placeholder{color:var(--faint)}.search-field button{width:26px;height:26px;color:var(--faint);border-radius:5px;place-items:center;display:grid}.area-chips{gap:4px;display:flex}.area-chips button{min-height:36px;color:var(--muted);border-radius:7px;padding:0 10px;font-size:10.5px}.area-chips button.active{background:var(--bg-subtle);color:var(--ink)}.glossary-count{color:var(--faint);font-family:var(--font-mono);margin-top:16px;font-size:9.5px}.term-list{border-top:1px solid var(--line);margin-top:8px}.term-row{border-bottom:1px solid var(--line)}.term-head{text-align:left;align-items:center;gap:10px;width:100%;min-height:61px;padding:10px 2px;display:flex}.term-head:hover .term-name strong{color:var(--accent)}.term-name{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.term-name strong{color:var(--ink);font-size:14px;font-weight:570}.term-name small{color:var(--faint);font-family:var(--font-mono);font-size:9.5px}.term-head>.icon-svg{color:var(--faint);transition:transform .18s}.term-row.open .term-head>.icon-svg{transform:rotate(180deg)}.term-body{padding:0 0 20px}.term-body p{max-width:670px;color:var(--ink-2);font-size:13px;line-height:1.9}.term-body .code-shell{max-width:560px}.assistant-page{max-width:1120px;padding-top:38px}.assistant-header{justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:23px;display:flex}.assistant-header h1{letter-spacing:-.04em;margin-top:6px;font-size:31px}.assistant-header p:not(.eyebrow){max-width:680px;color:var(--muted);margin-top:8px;font-size:13.5px;line-height:1.8}.assistant-header>.pill{margin-top:22px}.assistant-status-bar{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:18px;margin-bottom:20px;padding:10px 14px;display:flex}.assistant-status-copy{color:var(--muted);flex:1;align-items:center;gap:7px;font-size:10.5px;display:flex}.assistant-status-copy .status-dot{background:var(--warm)}.assistant-state-control{color:var(--faint);align-items:center;gap:7px;font-size:9.5px;display:flex}.assistant-state-control select{border:1px solid var(--line);background:var(--bg);height:32px;color:var(--ink-2);cursor:pointer;border-radius:6px;padding:0 26px 0 8px;font-size:10.5px}.chat-panel{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;height:min(710px,100dvh - 250px);min-height:520px;display:flex;overflow:hidden}.chat-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:58px;padding:10px 19px;display:flex}.chat-panel-head>div{flex-direction:column;gap:1px;display:flex}.chat-panel-head strong{font-size:12.5px;font-weight:600}.chat-panel-head span{color:var(--faint);font-size:9.5px}.chat-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;flex:1;min-height:0;padding:18px 19px;overflow-y:auto}.chat-scroll .chat-message{margin-bottom:15px}.chat-scroll .chat-bubble{max-width:86%}.assistant-suggestions{border-top:1px solid var(--line);margin:24px 0 4px;padding-top:18px}.assistant-suggestions>p{color:var(--faint);letter-spacing:.04em;margin-bottom:9px;font-size:9.5px}.assistant-suggestions button{border-bottom:1px solid var(--line);width:100%;min-height:43px;color:var(--ink-2);text-align:left;justify-content:space-between;align-items:center;gap:15px;padding:0 11px;font-size:11.5px;display:flex}.assistant-suggestions button:hover{color:var(--accent);background:var(--bg-subtle)}.assistant-suggestions button .icon-svg{color:var(--faint)}.chat-error{border:1px solid color-mix(in srgb, var(--danger) 25%, var(--line));background:var(--danger-soft);border-radius:9px;margin:7px 0 17px 35px;padding:14px 15px}.chat-error.waiting{border-color:color-mix(in srgb, var(--warm) 25%, var(--line));background:var(--warm-soft)}.chat-error-head{color:var(--danger);align-items:center;gap:7px;font-size:12px;display:flex}.chat-error.waiting .chat-error-head{color:var(--warm)}.chat-error p{color:var(--ink-2);margin:6px 0 10px;font-size:11px;line-height:1.75}.chat-error-actions{flex-wrap:wrap;gap:6px;display:flex}.assistant-composer{border-top:1px solid var(--line);background:var(--surface);align-items:flex-end;gap:7px;padding:11px 13px 7px;display:flex}.assistant-composer textarea{resize:none;border:1px solid var(--line);background:var(--bg);min-height:43px;max-height:120px;color:var(--ink);border-radius:9px;flex:1;padding:11px 12px;font-size:12.5px;line-height:1.6}.assistant-composer textarea::placeholder{color:var(--faint)}.composer-note{background:var(--surface);color:var(--faint);padding:0 15px 9px;font-size:8.5px;line-height:1.5}.assistant-aside{flex-direction:column;gap:14px;display:flex}.assistant-context,.assistant-boundary,.assistant-api-card{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:17px 18px}.context-lesson{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;margin:12px 0 10px;padding-bottom:12px;display:flex}.context-lesson>span{color:var(--faint);font-size:9px}.context-lesson strong{margin-top:2px;font-size:13px;font-weight:570}.context-lesson small{color:var(--muted);font-size:10px}.context-row{color:var(--muted);justify-content:space-between;gap:15px;padding:6px 0;font-size:10px;display:flex}.context-row strong{color:var(--ink-2);text-align:right;font-size:10px;font-weight:500}.assistant-boundary ul{margin:10px 0 0;padding:0;list-style:none}.assistant-boundary li{color:var(--muted);margin-bottom:7px;padding-left:11px;font-size:10px;line-height:1.7;position:relative}.assistant-boundary li:before{content:"";background:var(--accent);border-radius:50%;width:3px;height:3px;position:absolute;top:7px;left:0}.api-card-head{align-items:center;gap:9px;display:flex}.api-icon{background:var(--bg-subtle);width:29px;height:29px;color:var(--muted);border-radius:7px;place-items:center;display:grid}.api-card-head>div{flex-direction:column;flex:1;display:flex}.api-card-head strong{font-size:11.5px;font-weight:570}.api-card-head small{color:var(--faint);font-size:9px}.assistant-api-card>p{color:var(--muted);margin:11px 0 12px;font-size:10px;line-height:1.7}.settings-page{max-width:880px}.settings-section{border-top:1px solid var(--line);padding:30px 0}.settings-section:first-of-type{border-top:0;padding-top:0}.settings-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:19px;display:flex}.settings-heading h2{letter-spacing:-.025em;font-size:19px}.settings-heading p{max-width:650px;color:var(--muted);margin-top:4px;font-size:12px;line-height:1.7}.settings-heading>.pill{margin-top:1px}.theme-options{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.theme-options button{border:1px solid var(--line);background:var(--surface);min-height:62px;color:var(--muted);text-align:left;border-radius:10px;align-items:center;gap:9px;padding:0 16px;font-size:12.5px;display:flex;position:relative}.theme-options button:hover{border-color:var(--line-strong)}.theme-options button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.theme-check{color:var(--accent);margin-left:auto}.theme-preview{border:1px solid var(--line);background:var(--surface);border-radius:9px;margin-top:11px;padding:16px 18px}.theme-preview>span{color:var(--faint);letter-spacing:.06em;margin-bottom:5px;font-size:9px;display:block}.theme-preview p{color:var(--ink-2);font-size:13px;line-height:1.85}.form-stack{flex-direction:column;gap:16px;margin-top:19px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--ink-2);font-size:11.5px;font-weight:550}.field input{border:1px solid var(--line);background:var(--surface);width:100%;height:44px;color:var(--ink);font-family:var(--font-mono);border-radius:8px;padding:0 12px;font-size:12.5px}.field input::placeholder{color:var(--faint);font-family:var(--font-sans)}.field small{color:var(--faint);font-size:9.5px;line-height:1.6}.password-field{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:0;display:flex;overflow:hidden}.password-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.password-field input{background:0 0;border:0;border-radius:0}.field .password-field input:focus-visible{outline:0}.password-field button{border-left:1px solid var(--line);height:42px;color:var(--muted);flex:none;padding:0 12px;font-size:10.5px}.connection-result{border:1px solid var(--line);background:var(--bg-subtle);border-radius:9px;align-items:flex-start;gap:9px;margin-top:15px;padding:13px 14px;display:flex}.connection-result .icon-svg{flex:none;margin-top:1px}.connection-result.demo .icon-svg{color:var(--accent)}.connection-result.error{border-color:color-mix(in srgb, var(--danger) 25%, var(--line));background:var(--danger-soft)}.connection-result.error .icon-svg{color:var(--danger)}.connection-result.testing .icon-svg{color:var(--warm)}.connection-result strong{color:var(--ink);font-size:11.5px;font-weight:570;display:block}.connection-result p{color:var(--muted);margin-top:2px;font-size:10.5px;line-height:1.65}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.settings-fineprint{color:var(--faint);margin-top:11px;font-size:9.5px;line-height:1.6}.status-list{border-top:1px solid var(--line)}.status-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:62px;padding:10px 0;display:flex}.status-row-icon{background:var(--bg-subtle);width:32px;height:32px;color:var(--muted);border-radius:8px;flex:0 0 32px;place-items:center;display:grid}.status-row>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.status-row strong{font-size:12px;font-weight:550}.status-row small{color:var(--muted);font-size:10.5px;line-height:1.6}.status-value{color:var(--muted);white-space:nowrap;flex:none;font-size:10px}.status-value.neutral{border:1px solid var(--line);background:var(--bg-subtle);color:var(--faint);border-radius:99px;padding:2px 7px}.settings-section>.button{margin-top:14px}.install-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:15px;padding:16px 17px;display:flex}.install-visual{align-items:center;gap:8px;display:flex}.install-visual strong{letter-spacing:.04em;font-size:14px;font-weight:650}.install-copy{flex:1;min-width:0}.install-copy strong{font-size:12px;font-weight:570;display:block}.install-copy p{color:var(--muted);margin-top:2px;font-size:10.5px;line-height:1.65}.prototype-status{grid-template-columns:repeat(3,1fr);gap:24px;padding-top:4px;display:grid}.prototype-status ul{margin:10px 0 0;padding:0;list-style:none}.prototype-status li{color:var(--muted);margin-bottom:6px;padding-left:11px;font-size:10.5px;line-height:1.7;position:relative}.prototype-status li:before{content:"";background:var(--line-strong);border-radius:50%;width:3px;height:3px;position:absolute;top:7px;left:0}.danger-zone .settings-heading{margin-bottom:15px}.danger-zone h2{color:var(--danger)}.settings-footer-note{border-top:1px solid var(--line);color:var(--faint);text-align:center;margin-top:25px;padding-top:22px;font-size:9.5px;line-height:1.7}.future-steps{flex-direction:column;margin-top:17px;display:flex}.future-steps>div{border-top:1px solid var(--line);gap:12px;padding:12px 0;display:flex}.future-steps>div>span{color:var(--faint);font-family:var(--font-mono);font-size:9.5px}.future-steps strong{font-size:12px;font-weight:570;display:block}.future-steps p{color:var(--muted);margin-top:2px;font-size:10.5px;line-height:1.7}.install-steps{border-top:1px solid var(--line)}.install-steps>div{border-bottom:1px solid var(--line);padding:13px 0}.install-steps span{color:var(--accent);font-size:10px;font-weight:600}.install-steps p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.8}@media (width<=1180px){:root{--sidebar-width:228px}.page-container{padding-left:34px;padding-right:34px}.lesson-layout{grid-template-columns:minmax(0,1fr) 228px;gap:32px;padding-left:26px;padding-right:26px}.lesson-sheet{padding:42px 42px 32px}.continue-card{grid-template-columns:minmax(0,1fr) 195px}.home-grid{grid-template-columns:minmax(0,1fr) 270px;gap:26px}}@media (width<=980px){:root{--sidebar-width:0px}.sidebar{display:none}.app-main{margin-left:0}.mobile-bar{z-index:50;height:calc(54px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 17px 0;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(15px);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.mobile-brand{min-height:44px;color:var(--ink);align-items:center;gap:9px;display:flex}.mobile-brand strong{letter-spacing:.05em;font-size:15px;font-weight:660}.mobile-bar-actions{align-items:center;display:flex}.ai-shortcut{color:var(--accent)}.bottom-nav{z-index:50;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(16px);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:57px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:9px;display:flex;position:relative}.bottom-nav button.active{color:var(--accent)}.bottom-icon{border-radius:8px;place-items:center;width:36px;height:29px;display:grid;position:relative}.bottom-nav button.active .bottom-icon{background:var(--accent-soft)}.nav-dot{background:var(--warm);border-radius:50%;width:5px;height:5px;position:absolute;top:2px;right:5px}.page-container{padding-top:28px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.main-content.immersive-content{padding-bottom:0}.home-grid{grid-template-columns:1fr}.home-aside{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin-top:7px;display:grid}.quick-link{grid-column:1/-1}.continue-card{grid-template-columns:minmax(0,1fr) 215px}.lesson-layout{max-width:820px;padding-top:24px;padding-bottom:calc(45px + env(safe-area-inset-bottom,0px));display:block}.lesson-aside{display:none}.lesson-toc-trigger{border:1px solid var(--line);min-height:30px;color:var(--muted);border-radius:6px;align-items:center;gap:3px;margin-left:auto;padding:0 8px;font-size:10px;display:inline-flex}.lesson-sheet{border-radius:14px}.lesson-step-footer{z-index:5;padding:13px 24px calc(13px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(12px);margin-left:-24px;margin-right:-24px;position:sticky;bottom:0}.assistant-layout{grid-template-columns:1fr}.assistant-aside{grid-template-columns:1fr 1fr;display:grid}.assistant-api-card{grid-column:1/-1}.chat-panel{height:min(660px,70dvh);min-height:480px}.assistant-page{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px));padding-top:26px}.welcome-page{padding:0 32px 22px}.welcome-main{grid-template-columns:1fr;gap:38px;padding:48px 0 42px}.welcome-route{max-width:540px}}@media (width<=760px){.page-container{padding:24px 18px calc(88px + env(safe-area-inset-bottom,0px))}.page-header{margin-bottom:27px;display:block}.page-header h1{font-size:27px}.page-description{font-size:13.5px;line-height:1.75}.page-header-action{padding-top:14px}.page-header-action .button{width:auto}.home-intro{margin-bottom:23px;display:block}.home-intro h1{font-size:28px;line-height:1.35}.desktop-assistant-button{display:none}.home-lede{font-size:13px}.continue-card{padding:23px 21px;display:block}.continue-card h2{margin-top:12px;font-size:23px}.continue-card p{font-size:12.5px}.continue-art{display:none}.continue-actions{margin-top:17px}.continue-actions .button{flex:1;min-height:46px}.continue-actions .text-button{flex:none;font-size:11.5px}.next-task{align-items:flex-start;padding:15px}.next-task-action{display:none}.next-task-copy>span{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stage-overview{margin-top:32px}.stage-progress-row{display:block}.stage-dots{margin-top:11px}.home-aside{display:flex}.inline-banner{flex-wrap:wrap;align-items:flex-start}.inline-banner>div{flex-basis:calc(100% - 32px)}.inline-banner .button{min-height:36px;margin-left:30px}.roadmap-summary{gap:6px 13px}.stage-header{gap:12px;padding:17px 15px}.stage-marker{flex-basis:31px;width:31px;height:31px;font-size:9px}.stage-heading-top strong{font-size:14px}.stage-body{padding:0 15px 16px}.stage-outcome{margin-top:3px}.course-row{gap:10px}.course-side{padding-top:2px}.course-open{font-size:10px}.roadmap-footer-note{display:block}.roadmap-footer-note>p{margin-top:11px}.result-wrap{padding:34px 18px 0}.result-header h1{font-size:29px}.result-lede{font-size:14px}.recommend-card{padding:22px 20px}.recommend-top{margin-bottom:18px}.recommend-card h2{font-size:23px}.recommend-actions .button.primary{width:100%}.recommend-actions .button.ghost{margin:0 auto}.result-group{gap:12px}.result-group small{max-width:52vw}.mini-score{flex-basis:87px}.mini-score-bar{display:none}.test-wrap{padding:25px 16px 55px}.group-progress{gap:10px}.group-progress-label{font-size:9px}.question-card{border-radius:13px;padding:23px 18px}.question-title{margin-top:12px;font-size:20px;line-height:1.6}.option-button{min-height:55px;padding:13px;font-size:13px}.question-actions{margin-top:22px}.question-actions .button{flex:1}.test-top{padding-left:15px;padding-right:15px}.immersive-brand{font-size:11px}.top-spacer{flex-basis:50px;width:50px}.lesson-topbar{padding-left:14px;padding-right:14px}.lesson-layout{padding:14px 0 0}.lesson-sheet{padding:28px 19px calc(22px + env(safe-area-inset-bottom,0px));background:var(--bg);border-left:0;border-right:0;border-radius:0}.lesson-heading{padding-bottom:22px}.lesson-heading h1{margin-top:13px;font-size:30px;line-height:1.3}.lesson-subtitle{font-size:14px}.lesson-meta{gap:6px 12px;margin-top:15px}.step-heading{padding:27px 0 20px}.step-heading h2{margin-top:9px;font-size:23px}.step-content p{font-size:16px;line-height:1.92}.reading-lede{font-size:17px!important;line-height:1.85!important}.analogy-machine{flex-direction:column;gap:7px;display:flex}.analogy-arrow{height:19px;transform:rotate(90deg)}.analogy-cell{padding:14px}.analogy-cell p{margin-bottom:8px}.explain-code-row{display:block}.explain-code-row p{margin-bottom:11px}.compare-table th,.compare-table td{min-width:112px;padding:10px 11px;font-size:11.5px}.compare-table th:first-child,.compare-table td:first-child{min-width:128px}.lesson-tools{margin-top:28px}.lesson-tools button{flex:1;justify-content:center;padding:0 5px;font-size:10px}.lesson-step-footer{padding:10px 19px calc(10px + env(safe-area-inset-bottom,0px));margin-left:-19px;margin-right:-19px}.lesson-step-footer .button{min-height:45px;padding:0 15px}.step-footer-progress{display:none}.exercise-card{padding:20px 16px}.exercise-card h3{font-size:17.5px}.exercise-card .option-button{font-size:12.5px}.practice-overview{display:block}.practice-count{margin-top:7px;display:block}.exercise-nav{gap:5px}.exercise-nav button{width:34px;height:34px}.exercise-actions{display:block}.exercise-actions .button{width:100%}.exercise-auto-note{text-align:center;margin-top:9px;display:block}.practice-summary{padding:26px 17px}.practice-summary-stats{margin-top:19px}.practice-summary-actions .button.primary,.practice-summary-actions .button.ghost{width:100%}.summary-result-card{display:block}.summary-result-card .button{margin-top:12px}.next-suggestion{padding:18px}.lesson-completed-panel{grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:19px}.completed-mark{width:38px;height:38px}.completed-actions{grid-column:1/-1;margin-top:12px}.completed-actions .button{flex:1}.lesson-pending{padding:65px 22px}.sheet-overlay{padding-top:env(safe-area-inset-top,0px)}.sheet{border-radius:16px 16px 0 0;max-height:92dvh}.sheet-head{padding:14px 18px 13px}.sheet-head h2{font-size:18px}.sheet-content{padding:17px 18px 20px}.sheet-footer{padding:10px 18px calc(10px + env(safe-area-inset-bottom,0px))}.sheet-footer .button{min-height:44px}.sheet.chat{height:88dvh}.chat-message .chat-bubble{max-width:91%}.selection-action{bottom:calc(84px + env(safe-area-inset-bottom,0px));gap:7px;padding-left:11px}.selection-action>span{max-width:38vw}.review-head-count{margin-top:4px}.review-head-count strong{font-size:22px}.review-item{padding:17px 16px;display:block}.review-item-actions{flex-direction:row;justify-content:flex-start;align-items:center;margin-top:13px}.review-date{margin-left:0}.review-item-top{gap:6px}.review-principle{padding:11px 12px}.identity-strip{flex-wrap:wrap;align-items:flex-start;padding:17px}.identity-copy{flex-basis:calc(100% - 60px)}.identity-strip>.text-button{margin-left:59px}.record-grid{grid-template-columns:1fr 1fr}.record-cell{padding:14px 13px}.record-cell:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}.record-cell:nth-child(4){border-top:1px solid var(--line)}.record-cell strong{font-size:15px}.profile-lesson{padding:17px;display:block}.profile-lesson>.button{width:100%;margin-top:14px}.link-row,.tool-row{min-height:64px}.library-tabs{gap:4px;overflow-x:auto}.library-tabs button{flex:1;justify-content:center;padding:0 8px}.note-card{padding:17px}.favorite-main{padding:15px}.remove-favorite{min-width:51px}.glossary-toolbar{display:block}.search-field{max-width:none}.area-chips{flex-wrap:wrap;margin-top:9px}.term-name{display:block}.term-name small{margin-top:1px;display:block}.term-name strong{font-size:14px}.assistant-header{display:block}.assistant-page{padding-top:20px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.assistant-header h1{font-size:27px}.assistant-header>.pill{margin-top:13px;display:inline-flex}.assistant-status-bar{flex-wrap:wrap;gap:8px 12px;padding:10px 12px}.assistant-status-copy{flex-basis:calc(100% - 1px)}.assistant-state-control{margin-right:auto}.assistant-layout{gap:17px}.assistant-aside{display:flex}.chat-panel{height:calc(100dvh - 360px - env(safe-area-inset-bottom,0px));min-height:300px;max-height:560px}.chat-scroll{padding:15px 14px}.composer-note{font-size:8px}.chat-error{margin-left:0}.settings-section{padding:25px 0}.theme-options button{justify-content:center;min-height:56px;padding:0 8px;font-size:11px}.theme-options button .theme-check{display:none}.theme-options button .icon-svg{width:18px}.settings-actions .button{flex:1}.install-row{flex-wrap:wrap;align-items:flex-start}.install-copy{flex-basis:calc(100% - 130px)}.install-row>.button{width:100%;margin-top:2px}.prototype-status{grid-template-columns:1fr;gap:20px}.welcome-page{padding:0 20px calc(12px + env(safe-area-inset-bottom,0px))}.welcome-top{min-height:calc(65px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.welcome-top-note{display:none}.welcome-main{gap:30px;padding:39px 0 34px}.welcome-hero h1{font-size:clamp(32px,9vw,44px);line-height:1.16}.welcome-lede{margin-top:19px;font-size:15px;line-height:1.85}.welcome-actions{margin-top:26px;display:block}.welcome-actions .button.primary{width:100%}.welcome-actions .button.ghost{width:100%;margin-top:3px}.welcome-meta{justify-content:center}.welcome-route{padding:20px 19px 13px}.welcome-route li{min-height:49px}.welcome-principles{grid-template-columns:1fr;gap:19px;padding:24px 0}.welcome-foot{padding-bottom:7px}.toast{top:calc(68px + env(safe-area-inset-top,0px));bottom:auto}}@media (width<=380px){.page-container{padding-left:15px;padding-right:15px}.lesson-sheet{padding-left:16px;padding-right:16px}.lesson-heading h1{font-size:27px}.home-intro h1{font-size:25px}.continue-card{padding-left:17px;padding-right:17px}.continue-actions{display:block}.continue-actions .button.primary{width:100%}.continue-actions .text-button{margin-top:4px}.group-progress-label{text-overflow:ellipsis;overflow:hidden}.group-progress-label em{display:none}.assistant-composer{padding-left:9px;padding-right:9px}.theme-options button{gap:5px;font-size:10px}}.recommendation-banner{padding:11px 14px}.home-session-label{margin-bottom:9px}.home-session-label .muted{font-size:10px;font-weight:400}.recommendation-banner>div{min-width:0}.recommendation-banner strong{font-size:12px}.recommendation-banner span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recommendation-banner .text-button{flex:none}.session-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;padding:27px 29px 24px}.session-card.review{border-color:color-mix(in srgb, var(--warm) 24%, var(--line))}.session-kicker{color:var(--faint);flex-wrap:wrap;align-items:center;gap:7px;font-size:10.5px;display:flex}.session-kicker .pill+.pill{margin-left:0}.session-course{color:var(--muted)!important;margin-top:17px!important;margin-bottom:3px!important;font-size:13px!important;line-height:1.5!important}.session-card h2{color:var(--ink);letter-spacing:-.035em;margin-top:3px;font-size:27px;font-weight:650;line-height:1.36}.session-card.review h2,.session-card.test h2{margin-top:16px}.session-meta-line{font-family:var(--font-mono);color:var(--accent-ink)!important;margin:8px 0 0!important;font-size:11.5px!important;line-height:1.6!important}.session-description{max-width:560px;color:var(--ink-2)!important;margin-top:11px!important;font-size:13px!important;line-height:1.8!important}.session-button{min-width:148px;min-height:46px;margin-top:21px}.session-course-progress{border-top:1px solid var(--line);margin-top:23px;padding-top:15px}.session-course-progress>div{color:var(--faint);justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;font-size:10px;display:flex}.session-course-progress strong{color:var(--muted);font-family:var(--font-mono);font-size:10px;font-weight:500}.fallback-links{flex-wrap:wrap;gap:4px 16px;margin-top:12px;display:flex}.secondary-course{border:1px solid var(--line);background:var(--bg-subtle);border-radius:12px;margin-top:17px;padding:16px 18px}.secondary-course-head{justify-content:space-between;align-items:center;gap:15px;display:flex}.secondary-course-head .section-label{margin:0}.secondary-course-head .muted{font-size:9.5px}.secondary-course-row{justify-content:space-between;align-items:center;gap:18px;margin-top:10px;display:flex}.secondary-course-row>div{flex-direction:column;gap:3px;min-width:0;display:flex}.secondary-course-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:570;overflow:hidden}.secondary-course-row span{color:var(--ink-2);font-size:11.5px;line-height:1.6}.secondary-course-row small{color:var(--faint);font-size:10px}.secondary-course-row .button{flex:none}.stage-dots span.pending{opacity:.28}.home-mastery{margin-top:15px}.home-mastery .knowledge-summary{margin-top:0}.home-mastery>p{color:var(--faint);margin-top:9px;font-size:9.5px;line-height:1.65}.knowledge-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px;display:grid}.knowledge-summary-cell{border-left:1px solid var(--line);padding:14px 15px}.knowledge-summary-cell:first-child{border-left:0;padding-left:0}.knowledge-summary-cell strong{color:var(--ink);font-family:var(--font-mono);font-size:21px;font-weight:500;line-height:1.2;display:block}.knowledge-summary-cell span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.knowledge-summary-cell.needs_work strong{color:var(--warm)}.knowledge-summary-cell.initial strong,.knowledge-summary-cell.mastered strong{color:var(--accent)}.knowledge-summary-cell.unassessed strong{color:var(--faint)}.knowledge-caption{color:var(--muted);margin-top:10px;font-size:10.5px;line-height:1.75}.knowledge-section{margin-top:35px}.knowledge-section .section-heading{align-items:flex-end}.knowledge-section .section-heading .muted{font-size:10px}.knowledge-detail{border-top:1px solid var(--line);margin-top:17px}.knowledge-detail>summary{min-height:44px;color:var(--accent);cursor:pointer;align-items:center;font-size:11.5px;list-style:none;display:flex}.knowledge-detail>summary::-webkit-details-marker{display:none}.knowledge-detail>summary:after{content:"+";font-family:var(--font-mono);margin-left:6px}.knowledge-detail[open]>summary:after{content:"−"}.knowledge-point-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.knowledge-point-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:12px 0;display:flex}.knowledge-point-list li>span{flex-direction:column;gap:2px;min-width:0;display:flex}.knowledge-point-list strong{font-size:12px;font-weight:550}.knowledge-point-list small{color:var(--faint);font-size:9.5px}.review-knowledge{margin-bottom:22px}.review-knowledge .section-heading{align-items:flex-end}.review-knowledge .knowledge-summary{margin-top:12px}.review-knowledge .knowledge-caption{margin-top:8px}.settings-recommendation{border:1px solid var(--line);background:var(--bg-subtle);border-radius:11px;padding:17px 18px}.settings-recommendation>strong{color:var(--ink);margin-top:4px;font-size:15px;font-weight:570;display:block}.settings-recommendation>p:not(.eyebrow){color:var(--ink-2);margin-top:4px;font-size:12px;line-height:1.7}.settings-recommendation .chip-row{margin-top:10px}.settings-recommendation>small{color:var(--muted);margin-top:10px;font-size:10.5px;line-height:1.7;display:block}.ai-demo-control{border:1px solid var(--line);background:var(--surface);border-radius:9px;justify-content:space-between;align-items:center;gap:18px;margin-top:15px;padding:13px 15px;display:flex}.ai-demo-control>div{min-width:0}.ai-demo-control strong{font-size:11.5px;font-weight:570;display:block}.ai-demo-control p{color:var(--muted);margin-top:2px;font-size:10px;line-height:1.6}.ai-demo-control select{border:1px solid var(--line);background:var(--bg);max-width:160px;height:36px;color:var(--ink-2);border-radius:7px;padding:0 27px 0 9px;font-size:10.5px}.roadmap-recommendation{border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line));background:var(--accent-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:15px;padding:18px 20px;display:flex}.roadmap-recommendation-copy{min-width:0}.roadmap-recommendation h2{color:var(--accent-ink);margin-top:4px;font-size:19px}.roadmap-recommendation p:not(.eyebrow){color:var(--ink-2);margin-top:3px;font-size:11.5px;line-height:1.7}.roadmap-recommendation .chip-row{margin-top:8px}.roadmap-recommendation small{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.6;display:block}.roadmap-recommendation>.button{flex:none}.course-row.recommended{background:color-mix(in srgb, var(--accent-soft) 62%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.result-direction{border-top:1px solid var(--line);margin-top:17px;padding-top:15px}.result-direction>span{color:var(--faint);margin-bottom:8px;font-size:10px;display:block}.result-direction ol{color:var(--ink-2);margin:0;padding-left:17px;font-size:11.5px;line-height:1.8}.result-footer-actions{flex-wrap:wrap;align-items:center;gap:5px 14px;margin-top:20px;display:flex}.result-footer-actions>span{color:var(--faint);font-size:10px}.review-keypoints{border-top:1px solid var(--line);margin:27px 0}.review-keypoint{border-bottom:1px solid var(--line);grid-template-columns:27px minmax(0,1fr);gap:13px;padding:19px 0;display:grid}.review-keypoint>span{color:var(--accent);font-family:var(--font-mono);font-size:10px}.review-keypoint h3{color:var(--ink);font-size:16px;font-weight:590}.review-keypoint p{color:var(--ink-2)!important;margin:6px 0 0!important;font-size:13.5px!important;line-height:1.85!important}.review-keypoint .code-shell{margin:12px 0 0}.profile-current-step{font-weight:550;color:var(--ink)!important;margin-top:10px!important;font-size:13px!important;line-height:1.65!important}.profile-empty-course{border:1px solid var(--line);background:var(--surface);border-radius:11px;margin-top:16px;padding:20px}.profile-empty-course p{color:var(--muted);margin-bottom:13px;font-size:12px;line-height:1.8}.assistant-mobile-head{display:none}.assistant-page{height:auto;padding-top:32px;overflow:visible}.assistant-header{align-items:center;margin-bottom:11px}.assistant-header h1{font-size:30px}.assistant-header .text-button{flex:none}.assistant-demo-line{border:1px solid color-mix(in srgb, var(--warm) 20%, var(--line));background:var(--warm-soft);color:var(--warm);border-radius:8px;flex-wrap:wrap;align-items:center;gap:5px 8px;margin-bottom:12px;padding:9px 12px;font-size:10.5px;line-height:1.6;display:flex}.assistant-demo-line em{color:var(--muted);font-size:9.5px;font-style:normal}.assistant-layout{grid-template-columns:minmax(0,1fr) 292px;align-items:stretch;gap:24px;display:grid}.assistant-page .chat-panel{height:min(690px,100dvh - 230px);min-height:470px}.assistant-page .chat-panel-head{min-height:52px}.assistant-page .chat-scroll{padding:18px}.assistant-page .chat-bubble pre{font-size:12.8px;line-height:1.9}.assistant-aside{align-self:stretch}@media (width<=980px){.assistant-page{height:var(--assistant-vh,100dvh);max-height:var(--assistant-vh,100dvh);padding:env(safe-area-inset-top,0px) 16px 6px;flex-direction:column;display:flex;overflow:hidden}.assistant-mobile-head{border-bottom:1px solid var(--line);flex:0 0 49px;justify-content:space-between;align-items:center;gap:10px;min-height:49px;display:flex}.assistant-mobile-head .back-button{margin-left:-8px;font-size:12px}.assistant-mobile-head>strong{color:var(--ink);text-align:center;flex:1;font-size:13px;font-weight:600}.assistant-mobile-head .text-button{min-height:38px;font-size:11px}.assistant-header{display:none}.assistant-demo-line{flex:none;margin:9px 0 0}.assistant-layout{flex:1;min-height:0;margin-top:9px;display:flex}.assistant-aside{display:none}.assistant-page .chat-panel{border-radius:12px;flex:1;width:100%;height:auto;min-height:0;max-height:none;display:flex}.assistant-page .chat-panel-head{flex:none}.assistant-page .chat-scroll{min-height:0}.assistant-page .assistant-composer{flex:none}}@media (width<=760px){.session-card{border-radius:14px;padding:21px 20px 19px}.session-card h2{font-size:23px}.session-course{margin-top:13px!important;font-size:12px!important}.session-meta-line{font-size:11px!important}.session-description{font-size:12.5px!important}.session-button{width:100%;margin-top:17px}.session-course-progress{margin-top:17px}.secondary-course{padding:14px 15px}.secondary-course-row{display:block}.secondary-course-row>.button{width:100%;margin-top:10px}.secondary-course-row span{font-size:11px}.secondary-course-head .muted{display:none}.recommendation-banner{flex-wrap:wrap;align-items:flex-start}.recommendation-banner>div{flex:calc(100% - 34px)}.recommendation-banner span{text-overflow:clip;white-space:normal;overflow:visible}.recommendation-banner .text-button{min-height:34px;margin-left:25px;font-size:10.5px}.knowledge-summary{margin-top:13px}.knowledge-summary-cell{padding:12px 9px}.knowledge-summary-cell:first-child{padding-left:0}.knowledge-summary-cell strong{font-size:18px}.knowledge-summary-cell span{font-size:9.5px}.knowledge-caption{font-size:10px}.knowledge-section .section-heading{display:block}.knowledge-section .section-heading .muted{margin-top:4px;display:block}.review-knowledge .section-heading{display:flex}.roadmap-recommendation{padding:16px;display:block}.roadmap-recommendation>.button{width:100%;margin-top:13px}.ai-demo-control{flex-wrap:wrap;align-items:flex-start}.ai-demo-control>label{width:100%}.ai-demo-control select{width:100%;max-width:none}.review-keypoint{grid-template-columns:22px minmax(0,1fr);gap:9px;padding:16px 0}.review-keypoint h3{font-size:15px}.review-keypoint p{font-size:13px!important}.lesson-meta{font-size:11px}.step-index{font-size:10px}.code-head{min-height:38px;font-size:10px}.code-copy{min-height:34px;font-size:10.5px}.code-body{padding-top:12px;padding-bottom:12px;font-size:13px}.code-line.clickable{align-items:center;min-height:34px}.line-number{flex-basis:42px;width:42px;font-size:10px}.code-tip{padding:9px 14px;font-size:10px}.lesson-tools{gap:2px;padding:8px 0}.lesson-tools button{min-height:44px;font-size:11px}.lesson-step-footer .button{min-height:48px}.selection-action{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.selection-action>span{font-size:11px}.selection-explain{min-height:38px}.exercise-auto-note,.fill-hint{font-size:10.5px!important}.hint-panel p{font-size:13px}.note-label{font-size:10px}.analogy-step{font-size:9.5px}.assistant-page{height:var(--assistant-vh,100dvh);max-height:var(--assistant-vh,100dvh);padding:env(safe-area-inset-top,0px) 12px 6px;flex-direction:column;display:flex;overflow:hidden}.assistant-mobile-head{border-bottom:1px solid var(--line);flex:0 0 47px;justify-content:space-between;align-items:center;gap:10px;min-height:47px;display:flex}.assistant-mobile-head .back-button{margin-left:-7px;font-size:12px}.assistant-mobile-head>strong{color:var(--ink);text-align:center;flex:1;font-size:13px;font-weight:600}.assistant-mobile-head .text-button{min-height:38px;font-size:11px}.assistant-header{display:none}.assistant-demo-line{flex:none;margin:8px 0 0;padding:7px 9px;font-size:11px;line-height:1.55}.assistant-demo-line em{flex-basis:100%;display:block}.assistant-layout{flex:1;min-height:0;margin-top:8px;display:flex}.assistant-page .chat-panel{border-radius:12px;flex:1;width:100%;height:auto;min-height:0;max-height:none;display:flex}.assistant-aside{display:none}.assistant-page .chat-panel-head{flex:none;min-height:45px;padding:7px 13px}.assistant-page .chat-panel-head strong{font-size:12px}.assistant-page .chat-panel-head span{text-overflow:ellipsis;white-space:nowrap;max-width:70vw;font-size:10.5px;overflow:hidden}.assistant-page .chat-scroll{padding:13px 13px 8px}.assistant-page .chat-message{margin-bottom:12px}.assistant-page .chat-bubble pre{font-size:13px;line-height:1.85}.assistant-page .chat-demo-label{font-size:10px}.assistant-page .assistant-suggestions{margin-top:18px}.assistant-page .assistant-composer{padding:9px 10px calc(7px + env(safe-area-inset-bottom,0px));flex:none}.assistant-page .assistant-composer textarea{min-height:44px;font-size:13px}.assistant-page .send-button{flex-basis:44px;width:44px;height:44px}.assistant-page .composer-note{display:none}.assistant-page .chat-error{margin-left:35px}.assistant-page .chat-error p{font-size:11.5px}}@media (width<=380px){.knowledge-summary{grid-template-columns:repeat(2,1fr)}.knowledge-summary-cell:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}.knowledge-summary-cell:nth-child(4){border-top:1px solid var(--line)}.knowledge-summary-cell strong{font-size:17px}.session-card{padding-left:17px;padding-right:17px}.session-card h2{font-size:21px}.assistant-page{padding-left:9px;padding-right:9px}.assistant-page .chat-bubble pre{font-size:12.5px}.assistant-page .chat-panel-head span{max-width:62vw}.assistant-demo-line{font-size:10.5px}.knowledge-point-list small{font-size:10px}.secondary-course-row span{font-size:10.5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.module-overview{border-bottom:1px solid var(--border,#00000014);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:22px;padding:18px 0;display:grid}.module-overview ul{margin:8px 0 0;padding-left:18px}.module-overview li{margin:6px 0;font-size:13.5px;line-height:1.7}.module-source-note{opacity:.75;grid-column:1/-1;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.7;display:flex}.module-lede{margin:14px 0;font-size:15.5px;line-height:1.95}.module-concept{background:var(--card,#00000008);border-radius:10px;margin:14px 0;padding:14px 16px}.module-concept h4,.module-bullets h4,.module-trace h4,.module-compare h4,.module-modify h4,.module-downloads h4{margin:0 0 8px;font-size:14px}.module-concept p{margin:0;font-size:14px;line-height:1.9}.module-bullets ul,.module-bullets ol,.module-downloads ul{margin:8px 0;padding-left:20px}.module-bullets li,.module-downloads li{margin:7px 0;font-size:14px;line-height:1.8}.module-trace table{border-collapse:collapse;width:100%;font-size:13px}.module-trace th,.module-trace td{border:1px solid var(--border,#0000001a);text-align:left;padding:8px 10px;line-height:1.7}.module-trace th{background:var(--card,#00000008);font-weight:600}.module-trace code{white-space:pre-wrap;word-break:break-all}.compare-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:10px 0;display:grid}.module-task{background:var(--accent-soft,#0066cc14);border-radius:10px;align-items:flex-start;gap:8px;padding:12px 14px;font-size:14px;line-height:1.85;display:flex}.module-pitfall{border-left:3px solid var(--danger,#c0392b);background:var(--card,#00000008);border-radius:8px;margin:14px 0;padding:12px 14px}.module-pitfall p{margin:6px 0 0;font-size:13.5px;line-height:1.85}.module-note{opacity:.8;align-items:flex-start;gap:8px;margin:10px 0;font-size:13px;line-height:1.85;display:flex}.module-practice,.module-project,.module-bridge{max-width:860px;margin:32px auto 0;padding:0 20px}.module-exercise{margin-top:16px}.module-exercise-meta{opacity:.75;margin:4px 0 10px;font-size:12.5px}.hint-stack{margin:12px 0}.module-open-task{justify-items:start;gap:10px;margin:12px 0;display:grid}.module-downloads a{align-items:center;gap:6px;font-weight:600;display:inline-flex}.module-downloads li span{opacity:.75;margin-left:10px;font-size:12.5px}.module-project-actions{flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;display:flex}.module-solution{margin:12px 0}.module-status{padding:14px 0 4px}.module-status-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.module-status-grid>div{background:var(--card,#00000008);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.module-status-grid strong{font-size:18px}.module-status-grid span{opacity:.75;font-size:12px}.module-step-index{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.module-step-index button{border:1px solid var(--border,#0000001f);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:12.5px;display:inline-flex}.module-step-index button.active{border-color:var(--accent,#2563eb);color:var(--accent,#2563eb);font-weight:600}.module-step-index button.done span:first-child{color:var(--accent,#2563eb);font-weight:700}.module-lines .line-detail{border-left:2px solid var(--border,#0000001f);margin:10px 0;padding:6px 0 6px 12px}.module-lines .line-detail-code{white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;display:block}.module-lines .line-detail p{opacity:.85;margin:5px 0 0;font-size:13px;line-height:1.8}.lesson-step-actions{align-items:center;gap:10px;margin:8px 0 14px;display:flex}.module-topic-practice{border-top:1px solid var(--border,#00000014);margin:22px 0;padding-top:12px}@media (width<=640px){.module-status-grid{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.module-status-grid strong{font-size:16px}.module-step-index button{padding:6px 9px;font-size:11.5px}.compare-grid{grid-template-columns:1fr}.module-trace table{font-size:12px}.module-trace th,.module-trace td{word-break:break-word;padding:6px 7px}.button{white-space:normal;height:auto;min-height:40px}.module-open-task .button,.module-project .button,.exercise-actions .button{text-align:left;max-width:100%}}.module-loading{opacity:.75;justify-content:center;align-items:center;gap:8px;padding:48px 20px;font-size:14px;display:flex}
