/* Noctolio 本番テーマ。仕様は /DESIGN.md
   夜（紺墨）の棚に、灯り（琥珀）がひとつだけ点いている */
:root {
  --night:#161B26; --night-raised:#1E2433; --hairline:#2A3142;
  --paper:#EFE9DE; --lamp:#D9A441; --lamp-deep:#7E5A12; --mist:#8E95A3;
  --bg:var(--night); --text:var(--paper); --muted:var(--mist);
  --font-body:"Zen Kaku Gothic New",sans-serif; --font-head:"Shippori Mincho B1",serif; --head-weight:500;
  --gate-bg:rgba(22,27,38,.98); --cover-ratio:3/4; --card-min:200px; --gap:28px 18px;
}
body { font-size:15px; overflow-x:clip; }
:focus-visible { outline:2px solid var(--lamp); outline-offset:3px; }

header.site { padding:18px 0; border-bottom:1px solid var(--hairline); }
.brand { font-family:"Cormorant Garamond",serif; font-style:italic; font-size:1.55rem; line-height:1; }
header.site nav a { color:var(--paper); }
header.site nav a:hover { color:var(--lamp); }
.pr { margin-top:12px; }

.hero { padding:44px 0 32px; max-width:36em; }
.hero h1 { font-size:clamp(2rem, 7vw, 3.4rem); line-height:1.3; letter-spacing:.02em; }
.hero .lead { font-size:.95rem; }
h2 { font-size:1.15rem; margin:48px 0 16px; padding-bottom:8px; border-bottom:1px solid var(--hairline); }

/* 灯り：今夜の1本だけが照らされている（このテーマで唯一の大きな見せ場） */
.lit h2 { border:0; margin-top:8px; color:var(--lamp); }
.lit .grid { display:block; }
.lit .card { display:grid; grid-template-columns:minmax(120px, 34%) 1fr; column-gap:18px; padding:18px;
  background:radial-gradient(120% 90% at 0% 0%, rgba(217,164,65,.22), transparent 60%), var(--night-raised);
  border:1px solid rgba(217,164,65,.35); border-radius:6px; }
.lit .card .cover { grid-row:1 / span 8; }
.lit .card { border-radius:0; }
.lit .card .title { font-size:1.2rem; }

.moments { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:0 24px; margin-top:28px; }
.moments li { border-top:1px solid var(--hairline); }
.moments a { display:block; padding:14px 0; }
.moments .m-title { display:block; font-family:var(--font-head); font-size:1.08rem; }
.moments a:hover .m-title { color:var(--lamp); }

/* Nike：作品画像そのものがカード。角丸・枠・影なし */
.cover { background:var(--night-raised); border-radius:0; padding:10px; }
.cover-no { display:none; }
.cover-genre { font-size:.75rem; color:var(--mist); }
.title { font-family:var(--font-head); font-size:1rem; margin-top:8px; }
.badge.low { color:var(--lamp); font-size:.75rem; font-weight:500; }
/* Nike：値下げは琥珀の価格＋取り消し線だけで伝える */
.price { font-size:1.05rem; display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .5em; }
.price .sale { color:var(--lamp); }
.price .was { margin-left:0; }
.price .off { color:var(--lamp); font-size:.8rem; font-weight:500; }
.spark { color:var(--lamp); opacity:.8; }
/* Mercury：塗りの行動色は1つだけ。他は半透明のカプセル */
.btn { background:rgba(239,233,222,.08); border-radius:999px; padding:10px 18px; font-size:.85rem; font-weight:500; margin-top:10px; }
.btn:hover { background:rgba(239,233,222,.16); }
.lit .btn { background:var(--lamp); color:var(--night); font-weight:700; }
.lit .btn:hover { background:#e4b257; }

/* 値下げ中はスマホでは横に流れる棚 */
@media (max-width:640px) {
  .grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px; padding-bottom:6px; }
  .grid .card { flex:0 0 62vw; scroll-snap-align:start; }
  .lit .card { grid-template-columns:1fr; }
  .lit .card .cover { grid-row:auto; aspect-ratio:16/10; }
}

