:root{--brand:#001e95;--brand-deep:#001670;--brand-lift:#0d2fb8;--accent:#0f9;--blue-100:#e8ebf9;--blue-50:#f2f4fc;--ground:#f4f5fa;--surface:#fff;--sunk:#eef0f8;--line:#d9ddee;--line-soft:#e8ebf5;--text:#0e1330;--text-soft:#4a5175;--text-faint:#646b8c;--mint-tint:#e3fff4;--mint-line:#6ff0bf;--danger:#a32d2d;--danger-bg:#fbebeb;--danger-line:#e8c4c4;--radius:6px;--shadow:0 1px 2px #001e950f, 0 8px 24px #001e950f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--text);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.6}h1,h2,h3,h4{letter-spacing:-.015em;text-wrap:balance;margin:0;font-family:Archivo,-apple-system,sans-serif}a{color:var(--brand)}code,.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace}.shell{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:460px;margin:0 auto;padding:0 20px}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.spread{justify-content:space-between;align-items:center;gap:16px;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-48{margin-top:48px}.masthead{background:var(--brand);color:#fff;border-bottom:3px solid var(--accent);padding:14px 0}.masthead a{color:#fff;text-decoration:none}.masthead .brand{align-items:center;gap:9px;display:flex}.masthead .brand-mark{width:auto;height:28px;display:block}.masthead .brand-sub{letter-spacing:.01em;border-left:1px solid #ffffff73;padding-left:9px;font-family:Archivo,sans-serif;font-size:15px;font-weight:700}.masthead nav{align-items:center;gap:18px;font-size:14px;display:flex}.masthead nav a{opacity:.88}.masthead nav a:hover{opacity:1;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card.flush{padding:0;overflow:hidden}.card.raise{box-shadow:var(--shadow)}.panel-head{border-bottom:1px solid var(--line-soft);background:var(--sunk);padding:14px 20px}.panel-head h2,.panel-head h3{color:var(--brand);font-size:14px;font-weight:700}.page-title{color:var(--brand);font-size:26px;font-weight:700}.section-title{font-size:18px;font-weight:600}.lede{color:var(--text-soft);max-width:62ch}.small{font-size:13px}.muted{color:var(--text-soft)}.faint{color:var(--text-faint)}.eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--brand);font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500}.badge{letter-spacing:.07em;text-transform:uppercase;background:var(--sunk);color:var(--text-soft);border:1px solid var(--line-soft);white-space:nowrap;border-radius:3px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:inline-block}.badge.published{background:var(--brand);color:#fff;border-color:var(--brand)}.badge.draft{background:var(--surface);color:var(--brand);border-color:var(--brand)}.badge.retired{background:var(--sunk);color:var(--text-faint);border-color:var(--line);text-decoration:line-through;text-decoration-thickness:1px}.badge.code{background:var(--blue-100);color:var(--brand);border-color:#c3cbee}.btn{font:inherit;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:8px 15px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}.btn.danger{color:var(--danger);border-color:var(--danger-line)}.btn.danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.btn.small{padding:5px 10px;font-size:13px}.btn.icon{padding:5px 9px;font-size:13px;line-height:1}label.field{flex-direction:column;gap:6px;font-size:13.5px;font-weight:500;display:flex}label.field .hint{color:var(--text-faint);font-size:12.5px;font-weight:400}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:9px 11px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #001e9524}textarea{resize:vertical;min-height:90px;line-height:1.6}.checkline{color:var(--text-soft);align-items:flex-start;gap:9px;font-size:13.5px;display:flex}.checkline input{margin-top:3px}.notice{border-radius:var(--radius);border:1px solid;padding:11px 14px;font-size:14px}.notice.error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.notice.ok{background:var(--mint-tint);border-color:var(--mint-line);color:var(--brand)}.notice.info{background:var(--blue-100);color:var(--brand);border-color:#c3cbee}.notice.warn{background:var(--surface);border-color:var(--line);border-left:4px solid var(--brand);color:var(--brand)}.list{margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--line-soft)}.list>li:last-child{border-bottom:none}.rowitem{align-items:center;gap:14px;padding:13px 20px;display:flex}.rowitem:hover{background:var(--sunk)}.module{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.module+.module{margin-top:12px}.module-head{background:var(--sunk);border-bottom:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:12px;padding:12px 16px;display:flex}.module-head h3{font-size:15px;font-weight:600}.lesson{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:10px 16px;font-size:14px;display:flex}.lesson:last-child{border-bottom:none}.movers{flex-direction:column;gap:2px;display:flex}.movers button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text-faint);border-radius:3px;padding:2px 5px;font-size:10px;line-height:1}.movers button:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.movers button:disabled{opacity:.3;cursor:not-allowed}.pos{color:var(--text-faint);text-align:right;font-variant-numeric:tabular-nums;width:22px;font-family:IBM Plex Mono,monospace;font-size:11px}.shell.narrow{max-width:720px}.progress-track{background:var(--sunk);border:1px solid var(--line-soft);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:var(--brand);border-radius:4px 0 0 4px;height:100%;transition:width .26s}.lesson-link{color:inherit;text-decoration:none}.lesson-link:hover{background:var(--sunk)}.tick{border:1px solid var(--line);background:var(--surface);width:22px;height:22px;color:var(--text-faint);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.tick.done{background:var(--brand);border-color:var(--brand);color:#fff;font-size:12px}.prose{font-size:16px;line-height:1.7}.prose>*+*{margin-top:1em}.prose h2{color:var(--brand);margin-top:1.6em;font-family:Archivo,sans-serif;font-size:20px;font-weight:700}.prose h3{margin-top:1.4em;font-size:17px;font-weight:600}.prose ul,.prose ol{padding-left:24px}.prose li+li{margin-top:6px}.prose code{background:var(--sunk);border:1px solid var(--line-soft);border-radius:4px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:.88em}.prose pre{background:var(--sunk);border:1px solid var(--line-soft);border-radius:var(--radius);padding:14px 16px;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-muted);padding-left:16px}.prose img{border-radius:var(--radius);max-width:100%;height:auto}.prose table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line-soft);text-align:left;padding:8px 10px}.prose th{background:var(--sunk);font-weight:600}.answer-list{margin:0;padding:0;list-style:none}.answer-list li{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;font-size:14px;line-height:1.5}.answer-list li+li{margin-top:8px}.answer-list label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.answer-list input{flex:none;margin-top:3px}.answer-list li.is-picked{border-color:var(--brand);background:var(--blue-100)}.answer-list li.is-correct{border-color:var(--mint-line);background:var(--mint-tint)}.answer-list li.is-wrong{border-color:var(--danger-line);background:var(--danger-bg)}.answer-list .mark{width:16px;color:var(--brand);font-weight:700;display:inline-block}.answer-list li.is-wrong .mark{color:var(--danger)}.badge.wrong{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.card.stat{padding:16px 18px}.stat-value{color:var(--brand);font-variant-numeric:tabular-nums;margin:6px 0 2px;font-family:Archivo,sans-serif;font-size:26px;font-weight:700;line-height:1.2}.spark{align-items:flex-end;gap:2px;height:96px;display:flex}.spark-bar{background:var(--brand);opacity:.85;border-radius:2px 2px 0 0;flex:1;min-width:2px}.spark-bar:hover{opacity:1}.funnel-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:12px 20px;font-size:14px;display:flex}.funnel-row:last-child{border-bottom:none}.funnel-track{background:var(--sunk);border-radius:4px;flex:2;min-width:80px;height:8px;overflow:hidden}.funnel-fill{background:var(--brand);border-radius:4px 0 0 4px;height:100%}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:11px 14px}table.data th{background:var(--sunk);color:var(--text-soft);font-size:12px;font-weight:600}table.data tr:last-child td{border-bottom:none}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data a{text-decoration:none}.certificate{background:var(--brand);color:#fff;border-radius:var(--radius);border-left:4px solid var(--accent);box-shadow:var(--shadow);padding:34px 28px}.certificate-name{text-wrap:balance;margin-top:14px;font-family:Archivo,sans-serif;font-size:30px;font-weight:700;line-height:1.15}.certificate a{color:#fff}.video-holder{aspect-ratio:16/9;background:var(--brand);border-radius:var(--radius);position:relative;overflow:hidden}.video-poster{object-fit:cover;opacity:.45;width:100%;height:100%}.video-frame{border:0;width:100%;height:100%;display:block}.video-overlay{text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex;position:absolute;inset:0}.video-overlay p{opacity:.85;max-width:34ch;margin:0}.empty{text-align:center;color:var(--text-faint);padding:40px 20px;font-size:14px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;flex-direction:column;gap:10px;padding:18px;text-decoration:none;display:flex}.course-card:hover{border-color:var(--brand);box-shadow:var(--shadow)}.course-card h3{font-size:16.5px;font-weight:600}.course-card .price{color:var(--brand);font-variant-numeric:tabular-nums;font-family:Archivo,sans-serif;font-size:19px;font-weight:700}.course-card .price-row{margin-top:auto;padding-top:4px}.course-card-wrap{flex-direction:column;display:flex}.course-card-wrap .course-card{flex:1}.course-card-buy{margin-top:8px}.cart-link{align-items:center;gap:7px;display:inline-flex}.cart-count{background:var(--accent);min-width:20px;height:20px;color:var(--brand);font-variant-numeric:tabular-nums;border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}footer.site{border-top:1px solid var(--line);color:var(--text-faint);margin-top:64px;padding:24px 0 48px;font-size:13px}@media (max-width:640px){.rowitem{flex-wrap:wrap;gap:8px}.page-title{font-size:22px}.masthead .brand-mark{height:22px}.masthead .brand-sub{border-left:none;padding-left:0;font-size:13px}.masthead .brand{gap:7px}.masthead nav{gap:14px}}
