﻿:root{--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Source Serif 4", Georgia, serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-sm: 0.875rem;--fs-base: 1rem;--fs-lg: 1.375rem;--fs-xl: 2.25rem;--ink: #1c1c1e;--muted: #6b6b70;--rule: #e6e4df;--bg: #fdfcfa;--bg-soft: #f4f2ed;--accent: #8c2f1b;--accent-soft: #f6e9e4;--measure: 44rem;--wide: 60rem;--gutter: 1.5rem}*,*::before,*::after{box-sizing:border-box}html{font-size:17px;scroll-padding-top:5rem}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-base);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%;height:auto}hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.25;margin:0}h1{font-size:var(--fs-xl);letter-spacing:-0.01em}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:#fff;padding:.5rem 1rem}.bar{max-width:var(--wide);margin:0 auto;padding:.9rem var(--gutter);display:flex;align-items:baseline;gap:2rem}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--rule);background:rgba(253,252,250,.94);backdrop-filter:blur(6px)}.brand{font-family:var(--font-display);font-weight:600;font-size:1.125rem;color:var(--ink)}.brand:hover{text-decoration:none}.main-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin-left:auto;font-size:var(--fs-sm)}.main-nav a{color:var(--muted);font-weight:500}.main-nav a.active{color:var(--ink)}.site-footer{border-top:1px solid var(--rule);margin-top:4rem}.site-footer .bar{font-size:var(--fs-sm);color:var(--muted);padding-top:1.5rem;padding-bottom:1.5rem;flex-wrap:wrap}.site-footer nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}.site-footer a{color:var(--muted)}main{display:block}.page{max-width:var(--wide);margin:0 auto;padding:3rem var(--gutter) 2rem}.page-head{max-width:var(--measure);margin-bottom:2rem}.page-meta,.lead{color:var(--muted);margin-top:.6rem}.lead p{margin:0}.page-body{display:block}.content{max-width:var(--measure);min-width:0}.page--wide .content{max-width:none}.toc{display:none}@media(min-width: 70rem){.page--toc .page-body{display:grid;grid-template-columns:minmax(0, var(--measure)) 12rem;gap:3.5rem;justify-content:space-between}.page--toc.page--wide .page-body{grid-template-columns:minmax(0, 1fr) 12rem}.toc{display:block;position:sticky;top:5.5rem;align-self:start;font-size:var(--fs-sm);max-height:calc(100vh - 7rem);overflow:auto}}.toc-label{margin:0 0 .5rem;font-weight:600}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:0}.toc li li{padding-left:.85rem}.toc a{display:block;color:var(--muted);padding:.15rem 0;line-height:1.4}.toc a:hover,.toc a.active{color:var(--accent);text-decoration:none}.page-banner{background-size:cover;background-position:center;color:#fff}.banner-inner{max-width:var(--wide);margin:0 auto;padding:5rem var(--gutter) 3rem}.banner-inner h1{color:#fff}.banner-inner p{margin:.75rem 0 0;font-size:var(--fs-lg);font-family:var(--font-display)}.content>:first-child{margin-top:0}.content p,.content ul,.content ol,.content table,.content blockquote,.content pre,.content figure,.content dl{margin:0 0 1rem}.content h2{font-size:var(--fs-lg);margin:2.75rem 0 1rem}.content h3{font-size:1.125rem;margin:2rem 0 .75rem}.content h4,.content h5,.content h6{font-family:var(--font-body);font-size:var(--fs-base);margin:1.5rem 0 .5rem}.content ul,.content ol{padding-left:1.4rem}.content li{margin:.3rem 0}.content li>ul,.content li>ol{margin:.3rem 0 0}.content blockquote{border-left:3px solid var(--rule);padding-left:1rem;color:var(--muted)}.content figure img{display:block}.content figcaption{font-size:var(--fs-sm);color:var(--muted);margin-top:.5rem}.content center{margin:.5rem 0}.no_toc_section h2{font-family:var(--font-body);font-size:var(--fs-base);font-weight:500;color:var(--muted);margin:-1.25rem 0 1.5rem}.content [style*="font-size:0.8em"],.content [style*="font-size: 0.8em"],.content [style*="font-size:0.85em"],.content [style*="font-size: 0.85em"]{font-size:inherit !important}.content [style*="color:blue"],.content [style*="color: blue"],.lab-session{color:#1d4ed8 !important}.content [style*="color:red"],.content [style*="color: red"]{color:#b91c1c !important}.content [style*="color:green"],.content [style*="color: green"]{color:#15803d !important}.content [style*="color:darkred"],.content [style*="color: darkred"]{color:var(--accent) !important}.align-center{display:block;margin-left:auto;margin-right:auto}.align-left{float:left;margin:0 1.5rem 1rem 0}.align-right{float:right;margin:0 0 1rem 1.5rem}.content table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.content th,.content td{padding:.55rem .75rem .55rem 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.content thead th{font-weight:600;border-bottom-color:#cfccc4}code,kbd,pre{font-family:var(--font-mono);font-size:.875em}:not(pre)>code{background:var(--bg-soft);padding:.1em .35em;border-radius:4px}pre,.highlight{background:#f6f5f1;border-radius:6px}pre{padding:1rem 1.1rem;overflow-x:auto;line-height:1.5}.highlight pre{margin:0;background:none}div.highlighter-rouge{margin:0 0 1rem}.notice,.notice--info,.notice--warning,.notice--primary,.notice--success,.notice--danger{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:8px;background:var(--bg-soft);border-left:3px solid #cfccc4}.notice--warning,.notice--danger{background:var(--accent-soft);border-left-color:var(--accent)}.notice--info,.notice--primary{background:#eef2f6;border-left-color:#6b829c}[class^=notice]>:last-child,[class*=" notice"]>:last-child{margin-bottom:0}.btn{display:inline-block;padding:.55rem 1rem;border-radius:6px;font-size:var(--fs-sm);font-weight:500;background:var(--ink);color:#fff;white-space:nowrap}.btn:hover{text-decoration:none;background:#000}.content .fa,.content .fas,.content .far,.content .fab{color:var(--muted)}ul.plain-list{list-style:none;padding:0;margin:0}ul.plain-list li{margin:0;padding:.55rem 0;border-top:1px solid var(--rule)}ul.plain-list li:last-child{border-bottom:1px solid var(--rule)}ul.plain-list+details.group{border-top:0}.count{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--muted);font-weight:400;margin-left:.4rem}.entry{padding:.9rem 0;border-top:1px solid var(--rule)}.entry .title{font-weight:600}.entry .authors{color:var(--muted)}.entry .authors b{color:var(--ink);font-weight:500}.entry .meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .9rem;font-size:var(--fs-sm);margin-top:.25rem}.entry .venue{font-style:italic}.entry .note{font-size:var(--fs-sm);color:var(--muted);margin-top:.25rem}.entry .note p{display:inline;margin:0}.tag{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:0 .35rem}details.group{border-top:1px solid var(--rule)}details.group:last-of-type{border-bottom:1px solid var(--rule)}details.group>summary{list-style:none;cursor:pointer;padding:.8rem 0;display:flex;align-items:baseline;gap:.75rem}details.group>summary::-webkit-details-marker{display:none}details.group>summary::before{content:"+";width:1rem;color:var(--muted);flex:none}details.group[open]>summary::before{content:"–"}details.group>summary strong{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600}details.group>summary span{color:var(--muted);font-size:var(--fs-sm)}.group-body{padding:0 0 .75rem 1.75rem}.group-body>.entry:first-child,.group-body>ul.plain-list li:first-child{border-top:1px solid var(--rule)}.content details.group ul.plain-list,.content details.group ul{margin-bottom:0}.content .group-body>ul:not(.plain-list){padding-left:1.2rem}table.theses{width:100%;border-collapse:collapse;font-size:var(--fs-base);display:table}.content table.theses td{padding:.5rem .75rem .5rem 0;border-top:1px solid var(--rule);border-bottom:0;vertical-align:top}table.theses td.who{width:12rem}table.theses td.links{width:4.5rem;text-align:right;font-size:var(--fs-sm);padding-right:0}table.theses .note{display:block;font-size:var(--fs-sm);color:var(--muted)}.controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.5rem}.chip{font:inherit;font-size:var(--fs-sm);padding:.3rem .8rem;border-radius:999px;border:1px solid var(--rule);background:#fff;color:var(--ink);cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.search{margin-left:auto;font:inherit;font-size:var(--fs-sm);padding:.35rem .8rem;width:15rem;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--ink)}.no-results{color:var(--muted);display:none}.hero{display:grid;grid-template-columns:9rem minmax(0, 1fr);gap:2.5rem;align-items:start}.hero .avatar{width:9rem;height:9rem;border-radius:50%;object-fit:cover;background:var(--bg-soft)}.hero-text{max-width:var(--measure)}.hero .role{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--muted);margin:.4rem 0 1.25rem}.hero p{margin:0 0 1rem}.hero .links{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-size:var(--fs-sm)}.lab-invite{margin:3rem 0;padding:1.5rem 1.75rem;border:1px solid var(--rule);border-radius:10px;background:#fff;display:flex;gap:1.5rem;align-items:center;justify-content:space-between}.lab-invite p{margin:0;max-width:34rem}.home-cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.home-cols h2{font-size:var(--fs-lg);margin-bottom:1rem}.courses{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1rem}.course{border:1px solid var(--rule);border-radius:10px;padding:1.4rem 1.5rem;background:#fff;display:flex;flex-direction:column}.course .level{font-size:var(--fs-sm);color:var(--muted);margin-bottom:.3rem}.content .course h3{font-size:var(--fs-lg);margin:0 0 .6rem}.course p{color:var(--muted);flex:1}.course .current{font-weight:500}.course .previous{font-size:var(--fs-sm);color:var(--muted);margin-top:.5rem}.course .previous a{margin-right:.55rem;white-space:nowrap}.content table.nnds-schedule{display:table;width:100%;table-layout:fixed;line-height:1.45}.content table.nnds-schedule .schedule-lesson{width:10%}.content table.nnds-schedule .schedule-date{width:16%}.content table.nnds-schedule .schedule-content{width:23%}.content table.nnds-schedule .schedule-materials{width:29%}.content table.nnds-schedule .schedule-reading{width:22%}.content table.nnds-schedule th,.content table.nnds-schedule td{padding:.85em .6em;vertical-align:top;text-align:left}.content table.nnds-schedule tbody th{font-weight:normal;border-bottom:1px solid var(--rule)}.content table.nnds-schedule .lesson-date{white-space:nowrap}.content table.nnds-schedule .course-resource+.course-resource{margin-top:.75em}.content table.nnds-schedule .resource-title{display:block;margin-bottom:.2em}.content table.nnds-schedule .resource-links{display:flex;flex-wrap:wrap;gap:.25em .85em}.content table.nnds-schedule .course-resources{margin:0;padding:0;list-style:none}.content table.nnds-schedule .course-resources li{margin:0;padding:0}.content table.nnds-schedule .course-resources li+li{margin-top:.65em}@media(max-width: 767px){.content table.nnds-schedule colgroup{display:none}.content table.nnds-schedule thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.content table.nnds-schedule tbody{display:block}.content table.nnds-schedule tbody tr{display:grid;grid-template-columns:1fr auto;padding:1em 0;border-bottom:1px solid var(--rule)}.content table.nnds-schedule th,.content table.nnds-schedule td{padding:0;border:0}.content table.nnds-schedule tbody th{font-weight:600;border:0}.content table.nnds-schedule td.no-reading{display:none}.content table.nnds-schedule .lesson-date{text-align:right}.content table.nnds-schedule .lesson-content{grid-column:1/-1;margin-top:.25em}.content table.nnds-schedule td[data-label]{grid-column:1/-1;margin-top:.75em}.content table.nnds-schedule td[data-label]::before{content:attr(data-label);display:block;margin-bottom:.25em;font-weight:600}}.highlight .c,.highlight .ch,.highlight .cm,.highlight .c1,.highlight .cs,.highlight .cp,.highlight .cpf{color:#8a8a8a;font-style:italic}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .ow{color:#8c2f1b}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .ss{color:#2f6b3a}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .il{color:#7a4a00}.highlight .nf,.highlight .fm,.highlight .nc{color:#1d4f91}.highlight .nb,.highlight .bp{color:#5b3f8c}.highlight .nd,.highlight .na{color:#7a4a00}.highlight .err{color:inherit}@media(max-width: 48rem){html{font-size:16px}:root{--fs-xl: 1.9rem;--gutter: 1.25rem}.bar{flex-wrap:wrap;gap:.6rem}.main-nav{margin-left:0;gap:.4rem 1rem}.page{padding-top:2rem}.hero{grid-template-columns:1fr;gap:1.25rem}.hero .avatar{width:6rem;height:6rem}.lab-invite{flex-direction:column;align-items:flex-start}.home-cols,.courses{grid-template-columns:1fr}.search{margin-left:0;width:100%}.group-body{padding-left:0}table.theses td.who{width:8rem}.site-footer nav{margin-left:0}.align-left,.align-right{float:none;margin:0 0 1rem}}