/* 文学部 — 洋書ライブラリー×レトロ喫茶 */
:root{
  --ink:#1c2a22; --panel:#243529; --panel2:#2b3f31;
  --gold:#c9a869; --gold-dim:rgba(201,168,105,.45);
  --cream:#efe7d3; --cream-dim:#b9b09a; --terra:#c26a4a;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--ink); color:var(--cream);
  font-family:'Zen Old Mincho',serif;
  background-image:radial-gradient(rgba(201,168,105,.05) 1px, transparent 1px);
  background-size:18px 18px; min-height:100vh;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
.wrap{max-width:960px;margin:0 auto;padding-bottom:90px;}

/* ヘッダー */
header{
  padding:26px 36px 22px;border-bottom:1px solid var(--gold-dim);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
}
.logo{font-size:23px;letter-spacing:.4em;font-weight:700;}
.logo small{display:block;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:11px;letter-spacing:.32em;color:var(--gold);margin-top:4px;font-weight:500;}
nav{display:flex;gap:22px;font-size:12.5px;letter-spacing:.14em;color:var(--cream-dim);flex-wrap:wrap;}
nav a{padding-bottom:4px;}
nav a.on{color:var(--gold);border-bottom:1px solid var(--gold);}

/* 見出し */
.hero{padding:32px 36px 6px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;}
.hero h2{font-size:20px;letter-spacing:.18em;font-weight:600;}
.hero h2::after{content:"";display:block;width:54px;height:2px;background:var(--gold);margin-top:9px;}
.hero .vol{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:15px;}

/* タブ・チップ */
.members-bar{display:flex;gap:10px;padding:20px 36px 0;flex-wrap:wrap;}
.m-tab{
  background:var(--panel);border:1px solid var(--gold-dim);padding:7px 18px;font-size:13px;
  letter-spacing:.1em;cursor:pointer;border-radius:2px 10px 2px 10px;
  font-family:'Shippori Mincho',serif;color:var(--cream);
}
.m-tab.on{background:var(--gold);color:var(--ink);font-weight:700;border-color:var(--gold);}
.months{display:flex;gap:8px;align-items:center;padding:14px 36px 0;flex-wrap:wrap;font-family:'Shippori Mincho',serif;}
.months .year{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:15px;margin-right:4px;}
.m-chip{font-size:12px;color:var(--cream-dim);border:1px solid transparent;padding:5px 12px;cursor:pointer;letter-spacing:.08em;border-radius:2px;background:none;}
.m-chip.on{color:var(--gold);border-color:var(--gold-dim);background:var(--panel);}
.m-chip.all{border-left:1px dotted var(--gold-dim);border-radius:0;margin-left:4px;padding-left:15px;}

/* カード共通 */
.card-frame{
  background:var(--panel);border:1px solid var(--gold-dim);border-radius:6px;
  position:relative;box-shadow:0 16px 30px rgba(0,0,0,.4);
}
.card-frame::before{content:"";position:absolute;inset:7px;border:1px dashed rgba(201,168,105,.3);border-radius:3px;pointer-events:none;}
.card-frame::after{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.85;}

/* 本棚グリッド */
.shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:26px 36px 10px;}
.book-card{padding:20px;cursor:pointer;transition:transform .15s;}
.book-card:hover{transform:translateY(-4px);}
.cover-slot{
  height:170px;margin-bottom:14px;display:flex;align-items:center;justify-content:center;
  background:var(--panel2);border-radius:3px;border:1px solid rgba(239,231,211,.1);overflow:hidden;
}
.cover-slot img{height:100%;width:auto;object-fit:contain;box-shadow:0 6px 16px rgba(0,0,0,.5);}
.cover-fallback{writing-mode:vertical-rl;letter-spacing:.25em;font-size:13px;color:var(--cream-dim);padding:10px;}
.b-title{font-size:15px;font-weight:600;line-height:1.7;}
.b-author{font-size:12px;color:var(--cream-dim);margin-top:4px;font-style:italic;}
.stars{color:var(--gold);font-size:12.5px;margin-top:8px;letter-spacing:3px;}

.tag{
  display:inline-block;margin-top:12px;font-size:11px;letter-spacing:.1em;color:var(--gold);
  border:1px solid var(--gold-dim);padding:4px 14px;border-radius:2px;position:relative;
  font-family:'Shippori Mincho',serif;background:var(--panel);
}
.tag::before,.tag::after{content:"";position:absolute;top:50%;width:7px;height:7px;border-radius:50%;background:var(--panel);border:1px solid var(--gold-dim);transform:translateY(-50%);}
.tag::before{left:-4px;}
.tag::after{right:-4px;}

.stamp{
  position:absolute;top:14px;right:14px;width:52px;height:52px;border-radius:50%;
  border:2px solid rgba(194,106,74,.75);color:rgba(224,140,108,.9);font-size:9.5px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transform:rotate(-14deg);line-height:1.4;letter-spacing:.08em;
  font-family:'Shippori Mincho',serif;z-index:2;background:rgba(28,42,34,.55);
}
.stamp b{font-size:11px;}

