@charset "UTF-8";

:root {
  --ink: #05070e;
  --cyan: #2ff6ff;
  --violet: #7b4cff;
  --lime: #c8ff44;
}

body {
  min-width: 320px;
  background: #e9e9e7;
  color: #11131a;
  font-family: Inter, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.sec_phone_ad {
  padding: 34px 18px;

  > .wrap {
    width: min(100%, 1280px);
    margin: 0 auto;
  }

  .page-head {
    margin: 0 0 18px;

    p {
      color: #53606a;
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0.18em;
    }

    h1 {
      margin: 7px 0 0;
      font-size: clamp(22px, 3vw, 32px);
      font-weight: 950;
      letter-spacing: -0.04em;
    }
  }

  .stage-shell {
    position: relative;
    width: 100%;
    height: 720px;
    overflow: hidden;
    background: var(--ink);
    box-shadow: 0 32px 80px #151a273d;
  }

  .stage {
    position: absolute;
    top: 0;
    left: 0;
    width: 1280px;
    height: 720px;
    overflow: hidden;
    transform-origin: top left;
    background: var(--ink);
    color: #fff;
  }

  .global-grid {
    position: absolute;
    z-index: 1;
    inset: -100px;
    background-image:
      linear-gradient(#ffffff09 1px, transparent 1px),
      linear-gradient(90deg, #ffffff09 1px, transparent 1px);
    background-size: 72px 72px;
    transform: perspective(600px) rotateX(62deg) translateY(320px) scale(1.4);
  }

  .speed-lines {
    position: absolute;
    z-index: 22;
    inset: 0;
    overflow: hidden;
    pointer-events: none;

    i {
      position: absolute;
      left: -40%;
      width: 44%;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--cyan));
      filter: drop-shadow(0 0 7px var(--cyan));

      &:nth-child(1) { top: 16%; }
      &:nth-child(2) { top: 34%; width: 31%; }
      &:nth-child(3) { top: 55%; width: 52%; }
      &:nth-child(4) { top: 73%; width: 26%; }
      &:nth-child(5) { top: 88%; width: 43%; }
    }
  }

  .scene {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;

    &[data-scene="0"] {
      opacity: 1;
      visibility: visible;
    }
  }

  .scene-number {
    position: absolute;
    z-index: 12;
    top: 36px;
    right: 44px;
    color: #ffffff8a;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.2em;
  }

  .kicker {
    margin: 0 0 19px;
    color: var(--cyan);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.22em;
  }

  .product {
    position: absolute;
    z-index: 8;
    object-fit: contain;
    filter: drop-shadow(0 42px 60px #0009) drop-shadow(0 0 25px #2ff6ff2e);
    will-change: transform;
  }

  .scene-light {
    background:
      radial-gradient(circle at 73% 42%, #2656ff37 0, transparent 34%),
      linear-gradient(120deg, #05070e 0%, #0a1022 58%, #101a39 100%);

    .halo {
      position: absolute;
      z-index: 2;
      top: 50%;
      left: 75%;
      width: 680px;
      height: 680px;
      border: 2px solid #2ff6ff54;
      border-radius: 50%;
      box-shadow: 0 0 80px #2ff6ff1f, inset 0 0 55px #7b4cff1f;
      transform: translate(-50%, -50%);
    }

    .halo-two {
      width: 480px;
      height: 480px;
      border-color: #7b4cff66;
    }

    .light-copy {
      position: absolute;
      z-index: 10;
      top: 142px;
      left: 69px;
      width: 550px;

      h2 {
        font-size: 96px;
        font-weight: 950;
        line-height: 0.98;
        letter-spacing: -0.085em;

        em {
          color: var(--cyan);
          text-shadow: 0 0 34px #2ff6ff55;
        }
      }

      .light-rule {
        width: 94px;
        height: 7px;
        margin: 37px 0 23px;
        background: var(--violet);
        box-shadow: 0 0 24px #7b4cffaa;
      }

      > p:last-child {
        color: #a8b9cb;
        font-size: 12px;
        font-weight: 800;
        letter-spacing: 0.16em;
      }
    }

    .product-a {
      top: -108px;
      right: 42px;
      width: 655px;
      height: 930px;
    }

    .vertical-word {
      position: absolute;
      z-index: 4;
      right: -33px;
      bottom: -48px;
      color: #ffffff08;
      font-size: 218px;
      font-weight: 950;
      letter-spacing: -0.09em;
    }
  }

  .scene-night {
    background: #070817;

    .night-slice {
      position: absolute;
      z-index: 1;
      top: -160px;
      right: -180px;
      width: 700px;
      height: 1000px;
      background: linear-gradient(150deg, #2ff6ff 0%, #3d68ff 38%, #7b4cff 74%, #ff42be 100%);
      transform: rotate(17deg);
      opacity: 0.78;
      filter: blur(1px);
    }

    .slice-two {
      right: 248px;
      width: 74px;
      background: #c8ff44;
      opacity: 0.85;
    }

    .night-copy {
      position: absolute;
      z-index: 12;
      top: 122px;
      right: 70px;
      width: 535px;
      text-align: right;

      h2 {
        color: #fff;
        font-size: 91px;
        font-weight: 950;
        line-height: 1;
        letter-spacing: -0.085em;

        em {
          color: var(--lime);
        }
      }

      .night-chips {
        margin: 37px 0 0;
        display: flex;
        justify-content: flex-end;
        gap: 8px;

        span {
          padding: 9px 13px;
          border: 1px solid #ffffff62;
          background: #05070e88;
          color: #fff;
          font-size: 10px;
          font-weight: 900;
          letter-spacing: 0.13em;
        }
      }
    }

    .product-b {
      top: -285px;
      left: -60px;
      width: 810px;
      height: 1180px;
    }

    .lens-rings {
      position: absolute;
      z-index: 9;
      top: 157px;
      left: 215px;
      width: 270px;
      height: 270px;
      border: 4px solid var(--cyan);
      border-radius: 50%;
      box-shadow: 0 0 50px #2ff6ffaa;

      i {
        position: absolute;
        inset: 25px;
        border: 1px solid #fff9;
        border-radius: 50%;

        &:nth-child(2) { inset: 54px; border-color: var(--violet); }
        &:nth-child(3) { inset: 83px; border-color: var(--lime); }
      }
    }

    .night-word {
      position: absolute;
      z-index: 3;
      bottom: -47px;
      left: 11px;
      color: #ffffff0a;
      font-size: 206px;
      font-weight: 950;
      letter-spacing: -0.08em;
    }
  }

  .scene-end {
    background: linear-gradient(115deg, #070817 0%, #131148 54%, #37105c 100%);

    .end-burst {
      position: absolute;
      top: 50%;
      left: 34%;
      width: 1000px;
      height: 1000px;
      border-radius: 50%;
      background: repeating-conic-gradient(from 20deg, #2ff6ff00 0deg 10deg, #2ff6ff14 11deg 12deg);
      transform: translate(-50%, -50%);
    }

    .product-c {
      top: -92px;
      left: 76px;
      width: 620px;
      height: 910px;
    }

    .end-copy {
      position: absolute;
      z-index: 12;
      top: 157px;
      right: 63px;
      width: 570px;
      text-align: right;

      .brand {
        font-size: 105px;
        font-weight: 950;
        line-height: 0.86;
        letter-spacing: -0.1em;

        span,
        i {
          color: var(--cyan);
        }

        span {
          display: block;
        }

        i {
          font-style: normal;
        }
      }

      h2 {
        margin: 57px 0 0;
        color: var(--lime);
        font-size: 48px;
        font-weight: 950;
        letter-spacing: -0.06em;
      }

      .concept {
        margin: 21px 0 0;
        color: #c7d0ed;
        font-size: 10px;
        font-weight: 900;
        letter-spacing: 0.16em;
      }
    }

    .end-bars {
      position: absolute;
      z-index: 5;
      right: 0;
      bottom: 51px;
      left: 0;
      display: flex;
      gap: 12px;
      transform: rotate(-4deg) scale(1.08);

      span {
        flex: 1;
        height: 25px;
        background: var(--cyan);

        &:nth-child(2) { background: var(--violet); }
        &:nth-child(3) { background: var(--lime); }
      }
    }
  }

  .flash {
    position: absolute;
    z-index: 50;
    inset: 0;
    background: #fff;
    opacity: 0;
    pointer-events: none;
  }

  .stage-progress {
    position: absolute;
    z-index: 60;
    right: 0;
    bottom: 0;
    left: 0;
    height: 6px;
    background: #ffffff2b;

    span {
      display: block;
      width: 0;
      height: 100%;
      background: linear-gradient(90deg, var(--cyan), var(--violet), var(--lime));
    }
  }

  .caption-line {
    min-height: 58px;
    padding: 14px 20px;
    display: grid;
    place-items: center;
    background: #0d1522;
    color: #fff;
    font-size: 16px;
    font-weight: 850;
    text-align: center;
  }

  .narrations {
    display: none;
  }

  .player-controls {
    min-height: 69px;
    padding: 13px 17px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #070b13;
    color: #fff;

    button {
      min-height: 40px;
      padding: 7px 12px;
      border: 1px solid #476471;
      border-radius: 5px;
      background: #142632;
      color: #fff;
      font: inherit;
      font-size: 12px;
      font-weight: 850;
      cursor: pointer;

      &:hover,
      &:focus-visible {
        border-color: var(--cyan);
        background: #203b49;
      }
    }

    input {
      flex: 1;
      min-width: 80px;
      accent-color: var(--cyan);
    }

    output {
      min-width: 79px;
      color: #b7c8cf;
      font-size: 11px;
      font-variant-numeric: tabular-nums;
      text-align: right;
    }
  }

  .sample-note {
    margin: 11px 2px 0;
    color: #677278;
    font-size: 12px;
    line-height: 1.75;
  }

  @media (max-width: 700px) {
    padding: 18px 0;

    .page-head,
    .sample-note {
      padding-right: 14px;
      padding-left: 14px;
    }

    .player-controls {
      flex-wrap: wrap;

      input {
        order: 4;
        flex-basis: 100%;
      }

      output {
        margin-left: auto;
      }
    }
  }
}

body.embed-mode {
  background: var(--ink);

  .sec_phone_ad {
    padding: 0;

    .page-head,
    .sample-note {
      display: none;
    }
  }
}
