:root{color-scheme:dark;font-family:Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:#0a0a0a;color:#fafafa;overflow:hidden;-webkit-user-select:none;user-select:none}.main-menu{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0f0a,#0a0a0a,#0a0a0f);position:relative}.main-menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 30%,rgba(0,255,60,.04) 0%,transparent 60%);pointer-events:none}.menu-title{font-size:3.5rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;background:linear-gradient(180deg,#fff,#0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.25rem;text-align:center}.menu-subtitle{font-size:1rem;color:#fff6;letter-spacing:.3em;text-transform:uppercase;margin-bottom:3rem;text-align:center}.menu-buttons{display:flex;flex-direction:column;gap:1rem;align-items:center}.menu-btn{padding:.85rem 3rem;font-size:1.1rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:2px solid rgba(0,255,60,.3);background:#00ff3c0d;color:#0f0;border-radius:4px;cursor:pointer;transition:all .2s;min-width:260px;text-align:center}.menu-btn:hover{background:#00ff3c26;border-color:#00ff3c99;box-shadow:0 0 20px #00ff3c26}.menu-btn:disabled{opacity:.3;cursor:not-allowed}.menu-btn.secondary{border-color:#ffffff26;background:#ffffff08;color:#ffffffb3}.menu-btn.secondary:hover{border-color:#ffffff4d;background:#ffffff0f}.menu-stats{margin-top:2rem;display:flex;gap:2rem;font-size:.85rem;color:#fff6}.menu-stats span{display:flex;flex-direction:column;align-items:center}.menu-stats .stat-val{font-size:1.3rem;font-weight:700;color:#0f0;font-family:monospace}.mission-select{min-height:100vh;padding:2rem;display:flex;flex-direction:column;align-items:center;background:#0a0a0a}.section-title{font-size:2rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem;text-align:center}.mission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;max-width:960px;width:100%}.mission-card{border:1px solid rgba(255,255,255,.08);background:#ffffff05;border-radius:8px;padding:1.25rem;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.mission-card:hover{border-color:#00ff3c4d;background:#00ff3c08}.mission-card.locked{opacity:.4;cursor:not-allowed}.mission-card.locked:hover{border-color:#ffffff14;background:#ffffff05}.mission-num{font-size:.7rem;font-weight:700;color:#00ff3c99;letter-spacing:.2em;text-transform:uppercase;margin-bottom:.35rem}.mission-name{font-size:1.15rem;font-weight:700;margin-bottom:.5rem}.mission-desc{font-size:.8rem;color:#ffffff80;margin-bottom:.75rem;line-height:1.4}.mission-meta{display:flex;gap:1rem;font-size:.75rem;color:#ffffff59}.mission-meta span{display:flex;align-items:center;gap:.3rem}.mission-stars{color:#f0c040;font-size:.85rem;margin-left:auto}.back-btn{margin-top:2rem;padding:.6rem 2rem;font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(255,255,255,.15);background:#ffffff08;color:#ffffffb3;border-radius:4px;cursor:pointer;transition:all .2s}.back-btn:hover{border-color:#ffffff4d;background:#ffffff0f}.rifle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;max-width:960px;width:100%}.rifle-card{border:1px solid rgba(255,255,255,.08);background:#ffffff05;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s;text-align:center}.rifle-card:hover:not(.locked){border-color:#00ff3c4d}.rifle-card.selected{border-color:#0f0;background:#00ff3c0d;box-shadow:0 0 15px #00ff3c1a}.rifle-card.locked{opacity:.35;cursor:not-allowed}.rifle-icon{font-size:2.5rem;margin-bottom:.5rem}.rifle-name{font-size:1rem;font-weight:700;margin-bottom:.25rem}.rifle-stats{font-size:.75rem;color:#fff6;display:flex;flex-direction:column;gap:.2rem;margin-top:.5rem}.rifle-stat-bar{display:flex;align-items:center;gap:.5rem}.rifle-stat-bar .label{min-width:60px;text-align:right;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}.rifle-stat-bar .bar{flex:1;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.rifle-stat-bar .bar-fill{height:100%;background:#0f0;border-radius:2px;transition:width .3s}.rifle-unlock{font-size:.7rem;color:#ffc80099;margin-top:.5rem}.game-screen{position:relative;width:100vw;height:100vh;overflow:hidden;cursor:none}.game-scene{width:100%;height:100%;position:relative;background:linear-gradient(180deg,#1a2a1a,#1a2a1a,#2a3a20,#1a2a15 60%,#151a10)}.sky-gradient{position:absolute;top:0;left:0;right:0;height:45%;background:linear-gradient(180deg,#0a1520,#1a2a3a 40%,#2a3a2a)}.ground{position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(180deg,#1a2515,#0f1a0a)}.mountain{position:absolute;bottom:45%;width:0;height:0}.mountain-1{left:5%;border-left:200px solid transparent;border-right:200px solid transparent;border-bottom:250px solid #15200f}.mountain-2{left:25%;border-left:300px solid transparent;border-right:300px solid transparent;border-bottom:200px solid #182510}.mountain-3{right:10%;border-left:250px solid transparent;border-right:250px solid transparent;border-bottom:220px solid #14200e}.tree{position:absolute;bottom:40%}.tree-trunk{width:8px;height:40px;background:#2a1a0a;margin:0 auto}.tree-top{width:0;height:0;border-left:25px solid transparent;border-right:25px solid transparent;border-bottom:60px solid #0a1a05;position:relative}.tree-top:after{content:"";position:absolute;top:20px;left:-20px;width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-bottom:50px solid #0c1f08}.target-container{position:absolute;cursor:none;transition:none}.target{position:relative;display:flex;flex-direction:column;align-items:center}.target-body{width:36px;height:60px;background:#3a3a3a;border-radius:8px 8px 4px 4px;position:relative;border:2px solid #4a4a4a}.target-head{width:28px;height:28px;background:#4a4a4a;border-radius:50%;margin-bottom:-4px;border:2px solid #5a5a5a;position:relative}.target-head:before{content:"";position:absolute;top:8px;left:5px;width:6px;height:6px;background:#222;border-radius:50%;box-shadow:10px 0 #222}.hit-zone-head{position:absolute;top:0;left:50%;transform:translate(-50%);width:28px;height:28px;border-radius:50%}.hit-zone-body{position:absolute;top:28px;left:50%;transform:translate(-50%);width:36px;height:60px}.target.hit{animation:targetHit .3s ease-out forwards}@keyframes targetHit{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1)}to{transform:scale(.8);opacity:.3}}.target.headshot{animation:headshotHit .4s ease-out forwards}@keyframes headshotHit{0%{transform:scale(1)}30%{transform:scale(1.15)}to{transform:scale(.8);opacity:.3}}.scope-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100}.scope-circle{position:absolute;border:3px solid rgba(0,0,0,.9);border-radius:50%;box-shadow:0 0 0 2000px #000000d9}.scope-crosshair{position:absolute;pointer-events:none}.scope-crosshair .h-line,.scope-crosshair .v-line{position:absolute;background:#f00c}.scope-crosshair .dot{position:absolute;width:4px;height:4px;background:#ff0000e6;border-radius:50%;transform:translate(-50%,-50%)}.scope-ticks{position:absolute;pointer-events:none}.scope-ticks .tick{position:absolute;background:#f006}.muzzle-flash{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:200;animation:flash .15s ease-out forwards}@keyframes flash{0%{background:#ffc86426}to{background:transparent}}.hit-marker{position:fixed;pointer-events:none;z-index:200;font-size:2rem;font-weight:900;color:#ff0;text-shadow:0 0 10px rgba(255,255,0,.5);animation:hitMarker .6s ease-out forwards;transform:translate(-50%,-50%)}.hit-marker.headshot{color:red;font-size:2.5rem;text-shadow:0 0 15px rgba(255,0,0,.5)}@keyframes hitMarker{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-70%) scale(1)}}.score-popup{position:fixed;pointer-events:none;z-index:200;font-size:1.2rem;font-weight:700;font-family:monospace;color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.4);animation:scorePopup .8s ease-out forwards;transform:translate(-50%,-50%)}@keyframes scorePopup{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}to{opacity:0;transform:translate(-50%,-120%) scale(1)}}.hud{position:fixed;top:0;left:0;right:0;z-index:150;pointer-events:none;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:flex-start}.hud-left,.hud-right,.hud-center{display:flex;flex-direction:column;gap:.3rem}.hud-center{align-items:center;position:absolute;left:50%;transform:translate(-50%);top:1rem}.hud-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#ffffff4d}.hud-value{font-size:1.5rem;font-weight:800;font-family:monospace;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.2)}.hud-value.time{color:#0f0;font-size:2rem}.hud-value.time.low{color:#f44;animation:pulse .5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hud-bottom{position:fixed;bottom:1rem;left:0;right:0;z-index:150;pointer-events:none;display:flex;justify-content:center;align-items:center;gap:2rem}.ammo-display{display:flex;align-items:center;gap:.5rem;font-family:monospace;font-size:1.2rem;font-weight:700}.ammo-rounds{color:#fff}.ammo-separator{color:#ffffff4d}.ammo-total{color:#ffffff80;font-size:.9rem}.wind-indicator{display:flex;flex-direction:column;align-items:center;gap:.2rem}.wind-arrow{font-size:1.5rem;color:#fff9;transition:transform .3s}.wind-value{font-family:monospace;font-size:.8rem;color:#fff6}.mission-objective{font-size:.75rem;color:#00ff3c99;letter-spacing:.1em;text-transform:uppercase}.results-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0a0a;padding:2rem}.results-title{font-size:2.5rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem}.results-title.success{color:#0f0}.results-title.fail{color:#f44}.results-stars{font-size:2.5rem;margin-bottom:2rem}.results-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 3rem;margin-bottom:2rem}.result-stat{display:flex;flex-direction:column;align-items:center}.result-stat .label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#fff6}.result-stat .value{font-size:1.8rem;font-weight:800;font-family:monospace;color:#fff}.results-buttons{display:flex;gap:1rem}.diff-easy{color:#4caf50}.diff-medium{color:#ff9800}.diff-hard{color:#f44}.diff-extreme{color:#e040fb}.bullet-hole{position:absolute;width:8px;height:8px;background:radial-gradient(circle,#111 0%,#333 60%,transparent 100%);border-radius:50%;pointer-events:none;z-index:50;transform:translate(-50%,-50%)}.particle{position:absolute;width:2px;height:2px;background:#ffffff1a;border-radius:50%;pointer-events:none;animation:float 8s infinite ease-in-out}@keyframes float{0%,to{transform:translateY(0) translate(0);opacity:0}20%{opacity:.3}80%{opacity:.3}50%{transform:translateY(-30px) translate(15px)}}.mission-complete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mission-complete-card{background:#1a1a1a;border:1px solid rgba(0,255,60,.2);border-radius:12px;padding:2.5rem 3rem;text-align:center;max-width:400px}.pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:300;cursor:default}.pause-card{text-align:center}.pause-card h2{font-size:2rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:2rem}.pause-card .menu-btn{pointer-events:all}.scope-zoom{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:99}.distance-marker{position:absolute;font-family:monospace;font-size:.65rem;color:#ffffff26;pointer-events:none;right:1rem}.target-spawn{animation:targetSpawn .3s ease-out}@keyframes targetSpawn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.screen-shake{animation:shake .15s ease-out}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(2px,-3px)}75%{transform:translate(-2px,1px)}to{transform:translate(0)}}