.readers{margin-top:12px;padding-top:10px;border-top:1px dotted rgba(201,168,105,.3);}
.reader-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;padding:2px 0;}
.reader-row .nm{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);opacity:.9;}
.reader-row .st{color:var(--gold);font-size:10.5px;letter-spacing:2px;}
.readers .more{margin-top:6px;font-size:10.5px;color:var(--cream-dim);letter-spacing:.1em;font-family:'Shippori Mincho',serif;}

/* メンバーページ */
.profile{display:flex;gap:26px;align-items:center;padding:30px 36px 8px;flex-wrap:wrap;}
.exlibris-plate{
  width:108px;height:128px;background:var(--panel);border:1px solid var(--gold-dim);border-radius:4px;
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  box-shadow:0 10px 22px rgba(0,0,0,.4);flex-shrink:0;
}
.exlibris-plate::before{content:"";position:absolute;inset:6px;border:1px dashed rgba(201,168,105,.35);border-radius:2px;}
.exlibris-plate .mono{
  width:52px;height:52px;border-radius:50%;border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:24px;color:var(--gold);
}
.exlibris-plate .cap{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:10px;color:var(--gold);letter-spacing:.15em;}
.p-info h2{font-size:21px;letter-spacing:.2em;}
.p-info .since{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:13px;margin-top:5px;}
.p-info .bio{font-size:12.5px;color:var(--cream-dim);margin-top:8px;line-height:1.9;font-family:'Shippori Mincho',serif;}

.stat-row{display:flex;margin:24px 36px 0;border:1px solid var(--gold-dim);border-radius:4px;overflow:hidden;flex-wrap:wrap;}
.stat-cell{flex:1;min-width:120px;background:var(--panel);padding:16px 8px;text-align:center;border-right:1px dotted rgba(201,168,105,.3);}
.stat-cell:last-child{border-right:none;}
.stat-cell .num{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--gold);}
.stat-cell .label{font-size:10.5px;color:var(--cream-dim);letter-spacing:.12em;margin-top:4px;font-family:'Shippori Mincho',serif;}

.spines{display:flex;gap:6px;align-items:flex-end;padding:20px 36px 0;min-height:150px;flex-wrap:wrap;}
.spine{
  writing-mode:vertical-rl;font-size:11px;letter-spacing:.2em;color:var(--cream);
  padding:14px 7px;border-radius:2px 2px 0 0;font-family:'Shippori Mincho',serif;
  display:flex;align-items:center;box-shadow:inset -3px 0 6px rgba(0,0,0,.3);cursor:pointer;
  transition:transform .18s;
}
.spine:hover{transform:translateY(-8px);}

