@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/noto-sans-sc-0.woff) format('woff');
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/noto-sans-sc-1.woff) format('woff');
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/noto-sans-sc-2.woff) format('woff');
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/noto-sans-sc-3.woff) format('woff');
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/noto-sans-sc-4.woff) format('woff');
}

500;600;700;800&display=swap');
:root{--ink:#f3f4ff;--muted:#a9aac5;--line:#ffffff16;--cyan:#76efdc;--pink:#fa8bce;--violet:#a99aff;--panel:#16192cbd}*{box-sizing:border-box}body{margin:0;background:#0b0e1c;color:var(--ink);font-family:'Noto Sans SC','Microsoft YaHei',sans-serif;font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#ffffff07;border-radius:10px;padding:9px 13px;transition:.2s}button:hover{background:#ffffff16;border-color:#ffffff40;transform:translateY(-1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.3;cursor:default}a{text-decoration:none}small{font-size:11px} .ambient{position:fixed;inset:0;overflow:hidden;z-index:-1;background:radial-gradient(at 80% 0%,#302052,transparent 60%)}.ambient i{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(100px);opacity:.3;animation:drift 22s ease-in-out infinite alternate;pointer-events:none}.ambient i:nth-child(1){background:#7425ff;top:-35%;left:15%}.ambient i:nth-child(2){background:#00c6ba;bottom:-45%;right:-15%;animation-delay:-7s}.ambient i:nth-child(3){background:#f22d83;top:20%;right:-30%;animation-delay:-14s}.grain{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.04' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}@keyframes drift{to{transform:translate(-12vw,12vh) scale(1.15)}}.glass{background:linear-gradient(135deg,#ffffff0b,#ffffff02),var(--panel);border:1px solid var(--line);box-shadow:0 18px 70px #0002,inset 0 1px #ffffff06;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}
aside{position:fixed;inset:16px auto 16px 16px;width:238px;border-radius:22px;display:flex;flex-direction:column;padding:24px 14px 12px;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 24px;font-size:20px;letter-spacing:1px;font-weight:700}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:1.5px;margin-top:5px}.brand-symbol{display:grid;place-items:center;width:42px;height:46px;border-radius:12px;background:linear-gradient(140deg,#b6a0ff,#f7a8dd 54%,#66dfd8);color:#20203a;font-size:23px;box-shadow:0 0 28px #ae7eff35}.course-label{font-size:11px;color:var(--muted);padding:0 8px 14px;display:flex;justify-content:space-between}.course-label span{color:var(--cyan)}.search{display:flex;gap:8px;align-items:center;background:#070b193f;border:1px solid var(--line);border-radius:10px;padding:9px 11px}.search span{font-size:20px;color:var(--muted)}input{font:inherit;color:inherit;min-width:0;background:none;border:0;width:100%;outline:0;font-size:11px}nav{overflow-y:auto;flex:1;margin:16px -3px 12px;padding:0 3px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#78768c66;border-radius:9px}.group-title{font-size:10px;color:#8c8faa;padding:15px 9px 9px;letter-spacing:1px}.menu-item{display:flex;align-items:center;gap:10px;padding:11px 10px;margin-bottom:3px;border-radius:10px;border:1px solid transparent;font-size:11px;line-height:1.7}.menu-item em{font-style:normal;font-family:monospace;color:#7f839f;font-size:11px}.menu-item:hover{background:#ffffff08}.menu-item.active{background:linear-gradient(110deg,#aaa0ff25,#7ce1df0a);border-color:#b6a3ff35;color:#f2eaff}.menu-item.active em{color:var(--cyan)}.side-bottom{border-top:1px solid var(--line);padding:14px 6px 0;display:grid;gap:10px;font-size:11px}.side-bottom a{padding:0 6px}.side-bottom button{font-size:11px;text-align:left;border:0;color:var(--muted)}main{margin-left:280px;padding:0 32px 18px 0;max-width:2200px}header{height:77px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);font-size:11px}.breadcrumb,.header-actions{display:flex;align-items:center;gap:13px}.breadcrumb button{border:0;font-size:16px;padding-left:0}.breadcrumb span{color:var(--muted)}.sep{opacity:.4}.header-actions button{font-size:11px}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0 20px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--cyan);margin-bottom:8px}h1{font-size:clamp(24px,2.35vw,37px);letter-spacing:-.8px;margin:0 0 7px;font-weight:700;line-height:1.4}.lesson-heading p{margin:0;color:var(--muted);font-size:13px}.lesson-meta{text-align:right;white-space:nowrap}.lesson-meta strong{font-size:30px;font-weight:400;letter-spacing:-1px}.lesson-meta strong span{font-size:11px;color:var(--muted);margin-left:5px}.lesson-meta small{display:block;color:var(--muted);margin-top:4px}.section-tabs{display:flex;gap:7px;margin-bottom:17px;overflow:auto}.section-tabs button{flex:1;white-space:nowrap;min-width:90px;border-radius:12px;font-size:11px;color:#a6a6c0;padding:12px 8px}.section-tabs button span{font-size:10px;opacity:.6;margin-left:6px}.section-tabs button.active{background:#e5dcff;color:#27233d;border-color:#e5dcff;box-shadow:0 5px 24px #9d77ff25}.slide{display:grid;grid-template-columns:1.03fr 1fr;gap:18px;align-items:stretch}.copy{padding:26px 28px 16px;border-radius:20px;position:relative;display:flex;flex-direction:column;min-height:490px}.slide-kicker{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--pink);letter-spacing:1px;margin-bottom:18px}.slide-kicker span:last-child{color:var(--muted);letter-spacing:0}h2{margin:0 0 18px;font-size:clamp(19px,1.65vw,27px);line-height:1.6;font-weight:600}#blocks{flex:1;font-size:clamp(14px,1.1vw,18px);line-height:1.95;color:#dce0f1}#blocks p{margin:0 0 16px}#blocks p:last-child{margin-bottom:12px}.instruction{padding:12px 15px;background:#9b8aff12;border-left:2px solid var(--violet);border-radius:0 8px 8px 0;font-size:.9em!important;color:#c7bdf6}.bullet{position:relative;padding-left:17px}.bullet:before{content:'';position:absolute;left:0;top:.8em;width:5px;height:5px;background:var(--cyan);border-radius:50%}.copy-bottom{padding-top:15px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#8388a5}.copy-bottom button{font-size:10px;background:none;border:0;padding:5px}.visual-column{display:flex;flex-direction:column;gap:14px;min-width:0}.visual{border-radius:20px;overflow:hidden;flex:1;display:flex;flex-direction:column}.visual-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);font-size:11px;color:#c1c1dd;gap:5px}.visual-heading button{padding:5px 9px;border:0;font-size:10px;background:none;color:var(--muted)}.visual-heading button.active{background:#ffffff12;color:var(--cyan)}#visualBody{flex:1;display:flex;align-items:center;justify-content:center;min-height:280px;position:relative;background:radial-gradient(at 50% 45%,#40396045,transparent 75%);padding:15px}#visualBody svg{width:100%;max-height:330px;display:block;overflow:visible}#visualBody img,#visualBody video{width:100%;max-height:360px;object-fit:contain;border-radius:10px;background:#080b18}#visualBody iframe{width:100%;height:320px;border:0;background:white;border-radius:10px}#visualCaption{padding:14px 18px 18px;color:#b6b9d2;font-size:11px;line-height:1.8;border-top:1px solid var(--line)}#visualCaption a{color:var(--cyan);font-size:10px;display:inline-block;margin-top:8px}#visualCaption .control{display:flex;align-items:center;gap:10px;margin:8px 0}.control input{accent-color:#b09aff}.control button{font-size:10px;padding:6px}.teacher-tip{display:flex;gap:14px;padding:16px 20px;border-radius:15px;align-items:flex-start}.teacher-tip span{font-size:10px;color:var(--cyan);white-space:nowrap;margin-top:3px}.teacher-tip p{font-size:12px;line-height:1.8;margin:0;color:#d7d9eb}footer{display:flex;justify-content:space-between;align-items:center;margin-top:17px;gap:25px}.timer{display:flex;align-items:center;gap:10px}.timer button{border:0;font-size:17px;padding:7px}.timer b{font:17px monospace;color:#e2def7}.timer span{color:#858aa7;font-size:10px}.progress{flex:1;max-width:280px;font-size:10px;color:#9297b5;text-align:center}.progress>div{height:2px;background:#ffffff12;border-radius:4px;margin-top:10px}.progress i{height:100%;display:block;background:linear-gradient(90deg,var(--violet),var(--cyan));transition:width .3s}.pager{display:flex;align-items:center;gap:13px}.pager span{font:11px monospace;color:#c0c2d5}.pager button{min-width:44px}dialog{border:1px solid #ffffff26;background:#171b30;color:var(--ink);border-radius:22px;width:min(870px,92vw);max-height:86vh;padding:28px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#030511aa;backdrop-filter:blur(12px)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start}.modal-header small{color:var(--cyan);letter-spacing:2px}.modal-header h2{margin-top:10px}.modal-header button{flex-shrink:0}.notes-section{border-top:1px solid var(--line);padding-top:20px;margin-top:25px;line-height:1.9;color:#d3d6e9}.notes-section h3{color:#b5a5ff}.notes-section p{margin:12px 0}table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.7}td,th{border:1px solid #ffffff25;padding:9px;text-align:left}tr:first-child{background:#ae94ff1a}.diagram-control{width:100%}.visual-card{padding:12px;border-radius:10px;background:#ffffff08}.analysis-grid{width:100%;display:grid;gap:10px}.analysis-grid div{border:1px solid var(--line);padding:14px;border-radius:12px;background:linear-gradient(120deg,#a192ff12,transparent)}.analysis-grid b{font-size:12px;color:var(--cyan)}.analysis-grid p{font-size:12px;line-height:1.8;margin:7px 0 0}.no-results{padding:20px;font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:12px 24px;background:#e8e2ff;color:#211d36;border-radius:12px;z-index:100;display:none;font-size:12px}body.menu-hidden aside{display:none}body.menu-hidden main{margin-left:32px}body.calm .ambient i{animation:none;opacity:.14}.focus-mode header,.focus-mode .lesson-meta,.focus-mode .section-tabs{display:none}.focus-mode .lesson-heading{padding-top:18px}.focus-mode .copy{min-height:70vh}.focus-mode #blocks{font-size:21px}.focus-mode .visual svg{max-height:500px}.focus-mode .visual video{max-height:500px}body.focus-mode aside{display:none}body.focus-mode main{margin-left:32px}.video-error{font-size:12px;padding:20px;line-height:2}.file-pick{font-size:10px;color:var(--cyan);cursor:pointer;padding:7px;border:1px solid var(--line);border-radius:7px;display:inline-block}.file-pick input{display:none}
@media(min-width:1700px){main{padding-right:48px;margin-left:300px}.copy{min-height:590px;padding:32px}.lesson-heading{padding-top:32px}.visual svg{max-height:410px!important}#blocks{font-size:19px}.teacher-tip p{font-size:14px}}
@media(max-width:1150px){aside{width:205px}main{margin-left:240px;padding-right:20px}.copy{padding:20px}.header-actions{gap:6px}.breadcrumb{gap:8px}.desktop{display:none}.slide{gap:12px}.lesson-heading{padding-top:20px}.lesson-meta{display:none}#blocks{font-size:14px}.copy-bottom span{display:none}}
@media(max-width:850px){aside{display:none;width:240px;box-shadow:20px 0 100px #000b}body.mobile-menu aside{display:flex}main,body.menu-hidden main{margin-left:18px;padding-right:18px}.slide{grid-template-columns:1fr}.copy{min-height:initial}.lesson-heading{padding:20px 0}h1{font-size:25px}.header-actions button{padding:8px;font-size:10px}.breadcrumb #stage,.sep{display:none}footer{position:sticky;bottom:0;padding:12px 8px;background:#101426ed;border-radius:14px;z-index:10;gap:12px}.progress{max-width:150px}.visual-column{margin-top:2px}.focus-mode #blocks{font-size:17px}.section-tabs button{min-width:100px}#visualBody{min-height:250px}#visualBody svg{max-height:330px}.copy-bottom{margin-top:14px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{aside,header,footer,.section-tabs,.ambient,.copy-bottom{display:none!important}body{background:white;color:black}main{margin:0;padding:0}.glass{color:black;background:white;box-shadow:none;border:1px solid #bbb}#blocks,.teacher-tip p,#visualCaption{color:#333}.slide{display:block}.visual-column{margin-top:20px}}
@media(min-width:851px) and (max-height:850px){header{height:56px}.lesson-heading{padding:14px 0}h1{font-size:27px}.eyebrow{margin-bottom:4px}.section-tabs{margin-bottom:12px}.section-tabs button{padding:9px}.copy{min-height:390px;padding:18px 22px 12px}.slide-kicker{margin-bottom:10px}h2{font-size:20px;margin-bottom:12px}#blocks{font-size:14px;line-height:1.8}#blocks p{margin-bottom:11px}.visual-heading{padding:10px 14px}#visualBody{min-height:210px;padding:10px}#visualBody svg{max-height:245px}#visualBody video,#visualBody img{max-height:245px}#visualCaption{padding:9px 14px;font-size:10px}.teacher-tip{padding:11px 14px}.teacher-tip p{font-size:11px}.copy-bottom{padding-top:9px}.visual-column{gap:10px}footer{margin-top:10px}}
