slide-12.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <style>
  6. :root {
  7. --bg-primary: #0A1A2F;
  8. --bg-secondary: #10264A;
  9. --card-bg-from: #17294A;
  10. --card-bg-to: #101F3B;
  11. --card-border: rgba(255,255,255,0.07);
  12. --card-radius: 14px;
  13. --text-primary: #F5F8FC;
  14. --text-secondary: rgba(235,243,255,0.72);
  15. --accent-1: #FF8C42;
  16. --accent-2: #5AB0FF;
  17. --accent-3: #FF6B9D;
  18. --accent-4: #10B981;
  19. --five-earth: #FF8C42;
  20. --five-fire: #FF6B9D;
  21. --five-metal: #6366F1;
  22. --five-wood: #10B981;
  23. --five-water: #F59E0B;
  24. --grid-dot-color: #FFFFFF;
  25. --grid-dot-opacity: 0.04;
  26. --grid-size: 44px;
  27. --font-family: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', system-ui, -apple-system, sans-serif;
  28. --display-font: 'Inter', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
  29. }
  30. body {
  31. width: 1280px;
  32. height: 720px;
  33. overflow: hidden;
  34. background: var(--bg-primary);
  35. font-family: var(--font-family);
  36. position: relative;
  37. margin: 0;
  38. color: var(--text-primary);
  39. }
  40. .grid-overlay {
  41. position: absolute;
  42. inset: 0;
  43. background-image: radial-gradient(var(--grid-dot-color) 1px, transparent 1px);
  44. background-size: var(--grid-size) var(--grid-size);
  45. opacity: var(--grid-dot-opacity);
  46. z-index: 0;
  47. pointer-events: none;
  48. }
  49. /* Header */
  50. .slide-header {
  51. position: absolute;
  52. top: 20px;
  53. left: 40px;
  54. right: 40px;
  55. height: 50px;
  56. display: flex;
  57. align-items: baseline;
  58. gap: 16px;
  59. z-index: 10;
  60. }
  61. .overline {
  62. font-size: 10px;
  63. font-weight: 700;
  64. letter-spacing: 2px;
  65. color: var(--accent-1);
  66. opacity: 0.8;
  67. text-transform: uppercase;
  68. white-space: nowrap;
  69. }
  70. .page-title {
  71. font-size: 26px;
  72. font-weight: 700;
  73. color: var(--text-primary);
  74. line-height: 1.2;
  75. margin: 0;
  76. }
  77. /* Layout: Hero-Top */
  78. .content-container {
  79. position: absolute;
  80. top: 80px;
  81. left: 40px;
  82. right: 40px;
  83. bottom: 40px;
  84. display: flex;
  85. flex-direction: column;
  86. gap: 20px;
  87. z-index: 2;
  88. }
  89. .hero-band {
  90. width: 100%;
  91. height: 220px;
  92. background: linear-gradient(135deg, var(--accent-1), var(--accent-1) 0%, var(--bg-secondary) 100%);
  93. border-radius: var(--card-radius);
  94. padding: 32px;
  95. box-sizing: border-box;
  96. display: flex;
  97. align-items: center;
  98. justify-content: space-between;
  99. position: relative;
  100. overflow: hidden;
  101. box-shadow: 0 10px 30px rgba(255, 140, 66, 0.2);
  102. }
  103. .hero-band-deco {
  104. position: absolute;
  105. right: -50px;
  106. bottom: -50px;
  107. width: 200px;
  108. height: 200px;
  109. background: rgba(255,255,255,0.1);
  110. border-radius: 50%;
  111. pointer-events: none;
  112. }
  113. .hero-text {
  114. flex: 1;
  115. z-index: 2;
  116. }
  117. .hero-headline {
  118. font-size: 24px;
  119. font-weight: 700;
  120. color: #FFF;
  121. margin-bottom: 8px;
  122. }
  123. .hero-body {
  124. font-size: 16px;
  125. color: rgba(255,255,255,0.9);
  126. line-height: 1.5;
  127. }
  128. .hero-kpi {
  129. text-align: right;
  130. z-index: 2;
  131. }
  132. .data-hero {
  133. font-family: var(--display-font);
  134. font-size: 96px;
  135. font-weight: 900;
  136. color: #FFF;
  137. line-height: 1;
  138. font-variant-numeric: tabular-nums proportional-nums;
  139. letter-spacing: -0.04em;
  140. }
  141. .data-label {
  142. font-size: 14px;
  143. color: rgba(255,255,255,0.8);
  144. font-weight: 600;
  145. margin-top: 4px;
  146. }
  147. .sub-grid {
  148. display: grid;
  149. grid-template-columns: repeat(3, 1fr);
  150. gap: 20px;
  151. flex: 1;
  152. }
  153. /* Card Styles */
  154. .card {
  155. border-radius: var(--card-radius);
  156. padding: 24px;
  157. box-sizing: border-box;
  158. position: relative;
  159. display: flex;
  160. flex-direction: column;
  161. }
  162. .card-headline {
  163. font-size: 18px;
  164. font-weight: 700;
  165. color: var(--text-primary);
  166. margin-bottom: 16px;
  167. display: flex;
  168. align-items: center;
  169. gap: 8px;
  170. }
  171. .card-body {
  172. font-size: 13.5px;
  173. line-height: 1.8;
  174. color: var(--text-secondary);
  175. margin-bottom: 20px;
  176. flex: 1;
  177. }
  178. .filled {
  179. background: linear-gradient(135deg, var(--card-bg-from), var(--card-bg-to));
  180. border: 1px solid var(--card-border);
  181. }
  182. .elevated {
  183. background: var(--card-bg-from);
  184. border: 1px solid var(--card-border);
  185. box-shadow: 0 12px 24px rgba(0,0,0,0.3);
  186. transform: translateY(-4px);
  187. }
  188. .glass {
  189. background: rgba(255,255,255,0.06);
  190. backdrop-filter: blur(10px);
  191. border: 1px solid rgba(255,255,255,0.05);
  192. }
  193. /* Charts */
  194. .chart-container {
  195. margin-top: auto;
  196. padding-top: 16px;
  197. border-top: 1px solid var(--card-border);
  198. }
  199. .comparison-bar-group {
  200. display: flex;
  201. flex-direction: column;
  202. gap: 12px;
  203. }
  204. .bar-row {
  205. display: flex;
  206. flex-direction: column;
  207. gap: 4px;
  208. }
  209. .bar-label-row {
  210. display: flex;
  211. justify-content: space-between;
  212. font-size: 11px;
  213. color: var(--text-secondary);
  214. }
  215. .bar-track {
  216. height: 8px;
  217. background: rgba(255,255,255,0.1);
  218. border-radius: 4px;
  219. overflow: hidden;
  220. }
  221. .bar-fill {
  222. height: 100%;
  223. background: var(--accent-2);
  224. border-radius: 4px;
  225. }
  226. .bar-fill.accent-1 { background: var(--accent-1); }
  227. .kpi-mini {
  228. display: flex;
  229. justify-content: space-between;
  230. align-items: baseline;
  231. gap: 8px;
  232. }
  233. .kpi-val {
  234. font-family: var(--display-font);
  235. font-size: 32px;
  236. font-weight: 800;
  237. color: var(--accent-1);
  238. font-variant-numeric: tabular-nums;
  239. }
  240. .kpi-lbl {
  241. font-size: 11px;
  242. color: var(--text-secondary);
  243. }
  244. /* Footer */
  245. .slide-footer {
  246. position: absolute;
  247. bottom: 12px;
  248. left: 40px;
  249. right: 40px;
  250. height: 20px;
  251. display: flex;
  252. justify-content: space-between;
  253. align-items: center;
  254. z-index: 10;
  255. }
  256. .footer-section {
  257. font-size: 10px;
  258. color: var(--text-secondary);
  259. opacity: 0.5;
  260. letter-spacing: 1px;
  261. }
  262. .footer-page {
  263. font-size: 10px;
  264. color: var(--text-secondary);
  265. opacity: 0.5;
  266. }
  267. </style>
  268. </head>
  269. <body>
  270. <div class="grid-overlay" data-decoration-layer="background" aria-hidden="true"></div>
  271. <header class="slide-header">
  272. <span class="overline">PART 03 &mdash; 市场容量</span>
  273. <h1 class="page-title">市场空间:TAM / SAM / SOM</h1>
  274. </header>
  275. <div class="content-container">
  276. <!-- TAM Hero Band -->
  277. <div class="hero-band" data-card-id="c1">
  278. <div class="hero-band-deco" data-decoration-layer="floating" aria-hidden="true"></div>
  279. <div class="hero-text">
  280. <div class="hero-headline">TAM · 中国家庭教育消费市场</div>
  281. <div class="hero-body">2025 年规模 4.5 万亿元(艾瑞咨询)</div>
  282. </div>
  283. <div class="hero-kpi">
  284. <div class="data-hero">4.5万亿</div>
  285. <div class="data-label">TAM 家庭教育消费市场</div>
  286. </div>
  287. </div>
  288. <div class="sub-grid">
  289. <!-- SAM Card -->
  290. <div class="card elevated" data-card-id="c2">
  291. <div class="card-headline">SAM · 细分健康管理市场</div>
  292. <div class="card-body">
  293. 儿童健康管理(体检/营养/心理/运动)5000 亿元+<br>
  294. 家庭教育服务 217 亿→500 亿 (CAGR 19.3%)<br>
  295. 心理健康教育 286.3 亿→810 亿 (CAGR 23.1%)
  296. </div>
  297. <div class="chart-container" data-chart-type="comparison_bar">
  298. <div class="comparison-bar-group">
  299. <div class="bar-row">
  300. <div class="bar-label-row"><span>家庭教育服务 CAGR</span><span class="kpi-val" style="font-size: 18px;">19.3%</span></div>
  301. <div class="bar-track"><div class="bar-fill" style="width: 60%;"></div></div>
  302. </div>
  303. <div class="bar-row">
  304. <div class="bar-label-row"><span>泛心理服务 CAGR</span><span class="kpi-val" style="font-size: 18px; color: var(--accent-2);">27%</span></div>
  305. <div class="bar-track"><div class="bar-fill accent-1" style="width: 85%;"></div></div>
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. <!-- SOM Card -->
  311. <div class="card filled" data-card-id="c3">
  312. <div class="card-headline">SOM · 平台渗透率</div>
  313. <div class="card-body">
  314. 家庭教育服务平台渗透率不足 3%,97% 待开拓
  315. </div>
  316. <div class="chart-container" data-chart-type="kpi">
  317. <div class="kpi-mini">
  318. <div>
  319. <div class="kpi-val" style="font-size: 48px;">&lt; 3%</div>
  320. <div class="kpi-lbl">平台渗透率</div>
  321. </div>
  322. <div style="text-align: right;">
  323. <div class="kpi-val" style="font-size: 48px; color: var(--text-primary);">97%</div>
  324. <div class="kpi-lbl">待开拓空间</div>
  325. </div>
  326. </div>
  327. </div>
  328. </div>
  329. <!-- Conclusion Card -->
  330. <div class="card glass" data-card-id="c4">
  331. <div class="card-headline">市场结论</div>
  332. <div class="card-body" style="font-size: 15px; font-style: italic; color: var(--text-primary);">
  333. "万亿赛道中的高增长细分,供给高度分散,一体化平台机会窗口打开"
  334. </div>
  335. </div>
  336. </div>
  337. </div>
  338. <footer class="slide-footer">
  339. <span class="footer-section">PART 03 &mdash; 市场容量</span>
  340. <span class="footer-page">12 / 28</span>
  341. </footer>
  342. </body>
  343. </html>