.kkp-portfolio{--kkp-columns:4;width:100%}.kkp-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 28px}.kkp-filter,.kkp-load-more{appearance:none;border:1px solid currentColor;background:transparent;border-radius:999px;padding:9px 18px;font:inherit;line-height:1.2;cursor:pointer;transition:transform .2s ease,background-color .2s ease,color .2s ease}.kkp-filter:hover,.kkp-filter:focus-visible,.kkp-load-more:hover,.kkp-load-more:focus-visible{transform:translateY(-1px)}.kkp-filter:focus-visible,.kkp-load-more:focus-visible,.kkp-thumb:focus-visible{outline:3px solid currentColor;outline-offset:3px}.kkp-grid{display:grid;grid-template-columns:repeat(var(--kkp-columns),minmax(0,1fr));gap:24px}.kkp-item{min-width:0;transition:opacity .25s ease,transform .25s ease}.kkp-item.is-filter-hidden,.kkp-item.is-load-hidden{display:none}.kkp-card{height:100%;overflow:hidden}.kkp-thumb{position:relative;display:block;overflow:hidden;background:#111;text-decoration:none}.kkp-thumb::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .25s ease;pointer-events:none}.kkp-thumb:hover::after,.kkp-thumb:focus-visible::after{opacity:1}.kkp-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.kkp-thumb:hover img,.kkp-thumb:focus-visible img{transform:scale(1.045)}.kkp-play{position:absolute;z-index:2;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);color:#fff;transition:transform .25s ease}.kkp-thumb:hover .kkp-play,.kkp-thumb:focus-visible .kkp-play{transform:translate(-50%,-50%) scale(1.08)}.kkp-play svg{display:block;width:100%;height:100%}.kkp-content{padding:16px 18px 18px}.kkp-title{font-size:18px;line-height:1.25;margin:0}.kkp-date{font-size:13px;margin-top:7px}.kkp-description{font-size:14px;line-height:1.55;margin-top:9px}.kkp-description p:last-child{margin-bottom:0}.kkp-load-wrap{text-align:center;margin-top:30px}.kkp-load-more{padding:12px 24px}.kkp-modal{position:fixed;z-index:999999;inset:0;display:none;align-items:center;justify-content:center;padding:30px;background:rgba(0,0,0,.88)}.kkp-modal.is-open{display:flex}.kkp-modal-dialog{position:relative;width:min(1100px,100%);max-height:92vh}.kkp-modal-media{display:flex;align-items:center;justify-content:center;width:100%;max-height:88vh;background:#000}.kkp-modal-media iframe{width:100%;aspect-ratio:16/9;border:0}.kkp-modal-media img{display:block;max-width:100%;max-height:88vh;object-fit:contain}.kkp-modal-close{position:absolute;z-index:2;right:-10px;top:-46px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#111;font-size:28px;line-height:1;cursor:pointer}.kkp-modal-close:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:767px){.kkp-modal{padding:18px}.kkp-modal-close{right:0}.kkp-content{padding:13px 14px 15px}}

.kkp-empty{padding:18px;border:1px dashed currentColor;text-align:center}.kkp-center-last-row .kkp-grid{display:flex;flex-wrap:wrap;justify-content:center}.kkp-center-last-row .kkp-item{flex:0 0 calc((100% - (var(--kkp-columns) - 1)*24px)/var(--kkp-columns));max-width:calc((100% - (var(--kkp-columns) - 1)*24px)/var(--kkp-columns))}

/* Dashboard category cards shortcode: [kool_keys_categories columns="4"] */
.kkp-category-cards{display:grid;grid-template-columns:repeat(var(--kkp-category-columns,4),minmax(0,1fr));gap:24px}.kkp-category-card{position:relative;display:block;overflow:hidden;min-height:420px;aspect-ratio:2/3;border-radius:12px;background:#111;color:#fff;text-decoration:none}.kkp-category-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.kkp-category-card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.05) 35%,rgba(0,0,0,.92) 100%)}.kkp-category-card-content{position:absolute;left:0;right:0;bottom:0;padding:28px 22px;text-align:center}.kkp-category-card-icon{display:block;font-size:42px;line-height:1;margin-bottom:10px}.kkp-category-card-title{display:block;font-size:clamp(26px,3vw,44px);font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.03em}.kkp-category-card-title:after{content:"";display:block;width:92px;height:4px;margin:16px auto 0;background:var(--kkp-category-accent,#c7922f);border-radius:999px}.kkp-category-card-description{display:block;margin-top:14px;font-size:14px;line-height:1.45;color:rgba(255,255,255,.86)}.kkp-category-card:hover img,.kkp-category-card:focus img{transform:scale(1.045)}.kkp-category-card:focus-visible{outline:3px solid var(--kkp-category-accent,#c7922f);outline-offset:3px}@media(max-width:900px){.kkp-category-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.kkp-category-cards{grid-template-columns:1fr}.kkp-category-card{min-height:0}}

/* Version 4: category cards filter the portfolio on the same page. */
.kkp-category-cards[data-kkp-category-controller="filter"] .kkp-category-card{cursor:pointer}
.kkp-category-card.is-active{box-shadow:0 0 0 4px var(--kkp-category-accent,#c7922f)}
.kkp-category-card.is-active .kkp-category-card-overlay{background:linear-gradient(to bottom,rgba(0,0,0,.02) 28%,rgba(0,0,0,.82) 100%)}
.kkp-portfolio{scroll-margin-top:110px}

/* Version 5: alphabetical category gallery, counts, and All Performances card. */
.kkp-category-card-count{display:block;margin-top:13px;font-size:15px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.92)}
.kkp-category-card-all{background:radial-gradient(circle at 50% 25%,#5b3512 0,#1b120b 44%,#080808 100%)}
.kkp-category-card-all-visual{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:22px;opacity:.5;transform:rotate(-4deg) scale(1.08)}
.kkp-category-card-all-visual span{display:block;border:1px solid rgba(255,255,255,.18);background:linear-gradient(145deg,rgba(199,146,47,.55),rgba(255,255,255,.06) 55%,rgba(0,0,0,.55));box-shadow:0 12px 28px rgba(0,0,0,.35)}
.kkp-category-card-all-visual span:nth-child(2){transform:translateY(28px)}
.kkp-category-card-all-visual span:nth-child(3){transform:translateY(-10px)}


/* Version 5.1: four-card desktop layout and cleaner category typography. */
.kkp-category-card{min-height:360px}
.kkp-category-card-content{padding:22px 16px 20px}
.kkp-category-card-icon{font-size:34px;margin-bottom:8px}
.kkp-category-card-title{font-size:clamp(22px,2.15vw,34px);line-height:1.05;overflow-wrap:anywhere}
.kkp-category-card-title-all span{display:block}
.kkp-category-card-title:after{width:78px;height:3px;margin-top:13px}
.kkp-category-card-count{margin-top:11px;font-size:13px}
@media(max-width:1100px){.kkp-category-card{min-height:330px}.kkp-category-card-title{font-size:clamp(21px,2.4vw,30px)}}
@media(max-width:900px){.kkp-category-card{min-height:0}}
