/* Meow Gallery 1.3.0 */
.chm-flick {
  --chm-gold: #e4c27a;
  --chm-paper: #f6f1e7;
  --chm-vh: 100vh;
  --chm-vh: 100dvh;
}

/* Full-screen page only (templates/flick.php). Scoped so other pages keep scrolling. */
html.chm-flick-html,
html.chm-flick-html body.chm-flick-body {
  margin: 0 !important;
  padding: 0 !important;
  height: 100%;
  overflow: hidden;
  background: #000;
  overscroll-behavior: none;
}
body.chm-flick-body #wpadminbar { display: none !important; }

.chm-flick {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #000;
  color: var(--chm-paper);
  font-family: "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
}
.chm-flick *, .chm-flick *::before, .chm-flick *::after { box-sizing: border-box; }

/* Inline version when the shortcode sits inside a regular post. */
.chm-flick.chm-flick--embed {
  position: relative;
  inset: auto;
  z-index: 1;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  height: 85vh;
  height: 85dvh;
  border-radius: 14px;
  overflow: hidden;
  --chm-vh: 85vh;
  --chm-vh: 85dvh;
}

/* Top bar */
.chm-flick__top {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: calc(10px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 14px calc(12px + env(safe-area-inset-left));
  background: linear-gradient(to bottom, rgba(0,0,0,.7), rgba(0,0,0,0));
  pointer-events: none;
  transition: opacity .25s ease;
}
.chm-flick__top > * { pointer-events: auto; flex: none; }
.chm-flick__brand { display: block; line-height: 0; }
.chm-flick__brand img {
  height: 32px;
  width: auto;
  max-width: 120px;
  display: block;
  filter: drop-shadow(0 0 1px rgba(255,255,255,.55)) drop-shadow(0 2px 6px rgba(0,0,0,.6));
}
.chm-flick__cats {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  flex: 1 1 auto;
  min-width: 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.chm-flick__cats::-webkit-scrollbar { display: none; }
.chm-flick__cats button,
.chm-flick__movies {
  border: 1px solid rgba(228,194,122,.45);
  background: rgba(0,0,0,.4);
  color: var(--chm-paper);
  border-radius: 999px;
  padding: 7px 12px;
  margin: 0;
  font: 600 12px/1.2 ui-sans-serif, system-ui, -apple-system, sans-serif;
  letter-spacing: .04em;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  text-transform: none;
  box-shadow: none;
}
.chm-flick__cats button.is-on {
  background: var(--chm-gold);
  color: #1a140c;
  border-color: var(--chm-gold);
}
.chm-flick__sets {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  flex: 1 0 100%;
  order: 6;
  scrollbar-width: none;
}
.chm-flick__sets[hidden] { display: none; }
.chm-flick__sets::-webkit-scrollbar { display: none; }
.chm-flick__sets button {
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(0,0,0,.35);
  color: var(--chm-paper);
  border-radius: 999px;
  padding: 5px 11px;
  margin: 0;
  font: 500 12px/1.2 ui-sans-serif, system-ui, -apple-system, sans-serif;
  white-space: nowrap;
  cursor: pointer;
}
.chm-flick__sets button.is-on { border-color: var(--chm-gold); color: var(--chm-gold); }
.chm-flick__top { flex-wrap: wrap; }
.chm-flick__movies {
  background: var(--chm-gold);
  color: #1a140c;
  border-color: var(--chm-gold);
}
.chm-flick__movies:hover, .chm-flick__movies:focus { color: #1a140c; filter: brightness(1.06); }
.chm-flick__movies span { font-size: 10px; }

.chm-flick__close, .chm-flick__nav {
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(0,0,0,.45);
  color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font: 400 22px/1 ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.chm-flick__nav {
  position: absolute;
  right: 16px;
  z-index: 6;
  display: none;
}
.chm-flick__nav--up { top: calc(50% - 46px); }
.chm-flick__nav--down { top: calc(50% + 8px); }
@media (hover: hover) and (min-width: 800px) {
  .chm-flick__nav { display: grid; }
}

/* The swipe rail */
.chm-flick__rail {
  height: var(--chm-vh);
  overflow-y: auto;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  outline: none;
}
.chm-flick__rail::-webkit-scrollbar { display: none; }

.chm-slide {
  position: relative;
  height: var(--chm-vh);
  width: 100%;
  overflow: hidden;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: grid;
  place-items: center;
  background: #050505;
}
.chm-slide img.chm-photo {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  background: #050505;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}
/* Phones in portrait: fill the screen edge to edge like a video feed. */
@media (max-width: 700px) and (orientation: portrait) {
  .chm-slide img.chm-photo.is-tall { object-fit: cover; }
}

.chm-logo-stamp {
  position: absolute;
  width: var(--logo-size, 18%);
  min-width: 64px;
  max-width: 120px;
  height: auto;
  pointer-events: none;
  opacity: .92;
  filter: drop-shadow(0 0 1px rgba(255,255,255,.55)) drop-shadow(0 2px 8px rgba(0,0,0,.55));
  z-index: 3;
}
.chm-logo-stamp.is-br { right: calc(12px + env(safe-area-inset-right)); bottom: calc(24px + env(safe-area-inset-bottom)); }
.chm-logo-stamp.is-bl { left: calc(12px + env(safe-area-inset-left)); bottom: calc(24px + env(safe-area-inset-bottom)); }
.chm-logo-stamp.is-tr { right: calc(12px + env(safe-area-inset-right)); top: calc(118px + env(safe-area-inset-top)); }
.chm-logo-stamp.is-tl { left: calc(12px + env(safe-area-inset-left)); top: calc(118px + env(safe-area-inset-top)); }
/* Keep the caption clear of a bottom-left stamp. */
.chm-flick[data-stamp="bl"] .chm-slide__meta { bottom: calc(80px + env(safe-area-inset-bottom)); }

/* Right-hand action buttons */
.chm-slide__side {
  position: absolute;
  right: calc(10px + env(safe-area-inset-right));
  bottom: calc(140px + env(safe-area-inset-bottom));
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: opacity .25s ease;
}
.chm-side-btn {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: none;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  text-decoration: none;
  font: 600 11px/1 ui-sans-serif, system-ui, sans-serif;
  text-shadow: 0 1px 4px rgba(0,0,0,.8);
}
.chm-side-btn svg {
  width: 44px;
  height: 44px;
  padding: 10px;
  border-radius: 50%;
  background: rgba(0,0,0,.4);
}
.chm-side-btn:hover, .chm-side-btn:focus { color: var(--chm-gold); }

/* Captions */
.chm-slide__meta {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left));
  right: 104px;
  bottom: calc(22px + env(safe-area-inset-bottom));
  z-index: 4;
  text-shadow: 0 2px 10px rgba(0,0,0,.85);
  transition: opacity .25s ease;
}
.chm-slide::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 38%;
  background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,0));
  pointer-events: none;
  z-index: 2;
  transition: opacity .25s ease;
}
.chm-slide--end::after { display: none; }
.chm-slide__cat {
  font: 700 11px/1 ui-sans-serif, system-ui, sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--chm-gold);
}
.chm-slide__meta h2 {
  margin: 6px 0 4px;
  padding: 0;
  color: #fff;
  font-family: inherit;
  font-size: clamp(20px, 5vw, 32px);
  font-weight: 600;
  line-height: 1.12;
}
.chm-slide__meta p {
  margin: 0 0 8px;
  max-width: 36rem;
  font: 400 14px/1.4 ui-sans-serif, system-ui, sans-serif;
  color: rgba(246,241,231,.88);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.chm-slide__meta a {
  color: #fff;
  font: 700 13px/1 ui-sans-serif, system-ui, sans-serif;
  letter-spacing: .04em;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Tap-to-hide clean view */
.chm-flick.is-clean .chm-slide__meta,
.chm-flick.is-clean .chm-slide__side,
.chm-flick.is-clean .chm-slide::after,
.chm-flick.is-clean .chm-flick__top { opacity: 0; pointer-events: none; }

/* Locked Members card */
.chm-slide--locked {
  background: radial-gradient(circle at 50% 38%, #3a2a16 0%, #120d07 45%, #050505 80%);
}
.chm-slide--locked::after { display: none; }
.chm-lock {
  position: relative;
  z-index: 4;
  max-width: 340px;
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  font: 400 15px/1.4 ui-sans-serif, system-ui, sans-serif;
}
.chm-lock p { margin: 0; color: rgba(246,241,231,.85); }
.chm-lock h2 {
  margin: 0;
  font-family: "Iowan Old Style", Palatino, Georgia, serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.15;
  color: #fff;
}
.chm-lock__icon svg {
  width: 56px;
  height: 56px;
  padding: 14px;
  border-radius: 50%;
  color: #1a140c;
  background: var(--chm-gold);
}

/* End-of-feed / empty card */
.chm-end {
  text-align: center;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  font: 400 15px/1.4 ui-sans-serif, system-ui, sans-serif;
}
.chm-end p { margin: 0; color: rgba(246,241,231,.85); }
.chm-end__kicker {
  font: 700 11px/1 ui-sans-serif, system-ui, sans-serif !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--chm-gold) !important;
}
.chm-end h2 {
  margin: 0 0 6px;
  font-family: "Iowan Old Style", Palatino, Georgia, serif;
  font-size: 34px;
  font-weight: 600;
  color: #fff;
}
.chm-end__btn {
  appearance: none;
  min-width: 220px;
  border: 1px solid rgba(228,194,122,.6);
  background: transparent;
  color: var(--chm-paper);
  border-radius: 999px;
  padding: 13px 22px;
  font: 700 14px/1 ui-sans-serif, system-ui, sans-serif;
  letter-spacing: .04em;
  text-decoration: none;
  cursor: pointer;
}
.chm-end__btn--gold { background: var(--chm-gold); color: #1a140c; border-color: var(--chm-gold); }
.chm-end__btn--gold:hover, .chm-end__btn--gold:focus { color: #1a140c; }

.chm-flick__hint {
  position: absolute;
  left: 50%;
  bottom: calc(26% + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 7;
  font: 600 12px/1 ui-sans-serif, system-ui, sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(0,0,0,.45);
  padding: 10px 14px;
  border-radius: 999px;
  animation: chm-bob 1.4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes chm-bob {
  50% { transform: translateX(-50%) translateY(-8px); }
}
.chm-toast {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 9;
  background: rgba(0,0,0,.8);
  color: #fff;
  padding: 10px 16px;
  border-radius: 999px;
  font: 600 13px/1 ui-sans-serif, system-ui, sans-serif;
}

/* Phones: logo + Meow Movies + close on row one, category tabs full width on row two. */
@media (max-width: 640px) {
  .chm-flick__top { flex-wrap: wrap; row-gap: 10px; }
  .chm-flick__brand { margin-right: auto; }
  .chm-flick__brand img { height: 28px; }
  .chm-flick__cats { order: 5; flex: 1 0 100%; padding-bottom: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .chm-flick__hint { animation: none; }
}

/* Captions without titles: small gap between category label and "Read the set" */
.chm-slide__cat + a { display: inline-block; margin-top: 8px; }

/* Never show titles/excerpts on photos (locked cards keep theirs) */
.chm-slide__meta h2, .chm-slide__meta p { display: none !important; }

/* Like button (heart) */
.chm-like.is-liked svg { color: #ff3b5c; }
.chm-like.is-liked span { color: #fff; }
.chm-like svg { transition: transform .15s ease; }
.chm-like:active svg { transform: scale(.88); }
.chm-burst {
  position: absolute;
  z-index: 8;
  width: 110px;
  height: 110px;
  margin: -55px 0 0 -55px;
  color: #ff3b5c;
  pointer-events: none;
  filter: drop-shadow(0 4px 14px rgba(0,0,0,.45));
  animation: chm-pop .8s ease-out forwards;
}
.chm-burst svg { width: 100%; height: 100%; }
@keyframes chm-pop {
  0% { transform: scale(.3) rotate(-12deg); opacity: 0; }
  20% { transform: scale(1.15) rotate(-6deg); opacity: 1; }
  45% { transform: scale(.95); }
  100% { transform: scale(1.1) translateY(-60px); opacity: 0; }
}

.chm-toast { white-space: nowrap; max-width: calc(100% - 32px); overflow: hidden; text-overflow: ellipsis; line-height: 1.2; }
