.books-page{background:var(--site-color-56014801bd, #fff8da);color:var(--site-color-ea35659d19, #12351c);padding:clamp(14px,2vw,30px)}
.books-toolbar{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-bottom:14px}
.books-toolbar h1{font:700 clamp(30px,4vw,56px)/1 "KCSoni Digits",Georgia,serif;margin:0 auto 0 0}
.books-toolbar input{width:min(32vw,440px);border-radius:999px}
.books-filters{display:flex;flex-wrap:wrap;gap:8px}
.books-filters button{background:transparent;border:1px solid var(--site-color-22be1b8854, #82906d);color:var(--site-color-ea35659d19, #12351c)}
.books-filters button.active{background:var(--site-color-e66d3a46d9, #123b1a);color:white}
.books-layout{display:grid;grid-template-columns:minmax(0,2.65fr) minmax(240px,1fr);gap:14px}
.books-shelf,.books-project{min-width:0;border:1px solid var(--site-color-35968171d7, #d6bc78);border-radius:14px;padding:14px 18px 20px;text-align:center}
.books-shelf{background:var(--site-color-15c4acd8ec, #fff8dc)}
.books-project{background:var(--site-color-e66d3a46d9, #123b1a);color:var(--site-color-5da7d1f5d1, #fff8e1)}
.books-layout>section>h2{display:flex;align-items:center;justify-content:center;gap:12px;font:700 clamp(20px,2.2vw,34px)/1.1 "KCSoni Digits",Georgia,serif;margin:0}
.books-layout>section>h2::before,.books-layout>section>h2::after{content:"";height:2px;flex:1;max-width:135px;background:var(--site-color-8554f19799, #b88e25);margin:0}
.books-project h2{color:var(--site-color-a8e4b5e67c, #ffda6e)}
.books-intro{margin:5px 0 14px}
.books-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.books-item{min-width:0}
.books-cover{height:clamp(135px,17vw,260px);display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;min-width:0;margin:8px 0}
.books-cover img{display:block;width:100%;height:100%;min-height:0;max-height:100%;object-fit:contain}
.books-placeholder{box-sizing:border-box;height:100%;max-height:100%;min-height:0;max-width:100%;overflow:hidden;aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:space-between;padding:12% 8%;border:1px solid var(--site-color-00d3117058, #bba465);border-left:7px solid var(--site-color-c07c4b4832, #ffffff24);border-radius:5px;background:var(--site-color-811bcf2e74, #254921);color:var(--site-color-27cf2069e3, #fff8df);font:700 clamp(11px,1.4vw,20px)/1.15 "KCSoni Digits",Georgia,serif;overflow-wrap:anywhere}
.books-item:nth-child(4n+2) .books-placeholder{background:var(--site-color-15bb231eb5, #114953)}
.books-item:nth-child(4n+3) .books-placeholder{background:var(--site-color-72b4e27476, #65273c)}
.books-item:nth-child(4n+4) .books-placeholder{background:var(--site-color-423b24fa2c, #53621e)}
.books-placeholder svg{width:38%;align-self:center;fill:none;stroke:var(--site-color-14b3f156a2, #e2c676);stroke-width:2}
.books-item h3{font:700 clamp(16px,1.55vw,24px)/1.15 "KCSoni Digits",Georgia,serif;margin:10px 0 6px;overflow-wrap:anywhere}
.books-shelf h3::after{content:"";display:block;width:30px;height:3px;background:var(--site-color-24235822dd, #edbb29);margin:8px auto}
.books-item p{margin:6px 0;white-space:pre-line}
.books-project p{font-style:italic}
.books-item a{display:inline-block;color:inherit;border:1px solid var(--site-color-8554f19799, #b88e25);border-radius:6px;padding:4px 10px;margin-top:5px}
.books-layout>section:not(:has(.books-item:not([hidden]))){display:none}
.books-layout:not(:has(.books-shelf .books-item:not([hidden]))),.books-layout:not(:has(.books-project .books-item:not([hidden]))){grid-template-columns:1fr}
.books-empty{display:none}
.books-layout:not(:has(.books-item:not([hidden]))) .books-empty{display:block}
@media(max-width:850px){.books-layout{grid-template-columns:1fr}.books-toolbar input{width:min(100%,420px)}}
@media(max-width:550px){.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.books-toolbar input{width:100%}}

.books-layout > .books-project {
    align-self: start;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--site-color-ea35659d19, #12351c);
}
.books-project h2 {
    color: inherit;
}
.books-project .books-item,
.books-project-empty {
    grid-template-columns: minmax(0, 37%) minmax(0, 1fr);
    max-width: 940px;
    margin: 14px auto 0;
    overflow: hidden;
    border: 1px solid var(--site-color-1659aae138, #a78020);
    border-radius: 12px;
    background: var(--site-color-15c4acd8ec, #fff8dc);
    text-align: left;
}
.books-project .books-item:not([hidden]) {
    display: grid;
}
.books-project-cover {
    display: grid;
    place-items: center;
    padding: 12px 23% 12px 12px;
    color: var(--site-color-a8e4b5e67c, #ffda6e);
    background: linear-gradient( 112deg, var(--site-color-e66d3a46d9, #123b1a) 77%, var(--site-color-f6ffe5beb8, #8c590c) 77%, var(--site-color-2e288b4758, #dba020) 77.8%, var(--site-color-deaafb8e56, #ffe27a) 78.6%, var(--site-color-6aab2067fd, #fff8cc) 79.1%, var(--site-color-3b3e7cbbc8, #ffd75b) 79.6%, var(--site-color-b7caabbe06, #ac7310) 81%, var(--site-color-15c4acd8ec, #fff8dc) 81% );
}
.books-project-cover img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 205px;
    border: 2px solid var(--site-color-15c4acd8ec, #fff8dc);
}
.books-project-cover svg {
    width: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}
.books-project-copy {
    align-self: center;
    min-width: 0;
    padding: 14px 16px;
    overflow-wrap: anywhere;
}
.books-project-copy h3 {
    margin-top: 0;
}
.books-project-copy a {
    background: var(--site-color-e66d3a46d9, #123b1a);
    color: var(--site-color-5da7d1f5d1, #fff8e1);
    text-decoration: none;
}
.books-project-empty {
    display: none;
    min-height: 90px;
}
.books-page:has([data-filter="Book Project"].active) .books-project {
    display: block;
}
.books-page:has([data-filter="Book Project"].active) .books-project:not(:has(.books-item:not([hidden]))) .books-project-empty {
    display: grid;
}
.books-page:has([data-filter="Book Project"].active) .books-empty {
    display: none;
}
@media (min-width: 1200px) {
    .books-shelf .books-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 16px 10px;
    }
    .books-shelf .books-cover {
        height: clamp(120px, 11vw, 170px);
    }
    .books-shelf .books-item h3 {
        font-size: clamp(14px, 1.1vw, 18px);
    }
}
@media (max-width: 550px) {
    .books-project .books-item,
    .books-project-empty {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .books-project-cover {
        padding: 12px;
        background: var(--site-color-e66d3a46d9, #123b1a);
        border-bottom: 2px solid var(--site-color-1659aae138, #a78020);
    }
}
