.cpp-roadmap-branch-map-module__wVl5zq__root{--branch-line:#587c9c;--map-canvas:#e7eff6;--phase-surface:#dceaf5;--phase-border:#b6ccde;color:var(--pine-strong);background:var(--map-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);min-width:0}.cpp-roadmap-branch-map-module__wVl5zq__toolbar{border-radius:var(--radius-panel) var(--radius-panel) 0 0;background:#d4e5f1;flex-wrap:wrap;align-items:end;gap:1rem;padding:1.25rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__search,.cpp-roadmap-branch-map-module__wVl5zq__filter{gap:.5rem;min-width:0;font-size:.75rem;font-weight:700;display:grid}.cpp-roadmap-branch-map-module__wVl5zq__search{flex:16rem}.cpp-roadmap-branch-map-module__wVl5zq__filter{flex:10rem}.cpp-roadmap-branch-map-module__wVl5zq__toolbar input,.cpp-roadmap-branch-map-module__wVl5zq__toolbar select{border:1px solid var(--border-subtle);background:var(--surface);width:100%;min-height:44px;color:var(--pine-strong);border-radius:.65rem;padding:.65rem .8rem;font-size:1rem;font-weight:400}.cpp-roadmap-branch-map-module__wVl5zq__toolbar select:disabled{opacity:.65}.cpp-roadmap-branch-map-module__wVl5zq__primary,.cpp-roadmap-branch-map-module__wVl5zq__secondary{background:var(--pine);color:#fff;border:1px solid var(--pine);border-radius:.65rem;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding:.75rem 1rem;font-size:.875rem;font-weight:700;text-decoration:none;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__primary:hover{background:var(--pine-strong)}.cpp-roadmap-branch-map-module__wVl5zq__primary:disabled{opacity:.55}.cpp-roadmap-branch-map-module__wVl5zq__secondary{color:var(--pine);background:var(--surface);border-color:var(--border-subtle)}.cpp-roadmap-branch-map-module__wVl5zq__textButton{text-underline-offset:4px;min-height:44px;padding:.4rem .65rem;font-weight:700;text-decoration:underline}.cpp-roadmap-branch-map-module__wVl5zq__progressStrip{background:var(--surface);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-height:60px;padding:.5rem 1.25rem;font-size:.8rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__progressStrip strong{font-variant-numeric:tabular-nums;font-size:1rem}.cpp-roadmap-branch-map-module__wVl5zq__progressStrip progress{width:7rem;height:.5rem;accent-color:var(--success)}.cpp-roadmap-branch-map-module__wVl5zq__count{align-items:center;gap:.3rem;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__progressHint{color:var(--ink-muted);padding:.5rem 1.25rem 0;font-size:.75rem}.cpp-roadmap-branch-map-module__wVl5zq__feedback{color:var(--pine);padding:.4rem 1.25rem;font-size:.8rem}.cpp-roadmap-branch-map-module__wVl5zq__feedback:empty{padding:0}.cpp-roadmap-branch-map-module__wVl5zq__workspace{border-top:1px solid var(--border-subtle);min-width:0;display:grid}.cpp-roadmap-branch-map-module__wVl5zq__sidebar{display:none}.cpp-roadmap-branch-map-module__wVl5zq__map{background-image:radial-gradient(#a9bfd0 1px,#0000 1px);background-size:20px 20px;min-width:0;padding:1.25rem 1rem 2rem}.cpp-roadmap-branch-map-module__wVl5zq__mapHint{color:var(--ink-muted);text-align:center;margin-bottom:1.5rem;font-size:.8rem}.cpp-roadmap-branch-map-module__wVl5zq__resultBar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:1rem;font-size:.85rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__empty{text-align:center;color:var(--ink-muted);padding:3rem 1rem}.cpp-roadmap-branch-map-module__wVl5zq__phase{background:var(--phase-surface);border:1px solid var(--phase-border);border-radius:1rem;margin-bottom:1.5rem;padding:1rem .75rem 1.5rem;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__phase:nth-of-type(2n){--phase-surface:#e8e9ed;--phase-border:#c4cad6}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading{z-index:1;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading button{text-align:left;color:#fff;background:linear-gradient(115deg, var(--pine-strong), var(--pine));border-radius:.75rem;width:100%;min-height:80px;padding:1rem 3rem 1rem 1.1rem;display:grid;position:relative;box-shadow:0 4px #a4bdcf}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading button>span{font:700 .65rem var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading strong{margin-top:.3rem;font-size:1rem;line-height:1.5}.cpp-roadmap-branch-map-module__wVl5zq__chevron{fill:none;stroke:currentColor;stroke-width:1.75px;width:20px;height:20px;position:absolute;top:calc(50% - 10px);right:1rem}.cpp-roadmap-branch-map-module__wVl5zq__chevron[data-open=false]{transform:rotate(-90deg)}.cpp-roadmap-branch-map-module__wVl5zq__phaseSummary{z-index:1;color:var(--ink-muted);margin:.85rem 0 1.25rem;font-size:.8rem;line-height:1.65;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__branches{gap:.9rem;margin:0;padding:0 0 0 1rem;list-style:none;display:grid;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__branches:before{content:"";background:var(--branch-line);width:2px;position:absolute;top:-1.25rem;bottom:0;left:0}.cpp-roadmap-branch-map-module__wVl5zq__branch{min-width:0;scroll-margin-block:3rem;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__connector{width:1rem;height:2px;stroke:var(--branch-line);stroke-width:2px;position:absolute;top:50%;left:-1rem}.cpp-roadmap-branch-map-module__wVl5zq__node{text-align:left;border:1.5px solid var(--branch-line);background:var(--surface-raised);width:100%;min-height:100px;color:var(--pine-strong);transition:background-color var(--ease-standard), border-color var(--ease-standard);border-radius:.6rem;flex-direction:column;justify-content:center;padding:.85rem 2.3rem .85rem 1rem;display:flex;position:relative}.cpp-roadmap-branch-map-module__wVl5zq__node:hover{background:var(--accent-soft);border-color:var(--focus-ring)}.cpp-roadmap-branch-map-module__wVl5zq__node{box-shadow:0 3px #092c511a}.cpp-roadmap-branch-map-module__wVl5zq__node>strong{overflow-wrap:anywhere;margin-top:.55rem;font-size:.9rem;line-height:1.55}.cpp-roadmap-branch-map-module__wVl5zq__node>.cpp-roadmap-branch-map-module__wVl5zq__icon{position:absolute;bottom:1rem;right:.7rem}.cpp-roadmap-branch-map-module__wVl5zq__nodeMeta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .6rem;width:100%;font-size:.65rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__nodeMeta>span:first-child{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.cpp-roadmap-branch-map-module__wVl5zq__nodeMeta>span:last-child{align-items:center;gap:.2rem;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__nodeMeta .cpp-roadmap-branch-map-module__wVl5zq__icon{width:13px;height:13px}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=learning],.cpp-roadmap-branch-map-module__wVl5zq__statusBadge[data-progress=learning]{background:var(--roadmap-learning-surface);border-color:var(--roadmap-learning-border)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=done],.cpp-roadmap-branch-map-module__wVl5zq__statusBadge[data-progress=done]{background:var(--roadmap-done-surface);border-color:var(--roadmap-done-border)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=skipped],.cpp-roadmap-branch-map-module__wVl5zq__statusBadge[data-progress=skipped]{background:var(--roadmap-skipped-surface);border-color:var(--roadmap-skipped-border);color:var(--roadmap-skipped-ink)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=learning]:hover{background:var(--roadmap-learning-surface-hover)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=done]:hover{background:var(--roadmap-done-surface-hover)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-progress=skipped]:hover{background:var(--roadmap-skipped-surface-hover)}.cpp-roadmap-branch-map-module__wVl5zq__node[data-highlighted=true]{outline:3px solid var(--focus-ring);outline-offset:3px}.cpp-roadmap-branch-map-module__wVl5zq__node[data-prerequisite=true]{border-style:dashed;border-width:2px}.cpp-roadmap-branch-map-module__wVl5zq__node:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}.cpp-roadmap-branch-map-module__wVl5zq__icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.cpp-roadmap-branch-map-module__wVl5zq__end{border:1px solid var(--border-subtle);width:fit-content;color:var(--ink-muted);background:var(--surface);border-radius:2rem;margin-inline:auto;padding:.75rem 1rem;font-size:.8rem}.cpp-roadmap-branch-map-module__wVl5zq__drawer{background:var(--surface-raised);width:100%;max-width:100%;height:100dvh;max-height:100dvh;color:var(--pine-strong);border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto}.cpp-roadmap-branch-map-module__wVl5zq__drawer::backdrop{background:#092c5161}.cpp-roadmap-branch-map-module__wVl5zq__drawerInner{min-height:100%}.cpp-roadmap-branch-map-module__wVl5zq__drawerHeader{z-index:2;background:var(--surface-raised);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;font-size:.75rem;font-weight:700;display:flex;position:sticky;top:0}.cpp-roadmap-branch-map-module__wVl5zq__close{background:var(--surface);border-radius:.65rem;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.cpp-roadmap-branch-map-module__wVl5zq__close svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:20px;height:20px}.cpp-roadmap-branch-map-module__wVl5zq__drawerBody{padding:1.5rem 1.25rem max(2rem, env(safe-area-inset-bottom))}.cpp-roadmap-branch-map-module__wVl5zq__drawerBody h2{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:1.7rem;font-weight:700;line-height:1.3}.cpp-roadmap-branch-map-module__wVl5zq__drawerBody h3{text-transform:uppercase;letter-spacing:.05em;margin:2rem 0 .65rem;font-size:.8rem;font-weight:700}.cpp-roadmap-branch-map-module__wVl5zq__drawerBody p{color:var(--ink-muted);font-size:.9rem;line-height:1.75}.cpp-roadmap-branch-map-module__wVl5zq__statusBadge{border:1px solid var(--border-subtle);border-radius:2rem;align-items:center;gap:.4rem;margin-top:1rem;padding:.35rem .65rem;font-size:.75rem;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__prerequisites,.cpp-roadmap-branch-map-module__wVl5zq__lessonLinks{gap:.65rem;padding:0;list-style:none;display:grid}.cpp-roadmap-branch-map-module__wVl5zq__prerequisites button{text-align:left;background:var(--surface);border:1px solid var(--border-subtle);border-radius:.65rem;width:100%;padding:.85rem;font-size:.85rem}.cpp-roadmap-branch-map-module__wVl5zq__prerequisites button>span:last-child{color:var(--pine);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.75rem;font-weight:700;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__lessonLinks a{width:100%}.cpp-roadmap-branch-map-module__wVl5zq__lessonLinks small{margin-top:.4rem;font-size:.7rem;font-weight:400;line-height:1.6;display:block}.cpp-roadmap-branch-map-module__wVl5zq__statusActions{border:0;border-top:1px solid var(--border-subtle);margin-top:2rem;padding:1rem 0}.cpp-roadmap-branch-map-module__wVl5zq__statusActions legend{padding-right:.65rem;font-size:.8rem;font-weight:700}.cpp-roadmap-branch-map-module__wVl5zq__statusActions>div{flex-wrap:wrap;gap:.5rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__statusActions button{border:1px solid var(--border-subtle);border-radius:.65rem;align-items:center;gap:.4rem;min-height:44px;padding:.6rem .7rem;font-size:.8rem;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__statusActions button[aria-pressed=true]{border-color:var(--pine);background:var(--accent-soft)}.cpp-roadmap-branch-map-module__wVl5zq__statusActions button:disabled{opacity:.55}.cpp-roadmap-branch-map-module__wVl5zq__statusActions p{margin-top:.75rem;font-size:.75rem}.cpp-roadmap-branch-map-module__wVl5zq__quickActions{flex-wrap:wrap;gap:.5rem;padding-top:.5rem;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button{border:1px solid var(--border-subtle);background:var(--surface-raised);min-height:44px;color:var(--pine-strong);cursor:pointer;border-radius:.65rem;justify-content:center;align-items:center;gap:.3rem;padding:.5rem;font-size:.75rem;display:inline-flex}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button[aria-pressed=true]{border-color:var(--pine);background:var(--accent-soft)}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:hover:not(:disabled){border-color:var(--focus-ring)}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:focus-visible,.cpp-roadmap-branch-map-module__wVl5zq__statusActions button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:disabled{opacity:.55;cursor:not-allowed}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button,.cpp-roadmap-branch-map-module__wVl5zq__statusActions button{--status-action-fill:var(--pine);border:2px solid var(--status-action-fill);background:var(--status-action-fill);color:#fff;gap:.45rem;min-height:44px;padding:.65rem .8rem;font-size:.875rem;font-weight:700}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:first-child,.cpp-roadmap-branch-map-module__wVl5zq__statusActions button:first-child{--status-action-fill:var(--roadmap-learning-border)}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:nth-child(2),.cpp-roadmap-branch-map-module__wVl5zq__statusActions button:nth-child(2){--status-action-fill:var(--roadmap-done-border)}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button[aria-pressed=true],.cpp-roadmap-branch-map-module__wVl5zq__statusActions button[aria-pressed=true]{background:var(--status-action-fill);border-color:var(--status-action-fill);box-shadow:inset 0 0 0 2px white, 0 0 0 2px var(--pine-strong);text-underline-offset:4px;text-decoration:underline}.cpp-roadmap-branch-map-module__wVl5zq__quickActions button:hover:not(:disabled),.cpp-roadmap-branch-map-module__wVl5zq__statusActions button:hover:not(:disabled){background:var(--pine-strong);border-color:var(--pine-strong)}.cpp-roadmap-branch-map-module__wVl5zq__quickActions .cpp-roadmap-branch-map-module__wVl5zq__icon,.cpp-roadmap-branch-map-module__wVl5zq__statusActions .cpp-roadmap-branch-map-module__wVl5zq__icon{stroke-width:2px}@media (hover:hover) and (pointer:fine){.cpp-roadmap-branch-map-module__wVl5zq__quickActions{opacity:0;pointer-events:none}.cpp-roadmap-branch-map-module__wVl5zq__branch:hover .cpp-roadmap-branch-map-module__wVl5zq__quickActions,.cpp-roadmap-branch-map-module__wVl5zq__branch:focus-within .cpp-roadmap-branch-map-module__wVl5zq__quickActions{opacity:1;pointer-events:auto}}@media (min-width:640px){.cpp-roadmap-branch-map-module__wVl5zq__drawer{width:30rem;box-shadow:-12px 0 50px #092c5126}.cpp-roadmap-branch-map-module__wVl5zq__drawerBody{padding:2rem}.cpp-roadmap-branch-map-module__wVl5zq__map{padding:1.5rem 1.5rem 2rem}}@media (min-width:1024px){.cpp-roadmap-branch-map-module__wVl5zq__workspace{grid-template-columns:220px minmax(0,1fr)}.cpp-roadmap-branch-map-module__wVl5zq__sidebar{border-bottom-left-radius:var(--radius-panel);background:#ccdeeb;border-right:1px solid #b6ccde;padding:1.5rem 1rem;display:block}.cpp-roadmap-branch-map-module__wVl5zq__sidebar nav{position:sticky;top:1rem}.cpp-roadmap-branch-map-module__wVl5zq__sidebar h3{text-transform:uppercase;letter-spacing:.12em;margin:.5rem .5rem 1rem;font-size:.65rem}.cpp-roadmap-branch-map-module__wVl5zq__sidebar ol{gap:.25rem;padding:0;list-style:none;display:grid}.cpp-roadmap-branch-map-module__wVl5zq__sidebar button{text-align:left;border-radius:.65rem;align-items:start;gap:.65rem;width:100%;min-height:44px;padding:.7rem .5rem;font-size:.75rem;line-height:1.5;display:flex}.cpp-roadmap-branch-map-module__wVl5zq__sidebar button:hover{background:var(--accent-soft)}.cpp-roadmap-branch-map-module__wVl5zq__phaseNumber{color:var(--ink-muted);font:.65rem var(--font-mono);padding-top:.15rem}.cpp-roadmap-branch-map-module__wVl5zq__sidebar small{color:var(--ink-muted);margin-top:.25rem;font-size:.65rem;display:block}.cpp-roadmap-branch-map-module__wVl5zq__legend{color:var(--ink-muted);margin-top:2rem;font-size:.7rem;line-height:1.75}.cpp-roadmap-branch-map-module__wVl5zq__legend p+p{margin-top:.75rem}.cpp-roadmap-branch-map-module__wVl5zq__legendLine{background:var(--branch-line);width:1.5rem;height:2px;margin:0 .5rem .2rem 0;display:inline-block}.cpp-roadmap-branch-map-module__wVl5zq__map{padding:2rem}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading{max-width:23rem;margin-inline:auto}.cpp-roadmap-branch-map-module__wVl5zq__phaseHeading button{text-align:center;padding-inline:2.5rem}.cpp-roadmap-branch-map-module__wVl5zq__phaseSummary{text-align:center;background:var(--phase-surface);max-width:32rem;margin-inline:auto}.cpp-roadmap-branch-map-module__wVl5zq__branches{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 3rem;padding:0}.cpp-roadmap-branch-map-module__wVl5zq__branches:before{left:calc(50% - 1px)}.cpp-roadmap-branch-map-module__wVl5zq__branch:nth-child(odd) .cpp-roadmap-branch-map-module__wVl5zq__connector{width:1.5rem;left:100%}.cpp-roadmap-branch-map-module__wVl5zq__branch:nth-child(2n) .cpp-roadmap-branch-map-module__wVl5zq__connector{width:1.5rem;left:-1.5rem}.cpp-roadmap-branch-map-module__wVl5zq__phase{padding:1.5rem 1.25rem}.cpp-roadmap-branch-map-module__wVl5zq__phase:not(:last-of-type):after{content:"";background:var(--branch-line);width:2px;height:1.5rem;position:absolute;top:100%;left:calc(50% - 1px)}}@media (prefers-reduced-motion:reduce){.cpp-roadmap-branch-map-module__wVl5zq__node{transition:none}}@media (min-width:1024px) and (max-height:760px){.cpp-roadmap-branch-map-module__wVl5zq__sidebar nav{position:static}}
.cpp-roadmap-app-module__-P2iRq__page{--roadmap-canvas:#dfeaf3;background:radial-gradient(ellipse at 90% 0, #bfe9e5 0, transparent 34rem), var(--roadmap-canvas)}.cpp-roadmap-app-module__-P2iRq__hero{isolation:isolate;border:1px solid var(--pine);background:linear-gradient(115deg, var(--pine-strong), var(--pine));border-radius:1.25rem;margin-top:1.5rem;padding:2rem 1.25rem;position:relative;overflow:hidden;box-shadow:0 12px 32px #092c5124}.cpp-roadmap-app-module__-P2iRq__hero:after{content:"";z-index:-1;pointer-events:none;border:1px solid #65e6d24d;border-radius:50%;width:26rem;height:26rem;position:absolute;top:-10rem;right:-14rem;box-shadow:0 0 0 3rem #65e6d212,0 0 0 6rem #65e6d20d,0 0 0 9rem #65e6d208}.cpp-roadmap-app-module__-P2iRq__hero h1{color:#fff}.cpp-roadmap-app-module__-P2iRq__hero>p{color:#d4e4f2}.cpp-roadmap-app-module__-P2iRq__metric{background:#183f65;border:1px solid #577797;border-radius:.75rem;align-items:center;gap:.65rem;min-height:44px;padding:.6rem 1rem;display:inline-flex}.cpp-roadmap-app-module__-P2iRq__metric strong{font-family:var(--font-mono);color:var(--accent);font-size:1.2rem}.cpp-roadmap-app-module__-P2iRq__metric span{color:#e4edf5;font-size:.75rem;font-weight:700}@media (min-width:640px){.cpp-roadmap-app-module__-P2iRq__hero{padding:2.5rem}}
