:root{--accent-deep: #1536a0}.lv-basic,.lv-medium,.lv-advanced{--c: var(--accent);--s: var(--course-tint);--c-edge: var(--accent-deep)}.cs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:0 1.75rem;border:0;border-bottom:2px solid #000;border-radius:var(--r-pill);background:var(--ink);color:#fff;font:inherit;font-size:var(--t-body);font-weight:600;text-decoration:none;cursor:pointer;transition:transform .08s}.cs-btn:is(a,button){color:#fff}.cs-btn:is(a,button):hover{color:#fff;background:var(--accent);border-bottom-color:var(--accent-deep)}.cs-btn:active{transform:translateY(1px);border-bottom-width:1px}.cs-btn:is(a,button):disabled{background:var(--bg-alt);color:var(--muted);border-bottom-color:var(--line);cursor:not-allowed;transform:none}.cs-btn.ghost,.cs-btn.ghost:is(a,button){background:var(--surface);color:var(--ink);border:1px solid var(--line);border-bottom-width:2px}.cs-btn.ghost:is(a,button):hover{color:var(--ink);background:var(--surface);border-color:var(--ink)}.cs-btn:focus-visible,.cs-opt:focus-visible,.cs-node:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.cs-hero{padding-top:clamp(.75rem,3vw,2rem)}.cs-stats,.cs-path,.hc-levels,.cp-score{--lm: none;--lm-m: 0;--lm-w: auto}.cs-stats{display:flex;flex-wrap:wrap;gap:.5rem 2.25rem;margin:1.5rem 0 0;padding:0;list-style:none}.cs-stats>div{display:flex;flex-direction:column}.cs-stats b{font-size:var(--t-title);line-height:1.1;font-variant-numeric:lining-nums}.cs-stats span{font-size:var(--t-small);color:var(--muted)}.cs-hero-act{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;margin-top:1.5rem}.cs-hero-act a.cs-btn:not(.ghost),.cs-hero-act a.cs-btn:not(.ghost):hover{color:#fff!important}.cs-place-link{display:inline-flex;align-items:center;min-height:44px}.cs-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;padding-bottom:var(--band-pad-fill)}.cs-main{display:grid;gap:1rem;min-width:0}@media(min-width:64rem){.cs-cols{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2.5rem;align-items:start}.cs-main{grid-column:1;grid-row:1}.cs-side{grid-column:2;grid-row:1;position:sticky;top:calc(var(--header-h, 57px) + 1.25rem)}}.cs-level{padding:clamp(1.25rem,3vw,1.75rem);background:var(--s);border-radius:var(--r-m);scroll-margin-top:calc(var(--header-h, 57px) + .75rem)}.try{--c: var(--ink);--s: var(--surface);padding:1.25rem 1.25rem 1.1rem;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--edge)}.try .cp-kind{color:var(--accent)}.try .cp-q{font-size:var(--t-lead)}.try-fb{margin:.6rem 0 0;font-size:var(--t-small);line-height:1.45;color:var(--text-2)}.try-fb:empty{display:none}.try-fb strong{display:block;font-size:var(--t-body)}.try-fb b{display:block;color:var(--ink)}.try-fb.ok strong{color:var(--ok)}.try-fb.no strong{color:var(--bad)}.try-fb .cs-btn{margin-top:.9rem;min-height:3rem;font-size:var(--t-small)}.try-fb a.cs-btn,.try-fb a.cs-btn:hover{color:#fff}.try-note{margin:.75rem 0 0;font-size:var(--t-micro);color:var(--muted)}.cs-lv-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem}.cs-lv-head h2{margin:0;font-size:var(--t-headline);color:var(--c)}.cs-lv-tag{font-size:var(--t-small);font-weight:600;color:var(--c)}.cs-lv-p{margin:.4rem 0 0;max-width:34rem;color:var(--text-2)}.cs-lv-who{margin:.15rem 0 0;font-size:var(--t-small);color:var(--muted)}.cs-meter{display:flex;align-items:center;gap:.75rem;margin:1rem 0 0;max-width:22rem;font-size:var(--t-small);color:var(--text-2)}.cs-meter i{flex:1;height:.6rem;border-radius:var(--r-pill);background:#0000001f;overflow:hidden}.cs-meter i b{display:block;height:100%;width:0;background:var(--c);border-radius:var(--r-pill);transition:width .6s cubic-bezier(.2,.7,.2,1)}.cs-path{list-style:none;margin:1.5rem 0 0;padding:0}.cs-path>div{padding:.55rem 0;transform:translate(var(--x, 0))}.cs-path>div:nth-child(5n+2){--x: 2.25rem}.cs-path>div:nth-child(5n+3){--x: 3.5rem}.cs-path>div:nth-child(5n+4){--x: 2.25rem}@media(max-width:30rem){.cs-path>div:nth-child(5n+2),.cs-path>div:nth-child(5n+4){--x: 1rem}.cs-path>div:nth-child(5n+3){--x: 1.75rem}}.cs-node{display:flex;align-items:center;gap:1.1rem;min-height:4.5rem;color:var(--ink);text-decoration:none}.cs-node:hover{color:var(--ink)}.cs-dot{position:relative;flex:none;display:grid;place-items:center;width:4.25rem;height:4.25rem;border-radius:50%;background:var(--c);border-bottom:4px solid var(--c-edge);color:#fff;font-size:1.5rem;font-weight:700;transition:transform .1s}.cs-node:hover .cs-dot{transform:translateY(-2px)}.cs-node:active .cs-dot{transform:translateY(3px);border-bottom-width:2px}.cs-dot svg{display:none;width:1.7rem;height:1.7rem}.cs-done .cs-dot{background:var(--ink);border-bottom-color:#000}.cs-done .cs-dot .n{display:none}.cs-done .cs-dot svg{display:block}.cs-txt b{display:block;font-size:var(--t-lead);line-height:1.25}.cs-txt span{display:block;margin-top:.1rem;font-size:var(--t-small);color:var(--text-2)}.cs-txt .cs-flag{display:none;margin-top:.15rem;font-size:var(--t-small);font-weight:700;color:var(--c)}.cs-next .cs-txt .cs-flag{display:block}.cs-next .cs-dot:after{content:"";position:absolute;inset:-.45rem;border:3px solid var(--c);border-radius:50%;opacity:.5}html:not(.plain) .cs-next .cs-dot:after{animation:cs-ring 1.8s ease-out infinite}@keyframes cs-ring{0%{transform:scale(.88);opacity:.7}to{transform:scale(1.12);opacity:0}}.cs-deeper h2{margin:0;font-size:var(--t-headline)}.cs-deeper .lead{max-width:36rem;color:var(--text-2)}html:has(.cp) header.site-header,html:has(.cp) .site-footer,html:has(.cp) .ask{display:none!important}.cp{max-width:40rem;margin:0 auto;min-height:100svh;display:flex;flex-direction:column;padding:0 var(--gutter)}.cp-top{display:flex;align-items:center;gap:1rem;padding:.9rem 0 .4rem}.cp-x{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:50%;color:var(--muted);font-size:1.75rem;line-height:1;text-decoration:none}.cp-x:hover{color:var(--ink);background:#0000000f}.cp-prog{flex:1;height:.9rem;border-radius:var(--r-pill);background:#0000001a;overflow:hidden}.cp-prog i{display:block;height:100%;width:0;border-radius:var(--r-pill);background:var(--c);transition:width .35s cubic-bezier(.2,.7,.2,1)}.cp-xp{flex:none;min-width:4.2rem;text-align:right;font-weight:700;color:var(--c);font-variant-numeric:lining-nums tabular-nums}.cp-stage{flex:1;padding:1.25rem 0 2rem}.cp-kind{margin:0 0 .5rem;font-size:var(--t-small);font-weight:700;color:var(--c)}.cp-h{margin:0;font-size:var(--t-headline);line-height:1.2}.cp-p{margin:.9rem 0 0;font-size:var(--t-lead);line-height:1.5;color:var(--text-2)}.cp-ex{margin:1.25rem 0 0;padding:1rem 1.1rem;border-left:4px solid var(--c);background:var(--s);border-radius:0 var(--r-m) var(--r-m) 0;font:inherit;font-size:var(--t-small);line-height:1.55;white-space:pre-wrap;color:var(--ink)}.cp-fig{margin:1.25rem 0 0;padding:1rem;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--edge)}.cp-fig svg{display:block;width:100%;max-width:26rem;height:auto;margin:0 auto;overflow:visible}.cp-fig text{font-family:inherit;font-size:var(--t-micro);fill:var(--ink)}.cp-fig .fg-m{fill:var(--muted)}.cp-fig .fg-b{font-weight:700}.cp-fig .fg-on{fill:var(--surface)}.cp-fig .fg-acc{fill:var(--accent)}.cp-fig .fg-ink,.cp-fig .fg-inkbox{fill:var(--ink)}.cp-fig .fg-tint{fill:var(--course-tint)}.cp-fig .fg-soft{fill:var(--bg-alt)}.cp-fig .fg-sur{fill:var(--surface);stroke:var(--line);stroke-width:1.5}.cp-fig .fg-slot{fill:var(--surface);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}.cp-fig .fg-ln{fill:none;stroke:var(--line);stroke-width:1.5}.cp-fig .fg-lni{fill:none;stroke:var(--ink);stroke-width:1.5}.cp-q{margin:0 0 1.25rem;font-size:var(--t-title);line-height:1.25}.cp-hint{margin:-.6rem 0 1.1rem;font-size:var(--t-small);color:var(--muted)}.cs-opt{display:flex;align-items:flex-start;gap:.8rem;width:100%;margin:0 0 .65rem;padding:.85rem 1rem;border:2px solid var(--line);border-bottom-width:4px;border-radius:var(--r-m);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--t-body);line-height:1.4;text-align:left;cursor:pointer;transition:border-color .1s,background .1s}.cs-opt:hover:not(:disabled){border-color:var(--c)}.cs-opt .k{flex:none;display:grid;place-items:center;width:1.8rem;height:1.8rem;margin-top:.05rem;border:2px solid var(--line);border-radius:var(--r-s);font-size:var(--t-small);font-weight:700;color:var(--muted)}.cs-opt.sel{border-color:var(--c);background:var(--s)}.cs-opt.sel .k{border-color:var(--c);background:var(--c);color:#fff}.cs-opt.ok{border-color:var(--ok);background:var(--ok-soft)}.cs-opt.ok .k{border-color:var(--ok);background:var(--ok);color:#fff}.cs-opt.no{border-color:var(--bad);background:var(--bad-soft)}.cs-opt.no .k{border-color:var(--bad);background:var(--bad);color:#fff}.cs-opt:disabled{cursor:default}.cp-row{display:flex;flex-direction:column;gap:.5rem;min-height:3.5rem;margin:0 0 1rem;padding:.5rem;border:2px dashed var(--line);border-radius:var(--r-m)}.cp-row:empty:before{content:"Tap the steps below, in order";padding:.7rem .5rem;font-size:var(--t-small);color:var(--muted)}.cp-bank{display:flex;flex-direction:column;gap:.5rem}.cp-chip{display:flex;gap:.7rem;align-items:flex-start;width:100%;padding:.75rem .9rem;border:2px solid var(--line);border-bottom-width:4px;border-radius:var(--r-m);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--t-body);line-height:1.35;text-align:left;cursor:pointer}.cp-chip:hover:not(:disabled){border-color:var(--c)}.cp-chip .k{flex:none;display:grid;place-items:center;min-width:1.6rem;height:1.6rem;border-radius:50%;background:var(--c);color:#fff;font-size:var(--t-small);font-weight:700}.cp-chip.ok{border-color:var(--ok);background:var(--ok-soft)}.cp-chip.no{border-color:var(--bad);background:var(--bad-soft)}.cp-chip.used{visibility:hidden}.cp-chip:disabled{cursor:default}.cp-match{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .75rem}.cp-match .cs-opt{margin:0;align-items:center;padding:.7rem .8rem;font-size:var(--t-small)}.cp-match .cs-opt.fixed{border-color:var(--ok);background:var(--ok-soft);opacity:.85}.cp-match .cs-opt.shake{border-color:var(--bad);background:var(--bad-soft)}html:not(.plain) .cp-match .cs-opt.shake{animation:cs-shake .3s}@keyframes cs-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.cp-bar{position:sticky;bottom:0;z-index:5;margin:0 calc(var(--gutter) * -1);padding:.9rem var(--gutter) calc(.9rem + env(safe-area-inset-bottom));border-top:2px solid var(--line);background:var(--bg)}.cp-bar.ok{background:var(--ok-soft);border-color:var(--ok)}.cp-bar.no{background:var(--bad-soft);border-color:var(--bad)}.cp-msg{max-width:40rem;margin:0 auto .75rem;font-size:var(--t-body);line-height:1.4}.cp-msg:empty{display:none}.cp-msg strong{display:block;font-size:var(--t-lead)}.cp-ans{display:block;font-weight:700;color:var(--ink)}.cp-why{display:block;font-weight:400;color:var(--text-2)}.cp-bar.ok .cp-msg strong{color:var(--ok)}.cp-bar.no .cp-msg strong{color:var(--bad)}.cp-btns{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:40rem;margin:0 auto}.cp-btns .cs-btn{flex:0 1 15rem;margin-left:auto;width:100%}.cp-skip{flex:none;min-height:44px;min-width:44px;padding:0 .5rem;white-space:nowrap;border:0;background:none;color:var(--muted);font:inherit;font-size:var(--t-small);font-weight:600;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.cp-skip:hover{color:var(--ink)}.cp-end{text-align:center;padding-top:1.5rem}.cp-end h1{margin:0;font-size:var(--t-hero);line-height:1.15}.cp-end .cp-p{max-width:28rem;margin-left:auto;margin-right:auto}.cp-score{display:flex;justify-content:center;gap:1.5rem 2.5rem;flex-wrap:wrap;margin:1.75rem 0 0;padding:0;list-style:none}.cp-score b{display:block;font-size:var(--t-hero);line-height:1.1;color:var(--c);font-variant-numeric:lining-nums}.cp-score span{font-size:var(--t-small);color:var(--muted)}.cp-end-act{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin:2rem 0 0}.cp-end-act .cs-btn{width:min(100%,22rem)}.cp-week{max-width:30rem;margin:1.75rem auto 0;padding:1.1rem 1.25rem 1.2rem;background:var(--surface);border-radius:var(--r-m);box-shadow:0 0 0 2px var(--ink);text-align:left}.cp-week p{margin:0}.cp-week-k{font-size:var(--t-small);font-weight:700;color:var(--accent)}.cp-week-t{margin-top:.3rem!important;font-size:var(--t-lead);line-height:1.4;color:var(--ink)}.cp-end-act{margin-top:1.25rem}.cp-deep{display:block;margin:1.25rem 0 0;padding:.8rem 1rem;border:2px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--ink);text-decoration:none}.cp-deep:hover{border-color:var(--c);color:var(--ink)}.cp-deep .k{display:block;font-size:var(--t-small);font-weight:700;color:var(--c)}.cp-deep b{display:block;font-size:var(--t-lead);line-height:1.25}.cp-deep .s{display:block;margin-top:.15rem;font-size:var(--t-small);color:var(--text-2)}.cp-tools{max-width:30rem;margin:1.5rem auto 0;padding-top:.5rem;border-top:1px solid var(--line)}.cp-tools-row{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.5rem}.cp-tool{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--text-2);font:inherit;font-size:var(--t-small);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;cursor:pointer}.cp-tool:hover{color:var(--ink)}.cp-tool:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cp-tools-p,.cp-tools-msg{margin:0;font-size:var(--t-micro);color:var(--muted)}.cp-tools-msg:empty{display:none}.cp-read{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 1.25rem;max-width:30rem;margin:1.25rem auto 0;font-size:var(--t-small)}.cp-read span{color:var(--muted)}.cp-read a{display:inline-flex;align-items:center;min-height:44px}.cp-by{max-width:30rem;margin:1rem auto 0;padding-top:1rem;border-top:1px solid var(--line);font-size:var(--t-small);line-height:1.5;color:var(--text-2);text-align:left}.cp-by a{padding-block:.75rem}.cp-cf{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden}.cp-cf span{position:absolute;top:-1rem;width:.6rem;height:1rem;border-radius:var(--r-s);animation:cs-fall 1.9s ease-in forwards}@keyframes cs-fall{to{transform:translateY(110svh) rotate(540deg);opacity:.9}}.hc{--band-pad: var(--band-pad-fill);padding-block:var(--band-pad);background:var(--course-tint);border-top:0!important}.hc-head h2{margin:0;font-size:var(--t-headline)}.hc-head .lead{margin:.6rem 0 0;max-width:38rem;color:var(--text-2)}.hc-grid{display:grid;gap:2rem 3.5rem;margin-top:1.75rem}@media(min-width:60rem){.hc-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.hc-switch{display:inline-flex;margin-top:1.1rem;padding:.25rem;gap:.25rem;border:2px solid var(--ink);border-radius:var(--r-pill);background:var(--surface)}.hc-seg{min-height:2.75rem;min-width:7.5rem;padding:0 1.25rem;border:0;border-radius:var(--r-pill);background:none;color:var(--ink);font:inherit;font-size:var(--t-body);font-weight:700;cursor:pointer}.hc-seg:hover{background:var(--course-tint)}.hc-seg[aria-selected=true]{background:var(--ink);color:#fff}.hc-seg:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hc-levels[hidden]{display:none}.hc-try{--c: var(--ink);--s: var(--surface);--c-edge: #000}.hc-try .cp-kind{color:var(--accent)}.hc-try .cp-q{font-size:var(--t-lead)}.hc-fb{min-height:2.25rem;margin:.5rem 0 0;font-size:var(--t-body);line-height:1.4}.hc-fb strong{display:block}.hc-fb.ok strong{color:var(--ok)}.hc-fb.no strong{color:var(--bad)}.hc-levels{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.hc-levels>div{border-bottom:1px solid rgba(0,0,0,.18)}.hc-lv{display:flex;align-items:center;gap:1rem;min-height:4.5rem;padding:.7rem 0;color:var(--ink);text-decoration:none}.hc-lv:hover{color:var(--ink)}.hc-lv .dot{flex:none;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--c);border-bottom:3px solid var(--c-edge);color:#fff;font-weight:700}.hc-lv b{display:block;font-size:var(--t-lead);line-height:1.25}.hc-lv span{display:block;font-size:var(--t-small);color:var(--text-2)}.hc-lv em{margin-left:auto;flex:none;font-style:normal;font-size:var(--t-small);font-weight:700;color:var(--c);white-space:nowrap}.hc-lv:hover b{text-decoration:underline;text-underline-offset:.2em}.hc-act{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin-top:1.25rem}.hc-act a:not(.cs-btn){display:inline-flex;align-items:center;min-height:44px}.hc-note{margin:.9rem 0 0;font-size:var(--t-small);color:var(--muted)}@media(prefers-reduced-motion:reduce){.cs-btn,.cs-dot,.cs-meter i b,.cp-prog i{transition:none}.cp-cf{display:none}}@media print{.cp-bar,.cp-cf{display:none}}.cp-save-link{box-sizing:border-box;width:100%;min-height:48px;margin-top:.4rem;padding:0 .8rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--muted);font:inherit;font-size:var(--t-small)}.cp-save-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
