.course-page{--course-paper:var(--color-surface);--course-paper-deep:color-mix(in oklch, var(--color-surface-alt) 72%, var(--color-surface));--course-rule:color-mix(in oklch, var(--color-line) 84%, var(--color-ink) 16%);--course-ink:var(--color-ink);--course-muted:var(--color-ink-soft);--course-focus:oklch(48% .105 36);color:var(--color-ink);width:100%;max-width:92rem;margin-inline:auto}html[data-theme=dark] .course-page{--course-paper-deep:color-mix(in oklch, var(--color-surface-alt) 70%, var(--color-surface));--course-rule:color-mix(in oklch, var(--color-line) 82%, var(--color-ink) 18%);--course-focus:oklch(74% .11 48)}.course-layout{grid-template-columns:minmax(22rem,34rem) minmax(0,1fr);justify-content:center;align-items:start;gap:clamp(1.25rem,2.6vw,3rem);max-width:92rem;min-height:calc(100dvh - 7.5rem);margin-inline:auto;display:grid}.course-motto{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 8rem);padding:1.5rem .5rem 4rem;display:flex}.course-motto-zh{color:var(--course-ink);font-family:var(--font-display);letter-spacing:.22em;font-variation-settings:"SOFT" 12, "WONK" 1;flex-direction:column;gap:.28em;margin:0;font-size:clamp(2.5rem,6vw,4.9rem);font-weight:600;line-height:1.22;display:flex}.course-motto-en{color:var(--course-muted);letter-spacing:.2em;margin:1.85rem 0 0;font-size:clamp(.82rem,1.4vw,1.08rem);font-style:italic}.course-page:not(.is-reading) .course-content,.course-page.is-reading .course-motto{display:none}.course-page.is-reading .course-layout{grid-template-columns:minmax(16rem,20rem) minmax(0,48rem);max-width:76rem;min-height:0}.course-page:not(.is-reading) .course-sidebar-title{font-family:var(--font-display);letter-spacing:.12em;margin-bottom:1.1rem;font-size:1.35rem}.course-sidebar{border-right:1px solid var(--course-rule);max-height:calc(100dvh - 7rem);padding:0 1.1rem 1rem 0;position:sticky;top:5.75rem;overflow:auto}.course-sidebar-title{font-family:var(--font-mono);letter-spacing:.1em;font-size:.72rem}.course-toc{gap:0;margin-top:1.15rem;display:grid}.course-toc-link{border-bottom:1px solid color-mix(in oklch, var(--course-rule) 58%, transparent);color:var(--course-muted);padding:.72rem .15rem;font-size:.92rem;line-height:1.4;text-decoration:none;display:block}.course-toc-link:hover,.course-toc-link.is-current{color:var(--course-focus)}.course-toc-group{margin-top:1.15rem}.course-toc-part{color:var(--course-ink);font-family:var(--font-display);letter-spacing:.04em;margin:0 0 .35rem;font-size:.92rem;font-weight:600;line-height:1.4}.course-toc-item,.course-toc a.course-toc-item{color:var(--course-muted);border:0;grid-template-columns:2.1rem minmax(0,1fr);gap:.55rem;padding:.42rem .1rem;font-size:.78rem;line-height:1.45;text-decoration:none;display:grid}.course-toc-item:hover .course-toc-name,.course-toc-item.is-current .course-toc-name{color:var(--course-focus)}.course-toc-code{color:var(--course-focus);font-family:var(--font-mono);letter-spacing:.02em;font-size:.68rem}.course-toc-copy{gap:.12rem;min-width:0;display:grid}.course-toc-name{color:var(--course-ink)}.course-content{width:100%;min-width:0;max-width:100%}.course-intro{border-bottom:1px solid var(--course-rule);margin:0 0 2.5rem;padding:2rem 0 2.25rem;display:none}.course-intro.is-current{display:block}.course-intro.is-current [data-reveal]{opacity:1!important;transform:none!important}.course-intro h2{max-width:42rem;color:var(--course-ink);font-family:var(--font-display);margin:0 0 1.25rem;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.18}.course-intro h3,.course-outline-lesson h3{max-width:46rem;color:var(--course-ink);font-family:var(--font-display);margin:1.65rem 0 .55rem;font-size:1.18rem;font-weight:600;line-height:1.45}.course-intro h3:first-of-type,.course-outline-lesson h3:first-of-type{margin-top:.2rem}.course-outline-lesson h2{margin-bottom:1.6rem}.course-outline-lesson h3{margin:1.35rem 0 0}.course-outline-lesson h3:first-of-type{margin-top:.35rem}.course-intro p{max-width:46rem;color:var(--course-ink);text-indent:2em;margin:0;line-height:1.95}.course-lesson-body{overflow-wrap:anywhere;min-width:0}.course-lesson-body p{text-indent:0;margin:.8rem 0}.course-lesson-body blockquote{border-left:3px solid var(--course-focus);background:var(--course-paper-deep);border-radius:0 .3rem .3rem 0;margin:1.3rem 0;padding:.35rem 1.1rem}.course-lesson-body h3{border-top:1px solid var(--course-rule);margin:2.4rem 0 .85rem;padding-top:.8rem}.course-lesson-body h3:first-child{border-top:0;margin-top:0;padding-top:0}.course-lesson-body a{color:var(--course-focus);text-underline-offset:.2em;text-decoration:underline}.course-lesson-body ul,.course-lesson-body ol{margin:1rem 0;padding-left:1.6rem;line-height:1.85}.course-lesson-body ul{list-style:outside}.course-lesson-body ol{list-style:decimal}.course-lesson-body li+li{margin-top:.45rem}.course-lesson-body :not(pre)>code{background:var(--course-paper-deep);border-radius:.2rem;padding:.1em .3em;font-size:.85em}.course-lesson-body .expressive-code{overflow-wrap:normal;min-width:0;margin:1.3rem 0}.course-lesson-body table{border-collapse:collapse;width:100%;margin:1.4rem 0;font-size:.88rem;line-height:1.75;display:block;overflow-x:auto}.course-lesson-body th,.course-lesson-body td{border-bottom:1px solid var(--course-rule);text-align:left;vertical-align:top;min-width:8rem;padding:.65rem .8rem}.course-lesson-body th{background:var(--course-paper-deep);font-weight:600}.course-lesson-body details{border:1px solid var(--course-rule);background:var(--course-paper-deep);border-radius:.3rem;margin:1.5rem 0;padding:1rem 1.2rem}.course-lesson-body summary{cursor:pointer;color:var(--course-focus);font-weight:600}.course-lesson-body summary:focus-visible{outline:2px solid var(--course-focus);outline-offset:4px}.course-lesson-footer{border-top:1px solid var(--course-rule);max-width:52rem;color:var(--course-muted);justify-content:space-between;gap:1rem;margin-top:2.4rem;padding-top:1rem;font-size:.88rem;display:flex}.course-return{color:var(--course-focus);text-decoration:none}body:has([data-course]:not(.is-reading)) footer:not(.course-lesson-footer){display:none}main.course-main-shell{max-width:92rem;padding-block:1rem 2rem}@media (width<=1050px){.course-layout{grid-template-columns:minmax(10rem,12rem) minmax(0,1fr);max-width:none}.course-page:not(.is-reading) .course-layout{grid-template-columns:minmax(18rem,26rem) minmax(0,1fr)}.course-page.is-reading .course-layout{grid-template-columns:minmax(10rem,12rem) minmax(0,1fr);max-width:none}}@media (width<=720px){.course-page.is-reading .course-layout,.course-page:not(.is-reading) .course-layout{grid-template-columns:minmax(0,1fr)}.course-page.is-reading .course-sidebar{max-height:14rem;overflow-y:auto}.course-layout{grid-template-columns:1fr;gap:1.5rem;min-height:0;margin-top:1.5rem}.course-motto{min-height:38vh;padding:2.5rem 0 3rem}.course-motto-zh{letter-spacing:.14em}.course-sidebar{border-right:0;border-bottom:1px solid var(--course-rule);max-height:none;padding:0 0 .7rem;position:static}.course-toc a.course-toc-item,.course-page:not(.is-reading) .course-toc a.course-toc-item{grid-template-columns:2.1rem minmax(0,1fr);padding:.42rem .1rem;font-size:.78rem;display:grid}.course-lesson-footer{flex-direction:column;align-items:flex-start}}.course-lesson-pager{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.course-lesson-pager a{color:var(--course-focus);text-decoration:none}.course-lesson-pager a:hover{text-underline-offset:.2em;text-decoration:underline}[hidden]{display:none!important}.course-management{margin-top:.75rem}.course-management button{border:1px solid var(--color-line);background:var(--color-surface-alt);color:var(--color-ink);cursor:pointer;border-radius:.3rem;padding:.45rem .7rem;font-size:.78rem}.course-management button:hover{border-color:var(--color-ink-soft);background:color-mix(in oklch, var(--color-ink) 8%, var(--color-surface))}.course-dialog{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-line);border-radius:.75rem;max-height:92dvh;margin:auto;padding:1.5rem;overflow:auto;box-shadow:0 20px 80px #0004}.course-dialog::backdrop{backdrop-filter:blur(3px);background:#18222c80}.course-dialog h2{margin-bottom:1rem;font-size:1.4rem}.course-dialog p{line-height:1.7}.course-dialog label{font-size:.85rem}.course-dialog input,.course-dialog select{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink);border-radius:.3rem;max-width:100%;padding:.5rem .65rem}.course-dialog button{border:1px solid var(--color-line);background:var(--color-surface-alt);cursor:pointer;border-radius:.35rem;padding:.4rem .7rem;font-size:.85rem}.course-dialog button:hover,.course-dialog button[aria-pressed=true]{border-color:var(--color-ink-soft);background:color-mix(in oklch, var(--color-ink) 10%, var(--color-surface))}.course-dialog button:disabled{opacity:.45;cursor:wait}.course-dialog button:focus-visible,.course-dialog input:focus-visible,.course-dialog select:focus-visible{outline:2px solid var(--color-ink-soft);outline-offset:3px}.course-login-dialog{width:min(27rem,94vw)}.course-login-dialog input{width:100%;margin:.5rem 0;display:block}.course-login-dialog label{margin-top:1rem;display:block}.course-editor-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.course-editor-dialog{width:min(70rem,96vw)}.course-editor-header{z-index:5;background:var(--color-surface);border-bottom:1px solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem 0;display:flex;position:sticky;top:-1.5rem}.course-dialog .course-primary{background:var(--color-ink);color:var(--color-surface)}#course-editor-status,#course-login-status{min-height:1.5rem;margin:.7rem 0;font-size:.85rem}#course-editor-title{width:100%;margin:.5rem 0 1rem;font-size:1.3rem;display:block}.course-editor-toolbar{z-index:4;border:1px solid var(--color-line);background:var(--color-surface-alt);border-radius:.4rem .4rem 0 0;flex-wrap:wrap;gap:.35rem;padding:.6rem;display:flex;position:sticky;top:2.8rem}.course-editor-paper{border:1px solid var(--color-line);border-top:0;min-height:20rem;padding:clamp(.75rem,3vw,2.5rem)}.course-editor-paper .tiptap{outline:none;min-height:18rem}.course-editor-paper h2{margin-block:1.5rem .8rem;font-size:1.65rem}.course-editor-paper h3{font-size:1.25rem}.course-editor-paper h4{margin-top:1rem;font-size:1.05rem;font-weight:600}.course-editor-paper p{line-height:1.9}.course-editor-paper .tiptap .ProseMirror-selectednode{outline:2px solid var(--course-focus);outline-offset:3px}.course-editor-paper .selectedCell{background:color-mix(in oklch, var(--color-ink) 10%, var(--color-surface))}.course-editor-paper [data-type=details]{border:1px solid var(--color-line);gap:.5rem;margin:1rem 0;padding:1rem;display:flex}.course-editor-paper [data-type=details]>button{width:1.5rem;height:1.5rem;padding:0}.course-editor-paper [data-type=details]>button:before{content:"▸"}.course-editor-paper [data-type=details].is-open>button:before{content:"▾"}.course-editor-paper [data-type=details]>div{flex:1;min-width:0}.course-editor-paper [data-type=detailsContent]{margin-top:.7rem}.course-image-settings{flex-wrap:wrap;align-items:center;gap:.75rem;padding:.8rem 0;display:flex}.course-image-settings label{align-items:center;gap:.35rem;display:flex}.course-editor-hint{color:var(--color-ink-soft);margin:.8rem 0;font-size:.8rem}.course-editor-modes{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}#course-markdown-editor{resize:vertical;background:var(--color-surface);width:100%;min-height:55vh;color:var(--color-ink);font:.95rem/1.8 var(--font-mono), monospace;outline-offset:4px;tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere;border:0;display:block}.course-lesson-body pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-surface-alt);border-radius:.3rem;padding:1rem}.course-lesson-body>p>img{max-width:100%;height:auto}.course-history-panel{border-top:1px solid var(--color-line);margin-top:1.5rem;padding:1rem 0}.course-history-panel summary{cursor:pointer}.course-history-panel p{margin:.7rem 0;font-size:.85rem}#course-history-content{border:1px solid var(--color-line);margin-top:1rem;padding:1rem}.course-editor-recovery{background:var(--color-surface-alt);border:1px solid var(--color-line);margin-bottom:1rem;padding:.7rem;font-size:.85rem}.course-lesson-body figure{max-width:100%;margin:1.5rem auto}.course-lesson-body figure img{width:100%;height:auto;display:block}.course-lesson-body figcaption{color:var(--color-ink-soft);text-align:center;margin-top:.5rem;font-size:.85rem}@media (width<=720px){.course-editor-toolbar{top:5.3rem}.course-editor-dialog{max-height:96dvh;padding:.8rem}.course-editor-header{top:-.8rem}.course-editor-actions{width:100%}.course-editor-toolbar button{padding:.45rem}.course-image-settings label,.course-image-settings input{max-width:100%}}
