
.nmb-engine{
  --nmb-accent:#e6c86f;
  --nmb-panel-1:#2d174f;
  --nmb-panel-2:#120a24;
  --nmb-text:#fff8df;
  width:min(760px,100%);
  margin:20px auto;
  color:var(--nmb-text);
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
}
.nmb-engine--gold{
  --nmb-accent:#f1cf68;
  --nmb-panel-1:#52360a;
  --nmb-panel-2:#1e1404;
}
.nmb-engine__book{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:0 auto;
  padding:8px 14px;
  border:0;
  background:transparent;
  color:var(--nmb-text);
  cursor:pointer;
}
.nmb-engine__book-cover{
  position:relative;
  display:block;
  width:86px;
  height:60px;
  overflow:hidden;
  border:1px solid rgba(245,211,120,.72);
  border-radius:7px 12px 12px 7px;
  background:linear-gradient(145deg,#55310f,#8c5a1d 45%,#3b210c);
  box-shadow:inset 0 1px 0 rgba(255,238,181,.36),inset -7px 0 12px rgba(28,13,3,.42),0 10px 20px rgba(0,0,0,.35);
  transform:rotate(-5deg);
  transition:transform .2s ease;
}
.nmb-engine__book:hover .nmb-engine__book-cover,
.nmb-engine__book:focus-visible .nmb-engine__book-cover{transform:translateY(-3px) rotate(-2deg)}
.nmb-engine__book-spine{position:absolute;inset:0 auto 0 0;width:13px;background:linear-gradient(90deg,#271307,#704116,#3d210b)}
.nmb-engine__book-emblem{position:absolute;top:10px;left:54%;transform:translateX(-50%);color:#f7d875;font-size:20px}
.nmb-engine__book-title{position:absolute;left:20px;right:5px;bottom:8px;color:#f2d37a;font-family:Georgia,serif;font-size:11px;letter-spacing:.12em}
.nmb-engine__trigger-label{font-size:.88rem;font-weight:700}
.nmb-engine__panel{
  display:none;
  margin-top:18px;
  padding:24px 20px 20px;
  border:1px solid rgba(225,199,255,.42);
  border-radius:26px;
  background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.10),transparent 40%),linear-gradient(160deg,var(--nmb-panel-1),var(--nmb-panel-2));
  box-shadow:0 22px 52px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.1);
}
.nmb-engine.is-open .nmb-engine__panel{display:block;animation:nmbPanelIn .25s ease}
.nmb-engine__panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.nmb-engine__kicker{margin:0 0 5px;color:var(--nmb-accent);font-size:.68rem;font-weight:800;letter-spacing:.16em}
.nmb-engine__heading{font-size:clamp(1.25rem,4vw,1.8rem);font-weight:800;line-height:1.4}
.nmb-engine__guide{margin:10px 0 18px;color:rgba(255,255,255,.78);font-size:.84rem;line-height:1.8}
.nmb-engine__close{
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:.68rem;
  letter-spacing:.12em;
  cursor:pointer;
}
.nmb-engine__tracks{
  display:grid;
  grid-template-columns:repeat(var(--nmb-track-count),minmax(0,1fr));
  gap:10px;
}
.nmb-engine__track{
  min-height:78px;
  padding:10px 7px;
  border:1px solid rgba(233,211,255,.30);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(111,78,160,.72),rgba(38,20,70,.88));
  color:#fff8df;
  cursor:pointer;
}
.nmb-engine__track.is-playing{
  border-color:rgba(242,213,139,.9);
  background:linear-gradient(145deg,#f4d987,#b87b1f);
  color:#2b1800;
  box-shadow:0 0 20px rgba(232,195,121,.34);
}
.nmb-engine__track-number{display:block;font-family:Georgia,serif;font-size:1.25rem;font-weight:800}
.nmb-engine__track-label{display:block;margin-top:4px;font-size:.68rem;font-weight:700}
.nmb-engine__track-title{display:block;margin-top:5px;font-size:.72rem;line-height:1.4}
.nmb-engine__now{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:16px;padding:12px 14px;border-radius:16px;background:rgba(0,0,0,.18)}
.nmb-engine__now span{color:var(--nmb-accent);font-size:.65rem;font-weight:800;letter-spacing:.12em}
.nmb-engine__now strong{font-size:.82rem}
.nmb-engine__notice{min-height:1.4em;margin:8px 0 0;text-align:center;color:#ffd8de;font-size:.78rem}
@keyframes nmbPanelIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
  .nmb-engine__panel{padding:20px 14px 16px}
  .nmb-engine__tracks{grid-template-columns:repeat(min(2,var(--nmb-track-count)),minmax(0,1fr))}
  .nmb-engine__book{gap:10px}
  .nmb-engine__trigger-label{font-size:.78rem}
}
@media(prefers-reduced-motion:reduce){
  .nmb-engine__book-cover,.nmb-engine__panel{animation:none!important;transition:none!important}
}
