/* Dreamspire fast show-all kitten gallery — 2026-10-07 */
html.ds-album-gallery-open,
html.ds-album-gallery-open body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

#ds-album-detail[hidden]{display:none!important;}

#ds-album-detail:not([hidden]){
  position:fixed!important;
  inset:0!important;
  z-index:1000000!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr)!important;
  align-content:start!important;
  gap:7px!important;
  padding:clamp(58px,7vh,78px) 14px 18px!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,rgba(8,16,28,.79),rgba(7,13,23,.92))!important;
  -webkit-backdrop-filter:blur(12px) saturate(118%)!important;
  backdrop-filter:blur(12px) saturate(118%)!important;
}

#ds-album-back.ds-album-popup-close{
  position:absolute!important;
  top:16px!important;
  right:18px!important;
  z-index:5!important;
  display:grid!important;
  place-items:center!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.09)!important;
  color:#fff!important;
  font-size:27px!important;
  line-height:1!important;
  cursor:pointer!important;
}

#ds-album-name,
#ds-album-desc{
  position:relative!important;
  z-index:1!important;
  width:min(1060px,calc(100vw - 28px))!important;
  margin:0 auto!important;
  text-align:center!important;
}

#ds-album-name{
  color:#fff!important;
  font-size:clamp(28px,3.5vw,48px)!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
}

#ds-album-desc{
  max-width:760px!important;
  color:rgba(255,255,255,.74)!important;
  font:500 11px/1.42 'DM Sans',system-ui,-apple-system,sans-serif!important;
}

#ds-album-photos{
  position:relative!important;
  z-index:1!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  align-content:start!important;
  width:min(1060px,calc(100vw - 28px))!important;
  height:auto!important;
  max-height:calc(100dvh - 145px)!important;
  margin:8px auto 0!important;
  padding:2px 4px 14px!important;
  gap:13px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scroll-snap-type:none!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y pinch-zoom!important;
}

#ds-album-photos>.ds-album-shot,
#ds-album-photos>.ds-album-shot.ds-shot-portrait,
#ds-album-photos>.ds-album-shot.ds-shot-square,
#ds-album-photos>.ds-album-shot.ds-shot-landscape,
#ds-album-photos>.ds-album-shot.ds-shot-ultrawide,
#ds-album-photos>.ds-album-shot.ds-no-caption{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(31,51,81,.08)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
  content-visibility:auto!important;
  contain-intrinsic-size:320px 330px!important;
}

#ds-album-photos>.ds-album-shot .ds-album-media-frame{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:clamp(150px,17vw,205px)!important;
  min-width:0!important;
  min-height:150px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#f3efe8!important;
}

#ds-album-photos>.ds-album-shot .ds-album-media-frame img,
#ds-album-photos>.ds-album-shot .ds-album-media-frame video{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  object-fit:cover!important;
  object-position:center!important;
  background:#f3efe8!important;
  opacity:1!important;
}

.ds-album-media-skeleton{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  display:block!important;
  overflow:hidden!important;
  color:transparent!important;
  background:linear-gradient(100deg,#eee9e0 20%,#f8f5ef 38%,#eee9e0 56%)!important;
  background-size:220% 100%!important;
  animation:dsAlbumSkeleton 1.15s ease-in-out infinite!important;
}

.ds-media-loaded .ds-album-media-skeleton{display:none!important;}
.ds-media-error .ds-album-media-skeleton{
  display:grid!important;
  place-items:center!important;
  color:#8b8174!important;
  background:#f3efe8!important;
  font:600 10px/1.2 system-ui,-apple-system,sans-serif!important;
  animation:none!important;
}

@keyframes dsAlbumSkeleton{
  from{background-position:100% 0;}
  to{background-position:-100% 0;}
}

#ds-album-photos>.ds-album-shot .ds-kitten-status{
  z-index:3!important;
  top:10px!important;
  right:10px!important;
  left:auto!important;
  min-height:25px!important;
  padding:0 9px!important;
  font-size:7.5px!important;
  letter-spacing:.10em!important;
  box-shadow:0 6px 18px rgba(0,0,0,.11)!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-caption{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
  width:100%!important;
  min-width:0!important;
  min-height:82px!important;
  height:auto!important;
  padding:11px 13px 13px!important;
  overflow:visible!important;
  border:0!important;
  border-top:1px solid rgba(31,51,81,.06)!important;
  background:#fff!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-name{
  color:#1f3351!important;
  font-size:clamp(19px,2vw,26px)!important;
  line-height:1!important;
  letter-spacing:-.025em!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-character{
  display:-webkit-box!important;
  max-width:none!important;
  overflow:hidden!important;
  color:#737b86!important;
  font-size:10px!important;
  line-height:1.42!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-forever{
  margin-top:1px!important;
  gap:4px!important;
}

#ds-album-photos>.ds-empty{
  grid-column:1/-1!important;
  padding:30px!important;
  color:rgba(255,255,255,.78)!important;
  text-align:center!important;
}

.ds-album-popup-controls{display:none!important;}

@media(max-width:760px){
  #ds-album-detail:not([hidden]){
    padding:58px 9px 14px!important;
  }

  #ds-album-photos{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:calc(100vw - 14px)!important;
    max-height:calc(100dvh - 134px)!important;
    gap:8px!important;
    padding:2px 0 12px!important;
  }

  #ds-album-photos>.ds-album-shot{
    border-radius:14px!important;
    contain-intrinsic-size:180px 260px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-album-media-frame{
    height:clamp(126px,38vw,180px)!important;
    min-height:126px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-caption{
    min-height:74px!important;
    padding:9px 10px 11px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-name{
    font-size:clamp(18px,5vw,23px)!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-character{
    font-size:9.5px!important;
    -webkit-line-clamp:2!important;
  }

  #ds-album-name{font-size:clamp(26px,8vw,38px)!important;}
  #ds-album-desc{font-size:10px!important;}
}

@media(prefers-reduced-motion:reduce){
  .ds-album-media-skeleton{animation:none!important;}
}

/* DREAMSPIRE_ALBUM_OVERLAY_CARD_V3_START */

/* Final gallery card: the photo IS the card. Caption lives inside the photo. */
#ds-album-photos{
  width:min(1100px,calc(100vw - 32px))!important;
  gap:14px!important;
  align-items:start!important;
}

#ds-album-photos>.ds-album-shot,
#ds-album-photos>.ds-album-shot.ds-shot-portrait,
#ds-album-photos>.ds-album-shot.ds-shot-square,
#ds-album-photos>.ds-album-shot.ds-shot-landscape,
#ds-album-photos>.ds-album-shot.ds-shot-ultrawide,
#ds-album-photos>.ds-album-shot.ds-no-caption{
  position:relative!important;
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:4/3!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:20px!important;
  background:#151a21!important;
  box-shadow:0 18px 42px rgba(0,0,0,.24)!important;
  isolation:isolate!important;
  content-visibility:auto!important;
  contain-intrinsic-size:340px 255px!important;
}

#ds-album-photos>.ds-album-shot .ds-album-media-frame{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:inherit!important;
  background:#d9d5cd!important;
}

