/* 原稿比例：564 × 846。所有元素按画布比例定位，缩放不改变排版。 */
:root {
  --paper: #ebebed;
  --ink: #393436;
  --yellow: #e9e04b;
  --line: #a2a2a2;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  padding: 30px 20px;
  background: #f5f5f5;
  color: var(--ink);
}
.poster {
  position: relative;
  width: min(100%, 774px);
  aspect-ratio: 564 / 846;
  margin: 0 auto;
  overflow: hidden;
  background: var(--paper);
  container-type: inline-size;
}
.section { display: contents; }
/* --x/--y 为原稿坐标；--w/--h 为元素宽高。 */
.placed {
  position: absolute;
  left: calc(var(--x) / 564 * 100%);
  top: calc(var(--y) / 846 * 100%);
  width: calc(var(--w) / 564 * 100%);
  height: calc(var(--h) / 846 * 100%);
  margin: 0;
}
.type img { display: block; width: 100%; height: 100%; }
.bar, .food-disc, .star, .area-chart { background: var(--yellow); }
.rule { background: var(--line); }
.food-disc { border-radius: 50%; }
.food { object-fit: cover; filter: grayscale(1); }
.rating-frame { border: 0.18cqw solid var(--line); }
.star {
  clip-path: polygon(50% 0%,65% 33%,100% 38%,75% 64%,81% 100%,50% 82%,19% 100%,25% 64%,0% 38%,35% 33%);
}
.star-cover { background: var(--paper); }
/* 五条分界线保持相同粗细。 */
.pie { border-radius: 50%; background: var(--yellow); overflow: hidden; }
.pie span {
  position: absolute; left: 48.5%; top: 51.5%;
  width: 54%; height: 1.6%; background: var(--paper);
  transform-origin: 0 50%; transform: translateY(-50%) rotate(var(--angle));
}
.time-arrow { background: var(--line); border-radius: 2px; }
.time-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 2.6cqw;
  height: 2.6cqw;
  border-right: 0.5cqw solid var(--line);
  border-top: 0.5cqw solid var(--line);
  border-radius: 0.3cqw;
  transform: translateY(-50%) rotate(45deg);
}
@media (max-width: 600px) { body { padding: 12px 8px; } }
@media print {
  @page { size: 188mm 282mm; margin: 0; }
  html, body { margin: 0; padding: 0; background: var(--paper); }
  .poster { width: 188mm; height: 282mm; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
