@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{--ink:#07130f;--deep:#0b1b15;--panel:#10261e;--line:#d8e4dc;--paper:#f5f7f2;--white:#fff;--green:#42d392;--green-dark:#15845a;--lime:#c8f269;--muted:#66756c;--mono:"IBM Plex Mono",monospace;--sans:"Be Vietnam Pro","Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}button,a{font:inherit}button{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;padding:.75rem 1rem;background:var(--white);color:var(--ink)}.skip-link:focus{top:1rem}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(7,19,15,.94);backdrop-filter:blur(15px);position:sticky;top:0;z-index:20;color:var(--white)}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand>span:last-child{display:flex;flex-direction:column;line-height:1.1}.brand strong{font-size:.97rem}.brand small{margin-top:5px;color:#91a99e;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.brand-mark{width:41px;height:41px;display:flex;align-items:center;justify-content:center;background:var(--green);color:var(--ink);border-radius:9px 9px 9px 2px;font-family:var(--mono);font-size:1.08rem;box-shadow:0 0 24px rgba(66,211,146,.18)}.brand-mark i{font-style:normal;font-weight:600}.brand-mark b{transform:translateY(3px)}nav{display:flex;gap:34px}nav a{color:#c3d1ca;text-decoration:none;font-size:.86rem}nav a:hover{color:var(--green)}.top-cta{padding:10px 15px;border:1px solid rgba(255,255,255,.22);border-radius:7px;text-decoration:none;color:var(--white);font-size:.82rem}.top-cta:hover{border-color:var(--green);color:var(--green)}
.hero{min-height:670px;background:var(--ink);color:var(--white);padding:80px max(24px,calc((100vw - 1320px)/2)) 92px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:80px;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(66,211,146,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(66,211,146,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to right,black,transparent 90%)}.hero>*{position:relative}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;font-weight:600;color:var(--green);display:flex;align-items:center;gap:10px;margin:0 0 20px}.eyebrow span{width:28px;height:1px;background:currentColor}.hero h1{font-size:clamp(3rem,5.8vw,5.7rem);letter-spacing:-.06em;line-height:1.02;margin:0;font-weight:700}.hero h1 em{color:var(--green);font-style:normal}.hero-lead{font-size:1.08rem;line-height:1.8;color:#a9bbb2;max-width:590px;margin:30px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:14px 19px;border-radius:7px;text-decoration:none;font-weight:650;font-size:.88rem}.button.primary{background:var(--green);color:var(--ink)}.button.primary:hover{background:var(--lime)}.button.ghost{border:1px solid #395047;color:var(--white)}.button.ghost:hover{border-color:var(--green)}.hero-proof{display:flex;gap:24px;margin-top:52px;padding-top:22px;border-top:1px solid #263a31;color:#8fa198;font-size:.72rem}.hero-proof span{display:flex;flex-direction:column;gap:4px}.hero-proof b{color:var(--white);font-family:var(--mono);font-size:.9rem}
.hero-lab{background:#eef5f0;color:var(--ink);border-radius:12px;box-shadow:0 40px 90px rgba(0,0,0,.35);transform:rotate(1.5deg);position:relative}.lab-toolbar{height:55px;display:flex;align-items:center;padding:0 18px;border-bottom:1px solid #ccd9d1;gap:10px;font-size:.76rem}.lab-logo{display:grid;place-items:center;width:28px;height:28px;background:#f6c453;border-radius:6px;font-family:var(--mono);font-weight:700}.lab-toolbar b{font-family:var(--mono);font-size:.74rem}.lab-toolbar i{font-style:normal;color:#738078;font-size:.68rem}.window-dots{display:flex;gap:5px;margin-left:auto}.window-dots span{width:7px;height:7px;border-radius:50%;background:#c2cec6}.code-cell{margin:38px 32px 0;background:var(--white);border:1px solid #cbd8d0;border-left:4px solid var(--green-dark);min-height:124px;display:flex;align-items:center;box-shadow:0 9px 24px rgba(13,45,31,.07)}.run-button{margin:0 18px;border:1px solid #aabbb0;width:35px;height:35px;border-radius:50%;background:var(--white);cursor:pointer;color:var(--green-dark)}.run-button:hover{background:#e9f8f0}.cell-code{flex:1;font-family:var(--mono);font-size:1rem}.line-number{color:#a6b1aa;margin-right:24px}.cell-code strong,.practice-card pre strong{color:#7a45b8;font-weight:500}.cell-code q,.practice-card pre q{color:#a4432e}.cell-code q:before,.cell-code q:after,.practice-card q:before,.practice-card q:after{content:'"'}.cell-output{margin:0 32px;padding:19px 24px 28px 80px;display:flex;gap:15px;font-family:var(--mono);background:#e8f0eb;transition:.2s}.cell-output.flash{background:#d3f7e2}.cell-output span{color:var(--green-dark)}.lab-status{height:48px;border-top:1px solid #cbd8d0;margin-top:32px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;color:#64716a;font-size:.67rem}.lab-status span{display:flex;align-items:center;gap:6px}.lab-status i{width:7px;height:7px;background:var(--green-dark);border-radius:50%}.float-note{position:absolute;background:var(--lime);padding:10px 13px;border-radius:5px;font-family:var(--mono);font-size:.65rem;font-weight:600;box-shadow:0 10px 25px rgba(0,0,0,.2);transform:rotate(-1.5deg)}.note-one{left:-42px;top:105px}.note-two{right:-32px;bottom:38px}
.principles{width:min(1320px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line)}.principles article{display:flex;gap:20px;padding:44px 38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.principles article>span{font-family:var(--mono);color:var(--green-dark);font-size:.75rem}.principles h2{font-size:1rem;margin:0 0 9px}.principles p{font-size:.82rem;line-height:1.65;color:var(--muted);margin:0}.lessons-section{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:100px 0 110px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-heading h2{font-size:clamp(2.1rem,4vw,4rem);letter-spacing:-.05em;margin:0}.section-heading>p{max-width:480px;color:var(--muted);line-height:1.75;margin:0 0 7px;font-size:.9rem}.lesson-layout{display:grid;grid-template-columns:330px 1fr;background:var(--white);border:1px solid var(--line);box-shadow:0 16px 50px rgba(25,48,36,.07)}.lesson-nav{border-right:1px solid var(--line);background:#eef2ed}.nav-label{padding:25px 24px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto}.nav-label span{font:600 .65rem var(--mono);color:var(--green-dark);grid-column:1/-1;margin-bottom:8px}.nav-label b{font-size:1.05rem}.nav-label small{color:var(--muted)}.lesson-item{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:19px 18px;display:grid;grid-template-columns:38px 1fr 20px;text-align:left;gap:10px;align-items:center;cursor:pointer}.lesson-item:hover{background:#e4ebe5}.lesson-item.active{background:var(--ink);color:var(--white)}.lesson-item>span{font:600 .7rem var(--mono);color:var(--green-dark)}.lesson-item.active>span{color:var(--green)}.lesson-item div{display:flex;flex-direction:column;gap:6px}.lesson-item b{font-size:.78rem}.lesson-item small{font-size:.65rem;color:#738077}.lesson-item.active small{color:#91a59a}.lesson-item i{font-style:normal;color:var(--green)}.lesson-panel{padding:40px}.lesson-topline{display:flex;justify-content:space-between;color:var(--green-dark);font:600 .69rem var(--mono);letter-spacing:.06em}.lesson-panel>h2{font-size:clamp(1.7rem,3vw,2.7rem);letter-spacing:-.04em;margin:12px 0}.lesson-panel>p{color:var(--muted);line-height:1.7;margin:0 0 30px}.lesson-grid{display:grid;grid-template-columns:minmax(260px,.77fr) minmax(330px,1.23fr);gap:25px}.video-card{background:var(--ink);aspect-ratio:9/16;max-height:530px;overflow:hidden;display:flex;align-items:center;justify-content:center}.video-card iframe{border:0;width:100%;height:100%}.video-placeholder{text-align:center;padding:30px;color:#849a8e}.video-placeholder span{display:block;font:600 4rem var(--mono);color:#274a3b}.video-placeholder b{display:block;color:var(--white);margin:16px 0}.video-placeholder p{font-size:.76rem;line-height:1.6}.practice-card{border:1px solid var(--line);align-self:start}.practice-heading{padding:19px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.practice-heading span{font:600 .65rem var(--mono);color:var(--green-dark)}.practice-heading b{font-size:.78rem}.practice-card pre{margin:0;padding:27px 20px;background:#f7faf7;min-height:105px;white-space:pre-wrap;display:flex;gap:18px;font:.9rem/1.8 var(--mono)}.pre-line{color:#abb5ae}.copy-button{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white);width:100%;padding:12px 20px;text-align:left;color:var(--green-dark);font-size:.73rem;cursor:pointer}.copy-button:hover{background:#eaf7ef}.expected{padding:20px;display:flex;flex-direction:column;gap:10px}.expected span{font:600 .62rem var(--mono);color:var(--muted)}.expected code{white-space:pre-wrap;background:var(--ink);color:var(--green);padding:13px;font:500 .78rem/1.7 var(--mono)}.practice-card>p{font-size:.72rem;line-height:1.65;color:var(--muted);padding:0 20px;margin:0 0 18px}.practice-card>p b{color:var(--ink)}.colab-button{display:flex;justify-content:space-between;background:var(--green);color:var(--ink);text-decoration:none;padding:15px 20px;font-size:.78rem;font-weight:700}.colab-button:hover{background:var(--lime)}
.roadmap-section{background:var(--deep);color:var(--white);padding:100px max(24px,calc((100vw - 1320px)/2)) 110px}.section-heading.light>p{color:#91a59a}.roadmap-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #2d4338;border-left:1px solid #2d4338}.roadmap-card{min-height:280px;padding:28px;display:flex;gap:22px;border-right:1px solid #2d4338;border-bottom:1px solid #2d4338;background:#0b1b15;transition:.2s}.roadmap-card:hover{background:#10251c}.roadmap-card.open{background:var(--green);color:var(--ink)}.roadmap-card>span{font:600 .67rem var(--mono);color:var(--green)}.roadmap-card.open>span{color:#145f42}.roadmap-card small{font:600 .63rem var(--mono);letter-spacing:.1em;color:#789186}.roadmap-card.open small{color:#236d4f}.roadmap-card h3{font-size:1.25rem;margin:11px 0}.roadmap-card p{color:#91a59a;font-size:.78rem;line-height:1.7}.roadmap-card.open p{color:#205b43}.tag-row{margin-top:25px;display:flex;gap:8px;flex-wrap:wrap}.tag-row b,.tag-row i{font:500 .62rem var(--mono);font-style:normal;padding:5px 8px;border:1px solid #375045;border-radius:4px}.roadmap-card.open .tag-row b,.roadmap-card.open .tag-row i{border-color:#26805a}.tag-row b{background:var(--lime);color:var(--ink);border:0}.closing{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:95px 0;display:flex;align-items:center;justify-content:space-between;gap:50px}.closing h2{font-size:clamp(2rem,4vw,3.7rem);letter-spacing:-.05em;margin:0}.closing p{color:var(--muted);line-height:1.7}.button.large{padding:18px 22px;white-space:nowrap}footer{background:var(--ink);color:#9caf9f;padding:38px max(24px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;border-top:1px solid #293d34;font-size:.72rem}.footer-brand{color:var(--white)}footer>div{display:flex;flex-direction:column;align-items:end;gap:7px}footer a{color:var(--green);text-decoration:none}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--white);padding:11px 16px;border-radius:6px;opacity:0;pointer-events:none;transition:.2s;z-index:50;font-size:.75rem}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1000px){.hero{grid-template-columns:1fr;padding-top:65px}.hero-copy{max-width:720px}.hero-lab{width:min(650px,94%);margin:0 auto}.lesson-layout{grid-template-columns:1fr}.lesson-nav{border-right:0;display:grid;grid-template-columns:repeat(2,1fr)}.nav-label{grid-column:1/-1}.lesson-item{border-right:1px solid var(--line)}.roadmap-list{grid-template-columns:repeat(2,1fr)}.lesson-grid{grid-template-columns:minmax(240px,.7fr) 1fr}}
@media(max-width:720px){.topbar{height:66px}.topbar nav{display:none}.top-cta{font-size:.7rem}.brand strong{font-size:.82rem}.brand small{font-size:.56rem}.brand-mark{width:35px;height:35px}.hero{padding-top:56px;gap:60px}.hero h1{font-size:clamp(2.7rem,14vw,4.3rem)}.hero-lead{font-size:.92rem}.hero-proof{gap:16px}.note-one{left:-8px}.note-two{right:-8px}.principles{grid-template-columns:1fr}.section-heading{display:block}.section-heading>p{margin-top:20px}.lessons-section{padding:70px 0}.lesson-nav{display:block}.lesson-panel{padding:26px 18px}.lesson-grid{grid-template-columns:1fr}.video-card{max-height:none;width:min(100%,330px);margin:0 auto}.roadmap-section{padding-top:70px}.roadmap-list{grid-template-columns:1fr}.closing{display:block;padding:70px 0}.closing .button{margin-top:20px}.button.large{white-space:normal}footer{flex-direction:column;align-items:flex-start;gap:25px}footer>div{align-items:start}.float-note{font-size:.56rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.curriculum-summary{display:flex;gap:32px;margin:-8px 0 32px;padding:20px 24px;border:1px solid #2d4338;background:#0e2119}.curriculum-summary span{display:flex;align-items:baseline;gap:8px;color:#8fa398;font-size:.72rem}.curriculum-summary b{font:600 1.3rem var(--mono);color:var(--green)}.module-browser{border-top:1px solid #30453a}.module-row{border:1px solid #30453a;border-top:0;background:#0a1813}.module-toggle{width:100%;border:0;background:transparent;display:grid;grid-template-columns:76px 1fr auto 28px;gap:20px;align-items:center;padding:24px;text-align:left;cursor:pointer}.module-toggle:hover{background:#10261d}.module-number{font:600 .78rem var(--mono);color:var(--green)}.module-copy{display:flex;flex-direction:column;gap:6px}.module-copy small{font:600 .59rem var(--mono);color:#6f8b7e;letter-spacing:.12em;text-transform:uppercase}.module-copy b{font-size:1rem}.module-copy em{font-style:normal;color:#89a096;font-size:.72rem;line-height:1.5}.module-count{font:500 .65rem var(--mono);color:#94aa9f;border:1px solid #324a3e;border-radius:4px;padding:7px 9px}.module-arrow{font-size:1.35rem;color:var(--green);transition:transform .2s}.module-row.open .module-arrow{transform:rotate(180deg)}.module-lessons{display:none;border-top:1px solid #30453a;background:#0d1e17;padding:8px 24px 18px 100px}.module-row.open .module-lessons{display:block}.curriculum-lesson{display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid #263a30}.curriculum-lesson:last-child{border-bottom:0}.curriculum-id{font:600 .66rem var(--mono);color:var(--green)}.curriculum-title{display:flex;flex-direction:column;gap:5px}.curriculum-title b{font-size:.78rem}.curriculum-title small{color:#789084;font-size:.68rem}.video-state{font:500 .58rem var(--mono);color:#789084}.video-state.voiced{color:var(--lime)}.video-state.scripted{color:#9ddbc0}
@media(max-width:720px){.curriculum-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px}.curriculum-summary span:last-child{grid-column:1/-1}.module-toggle{grid-template-columns:50px 1fr 22px;padding:20px 14px;gap:10px}.module-count{display:none}.module-copy em{font-size:.66rem}.module-lessons{padding:5px 14px 14px}.curriculum-lesson{grid-template-columns:52px 1fr}.video-state{grid-column:2}}
@media(prefers-reduced-motion:reduce){.module-arrow{transition:none}}

/* Mục lục lộ trình: module và bài học hoạt động như các tab của bốn bài đầu. */
.module-browser{border:0}.curriculum-catalog{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:720px;background:#f5f7f2;color:var(--ink);border:1px solid #30453a;box-shadow:0 22px 60px rgba(0,0,0,.18)}.curriculum-module-tabs{display:block;gap:0;background:#e9efea;border-right:1px solid #cbd8d0}.catalog-label{padding:24px;display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid #cbd8d0}.catalog-label span{font:600 .63rem var(--mono);letter-spacing:.12em;color:var(--green-dark)}.catalog-label b{font-size:.78rem}.curriculum-module-tab,.curriculum-lesson-tab{width:100%;border:0;border-bottom:1px solid #cbd8d0;background:transparent;text-align:left;cursor:pointer}.curriculum-module-tab{min-height:68px;padding:13px 15px;display:grid;grid-template-columns:44px 1fr 18px;gap:10px;align-items:center}.curriculum-module-tab:hover,.curriculum-lesson-tab:hover{background:#dfe8e1}.curriculum-module-tab.active,.curriculum-lesson-tab.active{background:var(--ink);color:var(--white)}.curriculum-module-tab>span:first-child{font:600 .66rem var(--mono);color:var(--green-dark)}.curriculum-module-tab.active>span:first-child{color:var(--green)}.curriculum-module-tab>span:nth-child(2){display:flex;flex-direction:column;gap:4px}.curriculum-module-tab small{font:600 .53rem var(--mono);letter-spacing:.08em;color:#718078}.curriculum-module-tab.active small{color:#8ca197}.curriculum-module-tab b{font-size:.7rem;line-height:1.3}.curriculum-module-tab i,.curriculum-lesson-tab i{font-style:normal;color:var(--green-dark)}.curriculum-module-tab.active i,.curriculum-lesson-tab.active i{color:var(--green)}.curriculum-stage{min-width:0}.curriculum-stage-head{min-height:136px;padding:25px 30px;display:flex;justify-content:space-between;gap:30px;align-items:flex-start;border-bottom:1px solid var(--line);background:var(--white)}.curriculum-stage-head span{font:600 .61rem var(--mono);letter-spacing:.1em;color:var(--green-dark);text-transform:uppercase}.curriculum-stage-head h3{font-size:1.45rem;letter-spacing:-.03em;margin:7px 0}.curriculum-stage-head p{margin:0;max-width:680px;color:var(--muted);font-size:.76rem;line-height:1.6}.curriculum-stage-head>b{white-space:nowrap;font:600 .61rem var(--mono);color:var(--green-dark);border:1px solid var(--line);padding:8px 10px}.curriculum-stage-body{display:grid;grid-template-columns:minmax(290px,360px) minmax(0,1fr);min-height:584px}.curriculum-lesson-tabs{display:block;gap:0;background:#eef2ed;border-right:1px solid var(--line)}.curriculum-lesson-tab{min-height:58px;padding:11px 14px;display:grid;grid-template-columns:50px 1fr 16px;gap:9px;align-items:center}.curriculum-lesson-tab>span:first-child{font:600 .61rem var(--mono);color:var(--green-dark)}.curriculum-lesson-tab.active>span:first-child{color:var(--green)}.curriculum-lesson-tab>span:nth-child(2){display:flex;flex-direction:column;gap:3px}.curriculum-lesson-tab b{font-size:.68rem;line-height:1.35}.curriculum-lesson-tab small{font-size:.58rem;color:#728078;line-height:1.35}.curriculum-lesson-tab.active small{color:#8fa198}.curriculum-detail{padding:34px;display:flex;flex-direction:column;background:var(--white)}.curriculum-detail-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font:600 .6rem var(--mono);letter-spacing:.06em;color:var(--green-dark)}.curriculum-detail h3{font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.045em;line-height:1.1;margin:32px 0 16px;max-width:720px}.curriculum-detail-lead{color:var(--muted);font-size:.82rem;line-height:1.75;max-width:650px;margin:0}.concept-card{margin:32px 0 20px;padding:22px;border-left:4px solid var(--green);background:#ecf5ef;display:flex;flex-direction:column;gap:9px}.concept-card small,.curriculum-detail-note>span{font:600 .58rem var(--mono);letter-spacing:.1em;color:var(--green-dark)}.concept-card b{font-size:1rem}.curriculum-detail-note{padding:20px 0;border-top:1px solid var(--line)}.curriculum-detail-note p{font-size:.72rem;line-height:1.65;color:var(--muted);margin:8px 0 0}.curriculum-detail-foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:28px;color:var(--muted);font-size:.65rem}.curriculum-detail-foot span{display:flex;flex-direction:column;gap:4px}.curriculum-detail-foot b{font:600 .72rem var(--mono);color:var(--ink)}.curriculum-detail .video-state.voiced{color:#14794f}.curriculum-detail .video-state.scripted{color:#257656}.curriculum-module-tab:focus-visible,.curriculum-lesson-tab:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}
@media(max-width:1000px){.curriculum-catalog{grid-template-columns:1fr;min-height:0}.curriculum-module-tabs{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.catalog-label{min-width:150px;align-items:center;flex-direction:column;justify-content:center;gap:4px}.curriculum-module-tab{min-width:225px;border-right:1px solid #cbd8d0;border-bottom:0}.curriculum-stage-body{grid-template-columns:320px minmax(0,1fr)}}
@media(max-width:720px){.curriculum-catalog{width:calc(100vw - 48px)}.catalog-label{min-width:126px;padding:15px}.curriculum-module-tab{min-width:205px}.curriculum-stage-head{padding:22px 18px;display:block}.curriculum-stage-head>b{display:inline-block;margin-top:16px}.curriculum-stage-body{grid-template-columns:1fr}.curriculum-lesson-tabs{border-right:0;border-bottom:1px solid var(--line)}.curriculum-detail{padding:28px 18px;min-height:470px}.curriculum-detail-top{align-items:flex-start;flex-direction:column;gap:8px}.curriculum-detail h3{margin-top:24px}.curriculum-detail-foot{gap:18px}}

/* Khung khóa học thống nhất, tham khảo cấu trúc mục lục xổ xuống của website Math. */
.unified-course-section{padding-top:90px}.course-summary{margin-top:-8px;background:var(--ink);border-color:#244035}.course-shell{display:grid;grid-template-columns:330px minmax(0,1fr);background:var(--white);border:1px solid var(--line);box-shadow:0 18px 60px rgba(25,48,36,.1)}.course-sidebar{background:var(--deep);color:var(--white);border-right:1px solid #294036}.course-nav-heading{padding:24px;display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #294036}.course-nav-heading span{font:600 .61rem var(--mono);letter-spacing:.12em;color:var(--green)}.course-nav-heading b{font-size:.7rem;color:#94a99f}.course-module{border-bottom:1px solid #294036}.course-module.open{background:#0e241b}.course-module-button{width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:44px 1fr 18px;gap:11px;align-items:center;padding:15px 14px;text-align:left;cursor:pointer}.course-module-button:hover{background:#132d22}.course-module-code{width:38px;height:38px;display:grid;place-items:center;border:1px solid #395348;border-radius:7px;font:600 .65rem var(--mono);color:var(--green)}.course-module-button>span:nth-child(2){display:flex;flex-direction:column;gap:4px}.course-module-button b{font-size:.76rem;line-height:1.3}.course-module-button small{font-size:.59rem;color:#82998e}.course-module-button i{font-style:normal;color:#71877d;font-size:1.2rem;transition:transform .2s}.course-module.open .course-module-button i{transform:rotate(90deg);color:var(--green)}.course-lesson-list{padding:0 8px 10px 57px}.course-lesson-button{width:100%;min-height:53px;border:0;border-left:1px solid #375046;background:transparent;color:#91a59b;display:grid;grid-template-columns:36px 1fr 15px;gap:8px;align-items:center;padding:8px 9px;text-align:left;cursor:pointer}.course-lesson-button:hover{background:#142d23}.course-lesson-button.active{background:linear-gradient(90deg,rgba(66,211,146,.14),transparent);border-left-color:var(--green);color:var(--white)}.course-lesson-button>span:first-child{font:600 .61rem var(--mono);color:var(--green)}.course-lesson-button>span:nth-child(2){display:flex;flex-direction:column;gap:3px}.course-lesson-button b{font-size:.67rem;line-height:1.35}.course-lesson-button small{font-size:.54rem;color:#71877c}.course-lesson-button i{font-style:normal;font-size:.67rem;color:var(--green)}.course-content{min-width:0;padding:clamp(26px,3.2vw,46px)}.course-content-meta{display:flex;justify-content:space-between;gap:20px;color:var(--green-dark);font:600 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.course-content>h2{font-size:clamp(2rem,4vw,4rem);line-height:1.08;letter-spacing:-.05em;margin:13px 0 10px}.course-description{max-width:760px;color:var(--muted);font-size:.86rem;line-height:1.7;margin:0 0 30px}.course-content-grid{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:clamp(24px,3.5vw,48px);align-items:start}.content-card-heading{min-height:58px;padding:15px 17px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:5px}.content-card-heading span{font:600 .56rem var(--mono);letter-spacing:.1em;color:var(--green-dark)}.content-card-heading b{font-size:.72rem}.content-card-heading.dark{background:#0d2018;border-color:#294036;color:var(--white)}.content-card-heading.dark span{color:var(--green)}.course-video-wrap{min-width:0}.course-video-frame{aspect-ratio:9/16;background:var(--ink);overflow:hidden}.course-video-frame iframe{width:100%;height:100%;display:block;border:0}.course-video-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:27px;color:#849a8e;background:radial-gradient(circle at center,rgba(66,211,146,.12),transparent 62%)}.course-video-placeholder span{font:600 .65rem var(--mono);letter-spacing:.14em;color:var(--green)}.course-video-placeholder b{color:var(--white);margin:14px 0 2px;font-size:.92rem}.course-video-placeholder p{font-size:.68rem;line-height:1.6}.course-video-note{font-size:.62rem;line-height:1.5;color:var(--muted);margin:10px 0 0}.illustration-card{border:1px solid var(--line);background:#f8faf7;min-height:430px}.code-illustration pre{margin:0;padding:25px 20px;min-height:130px;white-space:pre-wrap;background:var(--white);font:.8rem/1.8 var(--mono);color:#563a8a}.course-copy-button{width:100%;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#edf5ef;color:var(--green-dark);padding:12px 18px;text-align:left;font-size:.68rem;cursor:pointer}.course-copy-button:hover{background:#dff1e6}.course-expected{padding:18px;display:flex;flex-direction:column;gap:9px}.course-expected span{font:600 .55rem var(--mono);color:var(--muted);letter-spacing:.08em}.course-expected code{white-space:pre-wrap;background:var(--ink);color:var(--green);padding:14px;font:.72rem/1.65 var(--mono)}.illustration-card>p{padding:0 18px;margin:0 0 18px;color:var(--muted);font-size:.68rem;line-height:1.65}.illustration-card>p b{color:var(--ink)}.concept-path{padding:30px 20px;display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr;gap:7px;align-items:stretch}.concept-path>span{align-self:center;text-align:center;color:var(--green-dark)}.concept-path>div{min-height:125px;padding:14px;border:1px solid var(--line);background:var(--white);display:flex;flex-direction:column;justify-content:space-between}.concept-path small{font:600 .58rem var(--mono);color:var(--green-dark)}.concept-path b{font-size:.7rem;line-height:1.45}.concept-path .concept-focus{background:var(--green);border-color:var(--green)}.concept-path .concept-focus small{color:#165c40}.course-pager{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.course-pager button{border:1px solid var(--line);background:var(--white);border-radius:6px;padding:9px 12px;font-size:.7rem;cursor:pointer}.course-pager button:hover:not(:disabled){border-color:var(--green-dark);color:var(--green-dark)}.course-pager button:disabled{opacity:.35;cursor:not-allowed}.course-pager span{font:600 .62rem var(--mono);color:var(--muted)}.course-module-button:focus-visible,.course-lesson-button:focus-visible,.course-pager button:focus-visible,.course-copy-button:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}
@media(max-width:1000px){.course-shell{grid-template-columns:1fr}.course-sidebar{border-right:0;border-bottom:1px solid #294036}.course-module-list{display:grid;grid-template-columns:1fr 1fr}.course-module.open{grid-column:1/-1}.course-content-grid{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}}
@media(max-width:720px){.unified-course-section{padding-top:65px}.course-summary{margin-bottom:24px}.course-module-list{grid-template-columns:1fr}.course-module.open{grid-column:auto}.course-content{padding:25px 17px}.course-content-meta{align-items:flex-start;flex-direction:column;gap:7px}.course-content-grid{grid-template-columns:1fr}.course-video-wrap{width:min(100%,290px);margin:0 auto}.illustration-card{min-height:0}.concept-path{grid-template-columns:1fr;padding:20px}.concept-path>span{transform:rotate(90deg)}.concept-path>div{min-height:94px}.course-nav-heading{padding:20px}.course-lesson-list{padding-left:42px}}


