:root{--brand-lavender-50:#f2eefd;--brand-lavender-100:#e2d9fa;--brand-lavender-200:#c7b7f2;--brand-lavender-300:#aa94ea;--brand-lavender-400:#9278e2;--brand-lavender-500:#7b5cd9;--brand-lavender-600:#6748c7;--brand-lavender-700:#5639b0;--brand-lavender-800:#4a2ea0;--brand-lavender-900:#382279;--brand-amber-50:#fff5d7;--brand-amber-100:#fcefcb;--brand-amber-200:#f8dfa0;--brand-amber-300:#f4cb68;--brand-amber-400:#f2be45;--brand-amber-500:#f0b428;--brand-amber-600:#d89a10;--brand-amber-700:#b77c00;--brand-amber-800:#8f6400;--brand-amber-900:#6b4d08;--brand-magenta-50:#fdeaf2;--brand-magenta-100:#fad2e3;--brand-magenta-200:#f4a6c8;--brand-magenta-300:#ed78aa;--brand-magenta-400:#e94691;--brand-magenta-500:#dc1464;--brand-magenta-600:#bf0f56;--brand-magenta-700:#9d0b47;--brand-magenta-800:#790838;--brand-magenta-900:#5a062a;--ink-50:#f0edf7;--ink-100:#e5e0f0;--ink-200:#c5bee0;--ink-300:#a89bcf;--ink-400:#8a79be;--ink-500:#6e5f9c;--ink-600:#57477f;--ink-700:#3c2864;--ink-800:#261f40;--ink-900:#1a1530;--neutral-0:#ffffff;--neutral-50:#faf9fd;--neutral-100:#f2f0f8;--neutral-200:#eceaf4;--neutral-300:#e8e5f0;--neutral-400:#d8d4e4;--neutral-500:#a8a4b8;--neutral-600:#6e6890;--neutral-700:#4a4270;--neutral-800:#2f294a;--neutral-900:#14102a;--neutral-1000:#0c081f;--state-green-50:#eaf7ef;--state-green-100:#dceedf;--state-green-200:#bfe0c6;--state-green-300:#8bc99a;--state-green-400:#41a95d;--state-green-500:#00712e;--state-green-600:#006329;--state-green-700:#005322;--state-green-800:#00461c;--state-green-900:#003816;--state-amber-50:var(--brand-amber-50);--state-amber-100:var(--brand-amber-100);--state-amber-200:var(--brand-amber-200);--state-amber-300:var(--brand-amber-300);--state-amber-400:var(--brand-amber-400);--state-amber-500:var(--brand-amber-500);--state-amber-600:var(--brand-amber-600);--state-amber-700:var(--brand-amber-700);--state-amber-800:var(--brand-amber-800);--state-amber-900:var(--brand-amber-900);--state-red-50:#fcecec;--state-red-100:#fce4e4;--state-red-200:#f6c4c4;--state-red-300:#e69a9a;--state-red-400:#d95c5c;--state-red-500:#b22020;--state-red-600:#9e1a1a;--state-red-700:#7a1414;--state-red-800:#641010;--state-red-900:#4f0d0d;--state-blue-50:#edf4fe;--state-blue-100:#dce8f8;--state-blue-200:#bfd4f0;--state-blue-300:#90b5e5;--state-blue-400:#5f8fd4;--state-blue-500:#2864b4;--state-blue-600:#1f559d;--state-blue-700:#174783;--state-blue-800:#163e72;--state-blue-900:#11305b;--font-sans:"Golos Text","Segoe UI",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.06em;--sp-0:0;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-9:36px;--sp-10:40px;--sp-11:44px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;--fs-display:clamp(40px,5vw,64px);--fs-h1:clamp(28px,3.5vw,40px);--fs-h2:clamp(22px,2.5vw,30px);--fs-h3:20px;--fs-h4:18px;--fs-body-lg:17px;--fs-body:15px;--fs-sm:13px;--fs-xs:11px;--fs-2xs:10px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.65;--icon-xs:12px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:32px;--avatar-xs:20px;--avatar-sm:28px;--avatar-md:36px;--avatar-lg:48px;--avatar-xl:64px;--radius-none:0;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-3xl:32px;--radius-pill:9999px;--radius-circle:50%;--border-w-sm:1px;--border-w-md:2px;--border-w-lg:3px;--border-w-xl:4px;--shadow-none:none;--shadow-sm:0 1px 3px rgba(26,21,48,0.06);--shadow-md:0 1px 4px rgba(26,21,48,0.06),0 0 0 1px rgba(26,21,48,0.04);--shadow-lg:0 4px 16px rgba(26,21,48,0.08);--shadow-xl:0 8px 32px rgba(26,21,48,0.14);--shadow-popover:0 8px 24px rgba(26,21,48,0.12),0 0 0 1px rgba(26,21,48,0.06);--shadow-modal:0 24px 80px rgba(26,21,48,0.24),0 0 0 1px rgba(26,21,48,0.08);--duration-instant:80ms;--duration-fast:120ms;--duration-base:200ms;--duration-slow:380ms;--duration-slower:520ms;--ease-linear:linear;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--opacity-disabled:0.48;--opacity-hover-overlay:0.08;--opacity-scrim:0.56;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--bp-2xl:1536px;--color-action:var(--brand-lavender-500);--color-action-hover:var(--brand-lavender-600);--color-action-active:var(--brand-lavender-700);--color-action-soft:var(--brand-lavender-50);--color-action-soft-hover:var(--brand-lavender-100);--color-action-strong:var(--brand-lavender-800);--color-action-disabled:var(--neutral-300);--color-accent:var(--brand-amber-500);--color-accent-hover:var(--brand-amber-600);--color-accent-active:var(--brand-amber-700);--color-accent-soft:var(--brand-amber-50);--color-accent-strong:var(--brand-amber-900);--color-accent-secondary:var(--brand-magenta-500);--color-ink:var(--ink-900);--color-ink-hover:var(--ink-800);--color-ink-active:var(--ink-700);--color-ink-soft:var(--ink-50);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-700);--text-muted:var(--neutral-600);--text-subtle:var(--neutral-500);--text-disabled:var(--neutral-400);--text-placeholder:color-mix(in srgb,var(--neutral-500) 84%,var(--neutral-0));--text-on-action:var(--neutral-0);--text-on-accent:var(--neutral-900);--text-on-ink:var(--neutral-0);--text-inverse:var(--neutral-0);--text-code:var(--color-action-strong);--surface-page:var(--neutral-0);--surface-1:var(--neutral-50);--surface-2:var(--neutral-100);--surface-3:var(--neutral-300);--surface-4:var(--neutral-400);--surface-overlay:rgba(26,21,48,0.56);--surface-inverse:var(--ink-900);--surface-disabled:var(--neutral-50);--surface-hover:color-mix(in srgb,var(--text-primary) 4%,transparent);--surface-selected:var(--brand-lavender-50);--surface-code:var(--surface-2);--border-subtle:var(--neutral-200);--border-default:var(--neutral-400);--border-strong:var(--neutral-500);--border-inverse:rgba(255,255,255,0.2);--border-focus:var(--color-action);--state-success:var(--state-green-500);--state-success-hover:var(--state-green-600);--state-success-active:var(--state-green-700);--state-success-bg:var(--state-green-100);--state-success-bg-strong:var(--state-green-200);--state-success-text:var(--state-green-800);--state-success-border:var(--state-green-300);--state-warning:var(--state-amber-700);--state-warning-hover:var(--state-amber-800);--state-warning-active:var(--state-amber-900);--state-warning-bg:var(--state-amber-100);--state-warning-bg-strong:var(--state-amber-200);--state-warning-text:var(--state-amber-900);--state-warning-border:var(--state-amber-300);--state-error:var(--state-red-500);--state-error-hover:var(--state-red-600);--state-error-active:var(--state-red-700);--state-error-bg:var(--state-red-100);--state-error-bg-strong:var(--state-red-200);--state-error-text:var(--state-red-700);--state-error-border:var(--state-red-300);--state-info:var(--state-blue-500);--state-info-hover:var(--state-blue-600);--state-info-active:var(--state-blue-700);--state-info-bg:var(--state-blue-100);--state-info-bg-strong:var(--state-blue-200);--state-info-text:var(--state-blue-800);--state-info-border:var(--state-blue-300);--focus-ring-color:rgba(123,92,217,0.3);--focus-ring-width:3px;--focus-ring-offset:2px;--shadow-focus:0 0 0 var(--focus-ring-width) var(--focus-ring-color);--surface-selection:var(--brand-lavender-100);--text-link:var(--color-action);--text-link-hover:var(--color-action-hover);--text-link-active:var(--color-action-active);--control-h-xs:24px;--control-h-sm:28px;--control-h-md:36px;--control-h-lg:44px;--control-h-xl:52px;--control-px-xs:var(--sp-2);--control-px-sm:10px;--control-px-md:14px;--control-px-lg:18px;--control-px-xl:var(--sp-6);--control-py-xs:var(--sp-1);--control-py-sm:6px;--control-py-md:10px;--control-py-lg:var(--sp-3);--control-py-xl:14px;--control-gap-sm:var(--sp-1);--control-gap-md:var(--sp-2);--control-gap-lg:var(--sp-3);--control-border-w:var(--border-w-sm);--container-xs:360px;--container-sm:560px;--container-md:720px;--container-lg:960px;--container-xl:1200px;--header-h:64px;--sidebar-w:280px;--gutter:24px;--pad-x:clamp(16px,4vw,48px);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-popover:300;--z-overlay:400;--z-modal:500;--z-toast:600;--z-tooltip:700;--z-skip-link:800;--aspect-square:1/1;--aspect-video:16/9;--aspect-card:4/3;--scrollbar-w:10px;--scrollbar-thumb:var(--neutral-400);--scrollbar-thumb-hover:var(--neutral-500);--scrollbar-track:transparent;--backdrop-blur:8px;--hover-lift:-2px;--press-scale:0.98}@custom-media --bp-sm (min-width: 480px);@custom-media --bp-md (min-width: 768px);@custom-media --bp-lg (min-width: 1024px);@custom-media --bp-xl (min-width: 1280px);@custom-media --bp-2xl (min-width: 1536px);@custom-media --bp-sm-down (max-width: 479.98px);@custom-media --bp-md-down (max-width: 767.98px);@custom-media --bp-lg-down (max-width: 1023.98px);@custom-media --bp-xl-down (max-width: 1279.98px);:root,[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark;--color-action:var(--brand-lavender-300);--color-action-hover:var(--brand-lavender-200);--color-action-active:var(--brand-lavender-100);--color-action-soft:rgba(170,148,234,0.16);--color-action-soft-hover:rgba(170,148,234,0.24);--color-action-strong:var(--brand-lavender-100);--color-action-disabled:var(--neutral-800);--color-accent:var(--brand-amber-300);--color-accent-hover:var(--brand-amber-200);--color-accent-active:var(--brand-amber-100);--color-accent-soft:rgba(244,203,104,0.16);--color-accent-strong:var(--brand-amber-100);--color-ink:var(--neutral-0);--color-ink-hover:var(--neutral-100);--color-ink-active:var(--neutral-200);--color-ink-soft:rgba(255,255,255,0.08);--text-primary:var(--neutral-50);--text-secondary:var(--neutral-300);--text-muted:var(--neutral-400);--text-subtle:var(--neutral-500);--text-disabled:var(--neutral-600);--text-placeholder:var(--neutral-500);--text-on-action:var(--neutral-900);--text-on-accent:var(--neutral-900);--text-on-ink:var(--neutral-900);--text-inverse:var(--neutral-900);--text-code:var(--brand-lavender-100);--text-link:var(--color-action);--text-link-hover:var(--color-action-hover);--text-link-active:var(--color-action-active);--surface-page:#070707;--surface-1:#101010;--surface-2:#181818;--surface-3:#242424;--surface-4:#303030;--surface-overlay:rgba(0,0,0,0.72);--surface-inverse:var(--neutral-0);--surface-disabled:color-mix(in srgb,var(--neutral-800) 72%,transparent);--surface-hover:rgba(255,255,255,0.08);--surface-selected:rgba(170,148,234,0.18);--surface-code:rgba(255,255,255,0.08);--surface-selection:rgba(170,148,234,0.36);--border-subtle:rgba(255,255,255,0.1);--border-default:rgba(255,255,255,0.18);--border-strong:rgba(255,255,255,0.28);--border-inverse:rgba(20,16,42,0.2);--border-focus:var(--color-action);--state-success:var(--state-green-300);--state-success-hover:var(--state-green-200);--state-success-active:var(--state-green-100);--state-success-bg:color-mix(in srgb,var(--state-green-300) 16%,transparent);--state-success-bg-strong:color-mix(in srgb,var(--state-green-300) 24%,transparent);--state-success-text:var(--state-green-100);--state-success-border:color-mix(in srgb,var(--state-green-300) 44%,transparent);--state-warning:var(--state-amber-300);--state-warning-hover:var(--state-amber-200);--state-warning-active:var(--state-amber-100);--state-warning-bg:color-mix(in srgb,var(--state-amber-300) 16%,transparent);--state-warning-bg-strong:color-mix(in srgb,var(--state-amber-300) 24%,transparent);--state-warning-text:var(--state-amber-100);--state-warning-border:color-mix(in srgb,var(--state-amber-300) 44%,transparent);--state-error:var(--state-red-300);--state-error-hover:var(--state-red-200);--state-error-active:var(--state-red-100);--state-error-bg:color-mix(in srgb,var(--state-red-300) 16%,transparent);--state-error-bg-strong:color-mix(in srgb,var(--state-red-300) 24%,transparent);--state-error-text:var(--state-red-100);--state-error-border:color-mix(in srgb,var(--state-red-300) 44%,transparent);--state-info:var(--state-blue-300);--state-info-hover:var(--state-blue-200);--state-info-active:var(--state-blue-100);--state-info-bg:color-mix(in srgb,var(--state-blue-300) 16%,transparent);--state-info-bg-strong:color-mix(in srgb,var(--state-blue-300) 24%,transparent);--state-info-text:var(--state-blue-100);--state-info-border:color-mix(in srgb,var(--state-blue-300) 44%,transparent);--focus-ring-color:rgba(170,148,234,0.44);--scrollbar-thumb:var(--neutral-600);--scrollbar-thumb-hover:var(--neutral-500);--scrollbar-track:transparent}[data-theme=hc]{color-scheme:light;--text-primary:var(--neutral-1000);--text-secondary:var(--neutral-900);--text-muted:var(--neutral-800);--surface-page:var(--neutral-0);--surface-1:var(--neutral-0);--surface-2:var(--neutral-50);--border-subtle:var(--neutral-700);--border-default:var(--neutral-800);--border-strong:var(--neutral-900);--border-focus:var(--state-blue-700);--focus-ring-color:color-mix(in srgb,var(--state-blue-700) 55%,transparent)}[data-density=compact]{--control-h-xs:22px;--control-h-sm:26px;--control-h-md:32px;--control-h-lg:40px;--control-h-xl:48px;--control-px-xs:6px;--control-px-sm:var(--sp-2);--control-px-md:var(--sp-3);--control-px-lg:var(--sp-4);--control-px-xl:var(--sp-5);--control-py-xs:2px;--control-py-sm:var(--sp-1);--control-py-md:6px;--control-py-lg:10px;--control-py-xl:var(--sp-3);--control-gap-sm:2px;--control-gap-md:6px;--control-gap-lg:10px;--gutter:var(--sp-4)}[data-density=comfortable]{--control-h-xs:28px;--control-h-sm:32px;--control-h-md:40px;--control-h-lg:48px;--control-h-xl:56px;--control-px-xs:10px;--control-px-sm:var(--sp-3);--control-px-md:var(--sp-4);--control-px-lg:var(--sp-5);--control-px-xl:var(--sp-7);--control-py-xs:6px;--control-py-sm:var(--sp-2);--control-py-md:10px;--control-py-lg:var(--sp-4);--control-py-xl:18px;--control-gap-sm:6px;--control-gap-md:10px;--control-gap-lg:var(--sp-4);--gutter:var(--sp-8)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,:after,:before{box-sizing:border-box}@media (--bp-md-down ){:root{--header-h:56px;--gutter:16px}}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-relaxed);color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{color:var(--text-primary);background:var(--surface-selection)}.h1,h1{font-size:var(--fs-h1);line-height:var(--lh-tight)}.h1,.h2,h1,h2{font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.h2,h2{font-size:var(--fs-h2)}.h2,.h3,h2,h3{line-height:var(--lh-snug)}.h3,h3{font-size:var(--fs-h3)}.h3,.h4,h3,h4{font-weight:var(--fw-semibold)}.h4,h4{font-size:var(--fs-h4);line-height:var(--lh-normal)}p{line-height:var(--lh-relaxed)}.text-sm,small{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.mono,code,pre{font-family:var(--font-mono);font-size:var(--fs-sm)}code{color:var(--text-code);background:var(--surface-code);border-radius:var(--radius-xs);padding:.1em .35em}pre code{color:inherit;background:transparent;border-radius:0;padding:0}a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--text-link-hover)}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}*{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}::-webkit-scrollbar{width:var(--scrollbar-w);height:var(--scrollbar-w)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid transparent;border-radius:var(--radius-pill);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box}html{color-scheme:light;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans)}body{margin:0}a{color:inherit}button{font:inherit}.skip-link{position:absolute;left:var(--sp-3);top:-40px;z-index:var(--z-toast);background:var(--surface-1);color:var(--text-primary);border:var(--border-w-sm) solid var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3)}.skip-link:focus-visible{top:var(--sp-3);outline:var(--border-w-md) solid var(--border-focus);outline-offset:var(--border-w-sm)}.roadmap-shell{min-height:100vh}p{color:var(--text-muted)}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-h2);line-height:38px}h2{font-size:var(--fs-h4);line-height:26px}h3{font-size:var(--fs-body-lg);line-height:24px}.modern-roadmap-page{--roadmap-control-height:38px;--roadmap-topic-meter-size:24px;--roadmap-module-dot-size:10px;--roadmap-section-heading-gap:8px;--roadmap-topic-dot-size:16px;--roadmap-control-px:14px;--roadmap-object-py:11px;--roadmap-radius:8px;--roadmap-text-title:16px;--roadmap-text-dialog-title:18px;--roadmap-text-body:16px;--roadmap-text-topic:15px;--roadmap-text-meta:14px;--roadmap-leading-title:22px;--roadmap-leading-dialog-title:24px;--roadmap-leading-body:22px;--roadmap-leading-topic:21px;--roadmap-leading-meta:20px;min-height:100vh;width:100%;display:flex;justify-content:center;overflow-x:hidden;background:linear-gradient(180deg,#fafbfc,#ffffff 42%);color:var(--text-primary)}.modern-roadmap-container{width:min(100%,60rem);box-sizing:border-box;padding:var(--sp-4) var(--sp-3) var(--sp-7)}.modern-roadmap-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.modern-roadmap-picker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:11px}.modern-roadmap-picker-dropdown{position:relative}.modern-roadmap-picker-dropdown>summary::-webkit-details-marker{display:none}.modern-roadmap-picker-button{height:var(--roadmap-control-height);display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e8edf3;border-radius:var(--roadmap-radius);background:#ffffff;padding:0 var(--roadmap-control-px);color:#111827;font-size:var(--roadmap-text-body);font-weight:var(--fw-medium);line-height:var(--roadmap-control-height);text-decoration:none;cursor:pointer;list-style:none}.modern-roadmap-picker-button:hover,.modern-roadmap-picker-dropdown[open]>.modern-roadmap-picker-button{border-color:#d1d5db;background:#f3f4f6;color:var(--text-primary)}.modern-roadmap-picker-dropdown[open] .modern-roadmap-picker-button svg:last-child{transform:rotate(180deg)}.modern-roadmap-picker-menu{position:absolute;left:0;top:calc(100% + var(--sp-1));z-index:var(--z-dropdown);min-width:220px;max-height:320px;overflow-y:auto;border:var(--border-w-sm) solid var(--border-default);border-radius:var(--roadmap-radius);background:#ffffff;box-shadow:var(--shadow-lg);padding:var(--sp-1)}.modern-roadmap-picker-dropdown.level .modern-roadmap-picker-menu{min-width:150px}.modern-roadmap-picker-menu a{min-height:32px;display:flex;align-items:center;border-radius:var(--roadmap-radius);color:var(--text-secondary);padding:0 var(--roadmap-control-px);font-size:var(--roadmap-text-body);text-decoration:none;white-space:nowrap}.modern-roadmap-picker-menu a:hover{background:var(--surface-2);color:var(--text-primary)}.modern-roadmap-picker-menu a[aria-current=page]{background:#f5f3ff;color:#6d28d9;font-weight:var(--fw-medium)}.modern-roadmap-picker-separator{color:var(--text-muted)}.modern-roadmap-content,.modern-roadmap-hero,.modern-roadmap-module-card,.modern-roadmap-state{border:1px solid #e8edf3;border-radius:var(--roadmap-radius);background:#ffffff;box-shadow:0 1px 2px rgb(15 23 42/4%)}.modern-roadmap-hero{width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:grid;gap:var(--roadmap-section-heading-gap);padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-state{min-height:180px;display:grid;align-content:center;justify-items:center;gap:var(--sp-3);padding:var(--sp-6);text-align:center}.modern-roadmap-state svg{color:var(--color-action)}.modern-roadmap-state strong{color:var(--text-primary);font-size:var(--roadmap-text-title);line-height:var(--roadmap-leading-title)}.modern-roadmap-state span{max-width:56ch;color:var(--text-secondary);font-size:var(--roadmap-text-body);line-height:var(--roadmap-leading-body)}.modern-roadmap-loading{min-height:55vh;align-content:center;justify-content:center;border-color:transparent;background:transparent;box-shadow:none;padding:0}.modern-roadmap-hero-heading{height:var(--roadmap-topic-meter-size);flex:0 0 auto;display:inline-flex;align-items:center;gap:.35em;line-height:var(--roadmap-leading-topic);white-space:nowrap}.modern-roadmap-hero-title{flex:0 0 auto;height:100%;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--roadmap-text-topic);line-height:inherit}.modern-roadmap-hero-title svg{width:var(--roadmap-topic-meter-size);height:var(--roadmap-topic-meter-size);color:#4b5563}.modern-roadmap-hero-count{flex:0 0 auto;height:100%;display:inline-flex;align-items:center;color:var(--text-secondary);font-size:var(--roadmap-text-topic);font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:inherit}.modern-roadmap-topic-progress{width:100%;min-height:var(--roadmap-topic-meter-size);min-width:0;max-width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;overflow-x:auto;overflow-y:hidden;contain:paint;padding:0;scrollbar-width:none}.modern-roadmap-topic-progress::-webkit-scrollbar{display:none}.modern-roadmap-topic-progress-dot{--roadmap-status-glow:rgb(107 114 128/16%);appearance:none;box-sizing:border-box;width:var(--roadmap-topic-dot-size);height:var(--roadmap-topic-dot-size);flex:0 0 auto;border:1px solid #d1d5db;border-radius:50%;background:#ffffff;cursor:pointer;padding:0;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.modern-roadmap-topic-progress-dot:hover{box-shadow:0 0 0 3px var(--roadmap-status-glow);transform:translateY(-1px)}.modern-roadmap-topic-progress-dot:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:2px}.modern-roadmap-topic-progress-dot.is-completed{--roadmap-status-glow:rgb(16 185 129/20%);border:1px solid #10b981;background:#10b981}.modern-roadmap-topic-progress-dot.is-in-progress{--roadmap-status-glow:rgb(59 130 246/20%);border:1px solid #3b82f6;background:#ffffff}.modern-roadmap-topic-progress-dot.is-available{--roadmap-status-glow:rgb(245 158 11/22%);border:1px solid #f59e0b}.modern-roadmap-topic-progress-dot.is-locked{--roadmap-status-glow:rgb(156 163 175/18%);background:#f3f4f6}.modern-roadmap-module-card.is-roadmap-highlighted,.modern-roadmap-topic-row.is-roadmap-highlighted{--roadmap-highlight-border:#f59e0b;--roadmap-highlight-ring:rgb(245 158 11/18%);--roadmap-highlight-bg:#fffbeb;animation:roadmap-target-flash 1.2s ease-out}.modern-roadmap-module-card.is-completed.is-roadmap-highlighted,.modern-roadmap-topic-row.is-completed.is-roadmap-highlighted{--roadmap-highlight-border:#10b981;--roadmap-highlight-ring:rgb(16 185 129/18%);--roadmap-highlight-bg:#ecfdf5}.modern-roadmap-module-card.is-in-progress.is-roadmap-highlighted,.modern-roadmap-topic-row.is-in-progress.is-roadmap-highlighted{--roadmap-highlight-border:#3b82f6;--roadmap-highlight-ring:rgb(59 130 246/18%);--roadmap-highlight-bg:#eff6ff}.modern-roadmap-module-card.is-locked.is-roadmap-highlighted,.modern-roadmap-topic-row.is-locked.is-roadmap-highlighted{--roadmap-highlight-border:#9ca3af;--roadmap-highlight-ring:rgb(156 163 175/18%);--roadmap-highlight-bg:#f9fafb}@keyframes roadmap-target-flash{0%,55%{border-color:var(--roadmap-highlight-border);box-shadow:0 0 0 4px var(--roadmap-highlight-ring);background:var(--roadmap-highlight-bg)}to{box-shadow:none}}.modern-roadmap-loading .spinner-status{display:inline-flex}.modern-roadmap-loading-label{color:var(--text-secondary);font-size:var(--roadmap-text-body)}.modern-roadmap-content{min-width:0;display:grid;gap:12px;margin-top:10px;background:transparent;border-color:transparent;box-shadow:none}.modern-roadmap-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.modern-roadmap-mode-tabs{width:fit-content;min-width:0;max-width:100%;background:#f3f4f6;padding:2px;overflow-x:auto}.modern-roadmap-mode-tab,.modern-roadmap-mode-tabs{display:inline-flex;border-radius:var(--roadmap-radius)}.modern-roadmap-mode-tab{height:var(--roadmap-control-height);align-items:center;gap:6px;color:#4b5563;padding:0 var(--roadmap-control-px);font-size:var(--roadmap-text-body);font-weight:var(--fw-medium);line-height:var(--roadmap-control-height);text-decoration:none;white-space:nowrap}.modern-roadmap-mode-tab[aria-current=page]{background:#ffffff;color:#111827;box-shadow:0 1px 1px rgb(15 23 42/7%)}.modern-roadmap-context-filter{position:relative;flex:0 0 auto}.modern-roadmap-context-filter>summary{height:var(--roadmap-control-height);display:inline-flex;align-items:center;gap:6px;border:1px solid #e8edf3;border-radius:var(--roadmap-radius);background:#ffffff;color:#4b5563;padding:0 var(--roadmap-control-px);font-size:var(--roadmap-text-body);font-weight:var(--fw-medium);line-height:var(--roadmap-control-height);cursor:pointer;list-style:none;white-space:nowrap}.modern-roadmap-context-filter>summary::-webkit-details-marker{display:none}.modern-roadmap-context-filter>summary:hover,.modern-roadmap-context-filter[open]>summary{border-color:#d1d5db;background:#f9fafb;color:#111827}.modern-roadmap-context-filter[open]>summary svg:last-child{transform:rotate(180deg)}.modern-roadmap-context-filter>div{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-dropdown);min-width:132px;border:1px solid #e8edf3;border-radius:var(--roadmap-radius);background:#ffffff;box-shadow:0 10px 24px rgb(15 23 42/10%);padding:4px}.modern-roadmap-context-filter a{min-height:34px;display:flex;align-items:center;border-radius:var(--roadmap-radius);color:#4b5563;padding:0 var(--roadmap-control-px);font-size:var(--roadmap-text-body);text-decoration:none}.modern-roadmap-context-filter a:hover{background:#f9fafb;color:#111827}.modern-roadmap-context-filter a[aria-current=page]{background:#f5f3ff;color:#6d28d9}.modern-roadmap-module-nav-frame{box-sizing:border-box;display:grid;gap:var(--roadmap-section-heading-gap);min-width:0;border:var(--border-w-sm) solid var(--border-subtle);border-radius:var(--roadmap-radius);background:var(--surface-page);box-shadow:var(--shadow-sm);padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-module-nav-heading{justify-self:start}.modern-roadmap-module-nav-body{position:relative;min-width:0}.modern-roadmap-module-nav{--visible-module-chips:6;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--visible-module-chips) - 1) * var(--sp-2)) / var(--visible-module-chips));gap:var(--sp-2);overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity;scrollbar-width:none}.modern-roadmap-module-nav::-webkit-scrollbar{display:none}.modern-roadmap-module-nav-body:after,.modern-roadmap-module-nav-body:before{content:"";position:absolute;top:0;bottom:2px;z-index:1;width:28px;display:none;pointer-events:none}.modern-roadmap-module-nav-body:before{left:0;background:linear-gradient(90deg,var(--surface-page),transparent)}.modern-roadmap-module-nav-body:after{right:0;background:linear-gradient(270deg,var(--surface-page),transparent)}.modern-roadmap-module-nav-frame[data-roadmap-scroll-end=false] .modern-roadmap-module-nav-body:after,.modern-roadmap-module-nav-frame[data-roadmap-scroll-start=false] .modern-roadmap-module-nav-body:before{display:block}.modern-roadmap-module-nav-arrow{position:absolute;top:50%;z-index:3;width:30px;height:30px;display:grid;place-items:center;border:var(--border-w-sm) solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-page);color:var(--text-muted);box-shadow:var(--shadow-sm);cursor:pointer;padding:0;touch-action:manipulation;transform:translateY(-50%)}.modern-roadmap-module-nav-arrow[hidden]{display:none}.modern-roadmap-module-nav-arrow:hover{border-color:var(--border-default);background:var(--surface-1);color:var(--text-primary)}.modern-roadmap-module-nav-arrow:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:2px}.modern-roadmap-module-nav-arrow.left{left:0}.modern-roadmap-module-nav-arrow.right{right:0}.modern-roadmap-module-nav-arrow svg{width:16px;height:16px;stroke-width:2}.modern-roadmap-module-chip{border:var(--border-w-sm) solid var(--border-subtle);border-radius:var(--roadmap-radius);background:var(--surface-page);color:var(--text-secondary);font:inherit;text-decoration:none;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.modern-roadmap-module-chip:hover{border-color:var(--border-default);background:var(--surface-1)}.modern-roadmap-module-chip.is-in-progress{border-color:#3b82f6;background:var(--surface-page);box-shadow:none}.modern-roadmap-module-chip.is-in-progress:hover{border-color:#3b82f6;background:var(--surface-1)}.modern-roadmap-module-chip:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:2px}.modern-roadmap-module-chip{display:grid;gap:2px;padding:var(--roadmap-object-py) var(--roadmap-control-px);scroll-snap-align:start}.modern-roadmap-module-chip span{color:var(--text-primary);font-size:var(--roadmap-text-body);overflow:hidden;text-overflow:ellipsis;line-height:var(--roadmap-leading-body);white-space:nowrap}.modern-roadmap-module-chip small{color:var(--text-muted);font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta)}.modern-roadmap-module-chip small.is-completed{color:var(--state-success-text)}.modern-roadmap-module-chip.is-completed,.modern-roadmap-module-chip.is-completed:hover{border-color:#10b981}.modern-roadmap-module-chip.is-available,.modern-roadmap-module-chip.is-available:hover{border-color:#f59e0b}.modern-roadmap-module-stack,.modern-roadmap-topic-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}.modern-roadmap-module-card{width:100%;min-width:0;box-sizing:border-box;overflow:hidden;scroll-margin-top:var(--sp-5)}.modern-roadmap-module-summary{list-style:none;cursor:pointer}.modern-roadmap-module-summary::-webkit-details-marker{display:none}.modern-roadmap-module-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:var(--roadmap-object-py) var(--roadmap-control-px);transition:background var(--duration-fast) var(--ease-out)}.modern-roadmap-module-summary:hover{background:#f9fafb}.modern-roadmap-module-status-dot{box-sizing:border-box;width:var(--roadmap-module-dot-size);height:var(--roadmap-module-dot-size);border:1px solid #d1d5db;border-radius:50%;background:#ffffff}.modern-roadmap-module-card.is-completed .modern-roadmap-module-status-dot{border:1px solid #10b981;background:#10b981}.modern-roadmap-module-card.is-in-progress .modern-roadmap-module-status-dot{border:1px solid #3b82f6;background:#ffffff}.modern-roadmap-module-card.is-available .modern-roadmap-module-status-dot{border:1px solid #f59e0b;background:#ffffff}.modern-roadmap-module-title{min-width:0;overflow:hidden}.modern-roadmap-module-title>span:first-child{display:flex;align-items:center;gap:var(--sp-2);color:#111827;font-size:var(--roadmap-text-title);line-height:var(--roadmap-leading-title);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-roadmap-module-meta{display:inline-flex;align-items:center;color:#4b5563;font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.modern-roadmap-module-card.is-completed .modern-roadmap-module-meta{color:#047857}.modern-roadmap-module-card[open]>.modern-roadmap-module-summary>svg{transform:rotate(180deg)}.modern-roadmap-module-summary>svg{color:#8b95a5;transition:transform var(--duration-fast) var(--ease-out)}.modern-roadmap-topic-list{box-sizing:border-box;border-top:1px solid #f1f4f8;background:rgb(249 250 251/56%);padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-topic-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0}.modern-roadmap-topic-row{position:relative;width:100%;box-sizing:border-box;min-height:37px;display:flex;align-items:center;gap:9px;border:1px solid #e8edf3;border-radius:var(--roadmap-radius);background:#ffffff;padding:var(--roadmap-object-py) var(--roadmap-control-px) var(--roadmap-object-py) 18px;color:#111827;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.modern-roadmap-topic-row:hover{border-color:#d1d5db;background:#f9fafb}.modern-roadmap-topic-row:disabled{cursor:not-allowed;opacity:.56}.modern-roadmap-topic-row-stripe{position:absolute;inset:6px auto 6px 6px;width:3px;border-radius:var(--radius-pill);background:#d1d5db}.modern-roadmap-topic-row.is-completed .modern-roadmap-topic-row-stripe{background:#10b981}.modern-roadmap-topic-row.is-in-progress .modern-roadmap-topic-row-stripe{background:#3b82f6}.modern-roadmap-topic-row.is-available .modern-roadmap-topic-row-stripe{background:#f59e0b}.modern-roadmap-topic-row-main{flex:1 1 auto;align-self:center;min-width:0;display:grid;gap:2px}.modern-roadmap-topic-row-title{min-width:0;display:flex;align-items:center;gap:var(--sp-2)}.modern-roadmap-topic-row-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--roadmap-text-topic);line-height:var(--roadmap-leading-topic);font-weight:400}.modern-roadmap-topic-row-state{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;color:#7c8797;font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta)}.modern-roadmap-topic-row.is-completed .modern-roadmap-topic-row-state{color:#047857}.modern-roadmap-topic-row.is-in-progress .modern-roadmap-topic-row-state{color:#1d4ed8}.modern-roadmap-topic-row.is-available .modern-roadmap-topic-row-state{min-height:28px;display:inline-flex;align-items:center;border:1px solid rgb(245 158 11/34%);border-radius:var(--roadmap-radius);background:#fffbeb;color:#b45309;padding:0 var(--sp-2);font-weight:var(--fw-medium);line-height:26px}.modern-roadmap-topic-row.is-available:hover .modern-roadmap-topic-row-state{border-color:rgb(245 158 11/52%);background:#fef3c7}.modern-roadmap-dialog-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgb(15 23 42/34%);padding:var(--sp-4)}.modern-roadmap-dialog{width:min(100%,31rem);max-height:min(90vh,42rem);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--roadmap-radius);background:#ffffff;box-shadow:0 20px 48px rgb(15 23 42/18%)}.modern-roadmap-dialog-header{display:flex;align-items:center;gap:var(--sp-3);border-bottom:1px solid #f1f4f8;padding:12px 16px}.modern-roadmap-dialog-header>div{flex:1 1 auto;min-width:0;min-height:30px;display:flex;align-items:center}.modern-roadmap-dialog-header h3{min-width:0;min-height:30px;display:flex;align-items:center;color:#111827;font-size:var(--roadmap-text-dialog-title);line-height:var(--roadmap-leading-dialog-title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-roadmap-dialog-header button{width:30px;height:30px;display:inline-grid;place-items:center;border:0;border-radius:var(--roadmap-radius);background:transparent;color:#6b7280;cursor:pointer}.modern-roadmap-dialog-header button:hover{background:#f3f4f6}.modern-roadmap-dialog-body{overflow-y:auto;padding:6px 16px 12px}.modern-roadmap-dialog-body>p{padding:6px 0;color:#6b7280;font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta)}.modern-roadmap-dialog-session{min-height:40px;display:flex;align-items:center;gap:var(--sp-2);border-bottom:1px solid #f1f4f8;padding:9px 0}.modern-roadmap-dialog-session:last-child{border-bottom:0}.modern-roadmap-dialog-session-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:var(--roadmap-radius);background:#f5f6f8;color:#4b5563}.modern-roadmap-dialog-session-main{flex:1 1 auto;min-width:0;display:grid;gap:0}.modern-roadmap-dialog-session-main strong{min-width:0;overflow:hidden;color:#111827;font-size:var(--roadmap-text-body);line-height:19px;font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap}.modern-roadmap-dialog-session-main small{min-width:0;overflow:hidden;color:#6b7280;font-size:var(--roadmap-text-meta);line-height:17px;text-overflow:ellipsis;white-space:nowrap}.modern-roadmap-dialog-session-side{flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-2)}.modern-roadmap-dialog-session-side>svg{color:#10b981}.modern-roadmap-dialog-session-side a,.modern-roadmap-dialog-session-side>span:not(.modern-roadmap-dialog-badge){min-height:26px;display:inline-flex;align-items:center;border:1px solid #d1d5db;border-radius:var(--roadmap-radius);color:#111827;padding:0 10px;font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta);text-decoration:none}.modern-roadmap-dialog-badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-pill);padding:2px 7px;font-size:var(--roadmap-text-meta);line-height:var(--roadmap-leading-meta)}.modern-roadmap-dialog-badge.completed{background:#ecfdf5;color:#047857}.modern-roadmap-dialog-badge.enrolled{background:#eff6ff;color:#1d4ed8}.modern-roadmap-dialog-badge.past{background:#f3f4f6;color:#4b5563}.modern-roadmap-dialog-session-side a.modern-roadmap-dialog-details-link{min-height:auto;border:0;border-radius:0;background:transparent;color:#4b5563;padding:0;font-weight:var(--fw-medium);line-height:var(--roadmap-leading-meta)}.modern-roadmap-dialog-session-side a.modern-roadmap-dialog-details-link:hover{color:#111827;text-decoration:underline}.modern-roadmap-dialog-empty{min-height:96px;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);color:#6b7280;font-size:var(--roadmap-text-body);line-height:var(--roadmap-leading-body)}@media (min-width:981px){.modern-roadmap-container{padding:var(--sp-5) var(--sp-5) var(--sp-8)}}@media (max-width:980px){.modern-roadmap-module-nav{--visible-module-chips:4}}@media (max-width:640px){html{overflow-y:scroll;scrollbar-gutter:stable both-edges}.modern-roadmap-container{padding-left:12px;padding-right:12px}.modern-roadmap-controls{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);justify-items:start}.modern-roadmap-module-nav{--visible-module-chips:2.6}.modern-roadmap-hero{padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-topic-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(30px,1fr));justify-items:center;gap:4px 2px;overflow:visible}.modern-roadmap-mode-tabs{width:fit-content;min-width:0;max-width:100%;scrollbar-width:none}.modern-roadmap-mode-tabs::-webkit-scrollbar{display:none}.modern-roadmap-context-filter{min-width:0}.modern-roadmap-module-summary{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"status title icon" "status meta icon";column-gap:9px;row-gap:2px;padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-module-status-dot{grid-area:status;align-self:start;margin-top:5px}.modern-roadmap-module-title{grid-area:title}.modern-roadmap-module-title>span:first-child{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.modern-roadmap-module-meta{grid-area:meta;justify-self:start;margin-top:0}.modern-roadmap-module-summary>svg{grid-area:icon}.modern-roadmap-module-nav-arrow{width:36px;height:36px}.modern-roadmap-module-chip{gap:0}.modern-roadmap-topic-progress-dot{position:relative;width:30px;height:30px;border:0;background:transparent}.modern-roadmap-topic-progress-dot:hover{box-shadow:none;transform:none}.modern-roadmap-topic-progress-dot:before{content:"";position:absolute;left:50%;top:50%;box-sizing:border-box;width:14px;height:14px;border:1px solid #d1d5db;border-radius:50%;background:#ffffff;transform:translate(-50%,-50%);transition:box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.modern-roadmap-topic-progress-dot:hover:before{box-shadow:0 0 0 2px var(--roadmap-status-glow);transform:translate(-50%,-50%) translateY(-1px)}.modern-roadmap-topic-progress-dot:active:before{transform:translate(-50%,-50%) scale(1.12)}.modern-roadmap-topic-progress-dot.is-available,.modern-roadmap-topic-progress-dot.is-completed,.modern-roadmap-topic-progress-dot.is-in-progress,.modern-roadmap-topic-progress-dot.is-locked{border:0;background:transparent}.modern-roadmap-topic-progress-dot.is-completed:before{border-color:#10b981;background:#10b981}.modern-roadmap-topic-progress-dot.is-in-progress:before{border-color:#3b82f6;background:#ffffff}.modern-roadmap-topic-progress-dot.is-available:before{border-color:#f59e0b;background:#ffffff}.modern-roadmap-topic-progress-dot.is-locked:before{background:#f3f4f6}.modern-roadmap-topic-list{padding:var(--roadmap-object-py) var(--roadmap-control-px)}.modern-roadmap-topic-row-title{display:grid;gap:2px}.modern-roadmap-topic-row-title>span{white-space:normal}.modern-roadmap-dialog-backdrop{align-items:center;justify-content:center;padding:var(--sp-3)}.modern-roadmap-dialog{width:min(100%,430px);max-height:calc(100vh - var(--sp-6));border-radius:var(--roadmap-radius)}}