*{margin:0;padding:0;box-sizing:border-box}body{background:#000;display:flex;justify-content:center;align-items:center;height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;font-family:'Courier New',ui-monospace,monospace;color:#fff}#screen{position:relative;width:min(100vw,calc(100dvh * 9 / 16));height:min(100dvh,calc(100vw * 16 / 9));container-type:inline-size}canvas{image-rendering:pixelated;width:100%;height:100%;display:block}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4%;padding-bottom:max(8%,calc(4%+env(safe-area-inset-bottom)));background:linear-gradient(to bottom,rgba(10,10,46,0.94),rgba(0,0,0,0.97));text-align:center;overflow:hidden;opacity:1;transition:opacity 0.6s ease-in}#overlay-gameover{background:linear-gradient(to bottom,rgba(40,0,0,0.85),rgba(0,0,0,0.97))}#overlay-pause{background:rgba(0,0,0,0.55)}#btn-pause{position:absolute;top:9cqi;right:2cqi;width:9cqi;height:9cqi;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.45);border:1px solid rgba(255,230,100,0.4);border-radius:8px;color:#ffe566;font-family:inherit;font-size:3.6cqi;line-height:1;letter-spacing:0.1em;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent;transition:background 0.12s,transform 0.06s}#btn-pause:hover{background:rgba(0,0,0,0.65)}#btn-pause:active{transform:scale(0.94)}#btn-pause.hidden{display:none}.overlay.hidden{opacity:0;pointer-events:none}.overlay-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:3cqi}.title-block{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4cqi}.title{font-size:14cqi;line-height:1;letter-spacing:0.04em;color:#ffe566;text-shadow:0 0 18px rgba(255,200,50,0.45)}.tagline{font-size:3.6cqi;color:#cccccc;letter-spacing:0.04em}.heading{font-size:7cqi;letter-spacing:0.06em;color:#ffffff;margin-top:2cqi}.heading-bad{color:#ff6666;text-shadow:0 0 16px rgba(255,80,80,0.4)}.heading-good{color:#88ff99;text-shadow:0 0 16px rgba(120,255,140,0.4)}.detail{font-size:3.6cqi;color:#cccccc;line-height:1.7;flex:1;display:flex;align-items:center;justify-content:center}.btn{font-family:inherit;font-weight:bold;font-size:4.2cqi;padding:2.6cqi 8cqi;background:#ffcc44;color:#1a1a1a;border:none;border-radius:14px;cursor:pointer;letter-spacing:0.1em;box-shadow:0 5px 0 #aa7700,0 0 28px rgba(255,200,50,0.35);transition:transform 0.06s,box-shadow 0.06s,background 0.12s;-webkit-tap-highlight-color:transparent;margin-bottom:2cqi}.btn:hover{background:#ffe266}.btn:active{transform:translateY(3px);box-shadow:0 2px 0 #aa7700,0 0 16px rgba(255,200,50,0.3)}.btn:disabled{background:#555;color:#bbb;cursor:progress;box-shadow:0 5px 0 #222,0 0 18px rgba(255,255,255,0.08);animation:btn-loading-pulse 1.4s ease-in-out infinite}.btn:disabled:hover{background:#555}.btn:disabled:active{transform:none;box-shadow:0 5px 0 #222,0 0 18px rgba(255,255,255,0.08)}@keyframes btn-loading-pulse{0%,100%{opacity:0.75}50%{opacity:1}}.btn-revenge{background:#ff4d4d;color:#fff;box-shadow:0 5px 0 #882222,0 0 32px rgba(255,80,80,0.55);animation:revenge-pulse 1.6s ease-in-out infinite}.btn-revenge:hover{background:#ff6666}.btn-revenge:active{box-shadow:0 2px 0 #882222,0 0 18px rgba(255,80,80,0.4)}@keyframes revenge-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}.btn-secondary{background:rgba(255,255,255,0.15);color:#ffffff;border:1px solid rgba(255,255,255,0.3);box-shadow:0 4px 0 rgba(0,0,0,0.3);font-size:3.6cqi;padding:2cqi 6cqi}.btn-secondary:hover{background:rgba(255,255,255,0.25)}.btn-secondary:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,0.3)}.btn-stack{display:flex;flex-direction:column;align-items:center;gap:2cqi;width:100%;margin-bottom:2cqi}.btn-stack .btn{margin-bottom:0}.btn-hint{font-size:2.6cqi;color:#ffaaaa;margin-top:-1cqi;font-style:italic;letter-spacing:0.04em}.controls-block{display:flex;flex-direction:column;align-items:center;gap:2cqi;margin-top:2cqi}.controls-block.hidden{display:none}.title-decoy{display:flex;flex-direction:column;align-items:center;gap:1.5cqi;padding:2cqi 4cqi 1cqi;text-decoration:none;color:#f0e0a0;width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 0.2s ease,filter 0.2s ease}.title-decoy img{width:32cqi;height:auto;display:block;pointer-events:none;filter:drop-shadow(0 0 16px rgba(255,200,100,0.25));animation:decoy-wiggle 4s ease-in-out infinite;transform-origin:50% 90%}.title-decoy-label{font-size:3.2cqi;letter-spacing:0.05em;font-style:italic;text-shadow:0 0 12px rgba(255,200,100,0.35)}.title-decoy:hover,.title-decoy:focus-visible{transform:translateY(-1cqi);filter:brightness(1.1);outline:none}.title-decoy:hover img,.title-decoy:focus-visible img{animation-duration:0.6s;filter:drop-shadow(0 0 28px rgba(255,220,120,0.55))}@keyframes decoy-wiggle{0%,100%{transform:rotate(-2deg) translateY(0)}25%{transform:rotate(2deg) translateY(-0.4cqi)}50%{transform:rotate(-1deg) translateY(0)}75%{transform:rotate(3deg) translateY(-0.6cqi)}}@media (prefers-reduced-motion:reduce){.title-decoy img{animation:none}}.control-row{display:flex;align-items:center;justify-content:center;gap:1.2cqi}.key-cap{display:inline-flex;align-items:center;justify-content:center;min-width:6cqi;height:6cqi;padding:0 1.5cqi;background:rgba(255,255,255,0.08);border:2px solid rgba(255,230,100,0.45);border-radius:8px;color:#ffe566;font-size:3cqi;font-weight:bold;box-shadow:0 3px 0 rgba(255,200,50,0.25)}.key-cap.key-wide{min-width:16cqi;letter-spacing:0.1em}.control-label{font-size:3cqi;color:#cccccc;letter-spacing:0.08em;margin-left:1cqi}.species-grid{display:flex;flex-direction:column;gap:2.4cqi;width:100%;flex:1;justify-content:center;overflow-y:auto;padding:2cqi 0}.species-card{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.18);border-radius:12px;padding:2.4cqi;display:grid;grid-template-columns:auto 1fr;gap:3cqi;align-items:center;text-align:left}.species-card img{width:18cqi;height:18cqi;object-fit:contain;image-rendering:pixelated;background:rgba(0,0,0,0.25);border-radius:8px;padding:1cqi}.species-card .common{font-size:3.6cqi;margin-bottom:0.6cqi;color:#ffffff}.species-card .scientific{font-style:italic;color:#aaccff;font-size:2.6cqi;margin-bottom:1.4cqi}.species-card .desc{font-size:2.6cqi;color:#dddddd;line-height:1.45}.species-card.placeholder{grid-template-columns:1fr;text-align:center;color:#888;font-style:italic;padding:4cqi}