@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes gridAnimation { 0% { background-position: 0 0; } 100% { background-position: 50px 50px; } } @keyframes slideIn { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes slideOut { from { transform: translateY(0); opacity: 1; } to { transform: translateY(50px); opacity: 0; } } @keyframes shake { 10%, 90% { transform: translateX(-1px); } 20%, 80% { transform: translateX(2px); } 30%, 50%, 70% { transform: translateX(-4px); } 40%, 60% { transform: translateX(4px); } } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #1f2937; } ::-webkit-scrollbar-thumb { background-color: #4b5563; border-radius: 4px; border: 2px solid #1f2937; } * { user-select: none; scrollbar-width: thin; scrollbar-color: #4b5563 #1f2937; } .pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } .slide-in { animation: slideIn 0.5s forwards; } .slide-out { animation: slideOut 0.5s forwards; } .animate-shake { animation: shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; } .glow { box-shadow: 0 0 15px rgba(59, 130, 246, 0.7); } .glow-success { box-shadow: 0 0 15px rgba(16, 185, 129, 0.7); } .glow-error { box-shadow: 0 0 15px rgba(239, 68, 68, 0.7); } .spinner { animation: spin 1s linear infinite; } .grid-bg { position: fixed; inset: 0; width: 100%; height: 100%; background-image: linear-gradient(rgba(55, 65, 81, 0.3) 1px, transparent 1px), linear-gradient(90deg, rgba(55, 65, 81, 0.3) 1px, transparent 1px); background-size: 50px 50px; animation: gridAnimation 2s linear infinite; z-index: -1; } .card-height { min-height: 180px; display: flex; flex-direction: column; } .card-content { display: flex; flex-direction: column; justify-content: space-between; height: 100%; } .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; right: 0; background-color: #374151; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; border-radius: 0.5rem; border: 1px solid #4b5563; } .dropdown-content a { color: #e5e7eb; padding: 12px 16px; text-decoration: none; display: block; transition: background-color 0.2s; } .dropdown-content a:hover { background-color: #4b5563; } .show { display: block; } #licenseText { position: relative; display: inline-block; background-color: rgba(59, 131, 246, 0.26); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; padding: 0.1rem 0.25rem; border-radius: 0.375rem; cursor: pointer; overflow: visible; } #licenseText .tooltip { position: absolute; top: -2rem; left: 50%; transform: translateX(-50%) translateY(0); white-space: nowrap; font-size: 0.75rem; background-color: #1f2937; color: #f9fafb; padding: 0.25rem 0.5rem; border-radius: 0.25rem; opacity: 0; transition: opacity 0.2s ease, transform 0.2s ease; pointer-events: none; z-index: 10; } #licenseText:hover .tooltip-hover { opacity: 1; transform: translateX(-50%) translateY(-0.25rem); } #licenseText.copied .tooltip-copied { opacity: 1; transform: translateX(-50%) translateY(-0.25rem); } #licenseText.copied .tooltip-hover { opacity: 0 !important; transform: translateX(-50%) translateY(0) !important; transition: none !important; }