.course-hero{max-width:1080px;margin-inline:auto}.course-hero__title{letter-spacing:-.025em;margin:10px 0 18px;font-size:clamp(30px,5.4vw,58px);font-weight:700;line-height:1.15}.course-hero__lead{color:rgb(var(--ink-rgb) / .75);text-wrap:pretty;margin-bottom:.8em;font-size:clamp(16px,1.5vw,19px);line-height:2}.course-stats{flex-wrap:wrap;gap:10px;margin:22px 0;list-style:none;display:flex}.course-stats li{border:1px solid rgb(var(--ink-rgb) / .14);color:rgb(var(--ink-rgb) / .75);border-radius:100px;padding:8px 16px;font-size:14px}.course-stats strong{color:var(--ink);font-weight:800}.course-hero__actions{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0 18px;display:flex}.course-audience{color:rgb(var(--ink-rgb) / .65);max-width:760px;font-size:14.5px;line-height:1.9}.course-section-title{margin-bottom:20px;font-size:clamp(22px,2.8vw,32px);font-weight:700}.course-main>.section{max-width:1080px;margin-inline:auto}.course-main>.section+.section{padding-top:0}.phase-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;list-style:none;display:grid}.phase-card{border:1px solid rgb(var(--ink-rgb) / .1);background:rgb(var(--paper-rgb) / .6);height:100%;color:inherit;border-radius:16px;flex-direction:column;gap:6px;padding:20px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}a.phase-card:hover{border-color:rgb(var(--accent-rgb) / .55);transform:translateY(-2px)}.phase-card.is-soon{opacity:.55}.phase-card__num{color:var(--accent-text);letter-spacing:.05em;font-size:13px;font-weight:800}.phase-card__title{font-size:18px;font-weight:700;line-height:1.5}.phase-card__tagline{color:rgb(var(--ink-rgb) / .65);flex:1;font-size:14px;line-height:1.85}.phase-card__count{color:rgb(var(--ink-rgb) / .62);font-size:12.5px;font-weight:700}.phase-lessons{flex-direction:column;gap:10px;list-style:none;display:flex}.phase-lesson{border:1px solid rgb(var(--ink-rgb) / .1);color:inherit;border-radius:14px;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .2s;display:flex}.phase-lesson:hover{border-color:rgb(var(--accent-rgb) / .5)}.phase-lesson__num{background:rgb(var(--ink-rgb) / .06);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:grid}.phase-lesson.is-read .phase-lesson__num{background:rgb(var(--accent-rgb) / .12);color:var(--accent-text)}.phase-lesson__body{flex-direction:column;gap:4px;min-width:0;display:flex}.phase-lesson__title{font-size:17px;font-weight:700;line-height:1.6}.phase-lesson__excerpt{color:rgb(var(--ink-rgb) / .65);font-size:14px;line-height:1.85}.phase-lesson__meta{color:rgb(var(--ink-rgb) / .62);font-size:12.5px}.lesson-layout{padding-inline:clamp(16px,4vw,40px);grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:clamp(28px,4vw,56px);max-width:1220px;margin-inline:auto;padding-bottom:clamp(60px,10vh,120px);display:grid}.lesson-article{min-width:0;max-width:820px}.lesson-aside{overscroll-behavior:contain;flex-direction:column;gap:24px;max-height:calc(100svh - 112px);padding-bottom:12px;display:flex;position:sticky;top:96px;overflow-y:auto}.lesson-aside__title{color:rgb(var(--ink-rgb) / .62);justify-content:space-between;gap:8px;margin-bottom:10px;font-size:13px;font-weight:800;display:flex}.lesson-aside__title a{color:inherit;text-decoration:none}.lesson-aside__title a:hover{color:var(--accent-text)}.lesson-crumbs{color:rgb(var(--ink-rgb) / .62);flex-wrap:wrap;gap:8px;margin-bottom:18px;font-size:13.5px;font-weight:600;display:flex}.lesson-crumbs a{color:rgb(var(--ink-rgb) / .62);padding-block:4px;text-decoration:none}.lesson-crumbs a:hover{color:var(--accent-text)}.lesson-title{font-size:clamp(28px,4.4vw,48px)}.lesson-meta{flex-wrap:wrap;gap:10px 26px;margin-top:6px;font-size:14px;display:flex}.lesson-meta div{gap:6px;display:flex}.lesson-meta dt{color:rgb(var(--ink-rgb) / .62)}.lesson-meta dt:after{content:":"}.lesson-meta dd{font-weight:600}.lesson-meta a{color:var(--accent-text)}.lesson-cover img{width:100%;height:100%}.lesson-cover{aspect-ratio:1200/630}.lesson-toc__list{flex-direction:column;gap:2px;list-style:none;display:flex}.lesson-toc__list a{border-inline-start:2px solid rgb(var(--ink-rgb) / .1);color:rgb(var(--ink-rgb) / .62);padding:5px 10px;font-size:13.5px;line-height:1.7;text-decoration:none;display:block}.lesson-toc__list a:hover{color:var(--ink)}.lesson-toc__list a.is-active{color:var(--accent-text);border-inline-start-color:var(--accent);font-weight:700}.lesson-toc__sub a{padding-inline-start:22px;font-size:13px}.lesson-toc--mobile{border:1px solid rgb(var(--ink-rgb) / .12);border-radius:14px;margin:0 0 24px;padding:4px 14px;display:none}.lesson-toc--mobile summary{cursor:pointer;padding:10px 0;font-weight:700}.lesson-toc--mobile .lesson-toc__list{padding-bottom:12px}.phase-nav__progress{color:var(--accent-text);font-weight:700}.phase-nav__list{flex-direction:column;gap:2px;list-style:none;display:flex}.phase-nav__link{color:rgb(var(--ink-rgb) / .7);border-radius:10px;align-items:baseline;gap:10px;padding:6px 8px;font-size:13.5px;line-height:1.7;text-decoration:none;display:flex}.phase-nav__link:hover{background:rgb(var(--ink-rgb) / .05);color:var(--ink)}.phase-nav__link.is-current{background:rgb(var(--ink-rgb) / .07);color:var(--ink);font-weight:700}.phase-nav__num{min-width:22px;color:rgb(var(--ink-rgb) / .62);flex:none;font-size:12px;font-weight:800}.phase-nav__link.is-read .phase-nav__num{color:var(--accent-text)}.phase-nav__draft{color:#9a6a00;font-size:11px}.lesson-seg{display:contents}.lesson-body :is(h2,h3){scroll-margin-top:96px}.lesson-body :not(pre)>code{direction:ltr;unicode-bidi:isolate}.lesson-body math{direction:ltr;font-size:1.05em}.lesson-body math[display=block]{display:block math;margin:1.2em 0;padding:4px 0;overflow-x:auto}.lesson-body .katex:has(>math:not([display=block])){vertical-align:middle;direction:ltr;max-width:100%;display:inline-block;overflow:auto hidden}.lesson-body .lesson-intro{color:rgb(var(--ink-rgb) / .86);font-size:1.04em}.lesson-body .table-wrap{-webkit-overflow-scrolling:touch;margin:1.4em 0;overflow-x:auto}.lesson-body .table-wrap table{min-width:100%;margin:0;display:table}.code-block{margin:1.4em 0;position:relative}.code-block pre{margin:0}.code-copy{background:rgb(var(--paper-rgb) / .14);color:var(--paper);font:inherit;cursor:pointer;border:0;border-radius:12px 0 10px;padding:3px 12px;font-size:12px;font-weight:700;position:absolute;top:0;left:0}.code-copy:hover{background:rgb(var(--paper-rgb) / .26)}.lesson-body pre .code-fa{font-family:var(--font-iranyekan), system-ui, sans-serif}.lesson-box{border:1px solid rgb(var(--ink-rgb) / .12);background:rgb(var(--ink-rgb) / .025);border-radius:14px;margin:1.4em 0;padding:16px 20px}.lesson-box>:last-child{margin-bottom:0}.lesson-box>:is(h2,h3):first-child{margin-top:0}.lesson-box--goals{border-color:rgb(var(--accent-rgb) / .35);background:rgb(var(--accent-rgb) / .04)}details.lesson-box>summary{cursor:pointer;font-weight:700}details.lesson-box[open]>summary{margin-bottom:10px}.lesson-fig{border:1px solid rgb(var(--ink-rgb) / .12);background:rgb(var(--paper-rgb) / .7);--ink-soft:rgb(var(--ink-rgb) / .72);--ink-mute:rgb(var(--ink-rgb) / .5);--rule-soft:rgb(var(--ink-rgb) / .16);--blueprint:var(--accent);--bg:var(--paper);--bg-surface:rgb(var(--ink-rgb) / .05);--warn:#b8870f;--font-mono:var(--font-iranyekan), system-ui, sans-serif;border-radius:16px;margin:1.8em 0;overflow:hidden}.lesson-fig__head{border-bottom:1px solid rgb(var(--ink-rgb) / .1);flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding:10px 16px;font-size:13px;display:flex}.lesson-fig__label{color:var(--accent-text);font-weight:800}.lesson-fig__sub{color:rgb(var(--ink-rgb) / .62)}.lesson-fig__svg{direction:ltr;padding:12px}.lesson-fig__svg svg{width:100%;height:auto;max-height:560px;display:block}.lesson-fig__svg--wide{-webkit-overflow-scrolling:touch;overflow-x:auto}.lesson-fig__svg--wide svg{min-width:var(--fig-min);max-height:none}.lesson-fig .lesson-fig__cap{border-top:1px solid rgb(var(--ink-rgb) / .1);color:rgb(var(--ink-rgb) / .75);text-align:start;margin:0;padding:12px 16px 14px;font-size:14.5px;line-height:1.95}.lesson-quiz,.lesson-faq,.lesson-related{margin-top:clamp(40px,6vh,64px)}.lesson-quiz h2,.lesson-faq h2,.lesson-related h2{margin-bottom:14px;font-size:clamp(21px,2.4vw,27px);font-weight:700}.lesson-quiz__intro{color:rgb(var(--ink-rgb) / .65);margin-bottom:16px}.lesson-quiz__list{flex-direction:column;gap:14px;list-style:none;display:flex}.lesson-quiz__q fieldset{border:1px solid rgb(var(--ink-rgb) / .12);border-radius:14px;min-width:0;padding:16px 18px}.lesson-quiz__q legend{margin-bottom:12px;padding:0;font-weight:700;line-height:1.8}.lesson-quiz__stage{color:var(--accent-text);margin-inline-end:8px;font-size:11.5px;font-weight:800;display:inline-block}.lesson-quiz__options{flex-direction:column;gap:8px;display:flex}.lesson-quiz__opt{text-align:start;border:1px solid rgb(var(--ink-rgb) / .14);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:10px 14px;font-size:15px;line-height:1.8}.lesson-quiz__opt:hover:not(:disabled){border-color:rgb(var(--ink-rgb) / .35)}.lesson-quiz__opt:disabled{cursor:default}.lesson-quiz__opt.is-correct{background:#2e7d4f14;border-color:#2e7d4f}.lesson-quiz__opt.is-wrong{border-color:var(--accent);background:rgb(var(--accent-rgb) / .07)}.lesson-quiz__explain{color:rgb(var(--ink-rgb) / .78);margin-top:12px;font-size:14.5px;line-height:1.9}.lesson-quiz__explain.is-correct strong{color:#2e7d4f}.lesson-quiz__explain.is-wrong strong{color:var(--accent-text)}.lesson-quiz__reset{border:1px solid rgb(var(--ink-rgb) / .2);font:inherit;cursor:pointer;background:0 0;border-radius:100px;margin-top:14px;padding:8px 18px;font-size:14px}.lesson-faq__item{border-bottom:1px solid rgb(var(--ink-rgb) / .1);padding:14px 0}.lesson-faq__item summary{cursor:pointer;font-weight:700;line-height:1.8}.lesson-faq__item p{color:rgb(var(--ink-rgb) / .78);margin-top:10px;line-height:2}.read-mark{margin-top:clamp(32px,5vh,48px)}.read-mark__btn{border:1px solid rgb(var(--ink-rgb) / .2);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:100px;padding:10px 20px;font-size:14px;font-weight:600}.read-mark__btn.is-read{border-color:rgb(var(--accent-rgb) / .45);color:var(--accent-text)}.lesson-pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:clamp(28px,4vh,40px);display:grid}.lesson-pager__link{border:1px solid rgb(var(--ink-rgb) / .12);color:inherit;border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;display:flex}.lesson-pager__link:hover{border-color:rgb(var(--accent-rgb) / .5)}.lesson-pager__link--next{text-align:end}.lesson-pager__dir{color:rgb(var(--ink-rgb) / .62);font-size:12.5px;font-weight:700}.lesson-pager__title{font-weight:700;line-height:1.7}.lesson-related ul{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;list-style:none;display:grid}.lesson-related a{border:1px solid rgb(var(--ink-rgb) / .1);height:100%;color:inherit;border-radius:14px;flex-direction:column;gap:4px;padding:14px 16px;font-weight:700;line-height:1.7;text-decoration:none;display:flex}.lesson-related a:hover{border-color:rgb(var(--accent-rgb) / .5)}.lesson-related__meta{color:rgb(var(--ink-rgb) / .62);font-size:12px;font-weight:600}.lesson-cta{background:var(--ink);color:var(--paper);border-radius:18px;margin-top:clamp(40px,6vh,64px);padding:clamp(20px,3vw,30px)}.lesson-cta p{color:rgb(var(--paper-rgb) / .78);line-height:1.95}.lesson-cta__title{color:var(--paper);margin-bottom:6px;font-size:19px;font-weight:700}.lesson-cta__btn{background:var(--accent);color:#fff;border-radius:100px;margin-top:14px;padding:11px 22px;font-size:14.5px;font-weight:700;text-decoration:none;display:inline-block}.lesson-cta__btn:hover{background:var(--accent-press)}.lesson-attribution{color:rgb(var(--ink-rgb) / .62);margin-top:28px;font-size:13px;line-height:1.95}.lesson-attribution a{color:inherit;text-underline-offset:3px;text-decoration:underline}.lesson-preview-bar{color:#6b4a00;background:#e0a52429;border-radius:12px;max-width:1220px;margin:0 auto 16px;padding:10px 16px;font-size:14px;font-weight:600}.lesson-preview-bar a{color:inherit}.glossary-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.glossary-item{border:1px solid rgb(var(--ink-rgb) / .1);border-radius:14px;padding:16px 18px;scroll-margin-top:100px}.glossary-item:target{border-color:var(--accent)}.glossary-item dt{flex-wrap:wrap;justify-content:space-between;gap:6px;display:flex}.glossary-item dt:not(:last-child){margin-bottom:6px}.glossary-item__fa{font-size:17px;font-weight:800}.glossary-item__en{color:rgb(var(--ink-rgb) / .62);font-size:14px}.glossary-item dd{color:rgb(var(--ink-rgb) / .75);font-size:14.5px;line-height:1.9}.glossary-item__note{color:rgb(var(--ink-rgb) / .62);margin-top:6px;font-size:13px}.glossary-search{max-width:620px;margin-top:26px}.glossary-search__results{border:1px solid rgb(var(--ink-rgb) / .12);background:#fff;border-radius:16px;margin-top:10px;padding:6px}.glossary-search__results ul{margin:0;padding:0;list-style:none}.glossary-search__item{color:var(--ink);border-radius:11px;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:11px 14px;text-decoration:none;display:flex}.glossary-search__item:hover{background:rgb(var(--ink-rgb) / .05)}.glossary-search__item strong{font-weight:700}.glossary-search__item span{color:rgb(var(--ink-rgb) / .62);font-size:14px}.glossary-letters__title{margin-bottom:16px;font-size:20px;font-weight:800}.glossary-letters{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.glossary-letter{border:1px solid rgb(var(--ink-rgb) / .12);color:var(--ink);border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;text-decoration:none;transition:border-color .2s,background-color .2s;display:flex}.glossary-letter:hover{border-color:var(--accent)}.glossary-letter[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.glossary-letter__char{font-size:24px;font-weight:800;line-height:1.3}.glossary-letter__count{color:rgb(var(--ink-rgb) / .62);font-size:12.5px}.glossary-letters--compact{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;margin-top:24px}.glossary-letters--compact .glossary-letter{border-radius:10px;padding:8px 4px}.glossary-letters--compact .glossary-letter__char{font-size:17px}.glossary-pager{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:32px;display:flex}@media (max-width:1024px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-aside{max-height:none;position:static;overflow:visible}.lesson-toc--desktop{display:none}.lesson-toc--mobile{display:block}.lesson-article{max-width:none}}@media (max-width:640px){.lesson-pager{grid-template-columns:1fr}.lesson-pager__link--next{text-align:start}.lesson-meta{gap:6px 18px}.phase-lesson{gap:12px;padding:14px}}.course-hero--hub{grid-template-columns:minmax(0,1fr) 330px;align-items:center;gap:clamp(28px,4vw,64px);display:grid}.course-main>.course-hero--hub,.course-main>.course-roadmap{max-width:1240px}.course-hero__text{min-width:0}.course-hero--hub .course-hero__title{font-size:clamp(30px,3.9vw,52px)}.course-hero--hub .course-hero__actions{margin-top:22px}.course-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:100px;align-items:center;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:700;line-height:1.6;text-decoration:none;transition:background-color .2s,border-color .2s,transform .2s;display:inline-flex}.course-btn:hover{transform:translateY(-1px)}.course-btn--primary{background:var(--accent);color:#fff}.course-btn--primary:hover{background:var(--accent-press)}.course-btn--ghost{color:var(--ink);border:1px solid rgb(var(--ink-rgb) / .2)}.course-btn--ghost:hover{border-color:rgb(var(--ink-rgb) / .45)}.course-card{background:radial-gradient(120% 120% at 100% 0%, rgb(var(--accent-rgb) / .22), transparent 55%), var(--ink);color:var(--paper);border-radius:22px;padding:clamp(22px,3vw,30px)}.course-card__stats{grid-template-columns:1fr 1fr;gap:18px 16px;display:grid}.course-card__stats div{flex-direction:column-reverse;gap:2px;display:flex}.course-card__stats dd{color:var(--paper);font-size:clamp(24px,2.6vw,34px);font-weight:800;line-height:1.2}.course-card__stats dt{color:rgb(var(--paper-rgb) / .6);font-size:13px}.course-card__audience{border-top:1px solid rgb(var(--paper-rgb) / .14);color:rgb(var(--paper-rgb) / .78);margin-top:22px;padding-top:18px;font-size:14px;line-height:1.95}.course-card__audience strong{color:var(--accent-2);margin-bottom:4px;font-size:12.5px;display:block}.course-card__note{color:rgb(var(--paper-rgb) / .55);margin-top:12px;font-size:12.5px;line-height:1.9}@media (max-width:1024px){.course-hero--hub{grid-template-columns:minmax(0,1fr)}.course-card__stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:560px){.course-card__stats{grid-template-columns:1fr 1fr}}.roadmap{--rm-gap:14px;position:relative}.rm-toolbar{background:rgb(var(--ink-rgb) / .05);border-radius:100px;gap:4px;margin-bottom:clamp(18px,3vh,28px);padding:4px;display:inline-flex}.rm-toolbar button{font:inherit;color:rgb(var(--ink-rgb) / .6);cursor:pointer;background:0 0;border:0;border-radius:100px;padding:8px 18px;font-size:13.5px;font-weight:700}.rm-toolbar button.is-active{background:var(--ink);color:var(--paper)}.rm-rows,.rm-track,.rm-tiles{list-style:none}.rm-rows{position:relative}.rm-rows:before{content:"";top:24px;bottom:24px;background:linear-gradient(rgb(var(--accent-rgb) / .5), rgb(var(--ink-rgb) / .12));width:2px;position:absolute;inset-inline-start:19px}.rm-row{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:20px;padding-block:16px;display:grid;position:relative}.rm-row+.rm-row{border-top:1px dashed rgb(var(--ink-rgb) / .1)}.rm-row__stage{align-items:flex-start;gap:12px;padding-top:4px;display:flex}.rm-row__num{z-index:1;background:var(--accent);color:#fff;width:40px;height:40px;box-shadow:0 0 0 5px var(--paper);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid;position:relative}.rm-row__text{flex-direction:column;gap:2px;min-width:0;display:flex}.rm-row__title{font-size:17px;font-weight:800;line-height:1.5}.rm-row__sub{color:rgb(var(--ink-rgb) / .62);font-size:12.5px;line-height:1.8}.rm-track{gap:var(--rm-gap);display:flex}.rm-station{flex:0 0 calc((100% - 3 * var(--rm-gap)) / 4);min-width:0;padding-top:24px;position:relative}.rm-station__node{top:0;background:var(--paper);border:3px solid rgb(var(--ink-rgb) / .22);z-index:1;border-radius:50%;width:14px;height:14px;transition:transform .45s cubic-bezier(.34,1.56,.64,1);position:absolute;inset-inline-start:16px}.rm-station:not(:last-child):after{content:"";top:6px;width:calc(100% + var(--rm-gap) - 14px);background:rgb(var(--ink-rgb) / .14);transform-origin:100%;height:2px;transition:transform .6s;position:absolute;inset-inline-start:30px}.rm-station.is-open .rm-station__node{border-color:var(--accent)}.rm-station.is-open:not(:last-child):after{background:rgb(var(--accent-rgb) / .45)}.rm-station.is-done .rm-station__node{background:var(--accent);border-color:var(--accent)}.rm-station.is-current .rm-station__node:after{content:"";border:2px solid rgb(var(--accent-rgb) / .5);border-radius:50%;animation:1.8s ease-out infinite rm-pulse;position:absolute;inset:-8px}@keyframes rm-pulse{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.7)}}.rm-station__link{border:1px solid rgb(var(--ink-rgb) / .1);height:100%;color:inherit;background:#fff;border-radius:14px;flex-direction:column;gap:3px;padding:12px 14px 14px;text-decoration:none;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s,border-color .2s,box-shadow .2s;display:flex;position:relative}a.rm-station__link:hover{border-color:rgb(var(--accent-rgb) / .5);box-shadow:0 12px 28px rgb(var(--ink-rgb) / .08)}.rm-station.is-soon .rm-station__link{opacity:.6;background:0 0;border-style:dashed}.rm-station.is-current .rm-station__link{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .08)}.rm-station__num{color:var(--accent-text);font-size:20px;font-weight:800;line-height:1.1}.rm-station.is-soon .rm-station__num{color:rgb(var(--ink-rgb) / .35)}.rm-station__title{font-size:15px;font-weight:800;line-height:1.6}.rm-station__meta{color:rgb(var(--ink-rgb) / .62);margin-top:auto;font-size:12px}.rm-station__badge{top:10px;background:var(--accent);color:#fff;border-radius:100px;padding:3px 9px;font-size:11px;font-weight:800;position:absolute;inset-inline-end:10px}.rm-station__bar{background:rgb(var(--ink-rgb) / .07);border-radius:3px;height:3px;margin-top:6px;display:block;overflow:hidden}.rm-station__bar span{background:var(--accent);border-radius:3px;height:100%;transition:width .8s;display:block}.roadmap.is-animated .rm-row:not(.is-in) .rm-station__link{opacity:0;transform:translateY(14px)}.roadmap.is-animated .rm-row:not(.is-in) .rm-station__node{transform:scale(0)}.roadmap.is-animated .rm-row:not(.is-in) .rm-station:after{transform:scaleX(0)}.roadmap.is-animated .rm-row:not(.is-in) .rm-row__num{opacity:0;transform:scale(.4)}.roadmap.is-animated .rm-row__num{transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .3s}.roadmap.is-animated .rm-station__link,.roadmap.is-animated .rm-station__node,.roadmap.is-animated .rm-station:after{transition-delay:calc(var(--i,0) * 90ms + .12s)}.rm-tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.rm-tile__link{border:1px solid rgb(var(--ink-rgb) / .1);height:100%;color:inherit;background:#fff;border-radius:16px;flex-direction:column;gap:6px;padding:18px;text-decoration:none;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s,border-color .2s;display:flex;position:relative}a.rm-tile__link:hover{border-color:rgb(var(--accent-rgb) / .5);transform:translateY(-2px)}.rm-tile.is-soon .rm-tile__link{opacity:.6;background:0 0;border-style:dashed}.rm-tile.is-current .rm-tile__link{border-color:var(--accent)}.rm-tile__top{align-items:center;gap:8px;display:flex}.rm-tile__top .rm-station__badge{position:static}.rm-tile__num{color:var(--accent-text);font-size:22px;font-weight:800}.rm-tile.is-soon .rm-tile__num{color:rgb(var(--ink-rgb) / .35)}.rm-tile__title{font-size:17px;font-weight:800;line-height:1.55}.rm-tile__tagline{color:rgb(var(--ink-rgb) / .6);flex:1;font-size:13.5px;line-height:1.85}.rm-tile__meta{color:rgb(var(--ink-rgb) / .62);font-size:12px}.roadmap.is-animated .rm-tile:not(.is-in) .rm-tile__link{opacity:0;transform:translateY(12px)}@media (max-width:1024px){.rm-rows:before{display:none}.rm-row{grid-template-columns:minmax(0,1fr);gap:12px}.rm-track{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rm-station{padding-top:0}.rm-station:after,.rm-station__node{display:none}}@media (max-width:560px){.rm-track{grid-template-columns:minmax(0,1fr);gap:8px}.rm-station__link{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px;padding:10px 14px;display:grid}.rm-station__num{grid-row:span 2;font-size:22px}.rm-station__meta{margin-top:0}.rm-station__bar{grid-column:1/-1}.rm-row__title{font-size:16px}}.course-roadmap__lead{color:rgb(var(--ink-rgb) / .62);margin:-8px 0 clamp(28px,4vh,44px);font-size:15.5px;line-height:1.9}.course-main>.course-trailer{max-width:1240px}.trailer{border:1px solid rgb(var(--ink-rgb) / .1);background:rgb(var(--ink-rgb) / .025);border-radius:26px;grid-template-columns:minmax(0,560px) minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,52px);padding:clamp(14px,2vw,20px);display:grid}.trailer__frame{background:var(--ink);aspect-ratio:16/9;box-shadow:0 18px 44px rgb(var(--ink-rgb) / .16);border-radius:18px;position:relative;overflow:hidden}.trailer__video{object-fit:contain;background:var(--ink);width:100%;height:100%;display:block}.trailer__play{background:linear-gradient(180deg, transparent 40%, rgb(var(--ink-rgb) / .35));cursor:pointer;border:0;place-items:center;display:grid;position:absolute;inset:0}.trailer__play span{background:var(--accent);color:#fff;width:68px;height:68px;box-shadow:0 10px 30px rgb(var(--accent-rgb) / .45);border-radius:50%;place-items:center;padding-inline-start:4px;font-size:22px;transition:transform .2s;display:grid}.trailer__play:hover span,.trailer__play:focus-visible span{transform:scale(1.08)}.trailer__text{min-width:0}.trailer__title{margin:4px 0 10px;font-size:clamp(22px,2.4vw,30px);font-weight:800;line-height:1.5}.trailer__lead{color:rgb(var(--ink-rgb) / .68);margin:0 0 18px;font-size:15.5px;line-height:1.9}.trailer__actions{flex-wrap:wrap;gap:10px;display:flex}@media (max-width:860px){.trailer{grid-template-columns:minmax(0,1fr)}}.sheet-filter{max-width:620px;margin-bottom:22px;display:block}.sheet-filter input{width:100%;font:inherit;border:1px solid rgb(var(--ink-rgb) / .16);color:var(--ink);background:#fff;border-radius:14px;padding:13px 18px;font-size:16px}.sheet-filter input:focus{outline:2px solid var(--accent);outline-offset:1px}.sheet-tiles{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;list-style:none;display:grid}.sheet-tile{border:1px solid rgb(var(--ink-rgb) / .1);height:100%;color:inherit;background:#fff;border-radius:18px;align-items:flex-start;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.sheet-tile:hover{border-color:rgb(var(--accent-rgb) / .45);box-shadow:0 10px 30px rgb(var(--ink-rgb) / .06);transform:translateY(-2px)}.sheet-tile:hover .sheet-tile__code{background:var(--accent)}.sheet-tile__code,.sheet-badge{background:var(--ink);width:46px;height:46px;color:var(--paper);letter-spacing:.03em;border-radius:12px;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.sheet-tile__body{flex-direction:column;gap:4px;min-width:0;display:flex}.sheet-tile__body strong{font-size:16.5px;line-height:1.6}.sheet-tile__en{color:rgb(var(--ink-rgb) / .55);text-align:right;font-size:12.5px}.sheet-tile__sub{color:rgb(var(--ink-rgb) / .68);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.85;display:-webkit-box;overflow:hidden}.sheet-empty{color:rgb(var(--ink-rgb) / .62)}.sheet-head{align-items:center;gap:18px;display:flex}.sheet-badge{background:var(--accent);border-radius:18px;width:64px;height:64px;font-size:21px}.sheet-head__eyebrow{color:var(--accent-text,var(--accent));margin-bottom:2px;font-size:13px;font-weight:800}.sheet-head__title{font-size:clamp(26px,3.4vw,38px);font-weight:800;line-height:1.4}.sheet-head__en{color:rgb(var(--ink-rgb) / .55);text-align:right;font-size:14px}.sheet-head__sub{color:rgb(var(--ink-rgb) / .78);margin-top:18px;font-size:17px;line-height:2}.sheet-meta{flex-wrap:wrap;gap:8px;margin:18px 0 8px;list-style:none;display:flex}.sheet-meta li{background:rgb(var(--ink-rgb) / .05);color:rgb(var(--ink-rgb) / .72);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}.sheet{margin-top:26px}.sheet-sec{border-top:1px solid rgb(var(--ink-rgb) / .1);padding:30px 0;scroll-margin-top:96px}.sheet-sec__head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.sheet-sec__num{color:rgb(var(--ink-rgb) / .4);font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:800}.sheet-sec__head h2{flex:1;font-size:clamp(19px,2.1vw,22px);font-weight:800;line-height:1.6}.sheet-sec__type{color:rgb(var(--ink-rgb) / .6);border:1px solid rgb(var(--ink-rgb) / .14);border-radius:999px;flex:none;padding:2px 10px;font-size:12px;font-weight:700}.sheet-code{background:rgb(var(--ink-rgb) / .06);white-space:nowrap;direction:ltr;unicode-bidi:isolate;border-radius:6px;padding:2px 7px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em}.sheet-code i{color:var(--accent-text,var(--accent));font-style:normal;font-weight:700}.sheet-table{border:1px solid rgb(var(--ink-rgb) / .1);-webkit-overflow-scrolling:touch;background:#fff;border-radius:14px;overflow-x:auto}.sheet-table table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.85}.sheet-table th{text-align:right;color:rgb(var(--ink-rgb) / .62);background:rgb(var(--ink-rgb) / .035);white-space:nowrap;padding:10px 16px;font-size:12.5px;font-weight:800}.sheet-table td{border-top:1px solid rgb(var(--ink-rgb) / .07);vertical-align:top;padding:11px 16px}.sheet-table td.is-code{white-space:nowrap}.sheet-table--comparison td:first-child,.sheet-table--defaults td:first-child{font-weight:700}.sheet-pre{background:#151518;border-radius:14px;position:relative;overflow:hidden}.sheet-pre__lang{letter-spacing:.04em;color:#8f8b80;text-transform:uppercase;font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:700;position:absolute;top:10px;left:14px}.sheet-pre pre{color:#ece9df;text-align:left;white-space:pre;margin:0;padding:34px 20px 18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.8;overflow-x:auto}.sheet-pre__cmt{color:#8f8b80}.sheet-pre__cmt .code-fa{font-family:var(--font-iranyekan), sans-serif;color:#b3ae9f}.sheet-arch{border:1px solid rgb(var(--ink-rgb) / .1);color:rgb(var(--ink-rgb) / .5);background:#fff;border-radius:14px;padding:18px;overflow-x:auto}.sheet-arch svg{max-width:100%;height:auto;margin-inline:auto;font-family:inherit;display:block}.sheet-arch__edge line{stroke:currentColor;stroke-width:1.5px}.sheet-arch__edge rect{fill:var(--paper);stroke:rgb(var(--ink-rgb) / .1)}.sheet-arch__edge text{fill:rgb(var(--ink-rgb) / .7);text-anchor:middle;font-size:11px}.sheet-arch__node rect{fill:var(--paper);stroke:rgb(var(--ink-rgb) / .55);stroke-width:1.4px}.sheet-arch__node.is-model rect,.sheet-arch__node.is-gpu rect{fill:rgb(var(--accent-rgb) / .06);stroke:var(--accent)}.sheet-arch__node.is-store rect,.sheet-arch__node.is-queue rect{stroke-dasharray:5 4}.sheet-arch__label{fill:var(--ink);text-anchor:middle;font-size:14px;font-weight:800}.sheet-arch__detail{fill:rgb(var(--ink-rgb) / .62);text-anchor:middle;font-size:11.5px}.sheet-steps{counter-reset:s;gap:0;list-style:none;display:grid}.sheet-steps li{counter-increment:s;flex-direction:column;gap:2px;padding:0 44px 18px 0;font-size:15px;line-height:1.9;display:flex;position:relative}.sheet-steps li:before{content:counter(s);background:var(--ink);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid;position:absolute;top:0;right:0}.sheet-steps li:not(:last-child):after{content:"";background:rgb(var(--ink-rgb) / .18);width:1px;position:absolute;top:32px;bottom:4px;right:13.5px}.sheet-steps__actor{font-weight:800}.sheet-terms{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.sheet-terms>div{border:1px solid rgb(var(--ink-rgb) / .09);background:#fff;border-radius:14px;padding:14px 16px}.sheet-terms dt{margin-bottom:4px;font-size:15px;font-weight:800}.sheet-terms dd{color:rgb(var(--ink-rgb) / .72);font-size:14px;line-height:1.85}.sheet-qa{gap:0;display:grid}.sheet-qa>div{border-top:1px dashed rgb(var(--ink-rgb) / .12);padding:14px 0}.sheet-qa>div:first-child{border-top:0;padding-top:0}.sheet-qa dt{margin-bottom:4px;font-size:15.5px;font-weight:800}.sheet-qa dd{color:rgb(var(--ink-rgb) / .75);font-size:15px;line-height:1.9}.sheet-tips{gap:10px;list-style:none;display:grid}.sheet-tips li{padding-right:30px;font-size:15px;line-height:1.9;position:relative}.sheet-tips li:before{content:"✓";background:rgb(var(--accent-rgb) / .12);width:20px;height:20px;color:var(--accent);border-radius:50%;place-items:center;margin-top:4px;font-size:12px;font-weight:800;display:grid;position:absolute;top:0;right:0}.sheet-troubles{gap:12px;list-style:none;display:grid}.sheet-troubles li{border:1px solid rgb(var(--ink-rgb) / .1);border-inline-start:3px solid var(--accent);background:#fff;border-radius:14px;padding:16px 18px}.sheet-troubles__symptom{margin-bottom:8px;font-size:15.5px;font-weight:800;line-height:1.8}.sheet-troubles dl{gap:4px;font-size:14.5px;line-height:1.85;display:grid}.sheet-troubles dl>div{grid-template-columns:56px 1fr;gap:8px;display:grid}.sheet-troubles dt{color:rgb(var(--ink-rgb) / .55);padding-top:2px;font-size:13px;font-weight:700}.sheet-troubles dd{color:rgb(var(--ink-rgb) / .82)}.lesson-sheets ul{flex-wrap:wrap;gap:10px;list-style:none;display:flex}.lesson-sheets a{border:1px solid rgb(var(--ink-rgb) / .12);color:inherit;background:#fff;border-radius:12px;align-items:center;gap:10px;padding:8px 14px 8px 10px;font-size:14.5px;font-weight:700;text-decoration:none;display:inline-flex}.lesson-sheets a:hover{border-color:rgb(var(--ink-rgb) / .25)}.lesson-sheets .sheet-tile__code{border-radius:8px;width:30px;height:30px;font-size:11.5px}@media (max-width:640px){.sheet-head{align-items:flex-start}.sheet-badge{border-radius:14px;width:52px;height:52px;font-size:17px}.sheet-sec{padding:24px 0}.sheet-sec__type{display:none}.sheet-arch{padding:12px}.sheet-arch svg{width:620px;max-width:none}.sheet-table td,.sheet-table th{padding:9px 12px}}@media print{.site-header,.site-footer,.lesson-aside,.lesson-related,.lesson-attribution,.lesson-crumbs,.lesson-toc{display:none!important}.lesson-layout{display:block}.sheet-sec{break-inside:avoid}}.path-section__lead{color:rgb(var(--ink-rgb) / .7);margin:-8px 0 18px;line-height:1.9}.path-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;list-style:none;display:grid}.path-card{border:1px solid rgb(var(--ink-rgb) / .1);background:#fff;border-radius:18px;flex-direction:column;gap:6px;height:100%;padding:20px 22px;transition:border-color .2s,transform .2s;display:flex}.path-card:hover{border-color:rgb(var(--accent-rgb) / .5);transform:translateY(-2px)}.path-card__title{font-size:18px;line-height:1.6}.path-card__en{color:rgb(var(--ink-rgb) / .55);text-align:right;font-size:12.5px}.path-card__summary{color:rgb(var(--ink-rgb) / .75);flex:1;font-size:14.5px;line-height:1.9}.path-card__meta{color:var(--accent);font-size:13px;font-weight:700}.path-hero__en{color:rgb(var(--ink-rgb) / .55);text-align:right;margin-top:4px;font-size:14px}.path-stats{flex-wrap:wrap;gap:10px;margin-top:18px;list-style:none;display:flex}.path-stats li{border:1px solid rgb(var(--ink-rgb) / .1);background:#fff;border-radius:999px;padding:8px 16px;font-size:14px}.path-stats strong{font-weight:800}.path-question{border-inline-start:4px solid var(--accent);background:rgb(var(--accent-rgb) / .06);border-radius:10px;max-width:820px;margin-top:18px;padding:14px 18px;font-size:16px;line-height:1.9}.path-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.path-box{border:1px solid rgb(var(--ink-rgb) / .1);background:#fff;border-radius:18px;padding:22px 24px}.path-box h2{margin-bottom:12px;font-size:19px;font-weight:800}.path-box p{line-height:1.95}.path-box--soft{background:rgb(var(--ink-rgb) / .03)}.path-box--accent{border-color:rgb(var(--accent-rgb) / .45);box-shadow:6px 6px 0 rgb(var(--accent-rgb) / .85)}.path-list{gap:6px;padding-right:20px;font-size:15px;line-height:1.9;display:grid}.path-list li::marker{color:var(--accent)}.path-list--check{padding-right:0;list-style:none}.path-list--check li{padding-right:28px;position:relative}.path-list--check li:before{content:"✓";color:var(--accent);font-weight:800;position:absolute;top:0;right:0}.path-titles{color:rgb(var(--ink-rgb) / .7);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:13.5px;display:flex}.path-chip{border:1px solid rgb(var(--ink-rgb) / .15);border-radius:999px;padding:2px 10px;font-size:12.5px}.path-quick{margin-top:12px;font-size:14.5px}.path-quick a{color:var(--accent);font-weight:700}.path-stages{counter-reset:st;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;list-style:none;display:grid}.path-stages li{counter-increment:st;border:1px solid rgb(var(--ink-rgb) / .1);background:#fff;border-radius:18px;padding:52px 20px 18px;position:relative}.path-stages li:before{content:counter(st);background:var(--ink);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid;position:absolute;top:16px;right:20px}.path-stages h3{margin-bottom:6px;font-size:17px;font-weight:800}.path-stages p{color:rgb(var(--ink-rgb) / .78);font-size:14.5px;line-height:1.9}.path-stage__artifact{margin-top:6px;font-size:13.5px!important}.path-stage__meta{margin-top:8px;font-weight:700;color:var(--accent)!important;font-size:13px!important}.path-subtitle{margin:26px 0 12px;font-size:17px;font-weight:800}.path-note{color:rgb(var(--ink-rgb) / .62);max-width:860px;margin-top:14px;font-size:14px;line-height:1.9}.path-cov{margin:12px 0 6px;font-size:13px;font-weight:800}.path-cov--strong{color:#1d7a3a}.path-cov--partial{color:#b06a00}.path-cov--out{color:rgb(var(--ink-rgb) / .55)}.path-card{color:inherit;text-decoration:none}
