Files
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

221 lines
5.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>S2 - 安全第一</title>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
<style>
:root {
--bg-deep: #0A1A33;
--bg-panel: #10243F;
--brand-blue: #1E5BC6;
--gold: #D4A437;
--seal-red: #C0392B;
--text-hi: #F2F6FC;
--text-lo: #9DB2CE;
--line: #2A436B;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
width: 1920px;
height: 1080px;
overflow: hidden;
font-family: "PingFang SC", "Source Han Sans SC", "Helvetica Neue", sans-serif;
background: var(--bg-deep);
position: relative;
}
.clip {
position: absolute;
}
/* 架构图背景 */
.architecture-bg {
width: 1200px;
height: 800px;
background-image: url('assets/capture/architecture.png');
background-size: contain;
background-repeat: no-repeat;
background-position: center;
filter: blur(2px);
}
/* 金线勾勒框 */
.highlight-box {
width: 400px;
height: 300px;
border: 3px solid var(--gold);
box-shadow: 0 0 30px rgba(212, 164, 55, 0.5);
}
/* 关键词卡片 */
.keyword {
padding: 24px 48px;
font-size: 52px;
font-weight: bold;
border-radius: 12px;
letter-spacing: 4px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
text-align: center;
}
.keyword.red {
background: rgba(192, 57, 43, 0.2);
color: var(--seal-red);
border: 2px solid var(--seal-red);
}
.keyword.gold {
background: rgba(212, 164, 55, 0.15);
color: var(--gold);
border: 2px solid var(--gold);
}
/* 小窗截图 */
.thumbnail {
width: 480px;
height: 270px;
border: 2px solid var(--line);
border-radius: 8px;
overflow: hidden;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
}
.thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>
</head>
<body data-composition-id="s2-security" data-width="1920" data-height="1080">
<!-- Track 0: 深蓝底(隐式,body 背景) -->
<!-- Track 1: 架构图背景 (014s) -->
<div class="clip architecture-bg"
data-start="0"
data-duration="14"
data-track-index="1"
style="top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0;">
</div>
<!-- Track 4: 金线勾勒边缘算力机 (214s) -->
<div class="clip highlight-box"
data-start="2"
data-duration="12"
data-track-index="4"
style="top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.9); opacity: 0;">
</div>
<!-- Track 2: 关键词1 - 数据不出域 (410s) -->
<div class="clip keyword red"
data-start="4"
data-duration="6"
data-track-index="2"
style="top: 30%; left: 50%; transform: translate(-50%, -50%) translateY(24px); opacity: 0;">
数据不出域
</div>
<!-- Track 2: 关键词2 - 算力在身边 (610s) -->
<div class="clip keyword gold"
data-start="6"
data-duration="4"
data-track-index="2"
style="top: 50%; left: 50%; transform: translate(-50%, -50%) translateY(24px); opacity: 0;">
算力在身边
</div>
<!-- Track 2: 关键词3 - 内外网物理隔离 (810s) -->
<div class="clip keyword gold"
data-start="8"
data-duration="2"
data-track-index="2"
style="top: 70%; left: 50%; transform: translate(-50%, -50%) translateY(24px); opacity: 0;">
内外网物理隔离
</div>
<!-- Track 1: 小窗1 - 审计日志 (1014s) -->
<div class="clip thumbnail"
data-start="10"
data-duration="4"
data-track-index="1"
style="bottom: 80px; right: 480px; opacity: 0;">
<img src="assets/capture/11_audit.png" alt="审计日志">
</div>
<!-- Track 1: 小窗2 - 登录认证 (1214s) -->
<div class="clip thumbnail"
data-start="12"
data-duration="2"
data-track-index="1"
style="bottom: 80px; right: 80px; opacity: 0;">
<img src="assets/capture/00_login.png" alt="登录认证">
</div>
<script>
window.__timelines = window.__timelines || {};
const tl = gsap.timeline({ paused: true });
window.__timelines["s2-security"] = tl;
// 架构图背景浮现
tl.to('[data-start="0"]', {
opacity: 0.4,
duration: 1.5,
ease: "power2.out"
}, 0);
// 金线勾勒框
tl.to('[data-start="2"]', {
scale: 1,
opacity: 1,
duration: 0.8,
ease: "power2.out"
}, 2);
// 关键词1 - 数据不出域(警示红)
tl.to('[data-start="4"]', {
y: 0,
opacity: 1,
duration: 0.6,
ease: "back.out(1.2)"
}, 4);
// 关键词2 - 算力在身边
tl.to('[data-start="6"]', {
y: 0,
opacity: 1,
duration: 0.6,
ease: "back.out(1.2)"
}, 6);
// 关键词3 - 内外网物理隔离
tl.to('[data-start="8"]', {
y: 0,
opacity: 1,
duration: 0.6,
ease: "back.out(1.2)"
}, 8);
// 小窗1 - 审计日志
tl.to('[data-start="10"]', {
opacity: 1,
duration: 0.5,
ease: "power2.out"
}, 10);
// 小窗2 - 登录认证
tl.to('[data-start="12"]', {
opacity: 1,
duration: 0.5,
ease: "power2.out"
}, 12);
</script>
</body>
</html>