🎮ArcadeLab

保密第一课 · 新入职人员保密教育互动剧本

by SilverFlame10
535 lines59.9 KB
▶ Play
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>保密第一课 · 新入职人员保密教育互动剧本</title>
    <style>
        /* 样式(与之前完全相同,为节省篇幅此处略,实际请复制完整代码) */
        * { margin:0; padding:0; box-sizing:border-box; }
        body { font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif; background:#0b1424; min-height:100vh; display:flex; justify-content:center; align-items:center; padding:16px; background-image:radial-gradient(ellipse at 20% 50%, #142a4a 0%, #0b1424 70%); }
        .game-container { width:100%; max-width:840px; background:rgba(18,34,58,0.84); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:32px; border:1px solid rgba(201,168,76,0.25); box-shadow:0 30px 80px rgba(0,0,0,0.7), 0 0 0 1px rgba(201,168,76,0.08) inset; padding:28px 30px 34px; position:relative; overflow:hidden; }
        .game-container::before { content:''; position:absolute; top:-50%; left:-50%; width:200%; height:200%; background:radial-gradient(circle at 70% 20%, rgba(201,168,76,0.03) 0%, transparent 60%); pointer-events:none; }
        .status-bar { display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; border-bottom:1px solid rgba(201,168,76,0.12); margin-bottom:22px; flex-wrap:wrap; gap:8px 12px; position:relative; z-index:2; }
        .status-left { display:flex; align-items:center; gap:12px; }
        .game-title { font-size:18px; font-weight:700; color:#c9a84c; letter-spacing:2px; text-shadow:0 0 20px rgba(201,168,76,0.15); }
        .badge { font-size:11px; background:rgba(201,168,76,0.15); color:#c9a84c; padding:3px 12px; border-radius:30px; border:1px solid rgba(201,168,76,0.2); letter-spacing:0.5px; }
        .status-right { display:flex; align-items:center; gap:14px; font-size:13px; color:rgba(255,255,255,0.6); }
        .status-right span { display:flex; align-items:center; gap:5px; }
        .status-right .num { color:#f0e6c5; font-weight:600; min-width:20px; text-align:center; }
        .status-right .label { font-size:11px; color:rgba(255,255,255,0.4); }
        .story-area { min-height:340px; position:relative; z-index:2; padding:4px 0; }
        .scene-title { font-size:17px; font-weight:700; color:#c9a84c; letter-spacing:1px; margin-bottom:14px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
        .scene-title .tag { font-size:11px; background:rgba(201,168,76,0.12); padding:2px 12px; border-radius:20px; color:#c9a84c; border:1px solid rgba(201,168,76,0.1); font-weight:400; }
        .scene-title .score-badge { font-size:12px; background:rgba(100,200,130,0.12); padding:2px 12px; border-radius:20px; color:#7ddfa0; border:1px solid rgba(100,200,130,0.15); font-weight:400; margin-left:auto; }
        .story-text { color:#e8e4d8; font-size:16px; line-height:1.9; white-space:pre-wrap; word-break:break-word; margin-bottom:24px; padding:4px 0; min-height:80px; }
        .story-text .highlight { color:#c9a84c; font-weight:500; }
        .story-text .danger { color:#e07b6c; font-weight:600; }
        .story-text .quote { display:block; padding:12px 18px; margin:12px 0; background:rgba(201,168,76,0.06); border-left:3px solid rgba(201,168,76,0.3); border-radius:0 8px 8px 0; color:#d4cdb5; font-size:15px; }
        .story-text .speaker { color:#c9a84c; font-weight:600; }
        .story-text .em { font-style:italic; color:rgba(255,255,255,0.5); }
        .options { display:flex; flex-direction:column; gap:10px; margin-top:6px; }
        .option-btn { background:rgba(255,255,255,0.04); border:1px solid rgba(201,168,76,0.15); border-radius:14px; padding:14px 20px; color:#e8e4d8; font-size:15px; font-weight:450; text-align:left; cursor:pointer; transition:all 0.2s ease; font-family:inherit; letter-spacing:0.3px; line-height:1.5; }
        .option-btn:hover:not(:disabled) { background:rgba(201,168,76,0.08); border-color:rgba(201,168,76,0.35); transform:translateX(4px); box-shadow:0 4px 20px rgba(0,0,0,0.2); }
        .option-btn:active:not(:disabled) { transform:scale(0.98); }
        .option-btn:disabled { opacity:0.4; cursor:not-allowed; transform:none !important; }
        .option-btn .opt-label { display:inline-block; background:rgba(201,168,76,0.12); color:#c9a84c; font-size:12px; font-weight:600; padding:0 12px; border-radius:20px; margin-right:10px; letter-spacing:0.5px; }
        .option-btn .opt-desc { display:inline; }
        .ending-banner { margin:16px 0 20px; padding:16px 20px; border-radius:16px; text-align:center; font-weight:700; font-size:20px; letter-spacing:2px; }
        .ending-banner.good { background:rgba(100,200,130,0.12); border:1px solid rgba(100,200,130,0.25); color:#7ddfa0; }
        .ending-banner.bad { background:rgba(224,123,108,0.12); border:1px solid rgba(224,123,108,0.25); color:#e07b6c; }
        .law-block { background:rgba(255,255,255,0.04); border-radius:14px; padding:16px 20px; margin:14px 0 18px; border-left:3px solid rgba(201,168,76,0.2); }
        .law-block .law-title { color:#c9a84c; font-size:13px; font-weight:600; margin-bottom:6px; letter-spacing:0.5px; }
        .law-block .law-text { color:#c8c0ad; font-size:14px; line-height:1.8; }
        .case-block { background:rgba(224,123,108,0.06); border-radius:14px; padding:16px 20px; margin:14px 0 18px; border-left:3px solid rgba(224,123,108,0.2); }
        .case-block .case-title { color:#e07b6c; font-size:13px; font-weight:600; margin-bottom:6px; letter-spacing:0.5px; }
        .case-block .case-text { color:#c8c0ad; font-size:14px; line-height:1.8; }
        .knowledge-tip { background:rgba(201,168,76,0.06); border-radius:12px; padding:14px 18px; margin:12px 0 16px; border:1px solid rgba(201,168,76,0.08); }
        .knowledge-tip .tip-title { color:#c9a84c; font-size:12px; font-weight:600; letter-spacing:0.5px; margin-bottom:4px; }
        .knowledge-tip .tip-text { color:#d4cdb5; font-size:14px; line-height:1.7; }
        .penalty-text { color:#e07b6c; font-weight:600; font-size:15px; margin:10px 0; padding:10px 16px; background:rgba(224,123,108,0.06); border-radius:8px; border:1px solid rgba(224,123,108,0.1); }
        .footer-actions { margin-top:26px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.04); display:flex; justify-content:center; gap:14px; flex-wrap:wrap; position:relative; z-index:2; }
        .btn-restart { background:rgba(201,168,76,0.08); border:1px solid rgba(201,168,76,0.15); color:#c9a84c; padding:10px 28px; border-radius:40px; font-size:14px; font-weight:500; cursor:pointer; transition:all 0.25s ease; font-family:inherit; letter-spacing:0.5px; }
        .btn-restart:hover { background:rgba(201,168,76,0.15); border-color:rgba(201,168,76,0.3); transform:translateY(-2px); box-shadow:0 6px 30px rgba(0,0,0,0.3); }
        .btn-restart:active { transform:scale(0.96); }
        .btn-restart .icon { margin-right:6px; }
        .progress-bar { display:flex; justify-content:center; gap:4px; margin-top:12px; padding:0 4px; flex-wrap:wrap; }
        .progress-dot { width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.05); transition:all 0.3s ease; }
        .progress-dot.done { background:#7ddfa0; border-color:#7ddfa0; }
        .progress-dot.fail { background:#e07b6c; border-color:#e07b6c; }
        .progress-dot.current { background:#c9a84c; border-color:#c9a84c; box-shadow:0 0 12px rgba(201,168,76,0.3); }
        @media (max-width:600px) { .game-container { padding:20px 18px 24px; border-radius:24px; } .game-title { font-size:15px; } .badge { font-size:10px; padding:2px 10px; } .status-right { font-size:12px; gap:10px; } .story-text { font-size:15px; line-height:1.8; min-height:60px; } .option-btn { font-size:14px; padding:12px 16px; border-radius:12px; } .option-btn .opt-label { font-size:10px; margin-right:8px; } .ending-banner { font-size:17px; padding:14px 16px; } .scene-title { font-size:14px; } .law-block .law-text, .case-block .case-text { font-size:13px; } .btn-restart { padding:8px 22px; font-size:13px; } .footer-actions { margin-top:20px; padding-top:14px; } .progress-dot { width:10px; height:10px; } }
        @media (max-width:420px) { .game-container { padding:16px 14px 20px; border-radius:20px; } .status-bar { flex-direction:column; align-items:flex-start; gap:6px; } .status-right { width:100%; justify-content:flex-start; font-size:11px; } .story-text { font-size:14px; line-height:1.7; } .option-btn { font-size:13px; padding:11px 14px; } .option-btn .opt-label { display:block; margin-bottom:4px; margin-right:0; } .option-btn .opt-desc { display:block; } }
        .fade-in { animation:fadeIn 0.4s ease forwards; }
        @keyframes fadeIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
        ::-webkit-scrollbar { width:4px; }
        ::-webkit-scrollbar-track { background:transparent; }
        ::-webkit-scrollbar-thumb { background:rgba(201,168,76,0.2); border-radius:10px; }
        ::-webkit-scrollbar-thumb:hover { background:rgba(201,168,76,0.3); }
    </style>
</head>
<body>
<div class="game-container" id="app">
    <div class="status-bar">
        <div class="status-left">
            <span class="game-title">🔐 保密第一课</span>
            <span class="badge">互动剧本</span>
        </div>
        <div class="status-right">
            <span><span class="label">保密积分</span> <span class="num" id="scoreNum">100</span></span>
            <span><span class="label">支线</span> <span class="num" id="branchNum">0/13</span></span>
            <span><span class="label">进度</span> <span class="num" id="progressNum">0%</span></span>
        </div>
    </div>
    <div class="story-area" id="storyArea"></div>
    <div class="progress-bar" id="progressBar"></div>
    <div class="footer-actions">
        <button class="btn-restart" id="restartBtn"><span class="icon">⟳</span> 重新开始</button>
    </div>
</div>
<script>
    // ================================================================
    //  游 戏 数 据  —— 依据《保密第一课》修订版剧本
    //  举报电话:12336
    // ================================================================

    var BRANCH_ORDER = ['b1','b2','b3','b4','b5','b6','b7','b8','b9','b10','b11','b12','b13'];
    var SCENES = {};

    // ----- 序幕 -----
    SCENES.intro = {
        id:'intro',
        type:'intro',
        title:'第一幕 · 入职保密第一课',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">单位保密培训教室 · 上午9:00</span>\n\n        <span class="speaker">陈科长</span> 站在讲台前,身后的大屏幕上显示着"保密第一课"几个大字。你(<span class="highlight">林晓</span>,硕士研究生毕业,工作热情但保密意识尚在建立中)和几位新同事坐在台下。\n\n        <span class="quote">"各位,欢迎加入我们单位。今天这堂课,是你们入职的\'必修课\'——保密第一课。你们可能觉得保密离自己很远,但我可以告诉你们,<span class="danger">国家秘密关系国家安全和利益</span>,保守党和国家秘密是每个公民应尽的义务。新入职人员既是保护国家秘密安全的生力军,也是保密教育的重点对象。"</span>\n\n        陈科长切换PPT,屏幕上出现一份公文的图片,左上角赫然标注着 <span class="danger">"机密★10年"</span>。\n\n        <span class="quote">"在讲案例之前,我先给大家讲清楚几个基本概念——什么是密级标识?它在哪里?长什么样?"</span>\n\n        陈科长放大图片:\n\n        <span class="quote">"第一,<span class="highlight">什么是国家秘密标志?</span> 国家秘密标志是一种法定的文字与符号标识,用以表明所标识的载体、设备和产品等承载的内容属于国家秘密,并提示其密级和保密期限。它具有提示、警示作用,是对知悉范围内的机关单位和人员须采取相应保密措施、承担保密义务的提醒和告知。"</span>\n\n        <span class="quote">"第二,<span class="highlight">密级标识长什么样?</span> 国家秘密标志的形式为:\'密级★保密期限\'、\'密级★解密时间\'或者\'密级★解密条件\'。比如\'机密★10年\'、\'秘密★1年\'、\'绝密★长期\'。★前标密级,★后标保密期限。"</span>\n\n        陈科长切换图片,展示不同载体上的标注位置:\n\n        <span class="quote">"第三,<span class="highlight">密级标识标在哪里?</span> 书面形式的密件,在封面(或者首页)的<span class="danger">左上角</span>标明密级和保密期限。按照《党政机关公文格式》国家标准,一般用3号黑体字,顶格编排在版心左上角第二行。地图、图纸、图表则在标题之后或者下方标明。"</span>\n\n        <span class="quote">"第四,<span class="highlight">国家秘密分几个等级?</span> 国家秘密的密级分为<span class="danger">绝密、机密、秘密</span>三级。绝密级是最重要的国家秘密,泄露会使国家安全和利益遭受特别严重的损害;机密级是重要的国家秘密,泄露会使国家安全和利益遭受严重的损害;秘密级是一般的国家秘密。"</span>\n\n        陈科长又切换了一张PPT,上面列出了不同概念的对比表格:\n\n        <span class="quote">"第五,<span class="highlight">什么是工作秘密?什么是敏感信息?</span> 工作秘密是指机关、单位在履行职能过程中产生或者获取的,不属于国家秘密,但泄露后会妨碍机关、单位履行职能或者对国家安全、公共利益造成不利影响的内部敏感事项。工作秘密的标志通常是\'内部\'、\'内部资料 注意保管\'等字样。敏感信息指的是那些一旦泄露或不当使用可能会对个人、组织或国家造成不良影响的信息。"</span>\n\n        陈科长的语气变得更加严肃:\n\n        <span class="quote">"第六,<span class="danger">处理这些信息,有哪些绝对禁忌?</span> 记住以下几点红线,绝对不能碰——"</span>\n\n        <span class="quote">"一是<span class="danger">严禁使用手机拍照、录像涉密文件</span>。无论用什么APP、什么小程序——微信、QQ、传图识字、图文识别——一律不行。当涉密文件通过微信、QQ发送出去的那一刻,\'通过互联网及其他公共信息网络传递国家秘密\'的违法行为已经发生,且不可逆转,不会因为\'撤回\'就消除违法性质。"</span>\n\n        <span class="quote">"二是<span class="danger">严禁在非涉密计算机上处理涉密信息</span>。连接互联网的计算机属非涉密信息设备,缺乏涉密信息安全防护功能,网络环境开放且风险不可控。"</span>\n\n        <span class="quote">"三是<span class="danger">严禁使用互联网网盘、云盘、电子邮箱、即时通信工具(微信、QQ)等存储、处理、传输工作秘密</span>。"</span>\n\n        <span class="quote">"四是<span class="danger">严禁将涉密设备带出涉密场所</span>。涉密笔记本电脑、涉密U盘等,一律不得带回家、带出办公区。"</span>\n\n        <span class="quote">"五是<span class="danger">严禁在私人交往中涉及国家秘密</span>。不向任何人——包括家人、朋友、同学——透露工作内容。"</span>\n\n        <span class="quote">"六是<span class="danger">严禁违规复制、复印涉密文件</span>。复制涉密文件必须按规定报批并使用涉密设备。"</span>\n\n        <span class="quote">"发现可疑情况,立即拨打 <span class="danger">12336</span> 向国家安全机关举报。"</span>\n\n        陈科长停顿了一下,看着台下认真记录的林晓们:\n\n        <span class="quote">"下面,我给大家讲几个真实案例——"</span>\n\n        陈科长切换PPT,屏幕上出现案例:\n\n        <span class="quote">"<span class="highlight">案例一:</span> 2025年3月,某设计院工作人员张某在起草一份秘密级项目的《可行性研究报告》时,违规将其上传至微信群。之后,该单位多人将该密级资料上传至多个微信群,造成泄密。事后,相关责任人均受到纪律处分或组织处理。"</span>\n\n        <span class="quote">"<span class="highlight">案例二:</span> 某市直机关新任干部蒋某参加市委某会议后,为炫耀公务员身份,擅自将会议领取的秘密级文件首页拍照上传至朋友圈。尽管10分钟后在领导责令下紧急删除照片,但好友截图保存及转发已形成传播链,造成泄密。<span class="danger">撤回≠安全,撤回≠免责。</span>"</span>\n\n        <span class="quote">"<span class="highlight">案例三:</span> 某涉密单位办公室主任孙某出于工作便利考虑,违规拍摄机密级文件,并使用图文识别小程序转化为电子文档。殊不知,其使用的小程序将此涉密内容自动存储在第三方服务器。"</span>\n\n        你听得认真,心里暗暗记下每一个要点。\n\n        <span class="quote">"最后提醒大家:<span class="highlight">保密责任不要忘,保密学习不能停,保密义务\'不下班\'。</span> 下面,请大家签署《保密承诺书》。签了它,就意味着你们肩上扛着保护国家秘密的责任。"</span>\n\n        你郑重地签下了承诺书。',
        options:[{label:'开始',text:'我准备好了,迎接挑战!',next:'b1'}]
    };

    // ----- 支线一 -----
    SCENES.b1 = {
        id:'b1',
        type:'branch',
        branchIndex:0,
        title:'支线一 · 工作群里的"学习资料"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职第二周 · 周三下午</span>\n\n        你的手机震动了一下——是单位一个工作交流群的消息。点开一看,同事 <span class="highlight">小王</span> 发了一张图片,是一份文件的首页照片,左上角隐约可见 <span class="danger">"秘密★1年"</span> 的字样。小王在群里说:"这份材料内容不错,大家学习一下。"\n\n        群里已经有好几个人回复"收到""学习了"。你看着那张照片——',
        options:[
            {label:'A',text:'在群里提醒小王"这是涉密文件,赶紧撤回",并私信告知保密规定',next:'b2'},
            {label:'B',text:'觉得大家都在看,自己不看不合适,默默点开图片浏览',next:'fail1'}
        ]
    };
    SCENES.fail1 = {
        id:'fail1',
        type:'fail',
        title:'❌ 失败结局 · 工作群泄密',
        text:'你点开了图片,看了几眼便关闭了。你没有提醒小王,也没有报告。但那张照片已经被群内多人转发、截图,最终扩散到互联网上。国家安全机关介入调查后,追溯到了最初的发图者小王——以及所有浏览过该文件但未制止的人员。\n\n        <div class="penalty-text">📋 违规定性:小王的行为属于"在互联网及其他公共信息网络传递国家秘密",违反《保守国家秘密法》第四十八条第七款。林晓作为知情人未制止、未报告,也负有相应责任。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">根据《保守国家秘密法》第四十八条,违反规定在互联网传递国家秘密的,依法给予处分;构成犯罪的,依法追究刑事责任。<br /><br />小王被给予行政记过处分;林晓因未及时报告被给予诫勉谈话。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">2024年,某市某单位办公室工作人员王某某,在未经允许的情况下,擅自使用手机微信将1份涉密文件拍照并发送至单位的微信工作群中。同为群成员的办公室负责人陶某某发现后,立即通过电话通知王某某撤回消息,王某某随即将所有照片撤回。最终,王某某因违规操作被给予警告处分,陶某某接受了提醒谈话。<br /><br />2025年2月,某县直单位工作人员郑某,从兄弟单位拷贝了包含1份标密文件的工作资料后,未经甄别便发送到本单位工作微信群,造成泄密,郑某受到纪律处分。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">发现微信群中有涉密文件,<strong>正确的做法是立即提醒对方撤回,并第一时间向保密部门报告</strong>。浏览而不制止、不报告,同样可能被追究责任。保密是每个人的责任,没有旁观者。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因知情不报被诫勉谈话,职业生涯蒙上阴影。</span>',
        options:[]
    };

    // ----- 支线二 -----
    SCENES.b2 = {
        id:'b2',
        type:'branch',
        branchIndex:1,
        title:'支线二 · "传图识字"的便利',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职第三周 · 周四下午</span>\n\n        你正在起草一份涉密材料,需要参考一份纸质文件的部分内容。同事路过看到,热心地说:"你用那个\'传图识字\'小程序拍一下,直接转成文字多快啊,我平时都这么用。"\n\n        你看了看桌上的涉密文件——',
        options:[
            {label:'A',text:'用"传图识字"小程序拍照识别,提高工作效率',next:'fail2'},
            {label:'B',text:'谢绝同事建议,手动逐字录入',next:'b3'}
        ]
    };
    SCENES.fail2 = {
        id:'fail2',
        type:'fail',
        title:'❌ 失败结局 · "传图识字"的陷阱',
        text:'你用手机拍摄了涉密文件,通过"传图识字"微信小程序扫描识别为电子文档。你不知道,该小程序将涉密内容自动存储在第三方服务器上。文件数据被上传至境外服务器,后被境外网站披露。\n\n        <div class="penalty-text">📋 违规定性:使用非涉密设备和互联网工具处理涉密信息,违反《保守国家秘密法》关于涉密信息处理的规定。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">林晓被给予党纪政务处分。如造成严重后果,可能构成故意泄露国家秘密罪。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>规定:涉密信息系统与公共信息网络必须实行物理隔离,禁止使用非涉密设备和互联网处理涉密信息。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">2021年,某市直机关工作人员吴某收到一份上级印发的标注"内部"字样的工作方案,为方便起草落实方案,使用手机拍摄文件,通过"传图识字"微信小程序扫描识别为电子文档,后将初稿发送至单位微信工作群征求意见,被同事多次转发,导致文件知悉范围扩大。案发后,吴某被给予党纪政务处分。<br /><br />某涉密单位办公室主任孙某违规拍摄机密级文件使用图文识别小程序,内容被自动存储在第三方服务器。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text"><strong>严禁使用任何互联网工具处理涉密信息</strong>,包括但不限于图文识别、AI写作、云存储等。这些工具会将数据上传至第三方服务器,造成不可控的泄密风险。涉密工作必须使用专用设备和内部网络。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因图方便,付出了沉重的代价。</span>',
        options:[]
    };

    // ----- 支线三 -----
    SCENES.b3 = {
        id:'b3',
        type:'branch',
        branchIndex:2,
        title:'支线三 · "带回家加班"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职一个月 · 周五下午5:30</span>\n\n        领导安排你下周一前完成一份涉密文件的起草工作。眼看快下班了还没做完,你犹豫着要不要把涉密笔记本电脑带回家加班。同事小张说:"没事,带回去做吧,我上周也带回去过,没人查。"\n\n        你看着桌上的涉密笔记本电脑——',
        options:[
            {label:'A',text:'把涉密电脑带回家继续工作',next:'fail3'},
            {label:'B',text:'留在单位加班完成,绝不将涉密设备带出办公区',next:'b4'}
        ]
    };
    SCENES.fail3 = {
        id:'fail3',
        type:'fail',
        title:'❌ 失败结局 · "带回家加班"',
        text:'你把涉密笔记本电脑装进背包带回了家。周日晚上,你带着电脑去咖啡厅加班。起身去接电话的几分钟里,电脑不翼而飞。虽然最终小偷被抓获、电脑被追回,但涉密信息已经暴露在不可控的环境中。\n\n        <div class="penalty-text">📋 违规定性:违规携带涉密设备外出,违反涉密设备管理规定——涉密设备严禁带出涉密场所。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">林晓被开除,终生不得再从事涉密工作。如造成泄密后果,还可能被追究刑事责任。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>规定:涉密设备应当指定专人管理,并采取必要的安全防护措施,严禁带出涉密场所。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某科技企业员工孙某长期违规将涉密笔记本电脑带回家中。某日在餐厅用餐时电脑被盗,虽然后来找回,但孙某被公司辞退。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text"><strong>涉密设备必须存放在安全的涉密场所</strong>,严禁带出办公区。因工作需要携带外出的,须经单位批准并采取严格保密措施。"带回家加班"不是理由,保密纪律没有例外。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因一次"带回家",断送了职业生涯。</span>',
        options:[]
    };

    // ----- 支线四 -----
    SCENES.b4 = {
        id:'b4',
        type:'branch',
        branchIndex:3,
        title:'支线四 · "复印店的便捷"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职第二周 · 周一上午</span>\n\n        领导安排你复印一份涉密文件,用于科室学习。单位的涉密复印机前排了长队,至少等半个小时。隔壁综合科有一台普通复印机,没人使用。同事说:"去隔壁印吧,反正内容也不多,没人知道。"\n\n        你拿着涉密文件站在走廊里——',
        options:[
            {label:'A',text:'去隔壁用普通复印机复印,节省时间',next:'fail4'},
            {label:'B',text:'排队等待使用涉密复印机',next:'b5'}
        ]
    };
    SCENES.fail4 = {
        id:'fail4',
        type:'fail',
        title:'❌ 失败结局 · "复印店的便捷"',
        text:'你用普通复印机复印了涉密文件。你不知道这台复印机具有联网功能,文件数据被自动上传至云端。境外势力通过技术手段获取了文件内容。\n\n        <div class="penalty-text">📋 违规定性:违规复制涉密文件。复制涉密文件必须按照规定报批并使用涉密设备。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">林晓被给予行政记过处分,并承担相应法律责任。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>规定:复制涉密文件必须按照规定报批并使用涉密设备。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">莫某明知项目任务书属于国家秘密,擅自在路边复印店使用非涉密复印机复印,该复印机具有联网功能,造成泄密。<br /><br />某市秘书科科长将秘密级文件交给刚入职的小王复印20份,小王使用普通复印机,造成泄密。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">涉密文件 <strong>必须使用涉密复印机</strong> 进行复制,并履行审批登记手续。普通复印机、打印机、扫描仪等非涉密设备 <span class="danger">严禁用于处理涉密信息</span>。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因贪图方便,背上处分。</span>',
        options:[]
    };

    // ----- 支线五 -----
    SCENES.b5 = {
        id:'b5',
        type:'branch',
        branchIndex:4,
        title:'支线五 · "网友的好奇"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职一个月 · 周六晚上</span>\n\n        你在某社交平台上认识了一位网友 <span class="highlight">"小琳"</span>,两人聊得很投机。"小琳"对你的工作表现出极大兴趣:"你在哪儿上班啊?听起来好厉害!""你们单位是不是研究高科技的?"你觉得对方只是好奇——',
        options:[
            {label:'A',text:'继续和"小琳"聊天,分享一些工作上的"趣事"',next:'fail5'},
            {label:'B',text:'警惕起来,停止透露任何工作信息',next:'b6'}
        ]
    };
    SCENES.fail5 = {
        id:'fail5',
        type:'fail',
        title:'❌ 失败结局 · "网友的好奇"',
        text:'"小琳"其实是境外间谍情报机关人员。在你毫无防备的聊天中,ta逐步套取了大量内部信息。几个月后,"小琳"约你见面并亮明身份,以已获取的信息为要挟,要求你提供更多涉密资料。你被迫就范。\n\n        <div class="penalty-text">📋 违规定性:向境外人员泄露国家秘密,涉嫌为境外非法提供国家秘密罪。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第一百一十一条</strong><br />为境外机构、组织、人员窃取、刺探、收买、非法提供国家秘密的,处五年以上十年以下有期徒刑;情节特别严重的,处十年以上有期徒刑或者无期徒刑。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某军工单位95后员工张某某,通过交友软件结识"女网友"(实为境外间谍人员),向对方提供国家秘密信息,非法获利1200元,被以为境外非法提供国家秘密罪判处有期徒刑一年。<br /><br />某国有企业涉密岗位职工冯某退休后保密意识淡薄,被境外间谍情报机关以高额"咨询报酬"拉拢,利用与老同事的交往获取核心涉密信息,被以为境外非法提供国家秘密罪判处有期徒刑六年。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">在社交网络中,<strong>不要轻易透露工作单位、岗位性质、涉密信息</strong>。境外间谍情报机关常常通过"交友"方式接近涉密人员,套取情报。发现可疑情况,<strong>立即拨打12336向国家安全机关举报</strong>。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓沦为间谍帮凶,身陷囹圄。</span>',
        options:[]
    };

    // ----- 支线六 -----
    SCENES.b6 = {
        id:'b6',
        type:'branch',
        branchIndex:5,
        title:'支线六 · "家庭群里的炫耀"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职第三个月 · 周末家庭聚餐</span>\n\n        亲戚们对你的新工作充满好奇。"在哪个单位啊?""具体做什么工作?""是不是很厉害?"你被问得有些飘飘然,想展示一下自己参与的项目——',
        options:[
            {label:'A',text:'偷拍办公桌上的文件照片发家庭群,"证明"自己工作很重要',next:'fail6'},
            {label:'B',text:'婉拒所有询问,说"工作内容保密,不方便说"',next:'b7'}
        ]
    };
    SCENES.fail6 = {
        id:'fail6',
        type:'fail',
        title:'❌ 失败结局 · "家庭群里的炫耀"',
        text:'你趁人不注意,用手机偷拍了办公桌上的一份文件照片,发到了家庭聊天群。群内亲属又将照片转发至其他线上聊天群,涉密信息在互联网迅速扩散。尽管你后来紧急删除,但截图已形成传播链。\n\n        <div class="penalty-text">📋 违规定性:故意泄露国家秘密,违反《保守国家秘密法》关于"在私人交往和通信中涉及国家秘密"的禁止性规定。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第三百九十八条</strong><br />故意泄露国家秘密,情节严重的,处三年以下有期徒刑或者拘役;情节特别严重的,处三年以上七年以下有期徒刑。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某国防军工单位临时聘用人员张某,为在亲友面前"有面子",偷拍新型军事装备照片发家庭群,照片被层层转发扩散,造成严重失泄密,张某因故意泄露国家秘密罪被判处有期徒刑五年。<br /><br />某市直机关新任干部蒋某参加市委某会议后,为炫耀公务员身份,擅自将会议领取的秘密级文件首页拍照上传至朋友圈,尽管10分钟后紧急删除,但好友截图保存及转发已形成传播链,造成泄密。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text"><strong>涉密场所严禁拍照,涉密信息严禁在私人社交平台传播。</strong> 维护国家安全是每个公民的责任,保密意识任何时候都不能松懈。炫耀之心不可有,保密之弦不可松。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因一时虚荣,毁掉前程。</span>',
        options:[]
    };

    // ----- 支线七 -----
    SCENES.b7 = {
        id:'b7',
        type:'branch',
        branchIndex:6,
        title:'支线七 · "老同学的求助"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职两个月 · 周四晚上</span>\n\n        大学同学约你吃饭。饭桌上,老同学说自己正在写一篇行业论文,需要一些"内部数据"做参考,"你帮我查一下呗,就几个数字,不碍事的"。你觉得对方是多年的好朋友——',
        options:[
            {label:'A',text:'帮老同学查一下,反正"只是帮个忙"',next:'fail7'},
            {label:'B',text:'拒绝,告知涉密信息不能外泄',next:'b8'}
        ]
    };
    SCENES.fail7 = {
        id:'fail7',
        type:'fail',
        title:'❌ 失败结局 · "老同学的求助"',
        text:'你将工作中掌握的内部数据提供给了老同学。你不知道这位老同学已经被境外机构收买,长期为境外提供信息服务。数据通过老同学传到了境外。\n\n        <div class="penalty-text">📋 违规定性:故意泄露国家秘密/工作秘密。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第三百九十八条</strong><br />故意泄露国家秘密,情节严重的,处三年以下有期徒刑或者拘役;情节特别严重的,处三年以上七年以下有期徒刑。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>:禁止在私人交往和通信中涉及国家秘密。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">康某与周某曾是同事,周某离职后向康某询问某重点项目情况,康某没有多想便和盘托出,还特地提醒"很敏感,千万不能外泄"。殊不知周某长期为境外机构提供信息服务,蓄意打探。康某因涉嫌故意泄露国家秘密罪被移送审查起诉。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text"><strong>涉密信息不得向任何人透露</strong>,包括家人、朋友、前同事。即使对方是多年的好友,也不能放松警惕。保密纪律面前,没有"私人关系"的例外。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓被老同学出卖,自己也沦为阶下囚。</span>',
        options:[]
    };

    // ----- 支线八 -----
    SCENES.b8 = {
        id:'b8',
        type:'branch',
        branchIndex:7,
        title:'支线八 · "学术会议上的\'学者\'"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职半年 · 行业学术会议</span>\n\n        一位自称某国大学研究员的 <span class="highlight">"学者"</span> 主动搭讪,对你的工作表现出浓厚兴趣,提出愿意支付高额"咨询费"换取一些"公开资料"。"学者"说:"只是普通的学术交流,不涉及机密,你放心。"',
        options:[
            {label:'A',text:'接受"咨询"邀请,赚点外快',next:'fail8'},
            {label:'B',text:'拒绝并向单位报告可疑情况',next:'b9'}
        ]
    };
    SCENES.fail8 = {
        id:'fail8',
        type:'fail',
        title:'❌ 失败结局 · "学术会议上的\'学者\'"',
        text:'这位"学者"实为境外间谍情报机关人员。你起初只提供了一些"公开资料",但在金钱诱惑下越陷越深,逐步开始提供内部涉密信息。\n\n        <div class="penalty-text">📋 违规定性:为境外非法提供国家秘密。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第一百一十一条</strong><br />为境外机构、组织、人员窃取、刺探、收买、非法提供国家秘密的,处五年以上十年以下有期徒刑;情节特别严重的,处十年以上有期徒刑或者无期徒刑。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某国有企业涉密岗位职工冯某退休后保密意识淡薄,被境外间谍情报机关以高额"咨询报酬"拉拢,利用与原单位人员的交往获取核心涉密信息。冯某被以为境外非法提供国家秘密罪判处有期徒刑六年,剥夺政治权利二年,并处没收个人财产五十万元。<br /><br />张某曾是某国家机关核心涉密人员,离职后成为境外间谍情报机关拉拢策反的重要目标,几经周旋下被对方控制利用,最终被依法判处死刑,剥夺政治权利终身并处没收个人全部财产。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">境外间谍情报机关常常以 <span class="highlight">"学术交流""咨询顾问""项目合作"</span> 等名义接近涉密人员。任何未经批准的对外提供信息行为都可能是违法的。<span class="danger">遇到可疑情况,立即向单位保密部门或国家安全机关(12336)报告</span>。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因贪图钱财,葬送一生。</span>',
        options:[]
    };

    // ----- 支线九 -----
    SCENES.b9 = {
        id:'b9',
        type:'branch',
        branchIndex:8,
        title:'支线九 · "离岗前的\'备份\'"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职两年后 · 调岗前夕</span>\n\n        你因个人原因申请调离涉密岗位。在办理离职手续时,你想到自己电脑里有很多"辛苦整理"的资料,以后可能还用得上——',
        options:[
            {label:'A',text:'把资料拷贝到个人U盘带走,"以后参考用"',next:'fail9'},
            {label:'B',text:'按规定全部清退,不带走任何涉密资料',next:'b10'}
        ]
    };
    SCENES.fail9 = {
        id:'fail9',
        type:'fail',
        title:'❌ 失败结局 · "离岗前的\'备份\'"',
        text:'你将涉密资料拷贝到个人U盘带走。几年后,该U盘在一次搬家过程中遗失,涉密资料流入不可控环境。\n\n        <div class="penalty-text">📋 违规定性:非法持有国家秘密载体。离岗离职未按规定清退涉密载体。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国保守国家秘密法》第四十八条</strong><br />(一)非法获取、持有国家秘密载体的,依法给予处分;构成犯罪的,依法追究刑事责任。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某涉密企业负责机要工作的员工韩某考取公务员后,电话联系部门领导和人事部门沟通离职事宜,并请他人代办离职手续,其间本人未按规定回原单位办理涉密载体交接。后该企业在组织文件资料清退时,发现其存放在保密柜的2份秘密级文件去向不明。韩某被处分。<br /><br />徐某离职前私自将25份秘密级文件导入个人电脑,入职新单位后又将2份涉密文件导入私人设备并长期留存使用,被依法处理。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">离岗离职时,<strong>必须按规定清退所有涉密载体</strong>,包括纸质文件、电子文档、U盘等。私自留存涉密资料属于违法行为,无论出于何种目的。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因一念之差,背上违法记录。</span>',
        options:[]
    };

    // ----- 支线十 -----
    SCENES.b10 = {
        id:'b10',
        type:'branch',
        branchIndex:9,
        title:'支线十 · "脱密期的诱惑"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">离职一年后 · 脱密期内</span>\n\n        有人以"猎头"名义联系你,开出高薪请你做"行业顾问"。对方对你原单位的工作内容特别感兴趣,说:"你已经离职了,说说以前的事不犯法吧?"',
        options:[
            {label:'A',text:'接受高薪"顾问"工作',next:'fail10'},
            {label:'B',text:'拒绝并拨打12336向国家安全机关报告',next:'b11'}
        ]
    };
    SCENES.fail10 = {
        id:'fail10',
        type:'fail',
        title:'❌ 失败结局 · "脱密期的诱惑"',
        text:'对方是境外间谍情报机关人员。你在脱密期内违规提供原单位涉密信息。\n\n        <div class="penalty-text">📋 违规定性:涉密人员在脱密期内,不得违反规定就业,不得以任何方式泄露国家秘密。违反离岗离职及脱密期规定的,由保密行政管理部门会同有关部门依法采取处置措施。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第一百一十一条</strong><br />为境外机构、组织、人员窃取、刺探、收买、非法提供国家秘密的,处五年以上十年以下有期徒刑;情节特别严重的,处十年以上有期徒刑或者无期徒刑。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">张某曾是某国家机关的核心涉密人员,离职后成为境外间谍情报机关拉拢策反的重要目标。在得知张某手中的U盘存有大量涉密文件资料后,境外间谍人员主动邀请张某前往境外当面进行交易。张某当时尚未过脱密期,但在对方"安排旅游""体验异国风情"等情感拉拢下,未向原单位审批报备便私自出境。张某向境外间谍情报机关提供了大量绝密级、机密级国家秘密,最终被依法判处死刑。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text"><span class="highlight">涉密人员离岗离职后仍负有保密义务</span>,在脱密期内不得以任何方式泄露原单位涉密信息。遇到以高薪、合作等名义打探涉密信息的情况,<span class="danger">应立即拒绝并向国家安全机关(12336)举报</span>。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因贪图高薪,走上不归路。</span>',
        options:[]
    };

    // ----- 支线十一 -----
    SCENES.b11 = {
        id:'b11',
        type:'branch',
        branchIndex:10,
        title:'支线十一 · "会议室的\'疏忽\'"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职五个月 · 涉密会议</span>\n\n        会议结束后,参会人员陆续离场。你注意到邻座的一位参会者将一份涉密会议材料遗忘在了桌上,人已经走出会议室了——',
        options:[
            {label:'A',text:'觉得"不关自己的事",径直离开',next:'fail11'},
            {label:'B',text:'立即拿起材料追出去归还,并向会议组织者报告',next:'b12'}
        ]
    };
    SCENES.fail11 = {
        id:'fail11',
        type:'fail',
        title:'❌ 失败结局 · "会议室的\'疏忽\'"',
        text:'你离开了会议室。那份涉密材料被后续进入会议室的保洁人员误当作废纸收走,后流入外部环境。\n\n        <div class="penalty-text">📋 违规定性:发现涉密载体失控未采取任何措施,属于保密意识淡薄、未尽到保护义务。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">林晓被给予通报批评;遗失材料的人员及会议组织者受到更严重的处分。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>规定:任何公民和组织都应当保守国家秘密,发现泄露或者可能泄露国家秘密的,应当立即采取补救措施并及时报告。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某涉密单位干部孙某参加涉密会议,会议要求涉密会议材料"会后收回"。孙某未按要求交回涉密会议材料,将涉密会议材料带入旅馆,存放在旅馆更衣柜中。孙某外出时材料失控。<br /><br />另有案例显示,涉密文件被随意放在办公桌后下落不明,当事人被给予行政撤职及开除党籍处分,并对负有领导责任的人员问责处理。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">发现涉密载体失控,<strong>应当立即采取措施追回并报告</strong>。保密不是"事不关己",每个人都是保密防线的重要一环。漠视风险,就是放任泄密。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因"事不关己"的态度,受到通报批评。</span>',
        options:[]
    };

    // ----- 支线十二 -----
    SCENES.b12 = {
        id:'b12',
        type:'branch',
        branchIndex:11,
        title:'支线十二 · "办公桌上的\'临时存放\'"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职三个月 · 周三中午</span>\n\n        你中午去食堂吃饭,手头一份涉密文件还没处理完。你犹豫了一下——',
        options:[
            {label:'A',text:'把文件随手放在办公桌上,吃完饭回来继续',next:'fail12'},
            {label:'B',text:'将文件锁进保密柜再去吃饭',next:'b13'}
        ]
    };
    SCENES.fail12 = {
        id:'fail12',
        type:'fail',
        title:'❌ 失败结局 · "办公桌上的\'临时存放\'"',
        text:'你吃完饭回来,发现办公桌上的文件被动过了——保洁人员打扫卫生时以为是废纸,拿起来看了看又放下。虽然文件没有丢失,但已暴露给无关人员。\n\n        <div class="penalty-text">📋 违规定性:涉密载体未按规定保管。保管工作秘密载体,应当将其存放于文件柜、密码柜等安全的设备中。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text">林晓被给予警告处分。<br /><br /><strong>《中华人民共和国保守国家秘密法》</strong>规定:保管国家秘密载体,应当将其存放于符合国家保密标准的设施、设备中。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某机关工作人员将涉密文件随手放在办公桌上,被来访的外单位人员看到并拍照,造成泄密。涉密文件随意放置是常见的泄密隐患。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">涉密文件 <strong>必须随办随归、入柜上锁</strong>,不得随意放置在办公桌上或非保密区域。离开办公室时,要清理桌面,确保涉密文件已妥善保管。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓因一时疏忽,受到警告处分。</span>',
        options:[]
    };

    // ----- 支线十三 -----
    SCENES.b13 = {
        id:'b13',
        type:'branch',
        branchIndex:12,
        title:'支线十三 · "境外培训的\'艳遇\'"',
        text:'<span style="color:rgba(255,255,255,0.3);font-size:14px;">入职一年 · 境外培训</span>\n\n        你因工作表现优秀被派往境外参加短期培训。培训期间,一名当地人对你格外热情,两人很快发展成亲密关系。一天晚上,对方提出拍一些"私密照片"作为纪念——',
        options:[
            {label:'A',text:'接受拍照,沉浸在"异国恋情"中',next:'fail13'},
            {label:'B',text:'保持警惕,拒绝并报告带队领导',next:'success'}
        ]
    };
    SCENES.fail13 = {
        id:'fail13',
        type:'fail',
        title:'❌ 失败结局 · "境外培训的\'艳遇\'"',
        text:'私密照片拍下后,对方亮明身份——ta是境外间谍情报机关人员。对方以照片为要挟,胁迫你加入境外间谍组织。你被迫就范,回国后长期为境外提供情报。\n\n        <div class="penalty-text">📋 违规定性:参加间谍组织,构成间谍罪。</div>\n\n        <div class="law-block"><div class="law-title">⚖️ 法律后果</div><div class="law-text"><strong>《中华人民共和国刑法》第一百一十条</strong><br />参加间谍组织或者接受间谍组织及其代理人任务的,处十年以上有期徒刑或者无期徒刑;情节较轻的,处三年以上十年以下有期徒刑。</div></div>\n\n        <div class="case-block"><div class="case-title">📌 真实案例</div><div class="case-text">某省直机关工作人员李某赴境外培训期间,禁不住美色诱惑陷入"温柔陷阱",被拍下私密照片后遭胁迫加入境外间谍组织。回国后长期为境外提供情报,最终以间谍罪被判处有期徒刑五年,剥夺政治权利三年。<br /><br />国家安全机关破获的某科研单位工作人员私自拷贝、复制并向境外间谍情报机关出卖大量国家秘密的间谍案件中,当事人被依法判处死刑。</div></div>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识</div><div class="tip-text">境外间谍情报机关常常利用 <span class="highlight">"美色""金钱""感情"</span> 等手段策反涉密人员。在境外期间,<span class="danger">要时刻保持警惕,遵守外事纪律,不接触可疑人员,不透露工作信息</span>。遇到胁迫和要挟,第一时间向组织报告。</div></div>\n\n        <span style="color:rgba(255,255,255,0.25);font-size:14px;">林晓以间谍罪被判刑,人生彻底毁灭。</span>',
        options:[]
    };

    // ----- 成功结局 -----
    SCENES.success = {
        id:'success',
        type:'success',
        title:'🏆 成功之路 · 保密卫士',
        text:'你通过了全部13个支线的考验!在每一个选择面前,你都严守保密规定——\n\n        · 发现微信群里有涉密文件立即提醒撤回并报告\n        · 不使用任何外部工具处理涉密信息\n        · 不将涉密设备带出办公区\n        · 涉密文件及时锁进保密柜\n        · 不向任何人(包括网友、同学、亲友)透露工作内容\n        · 不接受任何可疑的"咨询""合作"邀请\n        · 发现涉密材料失控立即追回并报告\n        · 离岗时按规定清退所有涉密载体\n        · 脱密期内严格遵守各项规定\n        · 发现可疑情况立即拨打12336举报\n\n        <div class="ending-banner good">✅ 恭喜!你成为一名合格的保密卫士!</div>\n\n        <span class="quote">"保密不是束缚,而是保护——<span class="highlight">保护国家安全,也保护我们自己</span>。保密责任不要忘,保密学习不能停,保密义务\'不下班\'。发现涉嫌泄露国家秘密线索或保密违法违规行为,及时拨打 <span class="danger">12336</span> 向国家安全机关举报。"</span>\n\n        <div class="knowledge-tip"><div class="tip-title">📘 保密常识 · 总结</div><div class="tip-text"><strong>✅ 涉密文件处理"三不准"</strong>:不准拍照、不准外传、不准用非涉密设备处理<br /><strong>✅ 涉密设备管理"两严禁"</strong>:严禁带出办公区、严禁连接互联网<br /><strong>✅ 对外交往"两警惕"</strong>:警惕陌生人打听、警惕高薪诱惑<br /><strong>✅ 发现泄密"两步骤"</strong>:立即制止 + 及时报告(12336)<br /><strong>✅ 离岗脱密"两必须"</strong>:必须清退载体、必须遵守脱密期</div></div>\n\n        <div style="text-align:center;margin-top:20px;color:rgba(255,255,255,0.3);font-size:14px;">—— 一年后,你因为保密意识强、工作表现突出,被评为了 "保密工作先进个人" 。<br />陈科长欣慰地说:"<span class="highlight">你是我见过保密意识最强的新人!</span>"</div>',
        options:[]
    };

    // ================================================================
    //  游 戏 引 擎  —— 重新开始按钮已改为直接重置(无弹窗)
    // ================================================================

    var app = {
        currentNode: 'intro',
        score: 100,
        completedBranches: [],
        failed: false,
        gameOver: false
    };

    var storyArea = document.getElementById('storyArea');
    var scoreNumEl = document.getElementById('scoreNum');
    var branchNumEl = document.getElementById('branchNum');
    var progressNumEl = document.getElementById('progressNum');
    var progressBar = document.getElementById('progressBar');
    var restartBtn = document.getElementById('restartBtn');

    function render() {
        var node = SCENES[app.currentNode];
        if (!node) return;

        scoreNumEl.textContent = app.score;
        var completed = app.completedBranches.length;
        var total = BRANCH_ORDER.length;
        branchNumEl.textContent = completed + '/' + total;
        var pct = Math.round((completed / total) * 100);
        progressNumEl.textContent = pct + '%';

        renderProgress();

        var html = '<div class="fade-in">';

        if (node.title) {
            var tag = '';
            var scoreBadge = '';
            if (node.type === 'intro') tag = '序幕';
            else if (node.type === 'branch') tag = '支线 ' + (node.branchIndex + 1);
            else if (node.type === 'fail') tag = '⚠️ 失败结局';
            else if (node.type === 'success') tag = '🏆 成功结局';

            if (node.type === 'branch' && node.branchIndex !== undefined) {
                scoreBadge = '<span class="score-badge">+10 积分</span>';
            }

            html += '<div class="scene-title">' +
                '<span>' + node.title + '</span>' +
                '<span class="tag">' + tag + '</span>' +
                scoreBadge +
                '</div>';
        }

        html += '<div class="story-text">' + node.text + '</div>';

        if (node.options && node.options.length > 0) {
            html += '<div class="options">';
            for (var i = 0; i < node.options.length; i++) {
                var opt = node.options[i];
                html += '<button class="option-btn" data-next="' + opt.next + '">' +
                    '<span class="opt-label">' + (opt.label || '●') + '</span>' +
                    '<span class="opt-desc">' + opt.text + '</span>' +
                    '</button>';
            }
            html += '</div>';
        }

        html += '</div>';
        storyArea.innerHTML = html;

        var btns = document.querySelectorAll('.option-btn');
        for (var j = 0; j < btns.length; j++) {
            btns[j].addEventListener('click', function() {
                var nextId = this.getAttribute('data-next');
                if (nextId) handleChoice(nextId);
            });
        }

        storyArea.scrollIntoView({ behavior: 'smooth', block: 'start' });
    }

    function renderProgress() {
        var total = BRANCH_ORDER.length;
        var html = '';
        for (var i = 0; i < total; i++) {
            var cls = 'progress-dot';
            var branchId = BRANCH_ORDER[i];
            if (app.completedBranches.indexOf(branchId) !== -1) {
                cls += ' done';
            } else if (app.currentNode === branchId) {
                cls += ' current';
            } else if (app.failed && app.currentNode === ('fail' + (i + 1))) {
                cls += ' fail';
            }
            html += '<span class="' + cls + '"></span>';
        }
        progressBar.innerHTML = html;
    }

    function handleChoice(nextId) {
        var btns = document.querySelectorAll('.option-btn');
        for (var i = 0; i < btns.length; i++) btns[i].disabled = true;

        setTimeout(function() {
            var node = SCENES[nextId];
            if (!node) return;

            if (node.type === 'branch') {
                app.score = Math.min(app.score + 10, 200);
                var branchId = nextId;
                if (app.completedBranches.indexOf(branchId) === -1) {
                    app.completedBranches.push(branchId);
                }
                app.failed = false;
            }

            if (node.type === 'fail') {
                app.failed = true;
                app.gameOver = true;
                app.score = 0;
            }

            if (node.type === 'success') {
                app.gameOver = true;
                app.score = 230;
            }

            app.currentNode = nextId;
            render();
        }, 350);
    }

    // ★★★ 关键修改:重新开始按钮直接重置,不再弹确认框 ★★★
    function restartGame() {
        app.currentNode = 'intro';
        app.score = 100;
        app.completedBranches = [];
        app.failed = false;
        app.gameOver = false;
        render();
        window.scrollTo({ top: 0, behavior: 'smooth' });
    }

    restartBtn.addEventListener('click', function() {
        // 直接重置,不弹出任何对话框
        restartGame();
    });

    render();

    console.log('🔐 保密第一课 · 互动剧本 (修订版)');
    console.log('📖 共13条支线,全部选择正确可解锁"成功之路"结局');
    console.log('📊 每次正确选择+10分,错误选择进入失败结局');
    console.log('☎️ 举报电话:12336');
    console.log('👤 主角设定:林晓(中性角色)');
    console.log('✅ 选项已设计为具有迷惑性,请认真判断');
</script>
</body>
</html>

Game Source: 保密第一课 · 新入职人员保密教育互动剧本

Creator: SilverFlame10

Libraries: none

Complexity: complex (535 lines, 59.9 KB)

The full source code is displayed above on this page.

Remix Instructions

To remix this game, copy the source code above and modify it. Add a ARCADELAB header at the top with "remix_of: game-silverflame10" to link back to the original. Then publish at arcadelab.ai/publish.