/* Homepage only. Keep the desktop content width; simplify the mobile reading column. */
#top main > .wrap { max-width: 1200px; }
#top main > .wrap > section { padding-bottom: 0; margin-bottom: 104px; }
#top main > .wrap > .featured { margin-bottom: 80px; }
#top .divider { margin: 0 0 28px; }
#top h2 { margin-bottom: 28px; font-size: clamp(24px,2.7vw,34px); line-height: 1.5; }
#top .info-meta { flex-wrap: wrap; gap: 6px 12px; font-size: calc(12px * var(--official-font-scale, 1)); letter-spacing: .06em; line-height: 1.8; }
#top .info-title { display: block; margin-top: 6px; font-size: calc(14px * var(--official-font-scale, 1)); line-height: 1.8; overflow-wrap: anywhere; }
#top .info-item { padding-top: 16px; }
#top .info-item:not(:last-child) { padding-bottom: 16px; }
#top .content-empty { margin-bottom: 0; padding: 32px 18px; gap: 10px; }
#top .content-empty-title { font-size: calc(18px * var(--official-font-scale, 1)); }
#top .content-empty-description { font-size: calc(12px * var(--official-font-scale, 1)); }
#top .entry-message .lead { font-size: calc(16px * var(--official-font-scale, 1)); letter-spacing: .18em; line-height: 1.9; }
#top .entry-list li > br,
#top .company-values li > br { display: none; }
#top .entry-note { line-height: 1.9; overflow-wrap: anywhere; }
#top .company-body { margin-bottom: 36px; }
#top .company-values { margin-bottom: 48px; }
#top .company-row { margin-top: 28px; row-gap: 10px; }
#top .company-row dt,
#top .company-row dd { padding-block: 10px; }
@media (max-width: 767px) {
  #top main > .wrap > section { margin-bottom: 64px; }
  #top main > .wrap > .featured { margin-bottom: 56px; }
  #top .divider { margin-bottom: 24px; }
  #top h2 { font-size: calc(24px * var(--official-font-scale, 1)); margin-bottom: 24px; }
  #top .works-wrap,
  #top .info-list,
  #top .content-empty,
  #top .entry .entryWrap,
  #top .company .companyWrap { width: 100%; }
  #top .works-wrap { gap: 18px; }
  #top .works-head .copy { font-size: calc(18px * var(--official-font-scale, 1)); line-height: 1.8; letter-spacing: .06em; }
  #top .info-meta { font-size: calc(11px * var(--official-font-scale, 1)); gap: 4px 10px; }
  #top .info-title { font-size: calc(13px * var(--official-font-scale, 1)); }
  #top .content-empty { padding: 26px 14px; }
  #top .entry-message { margin-top: 0; }
  #top .entry-message .lead { font-size: calc(13px * var(--official-font-scale, 1)); letter-spacing: .14em; }
  #top .entry-message .copy { font-size: calc(19px * var(--official-font-scale, 1)); letter-spacing: .06em; }
  #top .entry-message .muted { font-size: calc(13px * var(--official-font-scale, 1)); letter-spacing: .04em; }
  #top .entry-list { gap: 12px; margin-top: 22px; }
  #top .entry-list li { padding: 0; gap: 12px; }
  #top .entry-list .expln { font-size: calc(12px * var(--official-font-scale, 1)); line-height: 1.8; }
  #top .entry-contact-links { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 22px; }
  #top .contact-chip { min-width: 0; min-height: 72px; padding: 14px 6px; align-content: center; }
  #top .contact-chip .label { font-size: calc(10px * var(--official-font-scale, 1)); letter-spacing: .1em; }
  #top .contact-chip .desc { font-size: calc(10px * var(--official-font-scale, 1)); overflow-wrap: anywhere; }
  #top .entry-note { font-size: calc(11px * var(--official-font-scale, 1)); letter-spacing: .03em; }
  #top .company-message .copy { font-size: calc(15px * var(--official-font-scale, 1)); letter-spacing: .05em; }
  #top .company-statement { font-size: calc(20px * var(--official-font-scale, 1)); }
  #top .company .catch { font-size: calc(18px * var(--official-font-scale, 1)); line-height: 1.7; }
  #top .company-body { margin-bottom: 28px; font-size: calc(13px * var(--official-font-scale, 1)); line-height: 1.9; }
  #top .company-body .statement:not(:last-of-type) { margin-bottom: 18px; }
  #top .company-values { gap: 12px; margin-bottom: 32px; }
  #top .company-values li { padding: 0; gap: 12px; font-size: calc(13px * var(--official-font-scale, 1)); }
  #top .company-row { grid-template-columns: 84px minmax(0,1fr); column-gap: 14px; row-gap: 0; font-size: calc(12px * var(--official-font-scale, 1)); }
  #top .company-row > * { min-width: 0; overflow-wrap: anywhere; }
  #top .company-row dt { font-size: calc(11px * var(--official-font-scale, 1)); letter-spacing: .05em; }
}

