:root {
--space-sm: 1rem;
--space-md: 1.25rem;
--border-radius: 0.75rem;
--transition-fast: 0.3s ease-in-out;
}
#bento-div {
width: 100%;
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
grid-auto-rows: 20rem;
gap: var(--space-md);
padding: var(--space-sm);
}
.bento-item {
grid-column: span 4;
overflow: hidden;
border-radius: var(--border-radius);
position: relative;
cursor: pointer;
transition: transform var(--transition-fast), box-shadow var(--transition-fast);
background: #111827;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}
.bento-item:hover {
transform: translateY(-8px);
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6);
}
.bento-item-1 {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.bento-item-2 {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}
.bento-item-3 {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}
.bento-item-4 {
background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}
.bento-item-5 {
background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}
.bento-item-6 {
background: linear-gradient(135deg, #30cfd0 0%, #330867 100%);
}
.project-overlay {
position: absolute;
inset: 0;
padding: 1.5rem;
background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
color: white;
display: flex;
flex-direction: column;
justify-content: flex-end;
transition: background var(--transition-fast);
}
.bento-item:hover .project-overlay {
background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0.2) 100%);
}
.project-badge {
position: absolute;
top: 1.5rem;
right: 1.5rem;
padding: 0.375rem 0.75rem;
background: rgba(255, 255, 255, 0.95);
color: #2d3748;
border-radius: 0.25rem;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.overlay-content {
transform: translateY(0);
transition: transform var(--transition-fast);
}
.bento-item:hover .overlay-content {
transform: translateY(-0.5rem);
}
.overlay-title {
font-size: 1.5rem;
font-weight: 700;
margin: 0 0 0.5rem 0;
color: white;
}
.overlay-category {
font-size: 0.875rem;
opacity: 0.9;
margin: 0 0 1rem 0;
color: rgba(255, 255, 255, 0.9);
}
.overlay-tags {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
}
.tag {
padding: 0.25rem 0.625rem;
background: rgba(255, 255, 255, 0.2);
border-radius: 0.25rem;
font-size: 0.75rem;
font-weight: 500;
backdrop-filter: blur(10px);
color: white;
}
@media (max-width: 768px) {
#bento-div {
grid-template-columns: repeat(1, 1fr);
grid-auto-rows: 16rem;
}
.bento-item {
grid-column: span 1;
}
}