.concept-list strong{font-weight:700;color:var(--ink)}.concept-list em{font-style:italic;color:var(--ink-muted)}.concept-list u{text-decoration:underline;text-decoration-color:var(--stamp-progress);text-decoration-thickness:2px;text-underline-offset:2px}.concept-list code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-container-low, #f4f3f7);border:1px solid var(--rule);border-radius:3px;padding:.05em .35em}.concept-list .hl-primary{color:var(--primary);font-weight:600}.concept-list .hl-secondary{color:var(--secondary);font-weight:600}.concept-list .hl-gold{color:var(--stamp-done);font-weight:600}.demo-widget-block{border-top:1px solid var(--rule);padding-top:1.5rem;margin-top:1.5rem}.demo-widget-block+.demo-widget-block{border-top:none;padding-top:0;margin-top:1.25rem}.demo-widget-title{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--primary);margin:0 0 1rem}.reveal-btn{font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.03em;background:var(--paper);color:var(--stamp-done);border:1px solid var(--stamp-done);border-radius:4px;padding:.55rem 1.1rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.reveal-btn:hover{background:var(--stamp-done);color:var(--paper)}.exercise-demo{margin-top:1.25rem}.demo-inputs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.9rem}.demo-inputs label{display:flex;flex-direction:column;gap:.3rem;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.demo-inputs input{font-family:var(--font-mono);font-size:.9rem;color:var(--ink);background:var(--surface-container-low, #f4f3f7);border:1px solid var(--rule-strong);border-radius:4px;padding:.45rem .6rem;width:9rem}.demo-btn{font-family:var(--font-mono);font-size:.78rem;font-weight:500;background:var(--stamp-done);color:var(--paper);border:none;border-radius:4px;padding:.55rem 1rem;cursor:pointer;transition:background-color .15s ease}.demo-btn:hover{background:var(--primary)}.demo-btn:disabled{opacity:.5;cursor:not-allowed}.demo-btn-ghost{background:transparent;border:1px solid var(--rule-strong);color:var(--ink-muted)}.demo-btn-ghost:hover{background:var(--surface-container-low, #f4f3f7);color:var(--ink)}.demo-repl-btn{font-family:var(--font-mono);font-size:.76rem;background:var(--surface-container-low, #f4f3f7);color:var(--ink);border:1px solid var(--rule-strong);border-radius:4px;padding:.45rem .7rem;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.demo-repl-btn:hover{border-color:var(--stamp-done);background:var(--paper)}.demo-step{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);margin:0 0 1rem}.demo-split{display:flex;flex-direction:column;gap:1.1rem}.demo-code{background:#0d2d49;color:#e3eaf0;border-radius:4px;padding:1rem 1.1rem;overflow-x:auto;margin:0;border-left:3px solid var(--stamp-done);width:100%;box-sizing:border-box}.demo-code code{font-family:var(--font-mono);font-size:.78rem;line-height:1.65}.code-line{display:block;padding:.05rem .35rem;margin:0 -.35rem;border-radius:3px;white-space:pre-wrap;word-break:break-word;transition:background-color .2s ease}.code-line.active{background:#2c4f7473}.demo-side{display:flex;flex-direction:column;gap:.9rem}.demo-output{background:var(--surface-container-low, #f4f3f7);border:1px dashed var(--rule-strong);border-radius:4px;padding:.7rem .85rem;min-height:3rem;font-family:var(--font-mono);font-size:.8rem;color:var(--ink);line-height:1.6}.demo-output p{margin:0}.demo-output .placeholder{color:var(--ink-muted);font-style:italic}.demo-output .is-error{color:#b3402a}.demo-output .is-ok{color:var(--stamp-done);font-weight:600}.demo-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-mono);font-size:.78rem}.demo-checks li{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:4px;color:var(--ink-muted);background:var(--surface-container-low, #f4f3f7);opacity:.6}.demo-checks li.is-checking{opacity:1;color:var(--ink)}.demo-checks li.is-true{opacity:1;background:var(--paper);border:1px solid var(--stamp-done);color:var(--stamp-done);font-weight:600}.check-icon{flex-shrink:0}.demo-list-chips{display:flex;flex-wrap:wrap;gap:.4rem}.demo-list-chip{font-family:var(--font-mono);font-size:.78rem;background:var(--paper);border:1px solid var(--stamp-done);border-radius:999px;padding:.3rem .7rem;color:var(--ink)}.demo-list-chip .idx{color:var(--ink-muted);font-size:.68rem;margin-right:.35rem}.demo-dict-chip{font-family:var(--font-mono);font-size:.78rem;background:var(--paper);border:1px solid var(--stamp-done);border-radius:6px;padding:.3rem .7rem;color:var(--ink)}.demo-dict-chip .k{color:var(--primary);font-weight:700}.course-page[data-astro-cid-jl3jc4f6]{max-width:720px;margin:0 auto;padding:clamp(2rem,6vw,3.5rem) clamp(1.25rem,4vw,1.5rem) 5rem}.back-link[data-astro-cid-jl3jc4f6]{display:inline-block;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--ink-muted);text-decoration:none;margin-bottom:2rem}.back-link[data-astro-cid-jl3jc4f6]:hover{color:var(--ink)}.course-header[data-astro-cid-jl3jc4f6]{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;border-bottom:3px double var(--rule-strong);padding-bottom:1.75rem;margin-bottom:1.75rem}.eyebrow[data-astro-cid-jl3jc4f6]{display:flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .9rem}.eyebrow-dot[data-astro-cid-jl3jc4f6]{width:.5rem;height:.5rem;border-radius:50%;background:var(--stamp-done);flex-shrink:0}h1[data-astro-cid-jl3jc4f6]{font-family:var(--font-serif);font-weight:700;font-size:clamp(2.1rem,5vw,2.75rem);line-height:1.05;margin:0 0 .5rem;letter-spacing:-.01em;color:var(--primary)}.subtitle[data-astro-cid-jl3jc4f6]{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--ink-muted);margin:0}.intro[data-astro-cid-jl3jc4f6]{font-size:1.02rem;line-height:1.65;color:var(--ink-muted);max-width:58ch;margin:0 0 2rem}.topic-tabs[data-astro-cid-jl3jc4f6]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.topic-tab[data-astro-cid-jl3jc4f6]{font-family:var(--font-mono);font-size:.85rem;font-weight:600;background:var(--paper);color:var(--ink-muted);border:1px solid var(--rule-strong);border-radius:999px;padding:.55rem 1.15rem;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.topic-tab[data-astro-cid-jl3jc4f6]:hover{color:var(--ink)}.topic-tab[data-astro-cid-jl3jc4f6].is-active{background:var(--primary);border-color:var(--primary);color:var(--paper)}.topic-panel[data-astro-cid-jl3jc4f6]{padding-top:.25rem}.session-head[data-astro-cid-jl3jc4f6]{display:flex;align-items:baseline;gap:.9rem;margin-bottom:1.25rem}.session-num[data-astro-cid-jl3jc4f6]{font-family:var(--font-mono);font-weight:600;font-size:.85rem;color:var(--stamp-done);flex-shrink:0}.session-head[data-astro-cid-jl3jc4f6] h2[data-astro-cid-jl3jc4f6]{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;margin:0;line-height:1.3;color:var(--primary)}.section-label[data-astro-cid-jl3jc4f6]{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--stamp-done);margin:0 0 .65rem}.concept[data-astro-cid-jl3jc4f6]{margin-bottom:1.75rem}.concept-list[data-astro-cid-jl3jc4f6]{margin:0;padding-left:1.3em;max-width:62ch}.concept-list[data-astro-cid-jl3jc4f6] li[data-astro-cid-jl3jc4f6]{font-size:.95rem;line-height:1.65;color:var(--ink);margin:0 0 .6rem}.concept-list[data-astro-cid-jl3jc4f6] li[data-astro-cid-jl3jc4f6]::marker{color:var(--stamp-done)}.concept-list[data-astro-cid-jl3jc4f6] li[data-astro-cid-jl3jc4f6]:last-child{margin-bottom:0}.key-terms[data-astro-cid-jl3jc4f6]{background:var(--surface-container-low, #f4f3f7);border:1px solid var(--rule);border-radius:6px;padding:1rem 1.25rem;margin-bottom:1.75rem}.key-terms[data-astro-cid-jl3jc4f6] .section-label[data-astro-cid-jl3jc4f6]{margin-bottom:.75rem}.key-terms-list[data-astro-cid-jl3jc4f6]{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1rem}.key-terms-list[data-astro-cid-jl3jc4f6] dt[data-astro-cid-jl3jc4f6]{font-family:var(--font-mono);font-weight:700;font-size:.82rem;color:var(--ink);white-space:nowrap}.key-terms-list[data-astro-cid-jl3jc4f6] dd[data-astro-cid-jl3jc4f6]{margin:0;font-size:.85rem;line-height:1.5;color:var(--ink-muted)}.exercise[data-astro-cid-jl3jc4f6]{border-top:3px double var(--rule-strong);padding-top:1.5rem}.activity[data-astro-cid-jl3jc4f6]{border:1px dashed var(--rule-strong);border-radius:4px;padding:.9rem 1.1rem;margin-bottom:1.5rem}.activity-label[data-astro-cid-jl3jc4f6]{display:inline-block;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--stamp-done);margin-bottom:.35rem}.activity[data-astro-cid-jl3jc4f6] p[data-astro-cid-jl3jc4f6]{margin:0;font-size:.92rem;line-height:1.55;color:var(--ink-muted)}.course-materials[data-astro-cid-jl3jc4f6]{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--rule)}.course-materials[data-astro-cid-jl3jc4f6] h3[data-astro-cid-jl3jc4f6]{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .9rem;font-weight:600}.source-note[data-astro-cid-jl3jc4f6]{font-size:.85rem;line-height:1.6;color:var(--ink-muted);margin:0;max-width:56ch}.source-note[data-astro-cid-jl3jc4f6] a[data-astro-cid-jl3jc4f6]{color:var(--primary);border-bottom:1px solid var(--rule-strong);text-decoration:none;padding-bottom:.05rem;transition:border-color .15s ease,color .15s ease}.source-note[data-astro-cid-jl3jc4f6] a[data-astro-cid-jl3jc4f6]:hover{border-color:var(--stamp-done);color:var(--stamp-done)}@media(max-width:560px){.course-header[data-astro-cid-jl3jc4f6]{flex-direction:column}}
