:root{--cf-color-tangerine:#f6821f;--cf-color-mango:#fbad41;--cf-color-canvas:#fafafa;--cf-color-surface:#fff;--cf-color-surface-active:#f4f4f4;--cf-color-ink:#1b1b1b;--cf-color-ink-muted:#4b5563;--cf-color-ink-subtle:#71717a;--cf-color-border:#e5e5e5;--cf-color-border-strong:#d1d5db;--cf-color-diagram-blue:#3e74ff;--cf-color-status-success:#57cf7d;--cf-color-status-danger:#fc3d2e;--cf-color-status-warning:#ffd43c;--cf-font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--cf-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--cf-font-weight-regular:400;--cf-font-weight-medium:500;--cf-font-weight-semibold:600;--cf-font-heading-weight:600;--cf-font-heading-tracking:-.02em;--cf-font-body-tracking:0;--cf-space-xs:4px;--cf-space-sm:8px;--cf-space-md:16px;--cf-space-lg:24px;--cf-space-xl:32px;--cf-space-2xl:48px;--cf-space-3xl:64px;--cf-radius-xs:4px;--cf-radius-sm:6px;--cf-radius-md:8px;--cf-radius-lg:12px;--cf-radius-pill:999px;--cf-shadow-overlay:0 1px 2px #1010100f}*,:before,:after{box-sizing:border-box}body{background:var(--cf-color-canvas);min-height:100vh;color:var(--cf-color-ink);font-family:var(--cf-font-sans);letter-spacing:var(--cf-font-body-tracking);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.7}h1,h2,h3,h4,h5,h6{color:var(--cf-color-ink);line-height:1.2;font-weight:var(--cf-font-heading-weight);margin:0}h1,h2{letter-spacing:var(--cf-font-heading-tracking)}h3,h4{letter-spacing:-.01em}p{margin:0}a{color:var(--cf-color-ink);text-underline-offset:3px;text-decoration:underline}a:hover,a:focus-visible{color:var(--cf-color-ink)}.inline-code-text__code{padding-inline:var(--cf-space-xs);background:var(--cf-color-surface-active);border-radius:var(--cf-radius-sm);font-family:var(--cf-font-mono);overflow-wrap:normal;white-space:nowrap;word-break:normal;font-size:.9em}.module-card__primary .inline-code-text__code,.progress-summary__continue a .inline-code-text__code{background:0 0;border-radius:0;padding-inline:0}:focus-visible{outline:2px solid var(--cf-color-tangerine);outline-offset:2px}button,input,select,textarea{min-height:44px;font-family:inherit;font-size:inherit}.skip-link{top:0;z-index:100;min-height:44px;padding-inline:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);align-items:center;text-decoration:none;transition:transform .15s;display:inline-flex;position:absolute;inset-inline-start:var(--cf-space-md);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.app-shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""main";min-height:100vh;display:grid}.app-shell--sidebar{grid-template-columns:260px minmax(0,1fr);grid-template-areas:"header header""sidebar main"}.app-shell--aside{grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"header header""main aside"}@media (width>=1280px){.app-shell--sidebar.app-shell--aside{grid-template-columns:260px minmax(0,1fr) 280px;grid-template-areas:"header header header""sidebar main aside"}}@media (width>=1024px) and (width<=1279px){.app-shell--sidebar.app-shell--aside{grid-template-columns:260px minmax(0,1fr);grid-template-areas:"header header""sidebar aside""sidebar main"}}@media (width<=1023px){.app-shell--sidebar{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""sidebar-toggle""main"}.app-shell--aside{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""aside-toggle""main"}.app-shell--sidebar.app-shell--aside{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""sidebar-toggle""aside-toggle""main"}.app-shell__sidebar-toggle,.app-shell__aside-toggle{min-height:44px;padding-inline:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.app-shell__sidebar-toggle{grid-area:sidebar-toggle}.app-shell__aside-toggle{grid-area:aside-toggle}.app-shell__sidebar,.app-shell__aside{display:none}.app-shell__sidebar--open{inset-inline-start:0;z-index:30;width:min(88vw,320px);padding:var(--cf-space-lg);border-inline-end:1px solid var(--cf-color-border);box-shadow:var(--cf-shadow-overlay);display:block;position:fixed;top:0;bottom:0;overflow-y:auto}.app-shell__aside--open{inset-inline-end:0;z-index:30;width:min(88vw,320px);padding:var(--cf-space-lg);border-inline-start:1px solid var(--cf-color-border);box-shadow:var(--cf-shadow-overlay);display:block;position:fixed;top:0;bottom:0;overflow-y:auto}.app-shell__close,.app-shell__aside-close{width:100%;min-height:44px;margin-bottom:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:flex}.app-shell__backdrop,.app-shell__aside-backdrop{z-index:20;background:color-mix(in srgb, var(--cf-color-ink) 40%, transparent);cursor:default;border:0;position:fixed;inset:0}}.app-header{align-items:center;gap:var(--cf-space-md);padding-block:var(--cf-space-xs);padding-inline:var(--cf-space-lg);background:var(--cf-color-surface);border-bottom:1px solid var(--cf-color-border);grid-area:header;display:flex;position:relative}.app-header__product{align-items:center;gap:var(--cf-space-sm);min-height:44px;color:var(--cf-color-ink);margin:0;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.app-header__product:before{content:"";background:var(--cf-color-tangerine);border-radius:var(--cf-radius-pill);width:2px;height:1.25em}.app-header__product:hover,.app-header__product:focus-visible{color:var(--cf-color-ink);text-underline-offset:3px;text-decoration:underline}.app-shell__sidebar{background:var(--cf-color-surface);border-inline-end:1px solid var(--cf-color-border);grid-area:sidebar}.app-shell__aside{background:var(--cf-color-surface);grid-area:aside}@media (width>=1024px){.app-shell__sidebar{max-height:100vh;padding:var(--cf-space-lg);align-self:start;position:sticky;top:0;overflow-y:auto}.app-shell__sidebar-toggle,.app-shell__close,.app-shell__backdrop,.app-shell__aside-toggle,.app-shell__aside-close,.app-shell__aside-backdrop{display:none}.app-shell__aside{max-height:100vh;padding:var(--cf-space-lg);background:var(--cf-color-surface);border-inline-start:1px solid var(--cf-color-border);align-self:start;position:sticky;top:0;overflow-y:auto}}@media (width>=1024px) and (width<=1279px){.app-shell--sidebar.app-shell--aside .app-shell__aside{border:1px solid var(--cf-color-border);border-radius:0;align-self:auto;max-height:60vh;position:static}}.lesson-sidebar{flex-direction:column;gap:0;display:flex}.lesson-sidebar__title{margin-bottom:var(--cf-space-md);font-size:1rem;font-weight:600}.lesson-sidebar__search{gap:var(--cf-space-xs);margin-bottom:var(--cf-space-md);flex-direction:column;display:flex}.lesson-sidebar__search-label{font-size:.875rem;font-weight:600}.lesson-sidebar__search-input{width:100%;min-height:44px;padding-inline:var(--cf-space-sm);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink)}.lesson-sidebar__module{border:0;border-top:1px solid var(--cf-color-border);border-radius:0}.lesson-sidebar__module:last-of-type{border-bottom:1px solid var(--cf-color-border)}.lesson-sidebar__module-summary{min-height:44px;padding:var(--cf-space-sm) var(--cf-space-md);cursor:pointer;font-weight:600}.lesson-sidebar__module-summary:hover{background:var(--cf-color-surface-active)}.lesson-sidebar__module-name-en{font-size:.875rem;font-weight:500}.lesson-sidebar__module-lessons{padding:0 0 var(--cf-space-sm);flex-direction:column;margin:0;list-style:none;display:flex}.lesson-sidebar__lesson{margin:0}.lesson-sidebar__lesson-link{min-height:44px;padding:var(--cf-space-sm) var(--cf-space-md);color:var(--cf-color-ink);align-items:center;text-decoration:none;display:flex}.lesson-sidebar__lesson-label{overflow-wrap:normal;word-break:keep-all;min-width:0}.lesson-sidebar__lesson-link .inline-code-text__code{background:0 0;border-radius:0;padding-inline:0;font-size:.85em}.lesson-sidebar__lesson-link:hover,.lesson-sidebar__lesson-link:focus-visible{background:var(--cf-color-surface-active);color:var(--cf-color-ink)}.lesson-sidebar__lesson-link[aria-current=page]{background:var(--cf-color-surface-active);border-inline-start:2px solid var(--cf-color-tangerine);color:var(--cf-color-ink);padding-inline-start:calc(var(--cf-space-md) - 2px);font-weight:600}.lesson-sidebar__glossary{min-height:44px;margin-top:var(--cf-space-md);padding:var(--cf-space-sm) var(--cf-space-md);border-block:1px solid var(--cf-color-border);color:var(--cf-color-ink);align-items:center;font-weight:600;text-decoration:none;display:flex}.lesson-sidebar__glossary:hover,.lesson-sidebar__glossary:focus-visible{background:var(--cf-color-surface-active);color:var(--cf-color-ink)}.lesson-sidebar__glossary[aria-current=page],.lesson-sidebar__glossary--selected{background:var(--cf-color-surface-active);border-inline-start:2px solid var(--cf-color-tangerine);color:var(--cf-color-ink);padding-inline-start:calc(var(--cf-space-md) - 2px);font-weight:600}.lesson-sidebar__no-results{padding:var(--cf-space-md);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);font-size:.875rem;font-weight:600}.app-shell__main{padding-inline:var(--cf-space-lg);padding-block:var(--cf-space-2xl) var(--cf-space-3xl);grid-area:main;justify-content:center;display:flex}.app-shell__main-content{width:100%}.app-shell__main-content--reader{max-width:76ch}.app-shell__main-content--wide{max-width:min(100%, calc(var(--cf-space-3xl) * 24))}.app-shell__main-content h1{font-size:clamp(1.75rem,2vw + 1rem,2.5rem);font-weight:600;line-height:1.15}.app-shell__course-total{margin-top:var(--cf-space-md);font-size:.875rem;font-weight:600}.dashboard-page__header{gap:var(--cf-space-sm);margin-bottom:var(--cf-space-lg);display:grid}.dashboard-page__introduction{max-width:72ch}.dashboard-page__gate-disclosure{border-inline-start:3px solid var(--cf-color-status-warning);margin:0;padding-inline-start:var(--cf-space-md);font-weight:600;line-height:1.6}.course-guide-disclosure{margin-top:var(--cf-space-md);border-block:1px solid var(--cf-color-border)}.course-guide-disclosure__summary{min-height:44px;padding:var(--cf-space-sm) 0;cursor:pointer;align-items:center;font-weight:600;display:flex}.course-guide-disclosure__summary:hover,.course-guide-disclosure__summary:focus-visible{background:var(--cf-color-surface-active)}.course-guide-disclosure[open] .course-guide-disclosure__summary{border-bottom:1px solid var(--cf-color-border)}.course-guide-disclosure__content{padding:var(--cf-space-md) 0;margin-top:0}.course-guide-disclosure__minor-heading{font-weight:600}.dashboard-page__modules{margin-top:var(--cf-space-xl);flex-direction:column;gap:0;display:flex}.module-card{border-block-end:1px solid var(--cf-color-border)}.module-card:first-child{border-block-start:1px solid var(--cf-color-border)}.module-card:hover{background:var(--cf-color-surface-active)}.module-card:has(.module-card__link:focus-visible){background:var(--cf-color-surface-active)}.module-card__link{column-gap:var(--cf-space-md);row-gap:var(--cf-space-xs);padding-block:var(--cf-space-md);color:var(--cf-color-ink);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sequence heading action""sequence meta action";align-items:baseline;text-decoration:none;display:grid}.module-card__sequence{color:var(--cf-color-ink-subtle);font-family:var(--cf-font-mono);grid-area:sequence;font-size:.875rem;font-weight:500}.module-card__title{align-items:baseline;gap:var(--cf-space-sm);grid-area:heading;font-size:1.25rem;font-weight:600;display:flex}.module-card__name-en{font-size:.875rem;font-weight:600}.module-card__meta{gap:var(--cf-space-xs);color:var(--cf-color-ink-muted);grid-area:meta;font-size:.875rem;font-weight:500;display:inline-flex}.module-card__primary{justify-self:end;align-items:baseline;gap:var(--cf-space-xs);color:var(--cf-color-ink);text-underline-offset:3px;white-space:nowrap;overflow-wrap:normal;word-break:keep-all;grid-area:action;font-weight:600;text-decoration:underline;display:inline-flex}.module-card__primary:after{content:"→";color:var(--cf-color-tangerine)}@media (width<=719px){.module-card__link{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"sequence heading""sequence meta""action action"}.module-card__primary{justify-self:start}}.lesson-preview__back{padding-block:var(--cf-space-sm);font-weight:600;display:inline-block}.lesson-preview__eyebrow{margin-top:var(--cf-space-xl);color:var(--cf-color-ink);font-size:.875rem;font-weight:600}.lesson-preview h1{margin-top:var(--cf-space-sm);font-size:clamp(1.75rem,2.5vw + 1rem,2.5rem)}.lesson-preview__meta{gap:var(--cf-space-sm);margin:var(--cf-space-lg) 0 0;padding:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-md);display:grid}.lesson-preview__meta-row{gap:var(--cf-space-md);grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:baseline;display:grid}.lesson-preview__meta dt{font-size:.875rem;font-weight:600}.lesson-preview__meta dd{margin:0;font-size:.875rem}.lesson-preview__notice{margin-top:var(--cf-space-md);font-size:.875rem;font-weight:600}.lesson-page__header{gap:var(--cf-space-sm);min-width:0;padding-block:var(--cf-space-md) var(--cf-space-sm);display:grid}.lesson-page__back{padding-block:var(--cf-space-sm);font-weight:600;display:inline-block}.lesson-page__eyebrow{color:var(--cf-color-ink);font-size:.875rem;font-weight:600}.lesson-page h1{font-size:clamp(1.75rem,2.5vw + 1rem,2.5rem);font-weight:600;line-height:1.2}.lesson-meta{margin:0;padding:0}.lesson-meta--strip{column-gap:var(--cf-space-md);row-gap:var(--cf-space-md);padding-block:var(--cf-space-md);border-top:1px solid var(--cf-color-border);border-bottom:1px solid var(--cf-color-border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=720px){.lesson-meta--strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.lesson-meta--strip .lesson-meta__row+.lesson-meta__row{border-inline-start:1px solid var(--cf-color-border);padding-inline-start:var(--cf-space-md)}}.lesson-meta__row{gap:var(--cf-space-xs);background:0 0;border:0;border-radius:0;min-width:0;display:grid}.lesson-meta__row[data-status=blocked] .lesson-meta__value,.lesson-meta__row[data-status=verified] .lesson-meta__value{font-weight:600}.lesson-meta__row[data-status=blocked] .lesson-meta__value:before,.lesson-meta__row[data-status=verified] .lesson-meta__value:before{content:"";width:8px;height:8px;border-radius:var(--cf-radius-pill);vertical-align:.125em;margin-inline-end:var(--cf-space-xs);display:inline-block}.lesson-meta__row[data-status=blocked] .lesson-meta__value:before{background:color-mix(in srgb, var(--cf-color-status-warning) 55%, var(--cf-color-ink))}.lesson-meta__row[data-status=verified] .lesson-meta__value:before{background:var(--cf-color-status-success)}.lesson-meta__row[data-status=blocked] .lesson-meta__value{color:var(--cf-color-ink-muted)}.lesson-meta__row[data-status=verified] .lesson-meta__value{color:color-mix(in srgb, var(--cf-color-status-success) 50%, var(--cf-color-ink))}.lesson-meta__term{color:var(--cf-color-ink-subtle);font-size:.8125rem;font-weight:500}.lesson-meta__value{overflow-wrap:anywhere;margin:0;font-size:.875rem;font-weight:500}.lesson-meta__legend{margin-top:var(--cf-space-sm);font-size:.875rem;font-weight:500}.lesson-overview{gap:var(--cf-space-lg);min-width:0;margin-top:var(--cf-space-lg);padding-block:var(--cf-space-lg);background:0 0;border:0;border-radius:0;display:grid}.lesson-overview--editorial{border-block:1px solid var(--cf-color-border)}.lesson-overview .lesson-meta{margin-top:0}.lesson-overview__verification-note{color:var(--cf-color-ink-muted);margin:0;font-size:.875rem;line-height:1.6}.lesson-overview__body{gap:var(--cf-space-lg);min-width:0;display:grid}.lesson-overview__body h2{font-size:1.25rem}.lesson-overview__outcomes{gap:var(--cf-space-sm);margin:var(--cf-space-md) 0 0;padding-inline-start:var(--cf-space-lg);display:grid}.lesson-overview__next{margin-top:var(--cf-space-md);color:var(--cf-color-ink-muted);font-size:.875rem;line-height:1.6}.lesson-overview__next strong{color:var(--cf-color-ink);font-weight:600}.lesson-overview__architecture{min-width:0;padding:var(--cf-space-sm);border:1px solid var(--cf-color-border-strong);border-radius:var(--cf-radius-md);margin:0}.lesson-overview__architecture-scroll{-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;overflow-x:auto}.lesson-overview__architecture img{object-fit:contain;width:100%;min-width:720px;height:auto;display:block}.markdown-diagram{object-fit:contain;width:100%;height:auto;display:block}.lesson-overview__scroll-hint{margin:var(--cf-space-sm) 0 0;font-size:.75rem;font-weight:600}.lesson-overview__architecture figcaption{margin-top:var(--cf-space-sm);text-align:center;font-size:.875rem;font-weight:600}.gate-banner{margin-top:var(--cf-space-lg);background:0 0;border:0;border-radius:0}.gate-banner--semantic{padding-block:var(--cf-space-lg);border-block:1px solid var(--cf-color-border)}.gate-banner--safe{border-block-color:color-mix(in srgb, var(--cf-color-status-success) 40%, var(--cf-color-border))}.gate-banner--blocked{border-block-color:color-mix(in srgb, var(--cf-color-status-warning) 55%, var(--cf-color-border))}.gate-banner__title{margin:0;font-size:1.25rem;font-weight:600}.gate-banner__safety{margin-top:var(--cf-space-md);border-inline-start:3px solid var(--cf-color-status-warning);padding-inline-start:var(--cf-space-md)}.gate-banner__safety-line{margin:0;font-weight:600;line-height:1.6}.gate-banner__safety-line+.gate-banner__safety-line{margin-top:var(--cf-space-xs)}.gate-banner__list{margin:var(--cf-space-md) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.gate-banner__gate{gap:var(--cf-space-xs);padding-block:var(--cf-space-sm);border-top:1px solid var(--cf-color-border);display:grid}.gate-banner__gate:first-child{border-top:0}.gate-banner__gate-heading{align-items:baseline;gap:var(--cf-space-sm);flex-wrap:wrap;margin:0;display:flex}.gate-banner__gate-id{font-family:var(--cf-font-mono);color:var(--cf-color-ink-muted);font-size:.875rem;font-weight:600}.gate-banner__gate-name{font-weight:600}.gate-banner__gate-status{margin:0;font-size:.875rem;font-weight:600}.gate-banner__gate[data-status=blocked] .gate-banner__gate-status{color:var(--cf-color-ink-muted)}.gate-banner__gate[data-status=verified] .gate-banner__gate-status{color:color-mix(in srgb, var(--cf-color-status-success) 50%, var(--cf-color-ink))}.gate-banner__gate-requirement{margin:0;line-height:1.7}.gate-banner__gate-meta{color:color-mix(in srgb, var(--cf-color-ink) 78%, var(--cf-color-surface));margin:0;font-size:.875rem;font-weight:500}.lesson-page__details{margin-top:var(--cf-space-lg);border:0;border-block:1px solid var(--cf-color-border);background:0 0;border-radius:0}.lesson-page__details-summary{min-height:44px;padding:var(--cf-space-sm) 0;cursor:pointer;align-items:center;font-weight:600;display:flex}.lesson-page__details-summary:hover,.lesson-page__details-summary:focus-visible{background:var(--cf-color-surface-active)}.lesson-page__details[open] .lesson-page__details-summary{border-bottom:1px solid var(--cf-color-border)}.lesson-page__details>.markdown-renderer{padding:var(--cf-space-lg) 0;margin-top:0}.markdown-diagram{margin-block:var(--cf-space-lg);padding:var(--cf-space-sm);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-md)}.markdown-renderer{margin-top:var(--cf-space-lg)}.markdown-renderer>:first-child{margin-top:0}.markdown-renderer h2{margin-top:var(--cf-space-2xl);font-size:clamp(1.375rem,1.5vw + 1rem,1.75rem);font-weight:600}.markdown-renderer h3{margin-top:var(--cf-space-xl);font-size:1.25rem;font-weight:600}.markdown-renderer h4{margin-top:var(--cf-space-lg);font-size:1.125rem;font-weight:600}.markdown-renderer :is(h2,h3,h4,h5,h6)[id]{scroll-margin-top:var(--cf-space-xl)}.markdown-renderer p{margin-top:var(--cf-space-md);line-height:1.7}.markdown-renderer :is(ul,ol){margin-top:var(--cf-space-md);padding-inline-start:var(--cf-space-lg)}.markdown-renderer li{margin-top:var(--cf-space-xs);line-height:1.7}.markdown-renderer li>p{margin-top:0}.markdown-renderer li>:is(ul,ol){margin-top:var(--cf-space-xs)}.markdown-renderer :not(pre)>code{background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);font-family:var(--cf-font-mono);padding:.125em .375em;font-size:.875em}.markdown-code{margin:var(--cf-space-md) 0 0;padding:calc(var(--cf-space-sm) + 44px + var(--cf-space-xs)) var(--cf-space-md) var(--cf-space-md);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-md);font-family:var(--cf-font-mono);font-size:.875rem;line-height:1.6;position:relative}.markdown-code code{white-space:pre;font-family:inherit;font-size:inherit;background:0 0;border:0;padding:0;display:block;overflow-x:auto}.markdown-code__copy{top:var(--cf-space-sm);min-height:44px;padding-inline:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);font-family:var(--cf-font-sans);cursor:pointer;font-size:.875rem;font-weight:600;transition:border-color .15s,color .15s;position:absolute;inset-inline-end:var(--cf-space-sm)}.markdown-code__copy:hover,.markdown-code__copy:focus-visible{border-color:var(--cf-color-tangerine);color:var(--cf-color-ink)}.markdown-code__status{top:var(--cf-space-sm);align-items:center;min-height:44px;font-size:.875rem;font-weight:600;display:inline-flex;position:absolute;inset-inline-start:var(--cf-space-sm)}.markdown-renderer table{width:max-content;max-width:100%;margin-top:var(--cf-space-md);border-collapse:collapse;font-size:.875rem;line-height:1.6;display:block;overflow-x:auto}.markdown-renderer th,.markdown-renderer td{padding:var(--cf-space-sm) var(--cf-space-md);text-align:start;vertical-align:top;border-bottom:1px solid var(--cf-color-border)}.markdown-renderer th{background:var(--cf-color-surface-active);font-weight:600}.markdown-renderer blockquote{margin:var(--cf-space-md) 0 0;padding:var(--cf-space-sm) var(--cf-space-md);background:var(--cf-color-surface-active);border-inline-start:4px solid var(--cf-color-border);border-radius:0 var(--cf-radius-sm) var(--cf-radius-sm) 0}.markdown-renderer blockquote>:first-child{margin-top:0}.markdown-renderer blockquote p{margin-top:var(--cf-space-sm)}.markdown-renderer hr{margin-block:var(--cf-space-xl);border:0;border-top:1px solid var(--cf-color-border)}.markdown-renderer details{margin-top:var(--cf-space-md);padding:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm)}.markdown-renderer details>:first-child{margin-top:0}.markdown-renderer summary{cursor:pointer;min-height:44px;font-weight:600}.markdown-unavailable__label{padding:0 var(--cf-space-sm);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-pill);vertical-align:middle;margin-inline-start:var(--cf-space-xs);font-size:.75rem;font-weight:600;display:inline-block}.section-toc__title{margin:0 0 var(--cf-space-md);font-size:1rem;font-weight:600}.section-toc__scroll-hint{margin:0 0 var(--cf-space-md);padding:var(--cf-space-sm);background:var(--cf-color-surface-active);font-size:.75rem;font-weight:600;display:none}@media (width<=1279px){.section-toc__scroll-hint{display:block}}.section-toc__list{gap:var(--cf-space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.section-toc__item{margin:0}.section-toc__item[data-level="3"]{padding-inline-start:var(--cf-space-md)}.section-toc__item[data-level="4"]{padding-inline-start:calc(var(--cf-space-md) * 2)}.section-toc__item[data-level="5"]{padding-inline-start:calc(var(--cf-space-md) * 3)}.section-toc__item[data-level="6"]{padding-inline-start:calc(var(--cf-space-md) * 4)}.section-toc__link{min-height:44px;padding-block:var(--cf-space-xs);padding-inline:var(--cf-space-sm);color:var(--cf-color-ink-muted);align-items:center;font-size:.875rem;line-height:1.5;text-decoration:none;display:flex}.section-toc__link:hover,.section-toc__link:focus-visible{background:var(--cf-color-surface-active);color:var(--cf-color-ink-muted)}.section-toc__link[aria-current=location]{background:var(--cf-color-surface-active);border-inline-start:2px solid var(--cf-color-tangerine);color:var(--cf-color-ink);padding-inline-start:calc(var(--cf-space-sm) - 2px);font-weight:600}.glossary-page{gap:var(--cf-space-md);grid-template-columns:minmax(0,1fr);grid-template-areas:"back""title""intro""search""count""results""panel";align-items:start;display:grid}.glossary-page__back{min-height:44px;padding-block:var(--cf-space-sm);grid-area:back;justify-self:start;align-items:center;font-weight:600;display:inline-flex}.glossary-page h1{grid-area:title}.glossary-page__introduction{grid-area:intro}.glossary-page__search{gap:var(--cf-space-xs);flex-direction:column;grid-area:search;display:flex}.glossary-page__search-label{font-size:.875rem;font-weight:600}.glossary-page__search-input{width:100%;min-height:44px;padding-inline:var(--cf-space-sm);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink)}.glossary-page__count{grid-area:count;font-size:.875rem;font-weight:600}.glossary-page__results{flex-direction:column;grid-area:results;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.glossary-page__result{border-bottom:1px solid var(--cf-color-border);margin:0}.glossary-page__result:last-child{border-bottom:0}.glossary-page__result-button{width:100%;min-height:44px;padding:var(--cf-space-sm) var(--cf-space-md);background:var(--cf-color-surface);color:var(--cf-color-ink);text-align:start;cursor:pointer;border:0;border-radius:0;align-items:center;transition:background-color .15s;display:flex}.glossary-page__result-button:hover,.glossary-page__result-button:focus-visible{background:var(--cf-color-surface-active);color:var(--cf-color-ink)}.glossary-page__result-button[aria-current=true],.glossary-page__result-button--selected{background:var(--cf-color-surface-active);border-inline-start:2px solid var(--cf-color-tangerine);color:var(--cf-color-ink);padding-inline-start:calc(var(--cf-space-md) - 2px);font-weight:600}.glossary-page__no-results{padding:var(--cf-space-md);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);grid-area:results/1/results/-1;font-size:.875rem;font-weight:600}.glossary-page__panel{grid-area:panel;min-width:0}@media (width>=900px){.glossary-page{column-gap:var(--cf-space-xl);grid-template-columns:minmax(0,320px) minmax(0,1fr);grid-template-areas:"back back""title title""intro intro""search search""count panel""results panel"}.glossary-page__results{max-height:60vh}}.glossary-panel{gap:var(--cf-space-md);min-width:0;padding:var(--cf-space-lg);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:0;flex-direction:column;display:flex}@media (width>=900px){.glossary-panel{position:sticky;top:0}}.glossary-panel__term{margin:0;font-size:clamp(1.375rem,1.5vw + 1rem,1.75rem);font-weight:600;line-height:1.2}.glossary-panel__definition{margin:0;line-height:1.7}.glossary-panel__aliases{gap:var(--cf-space-xs);flex-direction:column;display:flex}.glossary-panel__aliases-label{margin:0;font-size:.875rem;font-weight:600}.glossary-panel__aliases-list{gap:var(--cf-space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.glossary-panel__alias{padding:var(--cf-space-xs) var(--cf-space-sm);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);font-size:.875rem;font-weight:500}.glossary-panel__meta{justify-content:space-between;align-items:center;gap:var(--cf-space-md);margin-top:var(--cf-space-xs);padding-top:var(--cf-space-md);border-top:1px solid var(--cf-color-border);flex-wrap:wrap;display:flex}.glossary-panel__module{align-items:baseline;gap:var(--cf-space-xs);flex-wrap:wrap;font-size:.875rem;font-weight:600;display:inline-flex}.glossary-panel__module-sep{color:color-mix(in srgb, var(--cf-color-ink) 70%, var(--cf-color-surface))}.glossary-panel__module-en{font-weight:500}.glossary-panel__module-id{font-family:var(--cf-font-mono);font-size:.875rem}.glossary-panel__lesson{min-height:44px;padding-inline:var(--cf-space-md);background:var(--cf-color-tangerine);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-flex}.glossary-panel__lesson:hover,.glossary-panel__lesson:focus-visible{background:var(--cf-color-mango);color:var(--cf-color-ink)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.progress-summary{gap:var(--cf-space-sm);margin-top:var(--cf-space-xl);padding-block:var(--cf-space-md);display:grid}.progress-summary--strip{border-block:1px solid var(--cf-color-border)}.progress-summary__heading{align-items:center;gap:var(--cf-space-md);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.progress-summary__heading h2,.lab-checklist__heading h2{margin:0;font-size:1.375rem;line-height:1.25}.progress-summary__count{margin-top:var(--cf-space-xs);font-size:.875rem;font-weight:600}.progress-summary__bar{width:100%;height:var(--cf-space-xs);appearance:none;background:var(--cf-color-surface-active);border-radius:var(--cf-radius-pill);accent-color:var(--cf-color-tangerine);border:0;overflow:hidden}.progress-summary__bar::-webkit-progress-bar{background:var(--cf-color-surface-active);border-radius:var(--cf-radius-pill)}.progress-summary__bar::-webkit-progress-value{background:var(--cf-color-tangerine);border-radius:var(--cf-radius-pill)}.progress-summary__bar::-moz-progress-bar{background:var(--cf-color-tangerine);border-radius:var(--cf-radius-pill)}.progress-summary__modules{border-block-start:1px solid var(--cf-color-border);flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.progress-summary__module{justify-content:space-between;align-items:baseline;gap:var(--cf-space-md);padding:var(--cf-space-sm) 0;border-block-end:1px solid var(--cf-color-border);font-size:.875rem;display:flex}.progress-summary__module:last-child{border-block-end:0}.progress-summary__continue{gap:var(--cf-space-xs);justify-items:start;display:grid}.progress-summary__continue-description{color:var(--cf-color-ink-muted);font-size:.875rem;font-weight:500}.progress-summary__continue-label{overflow-wrap:normal;word-break:keep-all;min-width:0}.progress-summary__continue a{min-height:44px;color:var(--cf-color-ink);text-underline-offset:3px;align-items:center;font-weight:600;text-decoration:underline;display:inline-flex}.progress-summary__continue a:after{content:"→";color:var(--cf-color-tangerine)}.progress-summary__continue a:hover,.progress-summary__continue a:focus-visible{color:var(--cf-color-ink)}.progress-summary__footer{justify-content:space-between;align-items:center;gap:var(--cf-space-sm) var(--cf-space-md);border-block-start:1px solid var(--cf-color-border);flex-wrap:wrap;padding-block-start:var(--cf-space-sm);display:flex}.progress-summary__privacy,.lab-checklist__privacy{font-size:.875rem;font-weight:600}.progress-summary__privacy{color:var(--cf-color-ink-muted);font-weight:500}.progress-summary__storage-warning,.lab-checklist__ready{padding:var(--cf-space-sm) var(--cf-space-md);background:color-mix(in srgb, var(--cf-color-status-warning) 25%, var(--cf-color-surface));border-inline-start:4px solid var(--cf-color-status-warning);font-size:.875rem;font-weight:600}.lab-checklist--rows .lab-checklist__ready{color:color-mix(in srgb, var(--cf-color-status-warning) 45%, var(--cf-color-ink));background:0 0;border-inline-start:0;padding:0}.progress-summary__reset-trigger,.progress-summary__reset-actions button{min-height:44px;padding-inline:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);color:var(--cf-color-ink);cursor:pointer;font-weight:600}.progress-summary__reset-trigger:hover:not(:disabled),.progress-summary__reset-trigger:focus-visible,.progress-summary__reset-actions button:hover,.progress-summary__reset-actions button:focus-visible{border-color:var(--cf-color-tangerine)}.progress-summary__reset-trigger:disabled{cursor:not-allowed;opacity:.6}.progress-summary__reset-confirmation{justify-content:space-between;align-items:center;gap:var(--cf-space-md);padding:var(--cf-space-md);background:color-mix(in srgb, var(--cf-color-status-danger) 8%, var(--cf-color-surface));border:1px solid var(--cf-color-status-danger);border-radius:var(--cf-radius-md);flex-wrap:wrap;display:flex}.progress-summary__reset-copy{gap:var(--cf-space-xs);max-width:56ch;display:grid}.progress-summary__reset-copy p:last-child{font-size:.875rem;font-weight:600}.progress-summary__reset-actions{gap:var(--cf-space-sm);flex-wrap:wrap;display:flex}.progress-summary__reset-actions .progress-summary__reset-confirm{background:color-mix(in srgb, var(--cf-color-status-danger) 5%, var(--cf-color-surface));border-color:var(--cf-color-status-danger);color:color-mix(in srgb, var(--cf-color-status-danger) 45%, var(--cf-color-ink))}@media (width>=768px){.progress-summary__modules{flex-direction:row}.progress-summary__module{padding-inline:var(--cf-space-sm);border-block-end:0;border-inline-end:1px solid var(--cf-color-border);flex:1}.progress-summary__module:first-child{padding-inline-start:0}.progress-summary__module:last-child{border-inline-end:0;padding-inline-end:0}}@media (width<=719px){.progress-summary__heading{grid-template-columns:minmax(0,1fr)}.progress-summary__continue a{flex-wrap:wrap}}.lab-checklist{gap:var(--cf-space-md);margin-top:var(--cf-space-2xl);background:0 0;border:0;border-radius:0;flex-direction:column;display:flex}.lab-checklist__heading{justify-content:space-between;align-items:baseline;gap:var(--cf-space-sm) var(--cf-space-md);flex-wrap:wrap;display:flex}.lab-checklist__count{font-size:.875rem;font-weight:600}.lab-checklist--rows .lab-checklist__items{border:0;border-block:1px solid var(--cf-color-border);flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.lab-checklist--rows .lab-checklist__item,.lab-checklist--rows .lab-checklist__lesson-complete{align-items:center;gap:var(--cf-space-sm);min-height:44px;padding:0 var(--cf-space-sm);border:0;border-block-start:1px solid var(--cf-color-border);cursor:pointer;background:0 0;border-radius:0;display:flex}.lab-checklist--rows .lab-checklist__item:first-child{border-block-start:0}.lab-checklist--rows .lab-checklist__item:hover,.lab-checklist--rows .lab-checklist__item:focus-within,.lab-checklist--rows .lab-checklist__lesson-complete:hover,.lab-checklist--rows .lab-checklist__lesson-complete:focus-within{background:var(--cf-color-surface-active)}.lab-checklist input[type=checkbox]{width:20px;height:20px;accent-color:var(--cf-color-tangerine);flex:none}.lab-checklist--rows .lab-checklist__lesson-complete{font-weight:600}.lab-checklist--rows .lab-checklist__lesson-complete:has(input:checked){background:var(--cf-color-surface-active)}.lesson-next{margin-top:var(--cf-space-md);border-block-start:1px solid var(--cf-color-border)}.lesson-next__link{align-items:center;gap:var(--cf-space-sm) var(--cf-space-md);min-height:44px;padding-block:var(--cf-space-sm);color:var(--cf-color-ink);flex-wrap:wrap;text-decoration:none;display:flex}.lesson-next__label{color:var(--cf-color-ink-muted);font-size:.875rem;font-weight:600}.lesson-next__title{overflow-wrap:anywhere;min-width:0;font-weight:600}.lesson-next__arrow{color:var(--cf-color-tangerine);margin-inline-start:auto;transition:transform .15s}.lesson-next__link:hover .lesson-next__arrow,.lesson-next__link:focus-visible .lesson-next__arrow{transform:translate(2px)}.lesson-next__link:focus-visible{outline:2px solid var(--cf-color-tangerine);outline-offset:2px}.track-landing{gap:var(--cf-space-2xl);display:grid}.track-landing__fallback{padding:var(--cf-space-sm) var(--cf-space-md);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);margin:0;font-weight:600}.track-landing__hero{gap:var(--cf-space-xl);align-items:center;display:grid}.track-landing__hero-copy{gap:var(--cf-space-md);display:grid}.track-landing__eyebrow,.dashboard-page__eyebrow{color:var(--cf-color-ink);font-size:.875rem;font-weight:600}.track-landing__lede{max-width:60ch;font-size:1.125rem}.track-landing__outcomes{gap:var(--cf-space-sm);margin:0;padding:0;list-style:none;display:grid}.track-landing__outcome{padding-inline-start:var(--cf-space-lg);font-weight:600;position:relative}.track-landing__outcome:before{content:"";inset-inline-start:0;width:var(--cf-space-sm);height:var(--cf-space-sm);background:var(--cf-color-ink-muted);border-radius:var(--cf-radius-pill);position:absolute;top:.7em}.track-landing__privacy{color:var(--cf-color-ink-subtle);margin:0;font-size:.875rem;font-weight:500}.track-landing__architecture{padding:var(--cf-space-md);background:var(--cf-color-surface);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-lg);min-width:0;margin:0}.track-landing__architecture-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;overflow-x:auto}.track-landing__architecture img{width:100%;height:auto;max-height:calc(var(--cf-space-3xl) * 7);object-fit:contain;display:block}.track-landing__architecture figcaption{margin-top:var(--cf-space-sm);text-align:center;font-size:.875rem;font-weight:600}.track-landing__scroll-hint{margin:0;margin-top:var(--cf-space-sm);color:var(--cf-color-ink-subtle);text-align:center;font-size:.875rem;font-weight:500;display:none}.track-landing__tracks,.track-landing__section-heading{gap:var(--cf-space-sm);display:grid}.track-landing__track-list{margin-top:var(--cf-space-lg);gap:0;display:grid}.track-choice{border-block-end:1px solid var(--cf-color-border)}.track-choice:first-child{border-block-start:1px solid var(--cf-color-border)}.track-choice:hover{background:var(--cf-color-surface-active)}.track-choice:has(.track-choice__link:focus-visible){background:var(--cf-color-surface-active)}.track-choice__link{column-gap:var(--cf-space-lg);row-gap:var(--cf-space-sm);padding:var(--cf-space-lg) 0;color:var(--cf-color-ink);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"heading action""description description";align-items:baseline;text-decoration:none;display:grid}.track-choice__heading{align-items:baseline;gap:var(--cf-space-sm);flex-wrap:wrap;grid-area:heading;display:flex}.track-choice__sequence{color:var(--cf-color-ink-subtle);font-family:var(--cf-font-mono);font-size:.875rem;font-weight:500}.track-choice__heading h3{font-size:1.25rem}.track-landing__section-heading h2{font-size:1.5rem}.track-choice__badge{padding:var(--cf-space-xs) var(--cf-space-sm);background:var(--cf-color-surface-active);border:1px solid var(--cf-color-border);border-radius:var(--cf-radius-sm);font-size:.75rem;font-weight:600}.track-choice__meta{gap:var(--cf-space-xs);color:var(--cf-color-ink-muted);font-size:.875rem;font-weight:500;display:inline-flex}.track-choice__description{max-width:72ch;color:var(--cf-color-ink-muted);grid-area:description;font-size:1rem}.track-choice__action{justify-self:end;align-items:baseline;gap:var(--cf-space-xs);color:var(--cf-color-ink);text-underline-offset:3px;white-space:nowrap;grid-area:action;font-weight:600;text-decoration:underline;display:inline-flex}.track-choice__action:after{content:"→";color:inherit}.track-choice--primary .track-choice__action{color:var(--cf-color-tangerine)}.dashboard-page__back{align-items:center;min-height:44px;font-weight:600;display:inline-flex}@media (width<=767px){.track-landing__architecture-scroll img{min-width:640px}.track-landing__scroll-hint{display:block}}@media (width>=768px){.track-landing__hero{grid-template-columns:minmax(0,4fr) minmax(0,6fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
