* {
  box-sizing: border-box;
}
@font-face {
  font-family: "Romestone";
  src: url("https://res.cloudinary.com/rl8yrnq1/raw/upload/v1790154105/Romestone.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}
body {
  margin: 0;
  padding: 30px;
  background-color: #444444;
  font-family: Arial, sans-serif;

  display: flex;
  justify-content: center;
}

.poster {
  position: relative;
  width: 564px;
  height: 846px;
  background-color: #ebebed;
  color: #3a3436;
  overflow: hidden;
}

/* 最上方标题 */

h1 {
  position: absolute;
  top: 13px;
  left: 27px;
  margin: 0;

  font-family: "Romestone", sans-serif;
  font-size: 96px;
  font-weight: normal;
  line-height: 1;
  letter-spacing: 0.96px;
  white-space: nowrap;
}

h2 {
  margin: 0;
  font-family: "Romestone", sans-serif;
  font-size: 30px;
  font-weight: normal;
  line-height: 0.95;
}



.top-section {
  position: absolute;
  top: 150px;
  left: 28px;

  width: 510px;
  height: 118px;

  display: flex;
  border-bottom: 2px solid #aaaaaa;
}

.food-section {
  width: 385px;
  display: flex;
}

.food-section h2 {
  position: absolute;
  top: 20px;
  left: 0;
  width: 160px;
  margin: 0;

  font-family: "Romestone", sans-serif;
  font-size: 46px;
  font-weight: normal;
  line-height: 0.89;
}

.food-pictures {
  width: 150px;
  height: 100px;

  display: grid;
  grid-template-columns: 70px 70px;
  grid-template-rows: 48px 48px;
  gap: 3px;
}

.food {
  position: relative;
  width: 65px;
  height: 45px;
}

.food::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 9px;

  width: 42px;
  height: 38px;

  background-color: #eddf00;
  border-radius: 50%;
}

.food img {
  position: relative;
  z-index: 1;

  width: 65px;
  height: 45px;
  object-fit: contain;
}

.food-section ul {
  position: absolute;
  top: 14px;
  left: 305px;
  width: 100px;
  margin: 0;
  padding-left: 18px;
  line-height: 1.8;
}

.steps-section {
  position: absolute;
  top: -127px;
  right: 0;

  width: 105px;
  height: 245px;
}

.steps-title {
  position: absolute;
  top: 15px;
  right: -12px;

  margin: 0;
  color: #eddf00;
  font-family: Impact, sans-serif;
  font-size: 75px;

  transform: rotate(-90deg);
}
.steps-section {
  position: absolute;
  top: 13px;
  right: 14px;
  width: 75px;
  height: 235px;
}

.steps-word {
  position: absolute;
  top: 31px;
  right: -19px;

  font-family: "Romestone", sans-serif;
  font-size: 58px;
  color: #eddf00;
  transform: rotate(-90deg);
}
.steps-number {
  position: absolute;
  top: 55px;
  right: -7px;

  font-family: "Romestone", sans-serif;
  font-size: 58px;
  color: #3a3436;
  transform: rotate(-90deg);
}

.steps-section .small-text {
  position: absolute;
  top: 15px;
  right: -39px;

  width: 210px;
  margin: 0;

  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;

  transform: rotate(-90deg);
}

/* 中间左右两栏 */

.middle-section {
  position: absolute;
  top: 280px;
  left: 28px;

  width: 507px;
  height: 321px;

  display: flex;
  gap: 26px;
}

.left-column {
  width: 214px;
}

.right-column {
  position: relative;
  width: 267px;
}

/* MY HOT SPOTS */

.hot-spots {
  position: relative;
  height: 137px;
  border-bottom: 2px solid #aaaaaa;
}

.hot-spots h2 {
  position: absolute;
  top: 85px;
  left: 0;
}

.hot-spots p {
  position: absolute;
  top: 88px;
  left: 98px;

  width: 120px;
  margin: 0;

  font-family: Georgia, serif;
  font-size: 10px;
  font-style: italic;
}

.bars {
  width: 214px;
  height: 76px;

  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.bar-item {
  width: 34px;
  height: 76px;

  display: flex;
  align-items: flex-end;
  gap: 3px;
}

.bar-item span {
  height: 70px;

  font-family: Arial, sans-serif;
  font-size: 7px;
  white-space: nowrap;

  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.bar {
  width: 12px;
  background-color: #eddf00;
}

.bar1 {
  height: 69px;
}

.bar2 {
  height: 61px;
}

.bar3 {
  height: 29px;
}

.bar4 {
  height: 13px;
}

.bar5 {
  height: 21px;
}

.bar6 {
  height: 9px;
}

.transport {
  margin-top: 18px;

  display: grid;
  grid-template-columns: 55px 1fr;
  row-gap: 6px;
  align-items: center;
}

.transport p {
  margin: 0;
  font-family: Impact, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.transport-bar {
  height: 28px;
  background-color: #eddf00;
}

.bus {
  width: 115px;
}

.scooter {
  width: 117px;
}

.foot {
  width: 152px;
}

.car {
  width: 64px;
}

.transport span {
  grid-column: 1 / 3;
  margin-top: 3px;

  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;
}


.playlist {
  position: absolute;
  top: 0;
  left: 0;
  width: 100px;
}

.playlist ol {
  margin: 10px 0 0;
  padding-left: 13px;
  font-size: 9px;
  line-height: 14px;
}

.playlist p {
  margin-top: 7px;
  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;
}

.pie-chart {
  position: absolute;
  top: 5px;
  right: 0;

  width: 167px;
  height: 167px;

  background-color: #eddf00;
  border-radius: 50%;
}
.pie-line {
  position: absolute;
  left: 82px;
  top: 0;

  width: 2px;
  height: 84px;

  background-color: #ebebed;
  transform-origin: bottom;
}

.line1 {
  transform: rotate(0deg);
}

.line2 {
  transform: rotate(42deg);
}

.line3 {
  transform: rotate(105deg);
}

.line4 {
  transform: rotate(185deg);
}

.line5 {
  transform: rotate(285deg);
}

.pie-chart span {
  position: absolute;
  font-family: Impact, sans-serif;
  font-size: 30px;
}

.number1 {
  right: 40px;
  bottom: 30px;
}

.number2 {
  left: 35px;
  bottom: 30px;
}

.number3 {
  left: 37px;
  top: 35px;
}

.number4 {
  left: 80px;
  top: 20px;
}

.number5 {
  right: 38px;
  top: 35px;
}

.restaurants {
  position: absolute;
  top: 196px;
  left: 0;

  width: 267px;
  height: 125px;
  padding: 8px 10px;

  border: 1px solid #a2a2a2;
}

.restaurants h2 {
  font-size: 28px;
}

.restaurants p {
  position: absolute;
  top: 10px;
  right: 7px;

  width: 115px;
  margin: 0;

  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;
}

.rating-list {
  position: absolute;
  left: 10px;
  bottom: 7px;

  width: 247px;
  height: 70px;

  display: flex;
  justify-content: space-between;
}

.rating-item {
  height: 70px;

  display: flex;
  align-items: flex-end;
  gap: 1px;
}

.restaurant-name {
  height: 65px;

  font-family: Arial, sans-serif;
  font-size: 7px;
  white-space: nowrap;

  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.rating-stars {
  color: #eddf00;
  font-size: 11px;
  line-height: 10px;

  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.weekly {
  position: absolute;
  top: 619px;
  left: 28px;

  width: 508px;
  height: 101px;

  border-bottom: 2px solid #aaaaaa;
}

.weekly h2 {
  position: absolute;
  top: 0;
  left: 2px;
}

.weekly-chart {
  position: absolute;
  left: 0;
  bottom: 0;

  width: 508px;
  height: 90px;

  background-color: #eddf00;

  clip-path: polygon(
    0 100%,
    18% 82%,
    29% 95%,
    34% 75%,
    40% 15%,
    50% 80%,
    56% 72%,
    60% 48%,
    65% 48%,
    75% 27%,
    82% 5%,
    92% 73%,
    100% 100%
  );
}

.days {
  position: absolute;
  bottom: 0;
  left: 2px;

  width: 445px;

  display: flex;
  justify-content: space-between;

  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;
}


.time-section {
  position: absolute;
  top: 740px;
  left: 28px;

  width: 508px;
  height: 100px;

  display: flex;
  justify-content: space-between;
  align-items: center;
}

.time {
  margin: 0;
  font-family: Impact, sans-serif;
  font-size: 67px;
  white-space: nowrap;
}

.time-description {
  position: relative;
  width: 145px;
  height: 65px;

  font-family: Georgia, serif;
  font-size: 9px;
  font-style: italic;
}

.time-description p {
  margin: 0 0 12px;
}

.arrow {
  position: absolute;
  top: 15px;
  right: 2px;

  color: #999999;
  font-family: Arial, sans-serif;
  font-size: 40px;
  font-style: normal;
  font-weight: normal;
}

h1,
h2,
.transport p,
.restaurants h2,
.weekly h2 {
  font-family: "Romestone", sans-serif;
  font-size: 32.5px;
  font-weight: normal;
  line-height: 0.89;
  letter-spacing: 0.3px;
}

.steps-title,
.steps-number,
.pie-chart span,
.time {
  font-family: "Six Caps", sans-serif;
  font-weight: 400;
}

.food-section ul,
.playlist ol,
.bar-item span,
.restaurant-name {
  font-family: "Oswald", sans-serif;
}


.hot-spots p,
.transport span,
.playlist p,
.restaurants p,
.time-description {
  font-family: "Playfair Display", serif;
  font-style: italic;
}

h1,
h2,
.transport p,
.weekly h2,
.restaurants h2 {
  font-family: "Romestone", sans-serif;
  font-weight: normal;
}
.playlist h2 {
  font-family: Arial, sans-serif;
  font-size: 32px;
  font-weight: normal;
  line-height: 0.9;
  letter-spacing: 0;
}
.poster h1 {
  font-family: "Romestone", sans-serif !important;
  font-size: 96px !important;
  font-weight: normal !important;
  line-height: 1 !important;
  letter-spacing: 0.96px;
  transform: none !important;
}
.top-section {
  position: absolute;
  top: 128px;
  left: 27px;
  width: 510px;
  height: 136px;
  border-top: 2px solid #aaa;
  border-bottom: 2px solid #aaa;
}
.food-pictures {
  position: absolute;
  top: 18px;
  left: 165px;
  width: 125px;

  display: grid;
  grid-template-columns: repeat(2, 58px);
  gap: 4px;
}

.food-pictures img {
  width: 58px;
  height: 48px;
  object-fit: contain;
}
