.pda-page .demo-widget-block{border-top:1px solid var(--rule);padding-top:1.5rem;margin-top:1.5rem}.pda-page .demo-widget-title{font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--primary);margin:0 0 1rem}.pda-page .reveal-btn{font-family:var(--font-mono);font-size:.78rem;font-weight:600;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}.pda-page .reveal-btn:hover{background:var(--stamp-done);color:var(--paper)}.pda-page .exercise-demo{margin-top:1.25rem}.pda-page .demo-inputs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.9rem}.pda-page .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}.pda-page .demo-inputs input,.pda-page .demo-inputs select{font-family:var(--font-mono);font-size:.9rem;color:var(--ink);background:var(--surface-container-low);border:1px solid var(--rule-strong);border-radius:4px;padding:.45rem .6rem;width:6rem;max-width:100%}.pda-page .demo-inputs input.wide,.pda-page .demo-inputs select.wide{width:min(22rem,100%)}.pda-page .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}.pda-page .demo-btn:hover{background:var(--primary)}.pda-page .demo-btn:disabled{opacity:.5;cursor:not-allowed}.pda-page .demo-btn-ghost{background:transparent;border:1px solid var(--rule-strong);color:var(--ink-muted)}.pda-page .demo-btn-ghost:hover{background:var(--surface-container-low);color:var(--ink)}.pda-page .demo-repl-btn{font-family:var(--font-mono);font-size:.76rem;text-align:left;background:var(--surface-container-low);color:var(--ink);border:1px solid var(--rule-strong);border-radius:4px;padding:.45rem .7rem;cursor:pointer;overflow-wrap:anywhere;transition:border-color .15s ease,background-color .15s ease}.pda-page .demo-repl-btn:hover,.pda-page .demo-repl-btn[aria-pressed=true]{border-color:var(--stamp-done);background:var(--paper)}.pda-page .demo-repl-btn[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--stamp-done)}.pda-page .demo-step{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-muted);margin:0 0 1rem}.pda-page .demo-split{display:flex;flex-direction:column;gap:1.1rem}.pda-page .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)}.pda-page .demo-code code{font-family:var(--font-mono);font-size:.78rem;line-height:1.65}.pda-page .code-line{display:block;padding:.05rem .35rem;margin:0 -.35rem;border-radius:3px;white-space:pre-wrap;overflow-wrap:anywhere;transition:background-color .2s ease}.pda-page .code-line.active{background:#7fb2e047}.pda-page .demo-output{background:var(--surface-container-low);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;overflow-x:auto}.pda-page .demo-output p{margin:0}.pda-page .demo-pre{white-space:pre}.pda-page .demo-note{margin-top:.6rem!important;font-family:var(--font-body);font-size:.85rem;color:var(--ink-muted);white-space:normal}.pda-page .placeholder{color:var(--ink-muted);font-style:italic;white-space:normal}.pda-page .is-error{color:var(--error)}.pda-page .is-ok{color:var(--stamp-done);font-weight:600}.pda-page .demo-chips{display:flex;flex-wrap:wrap;gap:.4rem}.pda-page .demo-chip{display:inline-flex;flex-direction:column;align-items:center;min-width:2.4rem;font-family:var(--font-mono);font-size:.82rem;background:var(--paper);border:1px solid var(--rule-strong);border-radius:4px;padding:.25rem .45rem;color:var(--ink);transition:background-color .2s ease,border-color .2s ease,opacity .2s ease}.pda-page .demo-chip .idx{color:var(--ink-muted);font-size:.62rem}.pda-page .is-picked{background:color-mix(in srgb,var(--stamp-done) 22%,var(--paper));border-color:var(--stamp-done);font-weight:700}.pda-page .is-dim{opacity:.45}.pda-page .demo-grid{border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.pda-page .demo-grid th,.pda-page .demo-grid td{border:1px solid var(--rule-strong);padding:.3rem .6rem;text-align:right;transition:background-color .2s ease}.pda-page .demo-grid th{background:var(--surface-container);color:var(--ink-muted);font-weight:600}.pda-page .demo-grid td{background:var(--paper);color:var(--ink)}.pda-page .demo-grid td.is-picked{background:color-mix(in srgb,var(--stamp-done) 28%,var(--paper))}.pda-page .demo-grid th.is-picked{background:color-mix(in srgb,var(--stamp-done) 40%,var(--surface-container));color:var(--ink)}.pda-page .demo-scroll{overflow-x:auto}.pda-page[data-astro-cid-n2yeiqgm]{max-width:720px;margin:0 auto;padding:clamp(2rem,6vw,3.5rem) var(--gutter) 5rem}.back-link[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]:hover{color:var(--ink)}.course-header[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]{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-n2yeiqgm]{width:.5rem;height:.5rem;border-radius:50%;background:var(--stamp-done);flex-shrink:0}h1[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--ink-muted);margin:0}.intro[data-astro-cid-n2yeiqgm]{font-size:1.02rem;line-height:1.65;color:var(--ink-muted);max-width:58ch;margin:0 0 2rem}.topic-tabs[data-astro-cid-n2yeiqgm]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.topic-tab[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]:hover{color:var(--ink)}.topic-tab[data-astro-cid-n2yeiqgm].is-active{background:var(--primary);border-color:var(--primary);color:var(--paper)}.session-head[data-astro-cid-n2yeiqgm]{display:flex;align-items:baseline;gap:.9rem;margin-bottom:1.25rem}.session-num[data-astro-cid-n2yeiqgm]{font-family:var(--font-mono);font-weight:600;font-size:.85rem;color:var(--stamp-done);flex-shrink:0}.session-head[data-astro-cid-n2yeiqgm] h2[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]{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-n2yeiqgm]{margin-bottom:1.75rem}.concept-list[data-astro-cid-n2yeiqgm]{margin:0;padding-left:1.3em;max-width:62ch}.concept-list[data-astro-cid-n2yeiqgm] li[data-astro-cid-n2yeiqgm]{font-size:.95rem;line-height:1.65;color:var(--ink);margin:0 0 .6rem}.concept-list[data-astro-cid-n2yeiqgm] li[data-astro-cid-n2yeiqgm]::marker{color:var(--stamp-done)}.concept-list[data-astro-cid-n2yeiqgm] li[data-astro-cid-n2yeiqgm]:last-child{margin-bottom:0}.concept-list[data-astro-cid-n2yeiqgm] strong{font-weight:700;color:var(--ink)}.concept-list[data-astro-cid-n2yeiqgm] em{font-style:italic;color:var(--ink-muted)}.concept-list[data-astro-cid-n2yeiqgm] u{text-decoration:underline;text-decoration-color:var(--stamp-progress);text-decoration-thickness:2px;text-underline-offset:2px}.concept-list[data-astro-cid-n2yeiqgm] code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-container-low);border:1px solid var(--rule);border-radius:3px;padding:.05em .35em;overflow-wrap:anywhere}.concept-list[data-astro-cid-n2yeiqgm] .hl-primary{color:var(--primary);font-weight:600}.concept-list[data-astro-cid-n2yeiqgm] .hl-secondary{color:var(--secondary);font-weight:600}.key-terms[data-astro-cid-n2yeiqgm]{background:var(--surface-container-low);border:1px solid var(--rule);border-radius:6px;padding:1rem 1.25rem;margin-bottom:1.75rem}.key-terms-list[data-astro-cid-n2yeiqgm]{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1rem}.key-term[data-astro-cid-n2yeiqgm]{display:contents}.key-terms-list[data-astro-cid-n2yeiqgm] dt[data-astro-cid-n2yeiqgm]{font-family:var(--font-mono);font-weight:700;font-size:.82rem;color:var(--ink)}.key-terms-list[data-astro-cid-n2yeiqgm] dd[data-astro-cid-n2yeiqgm]{margin:0;font-size:.85rem;line-height:1.5;color:var(--ink-muted)}.worked[data-astro-cid-n2yeiqgm]{margin-bottom:1.75rem}.worked-code[data-astro-cid-n2yeiqgm],.worked-output[data-astro-cid-n2yeiqgm]{margin:0;border-radius:4px;padding:1rem 1.1rem;overflow-x:auto;font-family:var(--font-mono);font-size:.8rem;line-height:1.65}.worked-code[data-astro-cid-n2yeiqgm]{background:#0d2d49;color:#e3eaf0;border-left:3px solid var(--stamp-done)}.worked-output[data-astro-cid-n2yeiqgm]{margin-top:.6rem;background:var(--surface-container-low);border:1px dashed var(--rule-strong);color:var(--ink)}.exercise[data-astro-cid-n2yeiqgm]{border-top:3px double var(--rule-strong);padding-top:1.5rem}.activity[data-astro-cid-n2yeiqgm]{border:1px dashed var(--rule-strong);border-radius:4px;padding:.9rem 1.1rem;margin-bottom:1.5rem}.activity-label[data-astro-cid-n2yeiqgm]{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-n2yeiqgm] p[data-astro-cid-n2yeiqgm]{margin:0;font-size:.92rem;line-height:1.55;color:var(--ink-muted)}.course-materials[data-astro-cid-n2yeiqgm]{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--rule)}.course-materials[data-astro-cid-n2yeiqgm] h3[data-astro-cid-n2yeiqgm]{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-n2yeiqgm]{font-size:.85rem;line-height:1.6;color:var(--ink-muted);margin:0;max-width:60ch}.source-note[data-astro-cid-n2yeiqgm] a[data-astro-cid-n2yeiqgm]{color:var(--primary);border-bottom:1px solid var(--rule-strong);text-decoration:none}.source-note[data-astro-cid-n2yeiqgm] a[data-astro-cid-n2yeiqgm]:hover{border-color:var(--stamp-done);color:var(--stamp-done)}@media(max-width:560px){.course-header[data-astro-cid-n2yeiqgm]{flex-direction:column}.key-terms-list[data-astro-cid-n2yeiqgm]{grid-template-columns:1fr;gap:.15rem}.key-terms-list[data-astro-cid-n2yeiqgm] dd[data-astro-cid-n2yeiqgm]{margin-bottom:.5rem}}
