:root{--bg-color: #0f172a;--grid-color: rgba(30, 41, 59, .5);--ui-color: #f8fafc;--accent-color: #22d3ee}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--ui-color);transition:background-color .5s,color .5s}.font-mono{font-family:JetBrains Mono,monospace}.chart-container{position:relative;width:100%;height:200px}canvas#gameCanvas{position:relative;z-index:10;touch-action:none;cursor:crosshair}@keyframes gridScan{0%{background-position:0 0}to{background-position:40px 40px}}@keyframes gridPulse{0%{opacity:.3}50%{opacity:.7}to{opacity:.3}}.blueprint-bg{position:relative;background-color:var(--bg-color);overflow:hidden;transition:background-color .5s}.blueprint-bg:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:40px 40px;animation:gridScan 20s linear infinite,gridPulse 4s ease-in-out infinite;z-index:0;pointer-events:none;transition:background-image .5s}.blueprint-bg.pulse-fast:before{animation-duration:5s,1s}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}.shake-effect{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes scoreFlash{0%{color:var(--accent-color);transform:scale(1)}50%{color:#fff;transform:scale(1.2);text-shadow:0 0 10px var(--accent-color)}to{color:var(--accent-color);transform:scale(1)}}.score-bump{animation:scoreFlash .3s ease-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#1e293b80;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#334155cc;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#475569}.theme-btn.active{ring-width:2px;ring-color:var(--accent-color);transform:scale(1.05)}.theme-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.modal-overlay{position:fixed;inset:0;background-color:#000c;backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease}.modal-overlay.active{opacity:1;pointer-events:all}.modal-content{background-color:#1e293b;border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:2rem;max-width:90vw;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;transform:scale(.9);transition:transform .3s ease;box-shadow:0 20px 25px -5px #00000080}.modal-overlay.active .modal-content{transform:scale(1)}@keyframes leaderboardPulse{0%,to{box-shadow:0 0 #22d3eeb3,0 0 20px #22d3ee4d}50%{box-shadow:0 0 0 8px #22d3ee00,0 0 30px 10px #22d3ee80}}@keyframes leaderboardBorderGlow{0%,to{border-color:#22d3ee80}50%{border-color:#22d3ee}}@keyframes leaderboardSlideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes leaderboardShine{0%{background-position:-200% center}to{background-position:200% center}}#submitLeaderboardPanel{animation:leaderboardSlideIn .5s ease-out,leaderboardPulse 2s ease-in-out infinite,leaderboardBorderGlow 2s ease-in-out infinite;border-width:2px;position:relative;overflow:hidden}#submitLeaderboardPanel:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(34,211,238,.2),transparent);animation:leaderboardShine 3s ease-in-out infinite;pointer-events:none}#submitLeaderboardPanel.attention{animation:leaderboardSlideIn .5s ease-out,leaderboardPulse 1s ease-in-out infinite,leaderboardBorderGlow 1s ease-in-out infinite}@keyframes modalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes modalPulse{0%,to{box-shadow:0 0 #22d3eeb3,0 20px 60px #22d3ee4d}50%{box-shadow:0 0 0 10px #22d3ee00,0 20px 60px 20px #22d3ee80}}.leaderboard-modal-content{animation:modalSlideUp .4s ease-out,modalPulse 2s ease-in-out infinite}
