:root{--bg: #fdfdfe;--panel: #fefeff;--paper: #ffffff;--ink: #0032a0;--ink-strong: #00238a;--ink-label: #23458f;--ink-2: #2f4d8e;--ink-3: #3a59a3;--ink-4: #4a66a4;--ink-5: #4d67a2;--ink-6: #6982b8;--ink-7: #7d96c6;--ink-8: #9aabcf;--ink-9: #b9c6e1;--navy-text: #0b2b86;--on-fill: #ffffff;--on-amber: #0b2b86;--line: #6f94c9;--line-btn: #b5c8e7;--line-mid: #c8d6ec;--line-soft: #e3e9f3;--line-faint: #edf1f7;--line-head: #b4c8e4;--fill-primary: #003ca8;--fill-accent: #0b3aa8;--fill-hover: #f3f6fd;--fill-hover-2: #f4f7fd;--fill-track: #dce5f6;--fill-pill: #e9eef8;--fill-current: #eef3fe;--fill-card: #f8faff;--fill-step: #9db1d9;--active: #1f5fe0;--active-soft: rgba(31, 95, 224, .12);--active-mid: rgba(31, 95, 224, .35);--ok: #0aa86b;--ok-text: #0f9a62;--ok-fill: #d8f5e8;--warn: #f8b905;--err-line: #e04b55;--err-fill: #fdf0f0;--err-text: #e5202f;--eg-text: #a07a12;--eg-fill: #fdf4dc;--segment-partial: #3f74d6;--sep: #6383b9;--c-blue: #1f6fe8;--c-green: #12a56b;--c-amber: #f2ac0a;--c-violet: #7656e0;--c-teal: #0e95a3;--c-slate: #5d6f95;--ct-green: #0c8a58;--ct-amber: #a26f00;--ct-teal: #0a7c88;--lane: #bccae6;--grid: #eef2f9;--shadow: #8d9ab3;--art-line: #1b3fae;--art-line-soft: #8ea9e2;--art-paper: #f4f7fe;--art-screen: #e8effd;--art-navy: #2f55c2;--art-navy-2: #24479f;--art-teal: #0e95a3;--art-cyan: #5ed6ea;--art-steel: #9fbcf0;--art-steel-soft: #dfe8fb;--art-steel-dark: #6383b9;--art-amber: #f8b905;--art-amber-soft: #fdf4dc;--art-green: #12a56b;--art-green-soft: #d8f5e8;--term-prompt: #0aa86b;--term-text: #3f74d6;--term-ok: #0aa86b;--face-top-1: #f8fbff;--face-top-2: #e6eefc;--face-left-1: #eff5ff;--face-left-2: #dae5fb;--face-right-1: #e0eafc;--face-right-2: #c7d7f6;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.5, 0, .75, 0)}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--panel: #0f1628;--paper: #131c33;--ink: #afc4f2;--ink-strong: #b7c6f3;--ink-label: #aec2eb;--ink-2: #b0c1e5;--ink-3: #a8b8e0;--ink-4: #a9b7d8;--ink-5: #aab7d6;--ink-6: #99aacf;--ink-7: #859cc9;--ink-8: #748cbd;--ink-9: #5d76a8;--navy-text: #b5c5f3;--on-fill: #ffffff;--on-amber: #0b2b86;--line: #3c649f;--line-btn: #213657;--line-mid: #1d304e;--line-soft: #1a283e;--line-faint: #192538;--line-head: #223959;--fill-primary: #0041b7;--fill-accent: #0c3fb6;--fill-hover: #0f172a;--fill-hover-2: #0f1829;--fill-track: #17243e;--fill-pill: #141e33;--fill-current: #10192c;--fill-card: #0d1425;--fill-step: #323e56;--active: #3f7cf0;--active-soft: rgba(63, 124, 240, .18);--active-mid: rgba(63, 124, 240, .4);--ok: #0bb674;--ok-text: #acf1d6;--ok-fill: #18422f;--warn: #fabe12;--err-line: #e2626b;--err-fill: #251620;--err-text: #df9ea3;--eg-text: #f1dea9;--eg-fill: #3a3015;--segment-partial: #4c7dd9;--sep: #576a8b;--c-blue: #4c8df0;--c-green: #19c07e;--c-amber: #f2ac0a;--c-violet: #8c72ea;--c-teal: #14b8ca;--c-slate: #8a98b6;--ct-green: #b3f3d9;--ct-amber: #f2ddaf;--ct-teal: #b4edf3;--lane: #2d4a7c;--grid: #141f36;--shadow: #000000;--art-line: #6585e7;--art-line-soft: #3d62b7;--art-paper: #16223c;--art-screen: #101a30;--art-navy: #335bce;--art-navy-2: #274dab;--art-teal: #0fa2b1;--art-cyan: #6cd9ec;--art-steel: #2c4473;--art-steel-soft: #152039;--art-steel-dark: #3c649f;--art-amber: #fabe12;--art-amber-soft: #3a3015;--art-green: #19c07e;--art-green-soft: #18422f;--term-prompt: #19c07e;--term-text: #6f97f5;--term-ok: #19c07e;--face-top-1: #16223c;--face-top-2: #131f36;--face-left-1: #14203a;--face-left-2: #111b31;--face-right-1: #101a2f;--face-right-2: #0d1526}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,Consolas,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,monospace}.portal{max-width:1120px;margin-inline:auto;padding:clamp(32px,7vh,72px) 20px 48px}.portal-head h1{margin:0;font-size:clamp(30px,5vw,44px);font-style:italic;font-weight:800;letter-spacing:.085em}.portal-head p{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--ink-5)}.portal-head a{color:var(--active)}.courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;margin-top:36px}.course{display:block;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:4px;color:inherit;text-decoration:none;transition:background-color .15s,border-color .15s}.course:hover{background:var(--fill-hover);border-color:var(--active)}.course:focus-visible{outline:2px solid var(--active);outline-offset:2px}.course img{display:block}.course h2{margin:14px 0 0;font-size:18px;font-weight:800;letter-spacing:.06em}.course h2 em{font-style:italic}.course strong{display:block;margin-top:6px;font-size:14px;font-weight:600;color:var(--ink-label)}.course p{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--ink-5)}@media(prefers-reduced-motion:reduce){.course{transition:none}}
