html,body,#root{margin:0;min-height:100%}@font-face{font-family:GrapeSoda;src:url(/fonts/GrapeSoda.ttf) format("truetype");font-display:swap}:root{font-family:Inter,system-ui,sans-serif;background:#0f1118;color:#dce4ff}*{box-sizing:border-box}body{margin:0;background:#0f1118}.landingPage{min-height:100vh;background:#0f1118;display:grid;align-content:start;justify-items:center;padding:24px 12px;gap:12px}.logoText.landingLogo{color:#fcbb1f;font-size:clamp(72px,12vw,140px)}.landingImage{width:min(92vw,640px);height:auto;image-rendering:pixelated}.landingBtn{margin-top:2px;display:inline-grid;place-items:center;text-decoration:none;transition:transform .14s ease,filter .14s ease}.landingBtn img{width:170px;height:auto;image-rendering:pixelated}.landingBtn:hover{transform:translateY(-2px) scale(1.03);filter:brightness(1.08)}.landingX{margin-top:2px;display:grid;place-items:center;text-decoration:none;transition:transform .14s ease,filter .14s ease}.landingXIcon{color:#fcbb1f;font-size:32px;line-height:1;transform:translateY(-1px)}.landingX:hover{transform:translateY(-2px) scale(1.08);filter:brightness(1.08)}.page{max-width:900px;margin:0 auto;padding:24px 14px 40px;display:grid;gap:14px}.logoWrap{display:flex;justify-content:center}.logoText{font-family:GrapeSoda,sans-serif;color:#fcbb1f;font-size:clamp(66px,11vw,124px);line-height:.82}.card{border:2px solid #323a52;border-radius:14px;background:#161b2a;padding:16px}h1,h2{margin:0 0 8px}.gameCard{text-align:center;display:grid;justify-items:center}.gameBoard{margin-top:10px;width:100%;max-width:760px;aspect-ratio:760 / 420;border:2px solid #44507a;border-radius:12px;background:radial-gradient(circle at 50% 30%,#2a3559,#1a2136 68%);position:relative;overflow:hidden;cursor:url(/scope-pointer-red.svg) 48 48,crosshair;-webkit-user-select:none;user-select:none;touch-action:none;outline:none}.gameBoard:focus,.gameBoard:focus-visible{outline:none}.gameBoard.recoil{transform:translateY(2px) scale(.998)}.banana{position:absolute;aspect-ratio:1 / 1;background:transparent;font-size:clamp(18px,3.9vw,30px);pointer-events:none;display:grid;place-items:center;filter:drop-shadow(0 2px 1px rgba(0,0,0,.4))}.gunOverlay{position:absolute;right:-8px;bottom:-10px;width:205px;height:205px;background:url(/glock-overlay.png) no-repeat right bottom / contain;image-rendering:pixelated;pointer-events:none}.muzzle{position:absolute;width:130px;height:130px;transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fff 0 10%,#fff5aaf2 11% 32%,#ffaa00bf 33% 60%,#ff780033 61% 100%);mix-blend-mode:screen;animation:pop .12s ease-out forwards}.shotLine{position:absolute;height:3px;transform-origin:left center;background:linear-gradient(90deg,#ffdc78f2,#ffdc7800);filter:drop-shadow(0 0 6px rgba(255,185,80,.8));pointer-events:none;animation:lineFade .12s ease-out forwards}@keyframes pop{0%{opacity:1;transform:translate(-50%,-50%) scale(.7)}to{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}@keyframes lineFade{0%{opacity:1}to{opacity:0}}.taskRow{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #3d4a70;border-radius:10px;padding:10px;margin-top:10px}button{border:0;border-radius:10px;padding:10px 14px;font-weight:700;color:#fff;background:#3d4f88;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.secondary{margin-top:10px}.form{display:grid;gap:12px;margin-top:12px}label{display:grid;gap:6px;font-weight:600}input{border:1px solid #44507a;border-radius:10px;padding:10px;font-size:16px;background:#0f1320;color:#e9edff}.hint{margin:-2px 0 0;font-size:12px;color:#aab5d6}.error{margin:0;color:#ff8c8c;font-weight:700}.success{margin:0;color:#9df0ad;font-weight:700}@media(max-width:700px){.page{padding:12px 8px 20px;gap:10px}.card{padding:10px;border-radius:12px}.logoText{font-size:clamp(48px,15vw,78px)}.gameCard h1{font-size:clamp(20px,5.2vw,28px);line-height:1.1}.gameCard p{font-size:14px;margin:2px 0 0}.gameBoard{aspect-ratio:4 / 3;border-radius:10px}.banana{font-size:clamp(16px,5vw,24px)}.gunOverlay{width:130px;height:130px;right:-6px;bottom:-6px}.muzzle{width:92px;height:92px}.shotLine{height:2px}.taskRow{align-items:flex-start;flex-direction:column;gap:8px}button{width:100%;padding:10px 12px}.form{gap:10px}.form button[type=submit]{width:100%}}@media(hover:none)and (pointer:coarse){.gameBoard{cursor:crosshair}}