/* 月報 */
.report-head{text-align:center;padding:32px 20px 6px;}
.report-head .vol{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:13px;letter-spacing:.2em;}
.report-head h2{font-size:23px;letter-spacing:.3em;margin-top:8px;font-weight:600;}
.report-head .rule{width:200px;margin:14px auto 0;border-top:3px double var(--gold-dim);}
.r-stats{display:flex;justify-content:center;gap:38px;padding:22px 20px 6px;flex-wrap:wrap;}
.r-stat{text-align:center;}
.r-stat .num{font-family:'Cormorant Garamond',serif;font-size:36px;color:var(--gold);}
.r-stat .label{font-size:10.5px;color:var(--cream-dim);letter-spacing:.14em;margin-top:2px;font-family:'Shippori Mincho',serif;}
.pick{margin:22px 36px 0;padding:22px 26px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;}
.pick .badge{position:absolute;top:-11px;left:22px;background:var(--terra);color:#fff2e8;font-size:11px;letter-spacing:.2em;padding:4px 14px;border-radius:2px;font-family:'Shippori Mincho',serif;box-shadow:0 3px 8px rgba(0,0,0,.4);z-index:2;}
.pick img{height:110px;box-shadow:0 8px 18px rgba(0,0,0,.5);}
.pick .t{font-size:16px;font-weight:600;letter-spacing:.08em;}
.pick .a{font-size:12px;color:var(--cream-dim);font-style:italic;margin-top:4px;}
.pick .quote{font-size:12.5px;margin-top:10px;line-height:1.9;font-family:'Shippori Mincho',serif;}
.pick .by{font-size:11px;color:var(--gold);margin-top:6px;font-family:'Cormorant Garamond',serif;font-style:italic;}
.bars{margin:26px 36px 0;}
.bars h4{font-size:13px;letter-spacing:.2em;color:var(--cream-dim);font-family:'Shippori Mincho',serif;}
.bar-row{display:flex;align-items:center;gap:12px;margin-top:12px;}
.bar-row .nm{width:76px;font-size:12px;letter-spacing:.1em;font-family:'Shippori Mincho',serif;}
.bar-track{flex:1;height:14px;background:var(--panel);border:1px solid rgba(201,168,105,.25);border-radius:2px;overflow:hidden;}
.bar-fill{height:100%;background:linear-gradient(90deg,rgba(201,168,105,.5),var(--gold));}
.bar-row .ct{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:15px;width:36px;text-align:right;}

/* 読みたい本 */
.wish-list{margin:20px 36px 0;}
.wish-item{display:flex;gap:18px;align-items:center;padding:14px 18px;margin-bottom:14px;flex-wrap:wrap;}
.wish-item img{height:76px;box-shadow:0 6px 14px rgba(0,0,0,.45);}
.wish-item .info{flex:1;min-width:160px;}
.wish-item .t{font-size:14.5px;font-weight:600;}
.wish-item .a{font-size:11.5px;color:var(--cream-dim);font-style:italic;margin-top:3px;}
.wish-item .who{font-size:11px;color:var(--gold);margin-top:7px;font-family:'Cormorant Garamond',serif;font-style:italic;}
.btn-heart{border:1px solid var(--gold-dim);color:var(--gold);border-radius:2px;font-size:11px;padding:6px 14px;cursor:pointer;letter-spacing:.1em;font-family:'Shippori Mincho',serif;background:transparent;}
.btn-heart b{font-family:'Cormorant Garamond',serif;font-size:14px;margin-left:6px;}
.btn-terra{background:var(--terra);border:none;color:#fff2e8;border-radius:2px;font-size:11px;padding:7px 14px;cursor:pointer;letter-spacing:.15em;font-family:'Shippori Mincho',serif;}

/* フォーム */
.form-box{margin:24px 36px 0;padding:26px;}
.form-box label{display:block;font-size:12px;letter-spacing:.15em;color:var(--gold);margin:18px 0 6px;font-family:'Shippori Mincho',serif;}
.form-box label:first-child{margin-top:0;}
.form-box input[type=text],.form-box input[type=date],.form-box select,.form-box textarea{
  width:100%;background:var(--ink);border:1px solid var(--gold-dim);color:var(--cream);
  padding:10px 12px;font-size:14px;border-radius:2px;font-family:'Shippori Mincho',serif;
}
.form-box textarea{min-height:90px;line-height:1.8;}
.form-box input:focus,.form-box select:focus,.form-box textarea:focus{outline:none;border-color:var(--gold);}
.btn-gold{background:var(--gold);color:var(--ink);border:none;border-radius:2px;font-size:13px;font-weight:700;letter-spacing:.2em;padding:12px 30px;cursor:pointer;font-family:'Shippori Mincho',serif;margin-top:22px;}
.btn-line{background:transparent;color:var(--gold);border:1px solid var(--gold-dim);border-radius:2px;font-size:12px;letter-spacing:.15em;padding:9px 20px;cursor:pointer;font-family:'Shippori Mincho',serif;}
.search-results{margin-top:14px;display:flex;flex-direction:column;gap:10px;}
.sr-item{display:flex;gap:14px;align-items:center;background:var(--ink);border:1px solid var(--gold-dim);border-radius:3px;padding:10px 14px;cursor:pointer;}
.sr-item:hover{border-color:var(--gold);}
.sr-item img{height:56px;}
.sr-item .t{font-size:13px;font-weight:600;}
.sr-item .a{font-size:11px;color:var(--cream-dim);margin-top:2px;}
.star-input{display:flex;gap:6px;font-size:24px;color:var(--cream-dim);cursor:pointer;}
.star-input span.on{color:var(--gold);}

/* レビュー(本の詳細) */
.review-item{margin:18px 36px 0;padding:20px 24px;}
.review-item .head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px;}
.review-item .nm{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold);font-size:14px;}
.review-item .meta{font-size:11px;color:var(--cream-dim);font-family:'Shippori Mincho',serif;}
.review-item .body{font-size:13px;line-height:2;margin-top:12px;font-family:'Shippori Mincho',serif;}
.book-hero{display:flex;gap:26px;padding:32px 36px 8px;align-items:flex-start;flex-wrap:wrap;}
.book-hero img{height:190px;box-shadow:0 12px 26px rgba(0,0,0,.55);}

/* 汎用 */
.empty{padding:50px 36px;text-align:center;color:var(--cream-dim);font-size:13px;letter-spacing:.1em;font-family:'Shippori Mincho',serif;line-height:2.2;}
.fab{
  position:fixed;bottom:26px;right:26px;background:var(--gold);color:var(--ink);
  border-radius:50%;width:58px;height:58px;display:flex;align-items:center;justify-content:center;
  font-size:26px;box-shadow:0 10px 24px rgba(0,0,0,.5);z-index:10;font-family:'Shippori Mincho',serif;
}
.notice{margin:16px 36px 0;font-size:12px;color:var(--cream-dim);border-left:2px solid var(--gold-dim);padding-left:12px;line-height:1.9;font-family:'Shippori Mincho',serif;}

@media (max-width:680px){
  .shelf{grid-template-columns:1fr 1fr;padding-left:16px;padding-right:16px;gap:14px;}
  header,.hero,.members-bar,.months{padding-left:16px;padding-right:16px;}
  header{flex-direction:column;align-items:flex-start;padding-top:18px;}
  .stat-row,.pick,.bars,.wish-list,.form-box,.review-item{margin-left:16px;margin-right:16px;}
  .profile,.spines,.book-hero{padding-left:16px;padding-right:16px;}
  .cover-slot{height:140px;}
}
@media (max-width:420px){
  .shelf{grid-template-columns:1fr;}
}
