/* ─── Expand-on-Hover Panel Gallery ─── */ .expand-hover-container { display: flex; gap: 8px; height: 450px; width: 100%; max-width: 1100px; margin: 0 auto; padding: 0; overflow: hidden; border-radius: 20px; } @media (max-width: 768px) { .expand-hover-container { height: 280px; gap: 4px; border-radius: 14px; } } @media (max-width: 480px) { .expand-hover-container { height: 220px; gap: 3px; border-radius: 10px; } } @media (max-width: 480px) { .expand-hover-panel.collapsed { flex: 0.3; } } /* ─── Individual Panel ─── */ .expand-hover-panel { position: relative; flex: 1; min-width: 0; overflow: hidden; border-radius: 16px; cursor: pointer; transition: flex 0.6s cubic-bezier(0.25, 0.8, 0.25, 1); } .expand-hover-panel.expanded { flex: 4; } .expand-hover-panel.collapsed { flex: 0.6; } @media (max-width: 768px) { .expand-hover-panel { border-radius: 10px; } .expand-hover-panel.expanded { flex: 5; } .expand-hover-panel.collapsed { flex: 0.4; } } /* ─── Panel Image ─── */ .expand-hover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1); } .expand-hover-panel:hover .expand-hover-image { transform: scale(1.05); } /* ─── Dark Overlay ─── */ .expand-hover-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.05) 100%); transition: background 0.5s ease; } .expand-hover-panel.collapsed .expand-hover-overlay { background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.5) 100%); } /* ─── Content (Title + Subtitle) ─── */ .expand-hover-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.5rem; display: flex; flex-direction: column; gap: 4px; z-index: 10; } @media (max-width: 768px) { .expand-hover-content { padding: 1rem; } } .expand-hover-title { font-size: 1.25rem; font-weight: 600; color: #fff; white-space: nowrap; transition: font-size 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); } .expand-hover-panel.expanded .expand-hover-title { font-size: 1.75rem; } .expand-hover-panel.collapsed .expand-hover-title { font-size: 0.9rem; writing-mode: vertical-rl; text-orientation: mixed; transform: rotate(180deg); position: absolute; bottom: 1.5rem; left: 50%; margin-left: -0.5em; } @media (max-width: 768px) { .expand-hover-title { font-size: 1rem; } .expand-hover-panel.expanded .expand-hover-title { font-size: 1.25rem; } .expand-hover-panel.collapsed .expand-hover-title { font-size: 0.75rem; } } .expand-hover-subtitle { font-size: 0.85rem; color: rgba(255, 255, 255, 0.6); white-space: nowrap; overflow: hidden; opacity: 0; max-height: 0; transition: opacity 0.4s ease 0.15s, max-height 0.4s ease; } .expand-hover-panel.expanded .expand-hover-subtitle { opacity: 1; max-height: 2rem; } @media (max-width: 768px) { .expand-hover-subtitle { font-size: 0.7rem; } }