@keyframes gradient-shift {
0% { 
background-position: 0% 50%; 
}
50% { 
background-position: 100% 50%; 
}
100% { 
background-position: 0% 50%; 
}
}
.animated-gradient {
background-size: 200% 200% !important;
animation: gradient-shift 8s ease infinite;
} .archive-header {
position: relative;
background-attachment: fixed;
background-size: cover;
background-position: center;
}
.archive-header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.1);
z-index: 1;
}
.archive-header > * {
position: relative;
z-index: 2;
} .follow-button {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.follow-button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s;
}
.follow-button:hover::before {
left: 100%;
}
.follow-button:hover {
transform: translateY(-3px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.follow-button:active {
transform: translateY(-1px);
} .archive-stats {
backdrop-filter: blur(10px);
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.3);
transition: all 0.3s ease;
}
.archive-stats:hover {
background: rgba(255, 255, 255, 0.3);
transform: translateY(-2px);
} .post-card {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.post-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, #3b82f6, #8b5cf6, #06b6d4);
transform: scaleX(0);
transition: transform 0.3s ease;
z-index: 1;
}
.post-card:hover::before {
transform: scaleX(1);
}
.post-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
} .category-pill {
position: relative;
overflow: hidden;
transition: all 0.2s ease;
}
.category-pill::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
transition: left 0.3s;
}
.category-pill:hover::before {
left: 100%;
}
.category-pill:hover {
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
} @keyframes float {
0%, 100% { 
transform: translateY(0px) rotate(0deg); 
}
50% { 
transform: translateY(-20px) rotate(5deg); 
}
}
.archive-header .absolute.w-96,
.archive-header .absolute.w-64 {
animation: float 6s ease-in-out infinite;
}
.archive-header .absolute.w-64 {
animation-delay: -3s;
animation-direction: reverse;
} .loading {
opacity: 0.6;
pointer-events: none;
}
.loading::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 20px;
height: 20px;
margin: -10px 0 0 -10px;
border: 2px solid #f3f3f3;
border-top: 2px solid #3b82f6;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
} @media (max-width: 768px) {
.archive-header {
padding: 3rem 0;
}
.archive-header h1 {
font-size: 2.5rem;
}
.archive-stats {
padding: 0.75rem 1rem;
font-size: 0.9rem;
}
} @media (prefers-color-scheme: dark) {
.archive-stats {
background: rgba(0, 0, 0, 0.3);
border: 1px solid rgba(255, 255, 255, 0.1);
color: white;
}
.post-card {
background: #1f2937;
border-color: #374151;
color: white;
}
.category-pill {
border-color: rgba(255, 255, 255, 0.2);
}
} @media print {
.follow-button,
.archive-header .absolute,
.animated-gradient {
display: none !important;
}
.archive-header {
background: none !important;
color: black !important;
padding: 1rem 0;
}
} .follow-button:focus,
.category-pill:focus {
outline: 2px solid #3b82f6;
outline-offset: 2px;
} @media (prefers-reduced-motion: reduce) {
.animated-gradient,
.post-card,
.follow-button,
.archive-stats,
.category-pill {
animation: none !important;
transition: none !important;
}
.post-card:hover,
.follow-button:hover,
.archive-stats:hover,
.category-pill:hover {
transform: none !important;
}
}