.pyf-player{--pv-bg:#fff;--pv-paper:#fff;--pv-ink:#17181b;--pv-muted:#51545c;--pv-line:#d9dce1;--pv-accent:#68508f;--pv-soft:#f0ebf7;--pv-green:#386751;--pv-sage:#e5eee7;--pv-rust:#98482f;--pv-warm:#faece2;--app-cream:var(--pv-bg);--app-paper:var(--pv-paper);--app-ink:var(--pv-ink);--app-ink-soft:var(--pv-muted);--app-muted-cream:var(--pv-muted);--app-muted-paper:var(--pv-muted);--pyx-desk:var(--pv-bg);--canvas:var(--pv-bg);--ink:var(--pv-ink);--ink-soft:var(--pv-muted);--paper-soft:var(--pv-paper);--hair:var(--pv-line);--ink-faint:var(--pv-muted);--sage:var(--pv-green);--sage-soft:var(--pv-sage);--coral:var(--pv-rust);--coral-soft:var(--pv-warm);--pyf-prompt-size:28px;--pyf-item-size:20px;--pyf-choice-size:16px;--pyf-choice-padding:10px 16px;--pyf-choice-on:var(--pv-bg);--pyf-hint-size:17px;width:100%;height:auto;min-height:100svh;padding:0;background:var(--pv-bg);color:var(--pv-ink);font:20px/1.6 var(--fs-sans);-webkit-font-smoothing:antialiased}:root[data-theme=dark] .pyf-player{--pv-bg:#1b1c20;--pv-paper:#24262b;--pv-ink:#efefea;--pv-muted:#b6b8c0;--pv-line:#40424a;--pv-accent:#c0afe3;--pv-soft:#332d42;--pv-green:#b7d4bd;--pv-sage:#2a3b31;--pv-rust:#e4a18a;--pv-warm:#413129}.pyf-player *,.pyf-player :after,.pyf-player :before{box-sizing:border-box}.pyf-player .pyx-shell{background:var(--pv-bg);color:var(--pv-ink);display:flex;flex-direction:column;width:100%;max-width:none;min-height:100svh;height:auto;overflow:visible;border:0;border-radius:0;box-shadow:none}.pyf-player .pyx-top{background:var(--pv-bg);border:0;padding:18px 32px;min-height:80px;gap:20px;flex:none}.pyf-player .pyx-x{border:0;box-shadow:none;background:none;color:var(--pv-muted);border-radius:8px;width:40px;height:40px}.pyf-player .pyx-x:hover{background:var(--pv-soft);color:var(--pv-ink)}.pyf-player .pyf-lesson-name{color:var(--pv-muted);font-size:14px;max-width:230px;line-height:1.4}.pyf-player .pyx-segs{max-width:360px;min-width:80px}.pyf-player .pyx-seg-list{gap:5px}.pyf-player .pyx-seg{min-height:40px}@media (max-width:480px){.pyf-player .pyx-seg,.pyf-player .pyx-seg-i{min-width:0}}.pyf-player .pyx-seg__bar{height:5px;border:0;background:var(--pv-line)}.pyf-player .pyx-seg.is-current .pyx-seg__bar,.pyf-player .pyx-seg.is-done .pyx-seg__bar{background:var(--pv-accent)}.pyf-player .pyx-xp{border:0;box-shadow:none;background:none;color:var(--pv-muted);font-size:13px;padding:0;white-space:nowrap}.pyf-player .pyf-tools{display:flex;gap:6px;align-items:center}.pyf-player .pyf-tools button{display:grid;place-items:center;flex:none;width:40px;height:40px;border:0;background:transparent;color:var(--pv-muted);cursor:pointer;border-radius:50%}.pyf-player .pyf-tools button:hover{background:var(--pv-soft);color:var(--pv-ink)}.pyf-player .pyf-tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.pyf-player .pyx-body{display:flex;flex-direction:column;flex:1 0 auto;min-height:auto;overflow:visible;border:0;border-radius:0;background:var(--pv-bg);width:100%;max-width:864px;padding:0 32px;margin:0 auto}.pyf-gate-reason{margin:10px 0 0;text-align:center;color:var(--pv-muted);font-size:15px;line-height:1.5}.pyf-player .pyx-pane{display:contents}.pyf-player .pyx-content{order:1;width:100%;max-width:none;flex:1 0 auto;min-height:auto;display:flex;flex-direction:column;justify-content:center;gap:24px;overflow:visible;padding:28px 0;transform:none;animation:none;scrollbar-gutter:auto}.pyf-player .pyx-content>*,.pyf-player .pyx-content>.act>*{animation:none!important}.pyf-player .pyx-rail{order:2;width:100%;min-width:0;padding:12px 0;min-height:62px;overflow:visible;display:flex;flex-direction:row;align-items:center;gap:16px;border:0;background:transparent}.pyf-player .pyx-eyebrow,.pyf-player .pyx-rail .pyx-title,.pyf-player .pyx-rail__spacer{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.pyf-player .pyx-bubble{order:2;flex:1 1;width:auto;max-width:none;font-size:16px;line-height:1.55;margin:0;padding:0;border:0;box-shadow:none;background:transparent;color:var(--pv-muted)}.pyf-player .pyx-bubble:after,.pyf-player .pyx-bubble:before{display:none}.pyf-player .pyx-tensor{display:flex;order:1;flex:none;margin:0;width:48px;height:48px}.pyf-player .pyx-tensor>span:first-child{width:48px!important;height:48px!important}.pyf-player .pyx-tensor__name{display:none}.pyf-player .pyx-sfx{order:3;margin:0 0 0 auto;padding:8px 0;width:auto;gap:10px;flex:none;font-size:13px;color:var(--pv-muted);border:0;background:transparent}.pyf-player .pyx-foot{order:3;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;max-width:none;flex:none;gap:16px;padding:16px 0 24px;border:0;background:var(--pv-bg);position:static;min-height:100px;align-items:center}.pyf-player .pyx-cta{grid-column:2;grid-row:1;min-width:360px;max-width:440px;min-height:60px;padding:12px 24px;border:0;border-radius:12px;background:var(--app-lav-text);color:var(--app-paper);box-shadow:0 3px 0 color-mix(in srgb,var(--app-lav-text) 70%,#000);font:600 21px/1.4 var(--fs-sans);text-transform:none;letter-spacing:0}.pyf-player .pyx-cta:hover{background:var(--pv-accent);color:var(--pv-bg)}.pyf-player .pyx-cta--gated,.pyf-player .pyx-cta--gated:hover{background:var(--pv-soft);color:var(--pv-muted);box-shadow:none}.pyf-player .pyx-startover{grid-column:1;grid-row:1;justify-self:start;font-size:14px;padding:8px 0;color:var(--pv-muted);text-align:left;white-space:normal}.pyf-player .pyf-back{grid-column:3;grid-row:1;justify-self:end;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--pv-muted);font:15px var(--fs-sans);cursor:pointer}.pyf-player .pyf-back[aria-disabled=true]{opacity:.4;cursor:default}.pyf-player .pyf-intro h2{margin:0;font:600 36px/1.25 var(--fs-sans);letter-spacing:-.7px;color:var(--pv-ink);text-wrap:balance}.pyf-player .pyf-intro p{margin:12px 0 0;font-size:22px;line-height:1.6;color:var(--pv-ink);max-width:760px}.pyf-player .act{gap:20px}.pyf-player .act-h{font-size:28px;font-weight:500;line-height:1.45;letter-spacing:0;text-wrap:balance}.pyf-player .act-kick__chip{display:none}.pyf-player .act-kick__note{font-size:15px;color:var(--pv-muted)}.pyf-player .act-kick:empty{display:none}.pyf-player .act-note,.pyf-player .act-py__note{background:transparent;border:0;box-shadow:none;padding:8px 0;color:var(--pv-ink);font-size:19px;line-height:1.6;min-height:56px}.pyf-player .act-note--ok{color:var(--pv-green)}.pyf-player .act-note--warn,.pyf-player .act-py__note--err{color:var(--pv-rust)}.pyf-player .hook,.pyf-player .recap-cap,.pyf-player .reveal-h{font-size:30px;line-height:1.35;color:var(--pv-ink)}.pyf-player .blk-text p,.pyf-player .reveal-b{font-size:21px;line-height:1.6;color:var(--pv-ink)}.pyf-player .act-py__row{gap:18px;min-width:0}.pyf-player .act-py__card{background:var(--pv-paper);border:1px solid var(--pv-line);box-shadow:none;border-radius:14px;padding-block:16px;min-width:0;color:var(--pv-ink)}.pyf-player .act-py__line{font-size:18px;line-height:1.65;padding:7px 16px;color:var(--pv-ink);border-left:3px solid transparent}.pyf-player .act-py__line--active{background:var(--pv-soft);border-left-color:var(--pv-accent)}.pyf-player .act-py__line--ok{background:var(--pv-sage)}.pyf-player .act-py__line--wrong{background:var(--pv-warm)}.pyf-player .act-py__gutter,.pyf-player .act-py__line--muted{color:var(--pv-muted)}.pyf-player .act-py__mark{color:var(--pv-green);font-size:13px}.pyf-player .act-py__mark--err{color:var(--pv-rust)}.pyf-player .act-py__out{background:var(--pv-paper);border:1px solid var(--pv-line);box-shadow:none;border-radius:14px;padding:18px;width:240px}.pyf-player .act-py__outidle,.pyf-player .act-py__outlabel{color:var(--pv-muted);font-size:14px}.pyf-player .act-py__outbody{color:var(--pv-green);font-size:18px;line-height:1.6;animation:pyf-output-in .35s ease-out both}.pyf-player .act-py__out--err .act-py__outbody{color:var(--pv-rust);font-size:16px}.pyf-player .act-py__field{color:var(--pv-ink);font-size:18px;border-bottom-color:var(--pv-accent);background:var(--pv-soft)}.pyf-player .act-py__field::placeholder{color:var(--pv-muted)}.pyf-player .act-py__run{background:var(--pv-ink);color:var(--pv-bg);border:0;border-radius:9px;box-shadow:0 3px 0 var(--pv-muted);min-height:48px;font-size:18px}.pyf-player .act-py__reset{color:var(--pv-muted);font-size:15px}.pyf-player .act-py__opts{gap:12px}.pyf-player .act-py__opt{background:var(--pv-paper);border:1px solid var(--pv-line);box-shadow:none;border-radius:11px;padding:16px;color:var(--pv-ink);font-size:18px;line-height:1.6}.pyf-player .act-py__opt--ok{background:var(--pv-sage);border-color:var(--pv-green)}.pyf-player .act-py__opt--wrong{background:var(--pv-warm);border-color:var(--pv-rust)}.pyf-player .act-py__optl{color:var(--pv-muted);border-color:var(--pv-line)}.pyf-player .act-py__trace{border:1px solid var(--pv-line);box-shadow:none;border-radius:12px}.pyf-player .lbtn{min-height:48px;font-size:18px;border-radius:10px}.pyf-player .lbtn-accent{background:var(--pv-ink);color:var(--pv-bg);border-color:var(--pv-ink)}.pyf-player .lbtn-outline{background:var(--pv-paper);color:var(--pv-ink);border-color:var(--pv-line)}@keyframes pyf-output-in{0%{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.pyf-player a:focus-visible,.pyf-player button:focus-visible,.pyf-player input:focus-visible{outline:3px solid var(--pv-accent);outline-offset:4px}.pyf-player[data-motion=paused] *,.pyf-player[data-motion=paused] :after,.pyf-player[data-motion=paused] :before{animation:none!important;transition:none!important}@media (max-width:900px){.pyf-player .pyf-lesson-name{display:none}.pyf-player .pyx-top{gap:14px;padding-inline:24px}}@media (max-width:700px){.pyf-player{--pyf-prompt-size:23px;--pyf-item-size:18px;--pyf-choice-size:15px;--pyf-choice-padding:10px 12px}.pyf-player .pyx-top{padding:12px 16px;gap:12px;min-height:72px;flex-wrap:nowrap}.pyf-player .pyx-xp{display:none}.pyf-player .pyx-body{padding-inline:20px}.pyf-player .pyx-content{padding:22px 0;gap:20px}.pyf-player .pyf-intro h2{font-size:30px}.pyf-player .pyf-intro p{font-size:20px}.pyf-player .act-h{font-size:23px}.pyf-player .hook,.pyf-player .recap-cap,.pyf-player .reveal-h{font-size:27px}.pyf-player .blk-text p,.pyf-player .reveal-b{font-size:20px}.pyf-player .act-py__row{flex-direction:column}.pyf-player .act-py__card,.pyf-player .act-py__out{width:100%}.pyf-player .act-py__line{font-size:16px;padding-inline:10px;gap:10px}.pyf-player .act-py__field{font-size:16px}.pyf-player .act-py__opts{grid-template-columns:1fr}.pyf-player .act-py__opt{font-size:17px}.pyf-player .pyx-rail{gap:12px}.pyf-player .pyx-bubble{font-size:15px}.pyf-player .pyx-foot{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding-bottom:20px}.pyf-player .pyx-cta{width:100%;min-width:0;max-width:none;grid-column:1/-1;grid-row:1;min-height:58px;font-size:20px}.pyf-player .pyx-startover{grid-column:1;grid-row:2;min-height:44px}.pyf-player .pyf-back{grid-column:2;grid-row:2}}.pyf-player .act-bug__code{font-size:18px;line-height:1.65}.pyf-player .act-bug__trace{font-size:16px;line-height:1.6;color:var(--pv-rust)}@media (max-width:700px){.pyf-player .act-bug__code{font-size:16px}.pyf-player .act-bug__trace{font-size:15px}.pyf-player .pyx-sfx{font-size:0;gap:0}}.pyf-player .pyg-data-cargo-lane[data-kept=false] .pyg-data-crate,.pyf-player .pyv-b-branch-else,.pyf-player .pyv-d-filter-row[data-excluded=true],.pyf-player .pyv-d-mask-lane[data-drop=true] b,.pyf-player .pyv-d-observations[data-grouped=true] span,.pyf-player .pyv-d-review-rows [data-skipped=true],.pyf-player .pyv-s-call-arrows>span:not(.pyv-s-transfer--active),.pyf-player .pyv-s-skip-path:not(.pyv-s-skip-path--active){opacity:1;color:var(--pv-muted)}.pyf-player .pyf-question-context{margin:14px 0 4px;padding:18px 20px;max-width:100%;overflow-x:auto;border:1px solid var(--hair);border-radius:12px;background:var(--paper-soft);color:var(--ink);font-family:var(--fs-mono);font-size:clamp(14px,1.3vw,18px);line-height:1.7;text-align:left}.pyf-player .pyf-question-context code{padding:0;background:none;color:inherit;font:inherit}