.roadmap-module__8-ghdq__page{--roadmap-bg:#18181b;--roadmap-panel:#202024;--roadmap-panel-2:#242429;--roadmap-border:#303036;--roadmap-muted:#71717a;background:var(--roadmap-bg);color:#e5e7eb;min-height:100vh;overflow:hidden}.roadmap-module__8-ghdq__hero{border-bottom:1px solid var(--roadmap-border);padding:9.5rem 1.25rem 4rem;position:relative}.roadmap-module__8-ghdq__heroInner{z-index:1;width:min(1180px,100%);margin:0 auto;position:relative}.roadmap-module__8-ghdq__kicker{color:#a8aeb9;letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.7rem;margin-bottom:1.6rem;font-size:.72rem;font-weight:700;display:flex}.roadmap-module__8-ghdq__kicker span{background:#3b82f6;width:2rem;height:2px}.roadmap-module__8-ghdq__heroGrid{grid-template-columns:minmax(0,1fr) 340px;align-items:end;gap:5rem;display:grid}.roadmap-module__8-ghdq__hero h1{letter-spacing:-.065em;max-width:780px;font-size:clamp(2.8rem,5vw,4.75rem);font-weight:740;line-height:.98}.roadmap-module__8-ghdq__hero h1 em{color:#60a5fa;font-style:normal}.roadmap-module__8-ghdq__hero p{color:#969dab;max-width:680px;margin-top:1.6rem;font-size:1.03rem;line-height:1.8}.roadmap-module__8-ghdq__progressCard{background:#202024;border:1px solid #35353b;border-radius:12px;padding:1.35rem}.roadmap-module__8-ghdq__progressTop,.roadmap-module__8-ghdq__progressMeta{justify-content:space-between;align-items:center;display:flex}.roadmap-module__8-ghdq__progressTop span{color:#c3c7cf;font-size:.82rem;font-weight:650}.roadmap-module__8-ghdq__progressTop strong{color:#60a5fa;font-family:var(--font-geist-mono),monospace;font-size:1.6rem}.roadmap-module__8-ghdq__progressTrack{background:#303036;border-radius:999px;height:7px;margin:1rem 0;overflow:hidden}.roadmap-module__8-ghdq__progressTrack span{border-radius:inherit;background:#3b82f6;height:100%;transition:width .3s;display:block}.roadmap-module__8-ghdq__progressMeta{color:#747c8b;font-size:.72rem}.roadmap-module__8-ghdq__progressMeta b{color:#d9dce2;font-family:var(--font-geist-mono),monospace}.roadmap-module__8-ghdq__toolbarWrap{z-index:20;border-bottom:1px solid var(--roadmap-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#18181bf0;position:sticky;top:80px}.roadmap-module__8-ghdq__toolbar{justify-content:space-between;align-items:center;gap:1rem;width:min(1180px,100% - 2rem);min-height:68px;margin:0 auto;display:flex}.roadmap-module__8-ghdq__filters{flex-wrap:wrap;gap:.4rem;display:flex}.roadmap-module__8-ghdq__filters button,.roadmap-module__8-ghdq__resetButton{color:#808897;border:1px solid #0000;border-radius:999px;padding:.48rem .78rem;font-size:.74rem;font-weight:650;transition:all .16s}.roadmap-module__8-ghdq__filters button:hover,.roadmap-module__8-ghdq__filters .roadmap-module__8-ghdq__filterActive{color:#f3f4f6;background:#242429;border-color:#3b82f6}.roadmap-module__8-ghdq__toolbarRight{color:#686f7c;align-items:center;gap:1rem;font-size:.72rem;display:flex}.roadmap-module__8-ghdq__resetButton{border-color:#35353b;border-radius:8px}.roadmap-module__8-ghdq__resetButton:hover{color:#d1d5db;border-color:#4b5563}.roadmap-module__8-ghdq__roadmap{width:min(1180px,100% - 2rem);margin:0 auto;padding:5rem 0 8rem;position:relative}.roadmap-module__8-ghdq__trunk{background:#3a3a40;width:2px;position:absolute;top:7.4rem;bottom:9.5rem;left:50%;transform:translate(-50%)}.roadmap-module__8-ghdq__startNode,.roadmap-module__8-ghdq__finishNode{z-index:3;width:fit-content;box-shadow:0 0 0 5px var(--roadmap-bg);text-align:center;background:#1e293b;border:1px solid #3b5f91;border-radius:10px;margin:0 auto;padding:.8rem 1.2rem;position:relative}.roadmap-module__8-ghdq__startNode span,.roadmap-module__8-ghdq__finishNode small{color:#93c5fd;letter-spacing:.15em;text-transform:uppercase;font-size:.62rem;font-weight:750;display:block}.roadmap-module__8-ghdq__startNode strong,.roadmap-module__8-ghdq__finishNode strong{color:#f3f4f6;margin-top:.15rem;font-size:.86rem;display:block}.roadmap-module__8-ghdq__stage{grid-template-columns:minmax(0,1fr) 106px minmax(0,1fr);grid-template-areas:"copy milestone empty""core milestone practice";align-items:start;gap:1.15rem 2rem;min-height:520px;padding-top:6.6rem;display:grid;position:relative}.roadmap-module__8-ghdq__stage:nth-of-type(2n){grid-template-areas:"empty milestone copy""core milestone practice"}.roadmap-module__8-ghdq__stageCopy{grid-area:copy;max-width:390px;padding:0 .3rem}.roadmap-module__8-ghdq__stage:nth-of-type(2n) .roadmap-module__8-ghdq__stageCopy{justify-self:end}.roadmap-module__8-ghdq__stageCopy>span{color:#60a5fa;font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.65rem;font-weight:700}.roadmap-module__8-ghdq__stageCopy h2{color:#f1f2f4;letter-spacing:-.035em;margin-top:.35rem;font-size:1.38rem;font-weight:680}.roadmap-module__8-ghdq__stageCopy p{color:#747c8b;margin-top:.45rem;font-size:.79rem;line-height:1.65}.roadmap-module__8-ghdq__milestone{z-index:4;flex-direction:column;grid-area:milestone;align-items:center;padding-top:.1rem;display:flex;position:relative}.roadmap-module__8-ghdq__week{color:#676f7e;font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;margin-bottom:.55rem;font-size:.58rem;font-weight:700}.roadmap-module__8-ghdq__milestoneIcon{width:54px;height:54px;box-shadow:0 0 0 7px var(--roadmap-bg);color:#aeb4bf;font-family:var(--font-geist-mono),monospace;background:#242429;border:1px solid #3f3f46;border-radius:12px;place-items:center;font-size:.86rem;font-weight:750;transition:all .18s;display:grid}.roadmap-module__8-ghdq__milestoneComplete .roadmap-module__8-ghdq__milestoneIcon{color:#93c5fd;background:#172554;border-color:#3b82f6}.roadmap-module__8-ghdq__stageCount{color:#59606d;font-family:var(--font-geist-mono),monospace;margin-top:.6rem;font-size:.62rem}.roadmap-module__8-ghdq__cluster{z-index:2;border:1px solid var(--roadmap-border);background:#202024;border-radius:12px;padding:.8rem;position:relative}.roadmap-module__8-ghdq__coreCluster{grid-area:core}.roadmap-module__8-ghdq__practiceCluster{grid-area:practice}.roadmap-module__8-ghdq__clusterHeader{color:#6f7785;font-family:var(--font-geist-mono),monospace;letter-spacing:.1em;justify-content:space-between;align-items:center;padding:.15rem .35rem .7rem;font-size:.58rem;font-weight:700;display:flex}.roadmap-module__8-ghdq__clusterHeader b{color:#8f96a3;letter-spacing:0}.roadmap-module__8-ghdq__topicList{gap:.48rem;display:grid}.roadmap-module__8-ghdq__topic{color:#cdd1d8;text-align:left;background:#242429;border:1px solid #303036;border-radius:8px;align-items:center;gap:.65rem;width:100%;min-height:43px;padding:.58rem .7rem;font-size:.75rem;font-weight:570;line-height:1.35;transition:border-color .16s,background .16s,opacity .16s,transform .16s;display:flex}.roadmap-module__8-ghdq__topic:hover{background:#29292e;border-color:#4b5563;transform:translateY(-1px)}.roadmap-module__8-ghdq__topicWithLink{gap:0;padding:0}.roadmap-module__8-ghdq__topicToggle{border-right:1px solid #303036;border-radius:7px 0 0 7px;flex:0 0 41px;align-self:stretch;place-items:center;display:grid}.roadmap-module__8-ghdq__topicToggle:hover,.roadmap-module__8-ghdq__topicToggle:focus-visible{background:#303036}.roadmap-module__8-ghdq__topicToggle:focus-visible,.roadmap-module__8-ghdq__topicLink:focus-visible{outline-offset:-2px;outline:2px solid #60a5fa}.roadmap-module__8-ghdq__topicLink{min-width:0;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;flex:1;justify-content:space-between;align-self:stretch;align-items:center;gap:.55rem;padding:.58rem .7rem;display:flex}.roadmap-module__8-ghdq__topicLink:hover .roadmap-module__8-ghdq__topicArrow{color:#93c5fd;transform:translate(1px,-1px)}.roadmap-module__8-ghdq__topicArrow{color:#60a5fa;flex:none;font-size:.8rem;text-decoration:none;transition:color .16s,transform .16s}.roadmap-module__8-ghdq__topicState{color:#07100b;border:1px solid #3a414e;border-radius:6px;flex:none;place-items:center;width:19px;height:19px;font-size:.68rem;font-weight:900;display:grid}.roadmap-module__8-ghdq__java{border-left:2px solid #60a5fa}.roadmap-module__8-ghdq__spring{border-left:2px solid #4ade80}.roadmap-module__8-ghdq__dsa{border-left:2px solid #2dd4bf}.roadmap-module__8-ghdq__lab{border-left:2px solid #94a3b8}.roadmap-module__8-ghdq__completed{color:#94a3b8;background:#1e293b;border-color:#3b5f91;-webkit-text-decoration:line-through #64748b;text-decoration:line-through #64748b}.roadmap-module__8-ghdq__completed .roadmap-module__8-ghdq__topicState{background:#60a5fa;border-color:#60a5fa}.roadmap-module__8-ghdq__dimmed{opacity:.23}.roadmap-module__8-ghdq__branchLine{z-index:1;background:#3a3a40;width:calc(50% - 50px);height:2px;position:absolute;top:14.1rem}.roadmap-module__8-ghdq__branchLine:after{content:"";background:#52525b;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px}.roadmap-module__8-ghdq__branchLeft{left:0}.roadmap-module__8-ghdq__branchRight{right:0}.roadmap-module__8-ghdq__branchLeft:after{left:0}.roadmap-module__8-ghdq__branchRight:after{right:0}.roadmap-module__8-ghdq__finishNode{text-align:left;background:#1e293b;border-color:#3b5f91;align-items:center;gap:.8rem;margin-top:3rem;padding:.85rem 1.25rem;display:flex}.roadmap-module__8-ghdq__finishNode>span{color:#eff6ff;background:#3b82f6;border-radius:10px;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.roadmap-module__8-ghdq__finishNode small{color:#93c5fd}.roadmap-module__8-ghdq__finishNode strong{color:#f3f4f6}.roadmap-module__8-ghdq__legend{border-top:1px solid var(--roadmap-border);color:#686f7d;justify-content:space-between;align-items:center;width:min(1180px,100% - 2rem);margin:0 auto 5rem;padding-top:1.4rem;font-size:.72rem;display:flex}.roadmap-module__8-ghdq__legend>div,.roadmap-module__8-ghdq__legend>div>span{align-items:center;display:flex}.roadmap-module__8-ghdq__legend>div{gap:1.2rem}.roadmap-module__8-ghdq__legend>div>span{gap:.42rem}.roadmap-module__8-ghdq__legend i{border-radius:50%;width:7px;height:7px}.roadmap-module__8-ghdq__javaDot{background:#60a5fa}.roadmap-module__8-ghdq__springDot{background:#4ade80}.roadmap-module__8-ghdq__dsaDot{background:#2dd4bf}.roadmap-module__8-ghdq__labDot{background:#94a3b8}@media (max-width:900px){.roadmap-module__8-ghdq__heroGrid{grid-template-columns:1fr;gap:2.2rem}.roadmap-module__8-ghdq__progressCard{max-width:420px}.roadmap-module__8-ghdq__toolbar{flex-direction:column;align-items:flex-start;padding:.8rem 0}.roadmap-module__8-ghdq__toolbarRight{justify-content:space-between;width:100%}.roadmap-module__8-ghdq__toolbarWrap{top:80px}.roadmap-module__8-ghdq__stage,.roadmap-module__8-ghdq__stage:nth-of-type(2n){grid-template-columns:68px minmax(0,1fr);grid-template-areas:"milestone copy""milestone core""milestone practice";column-gap:1rem;min-height:0;padding:5.5rem 0 0}.roadmap-module__8-ghdq__trunk{left:34px;transform:none}.roadmap-module__8-ghdq__stageCopy,.roadmap-module__8-ghdq__stage:nth-of-type(2n) .roadmap-module__8-ghdq__stageCopy{justify-self:start}.roadmap-module__8-ghdq__milestone{align-items:flex-start}.roadmap-module__8-ghdq__week{margin-left:.1rem}.roadmap-module__8-ghdq__branchLine{display:none}.roadmap-module__8-ghdq__cluster{margin-bottom:.65rem}.roadmap-module__8-ghdq__startNode,.roadmap-module__8-ghdq__finishNode{margin-left:0}}@media (max-width:620px){.roadmap-module__8-ghdq__hero{padding-top:8rem;padding-bottom:3rem}.roadmap-module__8-ghdq__hero h1{font-size:clamp(2.45rem,13vw,4rem)}.roadmap-module__8-ghdq__toolbarWrap{position:relative;top:auto}.roadmap-module__8-ghdq__filters{width:100%}.roadmap-module__8-ghdq__filters button{flex:1;padding-inline:.45rem}.roadmap-module__8-ghdq__toolbarRight>span{display:none}.roadmap-module__8-ghdq__roadmap{width:min(100% - 1.3rem,1180px)}.roadmap-module__8-ghdq__stage,.roadmap-module__8-ghdq__stage:nth-of-type(2n){grid-template-columns:54px minmax(0,1fr);column-gap:.65rem}.roadmap-module__8-ghdq__trunk{left:27px}.roadmap-module__8-ghdq__milestoneIcon{border-radius:14px;width:46px;height:46px}.roadmap-module__8-ghdq__stageCopy h2{font-size:1.18rem}.roadmap-module__8-ghdq__topic{font-size:.7rem}.roadmap-module__8-ghdq__legend{flex-direction:column;align-items:flex-start;gap:1rem}.roadmap-module__8-ghdq__legend>div{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.roadmap-module__8-ghdq__topic,.roadmap-module__8-ghdq__progressTrack span,.roadmap-module__8-ghdq__milestoneIcon{transition:none}}
