.course-nav[data-v-6d0b24d0]{--bg: #110e14;--surface: #1b1720;--line: #2e2836;--fg: #f1ebe4;--mute: #a39bab;--rust: #eb5a2e;--php: #8e92e0;--f-body: "Figtree", ui-sans-serif, system-ui, sans-serif;--f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}.course-nav-backdrop[data-v-6d0b24d0]{display:none}.course-nav-panel[data-v-6d0b24d0]{display:none;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:16px}.course-nav-head[data-v-6d0b24d0]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 10px}.course-nav-eyebrow[data-v-6d0b24d0]{margin:0;font:600 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}.course-nav-icon[data-v-6d0b24d0]{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}.course-nav-icon svg[data-v-6d0b24d0]{width:16px;height:16px}.course-nav-list[data-v-6d0b24d0]{overflow:auto;padding:0 8px 12px}.course-nav-chapter[data-v-6d0b24d0]{margin:0}.course-nav-chapter-row[data-v-6d0b24d0]{margin:0;font:inherit}.course-nav-chapter-btn[data-v-6d0b24d0]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 8px;border:0;border-radius:10px;background:transparent;color:var(--fg);text-align:left;cursor:pointer;font:600 14px/1.3 var(--f-body)}.course-nav-chapter-btn[data-v-6d0b24d0]:hover{background:var(--surface)}.course-nav-chapter-label[data-v-6d0b24d0]{flex:1;min-width:0}.course-nav-count[data-v-6d0b24d0]{font:500 12px/1 var(--f-mono);color:var(--mute)}.course-nav-check[data-v-6d0b24d0]{width:16px;height:16px;color:var(--php);flex:0 0 auto}.course-nav-lessons[data-v-6d0b24d0]{list-style:none;margin:0 0 8px;padding:0 0 0 8px}.course-nav-lesson[data-v-6d0b24d0]{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:10px;color:var(--fg);text-decoration:none;font-size:14px;line-height:1.35}.course-nav-lesson.is-done[data-v-6d0b24d0]{color:var(--mute)}.course-nav-lesson.is-current[data-v-6d0b24d0]{--brand-rust: var(--brand-rust-on-row);background:color-mix(in srgb,var(--rust) 18%,transparent);color:var(--rust);box-shadow:inset 3px 0 0 var(--rust)}.course-nav-lesson[data-v-6d0b24d0]:hover{background:var(--surface)}.course-nav-lesson.is-current[data-v-6d0b24d0]:hover{background:color-mix(in srgb,var(--rust) 24%,transparent)}.course-nav-state[data-v-6d0b24d0],.course-nav-dot[data-v-6d0b24d0]{flex:0 0 16px;margin-top:2px}.course-nav-state[data-v-6d0b24d0]{width:16px;height:16px}.course-nav-dot[data-v-6d0b24d0]{width:16px;height:16px;position:relative}.course-nav-dot[data-v-6d0b24d0]:before{content:"";position:absolute;top:5px;left:5px;width:6px;height:6px;border-radius:50%;background:var(--line)}@media(min-width:1024px){.course-nav[data-v-6d0b24d0]{position:sticky;top:84px;align-self:flex-start;width:300px;flex:0 0 300px;height:calc(100vh - 100px);z-index:5}.course-nav-panel[data-v-6d0b24d0]{display:flex;flex-direction:column;height:100%;overflow:hidden}.course-nav-list[data-v-6d0b24d0]{flex:1}}@media(max-width:1023px){.course-nav[data-v-6d0b24d0]{display:contents}.course-nav-backdrop[data-v-6d0b24d0]{display:block;position:fixed;inset:0;z-index:40;background:#08060a9e}.course-nav-panel[data-v-6d0b24d0]{display:flex;flex-direction:column;position:fixed;z-index:41;top:0;right:0;bottom:0;width:min(320px,100%);border-radius:0;border-top:0;border-bottom:0;border-right:0;transform:translate(100%);transition:transform .2s ease}.course-nav.is-drawer .course-nav-panel[data-v-6d0b24d0]{transform:translate(0)}.course-nav:not(.is-drawer) .course-nav-backdrop[data-v-6d0b24d0],.course-nav:not(.is-drawer) .course-nav-panel[data-v-6d0b24d0]{display:none}}.course-nav.light[data-v-6d0b24d0],html.light{--bg: #f7f3ef;--surface: #ffffff;--line: #e2dad2;--fg: #1a1520;--mute: #5f5766;--rust: #c8431b;--php: #5a5fc0}.course-nav.light .course-nav-lesson.is-current[data-v-6d0b24d0],html.light{--brand-rust: var(--brand-rust-on-row-light);--brand-php: var(--brand-php-on-row-light)}.lesson-video[data-v-620deb1e]{margin:28px 0 0;max-width:min(100%,960px)}.lesson-video-label[data-v-620deb1e]{margin:0 0 8px;font:500 13px/1 var(--f-mono, "JetBrains Mono", ui-monospace, monospace);color:var(--mute, #a39bab)}.lesson-video-frame[data-v-620deb1e]{aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--line, #2e2836);border-radius:16px;background:#110e14}.lesson-video-frame video[data-v-620deb1e]{display:block;width:100%;height:100%;background:#110e14;-o-object-fit:contain;object-fit:contain}.lesson-video-transcript[data-v-620deb1e]{margin-top:10px}.lesson-video-transcript-toggle[data-v-620deb1e]{border:0;background:transparent;color:var(--rust, #eb5a2e);font:500 13px/1.4 var(--f-body, Figtree, ui-sans-serif, system-ui, sans-serif);padding:0;cursor:pointer}.lesson-video-transcript-toggle[data-v-620deb1e]:hover{text-decoration:underline}.lesson-video-transcript-body[data-v-620deb1e]{margin-top:10px;padding:12px 14px;border:1px solid var(--line, #2e2836);border-radius:12px;background:var(--surface, #1b1720)}.lesson-video-transcript-body pre[data-v-620deb1e]{margin:0;white-space:pre-wrap;font:400 13px/1.55 var(--f-mono, "JetBrains Mono", ui-monospace, monospace);color:var(--mute, #a39bab)}.lesson-video-transcript-error[data-v-620deb1e]{margin:0;font:400 13px/1.4 var(--f-body, Figtree, ui-sans-serif, system-ui, sans-serif);color:var(--mute, #a39bab)}.lesson-wrap[data-v-c52d2047]{max-width:min(1600px,100%);margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}.lesson-shell[data-v-c52d2047]{display:block;width:100%;min-width:0}@media(min-width:1024px){.lesson-shell[data-v-c52d2047]{display:flex;align-items:flex-start;gap:28px}}.lesson[data-v-c52d2047] button.bg-gray-800{background:#eb5a2e;border-color:#eb5a2e;color:#1a0d08;border-radius:12px;text-transform:none;letter-spacing:-.01em;font-size:14px;min-height:40px}.lesson[data-v-c52d2047]{flex:1 1 auto;min-width:0;color:var(--fg, #f1ebe4)}.section-document[data-v-c52d2047]{background:transparent;box-shadow:none;border:0;min-height:0;padding-block:clamp(40px,6vw,56px)}.lesson-crumb[data-v-c52d2047],.lesson-crumb[data-v-c52d2047] a{color:var(--mute, #a39bab);text-decoration:none}.lesson-crumb[data-v-c52d2047] a:hover{color:var(--fg, #f1ebe4)}.lesson-eyebrow[data-v-c52d2047]{font:600 13px/1 JetBrains Mono,ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mute, #a39bab);margin-bottom:12px}.lesson-title[data-v-c52d2047]{margin-top:28px}.lesson-title h1[data-v-c52d2047]{margin:0;font-family:Bricolage Grotesque,ui-sans-serif,system-ui,sans-serif;font-weight:800;letter-spacing:-.025em;line-height:1.05;font-size:clamp(32px,4vw,48px);color:var(--fg, #f1ebe4)}.lesson-tools[data-v-c52d2047]{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;margin-top:16px}.tool-link[data-v-c52d2047]{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--mute, #a39bab);font:500 15px/1 Figtree,ui-sans-serif,system-ui,sans-serif;text-decoration:none;cursor:pointer}.tool-link[data-v-c52d2047]:hover{color:var(--fg, #f1ebe4);background:var(--surface, #1b1720)}.tool-link[data-v-c52d2047] svg{width:16px;height:16px;flex:0 0 16px;color:currentColor}.lesson-tools[data-v-c52d2047] .qr-btn{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--mute, #a39bab);font:500 15px/1 Figtree,ui-sans-serif,system-ui,sans-serif;letter-spacing:0;box-shadow:none}.lesson-tools[data-v-c52d2047] .qr-btn:hover{background:var(--surface, #1b1720);border-color:transparent;color:var(--fg, #f1ebe4)}.lesson-tools[data-v-c52d2047] .qr-icon,.lesson-tools[data-v-c52d2047] .qr-btn:hover .qr-icon{color:currentColor}.tool-btn[data-v-c52d2047]{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--line, #2e2836);background:var(--surface, #1b1720);color:var(--fg, #f1ebe4);font:600 14px/1 Figtree,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em;text-decoration:none;cursor:pointer}.tool-btn[data-v-c52d2047] svg{color:var(--rust, #eb5a2e)}.tool-btn[data-v-c52d2047]:hover,.tool-btn-solid[data-v-c52d2047]{background:var(--rust, #eb5a2e);border-color:var(--rust, #eb5a2e);color:var(--rust-ink, #1a0d08)}.tool-btn[data-v-c52d2047]:hover svg,.tool-btn-solid[data-v-c52d2047] svg{color:var(--rust-ink, #1a0d08)}.tool-btn-solid[data-v-c52d2047]:hover{filter:brightness(1.06)}@media(min-width:1024px){.tool-link.course-menu-btn[data-v-c52d2047]{display:none}}.tool-note[data-v-c52d2047]{color:var(--mute, #a39bab);font-size:14px}.reading-content[data-v-c52d2047] .mental-model{margin:1.5rem 0;padding:1rem 1.15rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--rust, #eb5a2e) 45%,var(--line, #2e2836));background:color-mix(in srgb,var(--rust, #eb5a2e) 10%,var(--surface, #1b1720))}.reading-content[data-v-c52d2047] .mental-model-kicker{margin:0 0 .35rem;font:600 11px/1 var(--f-mono, "JetBrains Mono", ui-monospace, monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--rust, #eb5a2e)}.reading-content[data-v-c52d2047] .mental-model-title{margin:0 0 .5rem;color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] .lesson-diagram{display:block;width:min(100%,520px);height:auto;margin:1rem 0 1.5rem;color:var(--fg, #f1ebe4)}.lesson-walkthrough[data-v-c52d2047]{border:1px solid var(--line, #2e2836);border-radius:12px;background:var(--surface, #1b1720);padding:12px 16px 16px}.lesson-walkthrough>summary[data-v-c52d2047]{cursor:pointer;font:600 15px/1.4 var(--f-body, Figtree, ui-sans-serif, system-ui, sans-serif);color:var(--fg, #f1ebe4)}.lesson-walkthrough[open]>summary[data-v-c52d2047]{margin-bottom:8px}.reading-article[data-v-c52d2047]{max-width:none}.reading-content[data-v-c52d2047]{max-width:none;color:var(--mute, #a39bab);line-height:1.75}.reading-content[data-v-c52d2047] p{margin-bottom:1rem;color:var(--mute, #a39bab);line-height:1.75}.reading-content[data-v-c52d2047] p:last-child{margin-bottom:0}.reading-content[data-v-c52d2047] h1,.reading-content[data-v-c52d2047] h2,.reading-content[data-v-c52d2047] h3{text-align:left;font-weight:600;font-family:Bricolage Grotesque,ui-sans-serif,system-ui,sans-serif;color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] h1{margin-top:0;margin-bottom:1rem;font-size:1.5rem;line-height:2rem}.reading-content[data-v-c52d2047] h2{margin-top:2.5rem;margin-bottom:.75rem;border-bottom-width:1px;padding-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;border-color:var(--line, #2e2836);color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.125rem;line-height:1.75rem;color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] h1:first-child,.reading-content[data-v-c52d2047] h3:first-child{margin-top:0}.reading-content[data-v-c52d2047]:has(>h2:first-child){margin-top:0}.reading-content[data-v-c52d2047] ul,.reading-content[data-v-c52d2047] ol{margin-top:1rem;margin-bottom:1rem;margin-left:1.5rem;list-style-position:outside}.reading-content[data-v-c52d2047] ul>:not([hidden])~:not([hidden]),.reading-content[data-v-c52d2047] ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.reading-content[data-v-c52d2047] ul{list-style-type:disc}.reading-content[data-v-c52d2047] ol{list-style-type:decimal}.reading-content[data-v-c52d2047] li{padding-left:.25rem;color:var(--mute, #a39bab);line-height:1.65}.reading-content[data-v-c52d2047] strong{font-weight:600;color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] a{color:var(--rust, #eb5a2e);text-decoration:underline}.reading-content[data-v-c52d2047] code:not([class*=language-]){border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem;background:var(--surface, #1b1720);color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] .code-pane{margin:24px 0;border-radius:12px;border:1px solid var(--line, #2e2836);background:var(--bg, #110e14);overflow:hidden;display:flex;flex-direction:column;min-width:0;max-width:100%}.reading-content[data-v-c52d2047] .code-pane.php-pane{border-top:3px solid var(--php, #8e92e0)}.reading-content[data-v-c52d2047] .code-pane.rust-pane{border-top:3px solid var(--rust, #eb5a2e)}.reading-content[data-v-c52d2047] .code-pane.plain-pane{border-color:#6e6874;border-top:3px solid #6e6874}.reading-content[data-v-c52d2047] .code-pane-head{display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 14px;border-bottom:1px solid var(--line, #2e2836);font:600 12px/1 JetBrains Mono,ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.reading-content[data-v-c52d2047] .code-pane-head>span:first-child{flex:none}.reading-content[data-v-c52d2047] .code-pane-meta{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.reading-content[data-v-c52d2047] .code-pane-file{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;font-weight:400;color:var(--mute, #a39bab)}.reading-content[data-v-c52d2047] .code-pane-status{flex:none;border-radius:999px;padding:2px 8px;text-transform:none;letter-spacing:0;font-weight:600;color:#ff5d5d;background:#ff505024}.reading-content[data-v-c52d2047] .code-pane-head .php{color:var(--brand-php, var(--php, #8e92e0))}.reading-content[data-v-c52d2047] .code-pane-head .rust{color:var(--rust, #eb5a2e)}.reading-content[data-v-c52d2047] .code-pane-head .plain{color:#a39bab}.reading-content[data-v-c52d2047] .code-pane.plain-pane .code-pane-head{background:#1b1720;border-bottom-color:#6e6874}.reading-content[data-v-c52d2047] .code-pane-copy{flex:none;border:0;background:transparent;padding:0;color:var(--mute, #a39bab);font:500 12px/1 JetBrains Mono,ui-monospace,Menlo,monospace;letter-spacing:0;text-transform:none;cursor:pointer;text-decoration:none}.reading-content[data-v-c52d2047] .code-pane-head .code-pane-copy+.code-pane-copy{margin-left:12px}.reading-content[data-v-c52d2047] .code-pane-copy:hover{color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] .code-pane pre,.reading-content[data-v-c52d2047] .code-pane pre[class*=language-]{margin:0;padding:16px;overflow-x:auto;border:0;border-radius:0;box-shadow:none;background:transparent;font:400 14px/1.65 JetBrains Mono,ui-monospace,Menlo,monospace;-webkit-user-select:text;-moz-user-select:text;user-select:text}.reading-content[data-v-c52d2047] pre code{-webkit-user-select:text;-moz-user-select:text;user-select:text;background-color:transparent;padding:0;font-size:.875rem;line-height:1.25rem}.reading-content[data-v-c52d2047] code:before,.reading-content[data-v-c52d2047] code:after{content:none!important}.reading-content[data-v-c52d2047] blockquote{margin-top:1.5rem;margin-bottom:1.5rem;border-left-width:4px;padding:.75rem 1rem .75rem 1.25rem}.reading-content[data-v-c52d2047] blockquote:first-child{margin-top:0}.reading-content[data-v-c52d2047] blockquote{border-color:var(--php, #8e92e0);background:var(--surface, #1b1720);color:var(--mute, #a39bab);font-style:italic}.reading-content[data-v-c52d2047] blockquote p:first-of-type:before,.reading-content[data-v-c52d2047] blockquote p:last-of-type:after{content:none}.reading-content[data-v-c52d2047] blockquote p:last-child{margin-bottom:0}.reading-content[data-v-c52d2047] details{margin-top:2rem;margin-bottom:2rem}.reading-content[data-v-c52d2047] summary{cursor:pointer;font-weight:600;color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] table{margin-top:2rem;margin-bottom:2rem;width:100%;max-width:100%;border-collapse:collapse;text-align:left;font-size:.875rem;line-height:1.25rem;table-layout:fixed}.reading-content[data-v-c52d2047] thead{border-bottom:1px solid var(--line, #2e2836)}.reading-content[data-v-c52d2047] th,.reading-content[data-v-c52d2047] td{padding:1rem 1.25rem;text-align:left;vertical-align:top;border:1px solid var(--line, #2e2836);color:var(--mute, #a39bab);width:50%;word-break:break-word}.reading-content[data-v-c52d2047] th{text-align:left;font-weight:600;background:var(--surface, #1b1720);color:var(--fg, #f1ebe4)}.reading-content[data-v-c52d2047] tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface, #1b1720) 65%,transparent)}.lesson[data-v-c52d2047] .text-slate-900,.lesson[data-v-c52d2047] h2{color:var(--fg, #f1ebe4)}.lesson[data-v-c52d2047] .text-slate-700,.lesson[data-v-c52d2047] .text-slate-600,.lesson[data-v-c52d2047] .text-slate-500{color:var(--mute, #a39bab)}.lesson[data-v-c52d2047] .border-slate-200,.lesson[data-v-c52d2047] .border-slate-300{border-color:var(--line, #2e2836)}.lesson[data-v-c52d2047] .bg-slate-50,.lesson[data-v-c52d2047] .bg-slate-50\/80,.lesson[data-v-c52d2047] .bg-slate-100{background-color:var(--surface, #1b1720)}.lesson[data-v-c52d2047] .hover\:bg-slate-50:hover,.lesson[data-v-c52d2047] .hover\:bg-slate-100:hover{background-color:#231e29}.lesson[data-v-c52d2047] .hover\:text-slate-900:hover{color:var(--fg, #f1ebe4)}
