        .page-main {
            padding: 0 20px 28px;
        }

        .page-header {
            max-width: min(1100px, 96vw);
            margin: 14px auto 12px;
        }

        .page-title {
            margin: 0 0 4px;
            font-size: clamp(22px, 4vw, 32px);
        }

        .page-lead {
            margin: 0;
            color: #5b6470;
            font-size: clamp(14px, 2.6vw, 16px);
        }

        .tool-grid {
            --min: 260px;
            --gap: 16px;
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(var(--min), 1fr));
            gap: var(--gap);
            max-width: min(1100px, 96vw);
            margin: 18px auto 0;
        }

        .tool-card {
            position: relative;
            display: grid;
            grid-template-rows: auto 1fr auto;
            gap: 10px;
            background: #fff;
            border: 10px solid #bfffcf;
            border-radius: 16px;
            box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
            overflow: hidden;
            transition: transform .16s ease, box-shadow .16s ease;
            text-decoration: none;
            color: inherit;
        }

        .tool-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 12px 28px rgba(0, 0, 0, .10);
        }

        .tool-thumb {
            aspect-ratio: 16 / 9;
            background: #f3f7fb;
            display: block;
            overflow: hidden;
        }

        .tool-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .tool-body {
            padding: 12px 14px 8px;
        }

        .tool-title {
            margin: 0 0 4px;
            font-size: 15px;
            font-weight: 800;
            letter-spacing: .01em;
        }

        .tool-desc {
            margin: 0;
            color: #6b7280;
            font-size: 12px;
            line-height: 1.6;
            min-height: 2.2em;
        }

        .tool-meta {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 0 14px 14px;
            font-size: 12px;
            color: #6b7280;
        }

        .badge {
            display: inline-block;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .02em;
            color: #fff;
            background: #6366f1;
            padding: 4px 8px;
            border-radius: 999px;
            box-shadow: 0 4px 10px rgba(99, 102, 241, .25);
        }

        .badge.new {
            background: #f43f5e;
        }

        /* NEW */
        .badge.beta {
            background: #22c55e;
        }

        /* BETA */

        .ext-mark {
            margin-left: .25em;
            opacity: .7;
        }

        .tool-card.is-penguin .tool-thumb {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 12px;
        }

        .tool-card.is-penguin .tool-thumb img {
            width: 60%;
            height: auto;
            object-fit: contain;
        }

        /* モバイル少しゆったり */
        @media (max-width: 600px) {
            .tool-grid {
                --min: 200px;
                --gap: 12px;
            }
        }