@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-12px); }
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(6, 182, 212, 0.3); }
    50% { box-shadow: 0 0 40px rgba(6, 182, 212, 0.6); }
}
@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}
.animate-float { animation: float 4s ease-in-out infinite; }
.animate-fade-in-up { animation: fadeInUp 0.8s ease-out forwards; }
.animate-pulse-glow { animation: pulse-glow 3s ease-in-out infinite; }
.animate-slide-left { animation: slideInLeft 0.7s ease-out forwards; }
.animate-slide-right { animation: slideInRight 0.7s ease-out forwards; }
.td-gradient { background: linear-gradient(135deg, #0D9488, #06B6D4); }
.td-gradient-text { background: linear-gradient(135deg, #0D9488, #06B6D4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.td-dark-panel {
    background: radial-gradient(circle at top right, rgba(6, 182, 212, 0.12), transparent 30%),
                linear-gradient(180deg, #0f172a 0%, #020617 100%);
}
.td-card {
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
    border: 1px solid rgba(6, 182, 212, 0.18);
    backdrop-filter: blur(8px);
}
.td-glow-ring {
    box-shadow: 0 0 0 1px rgba(6, 182, 212, 0.2), 0 10px 30px rgba(0, 0, 0, 0.25);
}
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
::selection { background: rgba(6, 182, 212, 0.25); color: #0f172a; }
