:root {
            --transition-speed: 0.6s;
            --transition-curve: cubic-bezier(0.25, 1, 0.5, 1);
        }

        body {
            margin: 0;
            padding: 0;
            background-color: #ffffff;
            text-align: center;
            /* Removed flex from body to allow vertical scrolling/stacking */
        }

        /* Banner Image */
        .banner {
            width: 100%;
            display: block;
        }

        h1 {
            margin-top: 20px;
            color: #333;
        }

        p {
            color: #666;
            margin-bottom: 30px;
        }

        /* The main gallery container */
        .gallery-container {
            display: flex;
            width: 95vw;
            height: 60vh; /* Adjusted height to fit better under text */
            margin: 0 auto 40px auto; /* Centered horizontally with bottom margin */
            gap: 15px;
            overflow: hidden;
        }

        /* Individual Panel Styling */
        .panel {
            position: relative;
            flex: 1;
            overflow: hidden;
            cursor: pointer;
            transition: flex var(--transition-speed) var(--transition-curve);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            border: 1px solid #ddd;
        }

        /* Expand effect on hover */
        .panel:hover {
            flex: 2.5;
        }

        /* Character Image placement within panels */
        .panel img {
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            height: 100%;
            width: auto;
            object-fit: cover;
            z-index: 1;
        }

        /* Label styling */
        .panel-label {
            position: relative;
            z-index: 2;
            padding: 15px;
            width: 100%;
            box-sizing: border-box; /* Ensures padding doesn't break width */
            text-align: center;
            background: white;
            font-size: 1.2rem;
            border-top: 1px solid #ddd;
        }

        /* Panel Colors */
        .panel:nth-child(1) { background-color: #ff5e5e; }
        .panel:nth-child(2) { background-color: #ffcc80; }
        .panel:nth-child(3) { background-color: #64b5f6; }