*{box-sizing:border-box;margin:0;padding:0}html,body{color:#e8e4dc;background:#000;width:100%;height:100%;font-family:PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;overflow:hidden}#app canvas{display:block}.overlay{text-align:center;z-index:20;cursor:pointer;background:#000000d1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay.hidden{display:none}#title h1{letter-spacing:.4em;margin-left:.4em;font-size:64px;font-weight:300}#title .sub{opacity:.5;margin-top:8px}.hint{opacity:.85;margin-top:40px;animation:2.4s ease-in-out infinite pulse}.controls{opacity:.5;margin-top:32px;font-size:13px;line-height:1.9}@keyframes pulse{50%{opacity:.35}}.card{text-align:center;z-index:10;opacity:0;pointer-events:none;transition:opacity 1.2s;position:fixed;top:38%;left:0;right:0}.card.show{opacity:1}.card-title{letter-spacing:.3em;font-size:40px;font-weight:300}.card-sub{opacity:.7;letter-spacing:.1em;margin-top:12px;font-size:16px}#subtitle{text-align:center;text-shadow:0 0 8px #000,0 0 2px #000;z-index:10;opacity:0;pointer-events:none;max-width:80%;font-size:20px;transition:opacity .6s;position:fixed;bottom:12%;left:50%;transform:translate(-50%)}#subtitle.show{opacity:1}#prompt{z-index:10;pointer-events:none;background:#00000073;border:1px solid #fff6;border-radius:4px;padding:6px 14px;font-size:15px;display:none;position:fixed;top:58%;left:50%;transform:translate(-50%)}#prompt.show{display:block}#lockhint{opacity:.6;z-index:10;pointer-events:none;font-size:13px;display:none;position:fixed;top:16px;left:50%;transform:translate(-50%)}#lockhint.show{display:block}.ending-title{letter-spacing:.2em;font-size:34px;font-weight:300}.ending-text{opacity:.85;max-width:520px;margin-top:24px;line-height:1.9}#fade{opacity:1;pointer-events:none;z-index:15;background:#000;transition:opacity 1s;position:fixed;inset:0}#fade.clear{opacity:0}#keys{z-index:12;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#080a108c;border-radius:8px;flex-direction:column;gap:4px;min-width:168px;padding:10px 12px;font-size:13px;display:none;position:fixed;bottom:16px;right:16px}body.playing #keys{display:flex}#keys .row{opacity:.78;align-items:center;gap:8px;transition:opacity .2s;display:flex}#keys .row.dim{opacity:.35}#keys .row.on{opacity:1;color:#ffd98a}#keys .row em{color:#ffd98a;background:#ffd98a2e;border-radius:3px;margin-left:auto;padding:0 6px;font-size:11px;font-style:normal}kbd{text-align:center;color:#f2efe8;background:#ffffff1f;border:1px solid #ffffff47;border-bottom-width:2px;border-radius:4px;min-width:26px;padding:1px 6px;font:600 11px/18px -apple-system,Helvetica Neue,sans-serif;display:inline-block}#keys .row.on kbd{border-color:#ffd98a}#phone{z-index:13;pointer-events:none;background:#0d0f14;border:6px solid #22252b;border-radius:28px;flex-direction:column;gap:10px;width:270px;height:440px;padding:18px 14px;font-size:13px;transition:bottom .35s;display:flex;position:fixed;bottom:-460px;left:50%;transform:translate(-50%);box-shadow:0 0 40px #78a0ff40}#phone.show{bottom:24px}.phone-head{opacity:.85;justify-content:space-between;font-size:12px;font-weight:600;display:flex}.phone-call{text-align:center;border-bottom:1px solid #222;padding:10px 0}.phone-callee{font-size:20px}#phone-call{opacity:.6;margin-top:4px;font-size:12px}.phone-msgs{flex-direction:column;flex:1;justify-content:flex-end;gap:6px;display:flex;overflow:hidden}.msg{background:#23262d;border-radius:12px;align-self:flex-start;max-width:85%;padding:6px 10px;line-height:1.5}.msg b{opacity:.55;font-size:11px;font-weight:500;display:block}.msg.me{background:#2f6fde;align-self:flex-end}.msg-empty{opacity:.4;text-align:center}.phone-opts{flex-direction:column;gap:4px;display:flex}.opt{background:#181b21;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.opt.sel{background:#2b3242;outline:1px solid #5b7bd6}.phone-hint{text-align:center;opacity:.45;font-size:11px}#vignette{z-index:9;pointer-events:none;opacity:0;background:radial-gradient(at 50% 70%,#0000 25%,#000000bf 75%);transition:opacity .4s;position:fixed;inset:0}body.phone-open #vignette{opacity:1}#choice{z-index:14;opacity:0;pointer-events:none;background:#0a0b10db;border:1px solid #ffffff1f;border-radius:10px;width:min(520px,90vw);padding:16px 18px 12px;transition:opacity .25s,transform .25s;position:fixed;bottom:18%;left:50%;transform:translate(-50%,20px)}#choice.show{opacity:1;transform:translate(-50%)}.choice-prompt{opacity:.75;margin-bottom:10px;font-size:15px}.choice-opts{flex-direction:column;gap:6px;display:flex}#choice .opt{background:#ffffff0d;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:16px;display:flex}#choice .opt.sel{background:#ffffff1f;outline:1px solid #ffd98a99}.choice-timer{background:#ffffff1a;border-radius:2px;height:3px;margin-top:12px;overflow:hidden}#choice-bar{background:#e0b354;width:100%;height:100%}.choice-hint{opacity:.4;text-align:right;margin-top:6px;font-size:11px}#struggle{z-index:14;text-align:center;opacity:0;pointer-events:none;transition:opacity .15s;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}#struggle.show{opacity:1}.st-prompt{letter-spacing:.1em;text-shadow:0 0 12px #000;font-size:26px;font-weight:600;animation:.12s infinite shake}.st-bar{background:#ffffff1f;border-radius:6px;width:320px;height:12px;margin:16px auto 8px;overflow:hidden}#st-fill{background:linear-gradient(90deg,#c0392b,#f5b041);width:0;height:100%;transition:width 80ms}.st-hint{opacity:.7;font-size:13px}@keyframes shake{25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}#fear{z-index:8;pointer-events:none;opacity:0;background:radial-gradient(#0000 35%,#1400008c 70%,#000000eb 100%);position:fixed;inset:0}.phone-head .low{color:#ff6b5b}.ending-recap{text-align:left;opacity:.85;max-width:520px;margin-top:28px;line-height:2;list-style:none}.ending-recap li:before{content:"・";opacity:.5}.ending-foot{opacity:.6;max-width:520px;margin-top:28px;font-size:13px;line-height:1.9}#ending{padding:40px 16px;overflow-y:auto}.ending-text,.ending-foot{white-space:pre-line}body.busy #keys{opacity:.12}#keys{transition:opacity .3s}
