.youtube-library {
        margin: 0 0 56px;
    }

    .youtube-filter {
        display: flex;
        flex-wrap: wrap;
        gap: 0;
        margin: 0 0 24px;
        padding: 0;
        list-style: none;
        border-bottom: 2px solid #ddd;
    }

    .youtube-filter__tab {
        padding: 10px 24px;
        font-size: 1.4rem;
        font-weight: bold;
        color: #999;
        cursor: pointer;
        border-bottom: 3px solid transparent;
        margin-bottom: -2px;
        transition: color 0.2s ease, border-color 0.2s ease;
        letter-spacing: 0.04em;
    }

    .youtube-filter__tab:hover {
        color: #555;
    }

    .youtube-filter__tab.is-active {
        color: #21445b;
        border-bottom-color: #21445b;
    }

    .youtube-card-list {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        margin: 0 0 40px;
        padding: 0;
        list-style: none;
    }

    .youtube-card {
        display: flex;
        flex-direction: column;
        width: 220px;
        cursor: pointer;
        border: 3px solid transparent;
        border-radius: 4px;
        overflow: hidden;
        transition: border-color 0.2s ease;
        background: #fff;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
        padding: 0;
    }

    .youtube-card.is-active {
        border-color: #21445b;
    }

    .youtube-card.is-filtered-out {
        display: none;
    }

    .youtube-card__thumb {
        position: relative;
        overflow: hidden;
        aspect-ratio: 16 / 9;
        background: #111;
    }

    .youtube-card__thumb img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: filter 0.25s ease;
    }

    .youtube-card:hover .youtube-card__thumb img {
        filter: brightness(0.45);
    }

    .youtube-card__info {
        box-sizing: border-box;
        flex: 0 0 88px;
        padding: 10px 12px 12px;
    }

    .youtube-card__category {
        font-size: 1.1rem;
        color: #21445b;
        font-weight: bold;
        margin-bottom: 4px;
    }

    .youtube-card__title {
        display: -webkit-box;
        overflow: hidden;
        min-height: calc(1.4rem * 1.55 * 2);
        font-size: 1.4rem;
        font-weight: bold;
        color: #3b3b3b;
        line-height: 1.55;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .youtube-viewer {
        display: none;
        margin: 0 0 48px;
    }

    .youtube-viewer.is-visible {
        display: block;
    }

    .youtube-viewer__header {
        margin-bottom: 20px;
        padding-bottom: 12px;
        border-bottom: 2px solid #21445b;
    }

    .youtube-viewer__category {
        font-size: 1.3rem;
        color: #21445b;
        font-weight: bold;
        margin-bottom: 4px;
    }

    .youtube-viewer__title {
        font-size: 2rem;
        font-weight: bold;
        color: #3b3b3b;
        margin-bottom: 6px;
    }

    .youtube-viewer__subtitle {
        font-size: 1.3rem;
        color: #777;
    }

    .youtube-player {
        width: 100%;
        max-width: 860px;
        margin: 0 auto;
    }

    .youtube-player__frame {
        position: relative;
        width: 100%;
        background: #111;
    }

    .youtube-player__frame--wide {
        aspect-ratio: 16 / 9;
    }

    .youtube-player__frame--short {
        width: min(100%, 380px);
        aspect-ratio: 9 / 16;
        margin: 0 auto;
    }

    .youtube-player__frame iframe {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        border: 0;
    }

    .youtube-viewer__links {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 18px;
    }

    .youtube-viewer__links a,
    .youtube-channel-link {
        display: inline-block;
        padding: 10px 22px;
        color: #fff;
        font-size: 1.4rem;
        font-weight: bold;
        text-decoration: none;
        background: #21445b;
        border-radius: 4px;
    }

    .youtube-channel-box {
        margin-top: 48px;
        padding: 28px;
        background: #f7f7f7;
        border-left: 4px solid #21445b;
        text-align: center;
    }

    .youtube-channel-box p {
        margin-bottom: 18px;
        color: #3b3b3b;
        font-size: 1.5rem;
        line-height: 1.8;
    }

    .youtube-loading,
    .youtube-error {
        text-align: center;
        padding: 40px 0;
        color: #777;
        font-size: 1.4rem;
    }

    .youtube-error {
        color: #ff4545;
    }

    @media screen and (max-width: 768px) {
        .youtube-filter {
            overflow-x: auto;
            flex-wrap: nowrap;
        }

        .youtube-filter__tab {
            flex: 0 0 auto;
            padding: 10px 16px;
            font-size: 1.3rem;
            white-space: nowrap;
        }

        .youtube-card-list {
            gap: 12px;
        }

        .youtube-card {
            width: calc(50% - 6px);
        }

        .youtube-card__title {
            font-size: 1.25rem;
        }

        .youtube-viewer__title {
            font-size: 1.7rem;
        }

        .youtube-channel-box {
            padding: 22px 16px;
        }
    }
