#weapon-slots { position: absolute; left: 50%; bottom: 100px; transform: translateX(-50%) translateY(26px) scale(.96); opacity: 0; visibility: hidden; display: flex; gap: 6px; pointer-events: auto; z-index: 12; transition: transform 220ms cubic-bezier(.16,.86,.28,1), opacity 150ms ease-out, visibility 0s linear 220ms; }
#weapon-slots[hidden] { display: none; }
#weapon-slots.is-visible { transform: translateX(-50%) translateY(0) scale(1); opacity: 1; visibility: visible; transition: transform 220ms cubic-bezier(.16,.86,.28,1), opacity 150ms ease-out, visibility 0s; }
@media (prefers-reduced-motion: reduce) { #weapon-slots, #weapon-slots.is-visible { transition-duration: 1ms; } }
/* Adaptacja Blockfield 0.63.2: damage-feedback + wound-vignette; środek kadru pozostaje czytelny. */
#player-damage-feedback { position:fixed;inset:0;pointer-events:none;z-index:2; }
#player-damage-feedback[hidden] { display:none; }
#player-damage-feedback > div { position:absolute;inset:0; }
.hurt-flash { opacity:var(--hurt-flash,0);background:radial-gradient(ellipse at center,transparent 42%,#b3131655 72%,#92030bc9 100%);box-shadow:inset 0 0 65px #d91d2666; }
/* Fala Nuke Silo (hurt kind 'nuke', 0.27.4): żar na krawędziach zamiast krwi — środek kadru czysty. */
#player-damage-feedback[data-kind="nuke"] .hurt-flash { background:radial-gradient(ellipse at center,transparent 36%,#ff7a2a3d 66%,#c2380ad0 100%);box-shadow:inset 0 0 90px #ff8a3a77; }
.hurt-acid { opacity:var(--hurt-acid,0);background:radial-gradient(ellipse 4% 12% at 8% 22%,#b6ec6bc9 5%,#578e1d77 58%,transparent 70%),radial-gradient(ellipse 3% 9% at 87% 72%,#c6f674dd 5%,#72a62566 60%,transparent 75%),radial-gradient(ellipse 7% 5% at 75% 8%,#a4d331aa 5%,transparent 75%),radial-gradient(ellipse 3% 6% at 18% 84%,#c6f674bb 5%,transparent 75%),radial-gradient(ellipse at center,transparent 53%,#91ba2244 84%,#5c8b24aa 100%); }
.hurt-wound { background:radial-gradient(ellipse at center,transparent 40%,#7c030a66 73%,#9c000ada 100%);opacity:var(--hurt-wound,0);animation:hurt-pulse var(--hurt-period,1.7s) ease-in-out infinite; }
@keyframes hurt-pulse { 0%,100% { opacity:calc(var(--hurt-wound,0)*.62); } 50% { opacity:var(--hurt-wound,0); } }
/* Blockfield 0.63.2: maskowany blur i winieta pod HUD-em, wyłączone po wygaśnięciu. */
#blast-feedback {position:fixed;inset:0;z-index:1;pointer-events:none;backdrop-filter:blur(var(--blast-blur,7px));-webkit-backdrop-filter:blur(var(--blast-blur,7px));mask-image:radial-gradient(ellipse 62% 58% at 50% 50%,transparent var(--blast-inner,54%),#000 97%);-webkit-mask-image:radial-gradient(ellipse 62% 58% at 50% 50%,transparent var(--blast-inner,54%),#000 97%);}
#blast-feedback::after {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 52%,rgba(9,11,15,calc(.30 * var(--blast-vignette,1))) 84%,rgba(7,9,13,calc(.46 * var(--blast-vignette,1))) 100%);}
#suit-hud,#stamina {z-index:2;}
#weapon-slots button { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: clamp(100px, 13vw, 165px); height: 92px; padding: 8px; background: linear-gradient(145deg,#52675fe8,#263a35f2); border: 1px solid #9eae9d; box-shadow: inset 0 1px #d6dfc033, inset 0 -3px #14231f, 0 3px 8px #0008; color: #eff4dc; clip-path: polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px); }
#weapon-slots button.selected { border-color: #ffe09a; box-shadow: inset 0 -3px #f1c15b, inset 0 1px #fff3c866, 0 0 13px #e7ba6044; color: #fff3cf; background: linear-gradient(145deg,#7c6a3fef,#4b452df4); }
#weapon-slots button.empty { color: #b1bbb0; background: linear-gradient(145deg,#40504be0,#25322fe8); }
#weapon-slots button[data-tier="2"]:not(.empty){border-color:#c399f1;color:#f3e8ff;background:linear-gradient(145deg,#735091f2,#38224ff5);box-shadow:inset 0 1px #e6c9ff59,inset 0 -3px #261637,0 3px 10px #0008}
#weapon-slots button[data-tier="2"].selected{border-color:#e0b9ff;background:linear-gradient(145deg,#a36bcbf5,#5c3281f7);box-shadow:inset 0 1px #f5dfff99,inset 0 -3px #9d65cc,0 0 20px #b86af080;color:#fff}
#weapon-slots button[data-tier="3"]:not(.empty){border-color:#f27d78;color:#ffece8;background:linear-gradient(145deg,#953b42f2,#531f2cf5);box-shadow:inset 0 1px #ffc7be59,inset 0 -3px #38151d,0 3px 10px #0008}
#weapon-slots button[data-tier="3"].selected{border-color:#ffb2a6;background:linear-gradient(145deg,#cf5358f5,#85262ff7);box-shadow:inset 0 1px #ffddd499,inset 0 -3px #d64a4b,0 0 20px #ee585880;color:#fff}
#weapon-slots .slot-icon { width: 100%; height: 37px; object-fit: contain; background: linear-gradient(135deg,#d5d9b8cc,#71877bd9); border: 1px solid #d4d9b688; box-shadow: inset 0 1px #fff8, inset 0 -8px #25363066; filter: drop-shadow(0 2px 2px #000b); }
#weapon-slots .slot-icon[hidden] { display: none; }
.slot-key { position: absolute; left: 8px; top: 6px; font-size: 12px; }
.slot-title { margin-top: 6px; font-size: 10px; line-height: 1.4; }
#weapon-slots small { font-size: 9px; margin-top: 3px; letter-spacing: .09em; color: inherit; }
#weapon-status { position: absolute; bottom: 78px; left: 50%; transform: translateX(-50%); color: #ebd09b; font-size: 12px; letter-spacing: .12em; pointer-events: none; }
/* Adaptacja Blockfield0.63.2 css/style.css; kill bez elementu/ringu. */
/* Celownik i postęp przeładowania ponad etykietami świata oraz ładownią MULE. */
body.fpp #crosshair { width:40px; height:40px; font-size:0; opacity:1; --crosshair-gap:4px; z-index:44; }
#crosshair i { position:absolute; left:50%; top:50%; width:2px; height:8px; margin:-4px 0 0 -1px; background:rgba(255,255,255,.9); mix-blend-mode:difference; transform:rotate(var(--a)) translateY(calc(-1 * var(--crosshair-gap) - 4px)); }
#crosshair i {background:#fff;box-shadow:0 0 0 1px #071013d9,0 0 3px #000;mix-blend-mode:normal;}
#crosshair .crosshair-dot { display:none; position:absolute; left:50%; top:50%; width:5px; height:5px; margin:-2.5px; background:#fff; border-radius:50%; }
#crosshair .crosshair-ring { display:none; position:absolute; inset:-8px; border-radius:50%; background:conic-gradient(#f5c542 calc(var(--reload-progress,0) * 1turn),transparent 0); mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 0); }
#crosshair.reloading i { display:none; }
#crosshair.reloading .crosshair-dot,#crosshair.reloading .crosshair-ring { display:block; }
body.fpp.aiming #crosshair,#crosshair[hidden] { display:none; }
#hitmarker { position:absolute; left:50%; top:50%; width:0; height:0; pointer-events:none; z-index:20; --hm-color:#fff; --hm-glow:#ffffff8c; --hm-len:9px; --hm-thick:2.5px; --hm-gap:7px; --hm-spread:1.85; --hm-dur:260ms; }
#hitmarker i { position:absolute; left:0; top:0; width:var(--hm-thick); height:var(--hm-len); margin:calc(var(--hm-len) / -2) 0 0 calc(var(--hm-thick) / -2); border-radius:calc(var(--hm-thick) / 2); background:var(--hm-color); box-shadow:0 0 0 1px #000d,0 0 7px var(--hm-glow); opacity:0; transform:rotate(var(--a)) translateY(calc(var(--hm-gap) * -1)); }
#hitmarker.hit i { animation:hm-tick var(--hm-dur) cubic-bezier(.15,.85,.3,1) both; }
/* Trafienie w słaby punkt (głowa robala, shared/weak-spot.js): pomarańczowe, dłuższe ramiona; zabicie zostaje czerwone. */
#hitmarker.v-weak { --hm-color:#ffb02e; --hm-glow:#ff9d1ad9; --hm-len:11px; --hm-thick:2.8px; --hm-spread:2.1; --hm-dur:320ms; }
#hitmarker.v-kill { --hm-color:#ff2f2f; --hm-glow:#ff2828d9; --hm-len:13px; --hm-thick:3px; --hm-gap:8px; --hm-spread:2.4; --hm-dur:440ms; }
@keyframes hm-tick { 0% {opacity:1;transform:rotate(var(--a)) translateY(calc(var(--hm-gap) * -.3)) scaleY(.7);} 22% {opacity:1;transform:rotate(var(--a)) translateY(calc(var(--hm-gap) * -1)) scaleY(1);} 100% {opacity:0;transform:rotate(var(--a)) translateY(calc(var(--hm-gap) * -1 * var(--hm-spread))) scaleY(.85);} }
#sniper-scope{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at center,transparent 0 34vmin,rgba(0,0,0,.98) 34.6vmin 100%)}
#sniper-scope[hidden]{display:none}.scope-lens{position:absolute;left:50%;top:50%;width:68vmin;height:68vmin;transform:translate(-50%,-50%);border-radius:50%;border:4px solid #080c0e;box-shadow:inset 0 0 35px #000b,0 0 0 2px #91bec738}.scope-vertical,.scope-horizontal,.scope-center{position:absolute;background:#10181de6;box-shadow:0 0 1px #fff8}.scope-vertical{left:50%;top:4%;bottom:4%;width:1px}.scope-horizontal{top:50%;left:4%;right:4%;height:1px}.scope-center{left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%}.scope-lens span{position:absolute;bottom:10%;left:0;right:0;text-align:center;color:#dceff0a6;font:700 11px system-ui;letter-spacing:.1em;text-shadow:0 1px 3px #000}
