@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,system-ui,-apple-system,sans-serif;color:#cad3e2;background:#080c14;font-synthesis:none;color-scheme:dark;--bg:#080c14;--panel:#101722;--panel-raised:#141e2b;--border:#253043;--text:#f0f4fa;--muted:#94a3b8;--accent:#79e7c5;--amber:#e9bd75;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--accent);text-decoration:none}button{color:inherit}button:disabled{cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:focus:not(:focus-visible){outline:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif;color:var(--text);letter-spacing:-.025em}h2{font-size:23px;line-height:1.35}h3{font-size:18px;line-height:1.4}p{line-height:1.8}::selection{background:#255f52;color:#fff}.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}.skip-link{position:fixed;top:-100px;left:20px;padding:12px;background:var(--accent);color:#081711;z-index:100}.skip-link:focus{top:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:272px;background:#0c111c;border-right:1px solid #202b3c;padding:28px 17px 20px;display:flex;flex-direction:column;overflow:auto;z-index:30}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-family:Manrope,sans-serif;font-size:21px;font-weight:800;letter-spacing:-.04em;padding:0 9px}.brand-symbol{display:grid;place-items:center;width:37px;height:37px;border:1px solid #3d7767;border-radius:10px;color:var(--accent);background:#17372f;font-family:system-ui;font-size:25px}.brand-subtitle{display:block;font-family:DM Sans,sans-serif;font-size:8px;letter-spacing:.18em;color:#8695ad;font-weight:500;margin-top:1px}.track-label{padding:35px 11px 22px}.track-label h2{font-size:20px;margin:6px 0 3px}.track-label p{font-size:12px;color:var(--muted);margin:0}.module-search{display:flex;align-items:center;gap:8px;margin:0 5px 25px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:#111925;color:#8191aa}.module-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:12px;padding:3px}.module-search input::placeholder{color:#94a3b8}.module-search input:focus{outline:none}.module-search:focus-within{border-color:var(--accent)}.nav-caption{display:flex;justify-content:space-between;padding:0 11px;margin-bottom:9px;font-size:9px;letter-spacing:.13em;color:#94a3b8}.lesson-nav{display:grid;gap:5px}.lesson-nav a{display:flex;align-items:center;gap:11px;padding:12px 10px;min-height:58px;border:1px solid transparent;border-radius:8px;color:#aab6ca}.lesson-nav a:hover{background:#121d2a}.lesson-nav a.selected{background:linear-gradient(100deg,#17352e,#11241f);border-color:#315b4f;color:var(--text)}.nav-number{width:25px;flex-shrink:0;text-align:center;color:#8696ad;font-size:12px;font-family:ui-monospace,monospace}.selected .nav-number,.nav-number.done{color:var(--accent)}.nav-copy{min-width:0;flex:1}.nav-copy strong{display:block;font-size:12px;font-weight:600;letter-spacing:.005em}.nav-copy small{display:block;font-size:10px;color:#94a3b8;margin-top:3px}.nav-arrow{font-size:14px;opacity:0}.selected .nav-arrow{color:var(--accent);opacity:1}.sidebar-bottom{margin-top:auto;padding:28px 10px 0}.progress-heading{display:flex;justify-content:space-between;font-size:11px;margin-bottom:10px}.progress-heading strong{color:var(--accent)}.progress-track{height:4px;background:#253043;border-radius:5px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--accent);transition:width .2s}.sidebar-bottom p{font-size:10px;color:#94a3b8;margin:9px 0 20px}.sidebar-bottom p span{display:block;font-size:9px;color:#8695ad}.sidebar-note{padding-top:18px;border-top:1px solid #253043;font-size:10px;display:flex;align-items:center;gap:8px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #79e7c530}.workspace{margin-left:272px;min-width:0}.topbar{height:68px;border-bottom:1px solid #1e293a;display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:#0a101a}.breadcrumbs{display:flex;gap:12px;align-items:center;font-size:11px;color:#94a3b8}.breadcrumbs strong{font-weight:500;color:#c4cede}.topbar-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:#94a3b8}.mobile-header,.menu-backdrop{display:none}main{max-width:1210px;margin:auto;padding:48px 48px 25px;min-width:0}.lesson-hero{position:relative;padding-bottom:0}.hero-eyebrow{display:flex;align-items:center;gap:12px;font-size:11px;color:#a6b4c8;margin-bottom:19px}.module-tag{font-size:10px;letter-spacing:.1em;background:#102b24;color:var(--accent);border:1px solid #254c40;border-radius:4px;padding:4px 8px}.lesson-hero h1{font-size:clamp(33px,3.7vw,54px);line-height:1.12;font-weight:800;margin-bottom:20px;letter-spacing:-.045em}.lesson-meta{display:flex;align-items:center;flex-wrap:wrap;gap:16px;font-size:11px;color:#93a3ba}.lesson-meta>span:not(:first-child):not(.version-tag):before{content:"·";margin-right:16px;color:#71829b}.version-tag{margin-left:auto;border:1px solid var(--border);padding:4px 8px;border-radius:5px;font-family:ui-monospace,monospace;font-size:10px;color:#a4b1c5}.intro{font-size:18px;line-height:1.75;max-width:790px;color:#aab8cb;margin:25px 0 27px}.outcome-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:10px;background:linear-gradient(110deg,#121c29,#0d1621);overflow:hidden}.outcome-grid>div{padding:19px 21px}.outcome-grid>div+div{border-left:1px solid var(--border)}.outcome-grid strong{display:block;font-size:12px;font-weight:500;color:#e1e8f2;margin-top:7px}.section-nav{display:flex;flex-wrap:wrap;gap:24px;padding:23px 1px 19px;border-bottom:1px solid #253043}.section-nav a{font-size:11px;color:#a7b5c9}.section-nav a:hover{color:var(--accent)}.scenario-brief{display:flex;gap:15px;padding:25px 0 12px}.scenario-icon{font-size:26px;color:var(--accent);line-height:1.3}.scenario-brief p{font-size:14px;color:#b2bfd0;margin:9px 0 0;line-height:1.8}.lesson-card{margin:26px 0;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;scroll-margin-top:24px}.section-heading{padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px}.section-heading h2{margin:6px 0 0;font-size:21px}.section-heading .eyebrow{font-size:9px}.interactive-label{font-size:10px;color:var(--accent);white-space:nowrap}.amber-label{font-size:10px;color:var(--amber);white-space:nowrap}.architecture-explorer{border-top:1px solid var(--border)}.diagram-scroll{overflow-x:auto;background:#0c1420;padding:10px 15px}.architecture-svg{display:block;width:100%;min-width:670px;max-width:100%;height:auto}.diagram-zone{fill:#101a27;fill-opacity:.82;stroke:#344155;stroke-dasharray:5 5;stroke-width:1}.diagram-zone.second{stroke:#386355;fill:#10221e;fill-opacity:.5}.zone-label{font-size:9px;font-family:DM Sans,sans-serif;letter-spacing:1.1px;fill:#9cacc1}.diagram-connection{fill:none;stroke:#69d9bb;stroke-width:1.6}.edge-label{fill:#b7c9d7;font-size:8px;font-family:ui-monospace,monospace}.diagram-node{cursor:pointer;outline:none}.diagram-node rect{fill:#162131;stroke:#3b4b62;stroke-width:1.1;transition:fill .15s,stroke .15s}.diagram-node:hover rect,.diagram-node:focus-visible rect{stroke:#a3ffe4;stroke-width:2}.diagram-node.active rect{fill:#16392f;stroke:#79e7c5;stroke-width:1.5}.diagram-node circle{fill:#79e7c5}.node-number{font-size:8px;letter-spacing:1px;fill:#94b6aa}.node-title{font-size:13px;font-weight:600;fill:#eff5fb}.node-subtitle{font-size:10px;fill:#a2b2c7}.diagram-detail{display:grid;grid-template-columns:210px 1fr;gap:13px 22px;padding:20px 25px;border-top:1px solid var(--border);background:#121e2a}.detail-heading{display:flex;gap:11px;align-items:center}.component-count{font-family:ui-monospace,monospace;font-size:20px;color:var(--accent)}.detail-heading .eyebrow{font-size:8px}.detail-heading h3{font-size:14px;margin:3px 0 0}.diagram-detail>p{font-size:12px;margin:0;line-height:1.7}.diagram-detail dl{grid-column:1/-1;display:flex;gap:30px;margin:0;padding-top:10px;border-top:1px solid #283547}.diagram-detail dl div{display:flex;gap:9px;font-size:10px}.diagram-detail dt{color:#94a3b8}.diagram-detail dd{margin:0;color:#d1dfeb}.diagram-legend{display:flex;gap:15px;justify-content:space-between;padding:12px 23px;font-size:9px;color:#95a5ba}.diagram-legend span:first-child{white-space:nowrap}.diagram-legend i{display:inline-block;width:15px;height:2px;background:var(--accent);vertical-align:middle;margin-right:6px}.deep-dive{padding:4px}.principle{display:flex;gap:22px;margin:25px 0}.principle-number{font-family:ui-monospace,monospace;color:#82a496;font-size:12px;padding-top:4px}.principle h3{font-size:18px;margin:0 0 10px}.principle p{font-size:15px;color:#aab9cd;line-height:1.9;margin:0;max-width:880px}.workflow-explorer{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}.workflow-steps{padding:16px;border-right:1px solid var(--border)}.workflow-step{display:flex;align-items:center;gap:13px;width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:13px 11px;text-align:left;color:#a1b0c5;margin-bottom:4px}.workflow-step>span:nth-child(2){flex:1}.workflow-step strong{display:block;font-size:12px;font-weight:500}.workflow-step small{display:block;font-size:10px;color:#94a3b8;margin-top:4px}.workflow-step.active{background:#173329;border-color:#315a4a;color:#def8ed}.step-number{font-size:11px;font-family:ui-monospace,monospace;color:#7e9c91}.workflow-step.active .step-number{color:var(--accent)}.workflow-detail{padding:29px;background:linear-gradient(140deg,#101d27,#0f1722)}.workflow-detail h3{font-size:25px;margin:20px 0 10px}.workflow-detail p{font-size:13px;color:#b0bed0}.workflow-detail .workflow-actor{color:var(--accent);font-family:ui-monospace,monospace;font-size:10px;margin-bottom:18px}.text-button{background:transparent;color:var(--accent);border:0;padding:12px 0;font-size:12px}.text-button span{padding-left:16px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}thead th{color:#92a6bd;background:#0c1420;font-weight:500;font-size:10px;letter-spacing:.04em}th,td{padding:18px 25px;border-top:1px solid var(--border);vertical-align:top;line-height:1.75}tbody th{font-weight:500;color:#e0e9f4;width:25%}td{color:#aab9cd;width:37.5%}.failure-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 25px 25px}.failure-card{padding:20px;border:1px solid #4a4032;border-radius:8px;background:#211d17}.failure-card h3{font-size:15px;color:#f1d3a2;margin-bottom:20px}.failure-card .eyebrow{font-size:8px;color:#b9a890}.failure-card p{font-size:12px;color:#c5b9a7;margin:7px 0 18px}.failure-card p:last-child{margin-bottom:0}pre{font-family:SFMono-Regular,Consolas,ui-monospace,monospace;font-size:11px;line-height:1.9;color:#b9decf;background:#090f18;overflow:auto;-moz-tab-size:2;tab-size:2;white-space:pre;margin:0;padding:25px;border-top:1px solid var(--border)}.exercise{margin:0 26px 23px;padding:19px 20px;background:#112922;border:1px solid #2d5042;border-radius:8px}.exercise .eyebrow{color:var(--accent);font-size:9px}.exercise p{font-size:13px;color:#b5d3c4;margin:9px 0 0}.quiz-question{font-size:14px;color:#e1eaf6;padding:0 26px;font-weight:500}.answer-options{display:grid;gap:9px;padding:0 26px 26px}.answer-options button{display:flex;gap:13px;text-align:left;align-items:center;padding:14px;background:#0c1420;border:1px solid #2b384b;border-radius:7px;color:#b9c7da;font-size:12px}.answer-options button:hover{background:#152333}.answer-options button>span{flex-shrink:0;display:grid;place-items:center;width:25px;height:25px;border-radius:4px;background:#202d40;color:#aebdd0;font-size:10px}.answer-options button[aria-pressed=true]{border-color:var(--accent);background:#142c25}.answer-correct,.answer-retry{margin:0 26px 26px;font-size:12px;padding:14px 17px;border-radius:6px}.answer-correct{background:#153a2b;color:#a3e2bb;border:1px solid #2d6948}.answer-retry{background:#302418;color:#e7c396;border:1px solid #665038}.lesson-reference{padding:24px 1px}.lesson-reference>div{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.lesson-reference a{font-size:11px;border:1px solid var(--border);border-radius:5px;padding:7px 10px;color:#c0cddc}.lesson-reference a:hover{border-color:#639886;color:var(--accent)}.lesson-reference p{font-size:10px;color:#94a3b8;max-width:750px}.lesson-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:25px 0;gap:16px}.lesson-footer>div{display:flex;align-items:center;gap:24px}.primary-button,.secondary-button,.next-lesson{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 19px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid transparent;line-height:1.5}.primary-button{background:var(--accent);color:#08271d}.primary-button:hover{background:#a1f0d6}.secondary-button{background:#13231f;border-color:#345e50;color:#c5e5d8}.next-lesson{color:var(--text);background:#182333;border-color:#334359}.previous-lesson{font-size:11px;color:#a5b5c8}.page-footnote{text-align:center;color:#8393aa;font-size:10px;padding-top:20px}.lab-panel>p{font-size:12px;margin:0 26px 23px;color:#a6b7cb}.status-pill{font-size:9px;color:var(--accent);border:1px solid #315b4b;padding:5px 8px;border-radius:20px;white-space:nowrap}.lab-controls{display:grid;grid-template-columns:1fr .8fr 1.2fr auto;gap:12px;padding:0 26px 26px;align-items:end}.lab-controls label{display:grid;gap:8px;font-size:10px;color:#a6b6ca}.lab-controls select{min-width:0;max-width:100%;width:100%;border:1px solid #38475c;background:#0c1522;border-radius:6px;color:#d3deed;font-size:11px;padding:11px 9px}.lab-controls .primary-button{font-size:11px;padding:11px 13px}.lab-empty{display:flex;gap:15px;align-items:center;justify-content:center;background:#0c1420;border-top:1px solid var(--border);padding:30px 20px;text-align:left}.lab-empty>span{font-size:25px;color:#658879}.lab-empty p{font-size:12px;color:#b4c3d6;margin:0}.lab-empty small{font-size:10px;color:#93a3ba}.run-summary{display:flex;align-items:center;gap:16px;font-size:10px;border-top:1px solid var(--border);padding:15px 25px;background:#0d1723;flex-wrap:wrap}.outcome{padding:3px 8px;border-radius:4px;text-transform:uppercase;font-size:9px;letter-spacing:.06em}.outcome.success{background:#173a2a;color:#9de0b3}.outcome.denied,.outcome.failed,.outcome.rejected{background:#40222a;color:#ffb1ba}.outcome.partial{background:#40301b;color:#f2d49b}.segmented-control{display:flex;gap:4px;margin:19px 25px 0;border:1px solid var(--border);padding:4px;border-radius:7px;width:fit-content}.segmented-control button{border:0;background:transparent;padding:7px 16px;font-size:11px;color:#a9b9cc;text-transform:capitalize;border-radius:4px}.segmented-control button[aria-pressed=true]{background:#26364b;color:#f2f7ff}.trace-list{list-style:none;padding:18px 26px;margin:0}.trace-list li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #253043}.trace-list li:last-child{border-bottom:0}.trace-index{font-family:ui-monospace,monospace;color:#79b19d;font-size:11px;padding-top:3px}.trace-list strong{font-size:12px;color:#e2ebf7;text-transform:capitalize;font-weight:500}.trace-outcome{font-size:9px;margin-left:10px;color:var(--accent)}.trace-list p{font-size:11px;color:#a3b4ca;margin:5px 0 0}.lab-json{margin-top:20px}.not-found{padding:65px 0;min-height:70vh}.not-found h1{font-size:46px;margin-top:18px}.empty-search{padding:14px;font-size:12px;color:#a0b1c9}@media(min-width:1600px){main{padding-top:60px}.lesson-hero h1{font-size:58px}}@media(max-width:1200px){.sidebar{width:244px;padding-left:12px;padding-right:12px}.workspace{margin-left:244px}.topbar{padding:0 30px}.topbar-meta{display:none}main{padding:35px 30px 20px}.diagram-detail{grid-template-columns:190px 1fr}.section-heading h2{font-size:19px}.lab-controls{grid-template-columns:1fr 1fr}.version-tag{margin-left:0}}@media(max-width:900px){.mobile-header{display:flex;position:sticky;top:0;z-index:50;height:70px;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--border);background:#0b121ef5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-header .brand{font-size:19px;padding:0}.mobile-header .brand-symbol{height:32px;width:32px;font-size:22px}.menu-toggle{background:#182638;border:1px solid #34475e;border-radius:6px;padding:8px 11px;font-size:11px}.menu-toggle span{margin-left:9px}.sidebar{transform:translate(-100%);transition:transform .18s;width:280px;top:70px;z-index:45;padding-top:0}.sidebar.open{transform:translate(0)}.desktop-brand{display:none}.sidebar .track-label{padding-top:25px}.menu-backdrop{display:block;position:fixed;top:70px;right:0;bottom:0;left:0;z-index:40;background:#0009;border:0;width:100%;height:calc(100dvh - 70px)}.workspace{margin-left:0}.topbar{height:48px;padding:0 24px}.lesson-card,.section-nav{scroll-margin-top:90px}main{padding:32px 24px}.lesson-hero h1{font-size:42px}}@media(max-width:600px){main{padding:27px 17px 15px}.topbar{padding:0 18px}.lesson-hero h1{font-size:34px}.hero-eyebrow{font-size:10px;gap:9px}.lesson-meta{font-size:10px;gap:10px}.lesson-meta>span:not(:first-child):not(.version-tag):before{margin-right:10px}.version-tag{font-size:9px}.intro{font-size:16px;margin-top:22px}.outcome-grid{grid-template-columns:1fr}.outcome-grid>div{padding:13px 17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.outcome-grid>div+div{border-left:0;border-top:1px solid var(--border)}.outcome-grid .eyebrow{font-size:8px;white-space:nowrap}.outcome-grid strong{font-size:11px;margin:0;text-align:right}.section-nav{gap:15px;padding:18px 0}.section-nav a{font-size:10px}.scenario-brief{gap:11px}.scenario-brief p{font-size:13px}.section-heading{padding:20px 18px;align-items:flex-start;flex-direction:column;gap:10px}.section-heading h2{font-size:19px}.diagram-scroll{padding:8px}.architecture-svg{min-width:650px;max-width:none}.diagram-detail{grid-template-columns:1fr;padding:17px}.diagram-detail dl{flex-direction:column;gap:8px}.diagram-legend{flex-direction:column;gap:8px;padding:12px 17px}.principle{gap:13px}.principle h3{font-size:16px}.principle p{font-size:14px}.workflow-explorer{grid-template-columns:1fr}.workflow-steps{border-right:0;border-bottom:1px solid var(--border);padding:12px}.workflow-detail{padding:24px}.workflow-detail h3{margin-top:13px}.failure-grid{grid-template-columns:1fr;padding:0 17px 17px}.table-scroll table{min-width:580px}th,td{padding:15px 18px}pre{font-size:10px;padding:18px}.exercise{margin:0 17px 20px;padding:16px}.quiz-question{padding:0 17px;font-size:13px}.answer-options{padding:0 17px 20px}.answer-options button{font-size:11px}.answer-correct,.answer-retry{margin:0 17px 20px}.lesson-footer{align-items:stretch;flex-direction:column}.lesson-footer>div{justify-content:space-between;gap:10px}.next-lesson{margin-left:auto}.lesson-footer>.primary-button,.lesson-footer>.secondary-button{width:100%}.lab-panel>p{margin-left:17px;margin-right:17px}.lab-controls{padding:0 17px 20px;gap:12px}.lab-controls .primary-button{min-height:41px}.run-summary{padding:14px 17px;gap:10px}.segmented-control{margin-left:17px}.trace-list{padding:12px 17px}.lab-empty{padding:24px 17px}.status-pill{font-size:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.sequence-scroll{overflow-x:auto;border-top:1px solid var(--border);background:#0b1420;padding:16px 10px}.sequence-svg{display:block;max-width:none}.sequence-actor{font-size:10px;fill:#b5c7dc;text-transform:capitalize}.sequence-label{font-size:10px;fill:#c6e1d5}.sequence-message{cursor:pointer}.sequence-highlight{fill:transparent;stroke:transparent}.sequence-message.active .sequence-highlight{fill:#17392b;fill-opacity:.8;stroke:#3d765f}.sequence-message:focus-visible .sequence-highlight{stroke:#b4ffe6;stroke-width:2}.sequence-message:hover .sequence-highlight{fill:#183026;fill-opacity:.7}@media(max-width:900px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}}#lesson-title:focus{outline:none}
