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

    html, body {
      width: 100%;
      height: 100%;
      overflow: hidden;
      background: #fff;
    }

    .page {
      width: 100%;
      height: 100vh;
      background: #fff;
      position: relative;
      overflow: hidden;
    }

    /* =====================
       SP LAYOUT (< 768px)
       SP frame = 390px wide
       Scale content to fill viewport width
       ===================== */
    .sp-layout {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      position: relative;
    }

    .sp-inner {
      width: 390px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 54.167px;
      transform-origin: center center;
      /* JS will apply: transform: scale(vw/390) */
    }

    /* =====================
       PC LAYOUT (>= 768px)
       ===================== */
    .pc-layout {
      display: none;
      width: 100%;
      height: 100%;
      position: relative;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }

    .pc-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 60px;
    }

    @media (min-width: 768px) {
      .sp-layout { display: none; }
      .pc-layout { display: flex; }
    }

    /* =====================
       LOGO
       ===================== */
    .minkawa-logo {
      position: relative;
      overflow: visible;
      flex-shrink: 0;
    }

    .sp-inner .minkawa-logo {
      width: 260px;
      height: 193.717px;
    }

    .pc-inner .minkawa-logo {
      width: 500px;
      height: 372.532px;
    }

    .minkawa-logo img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: contain;
    }

    /* =====================
       COMING SOON
       ===================== */
    .coming-soon {
      font-family: 'League Spartan', sans-serif;
      font-weight: 700;
      color: #c8c8c8;
      text-transform: uppercase;
      text-align: center;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .sp-inner .coming-soon {
      font-size: 34.774px;
      line-height: 34.774px;
      letter-spacing: 1.7387px;
    }

    .pc-inner .coming-soon {
      font-size: 50.556px;
      line-height: 50.556px;
      letter-spacing: 2.5278px;
    }

    /* =====================
       FOOTER
       ===================== */
    .footer {
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      padding: 30px 0;
      white-space: nowrap;
    }

    .footer p {
      font-family: 'League Spartan', sans-serif;
      font-weight: 500;
      color: #000;
      text-align: center;
    }

    .sp-layout .footer p {
      font-size: 13px;
      line-height: 14px;
    }

    .pc-layout .footer p {
      font-size: 16px;
      line-height: 19.385px;
    }