:root{--ink:#213d3d;--muted:#778681;--green:#2c6c59;--mint:#d9eadf;--paper:#f5f4ed;--orange:#ee9e5b;--line:#dcded3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d78d47;outline-offset:4px}button:disabled{cursor:default}.app{max-width:1536px;padding:0 48px;margin:auto}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px;letter-spacing:1px}.brand-cat{background:var(--ink);color:var(--paper);border-radius:12px;width:43px;height:43px;display:grid;place-items:center;font-size:33px;padding-bottom:8px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;font-weight:500}.edition{font-size:11px;display:flex;align-items:center;gap:9px;color:#64736d}.edition i,.map-caption i{width:6px;height:6px;border-radius:50%;background:#5a8e65;display:inline-block}.edition>span{margin-left:14px;border-left:1px solid #cdd2c5;padding-left:20px;font-size:10px;letter-spacing:2px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:25px;padding:8px 13px;font-size:20px;color:var(--ink);display:flex;align-items:center;gap:8px}.icon-button span{font-size:11px}.heading{display:flex;justify-content:space-between;align-items:center;padding:38px 0 30px}.eyebrow{font-size:11px;color:#718176;letter-spacing:3px;margin-bottom:12px}h1{font-size:clamp(32px,3.4vw,50px);margin:0;letter-spacing:1px;line-height:1.25;font-weight:900}h1 span{margin-left:6px}h1 b{color:#dc8957} .heading p{font-size:13px;color:#7a857d;letter-spacing:1px;margin:13px 0 0}.clock-stamp{display:flex;flex-direction:column;align-items:center;transform:rotate(4deg);border:1px solid #cbd4c4;outline:1px solid #cbd4c4;outline-offset:5px;border-radius:10px;padding:10px 22px;color:#62745d;margin-right:8px;background:#edf0e4}.clock-stamp small{font-size:10px}.clock-stamp strong{font-size:34px;line-height:1.3;font-family:monospace}.clock-stamp span{font-size:9px;letter-spacing:3px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.game-shell{background:#203b39;border:6px solid #203b39;border-radius:16px;overflow:hidden;box-shadow:0 12px 25px #203b3914}.game-toolbar{height:55px;display:flex;justify-content:space-between;align-items:center;padding:0 15px 5px;color:#f1f2e6}.level-name{display:flex;gap:13px;align-items:center}.level-name>span{color:#a3c5b0;font-size:10px;letter-spacing:1px;background:#ffffff10;padding:5px 8px;border-radius:5px}.level-name strong{font-size:13px;letter-spacing:1px}.game-actions{display:flex;align-items:center;gap:9px}.time{display:flex;gap:5px;align-items:baseline;margin-right:12px}.time i{width:10px;height:10px;border:1px solid #bfcab7;border-radius:50%;align-self:center;position:relative}.time i:after{content:"";position:absolute;left:4px;top:2px;height:3px;width:2px;border-left:1px solid #bfcab7;border-bottom:1px solid #bfcab7}.time b{font-family:monospace;font-size:24px;font-weight:500}.time small{font-size:11px;color:#b4c3b7}.time.urgent{color:#ffba91}.tool-button{border:1px solid #ffffff2a;background:#ffffff09;border-radius:6px;color:#cedacf;width:29px;height:29px;font-size:18px}.tool-button:hover{background:#ffffff20}.stage{position:relative;aspect-ratio:3/2;background:#e9e7d9;border-radius:7px;overflow:hidden;touch-action:none}canvas{display:block;width:100%;height:100%;outline:none;cursor:crosshair;touch-action:none}.map-caption{position:absolute;top:12px;left:17px;right:17px;display:flex;justify-content:space-between;font-size:9px;color:#7d8b79;pointer-events:none;letter-spacing:1px}.map-caption>span:first-child{display:flex;gap:6px;align-items:center}.map-caption>span:last-child{font-family:monospace}.notice{position:absolute;bottom:25px;left:50%;transform:translate(-50%,10px);font-size:12px;color:#fff9e9;background:#244c42ed;border:1px solid #d3e2c850;padding:10px 20px;border-radius:28px;pointer-events:none;opacity:0;transition:.2s;white-space:nowrap;max-width:95%}.notice.show{opacity:1;transform:translate(-50%,0)}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#17362e69;backdrop-filter:blur(3px);padding:18px}.overlay[hidden]{display:none}.intro-card{position:relative;width:390px;max-width:100%;background:#fcfbf3;border-radius:19px;border:1px solid #fffbed;text-align:center;padding:25px 30px 21px;box-shadow:0 15px 50px #183b3950}.intro-tag{font-size:10px;font-weight:600;letter-spacing:2px;color:#638373;background:#e9efe3;padding:6px 12px;border-radius:20px}.hero-cat{position:relative;height:124px;width:150px;margin:15px auto 0}.cat-face{position:absolute;top:34px;left:33px;width:79px;height:62px;background:#e5b073;border:3px solid #644f3b;border-radius:35% 35% 40% 40%;z-index:1}.cat-face i{position:absolute;width:6px;height:8px;background:#3e493c;border-radius:4px;top:24px;left:19px}.cat-face i+i{left:48px}.cat-face b{position:absolute;top:30px;left:29px;font-size:19px;font-weight:500}.cat-face em{position:absolute;background:#c28156;width:12px;height:3px;top:34px;left:7px;box-shadow:43px 0 #c28156;border-radius:20px}.cat-ears:before,.cat-ears:after{content:"";position:absolute;top:20px;left:34px;width:29px;height:34px;background:#e5b073;border:3px solid #644f3b;border-radius:6px 80% 0 0;transform:rotate(7deg)}.cat-ears:after{left:81px;transform:scaleX(-1) rotate(7deg)}.cat-tie{position:absolute;top:85px;left:45px;width:54px;height:34px;border:3px solid #644f3b;border-radius:12px;background:#a7c4b1}.cat-tie:after{content:"";position:absolute;top:3px;left:19px;height:20px;width:7px;background:#416953;clip-path:polygon(0 0,100% 0,70% 30%,100% 85%,50% 100%,0 85%,30% 30%)}.cat-bag{position:absolute;top:82px;left:94px;color:#d79c39;font-size:33px;z-index:2;transform:rotate(-18deg)}.sleepy{position:absolute;top:12px;right:-7px;font-size:12px;font-family:monospace;color:#527e64;transform:rotate(12deg);font-weight:bold}.intro-card h2{font-size:25px;margin:5px 0 10px;letter-spacing:-.5px}.intro-card p{font-size:12px;color:#7d8575;line-height:1.9;margin:0 0 15px}.intro-rules{border-top:1px solid #e3e7d8;border-bottom:1px solid #e3e7d8;padding:11px 0;display:flex;justify-content:space-between;gap:4px;font-size:9px;color:#596e5d;margin-bottom:20px}.intro-rules b{display:block;color:#a7b294;font:12px monospace;margin-bottom:5px}.primary-button{border:0;background:#2d6550;color:#fffbee;border-radius:9px;display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 19px;font-size:15px;font-weight:bold;box-shadow:0 4px 0 #1d483c;transition:.15s}.primary-button:hover{background:#367b60;transform:translateY(-1px)}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 #1d483c}.primary-button span{font-size:22px;font-weight:400}.intro-foot{display:block;margin-top:15px;color:#9a9e8f;font-size:9px;letter-spacing:.3px}.secondary-button{border:0;background:transparent;color:#728476;font-size:12px;margin:13px auto 0;text-decoration:underline;text-underline-offset:4px}.secondary-button[hidden]{display:none}.result-detail{font:13px monospace;color:#58735c;background:#e9eee2;padding:12px;border-radius:8px;margin:15px 0}.result-detail[hidden]{display:none}.game-bottom{height:43px;display:flex;justify-content:space-between;align-items:center;padding:4px 13px 0;gap:10px}.suspicion{display:flex;align-items:center;gap:10px;color:#b7c8ba;font-size:10px}.meter{width:120px;height:5px;background:#ffffff14;border-radius:8px;overflow:hidden}.meter i{height:100%;width:0;display:block;background:#e6ab60;transition:width .1s}.suspicion b{font:10px monospace;color:#d2d9c7;width:30px}.boss-state{color:#b9cfac;font-size:10px}.sidebar{display:flex;flex-direction:column;gap:18px}.mission-panel{background:#e8eddf;border-radius:12px;padding:22px 22px 18px;border:1px solid #dde3d2}.panel-kicker{font-size:9px;letter-spacing:2px;display:flex;justify-content:space-between;color:#73906d}.panel-kicker>span{font-size:18px;line-height:9px}.mission-panel h2{font-size:19px;margin:14px 0 10px}.mission-panel>p{font-size:11px;line-height:1.8;color:#829078;margin:0 0 18px}.objectives{padding:0;list-style:none;margin:0}.objectives li{display:flex;align-items:center;gap:11px;border-top:1px solid #d7dfce;padding:13px 0;font-size:12px;color:#667f65}.objectives li>i{width:25px;height:25px;border:1px solid #c6d2bc;border-radius:50%;display:grid;place-items:center;font:10px monospace;font-style:normal;color:#91a384;flex-shrink:0}.objectives li.done>i{background:#49785d;color:#f2f6e8;border-color:#49785d}.objectives li.done>span{color:#94a38a;text-decoration:line-through}.boss-quote{border-top:1px dashed #c9d3bf;padding-top:17px;margin-top:6px}.boss-quote span{font-size:11px;color:#6f8167}.boss-quote small{display:block;font-size:9px;text-align:right;color:#9ca890;margin-top:8px}.controls-panel{border:1px solid var(--line);border-radius:12px;padding:18px 21px}.controls-panel h3{margin:0 0 18px;font-size:13px;display:flex;justify-content:space-between;align-items:center}.controls-panel h3 span{font:8px monospace;color:#a1a797;letter-spacing:1px}.control-row{display:flex;align-items:center;gap:14px;margin:16px 0}.control-row p{font-size:11px;margin:0;color:#546d61;line-height:1.5}.control-row p small{display:block;font-size:9px;color:#9a9f8e;margin-top:4px}kbd{font-family:monospace;font-size:10px;background:#fcfcf4;color:#6b8070;border:1px solid #d4d9c8;border-bottom-width:3px;border-radius:4px;display:inline-grid;width:19px;height:20px;place-items:center}.keys{min-width:61px;text-align:center}.keys>div{display:flex;gap:2px;margin-top:2px}.space-key{width:61px;height:27px;font-size:9px}.mouse-icon{font-size:26px;width:61px;text-align:center}.legend{display:flex;justify-content:space-between;gap:5px;padding-top:16px;border-top:1px solid #e0e3d5;font-size:9px;color:#86937f}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:2px}.legend-orange{background:#e1a166}.legend-blue{background:#89adb6}.legend-green{background:#73a57c}.hide-button{display:none;width:100%;border:1px solid #ccd8c2;background:#e5eddd;color:#3e6655;border-radius:7px;padding:10px;margin-top:15px;user-select:none;touch-action:none}.hide-button span{font:9px monospace;margin-left:10px}.chapters{padding:25px 0 0}.chapter-heading{display:flex;align-items:center;gap:14px;margin-bottom:13px}.chapter-heading>span{font-size:12px;font-weight:bold}.chapter-heading small{font-size:10px;color:#9b9f90}.chapter-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.chapter{display:flex;align-items:center;gap:13px;text-align:left;background:transparent;border:1px solid var(--line);border-radius:10px;padding:16px 17px;color:var(--ink);min-width:0}.chapter.active{border-color:#90ab8c;background:#e7eddd}.chapter:disabled{opacity:.48}.chapter-number{font:27px monospace;font-weight:300;color:#a6b69b}.chapter b{font-size:12px;display:block}.chapter small{font-size:9px;color:#8a9682;display:block;margin-top:7px;line-height:1.5}.chapter-state{font-size:9px;color:#7a9070;margin-left:auto;white-space:nowrap}footer{display:flex;justify-content:space-between;gap:15px;padding:26px 0;font-size:10px;color:#a2a493;letter-spacing:.5px} @media(min-width:1450px){.game-layout{grid-template-columns:minmax(0,1fr) 310px}.mission-panel{padding:26px}.controls-panel{padding:23px}.control-row{margin:22px 0}.heading{padding-top:45px}}@media(max-width:1100px){.app{padding:0 25px}.game-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.mission-panel,.controls-panel{padding:17px}.intro-card{transform:scale(.9)}.sidebar{gap:12px}.controls-panel .control-row{margin:13px 0}.control-row{gap:9px}.chapter-state{display:none}.heading{padding:25px 0}.topbar{height:75px}}@media(max-width:800px){.app{padding:0 14px}.topbar{height:66px}.brand{font-size:14px}.brand small{font-size:8px}.brand-cat{width:35px;height:35px}.edition{font-size:9px}.edition>span{display:none}.heading{padding:25px 3px 20px}.eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:34px}.heading p{font-size:10px;letter-spacing:0}.clock-stamp{padding:8px 13px}.clock-stamp strong{font-size:25px}.clock-stamp span{font-size:7px}.clock-stamp small{font-size:8px}.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.intro-card{transform:none;padding:18px 22px;width:340px}.hero-cat{height:105px;margin:5px auto}.cat-tie{top:77px}.intro-card h2{font-size:21px}.intro-card p{font-size:11px;margin-bottom:12px}.intro-rules{margin-bottom:14px;padding:8px 0}.intro-foot{font-size:8px;margin-top:12px}.controls-panel .control-row{margin:13px 0}.hide-button{display:block}.chapter-list{gap:8px}.chapter{padding:12px 10px;gap:7px}.chapter-number{font-size:20px}.chapter b{font-size:10px}.chapter small{font-size:8px}.game-toolbar{height:47px;padding:0 8px 4px}.level-name{gap:7px}.level-name strong{font-size:11px}.level-name>span{font-size:8px;padding:4px}.map-caption{font-size:7px;left:10px;right:10px;top:9px}.time{margin-right:2px}.time b{font-size:20px}.tool-button{width:25px;height:25px}.game-bottom{padding-left:7px;padding-right:7px}.suspicion{font-size:9px;gap:7px}.meter{width:85px}.boss-state{font-size:9px}.mission-panel h2{font-size:17px}.mission-panel>p{font-size:10px}.objectives li{font-size:10px;gap:8px;padding:10px 0}.objectives li>i{width:22px;height:22px}.boss-quote span{font-size:9px}.controls-panel{padding:15px}.controls-panel h3{font-size:12px}.control-row p{font-size:10px}.control-row p small{font-size:8px}.legend{font-size:8px}.keys{min-width:54px}.space-key,.mouse-icon{width:54px}.chapter-heading{margin-bottom:10px}footer{font-size:8px;padding:20px 0}}@media(max-width:450px){.intro-card{padding:13px 20px;width:300px;max-height:100%;overflow:auto}.intro-tag{font-size:8px}.hero-cat{display:none}.intro-card h2{font-size:20px;margin-top:15px}.intro-card p{font-size:10px;line-height:1.6}.intro-rules{font-size:8px}.intro-rules b{display:none}.primary-button{padding:10px 15px;font-size:13px}.intro-foot{margin-top:10px}.sidebar{grid-template-columns:1fr}.controls-panel .control-row{display:inline-flex;width:48%;vertical-align:middle}.controls-panel .control-row:nth-of-type(3){display:none}.controls-panel h3{margin-bottom:5px}.legend{margin-top:5px}.clock-stamp{display:none}.stage{aspect-ratio:3/2}.chapter small{display:none}.chapter b{line-height:1.5;font-size:10px}.chapter-number{font-size:17px}.time small{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* 保证矮屏电脑在开始游戏后能完整看到地图与状态条。 */
@media(min-width:801px){.app{max-width:min(1536px,calc((100dvh - 145px)*1.5 + 400px))}.game-shell{scroll-margin-top:12px}}
@media(min-width:801px) and (max-height:720px){.intro-card{transform:scale(.75)}.controls-panel .control-row{margin:11px 0}.sidebar{gap:12px}}
[hidden]{display:none!important}

/* 沿用原网站备案信息，独立一行保留在首页底部。 */
footer{flex-wrap:wrap}footer .icp{flex-basis:100%;text-align:center;color:#7d8576;text-decoration:none;line-height:1.8;margin-top:5px}footer .icp:hover{text-decoration:underline;text-underline-offset:3px}

/* 键鼠和触屏都能操作躲藏、冲刺，避免手机缺少键盘导致无法完成关卡。 */
.touch-actions{display:flex;gap:8px;margin-top:16px}.touch-actions button{display:block;flex:1;width:auto;margin:0;white-space:nowrap;font-size:10px;padding:10px 5px;user-select:none;touch-action:none}.touch-actions button span{font:8px monospace;margin-left:4px}.sprint-button{border:1px solid #dcc8a6;background:#f1e6d3;color:#886d47;border-radius:7px}.touch-actions button.pressed{background:#3d705a;color:#fffbee;transform:translateY(1px)}.stamina-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:8px;color:#91a087;margin-top:12px}.stamina-meter{height:4px;flex:1;min-width:40px;background:#dee5d5;border-radius:5px;overflow:hidden}.stamina-meter i{height:100%;width:100%;background:#7da986;display:block}.stamina-line small{flex-basis:100%;font-size:8px}.boss-state{max-width:52%;text-align:right}.game-shell canvas{outline:none}.game-bottom{height:48px}@media(min-width:801px) and (max-height:720px){.controls-panel .control-row{margin:7px 0}.controls-panel{padding:13px 17px}.controls-panel h3{margin-bottom:9px}.legend{padding-top:10px}.touch-actions{margin-top:10px}}

/* 窄屏优先保证开始按钮完整可见；游玩时将触屏动作留在屏幕底部。 */
.overlay{grid-template-rows:minmax(0,1fr)}
@media(max-width:450px){
 .intro-card{max-height:100%;padding:12px 15px}.intro-tag,.intro-foot,.intro-rules{display:none}.intro-card h2{font-size:18px;margin:2px 0 9px}.intro-card p{font-size:10px;line-height:1.6;margin-bottom:11px}.intro-card .result-detail{font-size:10px;padding:7px;margin:8px 0}.secondary-button{margin-top:10px;font-size:10px}.primary-button{padding:9px 13px}
 body[data-game-mode="playing"] .touch-actions{position:fixed;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));z-index:20;padding:9px;background:#f9faf0f5;box-shadow:0 3px 25px #163b3925;border:1px solid #d0dbc4;border-radius:12px;margin:0}
 body[data-game-mode="playing"] .touch-actions button{padding:14px 8px;font-size:12px}
 body[data-game-mode="playing"]{padding-bottom:80px}
}

.notice{white-space:normal;text-align:center;line-height:1.5;width:max-content;max-width:90%}

/* 新章节自适应换行，机关倒计时独立显示，不挤压地图。 */
.chapter-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.security-status{padding:10px 12px;margin:12px 0;background:#dbe9e5;border:1px solid #b8ceca;border-radius:8px;color:#3a6d6b;font-size:11px;line-height:1.6;font-weight:600}
@media(max-width:800px){.chapter-list{grid-template-columns:repeat(2,minmax(0,1fr))}.security-status{font-size:10px}}

/* 控制台的操作进度独立展示，长任务清单保持紧凑，触屏仍使用原来的按住按钮。 */
.device-status{padding:10px 12px;margin:10px 0;background:#e3dfee;border:1px solid #c9c0dc;border-radius:8px;color:#65547f;font-size:11px;line-height:1.6}.operation-meter{padding:10px 12px;background:#daeae8;border:1px solid #b1cfca;border-radius:8px;margin:10px 0;color:#376d68}.operation-meter>span{display:block;font-size:11px;margin-bottom:8px}.operation-meter>div{height:7px;background:#bacec5;border-radius:5px;overflow:hidden}.operation-meter i{display:block;height:100%;background:#408e88;width:0}.mission-panel:has(.objectives li:nth-child(8)) .objectives li{padding:8px 0;font-size:11px}.mission-panel:has(.objectives li:nth-child(8)) .objectives li>i{width:21px;height:21px}.mission-panel:has(.objectives li:nth-child(8)){padding:19px}
@media(max-width:450px){.device-status{font-size:10px}.touch-actions #hide-button{font-size:11px}.touch-actions #hide-button span{margin-left:2px;font-size:7px}.operation-meter>span{font-size:10px}}