/* Homepage information picks. */
#top main > .wrap > section.featured-information {
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#top .featured-information h2.divider {
  margin: 26px 0 52px;
  padding: 0;
  position: relative;
  text-align: center;
  color: var(--muted, #757575);
  font: calc(12px * var(--official-font-scale, 1)) / 1 ui-sans-serif, system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  letter-spacing: .22em;
  text-transform: uppercase;
}
#top .featured-information h2.divider::before { border-top-color: rgba(173, 93, 136, .4); }
#top .featured-information h2.divider span {
  position: relative;
  display: inline-block;
  max-width: 100%;
  box-sizing: border-box;
  color: #fff;
  background: #ad5d88;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 999px;
  padding: 6px 18px;
}
#top .featured-information-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 24px 14px;
  width: 100%;
  margin-inline: auto;
}
#top .featured-information-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #ffffff;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px -12px #68475d45;
  transition: transform .25s ease, box-shadow .25s ease;
}
#top .featured-information-main { display: block; flex: 1; color: inherit; text-decoration: none; }
#top .featured-information-image {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #f8edf5, #eef4fa);
  color: #877489;
  font-size: calc(12px * var(--official-font-scale, 1));
  letter-spacing: .12em;
}
#top .featured-information-image img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#top .featured-information-body { position: relative; padding: 22px 20px; }
#top .featured-information-body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 20px;
  width: 36px;
  height: 3px;
  background: linear-gradient(90deg, #c96f9f, #8bb9d0);
  border-radius: 3px;
}
#top .featured-information-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; font-size: calc(11px * var(--official-font-scale, 1)); color: #786777; line-height: 1.6; }
#top .featured-information-meta time { font-variant-numeric: tabular-nums; letter-spacing: .06em; }
#top .featured-information-meta > span { padding: 3px 10px; border-radius: 20px; background: #f7eaf2; color: #9a4876; font-weight: 600; }
#top .featured-information-models { margin: 12px 0 0; font-size: calc(12px * var(--official-font-scale, 1)); line-height: 1.7; color: #946180; }
#top .featured-information-card h3 { margin: 10px 0 0; font-size: calc(14px * var(--official-font-scale, 1)); font-weight: 400; text-align: left; line-height: 1.85; color: #443342; overflow-wrap: anywhere; }
#top .featured-information-arrow { color: #a94c75; }
#top .featured-information-detail { margin: 0 20px 20px; font-size: calc(13px * var(--official-font-scale, 1)); line-height: 1.9; overflow-wrap: anywhere; }
#top .featured-information-detail summary { padding: 9px 12px; border: 1px solid #ecd8e4; border-radius: 8px; background: #fcf6fa; color: #9a456c; cursor: pointer; }
#top .featured-information-detail[open] summary { margin-bottom: 12px; }
#top .featured-information-copy { margin: 12px 0; }
#top .featured-information-main:focus-visible,
#top .featured-information-detail summary:focus-visible { outline: 2px solid #b54870; outline-offset: -3px; }
#top .featured-information .content-empty { box-sizing: border-box; width: 100%; border: 1px dashed #d8bdd0; border-radius: 16px; background: #ffffffa8; }
@media (hover: hover) {
  #top .featured-information-card:hover { transform: translateY(-5px); box-shadow: 0 16px 32px -14px #68475d65; }
  #top a.featured-information-main:hover h3 { color: #a94c75; }
}
@media (max-width: 1023px) {
  #top .featured-information-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
}
@media (max-width: 767px) {
  #top main > .wrap > section.featured-information { padding: 0; }

  #top .featured-information-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  #top .featured-information-main {
    display: grid;
    grid-template-columns: 34% minmax(0, 1fr);
    align-items: start;
  }
  #top .featured-information-image {
    aspect-ratio: 1 / 1;
    margin: 12px 0 12px 12px;
    border-radius: 10px;
    font-size: calc(10px * var(--official-font-scale, 1));
  }
  #top .featured-information-body { min-width: 0; padding: 12px; }
  #top .featured-information-body::before { left: 12px; width: 24px; }
  #top .featured-information-meta { gap: 5px 8px; font-size: calc(10px * var(--official-font-scale, 1)); }
  #top .featured-information-models { margin-top: 8px; font-size: calc(11px * var(--official-font-scale, 1)); }
  #top .featured-information-card h3 { margin-top: 8px; font-size: calc(13px * var(--official-font-scale, 1)); line-height: 1.7; }
  #top .featured-information-detail { margin: 0 12px 12px calc(34% + 12px); font-size: calc(12px * var(--official-font-scale, 1)); }
}
@media (prefers-reduced-motion: reduce) {
  #top .featured-information-card { transition: none; }
  #top .featured-information-card:hover { transform: none; }
}

