:root {
            --bg-color: #0a0a0a;
            --card-bg: #1a1a1a;
            --radius-main: 32px;
            --radius-thumb: 16px;
        }

        body {
            margin: 0;
            padding: 0;
            background-color: var(--bg-color);
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            overflow: hidden;
        }

        .gallery-container {
            width: 100%;
            max-width: 500px;
            padding: 20px;
        }

        /* 4つの画像を配置するグリッド定義 */
        .gallery-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 16px;
            grid-template-areas:
                "main main main"
                "sub1 sub2 sub3";
        }

        /* data-grid属性に基づいた位置指定 */
        [data-grid="img-1"] { grid-area: main; border-radius: var(--radius-main); cursor: default !important; }
        [data-grid="img-2"] { grid-area: sub1; border-radius: var(--radius-thumb); }
        [data-grid="img-3"] { grid-area: sub2; border-radius: var(--radius-thumb); }
        [data-grid="img-4"] { grid-area: sub3; border-radius: var(--radius-thumb); }

        .product-item {
            width: 100%;
            aspect-ratio: 1 / 1;
            background: var(--card-bg);
            overflow: hidden;
            cursor: pointer;
            position: relative;
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .product-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            pointer-events: none;
        }

        .product-item:not([data-grid="img-1"]):hover {
            border-color: rgba(255, 255, 255, 0.3);
        }