/* MODEL CATALOG — TSUYUSE */
.model-catalog-page{
  min-height:100vh;
  background:var(--paper);
}

.model-catalog-page::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:255px;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      #f4cfd0 0%,
      #f7d9d7 30%,
      #f9e4dc 58%,
      #fbf1df 78%,
      var(--paper) 100%
    );
}

.model-catalog-page .site-header{
  position:fixed;
}

/* Detail/category pages keep only the TSUYUSE mark. */
.model-catalog-page .global-nav,
.model-catalog-page .menu-toggle{
  display:none!important;
}

.catalog-main{
  width:min(1500px,100%);
  margin:0 auto;
  padding:175px 7vw 80px;
}

.catalog-hero{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.55fr);
  gap:9vw;
  align-items:end;
  padding:34px 0 55px;
  border-bottom:1px solid rgba(80,60,55,.09);
  position:relative;
}

.catalog-number{
  margin:0 0 18px;
  color:#c98686;
  font-size:11px;
  letter-spacing:.28em;
}

.catalog-title-block h1{
  margin:0;
  font-size:clamp(55px,6.5vw,96px);
  line-height:.92;
  font-weight:400;
  letter-spacing:.07em;
}

.catalog-subtitle{
  margin:22px 0 0;
  color:#8d817e;
  font-size:13px;
  letter-spacing:.22em;
}

.catalog-live2d-two{
  font-family:inherit;
  font-size:1em;
  vertical-align:baseline;
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1;
}

.catalog-intro{
  margin:0 0 5px;
  font-family:var(--jp);
  color:#756d69;
  font-size:12px;
  line-height:2.15;
  letter-spacing:.12em;
}

.catalog-filter{
  display:flex;
  justify-content:center;
  gap:12px;
  margin:42px 0 48px;
}

.catalog-filter-button{
  min-width:138px;
  padding:9px 22px 8px;
  border:1px solid rgba(142,120,115,.17);
  border-radius:999px;
  background:rgba(251,248,244,.38);
  color:#827875;
  font-family:var(--serif);
  font-size:10px;
  letter-spacing:.22em;
  cursor:pointer;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}

.catalog-filter-button:hover{
  border-color:rgba(219,160,160,.65);
}

.catalog-filter-button.is-active{
  background:#282525;
  border-color:#282525;
  color:#fff;
}

.catalog-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:52px 32px;
  align-items:start;
}

.model-card{min-width:0}
.model-card-link{display:block}

.model-card-image{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#f2ece8;
}

.model-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  position:relative;
  background:linear-gradient(145deg,rgba(246,224,221,.92),rgba(248,244,239,.88));
  color:#b29c98;
  transition:transform .6s cubic-bezier(.22,.61,.36,1);
}

.model-placeholder::before,
.model-placeholder::after{
  content:"";
  position:absolute;
  border:1px solid rgba(219,160,160,.22);
  border-radius:50%;
}

.model-placeholder::before{width:56%;aspect-ratio:1}
.model-placeholder::after{width:35%;aspect-ratio:1}

.model-placeholder span{
  position:relative;
  z-index:1;
  font-size:11px;
  letter-spacing:.28em;
}

.model-placeholder small{
  position:absolute;
  right:18px;
  bottom:16px;
  font-size:10px;
  letter-spacing:.2em;
}

.model-status{
  position:absolute;
  left:14px;
  bottom:14px;
  z-index:3;
  min-width:94px;
  padding:7px 12px 6px;
  text-align:center;
  font-size:9px;
  letter-spacing:.18em;
}

.model-status.available{background:rgba(226,163,163,.92);color:#fff}
.model-status.sold{background:rgba(83,79,78,.68);color:#fff}

.model-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:rgba(229,170,170,.27);
  opacity:0;
  transition:opacity .38s ease;
}

.model-hover{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  transform:translate(-50%,-43%);
  color:#fff;
  font-size:11px;
  letter-spacing:.25em;
  opacity:0;
  transition:opacity .35s ease,transform .45s ease;
}

.model-card-link:hover .model-card-image::after{opacity:1}
.model-card-link:hover .model-placeholder{transform:scale(1.018)}
.model-card-link:hover .model-hover{opacity:1;transform:translate(-50%,-50%)}

.model-card-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  padding:18px 2px 16px;
  border-bottom:1px solid rgba(80,60,55,.09);
}

.model-index{
  margin:0 0 6px;
  color:#9e918d;
  font-size:9px;
  letter-spacing:.22em;
}

.model-card-meta h2{
  margin:0;
  font-size:24px;
  font-weight:400;
  letter-spacing:.12em;
}

.model-view{
  flex:0 0 auto;
  padding-bottom:3px;
  color:#9c7774;
  font-size:9px;
  letter-spacing:.18em;
  transition:transform .3s ease;
}

.model-card-link:hover .model-view{transform:translateX(4px)}

.catalog-bottom{
  display:flex;
  justify-content:space-between;
  margin-top:95px;
  padding-top:22px;
  border-top:1px solid rgba(80,60,55,.08);
  color:#9a918e;
  font-size:9px;
  letter-spacing:.2em;
}

