.post-body .roadmap>*+*{margin-top:28px}.roadmap-map{background:var(--blog-tone,var(--periwinkle));border-radius:var(--radius);padding:30px 32px}.roadmap-map-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 18px;display:flex}.post-body .roadmap-map h2{margin:0;scroll-margin-top:150px;font-size:clamp(26px,2.4vw,32px)}.roadmap-map-head p{color:var(--muted);font-size:14px}.roadmap-facts{flex-wrap:wrap;gap:8px;margin:18px 0 0;display:flex}.roadmap-facts>div{background:#ffffffb3;border-radius:16px;gap:2px;padding:10px 16px;display:grid}.roadmap-facts dt{color:var(--muted);font-size:12px}.roadmap-facts dd{margin:0;font-size:15px;font-weight:650;line-height:1.4}.post-body .roadmap-map ol{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.post-body .roadmap-map li+li{margin-top:0}.post-body .roadmap-map li a{padding:12px 16px;min-height:64px;color:var(--ink);transition:transform .25s var(--ease), box-shadow .25s;background:#fff;border-radius:18px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:14px;padding-inline-start:12px;text-decoration:none;display:grid}.post-body .roadmap-map li a:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 8px 22px #141a2b12}.map-number{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:15px;font-weight:650;display:grid}.map-text{min-width:0;line-height:1.45;display:grid}.map-text strong{font-size:16px;font-weight:650}.map-text>span{color:var(--muted);font-size:13px}.map-progress{background:var(--cream);font-variant-numeric:tabular-nums;border-radius:100px;justify-content:center;align-items:center;min-width:30px;height:30px;padding-inline:9px;font-size:12px;font-weight:650;display:inline-flex}.map-progress[data-complete]{background:var(--blue);color:#fff;padding:0}.roadmap-progress{gap:10px;margin-top:18px;display:grid}.roadmap-progress-bar{background:#ffffffb3;border-radius:100px;height:8px;overflow:hidden}.roadmap-progress-bar span{border-radius:inherit;background:var(--blue);min-width:0;height:100%;transition:width .4s var(--ease);display:block}.roadmap-progress p{color:var(--muted);font-size:13px;line-height:1.6}.roadmap-progress strong{color:var(--ink);font-variant-numeric:tabular-nums}.roadmap-tip,.roadmap-mistakes{border-radius:22px;padding:26px 30px;font-size:16px}.roadmap-tip{background:var(--cream)}.roadmap-tip-title{margin-bottom:8px;font-weight:650}.roadmap-mistakes{background:var(--butter);margin-block:0 22px}.post-body .roadmap-mistakes h3{margin:0 0 12px}.post-body :is(.roadmap-tip,.roadmap-mistakes) ul{gap:14px;margin:0;padding:0;list-style:none;display:grid}.post-body :is(.roadmap-tip,.roadmap-mistakes) li{margin:0;padding-inline-start:34px;position:relative}.post-body :is(.roadmap-tip,.roadmap-mistakes) li:before{content:"";inset-inline-start:0;background:var(--ink) no-repeat center / 10px;border-radius:50%;width:20px;height:20px;position:absolute;top:.32em}.post-body .roadmap-tip li:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3.2 3L13 4.5' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.post-body .roadmap-mistakes li:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 4 8 8M12 4l-8 8' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}.roadmap-tip p+ul,.roadmap-tip p+p{margin-top:10px}.roadmap-stage{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:32px;scroll-margin-top:130px}.stage-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px 18px;display:grid}.stage-number{background:var(--blog-tone,var(--periwinkle));font-variant-numeric:tabular-nums;border-radius:18px;place-items:center;width:58px;height:58px;font-size:20px;font-weight:650;display:grid}.stage-eyebrow{color:var(--blue-dark)}.post-body .roadmap-stage h2{margin:4px 0 0;scroll-margin-top:150px}.stage-subtitle{letter-spacing:0;color:var(--muted);margin-top:4px;font-size:17px;font-weight:400;line-height:1.5;display:block}.stage-time{background:var(--cream);white-space:nowrap;border-radius:100px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;line-height:1.4;display:inline-flex}.stage-time svg{color:var(--blue-dark);flex-shrink:0}.stage-intro{margin-top:22px}.stage-intro>*+*{margin-top:14px}.stage-learn{border-top:1px solid var(--line);margin-top:26px;padding-top:22px}.stage-learn-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.post-body .stage-learn h3{margin:0;font-size:19px}.stage-count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:600}.stage-count[data-complete]{color:var(--blue-dark)}.post-body .stage-checklist{gap:2px;margin:10px 0 0;padding:0;list-style:none;display:grid}.post-body .stage-checklist li{margin:0}.stage-checklist label{cursor:pointer;border-radius:14px;align-items:flex-start;gap:14px;min-height:44px;margin-inline:-12px;padding:9px 12px;line-height:1.65;transition:background .2s;display:flex;position:relative}.stage-checklist label:hover{background:var(--cream)}.stage-checklist input{inset-inline-start:12px;opacity:0;cursor:pointer;width:22px;height:22px;margin:0;position:absolute;top:12px}.stage-check{color:#fff;background:#fff;border:1.5px solid #b5bbc9;border-radius:7px;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:.2em;transition:background .2s,border-color .2s;display:grid}.stage-check svg{opacity:0;transition:opacity .15s}.stage-checklist input:checked+.stage-check{background:var(--blue);border-color:var(--blue)}.stage-checklist input:checked+.stage-check svg{opacity:1}.stage-checklist input:checked~.stage-item{color:var(--muted)}.stage-checklist input:focus-visible+.stage-check{outline:3px solid var(--blue);outline-offset:2px}.stage-item{overflow-wrap:anywhere;min-width:0}.stage-project{background:var(--cream);border-radius:20px;margin-top:22px;padding:22px 24px}.stage-project .eyebrow,.stage-ready .eyebrow{color:var(--blue-dark);margin-bottom:8px}.stage-ready{margin-top:22px}.post-body .stage-ready ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.post-body .stage-ready li{margin:0;padding-inline-start:32px;position:relative}.post-body .stage-ready li:before{content:"";inset-inline-start:0;background:var(--blog-tone,var(--periwinkle)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3.2 3L13 4.5' fill='none' stroke='%23141a2b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 11px;border-radius:50%;width:20px;height:20px;position:absolute;top:.35em}.project-ladder{margin-block:26px 22px}.ladder-note{color:var(--blue-dark);width:fit-content;margin-bottom:14px;rotate:-2deg}.post-body .project-ladder ol{margin:0;padding:0;list-style:none;display:grid}.post-body .ladder-step{grid-template-columns:44px minmax(0,1fr);gap:16px;margin:0;padding-bottom:22px;display:grid;position:relative}.post-body .ladder-step:not([data-last]):after{content:"";inset-inline-start:21px;background:var(--line);border-radius:2px;width:2px;position:absolute;top:50px;bottom:6px}.ladder-number{background:var(--blog-tone,var(--periwinkle));border-radius:50%;place-items:center;width:44px;height:44px;font-size:16px;font-weight:650;display:grid}.ladder-step[data-last] .ladder-number{background:var(--ink);color:#fff}.post-body .ladder-body h3{margin:8px 0 0;font-size:19px}.ladder-stack{color:var(--blue-dark);margin-top:2px;font-size:13px;font-weight:600}.ladder-text{margin-top:6px}.resource-group{margin-block:26px}.post-body .resource-group h3{margin:0 0 12px;font-size:19px}.post-body .resource-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.post-body .resource{border:1px solid var(--line);border-radius:20px;align-content:start;gap:8px;margin:0;padding:18px 20px;display:grid}.post-body a.resource-name{width:fit-content;color:var(--ink);align-items:center;gap:8px;font-size:17px;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.post-body a.resource-name:hover{color:var(--blue-dark);text-decoration:underline}.resource-name .arrow{width:16px;height:16px;color:var(--blue-dark);flex-shrink:0}.resource-tags{flex-wrap:wrap;gap:6px;display:flex}.resource-tags span{background:var(--cream);border-radius:100px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.6}.resource-tags [data-cost=free]{background:var(--mint)}.resource-tags [data-cost=freemium]{background:var(--butter)}.resource-tags [data-cost=paid]{background:var(--periwinkle)}.resource-note{color:var(--muted);font-size:14.5px;line-height:1.7}@media (max-width:699px){.post-body .resource-list{grid-template-columns:minmax(0,1fr)}.stage-head{grid-template-columns:auto minmax(0,1fr)}.stage-time{white-space:normal;grid-column:1/-1;justify-self:start}}@media (max-width:599px){.roadmap-map,.roadmap-stage{border-radius:24px;margin-inline:-16px;padding:24px 18px}.roadmap-tip,.roadmap-mistakes{margin-inline:-16px;padding:22px 20px}.post-body .roadmap-map li a{grid-template-columns:34px minmax(0,1fr) auto;gap:12px;padding-inline:10px 12px}.map-number{width:34px;height:34px;font-size:14px}.stage-number{border-radius:15px;width:48px;height:48px;font-size:17px}.stage-head{gap:12px 14px}.post-body .roadmap-stage h2{font-size:28px}.stage-subtitle{font-size:15px}.stage-project{margin-inline:-6px;padding:18px}.stage-checklist label{margin-inline:-8px;padding-inline:8px}.stage-checklist input{inset-inline-start:8px}}@media (prefers-reduced-motion:reduce){.post-body .roadmap-map li a,.post-body .roadmap-map li a:hover{transition:none;transform:none}.roadmap-progress-bar span{transition:none}}
