.course30{--brand:#7c6fe8;--brand-700:#6a5be0;--brand-300:#c4b5fd;--brand-200:#ddd6fe;--brand-100:#ede9fe;--brand-50:#f5f3ff;--ink:#252a34;--muted:#6f7480;--line:#e9e7f3;--pale:#f5f3ff;--green:#0e9f6e;--amber:#b45309;--amber-bg:#fffbeb;--surface:#fff;--page:#fbfaff;--site-max:1440px;--site-pad:1rem;color:var(--ink);background:var(--page);font:18px/1.8 -apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}@media (min-width:640px){.course30{--site-pad:1.5rem}}@media (min-width:1024px){.course30{--site-pad:2rem}}.course30 *{box-sizing:border-box}.course30{margin:0}.course30 button,.course30 select,.course30 input{font:inherit}.course30 select{appearance:none;background-color:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%236f7480' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:12px 8px;border-radius:9px;padding:7px 32px 7px 12px;line-height:1.4;transition:border-color .16s,box-shadow .16s}.course30 select:hover{border-color:var(--brand-300)}.course30 select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #7c6fe82e}.course30 button,.course30 a,.course30 input,.course30 select,.course30 summary{touch-action:manipulation}.course30 button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:8px 15px;font-size:15px;font-weight:550;transition:background .16s,border-color .16s,color .16s}.course30 button:hover{background:var(--brand-50);border-color:var(--brand-200)}.course30 button:disabled{opacity:.4;cursor:default}.course30 .primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #7c6fe847}.course30 .primary:hover{background:var(--brand-700);border-color:var(--brand-700);color:#fff}.course30 a{color:var(--brand);text-underline-offset:4px}.course30 button:focus-visible,.course30 a:focus-visible,.course30 select:focus-visible,.course30 input:focus-visible,.course30 summary:focus-visible{outline-offset:2px;border-radius:9px;outline:3px solid #7c6fe873}.course30 [hidden]{display:none!important}.course30 .top{border-bottom:1px solid var(--line);background:var(--surface);height:74px;padding:0 var(--site-pad);justify-content:space-between;align-items:center;gap:20px;display:flex}.course30 .top>*{max-width:calc(var(--site-max)/3)}.course30 .top>span{color:var(--muted);font-size:14px}.course30 .brand{align-items:center;gap:10px;font-size:26px;font-weight:800;text-decoration:none;display:flex}.course30 .brand span{color:var(--ink);font-size:19px}.course30 .top>div{gap:10px;display:flex}.course30 #book-layout{max-width:var(--site-max);padding:0 var(--site-pad);grid-template-columns:268px minmax(0,1fr);margin:auto;display:grid}.course30 .eyebrow{letter-spacing:.1em;color:var(--brand);margin:0 0 12px;font-size:12px;font-weight:750}.course30 h1,.course30 h2,.course30 h3,.course30 h4{letter-spacing:-.02em;line-height:1.45}.course30 h1{font-family:Georgia,Songti SC,SimSun,serif}.course30 .sidebar h1{margin:12px 0;font-size:31px}.course30 .sidebar>p{color:var(--muted);font-size:14px}.course30 nav button{text-align:left;background:0 0;border-color:#0000;width:100%;margin:4px 0;padding:10px 12px;font-size:14px;display:block}.course30 nav button.current{background:var(--pale);color:var(--brand);border-left:3px solid var(--brand);font-weight:750}.course30 nav button small{opacity:.65;margin-right:10px;font-family:ui-monospace,monospace}.course30 .sidebar-note{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.course30 .video-invite{background:var(--pale);border:1px solid #ccdaed;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;padding:18px 22px;font-size:15px;display:flex}.course30 .video-invite p{color:var(--muted);margin:4px 0 0;font-size:13px}.course30 .video-invite button{white-space:nowrap}.course30 article{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:34px 38px;box-shadow:0 1px 2px #252a340a}.course30 article h2{margin:0 0 18px;font-size:30px}.course30 article h3{margin-top:30px;font-size:23px}.course30 article h4{font-size:19px}.course30 p{margin:14px 0}.course30 .intro{font-size:19px}.course30 .chapter-local{background:var(--brand-50);border-left:3px solid var(--brand-300);border-radius:0 10px 10px 0;margin:25px 0;padding:12px 18px;font-size:14px}.course30 .chapter-local a{margin:4px 18px 4px 0;display:inline-block}.course30 pre{border:1px solid var(--line);color:#1e385b;tab-size:4;background:#f7f6fd;border-radius:8px;padding:18px 22px;font:17px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.course30 code{background:var(--brand-50);overflow-wrap:anywhere;border-radius:3px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.93em}.course30 pre code{overflow-wrap:normal;background:0 0;padding:0}.course30 strong{font-weight:750}.course30 li{margin:9px 0}.course30 .callout{background:var(--amber-bg);border-left:3px solid #f59e0b;border-radius:0 10px 10px 0;margin:22px 0;padding:14px 20px}.course30 .callout p{margin:7px 0}.course30 .given-answer{grid-template-columns:1fr 1fr;gap:18px;display:grid}.course30 .given-answer>div{border:1px solid var(--line);border-radius:8px;padding:14px 20px}.course30 .given-answer small{color:var(--muted);font-size:13px}.course30 .answer-number{color:var(--green);font:700 36px/1.5 Georgia,serif}.course30 details{border:1px solid var(--line);border-radius:7px;margin:16px 0;padding:12px 18px}.course30 summary{cursor:pointer;color:var(--brand);font-weight:650}.course30 table{border-collapse:collapse;width:100%;margin:20px 0;font-size:16px}.course30 th,.course30 td{border-bottom:1px solid var(--line);text-align:left;padding:12px}.course30 th{background:var(--brand-50);font-weight:650}.course30 .table-wrap{overflow:auto}.course30 .chapter-footer{color:var(--muted);justify-content:space-between;align-items:center;margin-top:25px;font-size:14px;display:flex}.course30 .mini-label{color:var(--brand);font-size:13px;font-weight:750}.course30 .experiment{border:1px solid var(--brand-200);background:var(--brand-50);border-radius:10px;margin:26px 0;padding:20px}.course30 .experiment h3{margin:0 0 12px}.course30 .experiment-controls{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.course30 .experiment input{border:1px solid var(--line);background:var(--surface);border-radius:9px;max-width:155px;padding:7px 10px;font-size:15px}.course30 .experiment input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #7c6fe82e}.course30 .experiment label{align-items:center;gap:7px;display:flex}.course30 .experiment select{max-width:180px;padding:7px;font-size:14px}.course30 .trace-board{grid-template-columns:1.4fr 1fr;gap:18px;margin:18px 0;display:grid}.course30 .code-lines{border:1px solid var(--line);background:#f7f6fd;border-radius:8px;min-width:0;padding:12px 0;font:16px/2 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.course30 .code-line{white-space:pre;border-left:3px solid #0000;min-width:max-content;padding:3px 14px}.course30 .code-line.active{background:var(--brand-100);border-color:var(--brand)}.course30 .code-line small{color:#7b8ea6;width:26px;display:inline-block}.course30 .cells{flex-wrap:wrap;gap:10px;display:flex}.course30 .cell{border:1px solid var(--line);text-align:center;background:var(--surface);border-radius:10px;min-width:58px;padding:8px 14px;transition:background .2s,border-color .2s,transform .22s,box-shadow .22s}.course30 .cell.current{border-color:var(--brand);background:var(--pale)}.course30 .cell small{color:var(--muted);font-size:11px;display:block}.course30 .cell b{font:700 28px/1.5 Georgia,serif}.course30 .watch{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}.course30 .watch p{margin:8px 0;font-size:14px}.course30 .watch strong{color:var(--green);font-size:30px}.course30 .output{white-space:pre-wrap;background:#eafaf3;border-radius:7px;padding:12px;font:18px/1.6 ui-monospace,monospace}.course30 .reason{color:var(--brand);min-height:27px;font-size:15px}.course30 .error{color:#a12e31;font-size:14px}.course30 .concept-points{gap:16px;display:grid}.course30 .concept-points>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:18px 22px;transition:transform .22s,box-shadow .22s,border-color .22s,background .22s}.course30 .concept-points strong{font-size:21px;display:block}.course30 .concept-points p{color:var(--muted);margin:6px 0}.course30 .player-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.course30 .player-head h1{margin:0;font-size:24px}.course30 .player-head .eyebrow{margin-bottom:2px}.course30 #player{height:calc(100dvh - 74px);min-height:510px;padding:18px var(--site-pad) 20px;max-width:var(--site-max);grid-template-rows:auto minmax(0,1fr) auto;gap:16px;margin:auto;display:grid}.course30 .player-body{grid-template-columns:220px minmax(0,1fr);gap:20px;min-height:0;display:grid}.course30 #video-chapters{min-height:0;overflow:auto}.course30 .stage{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:20px 26px;display:grid;box-shadow:0 1px 2px #252a340a}.course30 .stage-head span{color:var(--brand);font-size:12px;font-weight:700}.course30 .stage h2{margin:4px 0 12px;font-size:24px}.course30 #scene{min-height:0;padding:6px 0 12px;overflow:auto}.course30 .stage .code-lines{font-size:17px}.course30 .stage .concept-points{grid-template-columns:repeat(2,minmax(0,1fr))}.course30 #caption{border-top:1px solid var(--line);min-height:70px;margin:10px 0 0;padding:12px 0 0;font-size:17px;line-height:1.65}.course30 .controls{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 18px}.course30 .timeline{align-items:center;gap:20px;font:13px ui-monospace,monospace;display:flex}.course30 .timeline input{accent-color:var(--brand);flex:1}.course30 .buttons{flex-wrap:wrap;align-items:center;gap:9px;margin-top:12px;display:flex}.course30 .buttons label{margin-left:auto;font-size:14px}.course30 .buttons select{border:1px solid var(--line);background:#fff;border-radius:5px;padding:5px;font-size:15px}.course30 #load-state{color:var(--amber);font-size:13px}.course30 dialog{border:1px solid var(--line);width:min(1100px,94vw);max-height:90dvh;color:var(--ink);border-radius:12px;margin:auto;padding:28px}.course30 dialog::backdrop{background:#252a346b}.course30 dialog>header{justify-content:space-between;align-items:center;gap:20px;display:flex}.course30 dialog h2{margin:0;font-size:25px}.course30 .route-phase ol{grid-template-columns:1fr 1fr;gap:5px 30px;padding-left:25px;display:grid}.course30 .route-phase li{font-size:15px}.course30 .route-phase li.locked-lesson a{color:var(--muted)}.course30 .route-phase li.locked-lesson a:hover{color:var(--brand)}.course30 .route-phase li .lock{opacity:.75;margin-right:5px;font-size:12px}.course30 .route-phase li.locked-lesson small{color:var(--muted)}.course30 .route-phase li a{color:var(--ink);text-decoration:none}.course30 .route-phase li a:hover{color:var(--brand);text-decoration:underline}.course30 .route-phase li.current-lesson{font-weight:750}.course30 .route-phase li.current-lesson a{color:var(--brand)}.course30 .route-phase li.current-lesson small{color:var(--brand);font-weight:650}.course30 .route-phase small{color:var(--muted);margin-left:10px}.course30 .route-phase{border-top:1px solid var(--line)}.course30 .route-phase>p{color:var(--muted);font-size:15px}@media (max-width:1000px){.course30 #book{padding:24px}.course30 .sidebar{padding:26px 16px}.course30 #book-layout{grid-template-columns:235px minmax(0,1fr)}.course30 article{padding:26px}.course30 #player{padding:14px 18px}.course30 .player-body{grid-template-columns:175px minmax(0,1fr)}.course30 .stage{padding:16px}.course30 .stage .code-lines{font-size:15px}}@media (max-width:760px){.course30 .top{flex-wrap:wrap;gap:8px;height:auto;min-height:70px;padding:10px 16px}.course30 .top>span{display:none}.course30 .top button{padding:6px 10px;font-size:13px}.course30 #book-layout{display:block}.course30 .sidebar{border-right:0;max-height:none;padding:20px;position:static}.course30 .sidebar h1{font-size:25px}.course30 .sidebar h1 br,.course30 .sidebar>p:not(.eyebrow){display:none}.course30 #chapters{display:flex;overflow:auto}.course30 #chapters button{min-width:160px}.course30 #book{padding:0 15px 40px}.course30 .video-invite{padding:15px;display:block}.course30 .video-invite button{margin-top:12px}.course30 article{padding:22px 18px}.course30 article h2{font-size:25px}.course30 .trace-board,.course30 .given-answer{grid-template-columns:1fr}.course30 #player{flex-direction:column;height:auto;min-height:calc(100dvh - 70px);padding:14px;display:flex}.course30 .player-head h1{font-size:20px}.course30 .player-head button{white-space:nowrap;font-size:13px}.course30 .player-body{flex-direction:column;display:flex}.course30 #video-chapters{max-height:70px;display:flex}.course30 #video-chapters button{min-width:160px}.course30 .stage{min-height:410px}.course30 .stage .concept-points{grid-template-columns:1fr}.course30 #scene{max-height:55dvh}.course30 .buttons button{padding:8px;font-size:13px}.course30 .route-phase ol{display:block}.course30 #caption{font-size:16px}}@media (prefers-reduced-motion:reduce){.course30 *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.course30 .watch-values{grid-template-columns:1fr 1fr;align-items:center;gap:12px;display:grid}.course30 .watch-values b{font-size:22px}.course30 .watch-values strong{font-size:26px}.course30 .watch .cell{min-width:50px;padding:4px 10px}.course30 .watch .cell b{font-size:24px}.course30 .stage .reason{display:none}.course30 body:has(#player:not([hidden]))>.top{display:none}.course30 #player{height:100dvh}.course30 .stage .watch{padding:14px}.course30 .stage .watch-values p{margin:8px 0}.course30 .stage .trace-board{grid-template-columns:1.35fr 1fr}.course30 #scene:after{content:""}.course30 #chapter-title:focus{outline:none}@media (max-width:760px){.course30 #player{height:auto;min-height:100dvh}.course30 .stage .trace-board{grid-template-columns:1fr}.course30 .stage .code-lines{font-size:17px}}.course30 .stage{padding:16px 26px}.course30 .stage .trace-board{margin:0}.course30 #caption{min-height:60px}.course30 .stage h2{margin-bottom:6px}.course30 .watch-detail{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.course30 .watch-detail .watch-values{display:block}.course30 .watch-detail .output{margin-top:12px}.course30 .stage .concept-points>div:last-child:nth-child(3){grid-column:1/-1}.course30 .stage .concept-points{gap:12px}.course30 .stage .concept-points>div{padding:18px 20px}.course30 .language-picker{gap:8px;margin:20px 0;font-size:16px;display:grid}.course30 .language-picker select{width:100%;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px}.course30 .code-line{white-space:pre-wrap;overflow-wrap:anywhere}.course30 .watch-values p{border-radius:10px;margin:4px 0;padding:6px 9px;transition:background .2s,box-shadow .2s}.course30 .stage .watch-values p.spot{background:var(--brand-50);box-shadow:0 0 0 2px #7c6fe859}.course30 .stage .watch-values p.spot b,.course30 .stage .watch-values p.spot strong{color:var(--brand-700)}.course30 .stage .concept-points>div.spot{border-color:var(--brand);background:var(--brand-50);box-shadow:inset 4px 0 0 var(--brand),0 0 0 2px #7c6fe847,0 8px 20px #7c6fe824}.course30 .stage .concept-points>div.spot strong{color:var(--brand-700)}.course30 .cells{gap:12px}.course30 .stage .cell.spot{border-color:var(--brand);background:var(--brand-50);transform:scale(1.08);box-shadow:0 0 0 2px #7c6fe84d,0 4px 12px #7c6fe82e}.course30 .stage .cell.spot b{color:var(--brand-700)}.course30 .stage .code-line.spot{background:var(--brand-100);border-color:var(--brand);box-shadow:inset 0 0 0 1px #7c6fe859}.course30 .stage .screen-output.spot{background:var(--brand-50);border-radius:10px;box-shadow:0 0 0 2px #7c6fe84d}.course30 .stage .cell.current{border-color:var(--brand-300);background:var(--brand-50)}.course30 .stage .code-line.active{box-shadow:inset 3px 0 0 var(--brand)}@media (prefers-reduced-motion:reduce){.course30 .stage .cell.spot{transform:none}}.course30 .problem-list{gap:12px;margin:18px 0;padding:0;list-style:none;display:grid}.course30 .problem-list li{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:0;padding:14px 18px}.course30 .problem-list li:hover{border-color:var(--brand-200);background:var(--brand-50)}.course30 .problem-list a{font-size:17px;font-weight:650;text-decoration:none}.course30 .problem-list a b{color:var(--brand-700);margin-right:8px;font-family:ui-monospace,monospace;font-size:15px}.course30 .problem-list .pmeta{color:var(--muted);margin-top:3px;font-size:13px;display:block}.course30 .problem-list p{margin:8px 0 0;font-size:15px}.course30 .why-exam{margin:30px 0 0}.course30 .why-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 26px;display:grid}.course30 .why-facts>div{border:1px solid var(--line);background:var(--brand-50);border-radius:12px;padding:16px 18px}.course30 .why-facts b{color:var(--brand);letter-spacing:-.02em;font:700 27px/1.35 Georgia,Songti SC,serif;display:block}.course30 .why-facts p{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.65}@media (max-width:1000px){.course30 .why-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.course30 .why-facts{grid-template-columns:1fr}}.course30 .course-bar{border-bottom:1px solid var(--line);background:0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;height:auto;padding:0 0 16px;display:flex}.course30 .course-bar-main{min-width:0}.course30 .course-bar-crumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 4px;font-size:13px;display:flex}.course30 .course-bar-crumb a{color:var(--muted);text-decoration:none}.course30 .course-bar-crumb a:hover{color:var(--brand)}.course30 .course-bar-crumb em{color:var(--brand);font-size:12px;font-style:normal}.course30 .course-bar h1{letter-spacing:-.01em;margin:0;font-family:inherit;font-size:24px}.course30 .course-bar-tools{flex-shrink:0;align-items:center;gap:10px;display:flex}.course30 .language-picker{color:var(--muted);flex-shrink:0;align-items:center;gap:8px;font-size:13px;display:flex}.course30 .language-picker span{white-space:nowrap}.course30 .language-picker select{padding:6px 30px 6px 11px;font-size:14px}.course30 #book-layout{grid-template-columns:246px minmax(0,1fr);gap:0;max-width:none;padding:0}.course30 .sidebar{border-right:0;max-height:calc(100dvh - 104px);padding:22px 24px 40px 0;position:sticky;top:80px;overflow:auto}.course30 .chapter-progress{margin:0 0 16px}.course30 .chapter-progress p{color:var(--muted);justify-content:space-between;align-items:baseline;margin:0 0 7px;font-size:12px;display:flex}.course30 .chapter-progress b{color:var(--ink);font-size:12px;font-weight:650}.course30 .progress-track{background:var(--line);border-radius:99px;height:4px;overflow:hidden}.course30 .progress-track i{background:var(--brand);border-radius:99px;width:0;height:100%;transition:width .25s;display:block}.course30 #chapters button{align-items:center;gap:9px;padding:9px 11px;font-size:14px;line-height:1.5;display:flex}.course30 #chapters button>span{flex:1;min-width:0}.course30 #chapters button .tick{color:var(--green);opacity:0;flex-shrink:0;font-size:12px;font-style:normal}.course30 #chapters button.done .tick{opacity:1}.course30 #chapters button small{flex-shrink:0;margin:0}.course30 #book{min-width:0;max-width:none;padding:26px 0 70px 40px}.course30 article{box-shadow:none;background:0 0;border:0;border-radius:0;max-width:780px;padding:0}.course30 .chapter-footer{border-top:1px solid var(--line);max-width:780px;padding-top:18px}.course30 .chapter-local{color:var(--muted);background:0 0;border:0;border-radius:0;margin:14px 0 28px;padding:0;font-size:13px}.course30 .chapter-local b{color:var(--muted);margin-right:10px;font-weight:650}.course30 .chapter-local a{color:var(--muted);margin:0 14px 0 0;text-decoration:none;display:inline}.course30 .chapter-local a:hover{color:var(--brand);text-decoration:underline}.course30 .chapter-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.course30 .chapter-head>div{min-width:0}.course30 .chapter-head .eyebrow{margin-bottom:6px}.course30 .chapter-head h2{margin:0}.course30 .chapter-head #chapter-video{white-space:nowrap;flex-shrink:0}.course30 h1,.course30 h2,.course30 h3,.course30 h4{font-family:inherit}.course30 #chapter-title{font-family:Georgia,Songti SC,SimSun,serif}.course30 #player{gap:14px;max-width:none;height:auto;min-height:0;padding:20px 0 24px}.course30 .player-head h1{font-family:inherit;font-size:22px}.course30 .player-note{color:var(--muted);margin:6px 0 0;font-size:13px}.course30 .stage{min-height:440px}@media (max-width:900px){.course30 #book-layout{display:block}.course30 .sidebar{border-right:0;max-height:none;padding:16px 0;position:static}.course30 #chapters{gap:6px;display:flex;overflow:auto}.course30 #chapters button{min-width:170px}.course30 #book{padding:18px 0 40px}.course30 .chapter-head{display:block}.course30 .chapter-head #chapter-video{margin-top:12px}.course30 .course-bar{align-items:flex-start}.course30 .course-bar-tools{justify-content:space-between;width:100%}}.course30 #book-layout{grid-template-columns:246px minmax(0,860px) minmax(190px,1fr)}.course30 #book{padding:26px 40px 70px}.course30 .chapter-rail{border-left:1px solid var(--line);align-self:start;max-height:calc(100dvh - 104px);padding:26px 0 40px 24px;position:sticky;top:80px;overflow:auto}.course30 .rail-title{letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:750}.course30 #rail-nav{gap:2px;display:grid}.course30 #rail-nav a{color:var(--muted);border-left:2px solid #0000;padding:6px 0 6px 11px;font-size:13px;line-height:1.6;text-decoration:none;display:block}.course30 #rail-nav a:hover{color:var(--brand)}.course30 #rail-nav a.current{color:var(--brand);border-left-color:var(--brand);font-weight:650}@media (min-width:1200px){.course30 .chapter-local{display:none}}@media (max-width:1199px){.course30 #book-layout{grid-template-columns:246px minmax(0,1fr)}.course30 .chapter-rail{display:none}.course30 #book{padding:26px 0 70px 40px}}.course30 .video-status{color:var(--muted);margin:8px 0 20px;font-size:14px;line-height:1.65}@media (max-width:900px){.course30 #book{padding:18px 0 calc(90px + env(safe-area-inset-bottom))}}@media (min-width:761px){.course30 #player{height:calc(100dvh - var(--player-top,89px) - 12px);gap:10px;min-height:0;padding:12px 0}.course30 .stage{min-height:0}.course30 .player-note{margin-top:2px}.course30 .stage .concept-points>div{padding:12px 18px}.course30 .stage .concept-points p{margin:3px 0;font-size:16px}}.course30 .code-block-label{color:var(--muted);margin:0 0 8px;padding:0 14px;font:12px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.course30 .stage .cell.spot{transform:none}.course30 .experiment-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.course30 .experiment-heading button{white-space:nowrap}.course30 .experiment .trace-board{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch;max-height:520px}.course30 .experiment .code-lines,.course30 .experiment .watch{min-height:0;overflow:auto}.course30 .experiment .code-line{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;line-height:1.7}.course30 .experiment .watch{flex-direction:column;gap:14px;display:flex}.course30 .experiment .watch-detail{display:block}.course30 .experiment .cells{align-content:start}.course30 .experiment .output{overflow-wrap:anywhere}.course30 .trace-controls{flex-wrap:wrap;gap:8px;display:flex}.course30 .experiment-dialog{width:min(1440px,100vw - 48px);height:calc(100dvh - 48px);max-height:none;padding:0;overflow:hidden}.course30 .experiment.is-expanded{border:0;border-radius:0;flex-direction:column;gap:8px;height:100%;min-height:0;margin:0;padding:22px 28px;display:flex}.course30 .experiment.is-expanded>p{margin:0;font-size:15px}.course30 .experiment.is-expanded .experiment-heading h3{font-size:24px}.course30 .experiment.is-expanded #experiment-board{flex:1;min-height:0}.course30 .experiment.is-expanded .trace-board{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);height:100%;max-height:none;margin:0}.course30 .experiment.is-expanded .watch-detail{display:grid}.course30 .experiment.is-expanded .code-lines{font-size:17px}.course30 .experiment.is-expanded .reason{padding:6px 0}@media (max-width:760px){.course30 .experiment{padding:14px}.course30 .experiment .trace-board{grid-template-columns:1fr;max-height:none}.course30 .experiment .code-lines{max-height:360px}.course30 .experiment-dialog{width:calc(100vw - 20px);height:calc(100dvh - 24px)}.course30 .experiment.is-expanded{padding:14px}.course30 .experiment.is-expanded .trace-board{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:1fr}.course30 .experiment.is-expanded .watch-detail{display:block}.course30 .experiment.is-expanded .experiment-heading h3{font-size:20px}}.course30 #player,.course30 #scene{overflow-anchor:none}.course30 .stage .code-line{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.course30 .watch .cell{max-width:100%}.course30 .watch .cell b,.course30 .watch [data-var]{white-space:pre-wrap;overflow-wrap:anywhere}.course30 #book-layout{grid-template-columns:246px minmax(0,1fr);width:100%;max-width:1160px;margin-inline:auto;padding-inline:24px}.course30 #book-layout:has(>.chapter-rail){grid-template-columns:246px minmax(0,860px) minmax(190px,1fr);max-width:1440px}.course30 #book-layout:not(:has(>.chapter-rail)) #book{padding-right:0}.course30 #book-layout:not(:has(>.chapter-rail)) .chapter-local{display:block}.course30 .top{padding-inline:max(24px,50% - 556px)}.course30 #player{width:calc(100% - 48px);max-width:1392px;margin-inline:auto}@media (max-width:1199px){.course30 #book-layout:has(>.chapter-rail){grid-template-columns:246px minmax(0,1fr)}}@media (max-width:900px){:is(.course30 #book-layout,.course30 #book-layout:has(>.chapter-rail)){padding-inline:20px;display:block}.course30 .top{padding-inline:20px}}@media (max-width:520px){:is(.course30 #book-layout,.course30 #book-layout:has(>.chapter-rail)),.course30 .top{padding-inline:16px}.course30 #player{width:calc(100% - 32px)}}
.course30.ai-book .chapter-title{font-family:Georgia,Songti SC,SimSun,serif}.course30.ai-book .aib-label{color:var(--brand);font-size:12px;font-weight:750}.course30.ai-book .aib-note{color:var(--muted);font-size:13px;line-height:1.7}.course30.ai-book .aib-table{max-width:100%;overflow:auto}.course30.ai-book .aib-callout{background:var(--amber-bg);border-left:3px solid #f59e0b;margin:22px 0;padding:14px 20px}.course30.ai-book .aib-task{border-bottom:1px solid var(--line);padding-block:16px}.course30.ai-book .aib-catalog,.course30.ai-book .aib-cta{border:1px solid var(--line);border-radius:9px;padding:8px 15px;font-size:14px;text-decoration:none;display:inline-block}.course30.ai-book .aib-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;display:flex}.course30.ai-book .aib-code-demo{background:var(--brand-50);border:1px solid var(--brand-200);border-radius:10px;margin-block:24px;padding:20px}.course30.ai-book .aib-trace-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex}.course30.ai-book .aib-trace-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;display:grid}.course30.ai-book .aib-trace-code{min-width:0;max-height:520px;padding:12px 0;font-size:16px;overflow:auto}.course30.ai-book .aib-code-line{white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid #0000;padding:3px 14px;display:block}.course30.ai-book .aib-code-line.active{background:var(--brand-100);border-color:var(--brand)}.course30.ai-book .aib-code-line b{width:26px;color:var(--muted);font-weight:400;display:inline-block}.course30.ai-book .aib-trace-vars{min-width:0;max-height:520px;overflow:auto}.course30.ai-book .aib-trace-vars dl>div{border-bottom:1px solid var(--line);padding:8px}.course30.ai-book .aib-trace-vars dd{overflow-wrap:anywhere;margin:4px 0}.course30.ai-book .aib-trace-output pre{white-space:pre-wrap}@media (max-width:760px){.course30.ai-book .aib-trace-grid{grid-template-columns:1fr}.course30.ai-book .aib-code-demo{padding:14px}.course30.ai-book .aib-trace-code{max-height:360px}}@media (max-width:640px){.course30.ai-book .given-answer{grid-template-columns:1fr}}.course30.ai-book p,.course30.ai-book li{overflow-wrap:anywhere}.course30.ai-book .lesson-section{margin-top:36px;padding-top:4px;scroll-margin-top:100px}.course30.ai-book .lesson-section-head{border-bottom:1px solid var(--line);align-items:baseline;gap:12px;margin-bottom:18px;padding-bottom:13px;display:flex}.course30.ai-book .lesson-section-head h3{margin:0;font-size:23px;line-height:1.5}.course30.ai-book .section-badge{color:var(--brand);background:var(--brand-50);border:1px solid var(--brand-200);border-radius:6px;flex-shrink:0;padding:2px 7px;font:650 12px/1.8 ui-monospace,monospace}.course30.ai-book .aib-takeaway{border-left:3px solid var(--brand);background:var(--brand-50);border-radius:0 8px 8px 0;padding:15px 18px;font-weight:600;line-height:1.85}.course30.ai-book article>p.intro{font-size:18px;line-height:1.9}.course30.ai-book .shared-foundation{background:var(--surface);border-color:var(--brand-200);margin-block:24px}.course30.ai-book table{background:var(--surface);border:1px solid var(--line);line-height:1.75}.course30.ai-book th{color:var(--ink);white-space:normal;font-size:14px}.course30.ai-book td{vertical-align:top;font-size:15px}.course30.ai-book tbody tr:nth-child(2n){background:color-mix(in srgb,var(--brand-50) 40%,var(--surface))}.course30.ai-book article>section>p{margin-block:16px;line-height:1.9}.course30.ai-book details>summary{font-size:15px;line-height:1.7}.course30.ai-book .chapter-title{margin-bottom:24px}@media (max-width:640px){.course30.ai-book .lesson-section-head h3{font-size:21px}.course30.ai-book .lesson-section{margin-top:28px}.course30.ai-book th,.course30.ai-book td{padding:10px}}.course30.ai-book caption{text-align:left;caption-side:top;color:var(--ink);background:0 0;padding:0 0 12px;font-size:15px;font-weight:650;line-height:1.7}.course30.ai-book .chapter-head .chapter-video,.course30.ai-book .chapter-head #chapter-video{white-space:nowrap;flex-shrink:0}@media (max-width:900px){.course30.ai-book .chapter-head .chapter-video{margin-top:12px}}.course30.ai-book .chapter-head .chapter-title{margin:0}
