/* 共用设计系统与课件布局；首页布局见 hub.css。 */
:root{--bg-0:#05070f;--bg-1:#0b1020;--bg-2:#111a2b;--ink:#eaf0ff;--ink-dim:#bdc9e2;--ink-faint:#94a6c7;--line:#8cb4ff21;--line-strong:#8cb4ff40;--cyan:#2ee6ff;--violet:#a88aff;--magenta:#f4a0d0;--lime:#b5e8bb;--gold:#e8c482;--brand-gradient:linear-gradient(110deg,#fff 8%,#a8dcff 38%,#2ee6ff 67%,#8b5cf6 100%);--action-gradient:linear-gradient(120deg,#2ee6ff,#8b5cf6);--r-lg:20px;--r-md:12px;--r-sm:8px;--font-body:'Microsoft YaHei','PingFang SC',system-ui,sans-serif;--font-head:var(--font-body);--font-display:var(--font-body)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-0);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.3;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button[hidden],[hidden]{display:none!important}
.bg-grid{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#a5bfff03 1px,transparent 1px),linear-gradient(90deg,#a5bfff03 1px,transparent 1px);background-size:72px 72px}#bg-canvas,.bg-glow{display:none}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:20px;letter-spacing:.04em}.brand img{border-radius:10px;object-fit:cover}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--ink-faint)}
.btn{padding:13px 20px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--cyan);color:#102220}.btn-violet{background:var(--violet);color:#211a38}.btn-magenta{background:var(--magenta);color:#301b24}.btn-ghost{border-color:var(--line-strong);background:#ffffff04;color:var(--ink)}.btn-ghost:hover{background:#ffffff0c;border-color:var(--cyan)}
.skip-link{position:fixed;left:12px;top:-100px;z-index:100;padding:10px;background:var(--cyan);color:#102220}.skip-link:focus{top:10px}
/* 顶部统一课程导航 */
.topbar{position:fixed;inset:0 0 auto;z-index:40;background:#0b0e16f5;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.class-nav{height:66px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;gap:20px}.class-nav .brand{font-size:16px}.class-nav .brand img{width:34px;height:34px}.course-switch{display:flex;gap:4px}.course-switch a{padding:7px 14px;border-radius:6px;text-decoration:none;font-size:13px;color:var(--ink-dim)}.course-switch a[aria-current]{color:var(--cyan);background:#79e5dc0e}.class-tools{display:flex;gap:6px}.demo-btn,.home-btn{border:1px solid var(--line-strong);background:#ffffff03;color:var(--ink-dim);font-size:12px;padding:7px 12px;border-radius:6px;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.demo-btn:hover,.home-btn:hover{border-color:var(--cyan);color:var(--cyan)}.demo-btn.on{color:var(--cyan);background:#79e5dc12}.progress{position:fixed;top:0;left:0;height:2px;z-index:45;background:var(--cyan);transition:width .2s}.preview-banner{position:fixed;top:67px;left:50%;transform:translateX(-50%);z-index:42;font-size:11px;letter-spacing:.08em;color:var(--gold);padding:3px 15px;background:#282215;border-radius:0 0 8px 8px}
/* 每页可以自然长于屏幕，底栏不遮挡正文。 */
.deck{height:100vh;height:100dvh;overflow-y:auto;scroll-snap-type:y proximity;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#30394b var(--bg-0)}.slide{min-height:100vh;min-height:100dvh;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;padding:116px 64px 112px;position:relative}.slide-inner{width:100%;max-width:1110px}.slide-frame{border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#131925,#0e121a);padding:38px 48px;position:relative;overflow:hidden}.slide-frame:before{content:'';position:absolute;left:0;top:0;width:4px;height:100%;background:var(--accent,var(--cyan))}.slide-kicker{display:flex;align-items:center;gap:12px;margin-bottom:22px}.num{font-size:12px;color:var(--accent,var(--cyan));border:1px solid var(--line-strong);min-width:32px;height:32px;border-radius:7px;display:grid;place-items:center}.lab{font-size:12px;letter-spacing:.1em;color:var(--ink-faint)}.slide-title{font-weight:700;font-size:clamp(28px,3.25vw,44px);line-height:1.35;margin-bottom:24px;letter-spacing:-.03em}.slide-body{font-size:17px;color:var(--ink-dim);line-height:1.85}.slide-body b{color:var(--ink)}.slide-body ul{margin:10px 0;padding-left:23px}.slide-body li{margin:7px 0}.tier-mid{font-size:19px;color:var(--ink);margin:18px 0 6px;font-weight:600}.tier-mid:first-child{margin-top:0}.lead{font-size:19px;color:var(--ink-dim);margin-bottom:8px}.hl{color:var(--cyan)}.hlv{color:var(--violet)}.hlm{color:var(--magenta)}
.speaker{display:none;margin-top:24px;border:1px dashed #e8c48240;border-radius:10px;padding:16px 20px;background:#e8c48206}.show-notes .speaker{display:block}.speaker .sh{font-size:12px;color:var(--gold);margin-bottom:8px}.speaker p{font-size:14px;color:var(--ink-dim)}.speaker .q{font-style:normal}
.grid2,.grid3{display:grid;gap:14px;margin-top:10px}.grid2{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.mini{border:1px solid var(--line);border-radius:10px;padding:18px;background:#ffffff03}.mini h4{font-size:17px;color:var(--ink);margin:5px 0}.mini p{font-size:14px;color:var(--ink-dim)}.mini .tag{font-size:11px;color:var(--accent,var(--cyan))}.ladder{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.step{flex:1;min-width:145px;border:1px solid var(--line);border-radius:10px;padding:15px;background:#ffffff03}.step .v{font-size:14px;font-weight:600;color:var(--accent,var(--cyan))}.step .t{font-size:14px;margin-top:6px}.step.now{border-color:#79e5dc55;background:#79e5dc05}.divider .slide-inner{text-align:center;max-width:900px}.bignum{font-size:clamp(80px,15vw,170px);line-height:1.2;color:var(--accent,var(--cyan));opacity:.35;letter-spacing:-.07em}.divider .slide-title{font-size:clamp(30px,4vw,54px)}.divider .slide-body{max-width:760px;margin:auto}
.controls{position:fixed;inset:auto 0 0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 26px;background:#0b0e16f5;backdrop-filter:blur(16px);border-top:1px solid var(--line)}.pager{display:flex;align-items:center;gap:16px}.controls button{width:40px;height:38px;border:1px solid var(--line-strong);border-radius:7px;background:#ffffff04;color:var(--ink);font-size:18px}.counter{min-width:72px;text-align:center;font-size:12px;color:var(--ink-faint)}.counter b{color:var(--cyan);font-size:18px}.current-title{font-size:12px;color:var(--ink-dim);max-width:40vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.next-course{font-size:12px;color:var(--cyan);text-decoration:none}.dots{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;gap:3px}.dots button{width:24px;height:24px;border:none;background:none;border-radius:50%;position:relative}.dots button:after{content:'';display:block;margin:auto;width:5px;height:5px;border-radius:50%;background:#566173}.dots button.active:after{background:var(--cyan);box-shadow:0 0 8px #79e5dc66}
/* 目录使用原生 dialog：支持焦点约束、Esc 及移动端。 */
.chapter-dialog{position:fixed;inset:0 auto 0 0;margin:0;width:min(420px,92vw);height:100dvh;max-height:100dvh;border:0;border-right:1px solid var(--line-strong);background:#111620;color:var(--ink);padding:26px}.chapter-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.chapter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.chapter-header h2{font-size:20px}.chapter-header button{border:0;color:var(--ink);background:#ffffff08;width:34px;height:34px;border-radius:6px}.chapter-list{display:flex;flex-direction:column;gap:6px}.chapter-list button{text-align:left;display:flex;align-items:flex-start;gap:14px;width:100%;border:1px solid transparent;color:var(--ink-dim);background:none;padding:12px;border-radius:8px;font-size:14px}.chapter-list button span{color:var(--ink-faint);font-size:12px;padding-top:3px}.chapter-list button[aria-current]{border-color:#79e5dc35;background:#79e5dc09;color:var(--cyan)}.chapter-dialog .hint{font-size:12px;color:var(--ink-faint);margin-top:24px}
.gate{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:20px;background:#090b10f2;backdrop-filter:blur(12px);overflow-y:auto}.gate.show{display:flex}.gate-box{width:100%;max-width:480px;max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid var(--line-strong);border-radius:20px;background:#131925;padding:32px;text-align:center}.gate-box .lock{font-size:30px;margin-bottom:12px}.gate-box h3{font-size:23px}.gate-box .price{font-size:40px;color:var(--violet);margin:8px 0}.gate-box p{font-size:14px;color:var(--ink-dim)}.gate-box .actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}.gate-box input{border:1px solid var(--line-strong);border-radius:8px;background:#0c111b;color:var(--ink);padding:12px;width:100%;text-align:center}.gate-box label{text-align:left;font-size:12px;color:var(--ink-dim)}.gate-box .note{font-size:12px;color:var(--ink-faint);margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.gate-err{font-size:12px;min-height:20px;color:var(--magenta)}.gate-home{display:inline-block;margin-top:14px;font-size:13px;color:var(--cyan)}
.demo-mode .slide-title{font-size:clamp(32px,3.4vw,46px);line-height:1.4}.demo-mode .slide-body,.demo-mode .slide-body .lead{font-size:clamp(21px,2.3vw,30px);line-height:1.65}.demo-mode .tier-mid{font-size:clamp(24px,2.5vw,34px)}.demo-mode .mini p,.demo-mode .step .t{font-size:22px}.demo-mode .mini h4{font-size:24px}.demo-mode .slide-frame{padding:40px 48px}
@media(min-width:1600px){.slide-inner{max-width:1320px}.slide-body{font-size:22px}.mini p{font-size:18px}.mini h4{font-size:21px}}
@media(max-width:1050px){.class-nav{height:auto;min-height:90px;flex-wrap:wrap;padding:10px 18px;gap:8px}.class-nav .brand small{display:none}.course-switch{order:3;width:100%;justify-content:center}.class-tools{margin-left:auto}.slide{padding-top:135px}.preview-banner{top:99px}.current-title{max-width:32vw}}
@media(max-width:680px){.class-nav{padding:10px 12px}.class-nav .brand{font-size:14px;gap:6px}.class-nav .brand img{width:26px;height:26px}.class-tools{gap:4px}.class-tools .demo-btn{font-size:11px;padding:6px 7px}.course-switch a{font-size:12px;padding:5px 10px}.slide{padding:132px 16px 106px;align-items:flex-start}.slide-frame,.demo-mode .slide-frame{padding:25px 22px;border-radius:12px}.slide-title{font-size:28px}.slide-body{font-size:16px}.lead{font-size:17px}.grid2,.grid3{grid-template-columns:1fr}.lab{font-size:10px;letter-spacing:0}.slide-kicker{margin-bottom:18px}.dots,.current-title{display:none}.controls{padding:12px 16px;gap:8px}.pager{gap:8px}.next-course{max-width:140px;font-size:11px}.preview-banner{font-size:10px}.gate-box{padding:24px 20px}.demo-mode .mini p{font-size:20px}}
@media(prefers-reduced-motion:reduce){html,.deck{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* 每套课件封面统一个人品牌；正文保持学员阅读层级。 */
.course-identity{border-bottom:1px solid var(--line-strong);padding-bottom:22px;margin-bottom:26px}
.course-identity strong{display:block;font-size:clamp(38px,4.8vw,68px);font-weight:900;line-height:1.3;letter-spacing:.03em;color:var(--cyan)}
.course-identity span{display:block;color:var(--ink-dim);font-size:16px;margin-top:10px}
@media(max-width:680px){.course-identity strong{font-size:clamp(30px,8.5vw,46px);letter-spacing:0}.course-identity span{font-size:12px}.course-identity{padding-bottom:18px;margin-bottom:22px}}

/* 直播课件阅读字号：优先保证手机与投屏时的关键内容可辨认。 */
.slide-title{font-size:clamp(34px,4vw,50px)}
.slide-body{font-size:20px;line-height:1.8}
.slide-body .lead{font-size:22px}
.tier-mid{font-size:24px;line-height:1.5;margin-top:24px}
.mini h4{font-size:22px;line-height:1.5;font-weight:700}
.mini p{font-size:18px;line-height:1.7}
.step .v{font-size:18px}.step .t{font-size:18px;line-height:1.7}
.speaker p{font-size:16px;line-height:1.8}
@media(max-width:680px){
 .slide-frame,.demo-mode .slide-frame{padding:26px 22px}
 .slide-title{font-size:clamp(30px,8.1vw,36px);line-height:1.36}
 .slide-body{font-size:18px;line-height:1.75}
 .slide-body .lead{font-size:20px}
 .tier-mid{font-size:22px;line-height:1.45}
 .mini{padding:18px}.mini h4{font-size:22px}.mini p{font-size:18px}
 .step .v{font-size:19px}.step .t{font-size:18px}
 .speaker p{font-size:16px}
 .demo-mode .slide-title{font-size:clamp(30px,8.1vw,36px)}
 .demo-mode .slide-body,.demo-mode .slide-body .lead{font-size:20px}
 .demo-mode .mini h4{font-size:23px}.demo-mode .mini p,.demo-mode .step .t{font-size:19px}
}

/* 三套课件封面以课程名称为主标题，个人署名退到辅助层级。 */
.course-cover .course-identity{padding-bottom:14px;margin-bottom:25px}
.course-cover .course-identity strong{font-size:26px;line-height:1.35;letter-spacing:.02em;color:var(--accent,var(--cyan))}
.course-cover .course-identity span{font-size:14px;margin-top:4px}
.course-cover .slide-kicker .lab{font-size:15px;font-weight:700;color:var(--accent,var(--cyan))}
.course-cover .slide-title{font-size:clamp(46px,5vw,66px);line-height:1.25;letter-spacing:-.04em}
@media(max-width:680px){
 .course-cover .course-identity strong{font-size:21px}
 .course-cover .course-identity span{font-size:12px}
 .course-cover .slide-title{font-size:clamp(37px,9vw,43px)}
 .course-cover .slide-kicker .lab{font-size:13px}
}

/* 与“老板出片”统一的深色底、青蓝紫渐变；投屏正文保持纯色以便阅读。 */
.brand>span,.course-cover .slide-title{
  background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.course-cover .slide-title{width:fit-content;max-width:100%}
.brand small{background:none;-webkit-text-fill-color:var(--ink-faint);color:var(--ink-faint)}
.btn-primary,.btn-violet,.btn-magenta{background:var(--action-gradient);color:#05121b;border-color:transparent;box-shadow:0 9px 30px #2ee6ff24}
.btn-primary:hover,.btn-violet:hover,.btn-magenta:hover{filter:brightness(1.1);box-shadow:0 12px 36px #2ee6ff42}
.slide-frame{background:linear-gradient(130deg,#111a2b,#0a0e19 72%);border-color:var(--line-strong)}
.slide-frame:before{background:var(--action-gradient)}
.home-btn:hover,.demo-btn:hover{background:#2ee6ff13;box-shadow:0 0 18px #2ee6ff18}
@media(forced-colors:active){.brand>span,.course-cover .slide-title{background:none;color:CanvasText}}

/* 五门课的顶部切换在窄屏可横向滚动，保留完整名称。 */
.course-switch{min-width:0;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}
.course-switch a{flex:0 0 auto}
@media(max-width:1050px){.course-switch{justify-content:flex-start}}
