.cpx-d--learning{--cpx-fill:var(--teal);--cpx-on:var(--on-acc-a)}.cpx-d--design{--cpx-fill:var(--lilac);--cpx-on:var(--on-acc-b)}.cpx-d--implementation{--cpx-fill:var(--gold);--cpx-on:var(--on-acc-a)}.cpx-d--systems{--cpx-fill:var(--blue-fill);--cpx-on:var(--on-blue)}.cpx-pill{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--border-strong);border-radius:var(--r-pill);background:var(--cpx-fill);color:var(--cpx-on);align-items:center;padding:5px 10px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.cpx-pill--link{transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease)}.cpx-pill--link:hover,.cpx-pill--link:focus-visible{box-shadow:var(--pop-2);transform:translate(-2px,-2px)}.cpx-legend{gap:var(--s-3);margin-bottom:var(--s-12);flex-wrap:wrap;display:flex}.cpx-legend__i{align-items:center;gap:var(--s-2);border:2px solid var(--border-strong);border-radius:var(--r-pill);background:var(--bg-canvas);color:var(--fg-1);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.cpx-legend__i:hover,.cpx-legend__i:focus-visible{box-shadow:var(--pop-2);transform:translate(-2px,-2px)}.cpx-legend__sw{background:var(--cpx-fill);border:2px solid var(--border-strong);flex:none;width:12px;height:12px;display:inline-block}.cpx-legend__n{color:var(--fg-3);font-weight:500}.cpx-d--all{--cpx-fill:var(--ink);--cpx-on:var(--paper)}button.cpx-legend__i{appearance:none;cursor:pointer}.cpx-legend__i[aria-pressed=true]{background:var(--cpx-fill);color:var(--cpx-on)}.cpx-legend__i[aria-pressed=true] .cpx-legend__n{color:inherit}.cpx-legend__i[aria-pressed=true] .cpx-legend__sw{border-color:var(--cpx-on)}html:not(.js) .cpx-filterable .cpx-legend,.cpx-filterable:not([data-filter=all]) .cpx-deck__i{display:none}.cpx-filterable[data-filter=learning] .cpx-deck__i[data-domain=learning],.cpx-filterable[data-filter=design] .cpx-deck__i[data-domain=design],.cpx-filterable[data-filter=implementation] .cpx-deck__i[data-domain=implementation],.cpx-filterable[data-filter=systems] .cpx-deck__i[data-domain=systems]{display:grid}.cpx-deck{--cpx-ground:var(--lane-tint);gap:0 var(--s-6);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));margin:0;padding:0;list-style:none;display:grid}.cpx-deck__i{grid-row:span 3;grid-template-rows:subgrid;margin-bottom:var(--s-8);display:grid}.cpx-tk{grid-row:1/-1;grid-template-rows:subgrid;background:var(--bg-canvas);color:var(--fg-1);border:2px solid var(--border-strong);border-radius:var(--r-2);box-shadow:4px 4px 0 var(--cpx-fill);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);text-decoration:none;display:grid;position:relative}.cpx-tk:hover,.cpx-tk:focus-visible{box-shadow:7px 7px 0 var(--cpx-fill);transform:translate(-3px,-3px)}.cpx-tk:focus-visible{outline:3px solid var(--border-strong);outline-offset:4px}.cpx-tk__held{background:var(--bg-panel);padding:var(--s-5) var(--s-6) var(--s-6);border-radius:var(--r-1) var(--r-1) 0 0}.cpx-tk__top{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-5);display:flex}.cpx-tk__no{font-family:var(--font-mono);letter-spacing:.08em;color:var(--fg-3);font-size:11px;font-weight:600}.cpx-tk__lab{align-items:center;gap:var(--s-2);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:var(--s-2);font-size:10px;font-weight:700;display:flex}.cpx-tk__claim{letter-spacing:-.015em;color:var(--fg-1);text-wrap:balance;margin:0;font-size:20px;font-weight:800;line-height:1.2}.cpx-tk__perf{border-top:2px dashed var(--border-strong);height:0;position:relative}.cpx-tk__perf:before,.cpx-tk__perf:after{content:"";background:var(--cpx-ground);border:2px solid var(--border-strong);border-radius:50%;width:22px;height:22px;position:absolute;top:-12px}.cpx-tk__perf:before{clip-path:inset(0 0 0 50%);left:-13px}.cpx-tk__perf:after{clip-path:inset(0 50% 0 0);right:-13px}.cpx-tk__counter{padding:var(--s-6) var(--s-6) var(--s-5);flex-direction:column;display:flex}.cpx-tk__sum{margin:0 0 var(--s-5);color:var(--fg-1);font-size:15.5px;line-height:1.5}.cpx-tk__out{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lane-ink);margin-top:auto;font-size:11px;font-weight:700}.cpx-crumbs{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-6);margin-bottom:var(--s-8);flex-wrap:wrap;display:flex}.cpx-crumbs .crumb{margin-bottom:0}.cpx-duel{align-items:stretch;gap:var(--s-4);grid-template-columns:minmax(0,1fr) minmax(0,200px) minmax(0,1.25fr);display:grid}.cpx-duel__side{border:2px solid var(--border-strong);border-radius:var(--r-2);padding:var(--s-6)}.cpx-duel__side--held{background:var(--bg-panel);border-style:dashed}.cpx-duel__side--precise{background:var(--cpx-fill);color:var(--cpx-on);box-shadow:var(--pop-4)}.cpx-duel__lab{margin:0 0 var(--s-3);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-size:10.5px;font-weight:700}.cpx-duel__side--precise .cpx-duel__lab{color:var(--cpx-on)}.cpx-duel__claim{letter-spacing:-.02em;text-wrap:pretty;margin:0;font-weight:800;line-height:1.25}.cpx-duel__side--held .cpx-duel__claim{color:var(--fg-2);font-size:clamp(22px,2.6vw,30px)}.cpx-duel__side--precise .cpx-duel__claim{letter-spacing:-.01em;font-size:clamp(18px,1.8vw,22px);font-weight:700;line-height:1.4}.cpx-duel__shift{justify-content:center;align-items:center;gap:var(--s-2);text-align:center;padding:var(--s-3) 0;flex-direction:column;display:flex}.cpx-duel__shift .cpx-duel__lab{margin-bottom:var(--s-2)}.cpx-duel__from{color:var(--fg-3);margin:0;font-size:14px;line-height:1.35}.cpx-duel__to{color:var(--fg-1);margin:0;font-size:15px;font-weight:800;line-height:1.3}.cpx-duel__arrow{fill:none;width:48px;height:24px;stroke:var(--border-strong);stroke-width:3px;stroke-linecap:square;flex:none}.cpx-tldr{gap:var(--s-8);margin-top:var(--s-12);padding-top:var(--s-6);border-top:2px solid var(--border-strong);grid-template-columns:190px minmax(0,1fr);align-items:baseline;display:grid}.cpx-tldr__lab{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--lane-ink);margin:0;font-size:11px;font-weight:500}.cpx-tldr__t{max-width:60ch;color:var(--fg-1);margin:0;font-size:clamp(18px,1.9vw,22px);line-height:1.5}.cpx-arg{counter-reset:cpx-step;max-width:920px;margin:0;padding:0;list-style:none}.cpx-arg__step{padding:0 0 var(--s-10) 64px;counter-increment:cpx-step;position:relative}.cpx-arg__step:before{content:counter(cpx-step, decimal-leading-zero);border:2px solid var(--border-strong);background:var(--bg-canvas);width:40px;height:40px;font-family:var(--font-mono);color:var(--fg-1);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;left:0}.cpx-arg__step:after{content:"";background:var(--border-strong);width:2px;position:absolute;top:34px;bottom:0;left:19px}.cpx-arg__step--end{padding-bottom:0}.cpx-arg__step--end:after{display:none}.cpx-arg__step--end:before{content:"=";background:var(--cpx-fill);color:var(--cpx-on);font-size:18px}.cpx-arg__h{margin:0 0 var(--s-2);letter-spacing:-.01em;color:var(--fg-1);font-size:18px;font-weight:800}.cpx-arg__step p{max-width:68ch;color:var(--fg-2);margin:0;font-size:16px;line-height:1.6}.cpx-arg__step--end p{color:var(--fg-1);font-size:18px;font-weight:700;line-height:1.45}.cpx-fork{gap:var(--s-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.cpx-fork__b{background:var(--bg-canvas);border:2px solid var(--border-strong);border-radius:var(--r-2);padding:var(--s-5)}.cpx-fork__b--breaks{border-style:dashed}.cpx-fork__b .cpx-arg__h{align-items:center;gap:var(--s-2);display:flex}.cpx-fork__mk{border:2px solid var(--border-strong);width:24px;height:24px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;line-height:1;display:inline-grid}.cpx-fork__b--holds .cpx-fork__mk{background:var(--cpx-fill);color:var(--cpx-on)}.cpx-fork__b--breaks .cpx-fork__mk{background:var(--bg-canvas);color:var(--fg-1)}.cpx-fork__b p{font-size:15.5px}.cpx-read__q{margin:0 0 var(--s-10);letter-spacing:-.015em;max-width:38ch;color:var(--fg-1);text-wrap:pretty;font-size:clamp(22px,2.6vw,32px);font-weight:700;line-height:1.4}.cpx-hl{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--cpx-fill);text-decoration-color:var(--cpx-fill);text-underline-offset:.14em;text-decoration-skip-ink:none;background:0 0;text-decoration-thickness:.18em}.cpx-hl__n,.cpx-terms__i:before{border:2px solid var(--border-strong);border-radius:var(--r-pill);background:var(--cpx-fill);min-width:20px;height:20px;color:var(--cpx-on);font-family:var(--font-mono);letter-spacing:0;place-items:center;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-grid}.cpx-hl__n{vertical-align:super;margin-left:3px;font-size:10px}.cpx-terms{margin:0 0 var(--s-16);counter-reset:cpx-term;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));padding:0;list-style:none;display:grid}.cpx-terms__i{counter-increment:cpx-term;background:var(--bg-canvas);border:2px solid var(--border-strong);border-radius:var(--r-2);padding:var(--s-5)}.cpx-terms__i:before{content:counter(cpx-term);margin-bottom:var(--s-3)}.cpx-terms__t{margin:0 0 var(--s-2);color:var(--fg-1);font-size:15.5px;font-weight:800;line-height:1.3}.cpx-terms__m{color:var(--fg-2);margin:0;font-size:14.5px;line-height:1.55}.cpx-apply{gap:var(--s-10);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.cpx-apply__h{margin:0 0 var(--s-4);letter-spacing:-.01em;color:var(--fg-1);font-size:18px;font-weight:800}.cpx-apply__list{gap:var(--s-3);margin:0;padding:0;list-style:none;display:grid}.cpx-apply__list li{color:var(--fg-1);padding-left:26px;font-size:16px;line-height:1.55;position:relative}.cpx-apply__list li:before{content:"";background:var(--cpx-fill);border:2px solid var(--border-strong);width:12px;height:12px;position:absolute;top:.4em;left:0}.cpx-case{background:var(--bg-panel);border:2px solid var(--border-strong);border-radius:var(--r-2);padding:var(--s-6);box-shadow:6px 6px 0 var(--cpx-fill)}.cpx-case p{color:var(--fg-1);margin:0;font-size:16px;line-height:1.6}@media (max-width:900px){.cpx-duel{grid-template-columns:minmax(0,1fr)}.cpx-duel__arrow{transform:rotate(90deg)}.cpx-tldr{gap:var(--s-3);grid-template-columns:minmax(0,1fr)}.cpx-apply{gap:var(--s-8);grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.cpx-fork{grid-template-columns:minmax(0,1fr)}.cpx-arg__step{padding-left:52px}.cpx-arg__step:before{width:34px;height:34px;font-size:11px}.cpx-arg__step:after{top:28px;left:16px}.cpx-duel__side,.cpx-case{padding:var(--s-5)}.cpx-duel__side--precise{box-shadow:var(--pop-2)}.cpx-case{box-shadow:4px 4px 0 var(--cpx-fill)}}@media (prefers-reduced-motion:reduce){.cpx-tk,.cpx-pill--link,.cpx-legend__i{transition:none}.cpx-tk:hover,.cpx-tk:focus-visible,.cpx-pill--link:hover,.cpx-pill--link:focus-visible,.cpx-legend__i:hover,.cpx-legend__i:focus-visible{transform:none}}
