:root{color-scheme:dark;--red:#bd493f;--paper:#ddd8c7;--muted:#939c99;--border:#ffffff20}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#060b0c;color:var(--paper);font-family:"PingFang SC","Microsoft YaHei",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none}button:focus-visible{outline:2px solid #d1b98c;outline-offset:5px}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 53% 45%,transparent 28%,#0004 75%,#000a 100%);z-index:2}.grain{position:fixed;inset:-50%;z-index:3;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .3s steps(3) infinite}@keyframes grain{0%{transform:translate(0,0)}50%{transform:translate(-2%,2%)}100%{transform:translate(2%,-2%)}}.screen{position:fixed;inset:0;z-index:10}.menu-art{position:absolute;inset:0;background:url('assets/concept.png') 80% 51%/auto 160% no-repeat;filter:saturate(.6) brightness(.75);animation:drift 18s ease-in-out infinite alternate}.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,#070d0f 0%,#070d0ff0 22%,#070d0f70 51%,#070d0f10 75%),linear-gradient(0deg,#070d0f 0%,transparent 27%,transparent 80%,#070d0ff0)}@keyframes drift{to{transform:scale(1.035) translateX(-8px)}}.menu-top{position:absolute;top:36px;left:4.4%;right:4.4%;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px}.brand{color:#a7afaa;text-decoration:none;display:flex;align-items:center;gap:11px}.brand-mark{border:1px solid #a5a58b;font-family:serif;font-size:19px;width:32px;height:34px;text-align:center;line-height:31px;color:#ccc4aa}.brand i{font-style:normal;color:#586361;margin:0 8px}.build{color:#9da6a0;font-size:10px}.build b{margin-left:13px;color:#b4b6a8;font-weight:400}.menu-copy{position:absolute;left:9%;top:48%;transform:translateY(-50%);max-width:650px}.eyebrow{font-size:11px;letter-spacing:4px;color:#a8aba0;display:flex;gap:12px;align-items:center}.eyebrow>span{display:block;width:25px;height:1px;background:#b05548}h1{font-family:"Songti SC","Noto Serif SC",SimSun,serif;font-weight:900;font-size:clamp(64px,7.9vw,125px);letter-spacing:.11em;line-height:1.2;margin:26px 0 8px;text-shadow:3px 0 #b7312620,-1px 2px #8ca7a720}h1 span{color:#c8c9bb}.title-en{letter-spacing:11px;color:#82928e;font-size:11px}.red-rule{width:42px;height:2px;background:#ab4035;margin:35px 0 22px}.menu-copy h2{font-family:serif;font-size:17px;letter-spacing:5px;font-weight:400}.menu-copy p{font-size:12px;line-height:2.4;color:#96a29e;letter-spacing:1px;margin:17px 0 30px}.menu-copy em{font-style:normal;color:#c1bcb0}.boarding{display:flex;gap:12px}.primary{background:#b7b5a2;color:#101916;padding:18px 25px;min-width:220px;display:flex;justify-content:space-between;align-items:center;font-size:13px;letter-spacing:4px;transition:background .25s,transform .25s}.primary:hover{background:#e1dcc5;transform:translateY(-2px)}.arrow{font-size:22px;letter-spacing:0}.secondary{padding:14px 22px;border:1px solid #c5c6b03b;letter-spacing:2px;font-size:12px}.secondary span{margin-left:25px}.menu-meta{margin-top:21px;display:flex;align-items:center;gap:22px;color:#77847f;font-size:10px;letter-spacing:1px}.menu-meta span+span{border-left:1px solid #4e5c5250;padding-left:22px}.headphone{font-size:17px;font-style:normal;margin-right:5px}.menu-bottom{position:absolute;bottom:30px;left:4.4%;right:4.4%;border-top:1px solid #aab7a021;padding-top:20px;display:flex;justify-content:space-between;font-size:10px;color:#72817b;letter-spacing:1px}.menu-bottom>span:first-child{display:flex;align-items:center;gap:10px}.menu-bottom i,.status-strip i{width:5px;height:5px;background:#89a28a;border-radius:100%;display:inline-block;box-shadow:0 0 10px #87aa7a70}.menu-bottom button{font-size:10px;color:#a8b3a6}.menu-bottom button span{margin-left:24px}.ticket-art{position:absolute;bottom:18%;right:8%;width:280px;padding:20px 23px;background:#c5bea0;color:#272f2b;transform:rotate(-8deg);box-shadow:0 15px 55px #0009;opacity:.84;clip-path:polygon(0 0,100% 0,100% 35%,97% 39%,100% 43%,100% 100%,0 100%,0 43%,3% 39%,0 35%)}.ticket-top{font-size:9px;border-bottom:1px dashed #343a3060;padding-bottom:13px;display:flex;justify-content:space-between}.ticket-top span{font-size:8px;letter-spacing:1px}.ticket-route{font-family:serif;font-size:26px;display:flex;justify-content:space-between;align-items:center;margin:19px 0}.ticket-route span{font-size:17px}.ticket-person{font-size:10px;display:flex;justify-content:space-between}.ticket-person b{font-weight:400}.barcode{height:27px;opacity:.65;background:repeating-linear-gradient(90deg,#263127 0 2px,transparent 2px 4px,#263127 4px 5px,transparent 5px 8px,#263127 8px 11px,transparent 11px 13px);margin-top:19px}.ticket-foot{font-size:8px;letter-spacing:1px;margin-top:8px}.side-index{position:absolute;right:2.5%;top:40%;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:#8b9a9255}.side-index span{margin-top:30px}#hud{position:fixed;inset:0;z-index:5;pointer-events:none}#hud button{pointer-events:auto}.hud-top{position:absolute;left:35px;right:35px;top:max(27px,env(safe-area-inset-top));display:flex;justify-content:space-between}.location .chapter{font-size:9px;letter-spacing:3px;color:#a0a895}.location strong{display:flex;align-items:center;gap:12px;margin:8px 0}.location strong>span:first-child{font-size:28px;font-weight:300;letter-spacing:2px}.location strong>span+span{font-family:serif;font-size:16px;font-weight:400;letter-spacing:3px}.location small{font-size:10px;color:#8d9c92;letter-spacing:2px}.hud-tools{display:flex;gap:8px}.hud-tools button{border:1px solid var(--border);width:37px;height:37px;background:#0b15175c;font-size:17px}.objective{position:absolute;top:30px;left:50%;transform:translateX(-50%);text-align:center;width:50%}.objective>span{font-size:9px;letter-spacing:3px;color:#a18a71}.objective p{font-size:12px;letter-spacing:2px;margin:9px 0;color:#d1cfb7}.status-strip{position:absolute;left:35px;right:35px;top:130px;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;color:#97a190}.status-strip i{margin-right:8px}.battery{display:flex;align-items:center;gap:8px}.battery>span{font-size:9px}.battery b{width:40px;height:8px;background:linear-gradient(90deg,#b9c4ad var(--charge,100%),#ffffff16 var(--charge,100%));outline:1px solid #d4d9bf50;outline-offset:2px}.battery small{font-size:10px;letter-spacing:0;width:30px}.crosshair{position:absolute;top:50%;left:50%;width:3px;height:3px;background:#f2ebbe60;border-radius:50%;box-shadow:0 0 4px #fff4}#hotspot{position:absolute;display:flex;align-items:center;gap:9px;color:#e2ddbf;white-space:nowrap;text-shadow:0 2px 5px #000;transform:translate(-50%,-100%);font-size:11px;letter-spacing:2px;background:#081416b3;padding:10px 14px;border:1px solid #d4d6bc4a}.hotspot-dot{width:9px;height:9px;border:1px solid #d9cead;transform:rotate(45deg);animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.3}}#subtitle{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);text-align:center;width:min(80%,650px);background:linear-gradient(90deg,transparent,#020607bd,transparent);padding:17px 25px}#speaker{font-size:10px;color:#a58d6e;letter-spacing:4px}#line{font-size:15px;letter-spacing:2px;line-height:1.9;margin:10px 0 0;text-shadow:0 1px 3px black}#toast{position:absolute;top:23%;left:50%;transform:translateX(-50%) translateY(-10px);opacity:0;transition:.3s;font-size:12px;letter-spacing:2px;padding:14px 23px;border-left:2px solid #b4af8b;background:#0a1316d9;text-align:center;max-width:85%;width:max-content}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}#chapter-card{position:absolute;left:50%;top:40%;width:90%;transform:translate(-50%,-50%);text-align:center;opacity:0;transition:opacity 1s;text-shadow:0 3px 18px black}#chapter-card.visible{opacity:1}#chapter-card small{display:block;font-size:9px;letter-spacing:8px;color:#b1b8a5}#chapter-card strong{display:block;font-family:serif;font-weight:400;font-size:36px;letter-spacing:10px;margin:18px 0}#chapter-card>span{font-size:11px;letter-spacing:4px;color:#a9b4a3}.hud-bottom{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:35px;right:35px;display:flex;align-items:end;justify-content:space-between}.inventory{display:flex;gap:7px;pointer-events:auto}.inventory>button,.inventory-slot{position:relative;border:1px solid #9ea78d35;width:54px;height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#08101290}.inventory>button>span,.inventory-slot>span{font-size:22px;color:#a8ae99}.inventory small{font-size:8px;letter-spacing:1px}.inventory-slot{opacity:.35}.inventory-slot.owned{opacity:1;border-color:#cfc6a377}.inventory i{position:absolute;right:4px;top:3px;background:#96805c;color:white;font-size:8px;font-style:normal;padding:1px 3px}.desktop-hint{font-size:9px;letter-spacing:1px;color:#c6cbb267;margin-bottom:7px}.tool-button{display:flex;flex-direction:column;gap:6px;align-items:center;border:1px solid #a0ad9340;background:#071215a1;width:57px;height:61px;justify-content:center}.tool-button>span{font-size:23px;color:#d1d4b4}.tool-button small{font-size:8px}kbd{font-family:inherit;font-size:8px;border:1px solid #89977b60;padding:1px 3px;margin-left:3px;color:#b5bca5}#joystick{position:absolute;bottom:130px;left:45px;width:120px;height:120px;pointer-events:auto;touch-action:none;user-select:none}.joystick-ring{position:absolute;inset:0;border:1px solid #d4d7bc30;border-radius:50%;background:radial-gradient(#8b9a7e08 60%,#b3bfa011 61%,transparent 64%)}#stick{position:absolute;width:47px;height:47px;left:36.5px;top:36.5px;border:1px solid #bfc7b14a;background:#bfc7b11a;border-radius:50%;box-shadow:inset 0 0 15px #bec9b709}.joystick-name{position:absolute;bottom:-22px;width:100%;text-align:center;font-size:9px;letter-spacing:3px;color:#a4b3a266}.action-controls{position:absolute;bottom:128px;right:40px;display:flex;flex-direction:column;gap:13px;align-items:center}.action-button{border:1px solid #b7c0a57a;border-radius:50%;width:82px;height:82px;background:radial-gradient(#9ea78c24,#0711136e);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;position:relative}.action-button>span{font-size:24px;filter:grayscale(1)}.action-button small{font-size:10px;letter-spacing:2px}.action-button kbd{position:absolute;right:1px;top:2px;background:#0a1316}.action-button.available{border-color:#ddd1a3;box-shadow:0 0 20px #cfbb7b25}.run-button{border:1px solid #aab69940;border-radius:50%;width:59px;height:59px;background:#0a15176e;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;touch-action:none}.run-button>span{font-size:19px;transform:rotate(-30deg)}.run-button small{font-size:8px}.run-button.active{background:#c0a16855}.stamina-track{position:absolute;bottom:111px;right:41px;width:80px;height:2px;background:#aebca21c}.stamina-track i{display:block;width:100%;height:100%;background:#b2ba98;transition:width .1s}#danger{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(ellipse,transparent 35%,#9b191750);transition:opacity .5s}#flash{position:fixed;inset:0;z-index:8;background:#e4e4d0;pointer-events:none;opacity:0;transition:opacity .15s}#whisper{position:absolute;top:38%;width:100%;text-align:center;font-family:serif;font-size:25px;letter-spacing:14px;color:#bebfac90;animation:pulse 2s infinite}.modal{position:fixed;inset:0;z-index:20;background:#020708b3;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:24px}.modal-card{touch-action:pan-y;position:relative;max-width:540px;width:100%;padding:38px;background:linear-gradient(140deg,#172123,#0c1315);border:1px solid #a7b29739;box-shadow:0 30px 100px #0008;max-height:87dvh;overflow:auto}.close{position:absolute;right:14px;top:10px;font-size:26px;color:#a4ada1}.modal-kicker{font-size:9px;color:#aa977b;letter-spacing:4px}.modal h2{font-family:serif;font-size:25px;letter-spacing:4px;font-weight:400;margin:18px 0 22px}.modal p{font-size:12px;line-height:2;color:#abb4a8;letter-spacing:1px}.modal .primary{margin-top:24px;width:100%;min-width:0}.clue{border-top:1px solid #ffffff13;padding:16px 0}.clue h3{font-size:12px;color:#d2cbb2;font-weight:400;letter-spacing:2px}.clue p{font-size:11px;margin:6px 0}.paper{background:#b6af92;color:#28352f;padding:22px;box-shadow:inset 0 0 40px #564a3333;transform:rotate(-1deg);margin:22px 0}.paper p{color:#2b352e;font-family:serif;font-size:15px;line-height:2.2}.paper strong{color:#6d231e}.lock-dials{display:flex;gap:15px;margin:30px 0;justify-content:center}.lock-dial{width:76px;height:90px;border:1px solid #b1b09560;background:linear-gradient(#64736522,#111b1b);font-size:36px;color:#e1d4ad;box-shadow:inset 0 0 18px #0005}.lock-dial small{display:block;font-size:9px;color:#9aa68f;letter-spacing:2px;margin-top:8px}.lock-hint{text-align:center!important;font-size:10px!important;color:#8b9b8d!important}.modal-actions{display:flex;gap:12px;margin-top:16px}.modal-actions button{border:1px solid #b9baa250;padding:12px 18px;font-size:12px;flex:1}.modal-actions button:hover{background:#c1b08520}.end-screen{background:radial-gradient(ellipse at 50% 15%,#293b3340,transparent 60%),#050b0df0;display:flex;align-items:center;justify-content:center}.end-inner{max-width:520px;padding:30px;text-align:center}.end-inner .eyebrow{justify-content:center}.end-inner h2{font-family:serif;font-size:49px;letter-spacing:9px;font-weight:400;margin:30px 0}.end-inner p{font-size:13px;color:#98a599;line-height:2.3;letter-spacing:2px;white-space:pre-line}.end-inner .primary{margin:30px auto 15px;min-width:260px;justify-content:center}.text-button{font-size:11px;letter-spacing:3px;color:#899d8c;padding:12px}#end-stats{font-size:11px;color:#b8b697;line-height:2;margin-top:24px}body.playing #menu{display:none}body.playing{touch-action:auto;user-select:none}body.hidden-player .vignette{background:linear-gradient(90deg,#010202 0%,transparent 16%,transparent 84%,#010202 100%),linear-gradient(#000c,transparent 24%,transparent 80%,#000c)}
@media(min-width:1000px){#joystick{opacity:.5;width:95px;height:95px;left:45px}#stick{left:24px;top:24px}.action-controls{right:45px}.menu-art{background-position:88% 50%}.ticket-art{right:9%;bottom:17%}}
@media(max-width:700px){.menu-top{top:max(24px,env(safe-area-inset-top));left:25px;right:25px}.brand{font-size:8px;gap:8px;letter-spacing:1px}.brand i,.brand i~*{display:none}.build{font-size:8px;letter-spacing:1px}.build b{display:none}.menu-art{background-position:57% 42%;background-size:auto 135%;filter:saturate(.55) brightness(.7)}.menu-shade{background:linear-gradient(0deg,#070d0f 4%,#070d0ff5 23%,#070d0f9e 58%,#070d0f12 85%,#070d0fd1)}.menu-copy{left:8%;right:8%;top:auto;bottom:13%;transform:none}.eyebrow{font-size:9px;letter-spacing:3px}h1{font-size:68px;margin-top:19px;letter-spacing:7px}.title-en{font-size:9px;letter-spacing:7px}.red-rule{margin:22px 0 17px}.menu-copy h2{font-size:15px;margin:12px 0}.menu-copy p{font-size:11px;line-height:2.2;letter-spacing:.5px;margin:12px 0 25px}.primary{min-width:190px;padding:16px 20px;font-size:12px}.secondary{padding:12px 15px;font-size:11px}.secondary span{margin-left:10px}.menu-meta{gap:13px;font-size:8px}.menu-meta span+span{padding-left:13px}.ticket-art{display:none}.menu-bottom{bottom:23px;left:25px;right:25px;font-size:8px;padding-top:16px}.menu-bottom .warning{display:none}.menu-bottom button{font-size:9px}.side-index{display:none}.hud-top{left:20px;right:20px;top:max(20px,env(safe-area-inset-top))}.location .chapter{font-size:8px}.location strong{gap:8px;margin:5px 0}.location strong>span:first-child{font-size:25px}.location strong>span+span{font-size:13px;letter-spacing:2px}.location small{font-size:8px}.hud-tools button{width:32px;height:32px;font-size:15px}.objective{top:106px;width:85%}.objective p{font-size:11px;letter-spacing:1px}.objective>span{font-size:8px}.status-strip{top:80px;left:20px;right:20px;font-size:8px;letter-spacing:1px}.battery{gap:6px}.battery b{width:27px;height:6px}.battery>span{display:none}.battery small{font-size:8px}.hud-bottom{left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom))}.inventory>button,.inventory-slot{width:43px;height:49px}.inventory small{font-size:7px}.inventory>button>span,.inventory-slot>span{font-size:19px}.tool-button{height:49px;width:46px}.tool-button small{font-size:7px}.tool-button>span{font-size:19px}.desktop-hint{display:none}kbd{display:none}#joystick{left:24px;bottom:120px;width:110px;height:110px}#stick{left:31.5px;top:31.5px}.action-controls{right:22px;bottom:107px}.action-button{width:73px;height:73px}.run-button{width:54px;height:54px}.stamina-track{right:23px;bottom:92px;width:72px}#subtitle{bottom:256px;width:94%;padding:13px 16px}#line{font-size:12px;letter-spacing:1px}#speaker{font-size:9px}#toast{top:25%;font-size:11px;padding:12px 16px}#chapter-card strong{font-size:28px;letter-spacing:7px}.modal{padding:20px}.modal-card{padding:30px 24px}.modal h2{font-size:22px}.end-inner h2{font-size:37px}.end-inner p{font-size:12px}#hotspot{font-size:9px;padding:8px 10px;letter-spacing:1px}}
@media(max-height:580px) and (min-width:650px){.menu-copy{top:50%}h1{font-size:66px;margin:13px 0 4px}.red-rule{margin:15px 0}.menu-copy h2{font-size:14px}.menu-copy p{margin:10px 0 18px;font-size:11px;line-height:2}.menu-copy .primary{padding:12px 20px}.menu-meta{margin-top:12px}.menu-top{top:20px}.menu-bottom{bottom:17px;padding-top:13px}.ticket-art{width:240px;bottom:18%;right:8%}.objective{top:25px}.status-strip{top:102px}.hud-top{top:18px}.hud-bottom{bottom:17px}#joystick{bottom:100px;width:90px;height:90px}#stick{left:21.5px;top:21.5px}.action-controls{bottom:95px;flex-direction:row}.stamina-track{bottom:86px}#subtitle{bottom:130px}#chapter-card strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){.grain,.menu-art,.hotspot-dot{animation:none}}
/* 角色与环境独立合成，所有原始图片保持完整；画面裁切由各设备视口负责。 */
#cinema{position:fixed;inset:0;overflow:hidden;background:#03080b;pointer-events:none;--scene-brightness:1;z-index:1}.film-plate{position:absolute;inset:-3%;background-position:50% 50%;background-size:cover;opacity:0;transition:opacity .65s;filter:brightness(var(--scene-brightness));will-change:transform,opacity}.film-hero{position:absolute;height:102%;width:auto;left:calc(27% - 37vh);bottom:-38%;object-fit:contain;filter:brightness(.77) saturate(.77);transition:opacity .3s;transform-origin:50% 80%;z-index:4}.film-ghost{position:absolute;width:auto;max-width:95%;object-fit:contain;z-index:2;transition:opacity .4s;transform-origin:50% 100%}.film-reflection{position:absolute;height:51%;right:1%;top:17%;width:auto;opacity:0;filter:brightness(.8) blur(1px);mix-blend-mode:screen;transform:scaleX(-1) skewY(-8deg);transition:opacity .8s;z-index:3}.film-mist{position:absolute;pointer-events:none;z-index:3;left:-25%;width:150%;height:45%;bottom:8%;opacity:.22;background:radial-gradient(ellipse at 45% 70%,#c5d0c829,transparent 55%),radial-gradient(ellipse at 70% 90%,#cbd3d41f,transparent 55%);filter:blur(22px);transform:translateX(var(--fog-drift));mix-blend-mode:screen}.mist-front{z-index:6;height:22%;bottom:0;opacity:.16;transform:translateX(calc(var(--fog-drift) * -1))}.film-window-light{position:absolute;inset:0;background:linear-gradient(110deg,transparent 40%,#b8e1ed08 49%,#c4e5ef1a 50%,transparent 58%);clip-path:polygon(77% 4%,100% 0,100% 77%,80% 60%);z-index:1;animation:window-pass 3s linear infinite;mix-blend-mode:screen}@keyframes window-pass{0%{transform:translateY(-50%);opacity:0}10%{opacity:1}70%{opacity:1}100%{transform:translateY(30%);opacity:0}}#film-beam{position:absolute;inset:0;z-index:5;opacity:.7;transition:opacity .3s;background:linear-gradient(140deg,transparent 38%,#dbe5ce03 44%,#e2e6cf1f 56%,#dae1c604 63%,transparent 70%);clip-path:polygon(34% 78%,51% 33%,78% 29%,65% 55%);filter:blur(9px);mix-blend-mode:screen}#film-shade{position:absolute;inset:0;z-index:7;transition:background .4s}#film-alarm{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse at 50% 15%,#f02f1e60,transparent 60%);mix-blend-mode:screen}body.playing .vignette{background:radial-gradient(ellipse at 54% 44%,transparent 40%,#0002 75%,#0007 100%)}#world{background:#02070a;z-index:0}#film-points{position:fixed;inset:0;z-index:5;pointer-events:none}body:not(.playing) #film-points{display:none}.film-point{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:auto;white-space:nowrap;text-shadow:0 2px 5px #000;max-width:200px;transition:opacity .25s;padding:14px 8px}.point-symbol{display:block;width:9px;height:9px;border:1px solid #d8d0b2;box-shadow:0 0 12px #e0d4ab30;transform:rotate(45deg);background:#151d1950}.point-copy{font-size:9px;color:#d7d3ba;letter-spacing:1px;background:#06121680;padding:6px 9px;border:1px solid #dad5b21a}.film-point.near .point-symbol{background:#d7caa6;box-shadow:0 0 14px #e0c69b90;animation:pulse 2s infinite}.film-point.near .point-copy{border-color:#c2b28d75;background:#111a18e6;color:#ede2c6;font-size:11px}.prop-icon{display:block!important;background-image:url('assets/art/props.webp');background-size:200% 200%;background-repeat:no-repeat;width:32px;height:32px;filter:drop-shadow(0 2px 3px #0008)}.prop-ticket{background-position:0 0}.prop-key{background-position:100% 0}.prop-note{background-position:0 100%}.prop-flashlight{background-position:100% 100%}.inventory .prop-icon{margin-top:-1px}.inventory>button,.inventory-slot,.tool-button{height:69px}.inventory small{margin-top:1px}.inventory-slot{opacity:.26}.inventory-slot.owned{opacity:1}.asset-loading{font-size:9px;letter-spacing:1px;color:#a4aa947a;margin-top:12px}.library-link{position:absolute;right:4.4%;top:90px;font-size:10px;color:#a4b2a0;text-decoration:none;letter-spacing:2px;border-bottom:1px solid #b5c2a230;padding-bottom:7px}.library-link span{margin-left:15px}.route-strip{position:absolute;bottom:106px;left:50%;transform:translateX(-50%);width:180px;text-align:center;text-shadow:0 1px 4px #000}.route-strip>span{font-size:9px;letter-spacing:2px;color:#b7c0a4}.route-strip>div{height:1px;margin:11px 0 6px;background:#a9bda52b}.route-strip i{display:block;height:1px;background:#bfc5a5;width:0}.route-strip small{font-size:8px;letter-spacing:4px;color:#a5b59977}.look-back{position:absolute;bottom:105px;right:146px;pointer-events:auto;display:flex;gap:6px;align-items:center;border:1px solid #c6c7ad38;background:#0610139c;padding:10px;font-size:18px}.look-back span{font-size:9px;letter-spacing:1px}.look-back.active{border-color:#bc6c5d;color:#d19b88}#film-back-view{position:absolute;left:50%;top:36%;transform:translateX(-50%);font-family:serif;font-size:15px;letter-spacing:5px;color:#c4bda7;opacity:0;text-shadow:0 2px 7px #000;transition:opacity .3s}.menu-art{background-image:url('assets/art/car07.webp');background-size:cover;background-position:65% 50%}.menu-shade{background:linear-gradient(90deg,#070d0ff5 0%,#070d0fe8 22%,#070d0f70 51%,#070d0f10 75%),linear-gradient(0deg,#070d0f 0%,transparent 27%,transparent 80%,#070d0fd0)}.menu-art:after{content:'';position:absolute;right:8%;bottom:-20%;height:85%;width:40%;background:url('assets/art/hero.webp') bottom/contain no-repeat;filter:brightness(.6)}
@media(max-width:700px){.film-hero{height:91%;left:-18%;bottom:-28%;filter:brightness(.76) saturate(.8)}.film-plate{background-position:50% 50%;inset:-2%}.film-reflection{right:-8%;height:40%;top:18%}.film-mist{opacity:.16}.film-point{padding:12px 5px}.point-copy{font-size:8px;letter-spacing:0;padding:5px 7px}.film-point.near .point-copy{font-size:9px}.prop-icon{width:28px;height:28px}.inventory>button,.inventory-slot,.tool-button{height:54px}.inventory small{font-size:7px}.route-strip{bottom:86px;width:127px}.route-strip>span{font-size:8px;letter-spacing:1px}.route-strip>div{margin:8px 0 5px}.route-strip small{font-size:7px}.look-back{bottom:79px;right:108px;padding:7px 8px;font-size:15px}.look-back span{font-size:8px}.menu-art{background-position:50% 50%;background-size:cover}.menu-art:after{height:67%;width:100%;right:-27%;bottom:5%;opacity:.7}.menu-shade{background:linear-gradient(0deg,#070d0f 4%,#070d0ff2 23%,#070d0fa0 54%,#070d0f15 84%,#070d0fb3)}.library-link{top:79px;right:25px;font-size:8px}.asset-loading{font-size:8px;margin-top:10px}.menu-copy p{margin-bottom:20px}#subtitle{bottom:268px}#film-back-view{font-size:12px;letter-spacing:2px;width:80%;text-align:center}}
@media(max-height:580px) and (min-width:650px){.film-hero{height:111%;bottom:-41%;left:calc(24% - 35vh)}.route-strip{bottom:91px}.look-back{bottom:28px;right:115px}.asset-loading{font-size:8px;margin-top:7px}.library-link{top:65px}.inventory>button,.inventory-slot,.tool-button{height:54px}.prop-icon{width:27px;height:27px}}
@media(prefers-reduced-motion:reduce){.film-window-light{animation:none}.film-plate{transition:opacity .15s}}
/* 道具详情沿用同一图集，文字由 DOM 清晰呈现，不依赖生成图片中的手写字。 */
.clue-object{width:126px;height:126px;margin:0 auto 10px;background-image:url('assets/art/props.webp');background-size:200% 200%;background-repeat:no-repeat;filter:drop-shadow(0 7px 10px #0007)}.clue-object.ticket{background-position:0 0}.clue-object.note{background-position:0 100%}.clue-object.key{background-position:100% 0}.lock-scene-strip{height:125px;margin:0 -10px 20px;background:url('assets/art/lockdoor.webp') 65% 51%/cover;border:1px solid #baa57830}.lock-dial{border-radius:50%;width:80px;height:80px;font-size:31px;border:2px solid #817045;background:radial-gradient(circle at 40% 30%,#6f6347,#262d27 60%,#151c1a 75%);box-shadow:inset 0 0 0 3px #b7a57b24,inset 0 0 20px #0009,0 4px 13px #0005;color:#d4c39b}.lock-dial small{font-size:7px;margin-top:5px}.lock-dials{margin:26px 0}.action-button svg{width:28px;height:28px;fill:none;stroke:#c6c8b6;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.run-button svg{width:21px;height:21px;fill:none;stroke:#bcc7b2;stroke-width:1.5}
/* 竖屏采用海报的偏右取景：红门落在左侧，雨窗保留在右侧，主角避免占据画面正中。 */
@media(max-width:700px){.film-plate{background-position:64% 50%}.film-hero{left:-37%}#cinema[data-view="car06"] .film-plate{background-position:54% 50%}#cinema[data-view="hide"] .film-plate{background-position:50% 50%}#cinema[data-view="lockdoor"] .film-plate{background-position:59% 50%}#cinema[data-view="exitdoor"] .film-plate{background-position:52% 50%}}
/* 从躲藏原图复用真实布纹作前景遮挡；鬼位于铺帘之后，避免透明角色盖在帘布上。 */
.film-curtain{display:none;position:absolute;top:0;bottom:0;width:23%;z-index:6;background-image:url('assets/art/hide.webp');background-size:auto 100%;pointer-events:none;filter:brightness(.8)}#cinema[data-view="hide"] .film-curtain{display:block}.curtain-left{left:0;background-position:left center;clip-path:polygon(0 0,96% 0,90% 17%,100% 43%,92% 68%,97% 100%,0 100%)}.curtain-right{right:0;background-position:right center;width:21%;clip-path:polygon(4% 0,100% 0,100% 100%,2% 100%,10% 70%,0 35%)}
/* 自由三维视角完全使用 WebGL 场景，关闭旧的图片场景及其角色遮挡层。 */
#cinema{display:none!important}#world{visibility:hidden;touch-action:none}body.playing #world{visibility:visible}.navigation-tools{position:absolute;left:50%;bottom:150px;transform:translateX(-50%);display:flex;gap:10px;pointer-events:auto}.navigation-tools button{background:#0b181bc9;border:1px solid #b2bea744;padding:10px 13px;font-size:10px;letter-spacing:1px;white-space:nowrap}.navigation-tools button:first-child{border-color:#b6b18d80;color:#d1c7a3}.navigation-tools button:disabled{opacity:.3}.film-point.near .point-copy{background:#142020e8}.route-strip{width:260px;bottom:107px}#hud .crosshair{width:5px;height:5px;border:1px solid #e8e3c789;background:transparent}.look-back{right:144px;bottom:102px}.desktop-hint{font-size:9px}body.playing .vignette{background:radial-gradient(ellipse at 50% 45%,transparent 40%,#0002 80%,#0006)}
@media(max-width:700px){.navigation-tools{bottom:157px;flex-direction:column;gap:7px}.navigation-tools button{font-size:9px;padding:9px 12px;min-width:106px}.route-strip{bottom:86px;width:190px}.route-strip>span{font-size:8px;letter-spacing:0}.look-back{bottom:77px;right:107px}.point-copy{white-space:normal;text-align:center;max-width:150px}.film-point{max-width:170px}.hud-bottom{bottom:max(16px,env(safe-area-inset-bottom))}}
@media(max-height:580px) and (min-width:650px){.navigation-tools{bottom:110px}.route-strip{bottom:69px}.look-back{right:120px;bottom:22px}.navigation-tools button{font-size:9px;padding:8px 10px}}
/* 标签上移并连回实物锚点，保证提示文字本身不会挡住纸条或钥匙。 */
.film-point{transform:translate(-50%,calc(-100% - 23px));padding:6px 8px}.film-point:after{content:'';position:absolute;top:100%;left:50%;width:1px;height:23px;background:linear-gradient(#d8cba56b,#d8cba514)}
