*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    font-size:16px;

}

body{

    background:#121212;

    color:#ffffff;

    font-family:
        Segoe UI,
        Roboto,
        Arial,
        sans-serif;

    display:flex;

    justify-content:center;

    min-height:100vh;

}

.app{

    width:100%;

    max-width:430px;

    min-height:100vh;

    background:#181818;

}

.header{

    position:sticky;

    top:0;

    z-index:100;

    background:#202020;

    padding:16px;

    box-shadow:
        0 2px 8px
        rgba(0,0,0,.35);

}

.logo{

    font-size:24px;

    font-weight:700;

    margin-bottom:16px;

}

.search{

    width:100%;

    height:44px;

    border:none;

    outline:none;

    border-radius:10px;

    padding:0 14px;

    background:#2b2b2b;

    color:white;

    font-size:15px;

}

.search::placeholder{

    color:#999;

}

#library{

    padding:16px;

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:14px;

}

.loading{

    grid-column:1/-1;

    text-align:center;

    padding:40px;

    color:#888;

}

.card{

    cursor:pointer;

}

.cover{

    width:100%;

    aspect-ratio:7/10;

    object-fit:cover;

    border-radius:10px;

    display:block;

    background:#2a2a2a;

}

.title{

    margin-top:8px;

    font-size:13px;

    line-height:18px;

    overflow:hidden;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:2;

}

@media (max-width:360px){

    #library{

        grid-template-columns:
            repeat(2,1fr);

    }

}