:root{--green:#7dff6b;--red:#ff4d4d;--amber:#ffc44d;--ink:#e9eef5;--panel:#0a0e128c;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);user-select:none;overscroll-behavior:none;background:#000;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,system-ui,sans-serif;overflow:hidden}#app{background:#05070a;position:fixed;inset:0;overflow:hidden}#stage{will-change:transform;position:absolute;inset:0}#app.dead{filter:grayscale()contrast(1.06)brightness(.92)}.death-veil{z-index:4;pointer-events:none;opacity:0;background:radial-gradient(115% 90% at 50% 46%,#0000 22%,#0000008c 78%,#000000db 100%);place-items:center;transition:opacity .55s ease-out;display:grid;position:absolute;inset:0}#app.dead .death-veil{opacity:1}.death-title{letter-spacing:.42em;text-indent:.42em;color:#ffffffe6;text-shadow:0 0 18px #000000e6,0 2px 6px #000c;opacity:0;font-size:34px;font-weight:800;transition:opacity .4s ease-out .1s,transform .9s cubic-bezier(.16,1,.3,1) .1s;transform:translateY(-16vh)scale(1.06)}#app.dead .death-title{opacity:1;transform:translateY(-16vh)scale(1)}#camera{object-fit:cover;background:#05070a;width:100%;height:100%;position:absolute;inset:0}#fx,#gun{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#hud{pointer-events:none;padding:calc(10px + var(--safe-t)) 14px calc(14px + var(--safe-b));flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}#hud.hidden,.hidden{display:none!important}.topbar{letter-spacing:.02em;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.room,.status{background:var(--panel);-webkit-backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;border:1px solid #ffffff14;border-radius:999px;padding:6px 10px}.room{color:var(--green);font-weight:600}.status.on{color:var(--green)}.status.off{color:#9aa4b2}.topbar-right,.topbar-left{pointer-events:auto;align-items:center;gap:8px;display:flex}.exit-btn{letter-spacing:.02em;color:#c7d0dc;background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff24;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.exit-btn.armed{color:#ffb4b4;background:#781414a6;border-color:#ff5a5aa6}.invite-btn{letter-spacing:.04em;color:#06140a;background:linear-gradient(#9dff8c,#58d94a);border:1px solid #ffffff47;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:700;box-shadow:0 4px 14px #50dc644d}.invite-btn.waiting{animation:1.8s ease-in-out infinite invitePulse}@keyframes invitePulse{0%,to{box-shadow:0 4px 14px #50dc6440}50%{box-shadow:0 4px 24px #50dc64b3}}.foe{top:calc(52px + var(--safe-t));text-align:center;background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff14;border-radius:12px;width:min(320px,72%);padding:8px 12px;position:absolute;left:50%;transform:translate(-50%)}.foe-head,.me-head{opacity:.85;font-variant-numeric:tabular-nums;justify-content:space-between;margin-bottom:5px;font-size:11px;display:flex}.bar{background:#ffffff24;border-radius:999px;height:6px;overflow:hidden}.bar>i{border-radius:inherit;background:linear-gradient(90deg, #ff7a45, var(--red));width:100%;height:100%;transition:width .18s ease-out;display:block}.foe-score{opacity:.75;margin-top:5px;font-size:11px}.foe-score b{color:var(--amber);font-variant-numeric:tabular-nums}.bottom{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.me{background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff14;border-radius:12px;width:min(190px,46%);padding:8px 12px}.me-bar>i{background:linear-gradient(90deg,#6bff9a,#22d3a0)}.me-score{opacity:.75;margin-top:5px;font-size:11px}.me-score b{color:var(--amber)}.controls{pointer-events:auto;align-items:flex-end;gap:10px;display:flex}.fire{color:#fff;letter-spacing:.08em;touch-action:none;background:radial-gradient(circle at 35% 30%,#ff5a5af2,#961414f2);border:2px solid #ffffff59;border-radius:50%;place-items:center;width:92px;height:92px;font-size:15px;font-weight:700;transition:transform 60ms ease-out,filter .15s;display:grid;position:relative;box-shadow:0 8px 24px #ff3c3c59,inset 0 0 20px #00000040}.fire:active{filter:brightness(1.15);transform:scale(.94)}.fire.reloading{box-shadow:none;background:radial-gradient(circle at 35% 30%,#6b7280,#374151)}.fire.empty{color:#ff9a9a;background:radial-gradient(circle at 35% 30%,#4a2020,#1a0c0c);border-color:#ff5a5a8c;box-shadow:inset 0 0 26px #0000008c}.fire.empty em{color:#ff6b6b;opacity:1}.fire em{opacity:.8;letter-spacing:.02em;font-size:11px;font-style:normal;font-weight:500;position:absolute;bottom:12px}.mini{background:var(--panel);-webkit-backdrop-filter:blur(10px);width:46px;height:46px;color:var(--ink);touch-action:none;border:1px solid #fff3;border-radius:50%;place-items:center;margin-bottom:8px;font-size:18px;display:grid}.mini:active{background:#ffffff2e}.mini.need-reload{color:var(--amber);border-color:#ffc44db3;animation:1.1s ease-in-out infinite reloadPulse}@keyframes reloadPulse{0%,to{box-shadow:0 0 #ffc44d00}50%{box-shadow:0 0 16px #ffc44da6}}.mini:disabled{opacity:.5;pointer-events:none}.toast{letter-spacing:.06em;opacity:0;white-space:nowrap;background:#0009;border:1px solid #ffffff24;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)scale(.9)}.toast.show{opacity:1;transform:translate(-50%,-50%)scale(1)}.respawn{color:#ffb4b4;letter-spacing:.06em;text-align:center;background:#000000b3;border:1px solid #ff505080;border-radius:14px;padding:14px 22px;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.face-warn{left:50%;bottom:calc(124px + var(--safe-b));text-align:center;white-space:nowrap;background:#5a0c0cd6;border:1px solid #ff5a5a99;border-radius:12px;gap:2px;padding:9px 16px;animation:1.2s ease-in-out infinite facePulse;display:grid;position:absolute;transform:translate(-50%)}.face-warn b{color:#ffd0d0;letter-spacing:.04em;font-size:13px}.face-warn span{color:#ff9a9a;font-size:10px}@keyframes facePulse{0%,to{box-shadow:0 0 #ff3c3c00}50%{box-shadow:0 0 18px #ff3c3c8c}}.face-calib{z-index:26;padding:calc(18px + var(--safe-t)) 18px calc(18px + var(--safe-b));-webkit-backdrop-filter:blur(6px);background:#03060ac7;place-items:center;animation:.16s ease-out inviteFade;display:grid;position:absolute;inset:0}.face-card{text-align:center;background:#10161ef7;border:1px solid #ffffff1f;border-radius:20px;width:min(320px,100%);padding:18px;box-shadow:0 24px 60px #000000a6}.face-card h2{letter-spacing:.02em;margin:0 0 6px;font-size:18px}.face-sub{color:#8e9aab;margin:0 0 14px;font-size:11px;line-height:1.6}.face-sub b{color:var(--green)}.face-preview{background:#05070a;border:2px solid #7dff6b59;border-radius:50%;width:168px;height:168px;margin:0 auto 12px;position:relative;overflow:hidden}.face-preview video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.face-oval{pointer-events:none;border:1px dashed #ffffff47;border-radius:50%;position:absolute;inset:18px}.face-status{color:#c7d0dc;font-variant-numeric:tabular-nums;min-height:16px;margin-bottom:12px;font-size:12px}.face-actions{gap:8px;display:flex}.face-actions button{flex:1;padding:11px 10px;font-size:13px}.face-note{color:#6f7b8b;margin:12px 0 0;font-size:10px;line-height:1.5}.invite{z-index:25;padding:calc(18px + var(--safe-t)) 18px calc(18px + var(--safe-b));-webkit-backdrop-filter:blur(6px);background:#03060abd;place-items:center;animation:.16s ease-out inviteFade;display:grid;position:absolute;inset:0}@keyframes inviteFade{0%{opacity:0}}.invite-card{background:#10161ef5;border:1px solid #ffffff1f;border-radius:20px;width:min(340px,100%);max-height:100%;padding:18px;overflow-y:auto;box-shadow:0 24px 60px #000000a6}.invite-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.invite-head h2{letter-spacing:.02em;margin:0;font-size:18px}.invite-head p{color:#8e9aab;margin:5px 0 0;font-size:11px;line-height:1.5}.invite-x{color:#9aa4b2;background:#ffffff12;border:1px solid #ffffff1f;border-radius:50%;flex:none;width:32px;height:32px;padding:0;font-size:14px}.invite-code{cursor:pointer;background:#7dff6b14;border:1px dashed #7dff6b59;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 12px;padding:9px 14px;display:flex}.invite-code span{color:#8e9aab;font-size:11px}.invite-code b{letter-spacing:.22em;color:var(--green);font-variant-numeric:tabular-nums;font-size:25px;font-weight:800}.invite-qr{background:#fff;border-radius:14px;width:196px;height:196px;margin:0 auto;position:relative;overflow:hidden}.invite-qr img{width:100%;height:100%;display:block}.invite-qr-hint{text-align:center;color:#33414f;background:#fff;place-items:center;padding:14px;font-size:12px;display:grid;position:absolute;inset:0}.invite-link{margin:12px 0}.invite-link input{color:#b9c4d2;letter-spacing:0;text-align:left;width:100%;padding:9px 10px;font-size:11px}.invite-actions{gap:8px;display:flex}.invite-actions button{padding:11px 12px;font-size:13px}.invite-actions .primary{flex:1.4}.invite-actions .ghost{flex:1}.invite-tip{color:#6f7b8b;text-align:center;margin:12px 0 0;font-size:10px;line-height:1.6}.screen{z-index:20;background:radial-gradient(120% 80% at 50% 0,#16202b 0%,#05070a 60%);place-items:center;padding:20px;display:grid;position:absolute;inset:0;overflow-y:auto}.card{background:#10161edb;border:1px solid #ffffff1a;border-radius:20px;width:min(360px,100%);padding:22px 20px;box-shadow:0 24px 60px #0009}.card h1{letter-spacing:.02em;align-items:baseline;gap:8px;margin:0;font-size:30px;display:flex}.card h1 span{color:var(--green);letter-spacing:.12em;font-size:13px;font-weight:500}.sub{color:#8e9aab;margin:6px 0 18px;font-size:12px}.field{color:#9aa4b2;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;display:flex}.field span{width:32px}input{min-width:0;color:var(--ink);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:14px}input:focus{border-color:#7dff6b99}#codeInput{text-transform:uppercase;letter-spacing:.28em;text-align:center;font-weight:700}button{cursor:pointer;color:var(--ink);border:none;border-radius:12px;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:filter .15s,transform 60ms}button:active{transform:scale(.985)}.primary{background:linear-gradient(#2f7d32,#1d5c22);border:1px solid #7dff6b66;width:100%;box-shadow:0 8px 20px #28a04640}.ghost{background:#ffffff12;border:1px solid #ffffff24;flex:1}.divider{color:#6f7b8b;align-items:center;gap:10px;margin:16px 0 12px;font-size:11px;display:flex}.divider:before,.divider:after{content:"";background:#ffffff1a;flex:1;height:1px}.join-row{gap:10px;margin-top:10px;display:flex}.join-row input{flex:1}.join-row button{flex:0 0 84px}.rules-btn{text-align:center;letter-spacing:.04em;color:#c7d0dc;background:#ffffff12;border:1px solid #ffffff24;border-radius:12px;width:100%;margin-top:10px;padding:11px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s;display:block}.rules-btn:active{background:#ffffff29}.weapon-row{text-align:left;background:#ffffff0d;border:1px solid #ffffff1f;align-items:center;gap:10px;width:100%;margin-top:12px;padding:9px 12px;display:flex}.weapon-row img{object-fit:contain;flex:none;width:74px;height:40px}.weapon-meta{flex:1;gap:2px;min-width:0;display:grid}.weapon-meta b{font-size:13px}.weapon-meta i{color:#8e9aab;font-size:10px;font-style:normal}.weapon-row em{color:var(--green);white-space:nowrap;font-size:11px;font-style:normal;font-weight:600}.gun-item{text-align:left;background:#ffffff0d;border:1px solid #ffffff1f;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:12px;display:flex;position:relative}.gun-item.active{background:#7dff6b12;border-color:#7dff6ba6}.gun-item.active:after{content:"✓ 已装备";color:var(--green);font-size:11px;font-weight:700;position:absolute;top:12px;right:12px}.gun-preview{background:#00000047;border-radius:10px;flex:0 0 128px;place-items:center;display:grid;overflow:hidden}.gun-preview img{object-fit:contain;width:100%;height:64px;display:block}.gun-info{flex:1;align-content:start;gap:4px;min-width:0;display:grid}.gun-info b{font-size:15px}.gun-info i{color:#8e9aab;margin-bottom:2px;font-size:10px;font-style:normal}.stat{color:#9aa4b2;align-items:center;gap:8px;font-size:10px;display:flex}.stat em{flex:none;width:24px;font-style:normal}.stat-bar{background:#ffffff1f;border-radius:999px;flex:1;height:5px;overflow:hidden}.stat-bar i{height:100%;width:var(--v,50%);border-radius:inherit;background:linear-gradient(90deg,#58d94a,#9dff8c);display:block}.gun-back{width:100%;margin-top:4px}.hint{color:#ffb36b;min-height:16px;margin:16px 0 0;font-size:11px;line-height:1.5}.tiny{color:#6f7b8b;margin:10px 0 0;font-size:10px;line-height:1.6}.loading{z-index:30;color:#9aa4b2;background:#03060aeb;place-content:center;justify-items:center;gap:14px;font-size:13px;display:grid;position:absolute;inset:0}.spinner{border:3px solid #7dff6b33;border-top-color:var(--green);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.match-timer{font-variant-numeric:tabular-nums;color:var(--ink);opacity:.9;margin-top:6px;font-size:12px;font-weight:700}.match-timer.urgent{color:var(--red);animation:1s ease-in-out infinite timerPulse}@keyframes timerPulse{0%,to{opacity:.65}50%{opacity:1}}.streak-banner{letter-spacing:.06em;color:var(--amber);text-shadow:0 0 24px #ff963ccc,0 3px 8px #000000e6;opacity:0;pointer-events:none;white-space:nowrap;font-size:42px;font-style:italic;font-weight:900;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)scale(.6)}.streak-banner.show{animation:1.4s cubic-bezier(.16,1,.3,1) forwards streakPop}@keyframes streakPop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)rotate(-4deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.15)rotate(1.5deg)}30%{transform:translate(-50%,-50%)scale(1)rotate(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-60%)scale(1.02)}}.event-banner{color:#d9c2ff;letter-spacing:.05em;text-align:center;white-space:nowrap;background:#140828d9;border:1px solid #aa78ff8c;border-radius:999px;padding:10px 22px;font-size:15px;font-weight:700;animation:1.4s ease-in-out infinite facePulse;position:absolute;top:38%;left:50%;transform:translate(-50%)}.event-banner.gold{color:var(--amber);background:#3c2804e0;border-color:#ffc44d99}.emote-bar{left:14px;bottom:calc(150px + var(--safe-b));pointer-events:auto;gap:7px;display:grid;position:absolute}.emote-btn{background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff29;border-radius:50%;width:40px;height:40px;padding:0;font-size:19px;line-height:1}.emote-pop{pointer-events:none;filter:drop-shadow(0 4px 10px #000000b3);font-size:58px;animation:1.3s ease-out forwards emoteFloat;position:absolute;top:44%}@keyframes emoteFloat{0%{opacity:0;transform:scale(.4)rotate(-12deg)}22%{opacity:1;transform:scale(1.25)rotate(6deg)}40%{transform:scale(1)rotate(0)}80%{opacity:1}to{opacity:0;transform:translateY(-70px)scale(1.05)}}.kill-card{left:12px;bottom:calc(96px + var(--safe-b));background:var(--panel);-webkit-backdrop-filter:blur(10px);pointer-events:auto;border:1px solid #ffc44d66;border-radius:12px;width:132px;padding:6px;animation:.2s ease-out inviteFade;position:absolute}.kill-card img{border-radius:8px;width:100%;display:block}.kill-card-actions{gap:4px;margin-top:5px;display:flex}.kill-card-actions button{border-radius:8px;padding:6px 4px;font-size:11px}.settle{z-index:28;-webkit-backdrop-filter:blur(8px);background:#03060ad1;place-items:center;padding:20px;animation:.25s ease-out inviteFade;display:grid;position:absolute;inset:0}.settle-card{text-align:center;background:#10161ef7;border:1px solid #ffffff1f;border-radius:20px;width:min(340px,100%);padding:24px 20px;box-shadow:0 24px 60px #000000a6}.settle-card h2{letter-spacing:.1em;margin:0;font-size:34px;font-weight:900}.settle-card h2.win{color:var(--green)}.settle-card h2.lose{color:var(--red)}.settle-card p{font-variant-numeric:tabular-nums;color:var(--amber);margin:6px 0 14px;font-size:22px;font-weight:800}.settle-stats{text-align:left;background:#ffffff0d;border-radius:12px;gap:7px;margin-bottom:16px;padding:12px;font-size:12px;display:grid}.settle-stats div{justify-content:space-between;display:flex}.settle-stats span{color:#9aa4b2}.settle-stats b{font-variant-numeric:tabular-nums}.settle-actions{gap:8px;display:flex}.settle-actions .primary,.settle-actions .ghost{padding:12px;font-size:13px}.beach-hud{left:50%;top:calc(52px + var(--safe-t));background:var(--panel);-webkit-backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid #ffffff24;border-radius:999px;padding:8px 16px;font-size:14px;position:absolute;transform:translate(-50%)}.beach-hud b{color:var(--amber)}.real-chip{left:50%;top:calc(94px + var(--safe-t));color:#ffb3b3;white-space:nowrap;background:#ff4d4d29;border:1px solid #ff4d4d8c;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;animation:1.2s ease-in-out infinite realPulse;position:absolute;transform:translate(-50%)}@keyframes realPulse{0%,to{opacity:.75}50%{opacity:1}}.beach-legend{left:50%;bottom:calc(132px + var(--safe-b));color:#dfe7f0;text-align:center;pointer-events:none;background:#050a10c7;border:1px solid #ffffff29;border-radius:12px;max-width:92%;padding:8px 14px;font-size:12px;line-height:1.6;position:absolute;transform:translate(-50%)}.progress-line{color:#8ea4c2;text-align:center;min-height:13px;margin:0 0 10px;font-size:11px}.quick-row{gap:8px;margin-top:8px;display:flex}.quick-row .ghost{padding:10px 8px;font-size:13px}.mode-row{gap:8px;margin-bottom:10px;display:flex}.mode-opt{color:#9aa4b2;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:12px;flex:1;padding:10px 8px;font-size:13px}.mode-opt.active{color:var(--ink);background:#7dff6b14;border-color:#7dff6ba6}.divider b{color:var(--amber);font-weight:600}.item-row{gap:8px;margin-bottom:12px;display:flex}.item-opt{color:#9aa4b2;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:12px;flex:1;justify-items:center;gap:2px;padding:10px 4px;font-size:20px;display:grid}.item-opt b{color:var(--ink);font-size:12px}.item-opt i{text-align:center;font-size:9px;font-style:normal}.item-opt.active{background:#7dff6b14;border-color:#7dff6ba6}.mini.item-used{opacity:.35;pointer-events:none}#stage.scoped #camera{transform:scale(2)}#stage.scoped:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 30%,#000000b8 62%);position:absolute;inset:0}.arcs-privacy{z-index:31;padding:calc(18px + var(--safe-t)) 18px calc(18px + var(--safe-b));-webkit-backdrop-filter:blur(8px);background:#03060ad1;place-items:center;animation:.25s ease-out inviteFade;display:grid;position:fixed;inset:0}.arcs-privacy-card{background:#10161ef7;border:1px solid #ffffff1f;border-radius:20px;width:min(340px,100%);max-height:100%;padding:22px 20px;overflow-y:auto;box-shadow:0 24px 60px #000000a6}.arcs-privacy-card h2{letter-spacing:.02em;margin:0;font-size:18px}.arcs-privacy-sub{color:#8e9aab;margin:6px 0 12px;font-size:12px;line-height:1.6}.arcs-privacy-list{gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.arcs-privacy-list li{border-left:2px solid var(--green);color:#c7d0dc;background:#ffffff0d;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.7}.arcs-privacy-agree{color:var(--ink);cursor:pointer;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;display:flex}.arcs-privacy-agree input{width:16px;height:16px;accent-color:var(--green)}.arcs-privacy-accept:disabled{opacity:.5;pointer-events:none}.arcs-privacy-hint{color:#6f7b8b;text-align:center;margin:10px 0 0;font-size:11px}