/* Model icons alongside homepage information rows. */
#top .info-list > .info-item-with-models{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:16px;align-items:start}#top .info-item-with-models .info-item-content{min-width:0}#top .info-item-with-models .info-divider{grid-column:1 / -1}#top .info-model-thumbnails{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:64px}#top .info-model-thumbnail{display:block;min-width:0;aspect-ratio:1;overflow:hidden;border-radius:9px;background:#f5edf3;text-decoration:none;box-shadow:0 2px 8px #5c385915}#top .info-model-thumbnail:only-child{grid-column:1 / -1;border-radius:14px}#top .info-model-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}#top .info-model-placeholder{display:flex;width:100%;aspect-ratio:1;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#f5e6ef,#e8f1f8);color:#99708c;font-size:calc(12px * var(--official-font-scale, 1));line-height:1;letter-spacing:0}#top .info-model-thumbnails>.info-model-placeholder{grid-column:1 / -1;font-size:calc(10px * var(--official-font-scale, 1))}#top .info-model-thumbnail:focus-visible{outline:2px solid #b54870;outline-offset:3px}
@media(max-width:767px){#top .info-list > .info-item-with-models{grid-template-columns:52px minmax(0,1fr);column-gap:12px}#top .info-model-thumbnails{width:52px}}

/* Random album, between TikTok and entry. */
#top .home-album-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;width:100%}#top .home-album-photo{position:relative;display:block;min-width:0;aspect-ratio:4/5;overflow:hidden;border-radius:14px;background:#f5f3f5;text-decoration:none}#top .home-album-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}#top .home-album-name{position:absolute;inset:auto 0 0;padding:24px 10px 10px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;font-size:calc(12px * var(--official-font-scale, 1));line-height:1.5;text-align:left;overflow-wrap:anywhere}#top .home-album-photo:focus-visible{outline:2px solid #ad5d88;outline-offset:4px}@media(hover:hover){#top .home-album-photo:hover img{transform:scale(1.04)}}@media(max-width:1023px){#top .home-album-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}@media(max-width:767px){#top .home-album-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}#top .home-album-photo{border-radius:10px}#top .home-album-name{font-size:calc(10px * var(--official-font-scale, 1));padding:20px 7px 7px}}@media(max-width:359px){#top .home-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){#top .home-album-photo img{transition:none}#top .home-album-photo:hover img{transform:none}}

#top .home-album > h2.divider {
  font: calc(12px * var(--official-font-scale, 1)) / 1 ui-sans-serif, system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  letter-spacing: .22em;
}

