:root{color-scheme:dark;--ink:#dfd8c8;--dim:#9b9c92;--red:#a94438;--line:#bcb69c35;--serif:'Songti SC','Noto Serif SC','SimSun',serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080b0c;color:var(--ink);font-family:var(--serif)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:1px solid var(--line);background:#0d1518bd}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #d4bf8b;outline-offset:5px}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}[hidden]{display:none!important}#game-frame{width:100%;height:100%;height:100dvh;position:relative;overflow:hidden;isolation:isolate}#scene-stage{position:absolute;inset:0;overflow:hidden;will-change:transform;transition:filter .45s}#scene-image,#sample-world{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}#sample-world{touch-action:none}body.light-off #scene-stage{filter:brightness(.48) saturate(.7)}.film-grain,.edge-shade,.window-sweep,#fear-shade{position:absolute;inset:0;pointer-events:none}.film-grain{z-index:3;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.edge-shade{z-index:2;background:radial-gradient(ellipse at 51% 42%,transparent 30%,#0003 70%,#0009 100%)}.window-sweep{z-index:1;opacity:.1;background:linear-gradient(108deg,transparent 20%,#a6c9d640 30%,transparent 42%);background-size:230% 100%;animation:passing 12s linear infinite;mix-blend-mode:screen}@keyframes passing{from{background-position:150% 0}to{background-position:-110% 0}}#fear-shade{z-index:4;opacity:0;background:radial-gradient(ellipse,transparent 35%,#6c070c99 100%);transition:opacity .3s}body.paused .window-sweep{animation-play-state:paused}.masthead{position:absolute;z-index:10;top:max(25px,env(safe-area-inset-top));left:3.8%;right:3.8%;display:flex;align-items:center;justify-content:space-between;gap:20px}.studio{display:flex;align-items:center;gap:14px;font:11px system-ui;letter-spacing:3px;text-shadow:0 2px 6px #000}.studio-seal{display:grid;place-items:center;border:1px solid #cec7a0a8;width:39px;height:44px;font:27px var(--serif)}.studio small{display:block;font-size:8px;letter-spacing:4.5px;margin-top:5px;color:#aaa}.top-controls{display:flex;gap:8px}.top-controls button{padding:9px 13px;border-color:#abb4ac30;font:11px system-ui;letter-spacing:1px;background:#090f12a6;backdrop-filter:blur(10px)}.boarding-screen{position:absolute;z-index:5;inset:0;background:linear-gradient(90deg,#020709ea 0,#04090bb0 27%,#04090b20 61%,#0001 100%)}.boarding-copy{position:absolute;left:8%;top:22%;max-width:580px}.eyebrow{font:11px system-ui;letter-spacing:4px;color:#c8bfa5;display:flex;gap:14px;align-items:center}.eyebrow i{width:34px;height:1px;background:var(--red)}h1{font-weight:900;font-size:clamp(64px,7.4vw,118px);letter-spacing:.11em;line-height:1.12;margin:21px 0 4px;text-shadow:0 4px 30px #000}h1 span{display:block}.english-title{font:10px system-ui;letter-spacing:9px;margin:19px 0 23px;color:#aaa99c}.red-line{width:46px;height:2px;background:var(--red)}.boarding-copy h2{font-size:18px;font-weight:500;letter-spacing:5px;margin:23px 0 17px}.intro{font-size:12px;line-height:2.2;color:#babcb3;letter-spacing:1px;margin-bottom:23px}.primary{width:245px;display:flex;align-items:center;justify-content:space-between;padding:16px 21px;font-size:14px;letter-spacing:4px;background:#ab3929;border:1px solid #cb6e46;box-shadow:0 5px 24px #0005;transition:background .2s,transform .2s}.primary:hover{background:#bf4b39;transform:translateY(-1px)}.primary b{font:24px system-ui;font-weight:300}.load-status{font:10px system-ui;color:#aaa;letter-spacing:1px;min-height:14px;margin:10px 0 0}.startup-retry{font-size:12px;padding:8px 14px;margin-top:8px}.boarding-notes{display:flex;gap:17px;font:9px system-ui;letter-spacing:1px;color:#9b9c94;margin-top:21px}.boarding-notes span+span:before{content:'·';margin-right:17px;color:#555}.boarding-ticket{position:absolute;right:7%;bottom:17%;width:205px;background:#17201baa;border:1px solid #bcb69c59;padding:24px 22px;transform:rotate(3deg);backdrop-filter:blur(9px);box-shadow:0 12px 50px #0006}.boarding-ticket small{font-size:8px;letter-spacing:1px;color:#b4b0a0}.boarding-ticket strong{display:block;font:75px var(--serif);line-height:1.6;letter-spacing:4px}.boarding-ticket strong span{font-size:13px}.boarding-ticket p{font-size:12px;letter-spacing:2px;border-top:1px dashed #bcbaab40;padding-top:16px}.barcode{height:29px;margin:20px 0 12px;background:repeating-linear-gradient(90deg,#bab6a1 0 1px,transparent 1px 3px,#bab6a1 3px 5px,transparent 5px 8px,#bab6a1 8px 9px,transparent 9px 13px);opacity:.5}.boarding-ticket>span{font-size:9px;letter-spacing:3px;color:#aaa}#boarding-footer{position:absolute;z-index:10;left:4%;right:4%;bottom:max(22px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;font:9px system-ui;letter-spacing:2px;color:#a2a394}#boarding-footer i{display:inline-block;background:#7d8d71;width:4px;height:4px;border-radius:50%;margin-right:9px;box-shadow:0 0 8px #8fbe79}#boarding-footer a{border-bottom:1px solid #aaaa8f55;padding-bottom:3px}.chapter{position:absolute;z-index:5;top:105px;left:4%;display:flex;gap:13px;align-items:center;text-shadow:0 2px 7px #000}.chapter>span{font:39px var(--serif);color:#b6aa88;border-right:1px solid #c8b88955;padding-right:13px}.chapter strong{font-size:15px;letter-spacing:4px;font-weight:500}.chapter small{display:block;color:#a1a39d;font:9px system-ui;letter-spacing:2px;margin-top:7px}.objective{position:absolute;z-index:5;left:4%;top:180px;max-width:260px;padding:12px 16px;border-left:1px solid #b3a57766;background:linear-gradient(90deg,#060c10b0,transparent);text-shadow:0 1px 4px #000}.objective small{font:8px system-ui;letter-spacing:3px;color:#b6a984}.objective p{font-size:12px;line-height:1.8;margin:8px 0 0;color:#dfded2}.view-nav{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:1px}.view-nav button{padding:11px 18px;font:11px system-ui;letter-spacing:2px;white-space:nowrap;background:#091216bf}.view-nav .selected{background:#a5987b33;border-color:#a5987b88}.inventory{position:absolute;z-index:6;bottom:27px;left:4%;display:flex;gap:9px}.inventory button{width:52px;height:61px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;background:#081014b8}.inventory button span{font:27px Georgia;color:#c9b993}.inventory small{font-size:8px;letter-spacing:2px}.inventory button:disabled{cursor:default;opacity:.26}.inventory button.found{border-color:#b8a57b99}.survival-controls{position:absolute;z-index:6;bottom:27px;right:4%;display:flex;gap:12px;align-items:end}.round-tool{border-radius:50%;width:65px;height:65px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#081014c4}.round-tool>span{font:22px system-ui;color:#c4cbb6}.round-tool small{font:8px system-ui;margin-top:4px}.round-tool kbd{font:8px system-ui;margin-left:3px;color:#aaa}.breath-button{height:51px;padding:0 18px;display:flex;justify-content:center;align-items:center;gap:10px;user-select:none;-webkit-user-select:none;touch-action:none;font-size:12px}.breath-button small{font:8px system-ui;color:#929c93}.breath-button.held{border-color:#cfb479;background:#8f784c50;box-shadow:0 0 30px #bd98532e}.gesture-hint{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);font:9px system-ui;letter-spacing:2px;white-space:nowrap;color:#a5aaa1;opacity:.8;text-shadow:0 2px 5px #000}.threat{position:absolute;top:115px;left:50%;transform:translateX(-50%);width:190px;z-index:6;text-align:center}.threat>span{font-size:11px;letter-spacing:4px;color:#d1b49c;text-shadow:0 2px 8px #000}.threat>div{height:2px;margin-top:12px;background:#c4b9a32d}.threat i{display:block;height:100%;width:0;background:#b2604f;transition:width .1s}#hotspots{position:absolute;inset:0;pointer-events:none;z-index:2}.hotspot{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;background:transparent;border:0;padding:18px;text-shadow:0 2px 5px #000;white-space:nowrap}.hotspot i{width:6px;height:6px;border:1px solid #d1c49a;transform:rotate(45deg);box-shadow:0 0 12px #e8cf84aa;background:#b8a26355}.hotspot span{font:10px system-ui;background:#091215aa;border:1px solid #c0b39240;padding:5px 8px;letter-spacing:2px}.hotspot:hover i{background:#e4d7a8}.hotspot:hover span{border-color:#d1c49a}#subtitle{position:absolute;z-index:11;left:50%;transform:translateX(-50%);bottom:132px;text-align:center;max-width:72%;pointer-events:none;text-shadow:0 2px 6px #000,0 0 20px #000}#speaker{font-size:10px;letter-spacing:5px;color:#bea77c}#line{font-size:clamp(14px,1.6vw,22px);letter-spacing:2px;line-height:1.8;margin:11px 0 0;padding:2px 15px;background:radial-gradient(ellipse,#0007,transparent 75%)}#toast{position:absolute;z-index:20;left:50%;top:23%;transform:translateX(-50%);background:#091215df;border:1px solid #ac987b45;padding:10px 20px;font:11px system-ui;letter-spacing:2px;opacity:0;transition:opacity .2s;pointer-events:none}.review-panel{position:absolute;z-index:15;right:4%;top:100px;width:265px;padding:22px;background:#081116dd;border:1px solid #b3b39a40;backdrop-filter:blur(16px);box-shadow:0 15px 70px #0005}.review-head{display:flex;justify-content:space-between;align-items:start}.review-head small{font:8px system-ui;letter-spacing:2px;color:#b4ae9a}.review-head h2{font-size:35px;font-weight:500;letter-spacing:6px;margin:12px 0}.review-head button{border:0;background:none;font:24px system-ui;color:#a9a99c}.review-panel>p{font-size:11px;color:#b7b7ab;line-height:2;letter-spacing:1px;margin:7px 0 20px}.review-views{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.review-views button{padding:10px 0;font-size:10px}.review-views .selected{background:#9f8b5a45;border-color:#c2b38a}.rotation-label{display:block;margin-top:20px;font:10px system-ui;letter-spacing:2px;color:#b5b5a9}.rotation-label input{width:100%;margin:14px 0 8px;accent-color:#ac9871;cursor:ew-resize}.review-panel details{border-top:1px solid #9c987433;margin-top:11px;padding-top:13px;font:9px system-ui;letter-spacing:1px;color:#9aa79c;line-height:1.8}.review-panel details p{white-space:pre-line;font-size:9px}.review-panel .review-note{font:9px system-ui;color:#8e988f;margin:15px 0 0}.modal{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:#02070bb8;backdrop-filter:blur(8px);padding:20px}.modal-card{width:min(470px,100%);max-height:90dvh;overflow:auto;padding:35px;background:#111a1b;border:1px solid #b4a98a66;box-shadow:0 25px 100px #0009;position:relative}.close{position:absolute;right:13px;top:10px;font:25px system-ui;background:none;border:0;color:#a8a99a}.modal-kicker{font:9px system-ui;letter-spacing:4px;color:#ad9e7d}.modal-card h2{font-size:27px;letter-spacing:5px;font-weight:500;margin:18px 0}.modal-card p{font-size:12px;line-height:2;color:#bcbfb5;letter-spacing:1px}.modal-card .primary{width:100%;margin-top:24px;font-size:12px}.paper-ticket{background:#c5b48f;color:#322e27;border:1px solid #e5cfa0;padding:24px;margin:22px 0;transform:rotate(-2deg);box-shadow:0 8px 30px #0005}.paper-ticket>small{font-size:8px;letter-spacing:2px}.paper-ticket h3{font-size:27px;letter-spacing:6px;margin:17px 0}.paper-ticket p{color:#40392f;font-size:11px}.paper-ticket .barcode{background:repeating-linear-gradient(90deg,#302e23 0 1px,transparent 1px 3px,#302e23 3px 5px,transparent 5px 8px)}.paper-ticket strong{font-size:21px;letter-spacing:5px}.ticket-warning{font-size:12px!important;line-height:2!important;color:#ac947c!important;border-left:1px solid #ad6758;padding-left:16px}.radio-face{margin:20px 0;padding:24px;border:1px solid #80766066;background:#0a1010}.radio-frequency{font:43px Georgia;color:#c7ab72;text-align:center;letter-spacing:5px;text-shadow:0 0 14px #a9874b33}.radio-frequency small{font:9px system-ui;letter-spacing:2px;color:#999}.radio-scale{height:24px;background:repeating-linear-gradient(90deg,transparent 0 8px,#ac9c6a60 8px 9px);border-bottom:1px solid #ac9c6a66;margin:14px 0}.radio-face input{width:100%;accent-color:#b3a06d}.radio-face label{font:9px system-ui;color:#a7a18e;letter-spacing:2px}.radio-message{min-height:42px;color:#b9aa87!important}.code-input{width:100%;padding:15px;background:#060b0d;border:1px solid #8f876e;color:#d9c79e;text-align:center;font:34px Georgia;letter-spacing:20px;margin-top:20px}.finish{position:absolute;inset:0;z-index:25;background:linear-gradient(90deg,#030809f5,#030809ad);display:grid;align-items:center;padding:10%}.finish h2{font-size:clamp(40px,6vw,75px);letter-spacing:10px;margin:25px 0;font-weight:500}.finish p:not(.eyebrow){font-size:13px;line-height:2.4;letter-spacing:2px;color:#bbbeb0}.finish>div>div{display:flex;gap:15px;margin-top:35px}.finish button:not(.primary){padding:12px 23px;font-size:12px;letter-spacing:2px}body.reviewing .boarding-screen,body.reviewing #play-hud,body.reviewing #boarding-footer,body.reviewing #subtitle{display:none}body.reviewing #scene-stage{filter:none}body.reviewing .masthead .studio{opacity:.65}body.playing .masthead .studio small{display:none}body.playing .studio{font-size:9px}body.playing .studio-seal{height:32px;width:29px;font-size:21px}body.playing .masthead{top:25px}
/* 竖屏保持画面裁切与三维投影一致；底部操作不依赖桌面键盘。 */
@media(max-width:760px){.masthead{top:max(17px,env(safe-area-inset-top));left:5%;right:5%}.studio{font-size:9px;letter-spacing:1.5px;gap:9px}.studio-seal{width:28px;height:33px;font-size:23px}.studio small{font-size:6px;letter-spacing:2.5px}.top-controls{gap:5px}.top-controls button{font-size:9px;padding:8px}.boarding-copy{top:22%;left:8%;max-width:85%}h1{font-size:clamp(68px,17vw,98px)}.english-title{font-size:8px;letter-spacing:6px}.boarding-copy h2{font-size:16px;letter-spacing:3px}.intro{font-size:11px;line-height:2.2}.boarding-ticket{display:none}.boarding-screen{background:linear-gradient(90deg,#020709d9,#04090b5e)}.boarding-notes{font-size:8px;gap:9px}.boarding-notes span+span:before{margin-right:9px}#boarding-footer{left:6%;right:6%;font-size:8px;letter-spacing:1px;gap:15px;flex-wrap:wrap}#boarding-footer>span:nth-child(2){display:none}.chapter{top:90px;left:5%}.chapter>span{font-size:32px}.chapter strong{font-size:13px}.objective{top:152px;left:5%;max-width:220px}.objective p{font-size:11px}.objective small{font-size:7px}.view-nav{bottom:110px}.view-nav button{padding:10px 17px;font-size:10px}.inventory{left:5%;bottom:max(24px,env(safe-area-inset-bottom))}.inventory button{height:53px;width:43px}.survival-controls{right:5%;gap:8px;bottom:max(24px,env(safe-area-inset-bottom))}.round-tool{width:56px;height:56px}.breath-button{height:47px;padding:0 11px;font-size:10px}.breath-button small{display:none}.gesture-hint{bottom:157px;font-size:8px;letter-spacing:1px}#subtitle{bottom:177px;max-width:90%;width:90%}#line{font-size:14px;letter-spacing:1px}#speaker{font-size:9px}.threat{top:100px;left:auto;right:5%;transform:none;width:110px}.threat>span{font-size:9px;letter-spacing:2px}.review-panel{top:auto;bottom:20px;right:5%;left:5%;width:auto;padding:15px 19px}.review-panel>p,.review-panel details,.review-note{display:none!important}.review-head h2{font-size:24px;margin:8px 0 13px}.review-head small{font-size:7px}.rotation-label{margin-top:12px}.rotation-label input{margin:9px 0 0}.review-views{gap:7px}.review-views button{padding:9px}.hotspot span{font-size:9px;padding:5px}.hotspot{gap:5px;padding:14px}.modal-card{padding:29px 23px}.modal-card h2{font-size:24px}.finish{padding:8%}.finish>div>div{flex-wrap:wrap}.finish .primary{width:220px}.finish p:not(.eyebrow){font-size:11px}.finish h2{font-size:41px}.boarding-copy .load-status{max-width:280px;line-height:1.7}}
@media(max-height:700px) and (min-width:760px){.boarding-copy{top:18%}h1{font-size:73px;line-height:1.05}.english-title{margin:12px 0 17px}.boarding-copy h2{margin:17px 0 10px}.intro{margin-bottom:15px;font-size:11px}.boarding-notes{margin-top:14px}.primary{padding:13px 19px}.chapter{top:85px}.objective{top:150px}.review-panel{top:80px;padding:17px}.review-panel>p{margin-bottom:12px}.rotation-label{margin-top:12px}}
@media(max-height:520px){.masthead{top:13px}.studio{font-size:8px}.studio-seal{width:27px;height:30px;font-size:20px}.boarding-copy{top:20%;left:7%}h1{font-size:53px;line-height:1;letter-spacing:.12em}h1 span{display:inline}.english-title{margin:10px 0 12px;font-size:7px}.eyebrow{font-size:8px;margin-top:0}.red-line{display:none}.boarding-copy h2{font-size:13px;margin:12px 0 7px}.intro{font-size:9px;line-height:1.8;margin:7px 0 12px}.primary{width:215px;padding:10px 15px;font-size:12px}.load-status{font-size:8px}.boarding-notes{margin-top:10px;font-size:7px}.boarding-ticket{width:150px;padding:15px;bottom:18%;right:9%}.boarding-ticket strong{font-size:45px}.boarding-ticket p{font-size:9px}.barcode{height:20px;margin:12px 0 7px}#boarding-footer{bottom:12px;font-size:7px}.chapter{top:65px}.chapter>span{font-size:28px}.chapter strong{font-size:12px}.objective{top:119px;padding:8px 12px;max-width:195px}.objective p{font-size:10px}.inventory,.survival-controls{bottom:17px}.view-nav{bottom:18px}.view-nav button{padding:9px 15px;font-size:9px}.gesture-hint{bottom:61px;font-size:8px}.inventory button{height:47px;width:40px}.round-tool{width:50px;height:50px}.breath-button{height:43px}.threat{top:73px}#subtitle{bottom:85px}#line{font-size:14px;margin-top:6px}.review-panel{top:68px;bottom:auto;right:4%;left:auto;width:220px;padding:15px}.review-panel>p{font-size:9px;line-height:1.8}.review-head h2{font-size:26px;margin:10px 0}.review-panel details,.review-panel .review-note{display:none}.rotation-label{margin-top:13px}.modal-card{max-height:92dvh;padding:23px 28px}.paper-ticket{padding:16px;margin:12px 0}.paper-ticket h3{margin:8px 0;font-size:21px}.modal-card h2{font-size:22px;margin:11px 0}.modal-card p{font-size:11px}.radio-face{margin:12px 0;padding:16px}.radio-frequency{font-size:30px}.finish h2{font-size:40px;margin:15px 0}.finish p:not(.eyebrow){font-size:11px}.finish>div>div{margin-top:20px}}
/* 普通笔记本高度下收紧标题，避免加载提示和底栏重叠。 */
@media(min-width:761px) and (min-height:521px) and (max-height:850px){.boarding-copy{top:18%}h1{font-size:clamp(66px,6.3vw,92px);line-height:1.05;margin-top:17px}.english-title{margin:13px 0 18px}.boarding-copy h2{margin:17px 0 13px}.intro{font-size:11px;margin-bottom:17px}.boarding-notes{margin-top:15px}.primary{padding:13px 19px}}
@media(max-width:760px) and (min-height:521px){.review-panel{top:88px;bottom:auto}}
@media(prefers-reduced-motion:reduce){.window-sweep{animation:none}.primary{transition:none}}
