:root{color-scheme:light;--bg: #f4f6fa;--surface: #ffffff;--text: #172033;--muted: #647084;--border: #dfe5ee;--primary: #2456f0;--primary-dark: #1941c2;--primary-soft: #eaf0ff;--shadow: 0 10px 28px rgba(21, 37, 76, .07);--radius: 16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.7}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}.site{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:100;background:#fffffff0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.header-inner{width:min(1440px,100%);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:18px;font-weight:800}.header-nav{display:flex;gap:20px;font-size:14px;font-weight:600}.page-shell{width:min(1200px,100%);margin:0 auto;padding:40px 24px 64px}.eyebrow{margin:0 0 8px;color:var(--primary);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero h1,.course-heading h1{margin:0 0 16px;font-size:clamp(32px,5vw,50px);line-height:1.15;letter-spacing:-.03em}.hero{max-width:780px}.hero-text{font-size:18px;color:var(--muted)}.course-heading{max-width:860px}.course-heading p:last-child{color:var(--muted)}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:32px}.course-card,.content-card,.lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.course-card{padding:26px;display:flex;flex-direction:column;min-height:220px}.course-card h2{margin:0 0 10px;font-size:24px}.course-card p{color:var(--muted)}.course-card-footer{margin-top:auto;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;color:var(--muted)}.primary-button,.lesson-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 16px;border-radius:10px;background:var(--primary);color:#fff;font-size:14px;font-weight:700}.primary-button:hover,.lesson-link:hover{background:var(--primary-dark);color:#fff}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;margin-top:32px}.lesson-card{padding:22px;display:flex;flex-direction:column;min-height:168px}.lesson-number{width:fit-content;padding:4px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:12px;font-weight:800}.lesson-card h2{margin:14px 0;font-size:19px;line-height:1.4}.lesson-card-footer{margin-top:auto;display:flex;justify-content:flex-end}.reading-shell{flex:1;width:min(1440px,100%);margin:0 auto;padding:26px 24px 64px;display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:24px;align-items:start}.reading-sidebar{position:sticky;top:76px;max-height:calc(100vh - 104px);overflow:auto}.sidebar-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.sidebar-card h2{font-size:18px;line-height:1.4;margin:10px 0 14px}.lesson-course{font-size:13px;font-weight:700}.sidebar-card nav{display:grid}.sidebar-card nav a{padding:7px 12px;margin:1px 0;border-radius:8px;color:var(--muted);font-size:13px;line-height:1.45}.sidebar-card nav a:hover{background:#eef2f8;color:var(--text)}.sidebar-card nav a.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:700}.empty-outline{color:var(--muted);font-size:13px}.outline-toggle{display:none}.content-card{min-width:0;padding:clamp(24px,4vw,54px)}.resource-return{margin-bottom:24px;font-size:14px}.content{overflow-wrap:anywhere}.content h1{margin-top:0;font-size:clamp(28px,3.4vw,38px);letter-spacing:-.02em}.content h2{margin-top:2.2em;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:27px}.content h3{margin-top:1.7em;font-size:21px}.content h4{margin-top:1.5em;font-size:17px}.content p,.content li{font-size:16px}.content ul,.content ol{padding-left:1.4em}.content li+li{margin-top:5px}.content blockquote{margin:20px 0;padding:2px 22px;border-left:4px solid var(--primary);background:var(--primary-soft);color:#35415a;border-radius:0 10px 10px 0}.content code{padding:2px 5px;border-radius:5px;background:#eceff4;font-size:.9em}.content pre{margin:18px 0;padding:18px;overflow:auto;background:#172033;color:#e7ecf5;border-radius:12px}.content pre code{padding:0;background:transparent;color:inherit;line-height:1.6}.content div[class*=language-]{position:relative;margin:20px 0;overflow:hidden;border-radius:12px;background:#172033;box-shadow:0 8px 22px #15254c14}.content div[class*=language-]:before{content:"";position:absolute;z-index:1;top:0;right:0;left:0;height:38px;background:#ffffff0f;border-bottom:1px solid rgba(255,255,255,.08)}.content div[class*=language-]>span.lang{position:absolute;z-index:2;top:10px;left:14px;color:#e7ecf5ad;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.content div[class*=language-]>button.copy{position:absolute;z-index:3;top:7px;right:7px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:26px;padding:0;border:0;border-radius:7px;color:#e7ecf5c7;background-color:transparent;opacity:1;cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .16s ease}.content div[class*=language-]>button.copy:before{content:"";width:16px;height:16px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='12' height='12' rx='2.5'/%3E%3Cpath d='M5 15h-.5A2.5 2.5 0 0 1 2 12.5v-8A2.5 2.5 0 0 1 4.5 2h8A2.5 2.5 0 0 1 15 4.5V5'/%3E%3C/svg%3E") no-repeat center / contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='12' height='12' rx='2.5'/%3E%3Cpath d='M5 15h-.5A2.5 2.5 0 0 1 2 12.5v-8A2.5 2.5 0 0 1 4.5 2h8A2.5 2.5 0 0 1 15 4.5V5'/%3E%3C/svg%3E") no-repeat center / contain}.content div[class*=language-]>button.copy:hover{color:#fff;background-color:#ffffff1a}.content div[class*=language-]>button.copy:active{transform:scale(.96)}.content div[class*=language-]>button.copy.copied{color:#6ee7a8;background-color:#6ee7a81f}.content div[class*=language-]>button.copy.copied:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}.content div[class*=language-]>pre{margin:0;padding:54px 18px 18px;overflow:auto;border-radius:0;background:transparent;scrollbar-width:thin;scrollbar-color:rgba(231,236,245,.28) transparent}.content div[class*=language-]>pre::-webkit-scrollbar{height:8px}.content div[class*=language-]>pre::-webkit-scrollbar-track{background:transparent}.content div[class*=language-]>pre::-webkit-scrollbar-thumb{background:#e7ecf53d;border-radius:999px}.content div[class*=language-]>pre code{color:var(--shiki-dark, #e7ecf5);background:transparent;text-shadow:none}.content div[class*=language-]>pre code span{color:var(--shiki-dark, inherit);font-style:normal;font-weight:inherit}.content table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}.content th,.content td{padding:10px 12px;border:1px solid var(--border);text-align:left;vertical-align:top}.content th{background:#eff3f8}.content img{max-width:100%;height:auto;border-radius:10px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:52px;padding-top:24px;border-top:1px solid var(--border)}.pager-link{min-width:0;padding:16px 18px;border:1px solid var(--border);border-radius:12px;color:var(--text);background:#fafbfc}.pager-link.next{text-align:right}.pager-link small{display:block;color:var(--muted)}.pager-link strong{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.site-footer{margin-top:auto;padding:24px;border-top:1px solid var(--border);color:var(--muted);font-size:13px;text-align:center}@media (max-width: 880px){.reading-shell{display:block;padding:18px 16px 56px}.outline-toggle{display:inline-flex;align-items:center;min-height:38px;width:100%;margin-bottom:14px;padding:8px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--primary-dark);font-weight:800}.reading-sidebar{position:static;max-height:none;margin:0 0 16px;overflow:visible}.reading-sidebar:not(.open){display:none}.content-card{padding:22px 18px}.pager{grid-template-columns:1fr}.pager-link.next{text-align:left}}.lesson-tabs{display:flex;gap:8px;margin:0 0 28px;padding:5px;background:#eef2f8;border-radius:12px}.lesson-tab{flex:1;min-height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:var(--muted);font-size:14px;font-weight:800}.lesson-tab:hover{color:var(--text);background:#ffffffb8}.lesson-tab.active{background:var(--surface);color:var(--primary-dark);box-shadow:0 2px 8px #15254c14}.content details{margin:14px 0 20px;padding:12px 16px;background:#f7f9fc;border:1px solid var(--border);border-radius:12px}.content details summary{cursor:pointer;color:var(--primary-dark);font-weight:800}.content details[open]{background:#f0f6ff;border-color:#c8d7ff}.content details p:first-of-type{margin-top:8px}.interactive-shell{flex:1;width:min(1440px,100%);margin:0 auto;padding:26px 24px 64px}.interactive-stage{overflow:visible}.interactive-stage iframe{display:block;width:100%;min-height:120px;border:0;padding:0;margin:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}@media (max-width: 880px){.lesson-tabs{gap:5px}.lesson-tab{font-size:13px;padding:0 8px}.interactive-shell{padding:18px 16px 56px}.interactive-stage iframe{min-height:80px}}.material-shell{flex:1;width:min(1200px,100%);margin:0 auto;padding:26px 24px 64px}.material-view{display:grid;gap:30px}.material-heading h1{margin:0 0 10px;font-size:clamp(27px,3vw,36px);letter-spacing:-.02em}.material-heading p{margin:0;color:var(--muted)}.material-group{display:grid;gap:14px}.material-group h2{margin:0;font-size:20px}.material-list{display:grid;gap:12px}.material-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 20px #15254c0d}.material-main{min-width:0}.material-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.material-title-row h3{margin:0;font-size:17px;line-height:1.4}.material-kind{padding:3px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:12px;font-weight:800}.required-tag{padding:3px 8px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:800}.pending-tag{padding:3px 8px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:12px;font-weight:800}.material-main p{margin:8px 0 0;color:var(--muted);font-size:14px}.material-meta{display:flex;gap:12px;margin-top:9px;color:var(--muted);font-size:12px}.material-button{display:inline-flex;align-items:center;min-height:38px;padding:8px 15px;border-radius:10px;background:var(--primary);color:#fff;font-size:14px;font-weight:700;white-space:nowrap}.material-button:hover{background:var(--primary-dark);color:#fff}.material-button.pending{background:#fff7ed;color:#c2410c}@media (max-width: 720px){.material-shell{padding:18px 16px 56px}.material-item{grid-template-columns:1fr}.material-action{justify-content:flex-start}}
