.trail-node{position:relative;display:grid;place-items:center;flex-shrink:0;border-radius:var(--trail-squircle);isolation:isolate;color:var(--node-ink,var(--trail-on-node));transition:transform var(--dur-base) var(--ease-spring),filter var(--dur-base) var(--ease-out-soft)}.trail-node:before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:var(--node-fill,transparent);box-shadow:var(--node-edge,none);transition:box-shadow var(--dur-base) var(--ease-out-soft)}.trail-node>*{position:relative;z-index:1}.trail-node--done{--node-fill:var(--trail-done);--node-ink:var(--trail-on-node);--node-edge:var(--trail-glow-done)}.trail-node--active{--node-fill:var(--trail-active);--node-ink:var(--trail-on-active);--node-edge:var(--trail-glow-active)}.trail-node--capstone{--node-fill:var(--trail-capstone);--node-ink:var(--gold);--node-edge:inset 0 0 0 1.5px var(--gold);--node-opacity:0.8;border-radius:var(--trail-capstone-r);opacity:var(--node-opacity)}.trail-node--available{--node-fill:var(--paper-1);--node-ink:var(--trail-available-ink);--node-edge:inset 0 0 0 1.5px var(--ink-8),var(--shadow-xs);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}.trail-node--locked{--node-fill:var(--trail-locked);--node-ink:var(--trail-locked-ink);--node-edge:inset 0 0 0 1.5px var(--trail-track);--node-ring:var(--trail-track)}.trail-node--available{--node-ring:var(--ink-8)}.trail-node--done{--node-ring:color-mix(in srgb,var(--on) 45%,transparent)}.trail-node--active{--node-ring:color-mix(in srgb,var(--acc) 70%,transparent)}.trail-node--kind-practice{border-radius:50%;outline:1.5px solid var(--node-ring);outline-offset:4px;transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-out-soft),filter var(--dur-base) var(--ease-out-soft),outline-offset var(--dur-base) var(--ease-spring)}.trail-link:focus-visible .trail-node--kind-practice,.trail-link:hover .trail-node--kind-practice{outline-offset:6px}.trail-node--kind-canvas:before{border-radius:var(--r-sm);inset:6%;rotate:45deg}.trail-node--kind-canvas>svg{rotate:-45deg}.trail-node--kind-branch{--node-fill:var(--accs);--node-ink:var(--acc);--node-edge:inset 0 0 0 1.5px color-mix(in srgb,var(--acc) 55%,transparent);border-radius:38% 50% 50% 50%}.trail-node--kind-branch.trail-node--done{--node-fill:var(--trail-done);--node-ink:var(--trail-on-node);--node-edge:var(--trail-glow-done)}[dir=rtl] .trail-node--kind-branch{border-radius:50% 38% 50% 50%}.trail-node{--node-opacity:1}.trail-node--ghost{--node-opacity:0.4;opacity:var(--node-opacity)}.trail-limb{fill:none;stroke:var(--acc);stroke-width:var(--trail-stroke-sm);stroke-linecap:round;stroke-dasharray:3 6;opacity:.8}.trail-limb--done{stroke:var(--on);stroke-dasharray:none;opacity:var(--trail-walked-opacity)}.trail-limb-grow{stroke-dashoffset:0;animation:trail-limb-grow var(--dur-glass) var(--ease-out-soft) both}@keyframes trail-limb-grow{0%{stroke-dasharray:0 140}}.trail-branch-add{position:absolute;top:50%;display:grid;place-items:center;width:44px;height:44px;border:none;background:none;padding:0;cursor:pointer;opacity:0;transform:translateY(-50%) scale(.8);transition:opacity var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-spring);z-index:3}.trail-branch-add>span{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-pill);background:var(--paper);color:var(--fg-3);box-shadow:inset 0 0 0 1.5px var(--rule-2),var(--shadow-xs);transition:color var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft)}.trail-branch-add:focus-visible,.trail-branch-slot:hover .trail-branch-add{opacity:1;transform:translateY(-50%) scale(1)}.trail-branch-add:focus-visible>span,.trail-branch-add:hover>span{color:var(--brand);box-shadow:inset 0 0 0 1.5px var(--brand),var(--shadow-xs)}.trail-branch-add:focus-visible{outline:none}.trail-link{display:block;text-decoration:none;-webkit-tap-highlight-color:transparent}.trail-link:focus-visible .trail-node:not(.trail-node--locked),.trail-link:hover .trail-node:not(.trail-node--locked){transform:translateY(-3px) scale(1.09)}.trail-link:focus-visible{outline:none}.trail-link:focus-visible .trail-node:before{box-shadow:var(--node-edge,none),0 0 0 3px var(--brand)}.trail-node--active:after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;animation:trail-pulse 2.6s var(--ease-out-soft) infinite}@keyframes trail-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 46%,transparent)}70%{box-shadow:0 0 0 18px color-mix(in srgb,var(--acc) 0,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 0,transparent)}}@keyframes trail-node-in{0%{opacity:0;transform:scale(.62) translateY(12px)}to{opacity:var(--node-opacity);transform:none}}.trail-node-in{animation:trail-node-in .52s var(--ease-spring) both}.trail-bubble{bottom:calc(100% + 9px);white-space:nowrap;padding:var(--s-1) var(--s-2_5);border-radius:var(--r-sm);background:var(--on);color:var(--onT);font-family:var(--font-mono);font-size:var(--text-nano);letter-spacing:var(--tracking-wide);text-transform:uppercase;box-shadow:var(--shadow-md);animation:trail-bubble-bob 2.2s var(--ease-in-out) infinite;z-index:3;pointer-events:none}.trail-bubble,.trail-bubble:after{position:absolute;left:50%;transform:translateX(-50%)}.trail-bubble:after{content:"";top:100%;border:5px solid transparent;border-top:5px solid var(--on)}@keyframes trail-bubble-bob{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}.trail-crown{position:absolute;bottom:calc(100% - 6px);left:50%;transform:translateX(-50%);color:var(--gold);z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.trail-chapter{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-7) var(--gutter) var(--s-4)}.trail-chapter__rule{flex:1;height:1px;background:var(--rule-faint)}.trail-chapter__label{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}.trail-chapter__eyebrow{font-family:var(--font-mono);font-size:var(--text-nano);letter-spacing:var(--m-tracking-mono);text-transform:uppercase;color:var(--fg-5);white-space:nowrap}.trail-chapter__title{font-family:var(--font-editorial);font-weight:400;font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--fg);text-align:center;scroll-margin-top:calc(var(--nav-h) + var(--s-6))}[dir=rtl] .trail-chapter__title{font-family:var(--font-sans);font-weight:var(--m-ar-display-weight)}.trail-weave{position:relative;width:min(100%,var(--trail-col));margin-inline:auto}.trail-scenery-numeral{position:absolute;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0;transform:translateY(-50%);font-family:var(--font-editorial);font-weight:400;font-size:clamp(120px,22vw,260px);line-height:1;color:var(--fg);opacity:.05}@media (max-width:900px){.trail-scenery-numeral{display:none}.trail-chapter{gap:0;margin:var(--s-5) 0 var(--s-2);padding:var(--s-4) var(--s-5);background:var(--paper-2);border-block:1px solid var(--rule-faint)}.trail-chapter__rule{display:none}.trail-chapter__title{font-size:var(--text-md)}.course-shell__main{padding-bottom:96px}}.trail-mobile-cta{display:none}@media (max-width:900px){.trail-mobile-cta{position:fixed;inset-inline:0;bottom:0;z-index:20;padding:var(--s-6) var(--s-4) calc(var(--s-5) + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--paper) 38%);pointer-events:none}.trail-mobile-cta,.trail-mobile-cta>span{display:flex;align-items:center;justify-content:center}.trail-mobile-cta>span{gap:8px;width:100%;min-height:54px;padding:0 var(--s-5);border-radius:var(--r-lg);background:var(--brand);color:var(--on-accent);font-size:var(--text-base);font-weight:500;text-align:center;box-shadow:var(--shadow-lg);pointer-events:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.trail-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.trail-track{fill:none;stroke:var(--trail-track);stroke-width:var(--trail-stroke);stroke-linecap:round;stroke-dasharray:1 9}.trail-progress{fill:none;stroke:var(--on);stroke-width:var(--trail-stroke);stroke-linecap:round;opacity:.38;stroke-dasharray:1;stroke-dashoffset:var(--reveal-to,1);animation:trail-reveal var(--dur-glass) var(--ease-out-soft) .12s both}@keyframes trail-reveal{0%{stroke-dashoffset:1}to{stroke-dashoffset:var(--reveal-to,1)}}.ring-arc-fill{animation:ring-arc-fill var(--dur-glass) var(--ease-out-soft) both}@keyframes ring-arc-fill{0%{stroke-dashoffset:var(--ring-c,0)}}@media (prefers-reduced-motion:reduce){.ring-arc-fill,.trail-bubble,.trail-limb-grow,.trail-node--active:after,.trail-node-in{animation:none}.trail-progress{animation:none;stroke-dashoffset:var(--reveal-to,1)}.trail-bubble{transform:translateX(-50%)}.trail-branch-add,.trail-node--kind-practice{transition:none}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}