@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #8b5cf64d}50%{box-shadow:0 0 30px #8b5cf699}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.animate-float{animation:float 6s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.animate-slide-in-left{animation:slide-in-left .6s ease-out}.animate-slide-in-right{animation:slide-in-right .6s ease-out}.animate-fade-in-up{animation:fade-in-up .8s ease-out}.animate-scale-in{animation:scale-in .5s ease-out}.glass-card{background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000001a}.glass-card:hover{background:#ffffff26;border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 40px #00000026}.gradient-bg{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.dark .gradient-bg{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.timeline-line{background:linear-gradient(to bottom,#3b82f6,#8b5cf6,#ec4899,#f59e0b,#10b981)}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media (max-width: 640px){.timeline-card{margin-bottom:1rem}.text-4xl{font-size:2rem}.text-6xl{font-size:2.5rem}.text-3xl{font-size:1.5rem}.text-2xl{font-size:1.25rem}.container{padding-left:1rem;padding-right:1rem}.glass-card{padding:1rem;margin-bottom:1rem}.nav-item{padding:.5rem}.modal-content{margin:.5rem;max-height:95vh}.grid-responsive{grid-template-columns:1fr;gap:1rem}.timeline-item{flex-direction:column!important;text-align:center}.timeline-item .flex-1{padding:.5rem 0}.glass-card input{font-size:16px;padding-left:2.5rem;padding-right:2.5rem}.glass-card input::placeholder{font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}@media (min-width: 641px) and (max-width: 1024px){.text-6xl{font-size:3.5rem}.text-4xl{font-size:2.5rem}.container{padding-left:1.5rem;padding-right:1.5rem}.glass-card{padding:1.5rem}.grid-responsive{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (min-width: 1025px){.grid-responsive{grid-template-columns:repeat(3,1fr);gap:2rem}.glass-card{padding:2rem}}@media (min-width: 1440px){.grid-responsive{grid-template-columns:repeat(4,1fr)}.container{max-width:1400px}}@media (hover: none) and (pointer: coarse){.hover\:scale-105:hover{transform:none}.hover\:bg-white\/20:hover{background-color:#ffffff26}button,.cursor-pointer{min-height:44px;min-width:44px}*{-webkit-tap-highlight-color:rgba(255,255,255,.1)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.glass-card{-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px)}}@media (max-width: 896px) and (orientation: landscape){.text-6xl{font-size:2rem}.text-4xl{font-size:1.5rem}.py-8{padding-top:1rem;padding-bottom:1rem}.space-y-8>*+*{margin-top:1rem}}@media print{.glass-card{background:#fff;border:1px solid #ccc;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.gradient-bg{background:#fff}.text-white{color:#000}.animate-pulse,.animate-float{animation:none}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.loading-shimmer{background:linear-gradient(90deg,#ffffff1a 25%,#fff3,#ffffff1a 75%);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.search-typewriter{overflow:hidden;white-space:nowrap;animation:typewriter 2s steps(20,end)}.search-cursor{animation:blink 1s infinite}.glass-card input::placeholder{transition:opacity .3s ease}.glass-card input:focus::placeholder{opacity:.3}.placeholder-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}
