/* —— Fonts: local connect pattern (图1) —— */
@font-face {
    font-family: "Romestone";
    src: local("Romestone"),
        local("Romestone Regular"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234850/Romestone.ttf") format("truetype"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234849/Romestone.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "DELIRIUM NCV";
    src: local("DELIRIUM NCV"),
        local("DELIRIUM-NCV"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234847/DELIRIUM-NCV.woff") format("woff"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234848/DELIRIUM-NCV.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "Oswald";
    src: local("Oswald"),
        local("Oswald Regular"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234849/Oswald.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "Playfair Display";
    src: local("Playfair Display Italic"),
        local("PlayfairDisplay-Italic"),
        url("https://res.cloudinary.com/fbga0vby/raw/upload/v1790234850/PlayfairDisplay-Italic.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    min-height: 100%;
}

/* FigJam: justify-content 默认 flex-start；居中用 center 微调页面位置 */
body {
    background: #d8d8da;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    padding: 24px 12px;
    font-synthesis: none;
    -webkit-font-smoothing: antialiased;
}

main {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
}

.poster {
    position: relative;
    width: 564px;
    height: 846px;
    background: #ebebed;
    color: #3a3436;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* —— Title —— */
.poster > h1 {
    position: absolute;
    left: 27px;
    top: 13px;
    width: 505px;
    height: 121px;
    font-family: "Romestone", sans-serif;
    font-size: 96px;
    font-weight: 400;
    letter-spacing: 0.96px;
    line-height: 1;
}

.poster > h1::after {
    content: "";
    position: absolute;
    left: 1px;
    top: 120px;
    width: 384px;
    border-top: 1.5px solid #a2a2a2;
}

/* —— STEPS column (rotated) —— */
/* FigJam: flex + justify-content 微调旋转文字盒内对齐 */
.Rcolumn,
.Pcolumn {
    position: absolute;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.Rcolumn > *,
.Pcolumn > * {
    transform: rotate(-90deg);
    flex: none;
}

.right-lable-box {
    left: 436px;
    top: 24px;
    width: 100px;
    height: 126px;
}

.right-lable {
    width: 126px;
    height: 100px;
    font-family: "DELIRIUM NCV", sans-serif;
    font-size: 98.285px;
    letter-spacing: 0.9829px;
    line-height: 1.053;
    color: #eddf00;
    white-space: nowrap;
}

.right-number-box {
    left: 436px;
    top: 118px;
    width: 100px;
    height: 126px;
}

.right-number {
    width: 126px;
    height: 100px;
    font-family: "DELIRIUM NCV", sans-serif;
    font-size: 98.285px;
    letter-spacing: 0.9829px;
    line-height: 1.053;
    color: #3a3436;
    white-space: nowrap;
}

.Pcolumn.right-account {
    left: 525px;
    top: 13px;
    width: 42px;
    height: 228px;
}

p.right-account {
    width: 228px;
    height: 42px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
    color: #3a3436;
}

/* —— Four images / consumed goods —— */
.four.images.area {
    position: static;
}

.four.images.title {
    position: absolute;
    left: 28px;
    top: 150px;
    width: 243px;
    font-family: "Romestone", sans-serif;
    font-size: 46.194px;
    letter-spacing: 0.4619px;
    line-height: 0.8901;
    font-weight: 400;
}

.four.images.title::after {
    content: "";
    position: absolute;
    left: 0;
    top: 117px;
    width: 214px;
    border-top: 1.5px solid #a2a2a2;
}

.four.images:not(.area):not(.goods-list):not(.title) {
    position: static;
}

.circle {
    position: absolute;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #eddf00;
}

.circle-1 { left: 213px; top: 152px; }
.circle-2 { left: 213px; top: 201px; }
.circle-3 { left: 289px; top: 152px; }
.circle-4 { left: 289px; top: 201px; }

.food {
    position: absolute;
    object-fit: cover;
    pointer-events: none;
}

.food-fig {
    left: 189px;
    top: 153px;
    width: 53px;
    height: 43px;
}

.food-salmon {
    left: 189px;
    top: 199px;
    width: 58px;
    height: 49px;
}

.food-egg {
    left: 258px;
    top: 153px;
    width: 69px;
    height: 42px;
}

.food-avocado {
    left: 258px;
    top: 205px;
    width: 64px;
    height: 37px;
}

.four.images.goods-list {
    position: static;
}

ul.goods-list {
    position: absolute;
    left: 340px;
    top: 149px;
    width: 80px;
    list-style: disc;
    padding-left: 22.5px;
    font-family: "Oswald", sans-serif;
    font-size: 15px;
    letter-spacing: 0.15px;
    line-height: 1.6;
}

/* —— Hot spots —— */
.hot.spots {
    position: static;
}

.hot.spots.bars {
    position: static;
}

.bar {
    position: absolute;
    background: #eddf00;
    width: 12px;
}

.bar-jacobs { left: 46px; top: 286px; height: 69px; }
.bar-soda { left: 84px; top: 294px; height: 61px; }
.bar-dwinelle { left: 121px; top: 326px; width: 13px; height: 29px; }
.bar-cheit { left: 158px; top: 342px; height: 13px; }
.bar-mlk { left: 193px; top: 334px; height: 21px; }
.bar-kresge { left: 230px; top: 346px; height: 9px; }

.hot.spots.labels {
    position: static;
}

.label {
    position: absolute;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 13.667px;
    height: 61.5px;
    font-family: "Oswald", sans-serif;
    font-size: 11.711px;
    letter-spacing: 0.1171px;
    line-height: 1.053;
    white-space: nowrap;
}

.label::before {
    content: none;
}

.label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-align: center;
}

.label-jacobs { left: 30px; top: 294px; }
.label-soda { left: 68px; top: 294px; }
.label-dwinelle { left: 105px; top: 294px; }
.label-cheit { left: 142px; top: 294px; }
.label-mlk { left: 177px; top: 294px; }
.label-kresge { left: 214px; top: 294px; }

.hot.spots.content {
    position: static;
}

.hot.spots.content h3 {
    position: absolute;
    left: 28px;
    top: 367px;
    width: 171px;
    font-family: "Romestone", sans-serif;
    font-size: 32.563px;
    letter-spacing: 0.3256px;
    line-height: 0.8901;
    font-weight: 400;
    text-transform: lowercase;
}

.hot.spots.content h3::after {
    content: "";
    position: absolute;
    left: 0;
    top: 49px;
    width: 214px;
    border-top: 1.5px solid #a2a2a2;
}

.hot.spots.content p {
    position: absolute;
    left: 126px;
    top: 372px;
    width: 122px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
}

/* —— Most listened playlists —— */
.most.listened.playlists {
    position: static;
}

.most.listened.playlists.content {
    position: static;
}

.most.listened.playlists.content h3 {
    position: absolute;
    left: 268px;
    top: 280px;
    width: 171px;
    font-family: "Romestone", sans-serif;
    font-size: 32.563px;
    letter-spacing: 0.3256px;
    line-height: 0.8901;
    font-weight: 400;
}

.most.listened.playlists.content h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: -13px;
    width: 272px;
    border-top: 1.5px solid #a2a2a2;
}

.most.listened.playlists.content ol {
    position: absolute;
    left: 263px;
    top: 357px;
    width: 94px;
    list-style: decimal;
    padding-left: 15.5px;
    font-family: "Oswald", sans-serif;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.4;
}

.most.listened.playlists.content > p {
    position: absolute;
    left: 268px;
    top: 436px;
    width: 241px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
}

.most.listened.playlists.content img {
    position: absolute;
    left: 364px;
    top: 279px;
    width: 170.136px;
    height: 174px;
    object-fit: fill;
}

/* —— Bus / scooter / foot / car —— */
.bus.scooter.foot.car {
    position: static;
}

.BUS,
.SCOOTER,
.FOOT,
.CAR {
    position: static;
}

.BUS h3,
.SCOOTER h3,
.FOOT h3,
.CAR h3 {
    position: absolute;
    left: 28px;
    width: 156px;
    font-family: "Romestone", sans-serif;
    font-size: 32.563px;
    letter-spacing: 0.3256px;
    line-height: 0.8901;
    font-weight: 400;
}

.BUS h3 { top: 433px; }
.SCOOTER h3 { top: 462px; }
.FOOT h3 { top: 491px; }
.CAR h3 { top: 520px; }

.bar-bus,
.bar-scooter,
.bar-foot,
.bar-car {
    height: 28px;
    width: auto;
}

.bar-bus { left: 55px; top: 436px; width: 115px; }
.bar-scooter { left: 84px; top: 470px; width: 117px; }
.bar-foot { left: 61px; top: 504px; width: 175px; }
.bar-car { left: 55px; top: 538px; width: 64px; }

.bus.scooter.foot.car.account {
    position: absolute;
    left: 27px;
    top: 574px;
    width: 241px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
}

.bus.scooter.foot.car.account::after {
    content: "";
    position: absolute;
    left: 1px;
    top: 27px;
    width: 214px;
    border-top: 1.5px solid #a2a2a2;
}

/* —— Best places to eat —— */
.best.places.to.eat {
    position: static;
}

.best.places.to.eat::before {
    content: "";
    position: absolute;
    left: 269px;
    top: 476px;
    width: 266px;
    height: 125px;
    border: 1px solid #a2a2a2;
}

.best.places.to.eat.content h3 {
    position: absolute;
    left: 279px;
    top: 484px;
    width: 203px;
    font-family: "Romestone", sans-serif;
    font-size: 32.563px;
    letter-spacing: 0.3256px;
    line-height: 0.8901;
    font-weight: 400;
    z-index: 1;
}

.best.places.to.eat.content p {
    position: absolute;
    left: 411px;
    top: 489px;
    width: 122px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
    z-index: 1;
}

.best.places.to.eat.ratings {
    position: static;
}

.place {
    position: static;
}

.place-name {
    position: absolute;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 13.667px;
    height: 61.5px;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-family: "Oswald", sans-serif;
    font-size: 11.711px;
    letter-spacing: 0.1171px;
    line-height: 1.053;
    white-space: nowrap;
    z-index: 1;
}

.place-great-china .place-name { left: 279px; top: 529px; }
.place-oasis-grill .place-name { left: 311px; top: 529px; }
.place-angelines .place-name { left: 343px; top: 529px; }
.place-imm-thai .place-name { left: 375px; top: 529px; }
.place-la-vals .place-name {
    left: 407px;
    top: 523px;
    width: 14px;
    height: 68px;
}
.place-la-note .place-name {
    left: 439px;
    top: 499px;
    width: 14px;
    height: 92px;
}
.place-jupiters .place-name { left: 471px; top: 529px; }
.place-sizzling-lunch .place-name {
    left: 503px;
    top: 515px;
    width: 14px;
    height: 76px;
}

.stars {
    position: static;
}

.star {
    position: absolute;
    width: 12px;
    height: 11px;
    display: block;
    z-index: 1;
}

.star::before {
    content: "★";
    position: absolute;
    left: 0;
    top: -2px;
    font-size: 12px;
    line-height: 1;
    color: #eddf00;
}

.star-empty::before {
    color: transparent;
}

.star-half::after {
    content: "";
    position: absolute;
    left: 0;
    top: -4px;
    width: 12px;
    height: 9px;
    background: #ebebed;
    z-index: 2;
}

/* Great China — 4 */
.place-great-china .star:nth-child(1) { left: 293px; top: 580px; }
.place-great-china .star:nth-child(2) { left: 293px; top: 569px; }
.place-great-china .star:nth-child(3) { left: 293px; top: 557px; height: 12px; }
.place-great-china .star:nth-child(4) { left: 293px; top: 546px; }
.place-great-china .star-empty { display: none; }

/* Oasis Grill — 3.5 */
.place-oasis-grill .star:nth-child(1) { left: 325px; top: 580px; }
.place-oasis-grill .star:nth-child(2) { left: 325px; top: 569px; }
.place-oasis-grill .star:nth-child(3) { left: 325px; top: 557px; height: 12px; }
.place-oasis-grill .star:nth-child(4) { left: 325px; top: 546px; }
.place-oasis-grill .star-empty { display: none; }

/* Angeline’s — 4 */
.place-angelines .star:nth-child(1) { left: 357px; top: 580px; }
.place-angelines .star:nth-child(2) { left: 357px; top: 569px; }
.place-angelines .star:nth-child(3) { left: 357px; top: 557px; height: 12px; }
.place-angelines .star:nth-child(4) { left: 357px; top: 546px; }
.place-angelines .star-empty { display: none; }

/* Imm Thai — 4.5 */
.place-imm-thai .star:nth-child(1) { left: 389px; top: 580px; }
.place-imm-thai .star:nth-child(2) { left: 389px; top: 569px; }
.place-imm-thai .star:nth-child(3) { left: 389px; top: 557px; height: 12px; }
.place-imm-thai .star:nth-child(4) { left: 389px; top: 546px; }
.place-imm-thai .star:nth-child(5) { left: 389px; top: 535px; }

/* La Val’s — 4 */
.place-la-vals .star:nth-child(1) { left: 421px; top: 580px; }
.place-la-vals .star:nth-child(2) { left: 421px; top: 569px; }
.place-la-vals .star:nth-child(3) { left: 421px; top: 557px; height: 12px; }
.place-la-vals .star:nth-child(4) { left: 421px; top: 546px; }
.place-la-vals .star-empty { display: none; }

/* La Note — 4 */
.place-la-note .star:nth-child(1) { left: 453px; top: 580px; }
.place-la-note .star:nth-child(2) { left: 453px; top: 569px; }
.place-la-note .star:nth-child(3) { left: 453px; top: 557px; height: 12px; }
.place-la-note .star:nth-child(4) { left: 453px; top: 546px; }
.place-la-note .star-empty { display: none; }

/* Jupiter’s — 3 */
.place-jupiters .star:nth-child(1) { left: 485px; top: 580px; }
.place-jupiters .star:nth-child(2) { left: 485px; top: 569px; }
.place-jupiters .star:nth-child(3) { left: 485px; top: 557px; height: 12px; }
.place-jupiters .star-empty { display: none; }

/* Sizzling Lunch — 3.5 */
.place-sizzling-lunch .star:nth-child(1) { left: 516px; top: 580px; }
.place-sizzling-lunch .star:nth-child(2) { left: 516px; top: 569px; }
.place-sizzling-lunch .star:nth-child(3) { left: 516px; top: 557px; height: 12px; }
.place-sizzling-lunch .star:nth-child(4) { left: 516px; top: 546px; }
.place-sizzling-lunch .star-empty { display: none; }

/* —— Weekly time spent —— */
.weekly.time.spent {
    position: absolute;
    left: 28px;
    top: 619px;
    width: 509px;
    height: 102px;
}

.weekly.time.spent.content h3 {
    position: absolute;
    left: 2px;
    top: 0;
    width: 171px;
    font-family: "Romestone", sans-serif;
    font-size: 32.563px;
    letter-spacing: 0.3256px;
    line-height: 0.8901;
    font-weight: 400;
    z-index: 2;
}

.weekly.time.spent.chart {
    position: absolute;
    left: 2px;
    top: 10px;
    width: 507px;
    height: 90px;
    z-index: 1;
}

.area.area-chart {
    display: block;
    width: 100%;
    height: 100%;
    background: url("https://res.cloudinary.com/fbga0vby/image/upload/v1790224518/chart.webp") center / 100% 100% no-repeat;
    mix-blend-mode: screen;
}

.weekly.time.spent.days {
    position: static;
}

.day {
    position: absolute;
    top: 84px;
    width: 19px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
    z-index: 2;
}

.day-m { left: 2px; }
.day-t { left: 123px; }
.day-w { left: 227px; }
.day-th { left: 331px; }
.day-f { left: 427px; }

.weekly.time.spent::after {
    content: "";
    position: absolute;
    left: 0;
    top: 99px;
    width: 508px;
    border-top: 1.5px solid #a2a2a2;
}

/* —— Wake / sleep —— */
.wake.sleep {
    position: static;
}

.wake.time,
.sleep.time {
    position: absolute;
    font-family: "DELIRIUM NCV", sans-serif;
    font-size: 98.285px;
    letter-spacing: 0.9829px;
    line-height: 1.053;
    white-space: nowrap;
    height: 100px;
}

.wake.time {
    left: 27px;
    top: 742px;
    width: 178.723px;
}

.sleep.time {
    left: 354px;
    top: 741px;
    width: 207px;
}

.wake.sleep.caption {
    position: absolute;
    left: 205px;
    top: 763px;
    width: 122px;
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 10.342px;
    letter-spacing: 0.1034px;
    line-height: 1.15;
    white-space: pre-wrap;
}

.wake.sleep.arrow {
    position: absolute;
    left: 204.99px;
    top: 782px;
    width: 135px;
    height: 0;
    border-top: 1.5px solid #a2a2a2;
}

.wake.sleep.arrow::after {
    content: "";
    position: absolute;
    right: -2px;
    top: -5px;
    border: 5px solid transparent;
    border-left: 8px solid #a2a2a2;
}

header,
footer {
    display: none;
}

@media (max-width: 600px) {
    body {
        padding: 0;
        background: #ebebed;
        height: calc(846 * (100vw / 564));
        overflow-x: hidden;
    }

    .poster {
        transform: scale(calc(100vw / 564));
        transform-origin: top left;
        box-shadow: none;
    }
}

