:root{
  --bg:#121212; --surface:#1e1e1e; --line:#2c2c2c;
  --text:#ededed; --sub:#888888; --gold:#c9a227; --sale:#e60012;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;}
a{color:var(--gold);}
img{display:block;}

/* ===== 年齢ゲート ===== */
body.gate{display:flex;min-height:100vh;align-items:center;justify-content:center;}
.gate-box{text-align:center;padding:2rem 1.5rem;max-width:400px;width:100%;}
.gate-name{font-size:1.5rem;font-weight:700;letter-spacing:.25em;margin:0 0 .5rem;}
.gate-title{color:var(--sub);font-size:.85rem;letter-spacing:.3em;margin:0 0 1.5rem;}
.gate-desc{color:var(--sub);line-height:1.8;font-size:.92rem;margin:0 0 1.5rem;}
.gate-warn{line-height:1.8;font-weight:600;margin:0 0 1.5rem;}
.gate-enter{display:block;background:var(--gold);color:#171204;font-weight:700;
  padding:1rem;border-radius:2px;text-decoration:none;margin-bottom:.5rem;font-size:1rem;}
.gate-leave{display:block;border:1px solid var(--line);color:var(--sub);
  padding:.9rem;border-radius:2px;text-decoration:none;font-size:.95rem;}
.gate-note{color:var(--sub);font-size:.75rem;margin-top:1.5rem;line-height:1.7;}

/* ===== 棚 ===== */
.site-head{max-width:920px;margin:0 auto;padding:1.25rem 1rem .25rem;
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.head-name{font-size:1.2rem;font-weight:700;letter-spacing:.18em;margin:0;}
.head-x{font-size:.85rem;margin:0;}
.head-x a{text-decoration:none;}
main{max-width:920px;margin:0 auto;padding:0 1rem 2rem;}
h2{font-size:1rem;font-weight:700;margin:2rem 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--line);}
h2:first-of-type{margin-top:1.25rem;}

/* FV（期限が最も近いセール） */
.hero{display:block;background:var(--surface);border:1px solid var(--line);border-radius:4px;
  padding:1.1rem 1rem;text-decoration:none;color:var(--text);margin-top:1rem;}
.hero-top{display:flex;gap:.5rem;align-items:center;margin-bottom:.6rem;flex-wrap:wrap;}
.badge-sale{background:var(--sale);color:#fff;font-weight:800;font-size:.82rem;
  padding:.25rem .5rem;border-radius:2px;letter-spacing:.05em;}
.badge-until{border:1px solid var(--sale);color:#ff5b66;font-size:.78rem;font-weight:700;
  padding:.22rem .5rem;border-radius:2px;}
.hero-name{font-size:1.25rem;font-weight:700;line-height:1.5;margin:0 0 .4rem;}
.hero-meta{color:var(--sub);font-size:.85rem;margin:0 0 .9rem;}
.hero-cta{display:inline-block;background:var(--gold);color:#171204;font-weight:700;
  padding:.7rem 1.1rem;border-radius:2px;font-size:.95rem;}

/* セール行カード */
.campaigns{display:flex;flex-direction:column;gap:.5rem;}
.campaign{display:flex;align-items:center;gap:.75rem;background:var(--surface);
  border:1px solid var(--line);border-radius:4px;padding:.8rem .9rem;text-decoration:none;color:var(--text);}
.campaign .c-badge{background:var(--sale);color:#fff;font-weight:800;font-size:.8rem;
  padding:.3rem .5rem;border-radius:2px;white-space:nowrap;}
.c-main{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0;}
.c-name{font-weight:700;font-size:.95rem;}
.c-meta{color:var(--sub);font-size:.8rem;}
.c-arrow{color:var(--sub);font-size:1.25rem;}

/* ツールバー（検索・ジャンル・並び替え） */
.toolbar{margin-top:.5rem;display:flex;flex-direction:column;gap:.6rem;}
.search-input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:4px;
  color:var(--text);padding:.7rem .8rem;font-size:.95rem;}
.search-input::placeholder{color:var(--sub);}
.toolbar-label{color:var(--sub);font-size:.78rem;margin:0 0 .35rem;}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;}
.chip{background:var(--surface);border:1px solid var(--line);color:var(--text);
  padding:.42rem .8rem;border-radius:999px;font-size:.82rem;cursor:pointer;}
.chip.active{background:var(--gold);border-color:var(--gold);color:#171204;font-weight:700;}
.sort-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.sort-label{color:var(--sub);font-size:.82rem;}
.sort-select{background:var(--surface);border:1px solid var(--line);border-radius:4px;
  color:var(--text);padding:.45rem .6rem;font-size:.88rem;}
.count{color:var(--sub);font-size:.82rem;margin-left:auto;}
.empty{color:var(--sub);padding:2rem 0;text-align:center;grid-column:1/-1;}

/* 作品グリッド */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;}
@media(min-width:720px){.grid{grid-template-columns:repeat(3,1fr);}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden;
  text-decoration:none;color:var(--text);display:flex;flex-direction:column;}
.card-img{position:relative;}
.card-img img{width:100%;aspect-ratio:3/2;object-fit:cover;}
.card-off{position:absolute;top:.5rem;left:.5rem;background:var(--sale);color:#fff;
  font-weight:800;font-size:.8rem;padding:.22rem .45rem;border-radius:2px;}
.card-staple{position:absolute;top:.5rem;left:.5rem;background:rgba(18,18,18,.85);color:var(--gold);
  border:1px solid var(--gold);font-weight:700;font-size:.75rem;padding:.22rem .45rem;border-radius:2px;}
.card-body{padding:.6rem .7rem .75rem;display:flex;flex-direction:column;gap:.3rem;}
.card-title{font-weight:700;font-size:.88rem;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card-meta{color:var(--sub);font-size:.75rem;}
.card-price{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;}
.card-price strong{color:var(--gold);font-size:1.05rem;}
.card-price s{color:var(--sub);font-size:.78rem;}
.card-until{color:#ff5b66;font-size:.75rem;font-weight:700;}
.card-usual{color:var(--sub);font-size:.75rem;}

.about p{color:var(--sub);line-height:1.9;font-size:.87rem;}
footer{max-width:920px;margin:0 auto;padding:0 1rem 2.5rem;color:var(--sub);font-size:.75rem;line-height:1.8;}
