@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Teko:wght@300..700&display=swap');

* {
  box-sizing: border-box;
}
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
html::-webkit-scrollbar {
  display: none;
}
:root {
  --light: #fffdea;
  --frost: #f3f3f1;
  --smoke: #DFE0DF;
  --breeze: #93aaac;
  --blue: #547383;
  --coral: #e57373;
  --red: #e53935;
  --brick: #BB4430;
  --green: #00897b;
  --neutral: #707272;
  --grey: #4c4c4d;
  --black: #262626;
}
::selection {
  color: var(--coral);
  background: var(--unset);
}
body {
  font-family: 'Roboto', 'Outfit', sans-serif;
  background-color: var(--smoke);
  color: var(--black);
  font-size: 1.6rem;
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100%;
}
a {
  cursor: pointer;
  color: var(--smoke);
  text-decoration: none;
}
button {
  background-color: unset;
  color: var(--black);
  border: none;
  user-select: none;
  cursor: pointer;
  margin: 0;
  padding: 0;
}
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.alert {
  color: var(--red);
}
/*-------------------------------------------- HEADER */
#header-container {
  z-index: 10;
  width: 100vw;
  background-color: unset;
  position: fixed;
  top: 0;
  left: 0;
}
#menu-bar {
  width: 100vw;
  height: 85px;
  display: flex;
  justify-content: space-between;
  padding: 0px 20px;
}
.colorMenu {
  background-color: var(--coral);
}
.transparentMenu {
  background-color: unset;
  background-image: linear-gradient(0deg, #00000000 0%, #00000000 10%, #00000040 100%);
}
#logo {
  width: 80px;
  height: 80px;
  text-align: center;
  font-family: 'Outfit';
  font-weight: 900;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  color: var(--light);
  transition: 0.3s;
}
#logo:hover {
  transform: scale(0.92);
}
#loli {
  margin: 0;
  margin-bottom: -22px;
  font-size: 3.2rem;
  transition: 0.3s;
}
#chka {
  margin: 0;
  transition: 0.3s;
  font-size: 2.5rem;
}
#menu-buttons {
  z-index: 14;
  width: 40px;
  height: 80px;
  text-align: center;
  font-family: 'Outfit';
  font-weight: 900;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  transition: 0.3s;
}
#menu-buttons *:hover {
  transform: scale(0.9);
}
#menu-open {
  color: var(--light);
  font-size: 4rem;
  transition: 0.3s;
}
#menu-close {
  color: var(--light);
  font-size: 6rem;
  transition: 0.3s;
  display: none;
}
@media screen and (orientation: portrait) {
  #menu-bar {
    height: 80px;
  }
  #loli {
    margin: 0;
    margin-bottom: -32px;
    font-size: 2.6rem;
  }
  #chka {
    margin: 0;
    font-size: 2rem;
  }
  #menu-open {
    font-size: 3.2rem;
  }
  #menu-close {
    font-size: 5.2rem;
  }
}
/* MENU */
#menu-container {
  z-index: 12;
  background-color: var(--coral);
  position: fixed;
  top: 0;
  right: 0;
  width: 100vw;
  height: 100vh;
  transform: translateY(100%);
  display: none;
}
#menu-ul {
  margin-top: 100px;
  padding: 0px 30px;
}
#menu-ul li {
  text-align: center;
  margin-top: 20px;
  cursor: pointer;
}
#menu-ul li p {
  color: var(--frost);
  font-size: 2.4rem;
  font-weight: 700;
  font-family: 'Outfit';
  user-select: none;
}
@media screen and (orientation: portrait) {
  #menu-container {
    width: 100vw;
  }
}
/* MENU ANIMATION */
@keyframes menuIn {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(0%);
  }
}
.menuIn {
  animation: menuIn 0.3s ease-out forwards;
}
@keyframes menuOut {
  0% {
    transform: translateY(0%);
  }
  100% {
    transform: translateY(100%);
  }
}
.menuOut {
  animation: menuOut 0.3s ease-in forwards;
}
/*-------------------------------------------- MAIN */
#main-container {
  width: 100vw;
  min-height: 100vh;
}
/*-------------------------------------------- FOOTER */
#footer-container {
  background-color: var(--black);
  color: var(--neutral);
  padding: 20px 20px;
}
/*-------------------------------------------- ERROR404 */
#error-container {
  margin: 0;
  padding: 20px;
}
/*-------------------------------------------- SLIDESHOW */
#slideshow-container {
  width: 100vw;
  height: 95vh;
  position: relative;
  overflow: hidden;
  background-size: cover;
}
.slideshow {
  background-size: cover;
  user-select: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  opacity: 0;
}
.active {
  display: block;
}
.ready {
  opacity: 1;
}
/* SLIDESHOW ANIMATION */
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: scale(1.1);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.fadeIn {
  animation: fadeIn 1s ease-in-out forwards;
}
/* TEXTS */
.slideText {
  position: absolute;
  bottom: 20%;
}
/* Text fade-in */
.slideText h1 {
  font-family: 'Outfit';
  font-size: clamp(6rem, 8vw, 10rem);
  margin: 0;
  padding: 0;
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}
.slideText p {
  font-size: clamp(1rem, 3vw, 2rem);
  margin: 0;
  padding: 0;
  margin-top: -2%;
  padding-left: clamp(5px, 1vw, 10px);
  padding-right: clamp(5px, 1vw, 10px);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}
/* TEXT ANIMATION */
@keyframes textDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0px);
  }
}
.textDown {
  animation: textDown 0.5s ease-in-out forwards;
}
@keyframes textUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0px);
  }
}
.textUp {
  animation: textUp 1s ease-in-out forwards;
}
/*-------------------------------------------- INTRODUCTION & SERVICE */
#intro {
  background-color: var(--black);
  margin: 0;
  padding: 50px 15px;
}
#introduce,
#service {
  max-width: 1024px;
  margin: 0px auto;
  padding: 50px 0px;
  color: var(--smoke);
}
#service li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid var(--smoke);
  margin-top: 40px;
  font-family: "Teko";
  transition: 0.3s;
  user-select: none;
  cursor: pointer;
}
#service li h2 {
  margin: 0;
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 500;
}
#service li h3 {
  margin: 0;
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-weight: 500;
}
#service li:hover {
  color: var(--coral);
}

/*-------------------------------------------- OUR BABES */
#model-roster {
  padding: 20px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
  max-width: 1920px;
  margin: 0 auto;
}
@media screen and (orientation: portrait) {
  /* Mobile Portrait: 1 คอลัมน์ */
  #model-roster {
    grid-template-columns: repeat(2, 1fr);
  }
}
#sort-models {
    padding: 5px;
    border-radius: 5px;
    background: var(--grey);
    color: var(--frost);
    border: none;
}
#sort-models:focus {
    outline: none;
}
/* --- MODEL CARD STYLING --- */
.model-card {
  text-decoration: none;
  position: relative;
  display: block;
}
.card-image-wrapper {
  /* Aspect Ratio Box: กำหนดสัดส่วน 3:4 */
  padding-bottom: 133.33%; /* (4 / 3) * 100% = 133.33% */
  height: 0;
  overflow: hidden;
  position: relative;
}
.card-image-wrapper img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.card-info {
  color: var(--light);
  text-align: center;
  font-size: clamp(2.2rem, 2.4vw, 3.4rem);
  position: absolute;
  bottom: 20px;
  width: 100%;
}