/* Album enlargement with a personal-page link below the image. */
html.home-album-modal-open{overflow:hidden}.home-album-dialog{box-sizing:border-box;width:fit-content;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:44px 20px 20px;border:0;border-radius:16px;background:#fff;color:#555;box-shadow:0 18px 70px #0005;overflow:auto}.home-album-dialog[open]{display:flex;flex-direction:column;align-items:center;gap:18px}.home-album-dialog::backdrop{background:rgba(22,18,24,.8)}.home-album-enlarged-wrap{min-width:0;max-width:100%}.home-album-enlarged{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 170px);object-fit:contain;margin:auto;border-radius:6px}.home-album-enlarged[hidden]{display:none}.home-album-close{position:absolute;top:8px;right:10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#f3eff2;color:#66515e;font:28px/1 sans-serif;cursor:pointer}.home-album-profile-link{display:block;max-width:100%;padding:10px 20px;border:1px solid #dec5d3;border-radius:999px;background:#fffafd;color:#985474;font-size:calc(13px * var(--official-font-scale, 1));line-height:1.6;text-align:center;text-decoration:none;overflow-wrap:anywhere}.home-album-profile-link:hover{background:#f7eaf2;color:#803e61}.home-album-dialog a:focus-visible,.home-album-dialog button:focus-visible{outline:2px solid #ad5d88;outline-offset:3px}.home-album-image-error{padding:40px 20px;font-size:calc(14px * var(--official-font-scale, 1))}@media(max-width:767px){.home-album-dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:44px 12px 16px}.home-album-profile-link{font-size:calc(12px * var(--official-font-scale, 1));padding:10px 14px}}

/* Gentle album opening; no motion when reduced motion is requested. */
.home-album-dialog[open] { animation: album-dialog-enter .28s cubic-bezier(.2,.7,.3,1) both; }
.home-album-dialog[open]::backdrop { animation: album-backdrop-enter .28s ease both; }
@keyframes album-dialog-enter {
  from { opacity: 0; transform: translateY(12px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes album-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .home-album-dialog[open], .home-album-dialog[open]::backdrop { animation: none; }
}

/* Complete the fade-out before closing the native dialog. */
.home-album-dialog[open].is-closing { animation: album-dialog-exit .22s ease both; }
.home-album-dialog[open].is-closing::backdrop { animation: album-backdrop-exit .22s ease both; }
@keyframes album-dialog-exit {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(8px) scale(.98); }
}
@keyframes album-backdrop-exit { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .home-album-dialog[open].is-closing, .home-album-dialog[open].is-closing::backdrop { animation: none; }
}

/* Retain scrollbar space while the album locks page scrolling. */
html { scrollbar-gutter: stable; }

/* Scroll reveal for homepage picks; cards remain visible without JavaScript. */
#top .featured-information-card.is-reveal-pending { opacity: 0; transform: translateY(18px); }
#top .featured-information-card.is-revealed { animation: pick-card-enter .55s cubic-bezier(.2,.7,.3,1) var(--pick-delay,0ms) backwards; }
@keyframes pick-card-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  #top .featured-information-card.is-reveal-pending { opacity: 1; transform: none; }
  #top .featured-information-card.is-revealed { animation: none; }
}
@media print {
  #top .featured-information-card.is-reveal-pending { opacity: 1; transform: none; }
  #top .featured-information-card.is-revealed { animation: none; }
}
