@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2)format("woff2"),url(/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2)format("woff2"),url(/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{--vdb-color-background:#f3efe6;--vdb-color-elevated:#faf8f4;--vdb-color-panel:#e8e2d8;--vdb-color-panel-hover:#ded8cc;--vdb-color-border:#cfc7ba;--vdb-color-border-subtle:#ddd6ca;--vdb-color-text:#1c1916;--vdb-color-muted:#6f6860;--vdb-color-accent:#815716;--vdb-color-accent-strong:#6f4912;--vdb-color-accent-contrast:#faf8f4;--vdb-color-danger:#a84233;--vdb-color-selection:#0000000d;--vdb-color-selection-strong:#00000014;--vdb-shadow-overlay:0 12px 36px #00000024;--vdb-focus-surface:#00000014;--vdb-scrollbar-thumb:#cfc7ba;--vdb-scrollbar-thumb-hover:#6f6860;--vdb-space-1:4px;--vdb-space-2:8px;--vdb-space-3:12px;--vdb-space-4:16px;--vdb-space-5:24px;--vdb-space-6:32px;--vdb-border-width:1px;--vdb-focus-width:2px;--vdb-radius-small:6px;--vdb-radius-control:8px;--vdb-radius-panel:12px;--vdb-radius-pill:999px;--vdb-control-height-compact:28px;--vdb-control-height-default:32px;--vdb-control-height-touch:36px;--vdb-icon-size-default:16px;--vdb-font-size-caption:12px;--vdb-font-size-control:13px;--vdb-font-size-body:14px;--vdb-font-size-title:20px;--vdb-line-height-control:20px;--vdb-line-height-body:20px;--vdb-font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--vdb-font-reader:"Gentium Plus", "Charis SIL", "Noto Serif Devanagari", Georgia, serif;--vdb-font-mono:"Space Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--vdb-font-weight-regular:400;--vdb-font-weight-medium:500;--vdb-duration-fast:.12s;--vdb-duration-normal:.18s;--vdb-duration-slow:.32s;--vdb-opacity-disabled:.42;--vdb-opacity-muted:.55;--vdb-opacity-pressed:.78;--vdb-opacity-full:1;--vdb-reading-width-narrow:560px;--vdb-reading-width-medium:720px;--vdb-reading-width-wide:960px;--vdb-scrollbar-size:8px;--vdb-rail-width:52px;--vdb-nav-width:320px;--vdb-titlebar-height:44px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--vdb-font-ui);color:var(--vdb-color-text);background:var(--vdb-color-background);font-synthesis:none;text-rendering:geometricprecision;--paper:var(--vdb-color-elevated);--paper-warm:var(--vdb-color-background);--ink:var(--vdb-color-text);--muted:var(--vdb-color-muted);--faint:color-mix(in srgb, var(--vdb-color-muted), transparent 22%);--line:var(--vdb-color-border-subtle);--line-dark:var(--vdb-color-border);--accent:var(--vdb-color-accent);--accent-blue:var(--vdb-color-accent);--green:var(--vdb-color-accent);--red:var(--vdb-color-danger);--yellow:color-mix(in srgb, var(--vdb-color-accent), var(--vdb-color-elevated) 72%);--shadow:var(--vdb-shadow-overlay);--portal-header-height:var(--vdb-rail-width)}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;max-width:100%;min-height:100%;margin:0;overflow-x:clip}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{overscroll-behavior-x:none;background:var(--paper-warm);touch-action:pan-x pan-y;min-height:100dvh}*{scrollbar-width:thin;scrollbar-color:var(--vdb-scrollbar-thumb) transparent}::-webkit-scrollbar{width:var(--vdb-scrollbar-size);height:var(--vdb-scrollbar-size)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--vdb-scrollbar-thumb);border-radius:var(--vdb-radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--vdb-scrollbar-thumb-hover)}button,input,textarea,select{font:inherit}button{color:inherit;touch-action:manipulation}button:not(:disabled),select:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:var(--vdb-opacity-disabled)}h1,h2,h3,h4,strong,b{font-weight:400}:focus-visible{box-shadow:inset 0 calc(var(--vdb-focus-width) * -1) 0 var(--vdb-color-accent);outline:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:300;border:1px solid var(--line-dark);background:var(--paper);min-height:38px;color:var(--ink);padding:9px 13px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.eyebrow{font-family:var(--vdb-font-ui);letter-spacing:.08em;text-transform:none;color:var(--muted);font-size:11px;line-height:1.4;display:block}code{font-family:var(--vdb-font-mono)}.button,.icon-button{min-width:var(--vdb-control-height-default);height:var(--vdb-control-height-default);justify-content:center;align-items:center;gap:var(--vdb-space-2);padding:0 var(--vdb-space-3);border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-control);background:var(--vdb-color-panel);font-size:var(--vdb-font-size-control);transition:color var(--vdb-duration-fast), background var(--vdb-duration-fast), border-color var(--vdb-duration-fast), opacity var(--vdb-duration-fast);display:inline-flex}.button:hover,.icon-button:hover{color:var(--vdb-color-accent);background:var(--vdb-color-selection-strong)}.button-dark{color:var(--vdb-color-accent-contrast);border-color:var(--vdb-color-accent);background:var(--vdb-color-accent)}.button-dark:hover{color:var(--vdb-color-accent-contrast);border-color:var(--vdb-color-accent-strong);background:var(--vdb-color-accent-strong)}.button-wide{width:100%}.icon-button{width:var(--vdb-control-height-default);background:0 0;border-color:#0000;padding:0}.icon-button.danger{color:var(--red)}.login-shell,.app-loading{justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.login-panel{border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-elevated);width:min(470px,100%);box-shadow:var(--vdb-shadow-overlay);overflow:hidden}.login-brand{border-bottom:1px solid var(--line);font-family:var(--vdb-font-reader);justify-content:space-between;align-items:center;padding:19px 22px;font-size:19px;display:flex}.login-intro{padding:31px 31px 18px}.login-intro h1{font-family:var(--vdb-font-reader);margin:18px 0 8px;font-size:31px;line-height:1.08}.login-intro p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.login-form{padding:0 31px 28px}.login-form label,.page-fields label,.block-editor label{color:var(--vdb-color-muted);flex-direction:column;gap:6px;margin-top:13px;font-size:12px;display:flex}.login-form input,.page-fields input,.page-fields textarea,.page-fields select,.block-editor input,.block-editor textarea,.block-editor select{width:100%;min-height:var(--vdb-control-height-default);padding:var(--vdb-space-2) var(--vdb-space-3);border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-control);background:var(--vdb-color-panel);color:var(--vdb-color-text)}textarea{resize:vertical;line-height:1.5}.login-form .button{margin-top:18px}.form-error{color:var(--vdb-color-danger);margin:10px 0 0;font-size:12px}.preview-notice{border-top:1px solid var(--line);background:var(--vdb-color-panel);color:var(--muted);margin:0;padding:14px 22px;font-size:11px;line-height:1.6}.preview-notice code{color:var(--vdb-color-muted);font-size:11px}.app-loading{font-family:var(--vdb-font-reader);flex-direction:column;gap:8px;font-size:24px}.app-loading p{color:var(--muted);font-family:var(--vdb-font-ui);margin:0;font-size:12px}.reader-error{background:var(--vdb-color-elevated);flex-direction:column;justify-content:center;align-items:flex-start;min-height:100dvh;padding:32px max(24px,8vw);display:flex}.reader-error h1{max-width:680px;font-family:var(--vdb-font-reader);margin:12px 0;font-size:clamp(38px,6vw,64px);line-height:1}.reader-error p{max-width:560px;color:var(--vdb-color-muted);margin:0 0 24px;line-height:1.6}.app-shell{background:var(--paper);min-height:100vh}.app-header{z-index:40;min-height:var(--portal-header-height);padding:0 var(--vdb-space-4);border-bottom:var(--vdb-border-width) solid var(--vdb-color-border-subtle);background:color-mix(in srgb, var(--vdb-color-elevated), transparent 2%);align-items:center;display:flex;position:sticky;top:0}.header-leading{flex:1;align-items:center;min-width:0;display:flex}.brand-block{background:0 0;border:0;align-items:center;gap:9px;padding:0 12px 0 0;display:flex}.brand-name{font-family:var(--vdb-font-reader);white-space:nowrap;font-size:21px;line-height:1}.header-back{border:0;border-right:1px solid var(--line);min-height:38px;color:var(--vdb-color-accent);background:0 0;flex:none;align-items:center;gap:7px;padding:0 16px 0 0;font-size:12px;display:inline-flex}.header-back:hover span{text-underline-offset:3px;text-decoration:underline}.header-material-title{min-width:0;font-family:var(--vdb-font-reader);text-overflow:ellipsis;white-space:nowrap;padding:0 16px;font-size:16px;line-height:1.2;overflow:hidden}.primary-nav{height:var(--portal-header-height);align-items:stretch;display:flex}.primary-nav button{align-items:center;gap:var(--vdb-space-2);height:var(--portal-header-height);padding:0 var(--vdb-space-3);font-size:var(--vdb-font-size-control);background:0 0;border:0;display:flex;position:relative}.primary-nav button:after{content:"";background:0 0;height:2px;position:absolute;bottom:0;left:14px;right:14px}.primary-nav button.active:after{background:var(--accent)}.header-count{border-radius:var(--vdb-radius-pill);background:var(--vdb-color-panel);min-width:17px;height:17px;color:var(--vdb-color-accent);font-family:var(--vdb-font-ui);justify-content:center;align-items:center;margin-left:1px;font-size:9px;display:inline-flex}.account-identity-inline{min-width:0;color:var(--vdb-color-muted);align-items:center;gap:7px;font-size:12px;display:flex}.account-identity-inline small{border-left:1px solid var(--line);color:var(--muted);text-transform:capitalize;padding-left:7px}.mobile-nav-trigger{display:none}.portal-layout{grid-template-columns:var(--vdb-nav-width) minmax(0,1fr);min-height:calc(100vh - var(--portal-header-height));transition:grid-template-columns var(--vdb-duration-normal) ease;display:grid}.portal-layout.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.portal-layout>.learning-sidebar{grid-area:1/1}.portal-layout>main{grid-area:1/2}.learning-sidebar{top:var(--portal-header-height);height:calc(100vh - var(--portal-header-height));overscroll-behavior:contain;scrollbar-gutter:stable;border-right:var(--vdb-border-width) solid var(--vdb-color-border-subtle);background:var(--vdb-color-background);position:sticky;overflow:auto}.learning-sidebar.desktop-closed{display:none}.sidebar-header{grid-template-columns:minmax(0, 1fr) var(--vdb-control-height-compact);align-items:center;gap:var(--vdb-space-2);min-height:72px;padding:var(--vdb-space-3) var(--vdb-space-4);border-bottom:var(--vdb-border-width) solid var(--vdb-color-border-subtle);display:grid}.sidebar-header strong{font-family:var(--vdb-font-reader);font-size:20px;display:block}.sidebar-header span{color:var(--muted);font-family:var(--vdb-font-ui);letter-spacing:.02em;text-transform:none;margin-top:4px;font-size:8px;display:block}.sidebar-progress{background:var(--vdb-color-panel);height:3px}.sidebar-progress i,.sidebar-progress b{height:100%;display:block}.sidebar-progress b{background:var(--green);transition:width .25s}.mobile-close{display:none}.desktop-sidebar-toggle,.desktop-sidebar-trigger{width:var(--vdb-control-height-compact);height:var(--vdb-control-height-compact);border-radius:var(--vdb-radius-small);color:var(--vdb-color-muted);transition:background var(--vdb-duration-fast), color var(--vdb-duration-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0;line-height:0;display:inline-flex}.desktop-sidebar-toggle:hover,.desktop-sidebar-trigger:hover{color:var(--vdb-color-text);background:var(--vdb-color-panel-hover)}.desktop-sidebar-trigger{margin-right:var(--vdb-space-2);color:var(--vdb-color-accent)}.contents-navigation{padding:10px 0 30px}.contents-navigation button{width:100%;color:var(--vdb-color-muted);text-align:left;background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:36px minmax(0,1fr) 18px;align-items:start;gap:8px;padding:11px 14px;font-size:12px;line-height:1.35;display:grid}.contents-navigation button:hover{background:var(--vdb-color-selection)}.contents-navigation button.active{border-left-color:var(--accent);background:var(--vdb-color-elevated);color:var(--ink)}.contents-navigation button.overview{border-bottom:1px solid var(--line);align-items:center;min-height:46px;margin-bottom:7px}.contents-navigation button.overview svg{color:var(--muted);justify-self:center}.contents-navigation button.overview.active svg{color:var(--accent)}.sidebar-code{color:var(--accent);font-family:var(--vdb-font-ui);font-size:10px;line-height:1.55}.sidebar-item-title{min-width:0}.sidebar-item-state{color:var(--vdb-color-muted);justify-content:center;align-items:center;display:inline-flex}.contents-navigation button.available .sidebar-item-state{color:var(--vdb-color-muted)}.contents-navigation button.completed .sidebar-item-state{color:var(--green)}.library-home{background:var(--paper);min-width:0;padding:70px 6vw 90px}.library-home:focus{outline:0}.library-home-intro{border-bottom:1px solid var(--line-dark);width:min(860px,100%);margin:0 auto;padding-bottom:36px}.library-home-intro h1{max-width:760px;font-family:var(--vdb-font-reader);letter-spacing:-.04em;margin:0 0 15px;font-size:clamp(45px,6vw,72px);line-height:.95}.library-home-intro p{max-width:650px;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.collection-grid{border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark);grid-template-columns:repeat(2,minmax(0,1fr));width:min(860px,100%);margin:28px auto 0;display:grid}.collection-card{border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);background:var(--vdb-color-elevated);min-height:410px;transition:background var(--vdb-duration-fast);padding:29px;position:relative}.collection-card:hover,.collection-card:focus-within{background:var(--vdb-color-selection)}.collection-card-hit-target{z-index:2;background:0 0;border:0;width:100%;position:absolute;inset:0}.collection-card-hit-target:focus-visible{box-shadow:inset 0 0 0 var(--vdb-focus-width) var(--vdb-color-accent)}.collection-card>svg{color:var(--accent);margin:36px 0 18px}.collection-number{color:var(--faint);font-family:var(--vdb-font-ui);font-size:11px;position:absolute;top:22px;right:24px}.collection-card h2{font-family:var(--vdb-font-reader);margin:9px 0 12px;font-size:34px;line-height:1.05}.collection-card>p{min-height:92px;color:var(--muted);margin:0 0 23px;font-size:13px;line-height:1.55}.material-format{color:var(--muted);font-family:var(--vdb-font-ui);letter-spacing:.04em;text-transform:none;font-size:10px;display:block}.collection-card-cta{pointer-events:none}.material-overview{background:var(--paper);min-width:0;padding:58px 6vw 90px}.material-overview:focus{outline:0}.material-hero,.material-contents{width:min(860px,100%);margin-left:auto;margin-right:auto}.text-link{color:var(--vdb-color-accent);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:12px;display:inline-flex}.text-link:hover{text-underline-offset:3px;text-decoration:underline}.material-meta{color:var(--accent);font-family:var(--vdb-font-ui);letter-spacing:.05em;text-transform:none;flex-wrap:wrap;align-items:center;gap:8px;margin-top:0;font-size:10px;display:flex}.material-meta span{align-items:center;gap:5px;display:inline-flex}.material-meta i{background:var(--line-dark);width:16px;height:1px}.material-hero h1{max-width:800px;font-family:var(--vdb-font-reader);letter-spacing:-.035em;margin:18px 0 16px;font-size:clamp(42px,5.5vw,66px);line-height:.98}.material-hero>p{max-width:720px;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.material-contents{border-top:1px solid var(--line-dark);margin-top:46px}.contents-heading{justify-content:space-between;align-items:center;padding:25px 0 18px;display:flex}.contents-heading h2{font-family:var(--vdb-font-reader);margin:4px 0 0;font-size:31px}.contents-heading>svg{color:var(--accent)}.material-contents ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.material-contents li{border-bottom:1px solid var(--line);min-height:76px}.content-code{color:var(--accent);font-family:var(--vdb-font-ui);font-size:11px}.material-content-link{text-align:left;width:100%;min-height:76px;transition:background var(--vdb-duration-fast);background:0 0;border:0;grid-template-columns:58px minmax(0,1fr) 36px;align-items:center;gap:13px;padding:0;display:grid}.material-content-link:not(.unavailable):hover{background:var(--vdb-color-selection)}.material-content-copy{min-width:0}.material-content-link strong{font-family:var(--vdb-font-reader);font-size:18px;line-height:1.2;display:block}.material-content-link small{color:var(--muted);font-family:var(--vdb-font-ui);text-transform:none;align-items:center;gap:4px;margin-top:5px;font-size:9px;display:flex}.material-content-arrow{color:var(--vdb-color-accent);justify-self:center}.material-contents li.completed strong{color:var(--vdb-color-accent-strong)}.material-contents li small.completion-label{color:var(--green)}.reader-view{background:var(--paper);min-width:0;padding:60px 6vw 90px}.reader-view:focus,.editor-view:focus{outline:0}.reader-view>article{width:min(760px,100%);margin:0 auto}.lesson-header{border-bottom:1px solid var(--line-dark);padding-bottom:33px}.lesson-kicker{color:var(--accent);font-family:var(--vdb-font-ui);text-transform:none;letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.lesson-kicker i{background:var(--line-dark);width:15px;height:1px}.lesson-kicker b{border:1px solid var(--vdb-color-border);border-radius:var(--vdb-radius-small);color:var(--vdb-color-accent);align-items:center;gap:5px;padding:3px 6px;display:inline-flex}.lesson-header h1{max-width:720px;font-family:var(--vdb-font-reader);letter-spacing:-.035em;margin:23px 0 15px;font-size:clamp(39px,5vw,58px);line-height:.99}.lesson-header>p{max-width:660px;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.lesson-meta{color:var(--muted);font-family:var(--vdb-font-ui);text-transform:none;flex-wrap:wrap;gap:17px;margin-top:24px;font-size:10px;display:flex}.lesson-meta span{align-items:center;gap:6px;display:flex}.lesson-meta .meta-complete{color:var(--green)}.lesson-blocks{padding-top:34px}.lesson-blocks>*+*{margin-top:38px}.text-block h2,.learning-checklist h2{font-family:var(--vdb-font-reader);letter-spacing:-.015em;margin:0 0 16px;font-size:29px;line-height:1.13}.text-block p{font-family:var(--vdb-font-reader);margin:0;font-size:18px;line-height:1.72}.text-block p+p{margin-top:14px}.supporting-heading{color:var(--vdb-color-text);font-family:var(--vdb-font-reader);font-size:19px;font-weight:var(--vdb-font-weight-regular);margin:22px 0 8px;line-height:1.4}.learning-list{margin:16px 0 20px;padding-left:1.35em}.learning-list li{font-family:var(--vdb-font-reader);padding-left:.2em;font-size:18px;line-height:1.65}.learning-list li+li{margin-top:8px}.learning-questions{padding-left:0;list-style:none}.learning-questions li{font-size:19px;line-height:1.58}.learning-questions li+li{margin-top:12px}.learning-definitions{margin:18px 0}.learning-definitions>div+div{margin-top:18px}.learning-definitions dt{color:var(--vdb-color-text);font-family:var(--vdb-font-reader);margin-bottom:3px;font-size:18px;font-style:italic;line-height:1.45}.learning-definitions dd{color:var(--vdb-color-muted);font-family:var(--vdb-font-reader);margin:0;font-size:17px;line-height:1.65}.learning-framework{margin:18px 0}.learning-framework article+article{margin-top:20px}.learning-framework article>span{color:var(--vdb-color-accent);font-family:var(--vdb-font-ui);letter-spacing:.04em;margin-bottom:3px;font-size:10px;display:block}.learning-framework strong{font-family:var(--vdb-font-reader);font-size:19px;font-weight:var(--vdb-font-weight-regular);line-height:1.4;display:block}.learning-framework p{color:var(--vdb-color-muted);margin-top:4px;font-size:17px;line-height:1.65}.learning-quote{color:var(--vdb-color-accent-strong);font-family:var(--vdb-font-reader);margin:24px 0;font-size:23px;font-style:italic;line-height:1.5}.text-block p+.code-snippet,.text-block .code-snippet+p{margin-top:18px}.code-snippet{border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-text);box-shadow:0 7px 22px color-mix(in srgb, var(--vdb-color-text), transparent 89%);margin:0;overflow:hidden}.code-snippet figcaption{min-height:var(--vdb-control-height-touch);padding:var(--vdb-space-1) var(--vdb-space-2) var(--vdb-space-1) var(--vdb-space-4);border-bottom:var(--vdb-border-width) solid color-mix(in srgb, var(--vdb-color-elevated), transparent 82%);background:color-mix(in srgb, var(--vdb-color-text), var(--vdb-color-elevated) 7%);color:color-mix(in srgb, var(--vdb-color-elevated), transparent 28%);font-family:var(--vdb-font-ui);font-size:var(--vdb-font-size-caption);justify-content:space-between;align-items:center;display:flex}.code-snippet figcaption>span{letter-spacing:.04em}.code-snippet figcaption button{min-width:74px;min-height:var(--vdb-control-height-touch);justify-content:center;align-items:center;gap:var(--vdb-space-2);padding:0 var(--vdb-space-3);border-radius:var(--vdb-radius-control);color:var(--vdb-color-accent-contrast);font-size:var(--vdb-font-size-caption);background:0 0;border:0;display:inline-flex}.code-snippet figcaption button:hover{background:color-mix(in srgb, var(--vdb-color-elevated), transparent 88%)}.code-snippet figcaption button:focus-visible{box-shadow:inset 0 0 0 var(--vdb-focus-width) var(--vdb-color-accent-contrast)}.code-snippet pre{max-width:100%;padding:var(--vdb-space-4);overscroll-behavior-inline:contain;color:var(--vdb-color-accent-contrast);font-family:var(--vdb-font-mono);tab-size:2;touch-action:pan-x pan-y;margin:0;font-size:13px;line-height:1.75;overflow-x:auto}.code-snippet code{font:inherit;white-space:pre}.code-snippet .reader-highlight{background:color-mix(in srgb, var(--vdb-color-accent), var(--vdb-color-accent-contrast) 34%);color:var(--vdb-color-text)}.reader-highlight{border-radius:var(--vdb-radius-small);background:color-mix(in srgb, var(--vdb-color-accent), var(--vdb-color-elevated) 72%);color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background var(--vdb-duration-normal), box-shadow var(--vdb-duration-normal);padding:.05em .08em}.reader-highlight.kind-bookmark{background:var(--vdb-color-selection-strong);box-shadow:inset 0 -2px 0 var(--vdb-color-accent)}.reader-highlight.kind-comment{border-bottom:2px solid var(--vdb-color-accent)}.reader-highlight.return-target{background:var(--vdb-color-panel-hover);box-shadow:0 0 0 var(--vdb-focus-width) var(--vdb-color-accent)}.callout{border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);background:var(--vdb-color-selection);grid-template-columns:auto 1fr;gap:14px;padding:19px 20px;display:grid}.callout>svg{color:var(--accent);margin-top:2px}.callout strong{font-family:var(--vdb-font-ui);text-transform:none;letter-spacing:.05em;margin-bottom:5px;font-size:11px;display:block}.callout p{color:var(--vdb-color-muted);margin:0;font-size:14px;line-height:1.6}.callout-practice,.callout-warning{background:var(--vdb-color-selection);border-color:var(--vdb-color-border)}.learning-chart{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-elevated);margin-left:0;margin-right:0;padding:24px}.learning-chart figcaption strong{font-family:var(--vdb-font-reader);margin:7px 0 4px;font-size:24px;display:block}.learning-chart figcaption p{color:var(--muted);margin:0;font-size:12px}.chart-bars{gap:13px;margin-top:25px;display:grid}.chart-row{grid-template-columns:112px minmax(80px,1fr) 38px;align-items:center;gap:12px;font-size:11px;display:grid}.chart-row>span{color:var(--vdb-color-muted)}.chart-row>div{border:1px solid var(--line);background:var(--vdb-color-background);height:15px}.chart-row i{background:var(--accent-blue);height:100%;transition:width .4s;display:block}.chart-row b{font-family:var(--vdb-font-ui);font-size:10px}.flashcard{border:1px solid var(--vdb-color-border);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-elevated);min-height:260px;box-shadow:var(--vdb-shadow-overlay);padding:28px}.flashcard.revealed{background:var(--vdb-color-selection)}.flashcard p{max-width:610px;min-height:108px;font-family:var(--vdb-font-reader);margin:20px 0 23px;font-size:27px;line-height:1.25}.learning-checklist{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-elevated);padding:25px}.learning-checklist .eyebrow{margin-bottom:7px}.learning-checklist button{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:22px 1fr;align-items:center;gap:9px;width:100%;padding:10px 0;display:grid}.learning-checklist button i{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-small);justify-content:center;align-items:center;width:18px;height:18px;display:flex}.learning-checklist button.checked span{color:var(--muted);text-decoration:line-through}.learning-checklist button.checked i{border-color:var(--green);background:var(--green);color:var(--vdb-color-elevated)}.learning-checklist>small{color:var(--muted);font-family:var(--vdb-font-ui);margin-top:10px;font-size:10px;display:block}.completion-card{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-panel);background:var(--vdb-color-selection);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:55px;padding:24px;display:grid}.completion-card.completed{border-color:var(--vdb-color-border);background:var(--vdb-color-selection)}.completion-icon{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-pill);width:42px;height:42px;color:var(--muted);background:var(--vdb-color-elevated);justify-content:center;align-items:center;display:flex}.completion-card.completed .completion-icon{border-color:var(--green);color:var(--green)}.completion-card h2{font-family:var(--vdb-font-reader);margin:4px 0 5px;font-size:24px}.completion-card p{max-width:470px;color:var(--muted);margin:0;font-size:12px;line-height:1.55}.lesson-footer{border-top:1px solid var(--line-dark);color:var(--muted);justify-content:space-between;align-items:center;gap:15px;margin-top:28px;padding-top:22px;display:flex}.selection-toolbar{z-index:120;gap:var(--vdb-space-1);padding:var(--vdb-space-1);border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-pill);background:var(--vdb-color-elevated);color:var(--vdb-color-text);box-shadow:var(--vdb-shadow-overlay);display:flex;position:fixed;overflow:hidden;transform:translate(-50%)}.selection-toolbar>button{min-height:var(--vdb-control-height-default);align-items:center;gap:var(--vdb-space-2);padding:0 var(--vdb-space-3);border-radius:var(--vdb-radius-pill);color:var(--vdb-color-text);font-size:var(--vdb-font-size-control);background:0 0;border:0;display:inline-flex}.selection-toolbar>button:hover{background:var(--vdb-color-selection-strong)}.selection-toolbar .selection-dismiss{width:var(--vdb-control-height-default);color:var(--vdb-color-muted);justify-content:center;padding:0}.selection-toolbar.composing{width:min(350px,100vw - 24px);padding:var(--vdb-space-3);border-radius:var(--vdb-radius-panel);border-color:var(--vdb-color-border);background:var(--vdb-color-elevated);color:var(--vdb-color-text);display:block;overflow:visible;transform:translate(-50%)}.selection-quote{max-height:62px;color:var(--muted);font-family:var(--vdb-font-reader);margin-bottom:10px;font-size:13px;line-height:1.45;overflow:hidden}.selection-toolbar textarea{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-control);background:var(--vdb-color-elevated);width:100%;min-height:84px;color:var(--ink);padding:9px 10px;font-size:13px}.selection-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:9px;display:flex}.reader-save-status{right:var(--vdb-space-4);bottom:var(--vdb-space-4);z-index:130;padding:var(--vdb-space-2) var(--vdb-space-3);border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-pill);background:var(--vdb-color-elevated);color:var(--vdb-color-accent);box-shadow:var(--vdb-shadow-overlay);font-size:var(--vdb-font-size-control);position:fixed}.reader-save-status:empty{display:none}.reader-notes-panel{top:var(--portal-header-height);z-index:65;width:min(400px,100vw);height:calc(100vh - var(--portal-header-height));overscroll-behavior:contain;scrollbar-gutter:stable;border-left:1px solid var(--line-dark);background:var(--paper);box-shadow:var(--shadow);transition:transform var(--vdb-duration-normal) ease;position:fixed;right:0;overflow:auto;transform:translate(102%)}.reader-notes-panel.open{transform:translate(0)}.reader-notes-panel>header{z-index:2;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--vdb-color-elevated), transparent 2%);justify-content:space-between;align-items:center;min-height:76px;padding:14px 18px;display:flex;position:sticky;top:0}.reader-notes-panel h2{font-family:var(--vdb-font-reader);margin:4px 0 0;font-size:23px}.notes-help{border:1px solid var(--vdb-color-border);background:var(--vdb-color-selection);color:var(--vdb-color-muted);grid-template-columns:auto 1fr;gap:10px;margin:16px;padding:13px;display:grid}.notes-help svg{color:var(--vdb-color-accent);margin-top:2px}.notes-help p{margin:0;font-size:12px;line-height:1.5}.annotation-filters{gap:var(--vdb-space-1);padding:0 var(--vdb-space-4) var(--vdb-space-3);display:flex;overflow-x:auto}.annotation-filters button{min-height:var(--vdb-control-height-compact);align-items:center;gap:var(--vdb-space-1);padding:0 var(--vdb-space-2);border-radius:var(--vdb-radius-control);color:var(--vdb-color-muted);font-size:var(--vdb-font-size-caption);background:0 0;border:0;flex:none;display:inline-flex}.annotation-filters button:hover,.annotation-filters button.active{color:var(--vdb-color-accent);background:var(--vdb-color-selection-strong)}.annotation-filters button span{min-width:16px;color:var(--vdb-color-muted);text-align:center}.annotation-list{padding:0 16px 30px}.annotation-list>article{border-top:1px solid var(--line);width:100%;margin:0;padding:16px 0}.annotation-card-header{justify-content:space-between;align-items:center;gap:var(--vdb-space-2);margin-bottom:var(--vdb-space-2);color:var(--vdb-color-muted);font-size:var(--vdb-font-size-caption);display:flex}.annotation-card-header span{align-items:center;gap:var(--vdb-space-1);color:var(--vdb-color-accent);display:inline-flex}.annotation-quote{width:100%;padding:0 0 0 var(--vdb-space-3);border:0;border-left:2px solid var(--vdb-color-accent);color:var(--vdb-color-muted);font-family:var(--vdb-font-reader);font-size:var(--vdb-font-size-body);text-align:left;background:0 0;border-radius:0;line-height:1.5}.annotation-quote:hover{color:var(--vdb-color-text)}.annotation-list article>p{margin:12px 0 0;font-size:13px;line-height:1.55}.annotation-list article>footer{color:var(--muted);font-family:var(--vdb-font-ui);text-transform:none;justify-content:space-between;align-items:center;margin-top:11px;font-size:9px;display:flex}.annotation-card-actions{align-items:center;gap:var(--vdb-space-3);flex-wrap:wrap;display:flex}.annotation-edit{gap:var(--vdb-space-2);margin-top:var(--vdb-space-3);display:grid}.annotation-edit textarea{width:100%;min-height:92px;padding:var(--vdb-space-2) var(--vdb-space-3);border:var(--vdb-border-width) solid var(--vdb-color-border);border-radius:var(--vdb-radius-control);background:var(--vdb-color-panel);color:var(--vdb-color-text);font:inherit;resize:vertical;line-height:1.5}.annotation-edit>div{justify-content:flex-end;align-items:center;gap:var(--vdb-space-3);display:flex}.empty-notes{color:var(--muted);text-align:center;padding:55px 15px}.empty-notes p{margin:10px 0 0;font-size:13px}.notes-backdrop{display:none}.editor-view{background:var(--vdb-color-background);min-width:0}.editor-toolbar{top:var(--portal-header-height);z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--vdb-color-elevated), transparent 3%);justify-content:space-between;align-items:center;min-height:80px;padding:13px 28px;display:flex;position:sticky}.editor-toolbar h1{font-family:var(--vdb-font-reader);margin:3px 0 0;font-size:24px}.editor-actions{align-items:center;gap:14px;display:flex}.unsaved-count{color:var(--muted);font-size:11px}.unsaved-count.active:before{border-radius:var(--vdb-radius-pill);content:"";background:var(--accent);width:6px;height:6px;margin-right:7px;display:inline-block}.editor-canvas{width:min(820px,100% - 40px);margin:28px auto 80px}.page-fields,.block-editor,.add-block{border:1px solid var(--line-dark);border-radius:var(--vdb-radius-panel);background:var(--paper);padding:22px 24px 25px}.page-fields label:first-child{margin-top:0}.page-fields textarea{min-height:90px}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.block-heading{justify-content:space-between;align-items:center;margin:27px 0 10px;display:flex}.block-heading div{font-family:var(--vdb-font-reader);align-items:center;gap:8px;font-size:19px;display:flex}.block-heading small{color:var(--muted);font-family:var(--vdb-font-ui);font-size:10px}.block-editor-list{gap:12px;display:grid}.block-editor>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin:-8px 0 12px;padding-bottom:8px;display:flex}.block-editor>header>div{display:flex}.block-editor label small{color:var(--muted);font-size:10px}.block-editor textarea{min-height:90px}.add-block{border-style:dashed;margin-top:12px}.add-block>span{color:var(--vdb-color-muted);font-family:var(--vdb-font-ui);text-transform:none;align-items:center;gap:7px;font-size:11px;display:flex}.add-block>div{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.nav-backdrop{display:none}@media (width<=40rem){.app-header{padding:0 10px}.mobile-nav-trigger{display:inline-flex}.brand-block>svg{display:none}.primary-nav{justify-self:end}.account-identity-inline{display:none}.portal-layout,.portal-layout.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.portal-layout>main{grid-column:1}.learning-sidebar{z-index:80;width:min(330px,100vw - 42px);height:100dvh;box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-102%)}.learning-sidebar.desktop-closed{display:block}.learning-sidebar.open{transform:translate(0)}.desktop-sidebar-toggle,.desktop-sidebar-trigger{display:none}.mobile-close{display:inline-flex}.nav-backdrop{z-index:70;background:color-mix(in srgb, var(--vdb-color-text), transparent 55%);border:0;display:block;position:fixed;inset:0}.reader-view,.material-overview{padding-left:7vw;padding-right:7vw}.app-header{padding-left:10px;padding-right:6px}.brand-name{font-size:18px}.header-back{border-right:0;justify-content:center;width:38px;padding:0}.header-back span{display:none}.header-material-title{padding:0 7px;font-size:14px}.primary-nav button{justify-content:center;width:38px;padding:0;font-size:12px}.primary-nav button span{display:none}.library-home{padding:42px 20px 65px}.library-home-intro h1{font-size:46px}.library-home-intro p{font-size:14px}.collection-grid{grid-template-columns:1fr}.collection-card{min-height:350px}.material-overview{padding:35px 20px 65px}.material-meta{margin-top:28px}.material-hero h1{font-size:42px}.material-hero>p{font-size:14px}.material-content-link{grid-template-columns:38px minmax(0,1fr) 32px;min-height:86px;padding:0 4px}.material-content-link strong,.login-form input,.page-fields input,.block-editor input,.block-editor select{font-size:16px}.reader-view{padding:38px 20px 65px}.lesson-header h1{margin-top:18px;font-size:39px}.lesson-header>p{font-size:14px}.text-block h2{font-size:26px}.text-block p{font-size:17px}.lesson-blocks{padding-top:28px}.lesson-blocks>*+*{margin-top:36px}.learning-list li{font-size:17px}.learning-questions li{font-size:18px}.learning-definitions dt{font-size:17px}.learning-definitions dd{font-size:16px}.learning-framework strong{font-size:18px}.learning-framework p{font-size:16px}.code-snippet{border-radius:var(--vdb-radius-control)}.code-snippet pre{padding:var(--vdb-space-3) var(--vdb-space-4) var(--vdb-space-4);font-size:12px;line-height:1.8}.chart-row{grid-template-columns:86px minmax(55px,1fr) 32px;gap:7px}.flashcard{min-height:235px;padding:22px}.flashcard p{font-size:23px}.completion-card{grid-template-columns:auto minmax(0,1fr);padding:19px 17px}.completion-card>button{grid-column:1/-1;width:100%}.selection-toolbar:not(.composing){max-width:calc(100vw - 16px);bottom:12px;overflow-x:auto;transform:translate(-50%);top:auto!important;left:50%!important}.selection-toolbar.composing{width:auto;bottom:8px;right:8px;transform:none;top:auto!important;left:8px!important}.notes-backdrop{inset:var(--portal-header-height) 0 0;z-index:60;background:color-mix(in srgb, var(--vdb-color-text), transparent 64%);border:0;display:block;position:fixed}.reader-notes-panel{width:min(354px,100vw - 20px)}.annotation-filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.annotation-filters button{justify-content:center}.editor-toolbar{top:var(--portal-header-height);align-items:flex-start;padding:12px 15px}.editor-toolbar .eyebrow{display:none}.editor-toolbar h1{font-size:20px}.editor-actions{gap:7px}.unsaved-count{display:none}.editor-canvas{width:calc(100% - 20px);margin-top:10px}.page-fields,.block-editor,.add-block{padding:17px 15px 19px}.form-row{grid-template-columns:1fr;gap:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