footer.site { border-top:1px solid var(--hairline); }
#age-gate .box { background:var(--night-raised); border:1px solid var(--hairline); border-radius:6px; }
#age-gate p strong { font-family:var(--font-head); font-size:1.15rem; }
#age-gate .yes { background:var(--lamp); color:var(--night); border:0; border-radius:4px; font-weight:700; }
#age-gate .no { background:none; color:var(--paper); border:1px solid var(--hairline); border-radius:4px; }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto; } }
@media (min-width:641px) {
  .lit .card { max-width:780px; grid-template-columns:220px 1fr; align-items:start; }
  .lit .btn { justify-self:start; padding:11px 32px; }
}

/* Apple・PlayStation：区切りは線ではなく面の色の切り替え。紙の世界の帯 */
.band-paper { background:var(--paper); color:var(--night); margin:64px calc(50% - 50vw) 0; padding:48px 16px; }
.band-paper .band-inner { max-width:1080px; margin:0 auto; padding:0 16px; }
.band-paper h2 { color:var(--night); border:0; margin:0 0 12px; font-size:1.4rem; }
.band-paper p { max-width:34em; color:#3d4250; }
.band-paper .btn { display:inline-block; background:var(--night); color:var(--paper); }
.band-paper .btn:hover { background:#232a3a; }
footer.site { margin-top:0; }

/* 読みもの（記事） */
.article { max-width:40em; }
.article h1 { font-size:clamp(1.6rem, 5vw, 2.2rem); line-height:1.45; margin-top:28px; }
.article h2 { margin-top:44px; }
.article h3 { font-family:var(--font-head); font-weight:500; font-size:1.05rem; margin:24px 0 6px; }
.article p, .article li { line-height:1.95; }
.article ul { padding-left:1.2em; }
.article a { color:var(--lamp); }
.article .note { color:var(--mist); font-size:.82rem; }
.article .src { color:var(--mist); font-size:.78rem; margin-top:-4px; }
.article .src a { color:var(--mist); }
.facts { border-collapse:collapse; width:100%; }
.facts th, .facts td { text-align:left; padding:10px 0; border-bottom:1px solid var(--hairline); vertical-align:top; }
.facts th { width:7em; font-weight:500; color:var(--mist); }
.opening { font-family:var(--font-head); font-size:1.05rem; margin:8px 0 0; }
.guides { list-style:none; padding:0; margin:0; }
.guides li { border-top:1px solid rgba(22,27,38,.15); }
.guides a { display:block; padding:16px 0; text-decoration:none; }
.guides .g-title { display:block; font-family:var(--font-head); font-size:1.08rem; }
.guides small { color:#4b5160; }
main > .guides li { border-top:1px solid var(--hairline); }
main > .guides small { color:var(--mist); }
main > .guides a:hover .g-title { color:var(--lamp); }

/* トップ：棚の絵としくみ */
.shelf-art { display:block; width:100%; max-width:520px; height:auto; margin-top:28px; }
@media (min-width:900px) { .hero { max-width:none; display:grid; grid-template-columns:1fr 460px; column-gap:40px; align-items:end; }
  .hero > :not(.shelf-art) { grid-column:1; } .hero .shelf-art { grid-column:2; grid-row:1 / span 4; margin:0; } }
.steps { list-style:none; counter-reset:step; padding:0; margin:0; display:grid; gap:0 28px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.steps li { counter-increment:step; border-top:1px solid var(--hairline); padding:16px 0 18px; }
.steps li::before { content:counter(step); font-family:"Cormorant Garamond",serif; font-style:italic; font-size:1.6rem; color:var(--lamp); line-height:1; display:block; margin-bottom:6px; }
.steps .s-title { display:block; font-family:var(--font-head); font-size:1.08rem; }
.steps small { color:var(--mist); }
.how .opening { margin-top:24px; }