#ds-album-photos>.ds-album-shot .ds-album-media-frame img,
#ds-album-photos>.ds-album-shot .ds-album-media-frame video{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  object-fit:cover!important;
  object-position:center 44%!important;
  background:#d9d5cd!important;
}

/* Soft cinematic fade so text stays readable without hiding the kitten. */
#ds-album-photos>.ds-album-shot::after{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  inset:auto 0 0 0!important;
  height:62%!important;
  pointer-events:none!important;
  background:linear-gradient(
    to top,
    rgba(8,13,22,.90) 0%,
    rgba(8,13,22,.67) 34%,
    rgba(8,13,22,.24) 67%,
    rgba(8,13,22,0) 100%
  )!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-caption{
  position:absolute!important;
  z-index:2!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:5px!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:16px 17px 17px!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
  color:#fff!important;
  pointer-events:none!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-name{
  display:block!important;
  width:100%!important;
  margin:0!important;
  color:#fff!important;
  font-size:clamp(22px,2.1vw,30px)!important;
  line-height:.98!important;
  letter-spacing:-.03em!important;
  text-shadow:0 2px 14px rgba(0,0,0,.28)!important;
  white-space:normal!important;
  overflow:visible!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-character{
  display:block!important;
  width:100%!important;
  max-width:34ch!important;
  margin:1px 0 0!important;
  color:rgba(255,255,255,.88)!important;
  font-size:10.5px!important;
  line-height:1.42!important;
  font-weight:500!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
  text-shadow:0 1px 10px rgba(0,0,0,.26)!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-forever{
  display:inline-flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:3px 5px!important;
  width:auto!important;
  max-width:100%!important;
  margin:2px 0 1px!important;
  padding:5px 8px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  -webkit-backdrop-filter:blur(8px)!important;
  backdrop-filter:blur(8px)!important;
  white-space:normal!important;
  overflow:visible!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-forever-star,
#ds-album-photos>.ds-album-shot .ds-kitten-forever-label,
#ds-album-photos>.ds-album-shot .ds-kitten-forever-name{
  color:#fff!important;
  text-shadow:none!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-forever-label{
  opacity:.74!important;
  font-size:7px!important;
  letter-spacing:.11em!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-forever-name{
  min-width:0!important;
  font-size:9px!important;
  font-weight:700!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

#ds-album-photos>.ds-album-shot .ds-kitten-status{
  position:absolute!important;
  z-index:4!important;
  top:11px!important;
  right:11px!important;
  left:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:27px!important;
  padding:0 10px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.82)!important;
  color:#24374f!important;
  font-size:7px!important;
  font-weight:800!important;
  letter-spacing:.13em!important;
  box-shadow:0 6px 18px rgba(0,0,0,.14)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  backdrop-filter:blur(8px)!important;
}

/* Skeleton stays full-bleed behind the photo while loading. */
#ds-album-photos>.ds-album-shot .ds-album-media-skeleton{
  border-radius:inherit!important;
}

@media(max-width:760px){
  #ds-album-photos{
    width:calc(100vw - 14px)!important;
    gap:8px!important;
  }

  #ds-album-photos>.ds-album-shot,
  #ds-album-photos>.ds-album-shot.ds-shot-portrait,
  #ds-album-photos>.ds-album-shot.ds-shot-square,
  #ds-album-photos>.ds-album-shot.ds-shot-landscape,
  #ds-album-photos>.ds-album-shot.ds-shot-ultrawide,
  #ds-album-photos>.ds-album-shot.ds-no-caption{
    aspect-ratio:4/3!important;
    border-radius:14px!important;
    contain-intrinsic-size:180px 135px!important;
  }

  #ds-album-photos>.ds-album-shot::after{
    height:72%!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-caption{
    gap:3px!important;
    padding:10px 10px 11px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-name{
    font-size:clamp(17px,5vw,22px)!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-character{
    max-width:none!important;
    font-size:8.8px!important;
    line-height:1.32!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-forever{
    gap:2px 4px!important;
    margin:1px 0!important;
    padding:4px 6px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-forever-label{
    font-size:6px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-forever-name{
    font-size:7.7px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-status{
    top:7px!important;
    right:7px!important;
    min-height:22px!important;
    padding:0 7px!important;
    font-size:6px!important;
  }
}

@media(max-width:390px){
  #ds-album-photos{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-caption{
    padding:8px 8px 9px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-name{
    font-size:16px!important;
  }

  #ds-album-photos>.ds-album-shot .ds-kitten-character{
    font-size:8px!important;
    line-height:1.28!important;
  }
}

/* DREAMSPIRE_ALBUM_OVERLAY_CARD_V3_END */

/* DREAMSPIRE_ALBUM_SCROLL_REPAIR_V1_START */
/* Safari-safe album scrolling: the fixed popup is the one scroll container. */
html.ds-album-gallery-open,
html.ds-album-gallery-open body{
  overflow:hidden!important;
}

#ds-album-detail:not([hidden]){
  box-sizing:border-box!important;
  display:block!important;
  height:100vh!important;
  height:100dvh!important;
  max-height:100vh!important;
  max-height:100dvh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable!important;
}

/* Do not create a second nested scroll area. */
#ds-album-photos{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
  -webkit-overflow-scrolling:auto!important;
  touch-action:auto!important;
  padding-bottom:42px!important;
}

/* Keep close control available while the album itself scrolls. */
#ds-album-back.ds-album-popup-close{
  position:fixed!important;
  z-index:1000005!important;
}

/* Cursor decoration must never capture scrolling or pointer input. */
.ds-cursor-light,
.ds-cursor-star,
.ds-liquid-cursor,
[id*="cursor-light"],
[id*="cursor-star"]{
  pointer-events:none!important;
}

@media(max-width:760px){
  #ds-album-detail:not([hidden]){
    padding-bottom:max(24px,env(safe-area-inset-bottom))!important;
  }
  #ds-album-photos{
    padding-bottom:max(34px,env(safe-area-inset-bottom))!important;
  }
}
/* DREAMSPIRE_ALBUM_SCROLL_REPAIR_V1_END */

/* DREAMSPIRE_MOBILE_ALBUM_PHOTO_SIZE_V3_START */

@media (max-width:760px){

  /* Keep the premium two-column kitten grid */
  #ds-album-photos{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:calc(100vw - 18px)!important;
    max-width:none!important;
    gap:10px!important;
    align-items:start!important;
  }

  /* Every kitten card gets exactly the same width */
  #ds-album-photos > .ds-album-shot,
  #ds-album-photos > .ds-album-shot.ds-shot-portrait,
  #ds-album-photos > .ds-album-shot.ds-shot-square,
  #ds-album-photos > .ds-album-shot.ds-shot-landscape,
  #ds-album-photos > .ds-album-shot.ds-shot-ultrawide,
  #ds-album-photos > .ds-album-shot.ds-no-caption{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
  }

  /*
    IMPORTANT:
    Previous mobile rule forced photos to 1:1.
    4:3 gives the kitten more breathing room and matches
    normal camera proportions much better.
  */
  #ds-album-photos > .ds-album-shot .ds-album-media-frame{
    position:relative!important;
    display:block!important;
    box-sizing:border-box!important;

    width:100%!important;
    height:auto!important;

    aspect-ratio:4 / 3!important;

    min-height:0!important;
    max-height:none!important;

    margin:0!important;
    padding:0!important;

    overflow:hidden!important;

    border-radius:14px 14px 0 0!important;
  }

  #ds-album-photos > .ds-album-shot .ds-album-media-frame img,
  #ds-album-photos > .ds-album-shot .ds-album-media-frame video{
    display:block!important;

    width:100%!important;
    height:100%!important;

    min-width:100%!important;
    min-height:100%!important;

    max-width:none!important;
    max-height:none!important;

    margin:0!important;
    padding:0!important;

    object-fit:cover!important;

    /*
      Deliberately do NOT override object-position or transform.
      Your Studio "Adjust photo" crop settings will still work.
    */
  }

}

/* DREAMSPIRE_MOBILE_ALBUM_PHOTO_SIZE_V3_END */