@media(max-width:900px){
  .catalog-main{padding:135px 8vw 65px}
  .catalog-hero{grid-template-columns:1fr;gap:30px}
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 22px}
  .catalog-filter{justify-content:flex-start;overflow-x:auto;padding-bottom:3px}
}

@media(max-width:560px){
  .catalog-main{padding:120px 6vw 50px}
  .catalog-hero{padding-bottom:38px}
  .catalog-title-block h1{font-size:48px}
  .catalog-intro{font-size:11px}
  .catalog-filter{margin:32px 0 36px;gap:8px}
  .catalog-filter-button{min-width:0;padding:8px 15px;font-size:9px}
  .catalog-grid{grid-template-columns:1fr;gap:42px}
  .catalog-bottom{margin-top:65px}
}

@media(hover:none){
  .model-card-image::after,.model-hover{display:none}
  .model-card-link:hover .model-placeholder{transform:none}
}


/* =========================================================
   SAKURA TEST ONLY
   Completely isolated decoration. No SVG and no global rules.
   ========================================================= */
.sakura-test-decoration{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:190px;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}

.sakura-test-decoration .sakura-test-branch{
  position:absolute;
  height:0;
  border-top:1px solid rgba(171,111,111,.28);
  transform-origin:right center;
}

.sakura-test-decoration .branch-main{
  width:185px;
  right:-12px;
  top:62px;
  transform:rotate(-14deg);
}

.sakura-test-decoration .branch-small{
  width:64px;
  right:105px;
  top:58px;
  transform:rotate(34deg);
}

.sakura-test-decoration .sakura-test-flower{
  position:absolute;
  display:block;
  width:auto;
  height:auto;
  margin:0;
  padding:0;
  color:rgba(190,119,122,.38);
  font-family:"Noto Serif JP",serif;
  font-weight:400;
  font-size:15px;
  line-height:1;
}

.sakura-test-decoration .flower-a{right:38px;top:45px;transform:rotate(10deg)}
.sakura-test-decoration .flower-b{right:104px;top:66px;font-size:12px;opacity:.78}
.sakura-test-decoration .flower-c{right:155px;top:42px;font-size:10px;opacity:.58}

.sakura-test-decoration .sakura-test-petal{
  position:absolute;
  display:block;
  width:5px;
  height:9px;
  border-radius:70% 30% 65% 35%;
  background:rgba(197,128,130,.30);
}

.sakura-test-decoration .petal-a{left:38%;top:55px;transform:rotate(30deg)}
.sakura-test-decoration .petal-b{left:50%;top:101px;transform:rotate(105deg);opacity:.72}
.sakura-test-decoration .petal-c{right:31%;top:78px;transform:rotate(62deg);opacity:.58}

@media(max-width:700px){
  .sakura-test-decoration .branch-main{width:135px;right:-25px}
  .sakura-test-decoration .branch-small{width:45px;right:72px}
  .sakura-test-decoration .flower-c,
  .sakura-test-decoration .petal-a{display:none}
}


/* =========================================================
   SAKURA TEST v2 — flowers + petals only
   ========================================================= */

/* Branches are intentionally disabled in this version. */
.sakura-test-decoration .sakura-test-branch{
  display:none !important;
}

/* Slightly larger blossoms gathered in the upper-right. */
.sakura-test-decoration .flower-a{
  right:40px;
  top:30px;
  font-size:25px;
  opacity:.68;
  transform:rotate(8deg);
}
.sakura-test-decoration .flower-b{
  right:88px;
  top:52px;
  font-size:21px;
  opacity:.54;
  transform:rotate(-12deg);
}
.sakura-test-decoration .flower-c{
  right:137px;
  top:26px;
  font-size:18px;
  opacity:.42;
  transform:rotate(17deg);
}

/* More petals, still kept only in the upper decorative area. */
.sakura-test-decoration .petal-a{left:31%;top:42px;transform:rotate(28deg);opacity:.58}
.sakura-test-decoration .petal-b{left:39%;top:83px;transform:rotate(108deg);opacity:.50}
.sakura-test-decoration .petal-c{left:48%;top:55px;transform:rotate(62deg);opacity:.46}
.sakura-test-decoration .petal-d{left:57%;top:105px;transform:rotate(142deg);opacity:.38}
.sakura-test-decoration .petal-e{left:66%;top:48px;transform:rotate(76deg);opacity:.45}
.sakura-test-decoration .petal-f{right:22%;top:94px;transform:rotate(18deg);opacity:.34}
.sakura-test-decoration .petal-g{right:15%;top:69px;transform:rotate(121deg);opacity:.40}

@media(max-width:700px){
  .sakura-test-decoration .flower-a{right:22px;font-size:21px}
  .sakura-test-decoration .flower-b{right:62px;font-size:17px}
  .sakura-test-decoration .flower-c{right:100px;font-size:15px}
  .sakura-test-decoration .petal-d,
  .sakura-test-decoration .petal-f{display:none}
}
.model-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center -45%;
  transform: translateX(6%) scale(2.5);
  display: block;
}