@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-vietnamese-wdth-normal.38-z0iikg-fbe.woff2?dpl=60aae9870966096c49e3e04fac5f0dd904154785)format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-latin-ext-wdth-normal.27soo5q86xy9f.woff2?dpl=60aae9870966096c49e3e04fac5f0dd904154785)format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-latin-wdth-normal.1h4hl0m83hjjz.woff2?dpl=60aae9870966096c49e3e04fac5f0dd904154785)format("woff2-variations");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}
@font-face{font-family:Archivo Text Fallback;src:local(Arial),local(ArialMT);font-weight:100 500;size-adjust:98.89%;ascent-override:88.79%;descent-override:21.24%;line-gap-override:0%}@font-face{font-family:Archivo Text Fallback;src:local(Arial Bold),local(Arial-BoldMT);font-weight:501 900;size-adjust:95.07%;ascent-override:92.35%;descent-override:22.09%;line-gap-override:0%}@font-face{font-family:Archivo Display Fallback;src:local(Arial Bold),local(Arial-BoldMT);font-weight:100 900;size-adjust:110.7%;ascent-override:79.32%;descent-override:18.97%;line-gap-override:0%}@font-face{font-family:Archivo Label Fallback;src:local(Arial Bold),local(Arial-BoldMT);font-weight:100 900;size-adjust:121.51%;ascent-override:72.26%;descent-override:17.28%;line-gap-override:0%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f4f2ec;--paper-deep:#ebe7dc;--ink:#141414;--ink-soft:#4b4943;--rule:#d3cdbf;--violet:#4101fe;--font-text:"Archivo Variable", "Archivo Text Fallback", Arial, Helvetica, sans-serif;--font-display:"Archivo Variable", "Archivo Display Fallback", Arial, Helvetica, sans-serif;--font-label:"Archivo Variable", "Archivo Label Fallback", Arial, Helvetica, sans-serif;--display-stretch:112%;--display-weight:700;--label-stretch:125%;--label-weight:600;--strong-weight:600;--gutter:clamp(16px, 4.5vw, 56px);--max:1280px}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-text);font-kerning:normal;overflow-wrap:break-word;margin:0;font-size:1.0625rem;line-height:1.55}img,svg{max-width:100%;display:block}h1,h2,h3{font-family:var(--font-display);font-stretch:var(--display-stretch);font-weight:var(--display-weight);margin:0}strong{font-weight:var(--strong-weight)}a{color:inherit;text-underline-offset:.22em;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);transition:color .15s,text-decoration-color .15s}a:hover{color:var(--violet);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.label{font-family:var(--font-label);font-stretch:var(--label-stretch);font-weight:var(--label-weight);letter-spacing:.075em;text-transform:uppercase;margin:0;font-size:.75rem;line-height:1.35}.muted{color:var(--ink-soft)}.page{grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.masthead{border-bottom:1px solid var(--ink)}.masthead-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 32px;padding-block:18px;display:flex}.masthead-name{font-family:var(--font-display);font-stretch:var(--display-stretch);font-weight:var(--display-weight);letter-spacing:-.01em;font-size:1.0625rem;text-decoration:none}.status{align-items:center;gap:8px;display:inline-flex}.status:before{content:"";background:var(--violet);width:7px;height:7px}.brand-mark svg{width:112px;height:auto}.hero{padding-block:clamp(48px,10vw,136px) clamp(48px,8vw,96px)}.hero h1{letter-spacing:-.03em;text-wrap:balance;max-width:11em;margin-top:clamp(16px,2vw,24px);font-size:clamp(2.5rem,1rem + 6vw,6.5rem);line-height:.96}.hero-grid{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:clamp(28px,4.5vw,56px);display:grid}.lead{max-width:31em;margin:0;font-size:clamp(1.1875rem,1rem + .6vw,1.5rem);line-height:1.42}.notes{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.notes li{border-bottom:1px solid var(--rule);grid-template-columns:7.5em minmax(0,1fr);align-items:baseline;gap:16px;padding:10px 0;display:grid}.notes .label{color:var(--violet)}@media (min-width:960px){.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:start;column-gap:8%}}.colophon{border-top:1px solid var(--ink)}.colophon-inner{flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding-block:18px 28px;font-size:.875rem;display:flex}.colophon p{margin:0}.student{--accent:var(--violet);--accent-ink:#fff}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.small{font-size:.875rem}.num{font-variant-numeric:tabular-nums}.preview-bar{padding:10px var(--gutter);background:var(--ink);color:var(--paper);flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0;font-size:.875rem;display:flex}.masthead-nav{align-items:center;gap:4px 18px;font-size:.9375rem;display:flex}.masthead-nav a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.masthead-nav a:hover{text-decoration:underline}.masthead-account{max-width:24ch;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (max-width:640px){.masthead-account{display:none}}.link-button{appearance:none;min-height:44px;color:inherit;font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:.22em;cursor:pointer;background:0 0;border:0;padding:0}.link-button:hover{color:var(--violet);text-decoration-color:currentColor}.link-button:disabled{opacity:.5;cursor:default}.button{border:1px solid var(--accent);background:var(--accent);min-height:48px;color:var(--accent-ink);font-family:var(--font-label);font-stretch:var(--label-stretch);font-weight:var(--label-weight);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:.8125rem;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.button:hover{color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 88%, var(--ink))}.button:disabled{opacity:.5;cursor:default}.button-quiet,.button-quiet:hover{border-color:var(--ink);color:var(--ink);background:0 0}.button-quiet:hover{background:var(--paper-deep)}.button.is-done:before{content:"";border-bottom:2px solid;border-left:2px solid;width:12px;height:7px;margin-top:-3px;transform:rotate(-45deg)}.narrow-page{max-width:calc(600px + 2 * var(--gutter));margin-inline:0;padding-block:clamp(40px,9vw,112px)}.page-title{letter-spacing:-.028em;text-wrap:balance;margin:12px 0 20px;font-size:clamp(2.125rem,1.25rem + 3.4vw,3.5rem);line-height:1.02}.lead-small{max-width:34em;margin:0 0 20px;font-size:1.125rem;line-height:1.5}.section-title{letter-spacing:-.01em;margin-bottom:14px;font-size:1.25rem}.notice{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0 0 24px;padding:12px 0}.tag{font-family:var(--font-label);font-stretch:var(--label-stretch);font-weight:var(--label-weight);letter-spacing:.07em;text-transform:uppercase;vertical-align:2px;border:1px solid;margin-left:8px;padding:1px 6px;font-size:.625rem;display:inline-block}.form{gap:16px;max-width:440px;display:grid}.field{gap:8px;display:grid}.input{border:1px solid var(--ink);min-height:52px;color:var(--ink);font:inherit;background:#fff;border-radius:0;padding:0 14px;font-size:1.0625rem}.input:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.input-code{font-family:var(--font-display);font-stretch:var(--display-stretch);letter-spacing:.32em;font-size:1.625rem;font-weight:700}.form-error{color:#b42318;margin:0}.form-links{flex-wrap:wrap;gap:4px 22px;margin:0;display:flex}.progress{background:var(--paper-deep);height:6px;overflow:hidden}.progress>span{background:var(--accent);height:100%;display:block}.courses-page{padding-block:clamp(32px,7vw,88px)}.course-list{border-top:1px solid var(--ink);margin:28px 0 0;padding:0;list-style:none}.course-row{border-bottom:1px solid var(--rule);grid-template-columns:88px minmax(0,1fr);align-items:center;gap:14px 18px;padding:22px 0;display:grid}.course-cover{aspect-ratio:4/3;background:var(--paper-deep);text-decoration:none;display:block;overflow:hidden}.course-cover img{object-fit:cover;width:100%;height:100%}.course-cover-type{font-family:var(--font-display);font-stretch:var(--display-stretch);padding:8px;font-size:.6875rem;font-weight:700;line-height:1.1;display:block}.course-info h2{letter-spacing:-.015em;font-size:clamp(1.25rem,1rem + 1vw,1.625rem);line-height:1.12}.course-info h2 a{text-decoration:none}.course-info>p{margin:6px 0 0}.course-progress{gap:8px;max-width:360px;margin-top:14px;display:grid}.course-progress p{margin:0}.course-cta{grid-column:1/-1}@media (min-width:720px){.course-row{grid-template-columns:168px minmax(0,1fr) auto}.course-cta{grid-column:auto}}.pager{justify-content:space-between;align-items:center;min-height:48px;margin-top:24px;display:flex}.empty{margin-top:28px}.course-page{padding-block:clamp(32px,7vw,96px)}.course-hero{border-bottom:1px solid var(--ink);max-width:780px;padding-bottom:32px}.course-hero .lead{margin-bottom:26px}.course-hero-progress{gap:10px;max-width:440px;display:grid}.course-hero-progress p{margin:0}.course-hero-progress .button{justify-self:start;margin-top:8px}.actions{flex-wrap:wrap;gap:12px;display:flex}.course-description{max-width:40em;margin:28px 0 0;font-size:1.0625rem}.course-syllabus{max-width:780px;margin-top:48px}.outline{margin:0;padding:0;list-style:none}.outline-module+.outline-module{margin-top:26px}.outline-module-title{font-weight:var(--strong-weight);gap:2px;margin:0 0 8px;display:grid}.outline-module>.small{margin:-4px 0 8px}.outline-lessons{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.outline-lesson>a,.outline-lesson>span{border-bottom:1px solid var(--rule);grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:48px;padding:8px 0;text-decoration:none;display:grid}.outline-lesson>a:hover .outline-lesson-title{text-underline-offset:.22em;text-decoration:underline}.outline-lesson.is-current>a{background:var(--paper-deep);font-weight:var(--strong-weight);margin-inline:-10px;padding-inline:10px}.outline-lesson.is-locked,.outline-lesson.is-no_access{color:var(--ink-soft)}.outline-lesson-meta{white-space:nowrap}.mark{border:1.5px solid var(--ink);place-items:center;width:14px;height:14px;display:inline-grid}.mark-done{border-color:var(--accent);background:var(--accent)}.mark-done:after{content:"";border-left:1.5px solid var(--accent-ink);border-bottom:1.5px solid var(--accent-ink);width:7px;height:4px;margin-top:-2px;transform:rotate(-45deg)}.mark-locked{color:var(--ink-soft);border:0}.learn-bar{z-index:5;border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0}.learn-bar-inner{justify-content:space-between;align-items:center;gap:16px;min-height:52px;display:flex}.learn-course{min-width:0;font-weight:var(--strong-weight);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.learn-bar-progress{flex:none;align-items:center;gap:10px;display:flex}.learn-bar-progress .progress{width:clamp(64px,18vw,140px)}.learn-video{background:#0c0c0c}.learn-video-inner{max-width:1120px;margin:0 auto}.video{aspect-ratio:16/9;background:#000;width:100%;display:block}.pv-figure{margin:0}.pv{aspect-ratio:16/9;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#000;width:100%;position:relative;overflow:hidden}.pv-video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.pv:fullscreen,.pv.pv-pseudo-fs{aspect-ratio:auto}.pv.pv-pseudo-fs{z-index:2147483000;width:100vw;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}.pv-noscroll,.pv-noscroll body{overflow:hidden}.pv-cover{z-index:50;place-content:center;justify-items:center;gap:14px;padding:20px;display:grid;position:absolute;inset:0}.pv[data-phase=stopped] .pv-cover{background:#000000b8}.pv-start{min-height:52px;color:var(--ink);font:var(--strong-weight) 1rem / 1 var(--font-text);cursor:pointer;background:#fff;border:0;border-radius:999px;align-items:center;gap:12px;padding:0 24px 0 18px;display:inline-flex;box-shadow:0 6px 24px #00000059}.pv-start:focus-visible{outline:3px solid var(--violet);outline-offset:3px}.pv-start-icon{border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:14px solid;width:0;height:0}.pv-message{color:#fff;text-align:center;text-wrap:balance;max-width:34em;margin:0;font-size:.95rem;line-height:1.45}.pv-link{color:#fff;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:.9rem;text-decoration:underline}.pv-spinner{border:3px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite pv-spin}@keyframes pv-spin{to{transform:rotate(360deg)}}.pv-fs-button{color:#fff}.pv-note{margin:10px 0 0}.learn-video .pv-note{color:#ffffff9e;margin:0;padding:10px 16px 14px}@media (min-width:1152px){.learn-video .pv-note{padding-inline:0}}.learn-grid{gap:40px;padding-block:28px 72px;display:grid}.learn-text{max-width:700px}.lesson-title{letter-spacing:-.022em;text-wrap:balance;margin:10px 0 26px;font-size:clamp(1.875rem,1.2rem + 2.3vw,2.75rem);line-height:1.06}.learn-outline>summary{border-top:1px solid var(--ink);min-height:52px;font-weight:var(--strong-weight);cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.learn-outline>summary::-webkit-details-marker{display:none}.learn-outline[open]>summary{margin-bottom:10px}.learn-side-desktop{display:none}.learn-side-title{font-weight:var(--strong-weight);justify-content:space-between;align-items:baseline;margin:0 0 10px;display:flex}@media (min-width:1024px){.learn-grid{grid-template-columns:minmax(0,1fr) 320px;gap:64px;padding-top:40px}.learn-side{align-self:start;max-height:calc(100dvh - 92px);position:sticky;top:72px;overflow-y:auto}.learn-side-desktop{display:block}.learn-outline{display:none}}.prose{font-size:1.0625rem;line-height:1.68}.prose>*{margin:0}.prose>*+*{margin-top:1em}.prose h2{letter-spacing:-.012em;margin-top:1.7em;font-size:1.5rem;line-height:1.2}.prose h3{margin-top:1.4em;font-size:1.1875rem;line-height:1.25}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose li>p{margin:0}.prose blockquote{border-left:2px solid var(--ink);padding-left:1em;font-size:1.1875rem;line-height:1.5}.prose blockquote>*{margin:0}.prose figure{margin-block:1.6em}.prose img{width:100%;height:auto}.prose figcaption{color:var(--ink-soft);margin-top:8px;font-size:.875rem}.prose pre{background:var(--ink);color:var(--paper);padding:14px 16px;font-size:.875rem;line-height:1.55;overflow-x:auto}.prose code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.prose hr{border:0;border-top:1px solid var(--rule)}.prose .button{margin-top:.4em}.callout{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0}.callout>*{margin:0}.callout>*+*{margin-top:.6em}.callout[data-tone=warning]>.label{color:var(--ink)}.resource-line a{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);align-items:baseline;gap:14px;min-height:48px;padding:12px 0;text-decoration:none;display:flex}.lesson-figure-video .video{margin-block:.4em}.resources{margin-top:40px}.resources ul{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.resources li a{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;min-height:52px;text-decoration:none;display:flex}.complete{border-top:1px solid var(--ink);flex-wrap:wrap;align-items:center;gap:12px;margin-top:44px;padding-top:24px;display:flex}.complete-note{color:var(--ink-soft);flex-basis:100%;margin:0;font-size:.875rem}.lesson-nav{grid-template-columns:1fr 1fr;gap:16px;margin-top:32px;display:grid}.lesson-nav a,.lesson-nav>span{align-content:start;gap:4px;min-height:48px;text-decoration:none;display:grid}.lesson-nav-next{text-align:right}.lesson-nav .is-locked{color:var(--ink-soft)}.course-hero-cover{aspect-ratio:16/10;background:var(--paper-deep);margin:0 0 28px;overflow:hidden}.course-hero-cover img{object-fit:cover;width:100%;height:100%}@media (min-width:1100px){.course-page{grid-template-columns:minmax(0,780px) minmax(0,1fr);align-items:start;column-gap:56px;display:grid}.course-page>:not(.course-hero-cover){grid-column:1}.course-hero-cover{grid-area:1/2/span 3;margin:0}}.device-list{border-top:1px solid var(--ink);margin:28px 0 18px;padding:0;list-style:none}.device-list li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;display:flex}.device-list .tag{margin-left:8px}
