/* Free slots catalogue ([rb_cat]). Loaded only on pages that place it. */
.rb-page .rb-prose > .rb-cat { max-width: none; }
.rb-cat { margin: 1.25rem 0 2rem; }
.rb-cat__bar { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)); gap: 0.6rem; align-items: end; padding: 0.9rem 1rem; background: var(--rb-green); border-radius: 14px; }
.rb-cat__f span { display: block; margin-bottom: 0.25rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rb-gold-soft); }
.rb-cat__f input, .rb-cat__f select { width: 100%; min-height: 44px; padding: 0.4rem 0.7rem; border: 0; border-radius: 9px; background: #fffdf8; font: 400 0.98rem var(--rb-text); color: var(--rb-ink); }
.rb-cat__tog { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 0.5rem; color: #fff; font-weight: 700; font-size: 0.92rem; cursor: pointer; }
.rb-cat__tog input { width: 1.2rem; height: 1.2rem; accent-color: var(--rb-gold); }
.rb-prose .rb-cat__count { margin: 0.8rem 0 0.6rem; font-size: 0.92rem; color: var(--rb-muted); }
.rb-cat__count b { color: var(--rb-green); font: 600 1.1rem var(--rb-display); }
.rb-prose .rb-cat__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); gap: 0.9rem; }
.rb-prose .rb-cat__i { margin: 0; display: flex; flex-direction: column; border: 1px solid var(--rb-line); border-radius: 14px; overflow: hidden; background: #fff; transition: box-shadow 0.15s, transform 0.15s; }
.rb-cat__i:hover { transform: translateY(-2px); box-shadow: 0 5px 0 var(--rb-gold); }
.rb-cat__i[hidden] { display: none; }
.rb-cat__art { position: relative; aspect-ratio: 16 / 9; background: var(--rb-green); overflow: hidden; }
.rb-cat__art img, .rb-cat__art svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.rb-cat__kind { position: absolute; left: 0.5rem; top: 0.5rem; padding: 0.1rem 0.5rem; border-radius: 999px; background: rgba(11, 42, 32, 0.85); color: var(--rb-gold); font-size: 0.72rem; font-weight: 700; }
.rb-cat__b { display: flex; flex-direction: column; gap: 0.35rem; padding: 0.75rem 0.85rem 0.85rem; flex: 1; }
.rb-prose .rb-cat__n { margin: 0; font-size: 1.1rem; line-height: 1.2; }
.rb-prose .rb-cat__p { margin: 0; font-size: 0.82rem; color: var(--rb-muted); }
.rb-cat__d { margin: 0.2rem 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.3rem; }
.rb-cat__d div { padding: 0.35rem 0.4rem; border-radius: 8px; background: var(--rb-green-3); text-align: center; }
.rb-cat__d dt { font-size: 0.62rem; font-weight: 700; letter-spacing: 0; white-space: nowrap; text-transform: uppercase; color: var(--rb-green-2); }
.rb-cat__d dd { margin: 0.1rem 0 0; font-size: 0.82rem; font-weight: 700; line-height: 1.2; }
.rb-cat__act { margin-top: auto; padding-top: 0.5rem; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.rb-cat__play { min-height: 42px; padding: 0.4rem 1rem; border: 0; border-radius: 999px; background: var(--rb-gold); color: var(--rb-ink); font: 700 0.92rem var(--rb-text); cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; }
.rb-cat__play::before { content: ""; border-style: solid; border-width: 6px 0 6px 9px; border-color: transparent transparent transparent currentColor; }
.rb-cat__play:hover { background: #f2b440; }
.rb-cat__nodemo { font-size: 0.8rem; color: var(--rb-muted); }
.rb-cat__more { font-weight: 700; font-size: 0.88rem; }
.rb-prose .rb-cat__empty { margin: 1rem 0; padding: 1rem; border: 1px dashed var(--rb-line); border-radius: 12px; text-align: center; color: var(--rb-muted); }
.rb-prose .rb-cat__note { margin: 0.9rem 0 0; font-size: 0.84rem; color: var(--rb-muted); }
.rb-cat__18 { display: inline-block; margin-right: 0.3rem; padding: 0 0.4rem; border: 1.5px solid var(--rb-red); border-radius: 999px; color: var(--rb-red); font-weight: 700; font-size: 0.75rem; }
@media (max-width: 900px) { .rb-cat__bar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rb-cat__f--q { grid-column: 1 / -1; } }
@media (max-width: 420px) { .rb-prose .rb-cat__grid { grid-template-columns: 1fr; } }

/* demo overlay */
html.rb-cdm-open { overflow: hidden; }
.rb-cdm { position: fixed; inset: 0; z-index: 1001; display: flex; flex-direction: column; background: rgba(8, 20, 15, 0.97); padding: 3.5rem 1rem 1rem; }
.rb-cdm[hidden] { display: none; }
.rb-cdm__t { position: absolute; left: 1rem; top: 1rem; margin: 0; color: #fff; font: 600 1.1rem var(--rb-display); }
.rb-cdm__close { position: absolute; right: 1rem; top: 0.6rem; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.14); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; }
.rb-cdm__close:hover { background: var(--rb-gold); color: var(--rb-ink); }
.rb-cdm__frame { flex: 1; width: 100%; max-width: 1200px; margin: 0 auto; border: 0; border-radius: 10px; background: #000; }
.rb-cdm__meta { max-width: 1200px; width: 100%; margin: 0.6rem auto 0; color: #d9d2bf; font-size: 0.85rem; }
.rb-cdm__meta a { color: var(--rb-gold-soft); }
/* mini strip at the top of category pages */
.rb-cat--mini { margin: 1rem 0 1.5rem; }
.rb-cat__head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.8rem; flex-wrap: wrap; margin: 0 0 0.7rem; }
.rb-prose .rb-cat__h { margin: 0; font-size: 1.35rem; }
.rb-cat__all { font-weight: 700; font-size: 0.9rem; }
.rb-prose .rb-cat--mini .rb-cat__grid { grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 0.75rem; }
@media (max-width: 640px) {
	.rb-prose .rb-cat--mini .rb-cat__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0.7rem; padding: 0 0 0.5rem; -webkit-overflow-scrolling: touch; }
	.rb-cat--mini .rb-cat__i { flex: 0 0 78%; scroll-snap-align: start; }
}
.rb-prose > .rb-cover--moved { margin: 0 0 1.5rem; max-width: none; }
