*{margin:0;padding:0;box-sizing:border-box;font-family:poppins,sans-serif}html,body{width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at top,rgba(120,16,20,.22),transparent 42%),linear-gradient(180deg,#12050a,#040205);overscroll-behavior:none;touch-action:none}#container{width:100%;height:100%}.aim-dot{position:fixed;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);pointer-events:none;z-index:25;display:grid;place-items:center}.aim-dot-core{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,#fff6a8,#ffb22c 55%,#ff6c1f);box-shadow:0 0 18px #ff9829f2}canvas{display:block;touch-action:none}.mobile-controls{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none;-webkit-user-select:none;user-select:none}.mobile-joystick,.mobile-fire-button{pointer-events:auto}.mobile-joystick{position:absolute;left:20px;bottom:20px;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:#080e1838;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-joystick-base{width:88px;height:88px;border-radius:50%;border:2px solid rgba(255,255,255,.14);background:#ffffff0a}.mobile-joystick-thumb{position:absolute;width:52px;height:52px;border-radius:50%;background:linear-gradient(180deg,#73bfffeb,#2369ffeb);box-shadow:0 10px 30px #00000047}.mobile-fire-button{position:absolute;right:24px;bottom:26px;width:108px;height:108px;border:0;border-radius:50%;background:linear-gradient(180deg,#ff7373f0,#da2b2bf0);color:#fff;font-size:18px;font-weight:700;letter-spacing:.02em;box-shadow:0 14px 40px #00000057}.mobile-fire-button.is-active{transform:scale(.96);filter:brightness(.92)}.join-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 18% 18%,rgba(255,133,66,.18),transparent 28%),radial-gradient(circle at 82% 22%,rgba(255,232,145,.1),transparent 24%),linear-gradient(#0a020494,#040102e6),url(/images/horror-sky.png) center/cover no-repeat;z-index:10;padding:18px}.join-card{width:min(720px,calc(100vw - 32px));padding:24px;border-radius:28px;border:1px solid rgba(255,236,212,.12);background:linear-gradient(180deg,#200c0ee6,#0b070ceb),#0a060acc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#eaf0ff;box-shadow:0 30px 90px #00000094,inset 0 1px #ffffff0d}.join-hero{display:grid;gap:10px}.join-badge{display:inline-flex;width:fit-content;padding:7px 12px;border-radius:999px;border:1px solid rgba(255,205,143,.22);background:#ffaa4f14;color:#ffd8a0;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.join-title{font-size:clamp(30px,4vw,48px);line-height:.95;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#fff3e5;text-shadow:0 10px 28px rgba(0,0,0,.4)}.join-subtitle{max-width:620px;font-size:14px;line-height:1.6;color:#f4e8dcc7}.join-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.join-panel{padding:16px 18px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04),#0003;box-shadow:inset 0 1px #ffffff08}.join-panel-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#ffdba9ad}.join-panel-value{margin-top:6px;font-size:20px;font-weight:700;color:#fff3e1}.join-panel-copy{margin-top:6px;font-size:13px;line-height:1.5;color:#eaf0ffb8}.join-fields{margin-top:18px;padding:16px;border-radius:20px;border:1px solid rgba(255,255,255,.06);background:#04040747}.join-row{display:grid;grid-template-columns:108px 1fr;gap:12px;align-items:center;margin-top:12px}.join-row:first-child{margin-top:0}.join-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffdfb6b8}.join-input{width:100%;padding:13px 14px;border-radius:14px;outline:none;border:1px solid rgba(255,255,255,.1);background:#0000004d;color:#fff4ea;box-shadow:inset 0 1px #ffffff08}.join-input::placeholder{color:#ffecdc6b}.join-input:focus{border-color:#ffb36694;box-shadow:0 0 0 3px #ff7e2e1f,inset 0 1px #ffffff08}.join-btn{width:100%;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,216,176,.16);background:linear-gradient(135deg,#8c1c24,#ff7b2f);color:#fff;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;box-shadow:0 12px 30px #92251252}.join-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.join-btn-secondary{background:linear-gradient(135deg,#1b1619,#48332d);box-shadow:0 12px 30px #00000047}.join-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}.join-btn:disabled{opacity:.6;cursor:not-allowed}.join-status{min-height:20px;margin-top:12px;font-size:13px;color:#ffefd8d6}.join-bottom{margin-top:18px;display:grid;gap:12px}.join-controls{display:flex;flex-wrap:wrap;gap:10px}.join-chip{padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#f6eee7d1;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.join-hint{font-size:12px;line-height:1.55;color:#eaf0ff9e}.join-hidden{display:none}.join-screen.join-solo-mode .join-card{width:min(620px,calc(100vw - 32px))}.combat-hud{position:fixed;left:18px;bottom:18px;z-index:20;display:grid;gap:12px;pointer-events:none;-webkit-user-select:none;user-select:none}.combat-wave-banner{position:fixed;top:9vh;left:50%;transform:translate(-50%) scale(.92);padding:14px 24px;border-radius:18px;border:1px solid rgba(255,121,121,.2);background:linear-gradient(180deg,#35070ad6,#120407c2),#00000047;color:#ff7878;font-size:clamp(28px,5vw,48px);font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 0 12px rgba(255,61,61,.6),0 8px 24px rgba(0,0,0,.48);box-shadow:0 20px 50px #0006,inset 0 1px #ffffff0a;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:24}.combat-wave-banner.is-active{animation:wave-banner-pulse 2.1s ease forwards}@keyframes wave-banner-pulse{0%{opacity:0;transform:translate(-50%) translateY(-12px) scale(.9);filter:blur(6px)}12%{opacity:1;transform:translate(-50%) translateY(0) scale(1);filter:blur(0)}78%{opacity:1;transform:translate(-50%) translateY(0) scale(1);filter:blur(0)}to{opacity:0;transform:translate(-50%) translateY(10px) scale(1.03);filter:blur(4px)}}.combat-panel{width:min(280px,calc(100vw - 36px));padding:15px 16px;border-radius:18px;border:1px solid rgba(255,232,210,.14);background:linear-gradient(180deg,#1f0b0edb,#0e070cd1),#12070abd;box-shadow:0 20px 46px #00000057,inset 0 1px #ffffff0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.combat-panel-compact{width:auto}.combat-label,.combat-status,.combat-wave,.combat-meta{color:#eef6ff;text-shadow:0 2px 16px rgba(0,0,0,.48)}.combat-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#ffe0b6b8}.combat-bar{width:100%;height:14px;margin-top:10px;border-radius:999px;overflow:hidden;background:#ffffff1a;border:1px solid rgba(255,255,255,.16)}.combat-health-fill{width:100%;height:100%;background:linear-gradient(90deg,#ff4d4d,#ffbe55,#5cff88);transition:width .12s linear}.combat-status{margin-top:10px;font-size:14px;font-weight:600}.combat-wave{font-size:18px;font-weight:700}.combat-meta{margin-top:4px;font-size:13px;color:#fff0e2d6}.combat-hit-flash{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#ff34343d,#ff343400);opacity:0;transition:opacity .12s linear}.combat-hit-flash.is-active{opacity:1}@media (max-width: 640px){.join-card{padding:18px;border-radius:22px}.join-showcase{grid-template-columns:1fr}.join-fields{padding:14px}.join-row{grid-template-columns:1fr;gap:8px}.join-actions{grid-template-columns:1fr}.combat-hud{left:12px;right:12px;bottom:12px}.mobile-joystick{left:14px;bottom:14px;width:118px;height:118px}.mobile-joystick-base{width:80px;height:80px}.mobile-joystick-thumb{width:46px;height:46px}.mobile-fire-button{right:14px;bottom:16px;width:96px;height:96px;font-size:16px}.aim-dot{width:22px;height:22px}.aim-dot-core{width:9px;height:9px}}
