*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #0f172a;--paper: #f8f9fa;--cream: #ffffff;--cream-2: #f1f5f9;--teal: #0a369d;--teal-dk: #072670;--teal-lt: #eef2fb;--rule: #e2e8f0;--muted: #475569;--gold: #0a369d;--bad: #b0553f;--cta: #ff6b35;--cta-hover: #e0531e;--code-bg: #1e293b;--code-text: #e2e8f0;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--serif: var(--sans);--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--nav-w: 300px;--measure: 720px}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,.collapsible-title,.home-modules-title,.module-nav-link strong{overflow-wrap:break-word}a{color:var(--teal);text-underline-offset:2px}a:hover{color:var(--ink)}em{font-style:italic}strong{font-weight:500}.shell{min-height:100vh}.shell-nav{position:fixed;inset:0 auto 0 0;width:var(--nav-w);background:var(--cream);border-right:1px solid var(--rule);overflow-y:auto;z-index:40}.shell-main{margin-left:var(--nav-w);min-height:100vh;display:flex;flex-direction:column;min-width:0}.shell-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141f66;z-index:30}.topbar{display:none;position:sticky;top:0;z-index:20;align-items:center;gap:14px;padding:12px 18px;background:var(--cream);border-bottom:1px solid var(--rule)}.topbar-title{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-toggle{width:34px;height:30px;display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:1px solid var(--rule);border-radius:4px;cursor:pointer}.topbar-toggle span{display:block;height:2px;background:var(--ink)}.sidebar{display:flex;flex-direction:column;min-height:100%;padding:22px 18px 28px}.sidebar-brand{display:block;text-decoration:none;margin-bottom:20px}.sidebar-brand-mark{font-family:var(--mono);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);display:block}.sidebar-brand-sub{font-family:var(--serif);font-size:1.02rem;font-weight:600;color:var(--ink);line-height:1.3;display:block;margin-top:6px}.sidebar-progress{margin-bottom:18px}.sidebar-list{list-style:none;display:flex;flex-direction:column;gap:2px}.sidebar-item{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:6px;text-decoration:none;color:var(--ink)}.sidebar-item:hover{background:var(--cream-2)}.sidebar-item.is-active{background:var(--paper);box-shadow:inset 3px 0 0 var(--teal)}.sidebar-item-num{flex-shrink:0;width:22px;height:22px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--rule);border-radius:4px}.sidebar-item.is-active .sidebar-item-num{border-color:var(--teal);color:var(--teal)}.sidebar-item-title{font-size:.9rem;font-weight:400;line-height:1.35;display:block}.sidebar-item-meta{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted);text-transform:uppercase}.sidebar-item.is-locked .sidebar-item-title{color:var(--muted)}.sidebar-finish{margin-top:auto;padding-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--muted)}.sidebar-finish:hover{color:var(--teal)}.progress-label{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.progress-track{height:6px;background:var(--cream-2);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--teal);transition:width .35s ease}.shell-main .page{flex:1;width:100%;max-width:calc(var(--measure) + 96px);margin:0 auto;padding:56px 48px 80px}.shell-footer{border-top:1px solid var(--rule);padding:22px 48px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.shell-footer a{color:inherit}.shell-footer a:hover{color:var(--teal)}.c-eyebrow,.c-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.9rem,4.4vw,2.7rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:16px}h1 em{color:var(--teal)}.c-p{margin-bottom:16px;color:var(--muted)}.c-p strong{color:var(--ink)}.c-quote{font-family:var(--serif);font-weight:500;font-size:1.2rem;line-height:1.5;color:var(--teal-dk);border-left:3px solid var(--teal);padding-left:18px;margin:22px 0}.c-callout{background:var(--cream);border-left:3px solid var(--teal);padding:16px 18px;margin:20px 0}.c-callout-h{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:6px}.c-callout-b{font-size:.95rem;color:var(--ink)}.c-code{background:var(--code-bg);border:1px solid var(--rule);border-radius:6px;padding:16px 20px;margin:18px 0;overflow-x:auto;font-family:var(--mono);font-size:.85rem;line-height:1.6;color:var(--code-text)}.c-bullets,.c-numbers{margin:4px 0 18px;padding-left:22px;color:var(--muted)}.c-bullets li,.c-numbers li{margin-bottom:8px}.c-bullets li::marker{color:var(--teal)}.c-numbers li::marker{color:var(--teal);font-family:var(--mono);font-size:.85em}.c-table-wrap{overflow-x:auto;margin:18px 0}.c-table{width:100%;border-collapse:collapse;font-size:.9rem}.c-table th{background:var(--cream);text-align:left;font-family:var(--sans);font-weight:600;font-size:.82rem;padding:10px 12px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.c-table td{padding:10px 12px;border-bottom:1px solid var(--rule);color:var(--muted);vertical-align:top}.c-activity{border:1px solid var(--teal);padding:20px;margin:24px 0}.c-activity-h{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}.c-activity-b{font-size:.95rem;color:var(--ink)}.c-upnext,.c-summary,.c-cta,.c-modulelist{margin:26px 0;padding:22px}.c-upnext{background:var(--cream);border-left:3px solid var(--gold)}.c-upnext-h{font-family:var(--serif);font-weight:600;font-size:1.1rem;margin-bottom:8px}.c-summary{border:1px solid var(--ink)}.c-summary dl div{padding:10px 0;border-bottom:1px solid var(--rule)}.c-summary dl div:last-child{border-bottom:none}.c-summary dt{font-weight:600;margin-bottom:3px}.c-summary dd{color:var(--muted);font-size:.92rem}.c-cta{background:var(--cream);border:1px solid var(--ink)}.c-cta-h{font-family:var(--serif);font-weight:600;font-size:1.25rem;margin-bottom:8px}.c-modulelist{border:1px solid var(--rule)}.c-modulelist ol{list-style:none}.c-modulelist li{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:.9rem;color:var(--muted)}.c-modulelist li:last-child{border-bottom:none}.c-modulelist-num{font-family:var(--mono);font-size:.8rem;color:var(--teal)}.c-hr{border:none;border-top:1px solid var(--rule);margin:26px 0}.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:14px 28px;border:1px solid var(--teal);border-radius:4px;cursor:pointer;transition:background .18s,color .18s,border-color .18s}.btn-primary{background:var(--teal);color:var(--paper)}.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-secondary:hover{background:var(--ink);color:var(--paper)}.btn-cta,.btn-cta.btn-secondary{background:var(--cta);border-color:var(--cta);color:var(--ink);font-weight:500}.btn-cta:hover,.btn-cta.btn-secondary:hover{background:var(--cta-hover);border-color:var(--cta-hover);color:var(--ink)}.btn:disabled{opacity:.4;cursor:not-allowed}.link-btn{background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);padding:4px 0}.link-btn:hover{color:var(--ink)}.home-title{font-size:clamp(2.1rem,5.4vw,3.2rem)}.home-sub{font-size:1.1rem;color:var(--muted);max-width:34em;margin-bottom:30px}.home-progress{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:22px 0 28px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:32px}.home-progress .progress{flex:1 1 220px}.home-modules{list-style:none;display:flex;flex-direction:column}.home-modules li{border:1px solid var(--rule);margin-bottom:-1px}.home-modules li:hover{background:var(--cream)}.home-modules a{display:flex;gap:0;text-decoration:none;color:inherit}.home-modules-num{flex-shrink:0;width:56px;display:grid;place-items:center;font-family:var(--mono);font-size:12px;color:var(--muted);border-right:1px solid var(--rule)}.home-modules-body{padding:16px 20px;min-width:0}.home-modules-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.home-modules-desc{display:block;font-size:.88rem;color:var(--muted);margin-top:3px}.tag{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:2px}.tag-free{background:var(--teal);color:var(--paper)}.tag-lock{background:var(--cream-2);color:var(--muted)}.tag-done{background:var(--ink);color:var(--paper)}.home-buy{margin-top:40px;padding:28px;background:var(--cream);border:1px solid var(--ink)}.home-buy h2{font-family:var(--serif);font-weight:700;font-size:1.5rem;margin-bottom:12px}.home-back{margin-top:34px;font-family:var(--mono);font-size:11px}.module-head{margin-bottom:24px}.module-deck{font-size:1.08rem;color:var(--muted);margin-top:4px}.module-intro{margin-bottom:10px}.module-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:8px 0 4px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.media-embed{margin:22px 0 28px}.media-embed-frame{position:relative;aspect-ratio:16 / 9;border:1px dashed var(--rule);background:var(--teal-lt);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--teal)}.media-embed-tag{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.media-embed-video{border:1px solid var(--rule);background:#1e293b}.media-embed-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.media-embed figcaption{font-size:.82rem;color:var(--muted);margin-top:8px}.collapsible{border-bottom:1px solid var(--rule)}.collapsible h2{margin:0}.collapsible-trigger{width:100%;display:flex;align-items:flex-start;gap:12px;background:none;border:none;cursor:pointer;padding:18px 0;text-align:left}.collapsible-marker{flex-shrink:0;width:22px;height:22px;display:grid;place-items:center;font-family:var(--mono);border:1px solid var(--rule);border-radius:4px;color:var(--teal);font-size:13px;margin-top:3px}.collapsible.is-done .collapsible-marker{background:var(--teal);color:var(--paper);border-color:var(--teal)}.collapsible-title{font-family:var(--serif);font-weight:600;font-size:1.25rem;line-height:1.3;color:var(--ink)}.collapsible-body{padding-bottom:18px}.collapsible-inner{padding-left:34px}@media (max-width: 560px){.collapsible-inner{padding-left:0}}.section-done{margin-top:18px;padding-top:14px;border-top:1px dashed var(--rule)}.section-done label{display:flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);cursor:pointer}.section-done input{width:15px;height:15px;accent-color:var(--teal)}.quiz{margin:34px 0;padding:26px;background:var(--cream);border:1px solid var(--ink)}.quiz-title{font-family:var(--serif);font-weight:700;font-size:1.4rem;margin-bottom:18px}.quiz-list{list-style:none;display:flex;flex-direction:column;gap:20px}.quiz-q{font-weight:500;color:var(--ink);margin-bottom:10px}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);cursor:pointer;font-size:.92rem}.quiz-option input{margin-top:4px;accent-color:var(--teal)}.quiz-option.is-selected{border-color:var(--teal)}.quiz-option.is-correct{border-color:var(--teal);background:var(--teal-lt)}.quiz-option.is-wrong{border-color:var(--bad);background:#f6e7e2}.quiz-option.is-answer{border-color:var(--teal);border-style:dashed}.quiz-feedback{margin-top:8px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.quiz-feedback.ok{color:var(--teal)}.quiz-feedback.no{color:var(--bad)}.quiz-actions{margin-top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.quiz-score{font-family:var(--mono);font-size:12px;color:var(--muted)}.quiz-score.ok{color:var(--teal)}.module-complete{margin:32px 0;padding:22px;border:1px solid var(--rule);display:flex;flex-direction:column;align-items:flex-start;gap:12px}.module-complete-hint{font-size:.9rem;color:var(--muted)}.module-complete-done{font-family:var(--mono);font-size:12px;color:var(--teal);letter-spacing:.03em}.module-nav{display:flex;gap:16px;margin-top:20px}.module-nav-link{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--rule);text-decoration:none;color:var(--ink);background:none;cursor:pointer;font:inherit;text-align:left}.module-nav-link:hover{background:var(--cream)}.module-nav-link.next{text-align:right;align-items:flex-end}.module-nav-link span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.module-nav-link strong{font-family:var(--serif);font-weight:600}.gate{max-width:34em}.gate-title{font-size:clamp(1.7rem,4vw,2.3rem)}.gate-form{margin:24px 0}.gate-form label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:8px}.gate-form-row{display:flex;gap:10px;flex-wrap:wrap}.gate-form input,.cert-wrap input{flex:1 1 220px;padding:13px 14px;border:1px solid var(--rule);background:var(--paper);font:inherit;font-family:var(--mono);font-size:.9rem}.gate-form input:focus,.cert-wrap input:focus{outline:2px solid var(--teal);border-color:var(--teal)}.gate-form input[aria-invalid=true]{border-color:var(--bad)}.gate-error{margin-top:12px;color:var(--bad);font-size:.88rem}.gate-buy{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule)}.gate-note{margin-top:20px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.finish-list{list-style:none;margin:22px 0}.finish-list li{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule)}.finish-list li span{font-family:var(--mono);font-size:12px;color:var(--muted);width:22px;text-align:center}.finish-list li.is-done span{color:var(--teal)}.finish-list a{text-decoration:none}.cert-wrap{margin:30px 0}.cert-wrap h2{font-family:var(--serif);font-weight:700;font-size:1.4rem;margin-bottom:14px}.cert-wrap label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.cert-wrap input{margin-bottom:20px}.cert{border:2px solid var(--ink);background:var(--paper);padding:40px 32px;text-align:center;margin-bottom:18px}.cert-brand{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;font-size:12px;color:var(--ink)}.cert-kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:10px;color:var(--teal);margin:14px 0 18px}.cert-name{font-family:var(--serif);font-weight:700;font-size:2rem;margin-bottom:12px}.cert-body{font-size:.92rem;color:var(--muted);line-height:1.7}.cert-body strong{color:var(--ink);font-family:var(--serif);font-size:1.05rem}.cert-date{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:18px}.finish-reset{margin-top:34px;padding-top:20px;border-top:1px solid var(--rule)}@media (max-width: 900px){.shell-nav{transform:translate(-100%);transition:transform .25s ease;width:min(84vw,var(--nav-w))}.nav-open .shell-nav{transform:translate(0)}.shell-main{margin-left:0}.topbar{display:flex}.shell-overlay{display:block}.shell-overlay[hidden]{display:none}.shell-main .page{padding:36px 22px 64px}.shell-footer{padding:20px 22px}.home-progress .btn,.home-progress .progress{flex:1 1 100%;text-align:center}.module-nav{flex-direction:column}.module-nav-link.next{text-align:left;align-items:flex-start}}@media (min-width: 901px){.shell-overlay{display:none}}@media print{.shell-nav,.topbar,.shell-footer,.btn,.link-btn,.finish-list,.finish-reset,.cert-wrap label,.cert-wrap input,.cert-wrap h2,.finish>.c-eyebrow,.finish>h1,.finish>.c-p{display:none!important}.shell-main{margin:0}.shell-main .page{padding:0;max-width:none}.cert{border-width:3px;margin:0}}
