.pl-course{--bg:var(--color-bg);--bg2:var(--color-surface);--bg3:var(--color-surface-2);--code-bg:var(--color-bg-2);--accent:var(--color-accent);--accent2:var(--accent);--accent-dim:color-mix(in srgb, var(--accent) 12%, transparent);--on-accent:var(--color-on-accent);--text:var(--color-text);--text-bright:var(--color-text-bright);--text-dim:var(--color-text-dim);--text-faint:var(--color-text-faint);--text-muted:var(--text-dim);--border:var(--color-border);--border-light:var(--color-border-2);--green:#98c379;--purple:#c678dd;--blue:#61afef;--orange:#d19a66;--red:#e06c75;--gold:#e5c07b;--yellow:var(--gold);--mono:var(--font-mono);--serif:var(--font-display);--cf-accent:var(--accent);--cf-surface:var(--bg2);--cf-surface2:var(--bg3);--cf-bg:var(--bg);--cf-text:var(--text);--cf-dim:var(--text-dim);--cf-border:var(--border);--cf-green:var(--green);--cf-red:var(--red);--cf-code:var(--code-bg);--bg-quiz:var(--bg3);background:var(--bg);color:var(--text);isolation:isolate;font-size:16px;line-height:1.7;overflow-x:clip}.pl-course .course-container{max-width:900px;margin:0 auto;padding:0 0 4rem}html[data-cf-theme=light] .pl-course{--bg:#fff;--bg2:#f6f8fa;--bg3:#eaeef2;--code-bg:#f2f4f7;--text:#1f2328;--text-bright:#0b0f16;--text-dim:#57606a;--text-faint:#6e7781;--border:#d0d7de;--border-light:#c4ccd4;--accent-dim:color-mix(in srgb, var(--accent) 14%, transparent)}.pl-course .progress-bar-container{z-index:5;background:var(--border);height:3px;position:sticky;top:60px}.pl-course .progress-bar{background:var(--accent);width:0%;height:3px;transition:width .4s}.pl-course .course-header{text-align:left;border-bottom:1px solid var(--border);margin-bottom:2.25rem;padding:.5rem 0 2rem}.pl-course .course-header .badge{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-dim);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:999px;margin-bottom:1rem;padding:.28rem .7rem;font-size:.68rem;font-weight:800;display:inline-block}.pl-course .course-header h1{font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.01em;text-wrap:balance;color:var(--text-bright);margin:0 0 .9rem;font-size:clamp(2rem,4.5vw,3.25rem);font-weight:500;line-height:1.1}.pl-course .course-header .sub{color:var(--text-dim);max-width:640px;margin:0 0 1.4rem;font-size:1.1rem}.pl-course .course-header .sub p{margin:0}.pl-course .course-meta{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;display:flex}.pl-course .meta-chip{background:var(--bg2);border:1px solid var(--border);color:var(--text-dim);border-radius:20px;padding:.35rem .9rem;font-size:.8rem}.pl-course .meta-chip b{color:var(--accent);font-weight:600}.pl-course .meta-chip.living b{color:var(--green)}.pl-course .disclaimer{color:var(--text-dim);margin-top:1.2rem;font-size:.78rem}.pl-course details.toc{background:var(--bg2);border:1px solid var(--border);border-radius:12px;margin-bottom:2.25rem;padding:1.25rem 1.75rem}.pl-course details.toc summary{cursor:pointer;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;list-style:none;display:flex}.pl-course details.toc summary::-webkit-details-marker{display:none}.pl-course details.toc summary:before{content:"▸";font-size:.8rem;transition:transform .2s}.pl-course details.toc[open] summary:before{transform:rotate(90deg)}.pl-course details.toc[open] summary{margin-bottom:1rem}.pl-course .toc ol{counter-reset:toc;margin:0;padding:0;list-style:none}.pl-course .toc li{counter-increment:toc;margin-bottom:.3rem}.pl-course .toc a{color:var(--text);border-radius:6px;align-items:baseline;gap:.75rem;padding:.4rem .5rem;text-decoration:none;transition:background .15s;display:flex}.pl-course .toc a:hover{background:var(--bg3);color:var(--accent)}.pl-course .toc a .n{color:var(--accent);font-size:.8rem;font-weight:700;font-family:var(--mono);min-width:1.4rem}.pl-course .toc .tag{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;text-align:right;margin-left:auto;font-size:.7rem;font-weight:600}.pl-course .module{background:var(--bg2);border:1px solid var(--border);border-radius:12px;margin-bottom:2rem;overflow:hidden}.pl-course .module-header{background:var(--bg3);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.4rem 1.6rem;display:flex;position:relative}.pl-course .mh-toggle{width:28px;height:28px;color:var(--text-dim);cursor:pointer;font:inherit;background:0 0;border:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex;position:static}.pl-course .mh-toggle:before{content:"";position:absolute;inset:0}.pl-course .mh-toggle:focus-visible{outline:none}.pl-course .module-header:has(.mh-toggle:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.pl-course .module-header:hover .mh-toggle{color:var(--accent)}.pl-course .module-header .cf-modmeta{z-index:1;margin-left:0;position:relative}.pl-course .module-header .num{color:var(--accent);border:1px solid var(--border-light);font-family:var(--serif);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:600;display:flex}.pl-course .module-header .mh-text{flex:1;min-width:0}.pl-course .module-header h2{font-family:var(--serif);color:var(--text-bright);margin:0;font-size:1.45rem;font-weight:500;line-height:1.25}.pl-course .module-header .mt{color:var(--text-dim);margin-top:.15rem;font-size:.82rem;font-weight:400}.pl-course .module-header .chevron{flex-shrink:0;font-size:.9rem;transition:transform .2s}.pl-course .module-header:hover .cf-bm{opacity:.85}.pl-course .module:not(.open) .module-header .chevron{transform:rotate(-90deg)}.pl-course .module:not(.open) .module-header{border-bottom-color:#0000}.pl-course .module:not(.open) .module-body{display:none}.pl-course .module-body{padding:1.6rem}.pl-course .module-body h3{color:var(--text-bright);font-family:var(--serif);margin:1.8rem 0 .7rem;font-size:1.3rem;font-weight:500}.pl-course .module-body h3:first-child,.pl-course .module-body>.blk:first-child>h3,.pl-course .blk>:first-child{margin-top:0}.pl-course .module-body h4{color:var(--text-bright);margin:1.3rem 0 .5rem;font-size:.95rem;font-weight:700}.pl-course .module-body p{margin:0 0 .9rem}.pl-course .module-body ul,.pl-course .module-body ol{margin:0 0 1rem 1.3rem;padding:0}.pl-course .module-body ul{list-style:outside}.pl-course .module-body ol{list-style:decimal}.pl-course .module-body li{margin-bottom:.45rem}.pl-course .module-body strong{color:var(--text-bright);font-weight:650}.pl-course .module-body em{font-style:italic}.pl-course .module-body a{color:var(--accent);border-bottom:1px dotted color-mix(in srgb, var(--accent) 40%, transparent);text-decoration:none}.pl-course .module-body a:hover{border-bottom-style:solid}.pl-course .module-body hr{border:0;border-top:1px solid var(--border);margin:1.4rem 0}.pl-course .module-footer{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;padding-top:1rem;font-size:.85rem;display:flex}.pl-course .module-footer a{color:var(--accent);text-decoration:none}.pl-course .module-footer .cf-done{padding:.4rem .9rem;font-size:.8rem}.pl-course .cf-modmeta{margin-left:auto}.pl-course .module-body .cf-modmeta{display:none}.pl-course .objectives{background:var(--accent-dim);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:10px;margin-bottom:1.5rem;padding:1.1rem 1.3rem}.pl-course .objectives .t{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.72rem;font-weight:800}.pl-course .objectives ul{margin:0 0 0 1.1rem}.pl-course .objectives li{margin-bottom:.25rem;font-size:.92rem}.pl-course sup.src-ref{margin-left:.15em;font-size:.68em;line-height:0}.pl-course sup.src-ref a{color:var(--accent);border-bottom:0;padding:0 .1em;font-weight:700}.pl-course sup.src-ref a:before{content:"["}.pl-course sup.src-ref a:after{content:"]"}.pl-course code{font-family:var(--mono);background:var(--code-bg);color:var(--orange);border-radius:4px;padding:.12em .4em;font-size:.87em}.pl-course pre{background:var(--code-bg);border:1px solid var(--border);font-size:.83rem;line-height:1.6;font-family:var(--mono);border-radius:9px;margin:1.1rem 0;padding:.9rem 1.1rem;position:relative;overflow-x:auto}.pl-course pre code{color:var(--text);font-size:inherit;background:0 0;padding:0}.pl-course figure.code-block{margin:1.1rem 0;position:relative}.pl-course figure.code-block:hover .cf-copy,.pl-course .cf-copy:focus-visible{opacity:1}.pl-course .cf-copy{min-width:4.6em}.pl-course figure.code-block pre{margin:0}.pl-course figcaption{color:var(--text-dim);margin-top:.45rem;font-size:.82rem;line-height:1.5}.pl-course pre.diagram{white-space:pre;color:var(--text-bright)}.pl-course .cf-copy{opacity:.55}.pl-course .callout{--c:var(--accent);background:color-mix(in srgb, var(--c) 7%, transparent);border:1px solid;border-left-width:3px;border-color:color-mix(in srgb, var(--c) 28%, transparent);border-left-color:var(--c);border-radius:10px;margin:1.3rem 0;padding:1.1rem 1.3rem}.pl-course .callout .lbl{text-transform:uppercase;letter-spacing:.08em;color:var(--c);margin-bottom:.5rem;font-size:.7rem;font-weight:800;display:block}.pl-course .callout p,.pl-course .callout ul,.pl-course .callout ol,.pl-course .callout blockquote{margin-bottom:.9rem}.pl-course .callout ul,.pl-course .callout ol{margin-left:1.2rem}.pl-course .callout li{margin-bottom:.35rem}.pl-course .callout>:last-child,.pl-course .callout p:last-child,.pl-course .callout ul:last-child,.pl-course .callout ol:last-child{margin-bottom:0}.pl-course .c-key,.pl-course .c-info{--c:var(--accent)}.pl-course .c-warning{--c:var(--yellow)}.pl-course .c-tip,.pl-course .c-takeaway,.pl-course .c-fact,.pl-course .c-success{--c:var(--green)}.pl-course .c-dissent,.pl-course .c-risk{--c:var(--red)}.pl-course .c-steel{--c:var(--accent2)}.pl-course .c-opinion{--c:var(--purple)}.pl-course .c-insight{--c:var(--blue)}.pl-course .c-note{--c:var(--text-dim)}.pl-course .c-quote{--c:var(--border-light);color:var(--text-dim);font-style:italic}.pl-course .c-quote .lbl{color:var(--text-dim);font-style:normal}.pl-course .c-quote strong{font-style:normal}.pl-course blockquote{border-left:3px solid var(--border-light);color:var(--text-dim);margin:1rem 0;padding:.2rem 0 .2rem 1.1rem;font-style:italic}.pl-course blockquote strong{color:var(--text);font-style:normal}.pl-course .tw{border:1px solid var(--border);border-radius:9px;margin:1.2rem 0;overflow-x:auto}.pl-course .tw .tcap{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:var(--bg2);padding:.6rem .85rem;font-size:.8rem;font-weight:700}.pl-course table{border-collapse:collapse;width:100%;font-size:.87rem}.pl-course th{background:var(--bg3);color:var(--text-bright);text-align:left;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:.65rem .85rem;font-size:.78rem;font-weight:700}.pl-course td{border-bottom:1px solid var(--border);vertical-align:top;padding:.6rem .85rem}.pl-course tbody tr:last-child td{border-bottom:none}.pl-course tbody tr:hover{background:color-mix(in srgb, var(--accent) 4%, transparent)}.pl-course .stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:1.2rem 0;display:grid}.pl-course .stat{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.8rem .9rem}.pl-course .stat b{font-family:var(--mono);color:var(--text-bright);font-size:1.35rem;font-weight:800;line-height:1.25;display:block}.pl-course .stat b small{color:var(--accent);margin-left:.25rem;font-size:.72rem;font-weight:700}.pl-course .stat span{color:var(--text-dim);margin-top:.25rem;font-size:.74rem;line-height:1.4;display:block}.pl-course ul.checklist{margin:1.1rem 0;padding:0;list-style:none}.pl-course ul.checklist li{background:var(--bg3);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:.7rem;margin-bottom:.45rem;padding:.6rem .85rem;display:flex}.pl-course ul.checklist input{accent-color:var(--green);flex-shrink:0;margin-top:.4rem}.pl-course ul.checklist li.checked{opacity:.6}.pl-course ul.checklist li.checked .ck-text{text-decoration:line-through}.pl-course ul.checklist .ck-text p{margin:0}.pl-course ul.checklist label.ck-text{cursor:pointer;flex:1}.pl-course .ck-sum{color:var(--text-dim);margin:-.6rem 0 1rem;font-size:.78rem}.pl-course ol.timeline{border-left:2px solid var(--border-light);margin:1.2rem 0;padding:0 0 0 1.1rem;list-style:none}.pl-course ol.timeline li{padding:0 0 1rem 1rem;position:relative}.pl-course ol.timeline li:before{content:"";background:var(--accent);border:2px solid var(--bg2);border-radius:50%;width:11px;height:11px;position:absolute;top:.45rem;left:-1.55rem}.pl-course ol.timeline .when{font-family:var(--mono);color:var(--accent);font-size:.74rem;font-weight:700;display:block}.pl-course ol.timeline .tl-title{color:var(--text-bright);font-weight:650}.pl-course ol.timeline .tl-detail{color:var(--text-dim);font-size:.9rem}.pl-course ol.timeline .tl-detail p{margin:.2rem 0 0}.pl-course details.reveal{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--yellow);border-radius:9px;margin:1.2rem 0;padding:.85rem 1.1rem}.pl-course details.reveal summary{cursor:pointer;color:var(--yellow);padding:0;font-size:.92rem;font-weight:650;list-style:none}.pl-course details.reveal summary::-webkit-details-marker{display:none}.pl-course details.reveal summary:before{content:"▸ ";color:var(--yellow);display:inline}.pl-course details.reveal[open] summary:before{content:"▾ ";transform:none}.pl-course details.reveal[open] summary{border-bottom:1px solid var(--border);margin-bottom:.7rem;padding-bottom:.7rem}.pl-course details.reveal p:last-child{margin-bottom:0}.pl-course .flashcards .flashcard{display:none}.pl-course figure.vx-micro{border:1px solid var(--border);background:var(--bg3);border-radius:12px;margin:1.5rem 0;overflow:hidden}.pl-course figure.vx-micro video{background:#fff;width:100%;display:block}.pl-course figure.vx-micro figcaption{color:var(--text-dim);align-items:center;gap:.6rem;margin:0;padding:.6rem .9rem;font-size:.88rem;line-height:1.45;display:flex}.pl-course .vx-chip{letter-spacing:.08em;color:var(--accent);background:var(--accent-dim);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:999px;flex:none;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.pl-course .legacy-island{border:1px dashed var(--border-light);background:var(--bg3);border-radius:10px;margin:1.3rem 0;overflow:hidden}.pl-course .legacy-island iframe{background:0 0;border:0;width:100%;display:block}.pl-course .legacy-island .note{color:var(--text-dim);border-top:1px solid var(--border);padding:.45rem .9rem;font-size:.76rem}.pl-course .legacy-island{position:relative}.pl-course .legacy-skel{padding:1rem;position:absolute;inset:0 0 auto}.pl-course .lab{background:linear-gradient(180deg, color-mix(in srgb, var(--accent2) 8%, var(--bg2)), var(--bg));border:1px solid var(--accent2);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent2) 10%, transparent);border-radius:14px;margin:1.5rem 0;overflow:hidden}.pl-course .lab-top{background:color-mix(in srgb, var(--accent2) 12%, transparent);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.8rem;padding:.9rem 1.3rem;display:flex}.pl-course .lab-top h3{color:var(--text-bright);margin:0;font-size:1rem;font-weight:800}.pl-course .lab-pill{text-transform:uppercase;letter-spacing:.07em;background:var(--accent2);color:var(--on-accent);border-radius:20px;padding:.22rem .6rem;font-size:.68rem;font-weight:800}.pl-course .lab-step{font-family:var(--mono);color:var(--text-dim);margin-left:auto;font-size:.75rem}.pl-course .lab-body{padding:1.3rem}.pl-course .lab-setup{color:var(--text-dim);margin-bottom:1rem;font-size:.92rem}.pl-course .lab-setup p:last-child{margin-bottom:0}.pl-course .stage{border:1px solid var(--border);background:var(--bg3);border-radius:10px;margin-bottom:1rem;padding:1.1rem 1.2rem;transition:opacity .25s}.pl-course .stage:last-child{margin-bottom:0}.pl-course .stage.locked{opacity:.4;pointer-events:none;filter:saturate(.3)}.pl-course .stage-h{align-items:center;gap:.6rem;margin-bottom:.85rem;display:flex}.pl-course .stage-h .n{background:var(--accent2);width:22px;height:22px;color:var(--on-accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:800;display:flex}.pl-course .stage-h .ttl{color:var(--text-bright);font-size:.95rem;font-weight:750}.pl-course .stage-h .st{font-size:.68rem;font-family:var(--mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-left:auto}.pl-course .stage-h .st.ok{color:var(--green)}.pl-course .stage p.hint{color:var(--text-dim);margin-bottom:.9rem;font-size:.86rem}.pl-course .ctrl{margin-bottom:1.05rem}.pl-course .ctrl:last-child{margin-bottom:0}.pl-course .ctrl .cl{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.8rem;margin-bottom:.35rem;display:flex}.pl-course .ctrl .cn{color:var(--text);font-size:.87rem;font-weight:600}.pl-course .ctrl .cv{font-family:var(--mono);color:var(--accent);background:var(--code-bg);white-space:nowrap;border-radius:5px;padding:.1rem .55rem;font-size:.95rem;font-weight:700}.pl-course .ctrl .cd{color:var(--text-dim);margin-top:.3rem;font-size:.78rem;line-height:1.5}.pl-course input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:3px;width:100%;height:5px}.pl-course input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent2);cursor:pointer;border:2px solid var(--bg);width:17px;height:17px;box-shadow:0 0 0 1px var(--accent2);border-radius:50%}.pl-course input[type=range]::-moz-range-thumb{background:var(--accent2);cursor:pointer;border:2px solid var(--bg);width:17px;height:17px;box-shadow:0 0 0 1px var(--accent2);border-radius:50%}.pl-course input[type=range]:disabled{opacity:.5;cursor:not-allowed}.pl-course .lab-btns{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.pl-course .act{background:var(--accent2);color:var(--on-accent);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.15rem;font-family:inherit;font-size:.88rem;font-weight:700;transition:all .15s}.pl-course .act:hover:not(:disabled){filter:brightness(1.15)}.pl-course .act:disabled{background:var(--border);color:var(--text-dim);cursor:not-allowed}.pl-course .act.ghost{border:1px solid var(--border-light);color:var(--text-dim);background:0 0}.pl-course .act.ghost:hover{border-color:var(--accent);color:var(--accent)}.pl-course .gate-msg{color:var(--text-dim);font-size:.78rem}.pl-course .priors{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin-bottom:.4rem;display:grid}.pl-course .prior{background:var(--code-bg);border:1px solid var(--border);cursor:pointer;text-align:left;color:inherit;border-radius:9px;padding:.8rem .9rem;font-family:inherit;transition:all .15s}.pl-course .prior:hover:not(:disabled){border-color:var(--accent)}.pl-course .prior.sel{border-color:var(--accent2);background:color-mix(in srgb, var(--accent2) 14%, transparent)}.pl-course .prior:disabled{cursor:default}.pl-course .prior b{color:var(--text-bright);margin-bottom:.2rem;font-size:.9rem;font-weight:750;display:block}.pl-course .prior span{color:var(--text-dim);font-size:.75rem;line-height:1.45;display:block}.pl-course .mgrid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:1rem 0;display:grid}.pl-course .mcell{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.7rem .85rem}.pl-course .mcell b{font-family:var(--mono);color:var(--text-bright);font-size:1.15rem;font-weight:800;line-height:1.25;display:block}.pl-course .mcell span{color:var(--text-dim);margin-top:.2rem;font-size:.72rem;line-height:1.4;display:block}.pl-course .levers{margin:1rem 0}.pl-course .lev{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border-light);border-radius:8px;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:.7rem;margin-bottom:.5rem;padding:.65rem .9rem;display:grid}.pl-course .lev.top{border-left-color:var(--green);background:color-mix(in srgb, var(--green) 7%, transparent)}.pl-course .lev.mid{border-left-color:var(--accent)}.pl-course .lev.low{border-left-color:var(--text-dim);opacity:.8}.pl-course .lev.picked .ln:after{content:" · your pick";color:var(--accent2);font-size:.75rem;font-weight:700}.pl-course .lev .rk{font-family:var(--mono);color:var(--text-dim);font-size:.85rem;font-weight:800}.pl-course .lev .ln{color:var(--text);font-size:.88rem}.pl-course .lev .ln em{color:var(--text-dim);margin-top:.15rem;font-size:.78rem;font-style:normal;line-height:1.5;display:block}.pl-course .lev .lg{font-family:var(--mono);color:var(--accent);white-space:nowrap;font-size:.95rem;font-weight:800}.pl-course .lev.top .lg{color:var(--green)}.pl-course .lev.low .lg{color:var(--text-dim)}.pl-course .verdict{border:1px solid;border-left-width:3px;border-radius:9px;margin-top:.9rem;padding:.95rem 1.15rem;font-size:.9rem}.pl-course .verdict.v-hit{background:color-mix(in srgb, var(--green) 8%, transparent);border-color:color-mix(in srgb, var(--green) 30%, transparent);border-left-color:var(--green)}.pl-course .verdict.v-miss{background:color-mix(in srgb, var(--yellow) 8%, transparent);border-color:color-mix(in srgb, var(--yellow) 30%, transparent);border-left-color:var(--yellow)}.pl-course .verdict .vl{text-transform:uppercase;letter-spacing:.07em;margin-bottom:.4rem;font-size:.7rem;font-weight:800;display:block}.pl-course .verdict.v-hit .vl{color:var(--green)}.pl-course .verdict.v-miss .vl{color:var(--yellow)}.pl-course .verdict p{margin-bottom:.7rem}.pl-course .verdict p:last-child{margin-bottom:0}.pl-course .cap{border:1px solid var(--border);background:var(--bg2);border-radius:9px;margin-bottom:.6rem;padding:.8rem .95rem}.pl-course .cap .cq{color:var(--text);margin-bottom:.55rem;font-size:.88rem;line-height:1.6}.pl-course .cap .cq blockquote{margin:0 0 .5rem}.pl-course .cap .cs{color:var(--text-dim);font-size:.72rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;display:block}.pl-course .cap-opts{flex-wrap:wrap;gap:.35rem;display:flex}.pl-course .cap-opt{cursor:pointer;background:var(--code-bg);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:.35rem .8rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:all .15s}.pl-course .cap-opt:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pl-course .cap-opt:disabled{cursor:default}.pl-course .cap-opt.sel-y{background:color-mix(in srgb, var(--green) 20%, transparent);border-color:var(--green);color:var(--green)}.pl-course .cap-opt.sel-n{background:color-mix(in srgb, var(--red) 20%, transparent);border-color:var(--red);color:var(--red)}.pl-course .cap-opt.expert{border-color:var(--green)}.pl-course .split-bars{flex-direction:column;gap:.3rem;margin:.6rem 0;display:flex}.pl-course .split-bar{color:var(--text-dim);grid-template-columns:7rem 1fr 3rem;align-items:center;gap:.6rem;font-size:.76rem;display:grid}.pl-course .split-bar i{background:var(--accent);border-radius:4px;height:8px;display:block}.pl-course .split-bar.expert i{background:var(--green)}.pl-course .field{background:var(--accent-dim);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-left:3px solid var(--accent);border-radius:9px;margin-top:.9rem;padding:.95rem 1.15rem;font-size:.88rem}.pl-course .field .lbl{color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.45rem;font-size:.7rem;font-weight:800;display:block}.pl-course .field p{margin-bottom:.7rem}.pl-course .field p:last-child{margin-bottom:0}.pl-course .lab-static{color:var(--text-dim);font-size:.88rem}.pl-course .tier{text-transform:uppercase;letter-spacing:.06em;vertical-align:middle;font-size:.62rem;font-weight:800;font-family:var(--mono);--c:var(--accent);background:color-mix(in srgb, var(--c) 14%, transparent);color:var(--c);border:1px solid color-mix(in srgb, var(--c) 35%, transparent);border-radius:4px;margin-right:.4rem;padding:.14rem .5rem;display:inline-block}.pl-course .tier.fresh-live{--c:var(--green)}.pl-course .tier.fresh-current{--c:var(--accent)}.pl-course .tier.fresh-dated{--c:var(--yellow)}.pl-course .tier.fresh-frozen{--c:var(--purple)}.pl-course .tier.fresh-dead{--c:var(--red)}.pl-course ol.sources{counter-reset:src;margin:1rem 0 0;padding:0;list-style:none}.pl-course ol.sources li{counter-increment:src;background:var(--bg3);border:1px solid var(--border);border-radius:9px;grid-template-columns:2rem 1fr;gap:.5rem;margin-bottom:.55rem;padding:.8rem .95rem;scroll-margin-top:80px;display:grid}.pl-course ol.sources li:before{content:counter(src);font-family:var(--mono);color:var(--accent);font-size:.85rem;font-weight:800}.pl-course ol.sources li:target{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.pl-course ol.sources .src-title{color:var(--text-bright);font-size:.93rem;font-weight:650}.pl-course ol.sources .src-meta{color:var(--text-dim);margin-top:.2rem;font-size:.78rem}.pl-course ol.sources blockquote{margin:.45rem 0 0;padding-left:.8rem;font-size:.84rem}.pl-course .sources-summary{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0 .2rem;font-size:.78rem;display:flex}.pl-course .weekly-update{border-left:3px solid var(--accent);margin:20px 0;padding:4px 0 4px 16px}.pl-course .weekly-update h3{margin-top:0!important}.pl-course .weekly-update .checked{color:var(--text-dim);font-size:.75rem;font-family:var(--mono);margin:-.4rem 0 .6rem}.pl-course .weekly-update li p{margin:0;display:inline}.pl-course .weekly-update .affects{color:var(--text-dim);margin-left:.4rem;font-size:.74rem;display:inline-block}.pl-course .weekly-update .affects a{border-bottom:0}.pl-course .weekly-update .affects .kind{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--accent2);font-size:.66rem}.pl-course .prep{gap:1.2rem;margin-bottom:2.25rem;display:grid}.pl-course .prep-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1.3rem 1.5rem}.pl-course .prep-card>h2{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:baseline;gap:.6rem;margin:0 0 .9rem;font-size:.85rem;font-weight:800;display:flex}.pl-course .prep-card>h2 small{color:var(--text-dim);text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:500}.pl-course .plan{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.pl-course .plan li{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--border-light);border-radius:8px;grid-template-columns:7.5rem 1fr auto;align-items:baseline;gap:.8rem;padding:.65rem .9rem;display:grid}.pl-course .plan li.today{border-left-color:var(--accent2);background:color-mix(in srgb, var(--accent2) 8%, transparent)}.pl-course .plan li.past{opacity:.55;border-left-color:var(--green)}.pl-course .plan .pd{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;font-size:.76rem}.pl-course .plan .pd b{color:var(--text-bright);font-size:.85rem;display:block}.pl-course .plan .pi{flex-wrap:wrap;gap:.35rem;display:flex}.pl-course .plan .pi a{color:var(--text);background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;text-decoration:none}.pl-course .plan .pi a:hover{border-color:var(--accent);color:var(--accent)}.pl-course .plan .pi a .k{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-right:.3rem;font-size:.68rem;font-weight:700}.pl-course .plan .pm{font-family:var(--mono);color:var(--accent);white-space:nowrap;font-size:.76rem}@media (max-width:640px){.pl-course .plan li{grid-template-columns:1fr;gap:.3rem}}.pl-course details.lq{border:1px solid var(--border);background:var(--bg3);border-radius:9px;margin-bottom:.5rem;padding:.7rem 1rem}.pl-course details.lq summary{cursor:pointer;color:var(--text-bright);font-size:.93rem;font-weight:650;list-style:none}.pl-course details.lq summary::-webkit-details-marker{display:none}.pl-course details.lq summary:before{content:"▸ ";color:var(--accent)}.pl-course details.lq[open] summary:before{content:"▾ "}.pl-course details.lq .why{color:var(--text-dim);margin:.5rem 0;font-size:.85rem}.pl-course details.lq .why p{margin:0}.pl-course details.lq ul{margin:.4rem 0 .3rem 1.2rem;padding:0;list-style:outside}.pl-course details.lq li{margin-bottom:.3rem;font-size:.88rem}.pl-course details.lq li p{margin:0}.pl-course details.lq .fw{margin-top:.4rem;font-size:.78rem}.pl-course details.lq .fw a{color:var(--accent);text-decoration:none}.pl-course .cheat{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;display:grid}.pl-course .cheat h3{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .45rem;font-size:.72rem;font-weight:800}.pl-course .cheat ul{margin:0 0 0 1.1rem;padding:0;list-style:outside}.pl-course .cheat li{margin-bottom:.3rem;font-size:.88rem}.pl-course .talking{margin:0;padding:0;list-style:none}.pl-course .talking li{background:var(--bg3);border:1px solid var(--border);border-radius:8px;margin-bottom:.45rem;padding:.65rem .9rem;font-size:.9rem}.pl-course .talking .claim p{color:var(--text-bright);margin:0;font-weight:600}.pl-course .talking .evidence{color:var(--text-dim);margin-top:.2rem;font-size:.84rem}.pl-course .talking .evidence p{margin:0}.pl-course .stepper{scrollbar-width:none;gap:.35rem;margin:0 0 1.25rem;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.pl-course .stepper::-webkit-scrollbar{display:none}.pl-course .stepper li{border:1px solid var(--border);color:var(--text-dim);background:var(--bg2);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.3rem .7rem .3rem .4rem;font-size:.74rem;font-weight:600;display:inline-flex}.pl-course .stepper li .n{border:1px solid var(--border-light);width:18px;height:18px;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;font-size:.62rem;font-weight:700;display:inline-flex}.pl-course .stepper li.done{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, transparent)}.pl-course .stepper li.done .n{background:var(--green);border-color:var(--green);color:var(--bg)}.pl-course .stepper li.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);animation:1.4s ease-in-out infinite pl-pulse}.pl-course .stepper li.active .n{border-color:var(--accent);color:var(--accent)}.pl-course .stream-strip{z-index:30;padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;font-size:.8rem;display:flex;position:fixed;bottom:0;left:0;right:0}@media (min-width:768px){.pl-course .stream-strip{display:none}}.pl-course .stream-note{text-align:left;color:var(--text-dim);margin:-.8rem 0 1.5rem;font-size:.82rem}.pl-course .module.streaming .module-body:after{content:"Writing…";color:var(--text-dim);font-size:.78rem;font-family:var(--mono);animation:1.4s ease-in-out infinite pl-pulse;display:block}.pl-course .module.pending .module-body{color:var(--text-dim);font-size:.85rem}.pl-course .skeleton{background:linear-gradient(90deg, var(--bg3), var(--border), var(--bg3));background-size:200% 100%;border-radius:4px;height:.9rem;margin:.5rem 0;animation:1.6s linear infinite pl-shimmer}.pl-course .skeleton.w60{width:60%}.pl-course .skeleton.w80{width:80%}.pl-course .stream-error{border:1px solid color-mix(in srgb, var(--red) 40%, transparent);background:color-mix(in srgb, var(--red) 8%, transparent);border-radius:10px;margin:1rem 0;padding:.9rem 1.1rem;font-size:.9rem}.pl-course .audit-list{margin:0;padding:0;font-size:.84rem;list-style:none}.pl-course .audit-list li{border-bottom:1px solid var(--border);color:var(--text-dim);padding:.35rem 0}.pl-course .audit-list li b{font-family:var(--mono);text-transform:uppercase;margin-right:.5rem;font-size:.72rem}.pl-course .audit-list li.error b{color:var(--red)}.pl-course .audit-list li.warn b{color:var(--yellow)}@keyframes pl-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes pl-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pl-course .course-footer{border-top:1px solid var(--border);text-align:left;color:var(--text-dim);margin-top:3rem;padding:2rem 0 0;font-size:.85rem}.pl-course.print .module-header{cursor:default}.pl-course.print .module:not(.open) .module-body{display:block}.pl-course.print .cf-modmeta,.pl-course.print .chevron,.pl-course.print .module-footer .cf-done,.pl-course.print .cf-bm{display:none}.pl-course.print .cf-fb{opacity:1;max-height:none;margin-top:14px}.pl-course.print .cards-print{margin:1rem 0;padding:0;list-style:none}.pl-course.print .cards-print li{border:1px solid var(--border);border-radius:8px;margin-bottom:.4rem;padding:.6rem .9rem;font-size:.9rem}.pl-course.print .cards-print b{color:var(--text-bright)}@media print{.pl-course{color:#1f2328;--bg:#fff;--bg2:#fff;--bg3:#f6f8fa;--code-bg:#f2f4f7;--text:#1f2328;--text-bright:#0b0f16;--text-dim:#57606a;--border:#d0d7de;--border-light:#c4ccd4;background:#fff;border:0;border-radius:0}.pl-course .course-header h1{color:#0b0f16}.pl-course .module{break-before:page;break-inside:auto;border:0}.pl-course .module:first-of-type{break-before:auto}.pl-course .callout,.pl-course .cf-quiz,.pl-course .lab,.pl-course .tw,.pl-course .stat-grid,.pl-course .weekly-update,.pl-course ol.sources li{break-inside:avoid}.pl-course .progress-bar-container,.pl-course .cf-dock,.pl-course .cf-search,.pl-course .cf-panel,.pl-course .cf-score,.pl-course .cf-resume,.pl-course .cf-copy,.pl-course details.toc summary:before{display:none!important}.pl-course details.toc,.pl-course details.reveal,.pl-course details.lq{open:true}.pl-course details.reveal summary:before,.pl-course details.lq summary:before{content:""}.pl-course a{color:inherit;border-bottom:0}.pl-course pre{white-space:pre-wrap}}@media (max-width:640px){.pl-course .course-container{padding:0 0 3rem}.pl-course .module-header{gap:.7rem;padding:1rem 1.1rem}.pl-course .module-body{padding:1.1rem}.pl-course .lab-body{padding:1rem}.pl-course .module-header .cf-modmeta{flex-basis:calc(100% - 28px - 1rem);margin-left:calc(32px + .7rem)}}.pl-course .blk.unverified{padding-right:5.2rem;position:relative}.pl-course .unverified-chip[data-tip]:hover:after,.pl-course .unverified-chip[data-tip]:focus-visible:after{content:attr(data-tip);z-index:5;background:var(--bg3);border:1px solid var(--border-light);width:17rem;color:var(--text);font:400 .78rem/1.45 var(--font-sans);text-transform:none;letter-spacing:0;white-space:normal;border-radius:8px;padding:.55rem .7rem;position:absolute;top:1.7rem;right:0;box-shadow:0 10px 30px #0006}.pl-course .unverified-chip{text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;font-weight:800;font-family:var(--mono);--c:var(--yellow);color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);border:1px solid color-mix(in srgb, var(--c) 35%, transparent);cursor:help;border-radius:4px;padding:.14rem .5rem;position:absolute;top:.15rem;right:0}.pl-course .src-refs{color:var(--text-dim);margin:-.4rem 0 .9rem;font-size:.74rem}.pl-course .src-refs a{color:var(--accent);border-bottom:0;font-weight:700;text-decoration:none}.pl-course .empty-note{color:var(--text-dim);font-size:.88rem}.pl-course .module-footer .report{color:var(--text-faint);margin-left:auto;font-size:.78rem}.pl-course .module-footer .report:hover{color:var(--text)}.pl-course .elapsed{text-align:left;color:var(--text-dim);font-variant-numeric:tabular-nums;margin:-.8rem 0 1.5rem;font-size:.82rem}@media (max-width:640px){.pl-course .blk.unverified{padding-top:1.4rem;padding-right:0}.pl-course .module-footer{flex-direction:column;align-items:flex-start}.pl-course .module-footer .report{margin-left:0}}
