/* Chou Chou homepage layout refinement — size, position and spacing only */

html body.premium-design-system:not(.cast-detail-page) .princess-home > :is(
  .princess-card-grid-top,
  .princess-card-grid-middle,
  .princess-card-grid-bottom
){
  gap:28px !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home :is(
  .premium-section-card,
  #cast.v9-today-card,
  #recruit.premium-card-recruit
){
  border-radius:24px !important;
}

/* Today's Cast keeps decoration out of the content grid. */
html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card{
  scroll-margin-top:112px !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-today-card-shell{
  grid-template-rows:auto minmax(0,1fr) auto !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-today-decoration{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-today-header{
  z-index:2 !important;
  box-sizing:border-box !important;
  padding-top:24px !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-list-frame{
  min-height:0 !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-button-wrap{
  position:relative !important;
  top:auto !important;
  z-index:2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  width:100% !important;
  padding:25px 32px 32px !important;
}

html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-button-wrap .v9-cast-button{
  margin-right:auto !important;
  margin-left:auto !important;
}

@media(min-width:769px){
  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-list{
    grid-auto-rows:minmax(240px,auto) !important;
    max-height:740px !important;
    gap:10px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-item.card-premium{
    grid-template-columns:168px minmax(0,1fr) !important;
    align-items:center !important;
    gap:8px !important;
    height:auto !important;
    min-height:240px !important;
    padding:34px 10px 8px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-photo.image-premium{
    align-self:center !important;
    justify-self:center !important;
    box-sizing:border-box !important;
    width:156px !important;
    height:158px !important;
    min-height:158px !important;
    padding:5px !important;
    overflow:hidden !important;
    border-radius:var(--premium-radius-image) !important;
    background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(255,239,248,.44)) !important;
    box-shadow:0 8px 18px rgba(111,59,86,.09),0 1px 0 rgba(255,255,255,.9) inset !important;
    -webkit-backdrop-filter:blur(8px) !important;
    backdrop-filter:blur(8px) !important;
    transform:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media{
    align-self:stretch !important;
    display:grid !important;
    grid-template-rows:158px 44px !important;
    align-content:center !important;
    justify-items:center !important;
    width:168px !important;
    min-width:0 !important;
    gap:6px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media > .v6-cast-actions.is-compact{
    align-self:center !important;
    justify-self:center !important;
    margin:0 !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-photo :is(.v9-cast-image,.v9-cast-no-image){
    display:block !important;
    width:100% !important;
    height:100% !important;
    margin:auto !important;
    border-radius:calc(var(--premium-radius-image) - 5px) !important;
    object-fit:cover !important;
    object-position:center top !important;
    clip-path:inset(0 round calc(var(--premium-radius-image) - 5px)) !important;
    transform:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-profile{
    align-self:start !important;
    min-height:136px !important;
    position:static !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-status.badge-premium{
    top:8px !important;
    right:auto !important;
    left:8px !important;
    min-height:22px !important;
    padding:0 10px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home .princess-card-grid-top{
    align-items:stretch !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home .princess-card-grid-top > section{
    align-self:stretch !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #concept.premium-card-concept{
    padding:0 !important;
    overflow:hidden !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #concept .ver6-card-image{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    object-fit:contain !important;
    object-position:center !important;
    transform:none !important;
    background:#fff6fa !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card{
    height:auto !important;
    min-height:570px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-photo{
    width:100% !important;
    height:188px !important;
    min-height:188px !important;
    max-height:188px !important;
    aspect-ratio:auto !important;
    margin:0 !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-image{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-info{
    gap:3px !important;
    padding:10px 9px 15px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #gallery .premium-gallery-item > img.image-premium{
    width:100% !important;
    height:auto !important;
    aspect-ratio:3 / 5 !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}

/* ChouChou Ver6.1 Homepage Interaction Polish */
html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6{
  --v61-hero-parallax:0px;
}

html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 .hero-slider-track{
  opacity:0;
  transform:translate3d(0,var(--v61-hero-parallax),0) scale(1.025);
  transition:opacity 1.4s ease,transform .18s linear;
  will-change:transform,opacity;
}

html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6.is-v61-ready .hero-slider-track{
  opacity:1;
}

html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link{
  overflow:hidden;
  border-radius:28px;
  transition:transform .25s ease,filter .25s ease;
}

html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link::after{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(198,161,91,.58);
  border-radius:inherit;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,224,239,.14));
  box-shadow:0 10px 24px rgba(111,59,86,.12);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease;
}

@media(hover:hover) and (pointer:fine){
  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link:hover{
    transform:translateY(-4px) scale(1.012);
    filter:brightness(1.025);
  }

  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link:hover::after{
    opacity:1;
  }
}

@media(max-width:768px){
  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 .hero-slider-track{
    transform:none;
  }
}

@media(prefers-reduced-motion:reduce){
  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 .hero-slider-track{
    opacity:1;
    transform:none;
    transition:none;
  }

  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link,
  html body.premium-design-system:not(.cast-detail-page) .hero.hero-ver6 > .hero-link::after{
    transition:none;
  }
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid{
  align-items:stretch !important;
  grid-auto-rows:1fr !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .all-cast-grid > .cast-card.public-cast-card{
  display:flex !important;
  flex-direction:column !important;
  height:auto !important;
  min-height:570px !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card > .public-cast-photo{
  flex:0 0 auto !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-image{
  object-position:center top !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card > .cast-info.public-cast-info{
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  min-height:0 !important;
  gap:3px !important;
  padding:10px 9px 15px !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list :is(
  .public-cast-profile-line,
  .public-cast-hobby,
  .public-cast-schedule-row
){
  flex:0 0 auto !important;
  margin:0 !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-hobby{
  display:flex !important;
  align-items:flex-start !important;
  flex-wrap:wrap !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-hobby-value{
  flex:1 1 52px !important;
  min-width:0 !important;
  white-space:normal !important;
  overflow:visible !important;
  overflow-wrap:anywhere !important;
  text-overflow:clip !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-schedule-row,
html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-schedule-time{
  max-width:100% !important;
  white-space:normal !important;
  overflow:visible !important;
  overflow-wrap:anywhere !important;
  text-overflow:clip !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .cast-card.public-cast-card .public-profile-link{
  flex:0 0 auto !important;
  margin-top:auto !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer{
  position:absolute !important;
  top:8px !important;
  right:auto !important;
  left:8px !important;
  z-index:7 !important;
  display:flex !important;
  flex-direction:column !important;
  flex-flow:column nowrap !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  width:34px !important;
  min-width:0 !important;
  max-width:34px !important;
  gap:3px !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer .premium-cast-badge,
html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer .premium-cast-badge-img,
html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer img.premium-cast-badge-img-new,
html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer img.premium-cast-badge-img-recommended{
  flex:0 0 22px !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:22px !important;
  min-height:22px !important;
  max-height:22px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border:0 !important;
  border-radius:8px !important;
  background:transparent !important;
  box-shadow:none !important;
  object-fit:cover !important;
  object-position:center !important;
  filter:drop-shadow(0 3px 5px rgba(111,59,86,.2)) !important;
  transform:none !important;
}

html body.premium-design-system:not(.cast-detail-page) :is(
  #cast.v9-today-card .v9-cast-photo,
  .princess-home #cast-list.premium-card-cast .public-cast-photo
) > .public-cast-badges.cast-badge-layer .premium-cast-badge-recommended{
  margin-right:0 !important;
  margin-left:0 !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer{
  top:8px !important;
  left:8px !important;
  z-index:20 !important;
  width:34px !important;
  max-width:34px !important;
  gap:4px !important;
  overflow:visible !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer{
  width:38px !important;
  max-width:38px !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast.v9-today-card .v9-cast-photo > .public-cast-badges.cast-badge-layer :is(
  .premium-cast-badge,
  .premium-cast-badge-img,
  img.premium-cast-badge-img-new,
  img.premium-cast-badge-img-recommended
){
  flex-basis:24.5px !important;
  width:38px !important;
  min-width:38px !important;
  max-width:38px !important;
  height:24.5px !important;
  min-height:24.5px !important;
  max-height:24.5px !important;
}

html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list.premium-card-cast .public-cast-photo > .public-cast-badges.cast-badge-layer :is(
  .premium-cast-badge,
  .premium-cast-badge-img,
  img.premium-cast-badge-img-new,
  img.premium-cast-badge-img-recommended
){
  flex:0 0 34px !important;
  width:34px !important;
  min-width:34px !important;
  max-width:34px !important;
  height:34px !important;
  min-height:34px !important;
  max-height:34px !important;
  overflow:visible !important;
  object-fit:cover !important;
}

html body.premium-design-system:not(.cast-detail-page) #recruit .recruit-v11-media{
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

html body.premium-design-system:not(.cast-detail-page) #recruit .recruit-v11-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  object-fit:cover !important;
  object-position:center !important;
}

html body.premium-design-system:not(.cast-detail-page) #contact .ver6-contact-link.phone{
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  text-indent:-9999px !important;
}

html body.premium-design-system:not(.cast-detail-page) #contact .ver6-contact-link.phone::before,
html body.premium-design-system:not(.cast-detail-page) #contact .ver6-contact-link.phone::after{
  content:none !important;
  display:none !important;
}

@media(max-width:768px){
  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-item.card-premium{
    grid-template-columns:158px minmax(0,1fr) !important;
    min-height:240px !important;
    height:auto !important;
    gap:8px !important;
    padding:33px 8px 7px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-photo.image-premium{
    align-self:center !important;
    justify-self:center !important;
    box-sizing:border-box !important;
    width:150px !important;
    height:160px !important;
    min-height:160px !important;
    padding:5px !important;
    overflow:hidden !important;
    border-radius:var(--premium-radius-image) !important;
    background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(255,239,248,.44)) !important;
    box-shadow:0 8px 18px rgba(111,59,86,.09),0 1px 0 rgba(255,255,255,.9) inset !important;
    -webkit-backdrop-filter:blur(8px) !important;
    backdrop-filter:blur(8px) !important;
    transform:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media{
    align-self:stretch !important;
    display:grid !important;
    grid-template-rows:160px 44px !important;
    align-content:center !important;
    justify-items:center !important;
    width:158px !important;
    min-width:0 !important;
    gap:6px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-media > .v6-cast-actions.is-compact{
    align-self:center !important;
    justify-self:center !important;
    margin:0 !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-profile{
    align-self:start !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-photo :is(.v9-cast-image,.v9-cast-no-image){
    display:block !important;
    width:100% !important;
    height:100% !important;
    margin:auto !important;
    border-radius:calc(var(--premium-radius-image) - 5px) !important;
    object-fit:cover !important;
    object-position:center top !important;
    clip-path:inset(0 round calc(var(--premium-radius-image) - 5px)) !important;
    transform:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) #cast.v9-today-card .v9-cast-status.badge-premium{
    top:8px !important;
    left:8px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #concept.premium-card-concept{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:1 / 1 !important;
    padding:0 !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #concept .ver6-card-image{
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    object-fit:contain !important;
    transform:none !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home #cast-list .public-cast-photo{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    aspect-ratio:4 / 5 !important;
  }

}

@media(min-width:769px){
  html body.premium-design-system:not(.cast-detail-page) .princess-home .princess-card-grid-top > :is(
    #cast.v9-today-card,
    .premium-card-news,
    #concept.premium-card-concept
  ){
    align-self:stretch !important;
    height:861px !important;
    min-height:861px !important;
    max-height:861px !important;
  }

  html body.premium-design-system:not(.cast-detail-page) .princess-home .princess-card-grid-top > #concept.premium-card-concept{
    transform:none !important;
  }
}
