/* まほぶラジオの棚（スタジオ・図書館・この回のページ）。radio-shelf.js と対。 */
:root{
  --ra-ink:#f3ead6;--ra-sub:#d9cfba;--ra-dim:#b9b3a3;--ra-gold:#dcc28c;--ra-lamp:#e0613a;
  --ra-line:#e9d9b94d;--ra-panel:#f0e5cf0d;
  --s0:#d9945f;--s1:#8fb48a;--s2:#8fa6d8;--s3:#b49ad6;
  --lb-ink:#26302a;--lb-sub:#4d554f;--lb-line:#26302a26;--lb-paper:#fbf6ec;
}
.ra-studio,.ra-episode{color:var(--ra-ink);display:grid;gap:clamp(18px,2.4vw,26px)}
.ra-block{padding:clamp(22px,3vw,38px);border:1px solid var(--ra-line);border-top:3px solid var(--ra-gold);background:linear-gradient(135deg,#f8edda12,#f0e5cf08);box-shadow:0 16px 40px #0d191325}
.ra-kicker{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:12px;letter-spacing:.16em;color:var(--ra-gold)}
.ra-heading{margin:0 0 18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(21px,2.4vw,28px);font-weight:600;letter-spacing:.06em;line-height:1.5;color:var(--ra-ink)}
.ra-title{margin:6px 0 10px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(23px,3vw,34px);font-weight:600;letter-spacing:.04em;line-height:1.5;color:var(--ra-ink)}
.ra-meta{margin:0;font-size:12px;letter-spacing:.1em;color:var(--ra-gold)}
.ra-subtitle{margin:0 0 6px;font-size:13px;letter-spacing:.06em;color:var(--ra-sub)}
.ra-people{margin:8px 0 0;font-size:13px;letter-spacing:.08em;color:var(--ra-sub)}
.ra-onair-lamp{display:inline-flex;align-items:center;padding:4px 9px;border-radius:3px;background:var(--ra-lamp);color:#fff8ee;font-size:11px;font-weight:700;letter-spacing:.14em;box-shadow:0 0 16px #e0613a88;animation:ra-lamp 2.4s ease-in-out infinite}
@keyframes ra-lamp{50%{box-shadow:0 0 4px #e0613a55}}
@media (prefers-reduced-motion:reduce){.ra-onair-lamp{animation:none}}
.ra-onair-grid,.ra-ep-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(20px,3vw,36px);align-items:start}
.ra-cover{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--ra-line);background:#2a2420;box-shadow:0 14px 30px #0008}
.ra-cover img{display:block;width:100%;height:100%;object-fit:cover}
.ra-cover.is-sleeve{display:grid;place-content:center;gap:8px;text-align:center;background:radial-gradient(circle at 50% 50%,#3a2c25 0 22%,#1c1714 23% 24%,#2a221d 25% 100%);font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
.ra-sleeve-label{font-size:14px;letter-spacing:.14em;color:var(--ra-gold)}
.ra-sleeve-title{font-size:22px;letter-spacing:.1em;color:var(--ra-ink)}
.ra-sleeve-series{font-size:11px;letter-spacing:.12em;color:var(--ra-dim)}
.ra-player{margin:18px 0 6px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.ra-play{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border:0;border-radius:999px;background:var(--ra-ink);color:#1b241f;font:inherit;font-size:15px;font-weight:700;letter-spacing:.08em;cursor:pointer}
.ra-play:hover,.ra-play:focus-visible{background:#fff}
.ra-play:focus-visible,.ra-chip:focus-visible,.ra-more:focus-visible,.ra-row-link:focus-visible,.ra-first-item:focus-visible{outline:2px solid var(--ra-gold);outline-offset:3px}
.ra-play-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ra-lamp);color:#fff;font-size:10px}
.ra-player-note{font-size:11px;letter-spacing:.06em;color:var(--ra-dim)}
.ra-frame{display:block;width:100%;border:0;border-radius:12px}
.ra-links{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:10px}
.ra-links a,.ra-ep-back a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid #e4d1ad99;font-size:13px;letter-spacing:.06em;color:var(--ra-ink)}
.ra-links a:hover,.ra-ep-back a:hover{color:#fff;border-color:#fff}
.ra-next{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:24px 0 0;padding-top:18px;border-top:1px dashed var(--ra-line)}
.ra-next-label{font-size:11px;letter-spacing:.16em;color:var(--ra-gold)}
.ra-next-when{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:19px;letter-spacing:.06em}
.ra-next-note{font-size:12px;color:var(--ra-sub)}
/* はじめての人へ */
.ra-first-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ra-first-item{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:14px 4px;border-bottom:1px solid var(--ra-line);color:var(--ra-ink);text-decoration:none}
.ra-first-item:hover .ra-first-title{text-decoration:underline;text-underline-offset:4px}
.ra-first-no{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:30px;line-height:1;color:var(--ra-gold)}
.ra-first-text{display:grid;gap:4px}
.ra-first-title{font-size:16px;font-weight:700;letter-spacing:.04em;line-height:1.6}
.ra-first-note{font-size:13px;line-height:1.8;color:var(--ra-sub)}
/* 番組表 */
.ra-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.ra-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--ra-line);border-radius:999px;background:transparent;color:var(--ra-ink);font:inherit;font-size:13px;letter-spacing:.04em;cursor:pointer}
.ra-chip[aria-pressed="true"]{background:var(--ra-ink);color:#1b241f;border-color:var(--ra-ink)}
.ra-chip-count{font-size:11px;opacity:.75}
.ra-series-line{min-height:1.6em;margin:8px 0 6px;font-size:13px;letter-spacing:.04em;color:var(--ra-sub)}
.ra-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--ra-line)}
.ra-row-link{display:grid;grid-template-columns:76px 1fr 56px;gap:14px;align-items:start;padding:13px 4px;border-bottom:1px solid var(--ra-line);color:var(--ra-ink);text-decoration:none}
.ra-row-link:hover{background:#f0e5cf0f}
.ra-row-no{display:grid;align-content:start;gap:2px}
.ra-row-label{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:16px;letter-spacing:.04em}
.ra-row-date{font-size:11px;letter-spacing:.06em;color:var(--ra-dim)}
.ra-row-body{display:grid;gap:3px;min-width:0}
.ra-row-series{justify-self:start;font-size:11px;letter-spacing:.08em;padding-left:10px;border-left:3px solid currentColor}
.ra-row-title{font-size:15px;line-height:1.6;letter-spacing:.03em}
.ra-row-people{font-size:12px;color:var(--ra-sub)}
.ra-row-thumb{width:56px;height:56px;overflow:hidden;border:1px solid var(--ra-line);background:#2a2420}
.ra-row-thumb:empty{visibility:hidden}
.ra-row-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.ra-note-card{display:block;margin-top:16px;border:1px solid var(--ra-line);color:var(--ra-ink);text-decoration:none;background:#f0e5cf08}
.ra-note-card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.ra-note-card-label{display:block;padding:10px 12px;font-size:13px;letter-spacing:.06em}
.ra-note-card:hover{border-color:#e4d1ad}
.ra-note-card:focus-visible{outline:2px solid var(--ra-gold);outline-offset:3px}
.ra-row-series.s0{color:var(--s0)}.ra-row-series.s1{color:var(--s1)}.ra-row-series.s2{color:var(--s2)}.ra-row-series.s3{color:var(--s3)}
.ra-inline-link{color:var(--ra-ink);border-bottom:1px solid currentColor;white-space:nowrap}
.ra-more{display:block;width:100%;min-height:48px;margin-top:14px;border:1px solid var(--ra-line);border-radius:6px;background:transparent;color:var(--ra-ink);font:inherit;font-size:14px;letter-spacing:.08em;cursor:pointer}
.ra-more:hover{background:#f0e5cf14}
/* お便り */
.ra-mail{border-top-color:var(--ra-lamp)}
.ra-mail-text{margin:0 0 18px;font-size:14px;line-height:1.9;color:var(--ra-sub)}
.ra-button{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:999px;background:var(--ra-lamp);color:#fff8ee;font-size:14px;font-weight:700;letter-spacing:.08em;text-decoration:none}
.ra-button:hover,.ra-button:focus-visible{background:#ef7350;color:#fff}
.ra-error{color:var(--ra-sub)}
/* この回のページ */
.ra-episode-page{min-height:100vh;background:radial-gradient(ellipse at 85% 0%,#89543c40,transparent 50%),linear-gradient(180deg,#1d2621,#141b17);color:var(--ra-ink)}
.ra-episode-page .b01-header a{color:var(--ra-ink)}
.ra-episode{width:min(100% - 32px,1040px);margin:0 auto;padding:clamp(88px,10vw,120px) 0 64px}
.ra-ep-label{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(28px,4vw,44px);letter-spacing:.08em;color:var(--ra-gold)}
.ra-ep-title{font-size:clamp(26px,3.6vw,40px)}
.ra-ep-kicker{margin:26px 0 8px;font-size:12px;letter-spacing:.14em;color:var(--ra-gold)}
.ra-ep-summary{margin:0;font-size:15px;line-height:2;color:var(--ra-sub)}
.ra-quote{margin:0;padding:6px 0 6px 18px;border-left:3px solid var(--ra-lamp);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:19px;line-height:1.9}
.ra-ep-nav{display:grid;gap:6px;margin-top:8px}
.ra-ep-step{display:block;padding:12px 4px;border-bottom:1px solid var(--ra-line);font-size:14px;line-height:1.6;color:var(--ra-ink);text-decoration:none}
.ra-ep-step.is-next{text-align:right}
.ra-ep-step:hover{background:#f0e5cf0f}
.ra-ep-back{display:flex;flex-wrap:wrap;gap:6px 26px}
@media(max-width:700px){
  .ra-onair-grid,.ra-ep-grid{grid-template-columns:1fr}
  .ra-cover-large{max-width:260px}
  .ra-row-link{grid-template-columns:60px 1fr 48px;gap:10px}
  .ra-row-thumb{width:48px;height:48px}
  .ra-play{width:100%;justify-content:center}
}

/* ---------- 図書館（明るい部屋） ---------- */
.lb-shelves{box-sizing:border-box;display:grid;gap:clamp(18px,2.4vw,28px);width:100%;max-width:1112px;margin:0 auto;padding-inline:16px;padding-block:clamp(28px,5vw,64px);color:var(--lb-ink)}
.lb-block{min-width:0;box-sizing:border-box}
.lb-block{padding:clamp(22px,3vw,36px);background:var(--lb-paper);border:1px solid var(--lb-line);border-radius:6px;box-shadow:0 10px 28px #3a2e1a14}
.lb-kicker{margin:0 0 10px;font-size:12px;letter-spacing:.16em;color:#8a5a2b}
.lb-heading{margin:0 0 10px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(22px,2.6vw,30px);font-weight:600;letter-spacing:.05em;line-height:1.5;color:var(--lb-ink)}
.lb-lead{margin:0 0 16px;font-size:14px;line-height:1.9;color:var(--lb-sub)}
.lb-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.lb-pick{padding:18px;border:1px solid var(--lb-line);border-radius:4px;background:#fff}
.lb-pick-kind{margin:0 0 6px;font-size:11px;letter-spacing:.12em;color:#8a5a2b}
.lb-pick-title{margin:0 0 4px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:18px}
.lb-pick-by{margin:0 0 10px;font-size:12px;color:var(--lb-sub)}
.lb-pick-comment{margin:0 0 10px;font-size:14px;line-height:1.8}
.lb-pick-who{margin:0;font-size:12px;color:var(--lb-sub)}
.lb-pick-link{display:inline-block;margin-top:8px;font-size:13px;color:var(--lb-ink)}
.lb-door{display:grid;gap:4px;background:linear-gradient(135deg,#fbf6ec,#efe2c8)}
.lb-button{justify-self:start;display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:999px;background:var(--lb-ink);color:#fbf6ec;font-size:14px;font-weight:700;letter-spacing:.06em;text-decoration:none}
.lb-button:hover,.lb-button:focus-visible{background:#3a463e}
.lb-return{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:6px 26px;width:100%;max-width:1112px;margin:0 auto 48px;padding-inline:16px}
.lb-return a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid currentColor;font-size:13px}

/* 読むラジオ：シリーズごとの全集を段に並べた本棚 */
.lb-case{display:grid;gap:0;padding:14px 12px 0;border-radius:6px;background:linear-gradient(90deg,#4a3324,#5b4030 8%,#5b4030 92%,#4a3324);box-shadow:inset 0 0 0 6px #6d4c36,inset 0 0 22px #0007}
.lb-row{display:grid;gap:6px;padding-top:8px}
.lb-plate{max-width:calc(100% - 8px);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;justify-self:start;margin:0 0 2px 4px;padding:5px 12px;border-radius:2px;background:linear-gradient(#e9d39a,#c9a65e);color:#3a2a14;box-shadow:0 1px 0 #fff8 inset,0 2px 4px #0006;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
.lb-plate-name{font-size:13px;font-weight:700;letter-spacing:.08em}
.lb-plate-count{font-size:11px;letter-spacing:.06em}
.lb-plate-sub{font-size:11px;letter-spacing:.04em;opacity:.85}
.lb-plate-sub::before{content:"―"}
.lb-board{position:relative;display:flex;align-items:flex-end;gap:2px;min-height:262px;overflow-x:auto;padding:14px 10px 0;background:linear-gradient(180deg,#2b1d14 0,#3a281c 70%,#2b1d14 100%);border-bottom:14px solid #8a6545;box-shadow:inset 0 10px 18px #000a,0 6px 0 #5e4330;scrollbar-width:thin;scroll-snap-type:x proximity}
.lb-board:focus-visible{outline:2px solid #e9d39a;outline-offset:2px}
.lb-bookend{flex:0 0 14px;height:120px;margin-left:6px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,#6f7377,#a9adb1 40%,#6f7377)}
.lb-book{--c:#5a2a1e;--t:#ecd59b;position:relative;flex:0 0 var(--w,44px);height:calc(236px - var(--dh,0px));display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:0 0 10px;border-radius:3px 3px 1px 1px;text-decoration:none;color:var(--t);scroll-snap-align:end;
  background:
    linear-gradient(90deg,#0006 0,#0000 18%,#fff2 46%,#0000 62%,#0005 100%),
    repeating-linear-gradient(0deg,#ffffff07 0 1px,#0000 1px 3px),
    var(--c);
  box-shadow:inset 0 -1px 0 #0006,1px 0 0 #0004;transition:transform .18s ease}
.lb-book::before,.lb-book::after{content:"";position:absolute;left:4px;right:4px;height:2px;background:linear-gradient(90deg,#b8954f,#f1d89a,#b8954f);opacity:.9}
.lb-book::before{top:16px;box-shadow:0 5px 0 #d8bb7a}
.lb-book::after{bottom:36px}
.lb-book:hover,.lb-book:focus-visible{transform:translateY(-10px)}
.lb-book:focus-visible{outline:2px solid #f1d89a;outline-offset:2px}
.lb-book-cap{flex:0 0 32px}
.lb-book-title{flex:1;display:flex;justify-content:center;padding:4px 0 0;margin-bottom:16px;overflow:hidden;white-space:nowrap;writing-mode:vertical-rl;text-orientation:mixed;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:12.5px;font-weight:600;line-height:1;letter-spacing:.06em;text-shadow:0 1px 0 #0008}
.lb-tcy{text-combine-upright:all;-webkit-text-combine:horizontal;letter-spacing:0}
.lb-upright{text-orientation:upright;letter-spacing:0}
.lb-book-no{min-width:24px;padding:2px 3px;border-radius:2px;background:#f6efdf;color:#2b231a;font-size:10px;font-weight:700;line-height:1.2;text-align:center;box-shadow:0 1px 2px #0006}
.lb-row.s0 .lb-book{--c:#5b2c1f}            /* 隠れ家喫茶：珈琲色の布張り */
.lb-row.s1 .lb-book{--c:#2f5238}            /* みんなの物語：深い緑 */
.lb-row.s2 .lb-book{--c:#283c66}            /* AIなんて怖くない：藍 */
.lb-row.s3 .lb-book{--c:#2a2238;--t:#d9d4ea} /* 夜のまほぶラジオ：夜の紫に銀 */
.lb-row.s3 .lb-book::before,.lb-row.s3 .lb-book::after{background:linear-gradient(90deg,#8d8aa0,#e2e0ee,#8d8aa0)}
.lb-row.s3 .lb-book::before{box-shadow:0 5px 0 #b9b6cc}
@media(prefers-reduced-motion:reduce){.lb-book{transition:none}}

.ra-play.is-link{text-decoration:none}
