@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.f130cd20.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}
@font-face{font-family:NB International Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/NBInternationalPro-Light.woff2)format("woff2")}@font-face{font-family:NB International Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/NBInternationalPro-Regular.woff2)format("woff2")}@font-face{font-family:NB International Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/NBInternationalPro-Medium.woff2)format("woff2")}@font-face{font-family:NB International Pro;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/NBInternationalPro-Bold.woff2)format("woff2")}@font-face{font-family:NB International Pro;font-style:italic;font-weight:400 500;font-display:swap;src:url(/fonts/NBInternationalPro-Italic.woff2)format("woff2")}@font-face{font-family:STK Bureau Serif;font-style:normal;font-weight:300 400;font-display:swap;src:url(/fonts/STKBureauSerif-Book.woff2)format("woff2")}@font-face{font-family:STK Bureau Serif;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/STKBureauSerif-Medium.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f6f5;--surface:#fff;--surface-2:#edeceb;--topbar-bg:#ffffffd9;--ink:#191919;--ink-2:#595959;--ink-3:#6b6b6b;--on-ink:#fff;--on-accent:#fff;--line:#0000000f;--track:#eef0f2;--dot-border:#cdd1d6;--blue:#20f;--blue-dark:#20f;--blue-soft:#2200ff0d;--blue-line:#20f3;--green:#006b4f;--green-soft:#e7f7f0;--red:#d64545;--red-soft:#fbecec;--red-text:#b3261e;--hover-bg:#0000000a;--card-hover-border:#0003;--overlay:#14121066;--amber:#b97f10;--amber-soft:#fdf3df;--radius:2px;--shadow:none;--font:"NB International Pro",system-ui,sans-serif;--serif:"STK Bureau Serif",Georgia,serif;--mono:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;--font-weight-strong:600;--topbar-h:60px;--notice-h:40px;--chrome-h:var(--topbar-h)}:root:has(.signed-out-notice){--chrome-h:calc(var(--topbar-h) + var(--notice-h))}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141414;--surface:#1f1f1f;--surface-2:#ffffff1a;--topbar-bg:#1f1f1fd9;--ink:#ededed;--ink-2:#a3a3a3;--ink-3:#8c8c8c;--on-ink:#141414;--on-accent:#141414;--line:#ffffff14;--track:#ffffff1a;--dot-border:#ffffff40;--blue:#49b0ff;--blue-dark:#49b0ff;--blue-soft:#49b0ff1f;--blue-line:#49b0ff4d;--green:#5fd3a6;--green-soft:#5fd3a624;--red:#f06565;--red-soft:#f0656524;--red-text:#ff7b72;--hover-bg:#ffffff0f;--card-hover-border:#ffffff4d;--overlay:#0009;--amber:#e0a63a;--amber-soft:#e0a63a24}:root[data-theme=dark] .brand .logo{filter:invert()}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--surface)}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.4}::selection{background-color:var(--blue);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.topbar{z-index:50;height:var(--topbar-h);background:var(--topbar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:0 28px;display:flex;position:sticky;top:0}.signed-out-notice{top:var(--topbar-h);z-index:49;height:var(--notice-h);background:var(--amber-soft);border-bottom:1px solid var(--line);color:var(--ink);justify-content:center;align-items:center;gap:12px;padding:0 56px;font-size:14px;display:flex;position:sticky;overflow:hidden}.signed-out-notice-close{width:28px;height:28px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.signed-out-notice-close:hover{background:var(--hover-bg);color:var(--ink)}.brand{align-items:center;display:flex}.brand .logo{width:auto;height:20px;margin-top:-3px;display:block}.topbar nav{color:var(--ink-2);gap:22px;font-size:15px;display:flex}.topbar nav a:hover{color:var(--ink)}.topbar .spacer{flex:1}.topbar-controls{flex:none;align-items:center;gap:24px;display:flex}.btn{border:1px solid var(--ink);color:var(--ink);background:0 0;border-radius:2px;align-items:center;gap:8px;padding:6px 12px 5px;font-size:14px;font-weight:400;transition:all .15s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--on-ink)}.btn.primary,.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.btn.primary:hover,.btn.dark:hover{opacity:.8}.btn.lg{border-radius:2px;padding:8px 16px 7px;font-size:16px}.shell{min-height:calc(100vh - var(--chrome-h));z-index:1;display:flex;position:relative}.sidebar{--sidebar-w:300px;--sidebar-pad-top:22px;--sidebar-pad-x:16px;--sidebar-pad-bottom:40px;width:var(--sidebar-w);border-right:1px solid var(--line);background:var(--surface);padding:var(--sidebar-pad-top)var(--sidebar-pad-x)var(--sidebar-pad-bottom);top:var(--chrome-h);height:calc(100vh - var(--chrome-h));flex-shrink:0;position:sticky;overflow-y:auto}.lesson-toc .course-label,.lesson-toc .course-name{padding-right:32px}.sidebar .course-label{width:fit-content;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;padding:0 10px;font-size:12px;text-decoration:none;display:inline-block}a.course-label:hover{color:var(--ink)}.sidebar .course-name{padding:2px 10px 12px;font-size:16px;font-weight:400}.progress-wrap{padding:0 10px 18px}.progress-bar{background:var(--track);border-radius:0;height:6px;overflow:hidden}.progress-bar>div{background:var(--blue);border-radius:0;height:100%;transition:width .4s}.progress-meta{color:var(--ink-3);justify-content:space-between;margin-top:7px;font-size:12px;display:flex}.side-act{margin-bottom:6px}.side-act-head{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);padding:10px 10px 4px;font-size:12px;font-weight:400}.side-step{text-align:left;cursor:pointer;width:100%;color:var(--ink-2);background:0 0;border:0;border-radius:0;align-items:flex-start;gap:9px;padding:6px 10px;font-size:13px;line-height:1.45;display:flex}.side-step:hover{background:var(--hover-bg)}.side-step.active{background:var(--blue-soft);color:var(--blue-dark);font-weight:400}.side-step .dot{border:1.5px solid var(--dot-border);width:16px;height:16px;color:var(--on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:10px;display:flex}.side-step.done .dot{background:var(--green);border-color:var(--green)}.side-stops{padding:1px 0 4px 28px}.side-stop{text-align:left;cursor:pointer;width:100%;color:var(--ink-3);background:0 0;border:0;padding:4px 10px;font-size:12.5px;display:block}.side-stop:hover{background:var(--hover-bg)}.side-stop.active{color:var(--blue-dark);font-weight:400}.lesson-toc-list .side-step .toc-num{font-family:var(--mono);font-size:11px;line-height:inherit;color:var(--ink-3);flex-shrink:0}.side-step.locked{opacity:.55;cursor:default}.side-step.locked:hover{background:0 0}.main{flex-direction:column;flex:1;min-width:0;display:flex}.hero{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:minmax(320px,1fr) minmax(0,560px);align-items:center;gap:48px;padding:64px 56px;display:grid}.hero-art{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface)url(/abstract-generic-1.jpg) center/cover no-repeat;border-radius:2px}:root[data-theme=dark] .hero-art{background-image:url(/abstract-generic-1-dark.jpg)}.hero .eyebrow{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2);align-items:center;margin-bottom:18px;font-size:12px;font-weight:400;display:inline-flex}.hero h1{letter-spacing:-1.92px;max-width:640px;font-size:64px;font-weight:400;line-height:1;transform:translate(-4px)}.hero p.sub{color:var(--ink-2);max-width:520px;margin-top:18px;font-size:18px}.hero .hero-cta{align-items:center;gap:12px;margin-top:28px;display:flex}.hero .stats{justify-content:space-between;margin-top:40px;display:flex}.hero .stat{flex:1}.hero .stat b{font-size:22px;font-weight:400;display:block}.hero .stat span{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);font-size:12px}.section{padding:72px 56px 20px}.section+.section{padding-top:8px}.section h2{letter-spacing:-.64px;margin-bottom:6px;font-size:32px;font-weight:400;line-height:1.2}.section .section-sub{color:var(--ink-3);margin-bottom:26px;font-size:14px}.module-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;display:grid}.module-card{background:var(--surface);border:1px solid var(--line);border-radius:2px;flex-direction:column;gap:12px;padding:22px;transition:transform .15s,border-color .15s;display:flex}.module-card:hover{border-color:var(--card-hover-border);transform:translateY(-2px)}.module-card.coming-soon{opacity:.6;cursor:default}.module-card.coming-soon:hover{border-color:var(--line);transform:none}.module-card .row{justify-content:space-between;align-items:center;display:flex}.module-card .num{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:400}.module-card h3{font-size:20px;font-weight:400;line-height:1.2;transform:translate(-1px)}.module-card p{color:var(--ink-2);flex:1;font-size:13.5px}.module-card .meta{color:var(--ink-3);align-items:center;gap:14px;font-size:12.5px;display:flex}.badge{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;border-radius:2px;padding:3px 9px;font-size:10px;font-weight:400}.badge.todo{background:var(--surface-2);color:var(--ink-2)}.badge.progress{background:var(--blue-soft);color:var(--blue-dark)}.badge.done{background:var(--green-soft);color:var(--green)}.crumbs{color:var(--ink-3);margin-bottom:18px;font-size:13px}.crumbs a:hover{color:var(--ink)}.module-hero{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:1.05fr .95fr;gap:44px;padding:48px 56px;display:grid}.module-hero .eyebrow{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:10px;font-size:12px;font-weight:400}.module-hero h1{letter-spacing:-1.2px;font-size:40px;font-weight:400;line-height:1.04}.module-hero .tagline{color:var(--ink-2);margin-top:12px;font-size:15.5px}.module-hero .meta-row{color:var(--ink-3);gap:18px;margin:20px 0 26px;font-size:13px;display:flex}.module-hero .btn{margin-top:28px}.objectives{margin-top:8px}.objectives h4{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;font-size:12px;font-weight:400}.objectives li{color:var(--ink-2);gap:11px;padding:7px 0;font-size:13.8px;list-style:none;display:flex}.objectives li:before{content:"✓";color:var(--blue);flex-shrink:0}.course-art img{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:2px;width:100%;display:block}.video-card{border:1px solid var(--line);aspect-ratio:16/9;color:#fff;background:#0e1116;border-radius:2px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.video-card .vignette{position:absolute;inset:0}.video-card .play{color:#191919;background:#fffffff2;border:0;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:20px;display:flex;position:relative}.video-card .vid-label{color:#ffffffd9;font-size:12.5px;position:absolute;bottom:14px;left:18px}.video-card .vid-dur{background:#0000008c;border-radius:0;padding:3px 8px;font-size:11.5px;position:absolute;bottom:14px;right:16px}.video-note{color:var(--ink-3);margin-top:10px;font-size:12px}.lesson-list{padding:40px 56px 72px}.lesson-list h2{margin-bottom:16px;font-size:20px;font-weight:400}.lesson-row{background:var(--surface);border:1px solid var(--line);border-radius:0;align-items:center;gap:16px;margin-bottom:10px;padding:15px 20px;transition:border-color .15s;display:flex}.lesson-row:hover{border-color:var(--card-hover-border)}.lesson-row .idx{font-family:var(--mono);color:var(--ink-3);width:36px;font-size:12px;font-weight:400;line-height:1.45}.lesson-row .t{flex:1;font-size:14.5px;font-weight:400}.lesson-row .type{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2);background:var(--bg);border-radius:2px;padding:4px 10px;font-size:10.5px;font-weight:400}.lesson-row .type.sandbox{background:var(--blue-soft);color:var(--blue-dark)}.lesson-row .state{color:var(--ink-3);text-align:right;width:92px;margin-left:12px;font-size:12px}.lesson-row .state.done{color:var(--green)}.lesson-row .state.progress{color:var(--blue-dark)}.lesson-row.coming-soon{opacity:.55}.lesson-row.coming-soon:hover{border-color:var(--line)}.lesson-page{background:var(--surface);border-bottom:1px solid var(--line);flex:1;padding:56px 56px 80px}.lesson-page-inner{max-width:760px;margin:0 auto}.lesson-page .crumbs{margin-bottom:22px}.lesson-page .lesson-kicker{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:8px;font-size:12px;font-weight:400}.lesson-page h1{letter-spacing:-1.2px;margin-bottom:24px;font-size:40px;font-weight:400;line-height:1.04}.lesson-page .video-card.lesson-video{margin-bottom:8px}.lesson-page .lesson-video{background:#000}.lesson-video-embed{aspect-ratio:16/9;width:100%;position:relative;overflow:hidden}.lesson-video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.lesson-page .lesson-reading{border:1px solid var(--line);border-radius:var(--radius);margin:16px 0 24px}.lesson-page .lesson-reading summary{cursor:pointer;color:var(--ink-2);padding:14px 18px;font-size:14px;font-weight:500;list-style-position:inside}.lesson-page .lesson-reading summary:hover{color:var(--ink)}.lesson-page .lesson-reading .script{padding:4px 18px 8px}.lesson-page .script p{font-family:var(--serif);color:var(--ink-2);margin-bottom:16px;font-size:16px;line-height:1.7}.lesson-page .script img{border:1px solid var(--line);border-radius:var(--radius);max-width:100%;height:auto;margin:24px 0;display:block}.lesson-page .script li{font-family:var(--serif)}.script strong,.script b{font-family:var(--serif);font-weight:var(--font-weight-strong);color:var(--ink)}.script ul,.script ol{margin:0 0 16px;padding-left:1.4em}.script li{margin-bottom:8px}.script table{border-collapse:collapse;width:100%;color:var(--ink-2);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin:0 0 20px;font-size:15px;line-height:1.6}.script th,.script td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 16px 12px 0}.script th{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink);background:0 0;font-size:12px;font-weight:400}.script tbody tr:last-child td{border-bottom:none}.script .callout{background:var(--blue-soft);border-left:3px solid var(--blue);margin:0 0 16px;padding:16px 18px}.script .callout .callout-label{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:6px;font-size:12px;font-weight:400;display:block}.script .callout p{margin:0}.lesson-page-nav{border-top:1px solid var(--line);gap:12px;margin-top:32px;padding-top:24px;display:flex}.quiz-card{background:var(--surface);border:1px solid var(--line);border-radius:2px;margin-top:24px;padding:28px 32px}.quiz-progress{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;font-size:12px;font-weight:400}.quiz-prompt{margin-bottom:20px;font-size:20px;font-weight:400;line-height:1.4}.quiz-options{flex-direction:column;gap:10px;display:flex}.quiz-option{text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:13px 16px;font-size:14.5px;line-height:1.5;transition:all .15s}.quiz-option:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft)}.quiz-option:disabled{cursor:default;color:var(--ink-2)}.quiz-option.correct{border-color:var(--green);background:var(--green-soft);color:var(--ink)}.quiz-option.wrong{border-color:var(--red);background:var(--red-soft);color:var(--ink)}.quiz-feedback{border-left:3px solid var(--green);background:var(--green-soft);margin-top:18px;padding:14px 16px;font-size:14px}.quiz-feedback.wrong{border-left-color:var(--amber);background:var(--amber-soft)}.quiz-feedback b{letter-spacing:.02em;margin-bottom:4px;font-size:13px;display:block}.quiz-feedback p{color:var(--ink-2);margin:0}.quiz-prompt a,.quiz-feedback a{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.quiz-nav{gap:12px;margin-top:20px;display:flex}.quiz-results{text-align:center;padding:40px 32px}.quiz-score{font-family:var(--mono);letter-spacing:-.02em;font-size:40px;font-weight:400}.quiz-score-note{color:var(--ink-2);margin-top:8px;font-size:14.5px}.quiz-results .quiz-nav{justify-content:center;margin-top:28px}.lesson-shell{height:calc(100vh - var(--chrome-h) - 54px);display:flex}.pane-sandbox{background:var(--bg);flex-direction:column;flex:1.25;justify-content:center;align-items:center;min-width:0;padding:20px;display:flex}.sandbox-frame{border:1px solid var(--line);background:var(--surface);border-radius:2px;flex-direction:column;flex:none;max-width:100%;max-height:100%;display:flex;overflow:hidden}.sandbox-chrome{border-bottom:1px solid var(--line);background:var(--bg);align-items:center;gap:8px;padding:10px 14px;display:flex}.sandbox-chrome .dots span{border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.sandbox-chrome .dots span:first-child{background:#f56b62}.sandbox-chrome .dots span:nth-child(2){background:#f5bd4f}.sandbox-chrome .dots span:nth-child(3){background:#53c64d}.sandbox-chrome .url{background:var(--surface);border:1px solid var(--line);min-width:0;font-family:var(--mono);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;border-radius:0;flex:1;padding:5px 12px;font-size:11px;overflow:hidden}.sandbox-chrome .live{font-family:var(--mono);letter-spacing:.03em;color:var(--on-accent);background:var(--green);border-radius:2px;padding:3px 8px;font-size:10px;font-weight:400}.flow-bottom-bar{border-top:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.flow-bottom-bar .btn[disabled]{opacity:.4;pointer-events:none}.congrats{text-align:center;border-bottom:1px solid var(--line);background:var(--surface);padding:96px 56px 72px}.congrats-badge{background:var(--blue);width:72px;height:72px;color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;font-size:30px;display:flex}.congrats .eyebrow{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--blue-dark);font-size:12px;font-weight:400}.congrats h1{letter-spacing:-1.92px;margin:12px 0 14px;font-size:64px;font-weight:400;line-height:1}.congrats .sub{color:var(--ink-2);max-width:600px;margin:0 auto;font-size:17px}.congrats-stats{justify-content:center;gap:56px;margin-top:40px;display:flex}.congrats-stats .stat b{letter-spacing:-.5px;font-size:26px;font-weight:300;display:block}.congrats-stats .stat span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);font-size:12px}.congrats .hero-cta{justify-content:center;gap:12px;margin-top:36px;display:flex}.next-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px;display:grid}.next-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:10px;padding:22px;transition:border-color .15s,transform .15s;display:flex}.next-card:hover{border-color:var(--card-hover-border);transform:translateY(-2px)}.next-card .num{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--blue-dark);font-size:12px;font-weight:400}.next-card h3{font-size:20px;font-weight:400;line-height:1.2}.next-card p{color:var(--ink-2);flex:1;font-size:13.5px}.next-card .go{color:var(--blue-dark);font-size:13px}.callout{border:1px solid var(--blue-line);background:var(--blue-soft);color:var(--blue-dark);border-radius:2px;margin:18px 0;padding:14px 16px;font-size:13px}.callout b{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:400;display:block}.footer{border-top:1px solid var(--line);background:var(--surface);color:var(--ink-3);z-index:1;align-items:center;gap:18px;margin-top:auto;padding:26px 56px;font-size:12.5px;display:flex;position:relative}.footer .made-with{position:absolute;left:50%;transform:translate(-50%)}.footer .heart{color:var(--red-text)}body:has(.shell.flow-mode){height:100vh;overflow:hidden}.shell.flow-mode{height:calc(100vh - var(--chrome-h));min-height:0}.shell.flow-mode #flow-sidebar-slot{height:100%}.shell.flow-mode .sidebar{--sidebar-w:240px;--sidebar-pad-top:18px;--sidebar-pad-x:10px;--sidebar-pad-bottom:32px;height:100%;position:relative;top:0}.shell.flow-mode .lesson-shell{height:calc(100vh - var(--chrome-h))}.sidebar{transition:width .25s,padding .25s}.sidebar.collapsed{width:40px;padding-left:8px;padding-right:8px;overflow:hidden}.sidebar>*{transition:opacity .15s}.sidebar.no-anim,.sidebar.no-anim>*{transition:none}.side-collapse{z-index:2;border:1px solid var(--line);background:var(--surface);cursor:pointer;width:24px;height:24px;color:var(--ink-3);border-radius:2px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:flex;position:absolute;top:10px;right:8px}.side-collapse:hover{color:var(--ink);background:var(--hover-bg)}.sidebar.collapsed>:not(.side-collapse){opacity:0;visibility:hidden;pointer-events:none}.shell.flow-mode .pane-sandbox{flex:1}.sandbox-scale-wrap{background:var(--bg);position:relative;overflow:hidden}.sandbox-stage{transform-origin:50%;background:var(--bg);position:absolute;top:50%;left:50%}.sandbox-screen{opacity:1;background:#fff;border:0;width:100%;height:100%;transition:opacity .18s;position:absolute;top:0;left:0}.sandbox-screen.hidden-frame{opacity:0;pointer-events:none;z-index:-1;visibility:hidden}.sandbox-frame.loading{width:min(100%,1280px);height:100%}.sandbox-body{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.sandbox-loading{z-index:4;background:var(--bg);color:var(--ink-2);font-family:var(--mono);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:12px;display:flex;position:absolute;inset:0}.sandbox-spinner{border:3px solid var(--track);border-top-color:var(--ink);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite sandbox-spin}@keyframes sandbox-spin{to{transform:rotate(360deg)}}.sandbox-chrome .walkthrough-step{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:10.5px}@media (max-width:1100px){.hero,.module-hero{grid-template-columns:1fr}}.learning-card{cursor:default}.learning-card .progress-bar{margin:10px 0 8px}.learning-card .learning-cta{margin-top:12px}.learning-hero{padding-bottom:8px}.learning-empty p{margin-top:0}.learning-empty .btn{margin-top:14px}.signin-main,.cert-main{min-height:calc(100vh - var(--chrome-h));z-index:1;justify-content:center;align-items:flex-start;padding:48px 24px;display:flex;position:relative}.signin-card,.cert-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:440px;padding:32px}.cert-card{text-align:center;max-width:620px}.cert-main .section{width:100%;max-width:960px}.signin-card h1{margin:0 0 8px}.signin-card>.btn{margin-top:20px}.signin-card form{flex-direction:column;gap:10px;margin-top:16px;display:flex}.signin-card label{font-size:13px;font-weight:600}.signin-card input{border:1px solid var(--line);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink);padding:10px 12px;font-size:15px}.signin-card input:focus{outline:2px solid var(--blue);outline-offset:-1px}.muted{color:var(--ink-3)}.signin-card .notice{color:var(--ink-2);margin:0;font-size:13.5px}.signin-card .error{color:var(--red-text);margin:12px 0 0;font-size:13.5px}.cert-holder{margin:10px 0 4px;font-size:17px}.cert-id{font-family:var(--mono);color:var(--ink-3);margin-top:18px;font-size:12px}.cert-card .hero-cta{justify-content:center;gap:12px;margin-top:22px;display:flex}.cert-cta{margin-top:18px}a.avatar{text-decoration:none}.avatar{background:var(--blue);width:32px;height:32px;color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;font-size:12.5px;font-weight:600;display:flex}button.avatar{cursor:pointer;border:none;padding:0;font-family:inherit}.auth-menu{--auth-menu-gutter:20px;position:relative}.auth-menu-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:50;min-width:220px;padding:6px 0;position:absolute;top:calc(100% + 8px);right:0}.auth-menu-email{padding:8px var(--auth-menu-gutter);word-break:break-all;font-size:13.5px}.auth-menu-role{padding:0 var(--auth-menu-gutter)8px;color:var(--ink-2);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;margin-top:-6px;font-size:12px;font-weight:400}.auth-menu-error{padding:6px var(--auth-menu-gutter);color:var(--red-text);font-size:12.5px}.auth-menu-sep{border-top:1px solid var(--line);margin:0 0 6px}.auth-menu-item{width:100%;padding:8px var(--auth-menu-gutter);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;font-size:13.5px;text-decoration:none;display:block}.auth-menu-item:hover{background:var(--hover-bg)}.auth-menu-locale{justify-content:space-between;align-items:center;gap:16px;display:flex}.auth-menu-check{color:var(--ink-3);flex:none}.lang-menu{--auth-menu-gutter:20px;position:relative}.lang-menu-button{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font-family:var(--mono);letter-spacing:.03em;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.lang-menu-button:hover{background:var(--hover-bg)}.lang-menu-globe{color:var(--ink-2);flex:none}.lang-menu-pop{min-width:190px}.theme-menu .lang-menu-button{padding:6px 8px}.theme-menu .lang-menu-globe{color:var(--ink)}.domain-overflow{display:inline-block;position:relative}.domain-overflow-more{color:var(--blue);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0}.domain-overflow-more:hover{text-decoration:underline}.domain-overflow-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:50;min-width:180px;max-width:320px;padding:6px 0;position:absolute;top:calc(100% + 8px);left:0}.domain-overflow-item{word-break:break-all;padding:4px 14px;font-size:13.5px;display:block}.enterprise-course-report{margin:28px 0}.enterprise-course-report-label{color:var(--ink-2);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;margin-bottom:14px;font-size:12px;font-weight:400}.enterprise-course-report-rows{gap:14px;display:grid}.enterprise-course-report-row{color:inherit;gap:7px;text-decoration:none;display:grid}.enterprise-course-report-row:hover .enterprise-course-report-header span:first-child{color:var(--blue);text-decoration:underline}.enterprise-course-report-header{justify-content:space-between;gap:16px;display:flex}.enterprise-course-report-header span:last-child{color:var(--ink-2);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:400}.enterprise-course-report-track{background:var(--line);border-radius:2px;height:6px;overflow:hidden}.enterprise-course-report-fill{background:var(--green);border-radius:2px;height:100%}.section-divider{border:0;border-top:1px solid var(--line);margin:28px 0}.section-eyebrow{color:var(--ink-2);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;margin-bottom:14px;font-size:12px;font-weight:400}.roster-action{border:1px solid var(--line);color:var(--ink-2);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:2px;padding:2px 8px;font-size:12px;transition:all .15s}.roster-action:hover{border-color:var(--ink);color:var(--ink)}.roster-action:disabled{opacity:.5;cursor:default}.roster{margin:12px 0 20px}.invite-filter{align-items:center;gap:6px;margin-bottom:10px;display:inline-flex}.roster-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.roster-search{border:1px solid var(--line);border-radius:var(--radius);max-width:360px;font:inherit;background:var(--surface);color:var(--ink);flex:1;padding:10px 12px;font-size:15px}.roster-search:focus{outline:2px solid var(--blue);outline-offset:-1px}.roster-count{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);font-size:12px;font-weight:400}.completions-toolbar{flex-wrap:wrap}.completions-toolbar .roster-search{box-sizing:border-box;height:38px;padding:0 12px;font-size:14px}.completions-select{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);height:38px;font:inherit;color:var(--ink);background:0 0;padding:0 10px;font-size:14px}.completions-toggle{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.completions-footer{justify-content:flex-end;margin-top:12px;display:flex}.completions-download{border:1px solid var(--line);border-radius:var(--radius);font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);cursor:pointer;background:0 0;padding:9px 14px;font-size:12px;font-weight:400;transition:color .15s,border-color .15s}.completions-download:hover:not(:disabled){color:var(--ink);border-color:var(--ink-3)}.completions-download:disabled{opacity:.4;cursor:default}.completions-count{margin:0 0 12px;display:block}.pager{align-items:center;gap:16px;margin-top:12px;display:flex}.pager-range{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);margin-right:auto;font-size:12px;font-weight:400}.pager-btn{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:400;transition:color .15s}.pager-btn:hover:not(:disabled){color:var(--ink)}.pager-btn:disabled{opacity:.4;cursor:default}.roster-table{border-collapse:collapse;width:100%;color:var(--ink-2);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font-size:15px}.roster-table th,.roster-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px 12px 0}.roster-table th{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink);font-size:12px;font-weight:400}.roster-table tbody tr:last-child td{border-bottom:none}.roster-table tbody tr:hover{background:var(--hover-bg)}.roster-link{color:var(--ink);flex-direction:column;gap:1px;text-decoration:none;display:flex}.roster-table td.tree-child{padding-left:34px;position:relative}.tree-child .roster-link{vertical-align:middle;display:inline-flex}.tree-branch{border-left:1px solid var(--line);border-bottom:1px solid var(--line);width:12px;position:absolute;top:0;bottom:50%;left:14px}.roster-name{color:var(--blue)}.roster-link:hover .roster-name{text-decoration:underline}.roster-email{color:var(--ink-3);font-size:12.5px}.roster-progress{font-family:var(--mono);color:var(--ink-2);font-size:13px}.roster-role{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius);background:var(--hover-bg);color:var(--ink-2);padding:2px 8px;font-size:12px;font-weight:400;display:inline-block}.roster-role.is-admin{background:var(--blue-soft);color:var(--blue)}.roster-role.is-complete{background:var(--green-soft);color:var(--green)}.roster-empty{color:var(--ink-3);text-align:center;padding:20px}.user-detail-back{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:12px;font-weight:400}.user-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:16px 0 4px;display:grid}.user-meta dt{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);margin-bottom:4px;font-size:12px;font-weight:400}.user-meta dd{margin:0;font-size:15px}.user-block{padding-left:0;padding-right:0}.user-block h3{margin-bottom:12px;font-size:20px;font-weight:400}.modal-overlay{background:var(--overlay);z-index:100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:560px;max-height:80vh;padding:20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-head h3{margin:0}.enterprise-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.enterprise-head .btn{flex-shrink:0}.enterprise-form{flex-direction:column;gap:12px;display:flex}.enterprise-form-field{color:var(--ink-3);flex-direction:column;gap:4px;font-size:13px;display:flex}.enterprise-form-field input,.enterprise-form-field textarea{resize:vertical;width:100%;max-width:none}.enterprise-form .btn{align-self:flex-start}.domain-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.domain-row{align-items:center;gap:12px;display:flex}.domain-name{color:var(--ink);overflow-wrap:anywhere;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:1;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.domain-name-removed{color:var(--ink-3);text-decoration:line-through}.domain-removed-tag{font-family:var(--mono);text-transform:uppercase;color:var(--ink-3);font-size:11px;text-decoration:none}.domain-row-input input{flex:1}.domain-action-col{flex-shrink:0;justify-content:flex-start;width:84px;display:flex}.confirm-actions{gap:12px;margin-top:16px;display:flex}@media (max-width:720px){:root{--topbar-h:82px;--notice-h:64px}.topbar{height:auto;min-height:var(--topbar-h);flex-wrap:wrap;gap:8px 12px;padding:10px 14px}.signed-out-notice{text-align:center;padding:8px 44px 8px 14px;font-size:13px;line-height:1.35}.signed-out-notice-close{right:8px}.topbar .spacer{display:none}.brand{flex:1 1 0;min-width:0}.topbar-controls{gap:8px}.topbar nav{order:10;gap:16px;width:100%;font-size:14px;overflow-x:auto}.topbar nav a{white-space:nowrap;flex:none}.brand .logo{object-fit:contain;object-position:left center;max-width:100%;height:15px}.topbar .btn{padding:5px 8px 4px;font-size:13px}.topbar .lang-menu-button{padding:5px 6px}.hero{gap:28px;padding:40px 20px}.hero h1{letter-spacing:-1.3px;font-size:44px}.section{padding:48px 20px 20px}.module-hero{gap:28px;padding:36px 20px}.module-hero h1{font-size:32px}.lesson-page{padding:32px 20px 64px}.lesson-list{padding:32px 20px 56px}.lesson-row{gap:10px;padding:13px 14px}.lesson-row .idx{width:22px}.lesson-row .state{width:auto;margin-left:4px}.shell:not(.flow-mode){flex-direction:column}.shell:not(.flow-mode) .sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;height:auto;max-height:45vh;position:static}.shell:not(.flow-mode) .sidebar .side-collapse{display:none}.shell:not(.flow-mode) .sidebar.collapsed{padding:var(--sidebar-pad-top)var(--sidebar-pad-x)var(--sidebar-pad-bottom);overflow-y:auto}.shell:not(.flow-mode) .sidebar.collapsed>:not(.side-collapse){opacity:1;visibility:visible;pointer-events:auto}.module-grid,.next-grid{grid-template-columns:1fr}.quiz-card{padding:20px}.footer{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:22px 20px}.footer .made-with{position:static;transform:none}}
.ds-text{color:var(--ink);margin:0}.ds-text--serif{font-family:var(--serif);font-size:15px;font-weight:400;line-height:1.5}.ds-text--sans{font-family:var(--font);font-size:15px;font-weight:400;line-height:1.3}.ds-text--caption{font-family:var(--serif);color:var(--ink-2);-webkit-user-select:none;user-select:none;font-size:10px;line-height:150%}.ds-text--mono{font-family:var(--mono);letter-spacing:-.12px;font-size:12px;font-weight:400;line-height:1.3}.ds-text--link{color:var(--blue);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.ds-text--link:hover{background:var(--blue);color:var(--bg)}.ds-title{color:var(--ink);margin:0}.ds-title--h1-sans{font-family:var(--font);letter-spacing:-.02em;max-width:490px;font-size:24px;font-weight:400;line-height:1.2}.ds-title--h1-serif{font-family:var(--serif);letter-spacing:-.02em;font-size:24px;font-weight:300;line-height:1.2}.ds-title--h2-sans{font-family:var(--font);letter-spacing:-.01em;font-size:18px;font-weight:400;line-height:1.3}.ds-title--h2-serif{font-family:var(--serif);letter-spacing:-.01em;font-size:20px;font-weight:300;line-height:1.3}.ds-title--h3-sans{font-family:var(--font);letter-spacing:-.01em;font-size:18px;line-height:1.3}.ds-title--h3-serif{font-family:var(--serif);letter-spacing:-.01em;font-size:18px;font-weight:300;line-height:1.3}@media (min-width:768px){.ds-title--h1-sans{max-width:none;font-size:36px;line-height:1.1}.ds-title--h1-serif{font-size:32px}.ds-title--h2-sans{font-size:20px}.ds-title--h2-serif{font-size:24px}.ds-title--h3-sans,.ds-title--h3-serif{font-size:20px}}.ds-button{font-family:var(--font);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:var(--radius);border:none;justify-content:center;align-items:center;width:fit-content;font-size:15px;font-weight:400;line-height:1.3;text-decoration:none;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.ds-button--primary{background:var(--ink);color:var(--bg)}.ds-button--primary:hover{opacity:.8}.ds-button--secondary{background:var(--surface-2);color:var(--ink)}.ds-button--secondary:hover{background:var(--ink);color:var(--bg)}.ds-button--outline{border:1px solid var(--ink);color:var(--ink);background:0 0}.ds-button--outline:hover{background:var(--ink);color:var(--bg)}.ds-button--sm{gap:10px;height:28px;padding:1px 8px 0}.ds-button--md{gap:8px;height:32px;padding:1px 10px 0}
