.hero {
  background: var(--color-paper-gray);
  position: relative;
  z-index: 1;
  --hdr-h: 52px;
  --kv-pull: clamp(-45px, (1024px - 100vw) * 45 / 256, 0px);
  margin-top: calc(-1 * var(--hdr-h));
}
.hero__kvwrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--color-gray);
  padding-top: calc(var(--hdr-h) + var(--kv-pull));
}
.hero__stage {
  container-type: inline-size;
  position: relative;
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  aspect-ratio: 1570 / 908;
  overflow: visible;
  z-index: 1;
}
.hero__bg {
  position: absolute;
  inset: 0%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(4px);
  z-index: 0;
  pointer-events: none;
}

@media (min-width: 1280px) {
  .hero__stage { max-width: 1474px; }
}
.hero__visual { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero__kvfig {
  position: absolute;
  left: 3.06%; top: 11.45%;
  width: 93.88%;
}
.hero__kv-img {
  display: block;
  width: 100%; height: auto;
  border: 1px solid var(--color-gold);
  border-radius: 6.4cqw 6.4cqw 0 0;
}
.hero__kv-copy {
  position: absolute;
  right: 1.2cqw; bottom: 1.2cqw;
  z-index: 3;
  font-size: max(10px, 0.9cqw);
  line-height: 1.2;
  letter-spacing: .02em;
  color: rgba(47, 44, 39, .8);
  text-shadow: 0 0 3px rgba(255, 255, 255, .9), 0 1px 2px rgba(255, 255, 255, .8);
  pointer-events: none;
}
.hero__jewels {
  position: absolute;
  left: 1.6%; top: 3%;
  width: 98.1%; height: auto;
  z-index: 2;
}
.hero__petals { position: absolute; z-index: 4; height: auto; pointer-events: none; }
.hero__petals--l12 { left: 0.41%;  top: 53.95%; width: min(11.72%, 150px); }
.hero__petals--l13 { left: 0;      top: 39.72%; width: min(3.81%, 48.8px); }
.hero__petals--l16 { left: 4.65%;  top: 36.20%; width: min(1.81%, 23.2px); }
.hero__petals--r11 { right: 0;     top: 50.50%; width: min(11.57%, 148px); transform: rotate(-8deg);}
.hero__petals--r14 { right: 5.22%; top: 37.65%; width: min(10.21%, 131px); }
.hero__petals--r15 { right: 9.71%; top: 74.41%; width: min(8.25%, 106px);  }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .hero { view-timeline-name: --kv-view; }
    .hero__petals,
    .hero__crystal {
      animation-timeline: --kv-view;
      animation-range: cover;
      animation-timing-function: linear;
      animation-fill-mode: both;
    }
    .hero__petals--l13,
    .hero__petals--l16 { animation-name: kv-drift-left; }
    .hero__petals--r14,
    .hero__petals--r15 { animation-name: kv-drift-right; }
    .hero__petals--l12 { animation-name: kv-drift-left-far; }
    .hero__petals--r11 { animation-name: kv-drift-right-far; }
    .hero__crystal { animation-name: kv-drift-up; }
  }
}
@keyframes kv-drift-left {
  0%   { translate: 0 60px; }
  100% { translate: 0 -60px; rotate: -20deg; }
}
@keyframes kv-drift-right {
  0%   { translate: 0 60px; }
  100% { translate: 0 -60px; rotate: 20deg; }
}
@keyframes kv-drift-left-far {
  0%   { translate: 0 120px; }
  100% { translate: 0 -120px; rotate: -20deg; }
}
@keyframes kv-drift-right-far {
  0%   { translate: 0 120px; }
  100% { translate: 0 -120px; rotate: 20deg; }
}
@keyframes kv-drift-up {
  100% { translate: 0 -60px; }
}
@media (prefers-reduced-motion: no-preference) {
  .hero[data-reveal-seq] .hero__visual { opacity: 0; transform: scale(0.9); }
  .hero[data-reveal-seq].is-inview .hero__visual {
    opacity: 1; transform: none;
    transition: opacity 2000ms ease-in-out, transform 2000ms ease-in-out;
  }
  .hero[data-reveal-seq] .hero__jewels { transform: scale(0.88); }
  .hero[data-reveal-seq].is-inview .hero__jewels {
    transform: none;
    transition: transform 2000ms ease-in-out;
  }
  .hero[data-reveal-seq] .hero__petals,
  .hero[data-reveal-seq] .hero__crystal { opacity: 0; }
  .hero[data-reveal-seq].is-inview .hero__petals,
  .hero[data-reveal-seq].is-inview .hero__crystal {
    opacity: 1;
    transition: opacity 1000ms ease-in-out 1000ms;
  }
  .hero[data-reveal-seq] .hero__card-wrap { opacity: 0; translate: 0 20px; }
  .hero[data-reveal-seq].is-inview .hero__card-wrap {
    opacity: 1; translate: 0 0;
    transition: opacity 1000ms ease-in-out 1000ms, translate 1000ms ease-in-out 1000ms;
  }
  .hero[data-reveal-seq] .hero__catch { opacity: 0; transform: translateX(-50px); }
  .hero[data-reveal-seq].is-inview .hero__catch {
    opacity: 1; transform: none;
    transition: opacity 1000ms ease-in-out 3000ms, transform 1000ms ease-in-out 3000ms;
  }
  .header[data-reveal-seq] { opacity: 0; transform: translateY(-20px); }
  .header[data-reveal-seq].is-inview {
    opacity: 1; transform: none;
    transition: opacity 1000ms ease-in-out 3000ms, transform 1000ms ease-in-out 3000ms;
  }
}
.hero__catch {
  position: absolute;
  left: 0; top: 17.2%;
  width: 26%;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 0.3cqw;
  padding: 1.4cqw 0;
  border-top: 1px solid var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
  background: linear-gradient(90deg, var(--color-white) 58%, rgba(255, 255, 255, 0));
}
@media (min-width: 1280px) {
  .hero__catch { left: min(0px, (1474px - 100vw) / 2); }
}
.hero__catch-leaf { width: 3.8cqw; height: auto; aspect-ratio: 56 / 24; flex: none; }
.hero__catch p {
  font-family: var(--font-heading);
  font-weight: var(--fw-extrabold);
  font-size: 1.15cqw;
  line-height: 1.45;
  color: var(--color-black);
}
.hero__card-wrap {
  position: absolute;
  left: 50%; bottom: 7%;
  transform: translateX(-50%);
  width: 67.5%;
  z-index: 3;
}
.hero__card {
  position: relative;
  z-index: 2;
  filter: drop-shadow(0 4px 20px rgba(0, 0, 0, 0.12));
}
.hero__card-inner {
  background: var(--color-gray);
  border: 1.27cqw solid var(--color-white);
  --chamfer: 0.85cqw;
  clip-path: polygon(
    var(--chamfer) 0,
    calc(100% - var(--chamfer)) 0,
    100% var(--chamfer),
    100% calc(100% - var(--chamfer)),
    calc(100% - var(--chamfer)) 100%,
    var(--chamfer) 100%,
    0 calc(100% - var(--chamfer)),
    0 var(--chamfer)
  );
}
.hero__gem { position: absolute; z-index: 3; pointer-events: none; }
.hero__gem--tl { top: -14%; left: -3.5%; width: 7.9%; }
.hero__gem--br { bottom: -12%; right: -4.5%; width: 10.2%; }
.hero__ribbon-img {
  position: absolute;
  left: 50%; top: 6.31cqw;
  transform: translate(-50%, -118%) rotate(0deg);
  width: 60%;
  max-width: none;
  height: auto;
  aspect-ratio: 582 / 162;
  z-index: 4;
}
.hero__crystal { display: none; }
.hero__card-inner { position: relative; }
.hero__names {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: center;
  border-bottom: 1px solid var(--color-gold);
}
.hero__plus { width: 3.8cqw; height: auto; aspect-ratio: 59 / 24.5; align-self: center; flex: none; }
.hero__star { display: none; }
.hero__name {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5cqw 1cqw 1.4cqw;
  text-align: center;
}
.hero__name--salome { border-right: 1px solid var(--color-gold); }
.hero__name-jp {
  font-family: "Shippori Mincho", serif;
  font-weight: 800;
  font-size: 3cqw;
  line-height: 1;
  white-space: nowrap;
  padding-inline: 0.3em;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero__name--salome .hero__name-jp {
  letter-spacing: -0.13em;
  background-image: linear-gradient(107deg, #f73bb2 25%, #ff7779 75%);
}
.hero__name--sophia .hero__name-jp {
  letter-spacing: -0.29em;
  background-image: linear-gradient(110deg, #da6aff 25%, #8b70f8 75%);
}
.hero__name-en {
  font-family: "Ballet", cursive;
  font-size: 1.6cqw;
  line-height: 1.1;
  color: var(--color-gold);
  margin-top: -0.6cqw;
}
.hero__divider {
  position: absolute;
  left: 50%; top: 100%;
  transform: translate(-50%, -50%);
  width: 7.8cqw; height: 7.8cqw;
  z-index: 2;
  display: grid;
  place-items: center;
}
.hero__divider img { width: 100%; height: auto; aspect-ratio: 1; display: block; transform: rotate(45deg); }

.hero__areas {
  display: flex;
  justify-content: center;
  gap: 8.1cqw;
  padding: 1cqw 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 1.78cqw;
  color: var(--color-black);
  white-space: nowrap;
}

@media (max-width: 767px) {
  .hero__stage {
    aspect-ratio: 402 / 620;
    z-index: auto;
  }
  .hero__bg { inset: 0; width: 100%; height: 100%; }
  .hero__kvfig {
    left: 2%; top: 4%;
    width: 96%; height: 92.5%;
  }
  .hero__kv-img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    border: none;
    border-radius: 0;
  }
  .hero__kv-copy { right: 2.5cqw; bottom: 2.5cqw; font-size: 10px; }
  .hero__jewels { display: none; }
  .hero__crystal { display: block; position: absolute; z-index: 4; height: auto; pointer-events: none; }
  .hero__crystal--5 { left: 16%;   top: -7.8%; width: 28.1%; }
  .hero__crystal--7 { left: 68.4%; top: -3.8%; width: 25%;   }
  .hero__crystal--9 { left: 87%;   top: 10.6%; width: 13.5%; }
  .hero__crystal--6 { left: 4.5%;  top: 85%;   width: 17.6%; z-index: 6; }
  .hero__catch {
    top: 4%;
    width: 81%;
    padding: 12px 0 12px 8px;
    gap: 8px;
  }
  .hero__catch-leaf { width: 44px; }
  .hero__catch p { font-size: 13px; line-height: 1.35; }
  .hero__petals--r11 { right: auto; left: 79%;  top: 43%; width: 20%; }
  .hero__petals--l12 { left: 1%;   top: 53%; width: 15%; z-index: 1; }
  .hero__petals--l13 { left: -1%;  top: 51%; width: 5%;  }
  .hero__petals--l16 { left: 6%;   top: 49%; width: 3%;  }
  .hero__petals--r14 { right: auto; left: 86%;  top: 38%; width: 13%; }
  .hero__petals--r15 { right: auto; left: 74%;  top: 66%; width: 11%; }
  .hero__card-wrap {
    left: 50%; bottom: 8.7%;
    transform: translateX(-50%);
    width: 79%;
    z-index: 5;
  }
  .hero__card-inner {
    border: 8px solid var(--color-white);
    --chamfer: 7px;
    border-radius: 0;
  }
  .hero__ribbon-img {
    top: 50px;
    width: 145%;
    transform: translate(-50%, -104%) rotate(0deg);
  }
  .hero__names { flex-direction: column; }
  .hero__plus { display: none; }
  .hero__star { display: block; align-self: center; width: 21px; height: auto; aspect-ratio: 20.5185 / 8.53385; }
  .hero__name { flex: none; width: 100%; padding: 6px 8px; }
  .hero__name--salome { border-right: none; }
  .hero__name-jp { font-size: 28px; }
  .hero__name-en { font-size: 15px; margin-top: -2px; }
  .hero__divider { width: 42px; height: 42px; }
  .hero__areas { gap: 28px; padding: 6px 0; font-size: 12px; }
  .hero__gem--tl { top: -5%; left: -5%; width: 15%; }
  .hero__gem--br { bottom: -10%; right: -5%; width: 17%; }
}
.hero__info {
  position: relative;
  margin: 40px 0 0;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.hero__info.card-ornate {
  background: var(--color-white);
  border: none;
  border-radius: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  padding: 48px 24px 64px;
}
.hero__info-corner {
  position: absolute;
  width: 44px;
  height: auto;
  z-index: 1;
  pointer-events: none;
}
.hero__info-corner--tl { top: 8px;    left: 8px;  }
.hero__info-corner--tr { top: 8px;    right: 8px;  transform: rotate(90deg);  }
.hero__info-corner--br { bottom: 8px; right: 8px;  transform: rotate(180deg); }
.hero__info-corner--bl { bottom: 8px; left: 8px;   transform: rotate(-90deg); }

.info-block { text-align: center; }
.info-block:not(:last-child) {
  border-bottom: 1px solid var(--color-gold);
  padding-bottom: 48px;
}
.info-block__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-heading);
  font-weight: var(--fw-extrabold);
  font-size: 22px;
  line-height: 1.2;
  color: var(--color-gold);
  margin-bottom: 14px;
}
.info-block__title-text { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.info-block__title-en {
  font-family: "Ballet", cursive;
  font-weight: 400;
  font-size: 12px;
  line-height: 1;
  color: var(--color-gold);
}
.info-block__leaf { width: 56px; height: auto; aspect-ratio: 56 / 24; flex: none; }
.info-block__leaf--l { transform: scaleY(-1); }
.info-block__leaf--r { transform: rotate(180deg); }
.info-block__main {
  font-family: var(--font-heading);
  font-weight: var(--fw-extrabold);
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-black);
  margin-bottom: 10px;
}
.info-block--sale .info-block__main { font-size: 19px; }
.info-block__date2 { display: block; }
.info-block__wave { color: var(--color-gold); }
.info-block__note {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-black);
  line-height: 1.5;
  text-align: left;
}
.info-block__ast { color: var(--color-black); font-size: 0.65em; vertical-align: top; }
.info-block__astnote { font-family: var(--font-body); font-size: 13px; line-height: 1.5; color: var(--color-black); text-align: center; margin-bottom: 10px; }
.collab {
  position: relative;
  overflow: hidden;
  background: var(--color-paper-gray);
  padding: 128px 0 85px;
  isolation: isolate;
}
.collab__inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 15px;
}
.collab__figure {
  position: relative;
  width: 838px;
  max-width: 100%;
  margin: 0 auto;
  container-type: inline-size;
}
.collab__band {
  position: absolute;
  left: 50%; top: 32.28cqw;
  width: 100vw; height: 45cqw;
  transform: translate(-50%, -50%);
  background: url("../../images/collab-crystal-band.png") center / cover no-repeat;
  opacity: 1;
  z-index: 0;
  pointer-events: none;
}
.collab__frame {
  position: relative;
  z-index: 1;
  aspect-ratio: 838 / 541;
  border: 1px solid var(--color-gold);
  border-radius: 11.93cqw 11.93cqw 0 0;
}
.collab__frame::before {
  content: "";
  position: absolute;
  inset: -3.34cqw 1.31cqw 3.34cqw -1.31cqw;
  border-radius: 11.93cqw 11.93cqw 0 0;
  background: radial-gradient(ellipse at center, #bb9d64 0%, #937a4c 100%);
  z-index: -1;
}
.collab__photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 11.93cqw 11.93cqw 0 0;
}
.collab__gem { display: none; }
.collab__seal {
  position: absolute;
  width: 34.5cqw; height: auto;
  aspect-ratio: 202 / 198;
  left: 93.9cqw; top: 63.5cqw;
  transform: translate(-50%, -50%);
  opacity: .9;
  z-index: 2;
  pointer-events: none;
}
.collab__petal {
  position: absolute;
  height: auto;
  z-index: 3;
  opacity: .92;
  pointer-events: none;
}
.collab__petal--lb-small { width: 11.66cqw; left: -3.26cqw; top: 81.5cqw;  transform: translate(-50%,-50%) rotate(140.92deg); filter: blur(0.7px); }
.collab__petal--lb-big   { width: 19.65cqw; left: 15.08cqw; top: 91.2cqw;  transform: translate(-50%,-50%) rotate(-117.7deg); filter: blur(2px); }
.collab__petal--rt-big   { width: 24.62cqw; left: 94.2cqw;  top: -16.76cqw; transform: translate(-50%,-50%) rotate(79.11deg); filter: blur(1.6px); opacity: 1; }
.collab__petal--rt-small { width: 13.78cqw; left: 62.4cqw;  top: -12.88cqw; transform: translate(-50%,-50%) rotate(-24.67deg); filter: blur(0.55px); opacity: 1; }
.collab__cap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  color: var(--color-black);
  font-size: 16px;
  line-height: 1.5;
}
.collab__cap-mark { display: inline-flex; align-items: center; flex: none; }
.collab__cap-star { display: block; width: 14px; height: 14px; }
.collab__cap-line { display: block; width: 28px; height: 1px; background: var(--color-gold); }
.collab__cap-note { font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--color-gold); margin-left: 8px; width: 100%; margin-left: 0; padding-left: 46px; }
.news {
  padding: 24px;
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.news__heading { margin: 0 0 8px; line-height: 0; }
.news__heading-inner { position: relative; display: inline-block; width: 200px; max-width: 100%; }
.news__heading-frame {
  display: block; width: 100%; height: auto;
  aspect-ratio: 256 / 57;
}
.news__heading-text {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading);
  font-weight: var(--fw-extrabold);
  font-size: 16px; line-height: 1;
  color: var(--color-gold);
}
.news__list { width: 100%; margin-inline: auto; display: flex; flex-direction: column; }
.news__source {
  width: 100%; margin: 8px auto 0;
  font-family: var(--font-body); font-size: 13px; line-height: 1.5;
  color: var(--color-black); text-align: right;
}
.news__item { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px 0; }
.news__item:not(:last-child) { border-bottom: 1px solid var(--color-gold); }
.news__meta { display: flex; align-items: center; gap: 12px; }
.news__date { font-family: var(--font-body); font-size: 14px; line-height: 1; color: var(--color-black); }
.news__cat {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 3px 12px; border-radius: 2px; line-height: 1;
  background: #F84949; color: var(--color-white);
  font-family: var(--font-body); font-weight: 700; font-size: 13px;
}
.news__cat--important   { background: #F84949; }
.news__cat--info        { background: var(--color-gold); }
.news__cat--delay       { background: #E07B39; }
.news__cat--maintenance { background: #6B7280; }
.news__text { width: 100%; font-size: 13px; line-height: 18px; color: var(--color-black); }
.news__text a { color: var(--color-gold); text-decoration: underline; }
.news__list--loading { min-height: 140px; }
.news__more { width: 100%; margin: 12px auto 0; text-align: right; }
.news__more-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-body); font-size: 13px; line-height: 1;
  color: var(--color-gold); text-decoration: none;
}
.news__more-link::after {
  content: ""; width: 6px; height: 6px;
  border-top: 1px solid currentColor; border-right: 1px solid currentColor;
  transform: rotate(45deg);
}
.news__more-link:hover { text-decoration: underline; }
.news[hidden] { display: none; }
.has-crystal-head { position: relative; overflow: hidden; background: var(--color-paper-gray); padding-top: 144px; }
.crystal-band {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 100vw; height: 166px;
  background: url("../../images/collab-crystal-band.png") center / cover no-repeat;
  border-top: 1px solid var(--color-gold);
  border-bottom: 1px solid var(--color-gold);
  z-index: 0; pointer-events: none;
}
.about__petal { position: absolute; height: auto; z-index: 1; pointer-events: none; opacity: .92; }
.about__petal--big   { width: 180px; left: -40px; top: 95px;  filter: blur(2.9000000953674316px); }
.about__petal--small { width: 73px;  left: 70px;  top: 40px;  transform: rotate(-20deg); filter: blur(1px); }
@media (max-width: 767px) {
  .about__petal--big   { width: 120px; left: -25px; top: 90px; transform: rotate(0deg);   filter: blur(1.714421272277832px);  opacity: 1; }
  .about__petal--small { width: 50px;  left: 55px;  top: 35px; transform: rotate(-24deg); filter: blur(0.5911797285079956px); opacity: 1; }
}
.product__petal { position: absolute; z-index: 1; height: auto; pointer-events: none; opacity: .95; }
.product__petal--big   { width: 130px; right: 30px; top: 44px; transform: rotate(-19.96deg); filter: blur(2.4px); }
.product__petal--small { width: 66px;  right: -6px; top: -4px; transform: rotate(-24.67deg); filter: blur(1px); z-index: 4; }
#product.has-crystal-head { overflow: clip visible; }
.has-crystal-head > .section__head { position: relative; z-index: 2; }
.about > .char-cards { position: relative; z-index: 2; }
.about > .deco-label { position: relative; z-index: 3; }
.about { padding-bottom: 64px; }
.char-cards__crystal {
  position: absolute; top: 43%; left: 25%;
  width: 330%; max-width: none; height: auto;
  transform: translate(-50%, -50%) rotate(0deg);
  z-index: 0; opacity: .9; pointer-events: none;
}
.section__badge-deco { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.section__badge-wing { display: block; width: 56px; height: auto; aspect-ratio: 56 / 24; transform: scaleY(-1); }
.section__badge-wing--r { transform: scale(-1, -1); }
.section__badge-num { display: block; width: 54px; height: 76px; }
.section__badge-en {
  display: block; margin: 13px 0 31px;
  font-family: "Ballet", cursive; font-size: 24px; color: var(--color-gold); line-height: 1;
}
.deco-label { position: relative; display: block; width: 240px; max-width: 90%; margin: 8px auto 28px; }
.deco-label__frame { display: block; width: 100%; height: auto; aspect-ratio: 256 / 57; }
.deco-label__text {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 14px; color: var(--color-gold); line-height: 1;
}
.char-cards { position: relative; display: flex; flex-direction: column; gap: 56px; max-width: var(--inner-max); margin: 0 auto; align-items: center; }
.char-card {
  position: relative; z-index: 1;
  width: 100%; max-width: 440px;
  border: 20px solid transparent;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.12));
  padding: 24px 40px 32px;
  display: flex; flex-direction: column; align-items: center;
  container-type: inline-size;
}
.char-card::before {
  content: ""; position: absolute; inset: -20px; z-index: -1; box-sizing: border-box;
  background: var(--color-paper-gray); border: 20px solid var(--color-white);
  --bev: 14px;
  clip-path: polygon(
    var(--bev) 0, calc(100% - var(--bev)) 0,
    100% var(--bev), 100% calc(100% - var(--bev)),
    calc(100% - var(--bev)) 100%, var(--bev) 100%,
    0 calc(100% - var(--bev)), 0 var(--bev)
  );
}
.char-card__corner { position: absolute; width: 48px; height: 48px; aspect-ratio: 1; z-index: 4; pointer-events: none; }
.char-card__corner--tl { top: 0; left: 0; }
.char-card__corner--tr { top: 0; right: 0; transform: rotate(90deg); }
.char-card__corner--br { bottom: 0; right: 0; transform: rotate(180deg); }
.char-card__corner--bl { bottom: 0; left: 0; transform: rotate(-90deg); }
.char-card__gem { position: absolute; height: auto; z-index: 1; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .char-card[data-reveal-seq] { opacity: 0; }
  .char-card--salome[data-reveal-seq] { transform: rotate(-5deg); }
  .char-card--sophia[data-reveal-seq] { transform: rotate(5deg); }
  .char-card[data-reveal-seq].is-inview {
    opacity: 1; transform: none;
    transition: opacity 1000ms ease-in-out 500ms, transform 1000ms ease-in-out 500ms;
  }
  .product__figure[data-reveal-seq] .product__char { opacity: 0; translate: 0 40px; }
  .product__figure[data-reveal-seq].is-inview .product__char {
    opacity: 1; translate: 0 0;
    transition: opacity 1100ms ease-out, translate 1100ms ease-out;
  }
  .product__figure--right[data-reveal-seq].is-inview .product__char { transition-delay: 250ms; }
}
.char-card--salome .char-card__gem--1 { width: 60cqw; left: -40cqw; top: 40cqw; }
.char-card--salome .char-card__gem--2 { width: 55cqw; left: -35cqw; top: 99cqw; }
.char-card--salome .char-card__gem--3 { width: 45cqw; right: -30cqw; bottom: 30cqw; }
.char-card--sophia .char-card__gem--1 { width: 60cqw; right: -35cqw; top: 30cqw; }
.char-card--sophia .char-card__gem--2 { width: 55cqw; right: 20cqw; bottom: -40cqw; }
.char-card--sophia .char-card__gem--3 { width: 40cqw; left: -20cqw; top: 72cqw; }
.char-card__portrait { position: relative; width: 78%; max-width: 238px; aspect-ratio: 238 / 320; margin: 40px auto 0; z-index: 2; }
.char-card__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.char-card__frame {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 115%; max-width: none; height: auto; aspect-ratio: 274 / 359; z-index: 3; pointer-events: none;
}
.char-card__name {
  align-self: flex-start; width: 100%; margin: 40px 0 0;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 22px; line-height: 1.3;
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.char-card--salome .char-card__name { background-image: linear-gradient(103deg, #f73bb2 25%, #ff7779 75%); }
.char-card--sophia .char-card__name { background-image: linear-gradient(110deg, #da6aff 25%, #8b70f8 75%); }
.char-card__desc { align-self: flex-start; width: 100%; margin-top: 12px; font-size: 15px; line-height: 26px; color: var(--color-black); text-align: left; }
.denpo-about { position: relative; max-width: 1024px; width: 100%; margin: 96px auto 0;
  background: var(--color-white); border: none; border-radius: 0; padding: 24px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); }
.denpo-about__corner { position: absolute; width: 40px; height: 40px; aspect-ratio: 1; z-index: 2; pointer-events: none; }
.denpo-about__corner--tl { top: 8px; left: 8px; }
.denpo-about__corner--tr { top: 8px; right: 8px; transform: rotate(90deg); }
.denpo-about__corner--br { bottom: 8px; right: 8px; transform: rotate(180deg); }
.denpo-about__corner--bl { bottom: 8px; left: 8px; transform: rotate(-90deg); }
.denpo-about__title {
  text-align: center;
  font-size: var(--fs-sp-h2);
  margin-bottom: 24px;
}
.denpo-about__body {
  background: var(--color-paper-gray); overflow: hidden;
  display: flex; flex-direction: column; gap: 24px; align-items: center;
  padding: 24px;
}
.denpo-about__figure { position: relative; flex: none; width: 304px; max-width: 100%; aspect-ratio: 1; }
.denpo-about__goldbox {
  position: absolute; left: 5.68%; top: 5.87%; width: 88.6%; height: 88.6%;
  background: rgba(175, 146, 92, 0.2); border: 1px solid var(--color-gold);
}
.denpo-about__img { position: absolute; display: block; height: auto; max-width: none; object-fit: cover; }
.denpo-about__img--main { top: 0; left: 0; width: 70.5%; aspect-ratio: 1; z-index: 1; }
.denpo-about__img--sub  { right: 0; bottom: 0; width: 51.5%; aspect-ratio: 1; z-index: 2; }
.denpo-about__text p { margin-bottom: 1em; font-size: var(--fs-sp-p); line-height: 1.5; }
.denpo-about__text > p:first-child { font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: var(--fs-sp-h3); }
.denpo-about__text strong { color: var(--color-red); }
.product { position: relative; max-width: 1280px; margin: 155px auto 0; display: flow-root; }
.product__card {
  position: absolute; inset: 0; z-index: 1;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.14));
}
.product__card-face {
  position: absolute; inset: 0;
  background: var(--color-card-gray);
  border: 15px solid var(--color-white);
  clip-path: polygon(13px 0, calc(100% - 13px) 0, 100% 13px, 100% calc(100% - 13px), calc(100% - 13px) 100%, 13px 100%, 0 calc(100% - 13px), 0 13px);
}
.product__card-corners { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.product__card-corner { position: absolute; width: 30px; height: 30px; aspect-ratio: 1; pointer-events: none; }
.product__card-corner--tl { top: 15px; left: 15px; }
.product__card-corner--tr { top: 15px; right: 15px; transform: rotate(90deg); }
.product__card-corner--br { bottom: 15px; right: 15px; transform: rotate(180deg); }
.product__card-corner--bl { bottom: 15px; left: 15px; transform: rotate(270deg); }
.product__crystal { position: absolute; z-index: 0; max-width: none; height: auto; pointer-events: none; }
.product__crystal--r, .product__crystal--l { display: none; }
.product__crystal--sp { display: block; top: -4.8%; left: -20%; right: auto; bottom: auto; width: 130%; }
.product__names-ring {
  position: absolute; z-index: 0; top: -8%; left: -40%;
  width: 180%; max-width: none; height: auto; pointer-events: none;
  transform-origin: 50% 50%;
  animation: product-names-spin 40s linear infinite;
}
@keyframes product-names-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .product__names-ring { animation: none; }
}
.product__figure { position: absolute; pointer-events: none; }
.product__figure--left  { aspect-ratio: 520 / 951; }
.product__figure--right { aspect-ratio: 540 / 922; }
.product__char { position: absolute; z-index: 6; top: 0; left: 0; width: 100%; height: auto; pointer-events: none; }
.product__fig-crystal { position: absolute; z-index: 5; width: 100%; max-width: none; height: auto; pointer-events: none; }
.product__gem { position: absolute; max-width: none; height: auto; pointer-events: none; }
.product__figure--left .product__fig-crystal { left: -20%; top: 17%; width: 100%; }
.product__gem--sa { z-index: 5; left: 49%; top: -6%; width: 40%; }
.product__gem--sb { z-index: 7; left: 35%; top: -20%; width: 22%; }
.product__figure--right .product__fig-crystal { left: 3%; top: 0%; width: 100%; }
.product__gem--pa { z-index: 5; left: 2%; top: 95%; width: 30%; }
.product__gem--pb { z-index: 7; left: 60%; top: 80%; width: 18%; }
.product__figure--left  { top: -2%; left: -5%; right: auto; width: 76%; }
.product__figure--right { top: -2%; left: 42%; right: auto; width: 80%; }
.product__center {
  position: relative; z-index: 3; text-align: center;
  margin: 135% 15px 15px;
  background: var(--color-paper-gray);
  padding: 0 5px 40px;
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.product__center::before {
  content: ''; align-self: stretch; margin-inline: -5px; border-top: 1px solid var(--color-gold);
}
.product__catch {
  font-family: var(--font-heading);
  font-weight: var(--fw-extrabold);
  font-size: 19px;
  line-height: 1.5;
  margin: 48px 0 0;
  background-image: linear-gradient(103.65deg, #f73bb2 25%, #8b70f8 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.price-block { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; }
.price-label { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 142px; height: 53px; }
.price-label__frame { position: absolute; inset: 0; width: 100%; height: 100%; }
.price-label__text {
  position: relative; font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 18px; color: var(--color-gold); line-height: 1;
}
.price-amount { font-family: var(--font-heading); font-weight: var(--fw-extrabold); color: var(--color-black); line-height: 1.2; margin: 0; }
.price-amount__yen { font-size: 18px; }
.price-amount__num { font-size: 28px; }
.price-amount__num--grad {
  background-image: linear-gradient(97.84deg, #f73bb2 25%, #8b70f8 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.price-amount__tax { font-family: var(--font-base, sans-serif); font-weight: 400; font-size: 13px; }
.product__price-note { font-size: 13px; color: var(--color-black); margin: 0; }
.product__price-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--color-white); border: 1px solid var(--color-gold); border-radius: 100px;
  padding: 11px 20px; font-family: var(--font-base, sans-serif); font-size: 15px;
  color: var(--color-gold); text-decoration: none; white-space: nowrap;
}
.product__price-btn-icon { width: 15px; height: auto; aspect-ratio: 16.25 / 12; transform: rotate(180deg); }
.product__video {
  position: relative; max-width: 746px; margin: 40px auto 0;
  padding: 10px;
  background: var(--color-white);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.product__video-corner { position: absolute; width: 20px; height: 20px; aspect-ratio: 1; z-index: 2; pointer-events: none; }
.product__video-corner--tl { top: 3px; left: 3px; }
.product__video-corner--tr { top: 3px; right: 3px; transform: rotate(90deg); }
.product__video-corner--br { bottom: 3px; right: 3px; transform: rotate(180deg); }
.product__video-corner--bl { bottom: 3px; left: 3px; transform: rotate(-90deg); }
.video-thumb { position: relative; display: block; max-width: 640px; margin: 0 auto; }
.video-thumb img { width: 100%; border-radius: 8px; box-shadow: var(--shadow-base); }
.video-thumb__play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: rgba(255, 0, 80, 0.85);
}
.video-thumb__play::after {
  content: "";
  position: absolute;
  inset: 0; margin: auto;
  width: 0; height: 0;
  border-style: solid;
  border-width: 12px 0 12px 20px;
  border-color: transparent transparent transparent #fff;
  transform: translateX(2px);
}
.product__video .video-thumb { max-width: none; }
.product__video .video-thumb img { border-radius: 0; box-shadow: none; border: 1px solid var(--color-gold); }
.product__video .video-thumb__play { width: 32px; height: 32px; background: var(--color-white); }
.product__video .video-thumb__play::after {
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent var(--color-gold);
  transform: translateX(1px);
}
.video-thumb__iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.product__video .video-thumb.is-video-playing::after {
  content: "";
  position: absolute; inset: 0; z-index: 2;
  border: 1px solid var(--color-gold);
  pointer-events: none;
}
@media (hover: hover) {
  .product__video .video-thumb img { transition: opacity .2s ease; }
  .product__video .video-thumb__play { transition: transform .2s ease; }
  .product__video .video-thumb:hover img { opacity: .85; }
  .product__video .video-thumb:hover .video-thumb__play { transform: scale(1.06); }
}
.popup-detail { position: relative; margin-top: 40px; width: 100vw; margin-left: calc(50% - 50vw); }
.popup-detail__pic { position: relative; z-index: 1; display: block; }
.popup-detail__pic img { display: block; width: 100%; height: auto; }
.popup-detail__band { display: none; }
.delivery { position: relative; max-width: var(--inner-max); margin: 76px auto 0; padding: 0 16px; }
.delivery__petals { position: absolute; z-index: 3; top: 0; left: 50%; transform: translateX(-50%); width: min(100vw, 1570px); height: 0; pointer-events: none; }
.delivery__petal { position: absolute; display: block; max-width: none; height: auto; }
.delivery__petal--sm { left: 80px; top: -130px; width: 79px;  transform: translate(-50%, -50%); z-index: 1; }
.delivery__petal--lg { left: 55px; top: -70px;  width: 110px; transform: translate(-50%, -50%); z-index: 2; }
.delivery__head { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 40px; }
.delivery__flourish { width: 56px; height: 24px; aspect-ratio: 56 / 24; transform: scaleY(1); }
.delivery__flourish--r { transform: scaleX(-1); }
.delivery__head-text { display: flex; flex-direction: column; align-items: center; gap: 5px; color: var(--color-gold); }
.delivery__head-ja { font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 32px; line-height: 36px; white-space: nowrap; }
.delivery__head-en { font-family: "Ballet", cursive; font-size: 12px; line-height: 1; }
.delivery__flow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  column-gap: 4px;
  row-gap: 8px;
}
.delivery__item {
  flex: 1 1 40%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.delivery__item--full { flex-basis: 100%; }
.delivery__box {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 357 / 240;
  border: 1px solid var(--color-gold);
  background: url("../../images/delivery-paper.jpg") center / cover no-repeat;
  overflow: hidden;
}
.delivery__box--white { background: var(--color-white); }
.delivery__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.delivery__cap { display: flex; align-items: center; gap: 5px; width: 100%; }
.delivery__cap-icon { width: 24px; height: 24px; flex-shrink: 0; }
.delivery__cap span {
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 16px; line-height: 24px; color: var(--color-black);
}
.delivery__item:not(.delivery__item--full) .delivery__cap { align-items: flex-start; min-height: 48px; }

.delivery__sep { display: block; flex: 0 0 auto; align-self: center; }
.delivery__sep--plus { width: 32px; height: 48px; margin-bottom: 57px; }
.delivery__sep--arrow { flex-basis: 100%; width: 23px; height: 37px; margin: 0 auto; transform: rotate(90deg); }
.cta-band {
  position: relative;
  max-width: var(--inner-max);
  margin: 40px calc(-1 * var(--inner-pad-sp)) 0;
  padding: 16px 24px 64px;
}
.cta-band__glow {
  position: absolute; z-index: 0; pointer-events: none;
  left: 50%; top: 42%; transform: translate(-50%, -50%);
  width: min(100vw, 1030px); height: 247px;
  background: url("../../images/collab-crystal-band.png") center / cover no-repeat;
  filter: none;
}
.cta-band__cardshadow { position: relative; z-index: 1; width: 100%; filter: drop-shadow(0 1px 5px rgba(0,0,0,0.12)); }
.cta-band__card {
  --ch: 7px;
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  background: var(--color-paper-gray);
  border: 10px solid var(--color-white);
  clip-path: polygon(
    var(--ch) 0, calc(100% - var(--ch)) 0,
    100% var(--ch), 100% calc(100% - var(--ch)),
    calc(100% - var(--ch)) 100%, var(--ch) 100%,
    0 calc(100% - var(--ch)), 0 var(--ch)
  );
  padding-bottom: 48px;
}
.cta-band__photo { position: relative; width: 100%; height: 200px; overflow: hidden; background: var(--color-white); border-bottom: 1px solid var(--color-gold); }
.cta-band__photo picture { display: block; width: 100%; height: 100%; }
.cta-band__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; }
.cta-band__btn {
  position: relative; overflow: hidden;
  clip-path: inset(0 round 100px);
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 326px; max-width: calc(100% - 32px); padding: 24px 40px;
  border-radius: 100px; text-decoration: none;
  background: linear-gradient(98.58deg, #f73bb2 25%, #8b70f8 75%);
}
.cta-band__play { position: relative; z-index: 1; flex-shrink: 0; width: 20px; height: 20px; }
.cta-band__btn-br { display: none; }
.cta-band__btn-text {
  position: relative; z-index: 1; text-align: left;
  color: var(--color-white); font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 16px; line-height: 24px;
}
.cta-band__char { position: absolute; z-index: 0; top: 12px; height: 139px; width: auto; pointer-events: none; }
.cta-band__char--l { left: 0; }
.cta-band__char--r { right: -11px; }
.cta-band__corner { position: absolute; z-index: 2; width: 48px; height: 48px; aspect-ratio: 1; pointer-events: none; }
.cta-band__corner--tl { top: 0; left: 0; }
.cta-band__corner--tr { top: 0; right: 0; transform: rotate(90deg); }
.cta-band__corner--br { bottom: 0; right: 0; transform: rotate(180deg); }
.cta-band__corner--bl { bottom: 0; left: 0; transform: rotate(-90deg); }
.cta-band__note { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; color: var(--color-black); }
.cta-band__note-1 { font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 16px; line-height: 24px; }
.cta-band__note-2 { font-family: var(--font-body); font-size: 16px; line-height: 24px; }
.cta-band__petal, .cta-band__gem { position: absolute; z-index: 10; display: block; max-width: none; pointer-events: none; }
.cta-band__petal--lg { right: 31px;  bottom: 18px;  width: 51px; transform: translate(50%, 50%)  rotate(86.35deg); }
.cta-band__petal--sm { right: -13px; bottom: 34px;  width: 27px; transform: translate(50%, 50%)  rotate(-109.5deg); }
.cta-band__gem--v6  { left: 11px;  top: 153px;  width: 79px; transform: translate(-50%, -50%) rotate(82.52deg); }
.cta-band__gem--v8  { right: 34px; top: 62px;   width: 96px; transform: translate(50%, -50%)  rotate(122.58deg); }
.cta-band__gem--v9  { left: 49px;  top: 225px;  width: 45px; transform: translate(-50%, -50%) rotate(35.33deg); }
.cta-band__gem--v10 { right: 61px; top: 336px; width: 22px; transform: translate(50%, -50%) rotate(-78.24deg); }
.cta-band__gem--v11 { right: 0;    top: 104px;  width: 18px; transform: translate(50%, -50%)  rotate(-78.24deg); }
.section--stream { text-align: center; }
.section--stream .section__lead { font-family: var(--font-heading); font-weight: var(--fw-extrabold); }
#stream.has-crystal-head { overflow: clip visible; }
.stream__petal { position: absolute; z-index: 5; height: auto; pointer-events: none; }
.stream__petal--a { width: 105px; left: 96px; top: 14px;  transform: translate(-50%, -50%); }
.stream__petal--b { width: 47px;  left: 14px; top: -31px; transform: translate(-50%, -50%); }
.stream-card { position: relative; z-index: 2; width: min(370px, 100%); margin: 48px auto 0; }
.stream-card__crystal {
  position: absolute; left: 50%; top: 50%;
  width: 127.03%; max-width: none; height: auto;
  transform: translate(-50%, -50%) rotate(-2deg);
  z-index: 0; pointer-events: none;
}
.stream-card__shadow { position: relative; z-index: 1; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.12)); }
.stream-card__inner {
  --ch: 7px;
  position: relative;
  background: var(--color-paper-gray);
  border: 10px solid var(--color-white);
  clip-path: polygon(
    var(--ch) 0, calc(100% - var(--ch)) 0,
    100% var(--ch), 100% calc(100% - var(--ch)),
    calc(100% - var(--ch)) 100%, var(--ch) 100%,
    0 calc(100% - var(--ch)), 0 var(--ch)
  );
  padding: 10px;
}
.stream-card__corner { position: absolute; z-index: 3; width: 40px; height: 40px; pointer-events: none; }
.stream-card__corner--tl { top: 0; left: 0; }
.stream-card__corner--tr { top: 0; right: 0; transform: rotate(90deg); }
.stream-card__corner--br { bottom: 0; right: 0; transform: rotate(180deg); }
.stream-card__corner--bl { bottom: 0; left: 0; transform: rotate(-90deg); }
.stream-card__thumb {
  position: relative; display: block; width: 100%; aspect-ratio: 16 / 9;
  border: 1px solid var(--color-gold); overflow: hidden;
}
.stream-card__thumb-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.stream-card__thumb.is-video-playing { border: 0; }
.stream-card__thumb.is-video-playing::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border: 1px solid var(--color-gold);
  pointer-events: none;
}
.stream-card__thumb .video-thumb__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}
@media (min-width: 768px) {
  .stream-card__thumb.is-video-playing::after { border-width: 1.98px; }
}
.stream-card__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 44px; height: auto; pointer-events: none;
}
.stream-info { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 24px; margin-top: 48px; }
.stream-emph {
  display: inline-flex; align-items: baseline; justify-content: center; gap: 6px; flex-wrap: wrap;
  box-sizing: border-box; max-width: 100%;
  padding: 10px 24px; border-radius: 100px;
  background: var(--color-white); border: 2px solid var(--color-gold);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  color: var(--color-gold); text-align: center;
}
.stream-emph__label { font-size: 14px; line-height: 1.3; }
.stream-emph__main { font-size: 20px; line-height: 1.3; }
.stream-archive { margin-top: 60px; }
.stream-sns { display: flex; align-items: center; gap: 8px; }
.stream-sns li { display: block; }
.stream-sns a { display: block; width: 32px; height: 32px; }
.stream-sns img { display: block; width: 32px; height: 32px; }
.stream-sns a.stream-sns__x { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--color-black); }
.stream-sns a.stream-sns__x img { width: 16px; height: auto; }
.stream-hashtag { position: relative; width: 358px; max-width: 100%; aspect-ratio: 358 / 80; display: grid; place-items: center; }
.stream-hashtag__frame { position: absolute; inset: 0; width: 100%; height: 100%; }
.stream-hashtag__text {
  position: relative; font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 22px; line-height: 1;
  background: linear-gradient(98deg, #f73bb2 25%, #8b70f8 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.flow {
  position: relative;
  padding: 56px var(--inner-pad-sp) 24px;
  background: var(--color-gray);
  border-top: 1px solid var(--color-gold);
}
.flow .section__head { margin-bottom: 40px; }
.flow__petal { position: absolute; z-index: 1; height: auto; pointer-events: none; opacity: 1; }
.flow__petal--big   { width: 100px; left: -18px; top: 6px;   transform: rotate(-127deg); filter: blur(1.4px); }
.flow__petal--small { width: 58px;  left: 96px;  top: -36px; transform: rotate(-148deg); filter: blur(.6px); }
.flow__list {
  display: flex; flex-wrap: nowrap;
  align-items: stretch; justify-content: flex-start;
  gap: 6px;
  margin-left: calc(-1 * var(--inner-pad-sp)); margin-right: calc(-1 * var(--inner-pad-sp));
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  padding: 16px var(--inner-pad-sp) 18px;
  scroll-snap-type: x proximity; scroll-padding-left: var(--inner-pad-sp);
}
.flow__item {
  position: relative; flex: 0 0 auto;
  width: 140px; scroll-snap-align: start;
  display: flex; flex-direction: column;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.12));
}
.flow__card {
  position: relative; box-sizing: border-box;
  width: 100%; min-height: 172px; flex: 1 1 auto;
  display: flex; flex-direction: column; gap: 6px;
  padding: 44px 10px 14px;
  background: var(--color-gray);
  border: 14px solid var(--color-white);
  clip-path: polygon(11px 0, calc(100% - 11px) 0, 100% 11px, 100% calc(100% - 11px), calc(100% - 11px) 100%, 11px 100%, 0 calc(100% - 11px), 0 11px);
}
.flow__banner {
  position: absolute; top: 6px; left: 0; right: 0;
  height: 30px; display: flex; align-items: center;
  padding-left: 40px;
  background: url("../../images/flow-step-banner.svg") 0 0 / 100% 100% no-repeat;
}
.flow__step { color: var(--color-white); font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 14px; line-height: 1; }
.flow__icon { position: absolute; left: -4px; top: -6px; width: 50px; height: 50px; z-index: 2; }
.flow__title { font-family: var(--font-heading); font-weight: var(--fw-extrabold); color: var(--color-gold); font-size: 15px; line-height: 1.45; }
.flow__desc { font-size: 14px; line-height: 1.45; color: var(--color-black); }
.flow__card--goal {
  align-items: center; justify-content: center; text-align: center;
  gap: 12px; padding: 18px 12px;
  background: var(--color-gold); border-color: var(--color-gold);
}
.flow__icon--goal { position: static; width: 54px; height: 54px; }
.flow__card--goal .flow__title { color: var(--color-white); font-size: 20px; }
.flow__tag {
  font-family: var(--font-body); font-weight: var(--fw-black); font-size: 11px;
  color: var(--color-gold); background: var(--color-white);
  border-radius: 4px; padding: 4px 10px; line-height: 1;
}
.flow__arrow { display: flex; align-items: center; justify-content: center; align-self: center; flex: 0 0 auto; }
.flow__arrow img { width: 18px; height: auto; transform: rotate(90deg); }
.flow__alert {
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 6px;
  max-width: 640px; margin: 24px auto 0;
  padding: 10px 24px; border-radius: 999px;
  background: var(--color-red); color: var(--color-white);
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: 15px; line-height: 1.45;
}
.flow__alert-icon { flex: none; width: 26px; height: auto; }
.guide { padding: 30px var(--inner-pad-sp); background: var(--color-gray); display: flex; flex-direction: column; align-items: center; }
.area { padding: 12px var(--inner-pad-sp) 128px; background: var(--color-gray); overflow: hidden; }
.area__inner { position: relative; max-width: var(--inner-max); margin-inline: auto; }
.area__band {
  position: absolute; left: 50%; top: 120px; transform: translateX(-50%);
  width: 130vw; height: 320px; z-index: 0; pointer-events: none;
  background: url("../../images/collab-crystal-band.png") center / cover no-repeat;
  filter: none; opacity: 1;
}
.area__cardwrap { position: relative; z-index: 1; filter: drop-shadow(0 4px 20px rgba(0, 0, 0, 0.12)); }
.area__card {
  --acut: 10px;
  position: relative; overflow: hidden;
  background: var(--color-gray);
  border: 10px solid var(--color-white);
  padding-bottom: 40px;
  clip-path: polygon(var(--acut) 0, calc(100% - var(--acut)) 0, 100% var(--acut), 100% calc(100% - var(--acut)), calc(100% - var(--acut)) 100%, var(--acut) 100%, 0 calc(100% - var(--acut)), 0 var(--acut));
}
.area__corner { position: absolute; z-index: 4; width: 48px; height: 48px; pointer-events: none; }
.area__corner--tl { top: 10px; left: 10px; }
.area__corner--tr { top: 10px; right: 10px; transform: rotate(90deg); }
.area__corner--br { bottom: 10px; right: 10px; transform: rotate(180deg); }
.area__corner--bl { bottom: 10px; left: 10px; transform: rotate(-90deg); }
.area__mapwrap {
  position: relative; z-index: 1;
  display: flex; justify-content: center;
  padding: 32px 24px;
  background: var(--color-white);
}
.area__map { width: 100%; max-width: 332px; height: auto; }
.area__legend {
  position: absolute; z-index: 2;
  left: 28px; padding-left: 7px;
  font-size: var(--fs-sp-p); color: var(--color-black); line-height: 1.5;
  border-left: 3px solid;
}
.area__legend--west { top: 56px; border-color: var(--color-light-pink); }
.area__legend--east { top: 86px; border-color: var(--color-light-blue); }
.area__char { display: none; position: absolute; z-index: 2; height: auto; pointer-events: none; }
.area__btns {
  position: relative; z-index: 3;
  display: flex; flex-direction: column; gap: 24px;
  padding: 24px 8px 0;
}
.area__col { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.area__col--east { order: -1; }
.area__btn {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; padding: 16px 24px; border-radius: 50px;
  color: var(--color-white); text-align: left;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: var(--fs-sp-p); line-height: 1.5;
}
.area__btn--west { background: var(--color-red); }
.area__btn--east { background: var(--color-blue); }
.area__btn-icon { flex: none; width: 18px; height: 18px; }
.area__track { font-size: var(--fs-sp-p); color: var(--color-black); text-align: center; }
.area__track a { color: var(--color-gold); text-decoration: underline; }
.area__petal { position: absolute; z-index: 5; height: auto; pointer-events: none; opacity: 1; }
.area__petal--1 { width: 75px; right: 43px; bottom: -110px; transform: none; filter: none; }
.area__petal--2 { width: 75px; right: 5px;  bottom: -45px;  transform: none; filter: none; }

@media (min-width: 768px) {
  .flow { padding: 128px 40px 24px; }
  .flow__list { justify-content: center; justify-content: safe center; gap: 10px; padding: 16px 0 20px; max-width: var(--inner-max); margin-left: auto; margin-right: auto; }
  .flow__item { width: 180px; }
  .flow__card { min-height: 187px; border-width: 16px; padding: 54px 14px 16px; gap: 8px; }
  .flow__title, .flow__desc { font-size: 16px; }
  .flow__alert { font-size: 20px; padding: 14px 44px; max-width: none; width: max-content; }
  .flow__petal--big { width: 160.444px; height: 164.193px; aspect-ratio: 160.44 / 164.19; transform: rotate(127.368deg); left: -28px; top: 10px; }
  .flow__petal--small { width: 93.927px; height: 96.122px; aspect-ratio: 93.93 / 96.12; transform: rotate(148.744deg); left: 150px; top: -52px; }
  .guide { padding: 80px 40px; }
  .area { padding: 24px 40px 108px; }
  .area__band { height: 440px; top: 130px; }
  .area__card { --acut: 18px; border-width: 20px; padding-bottom: 48px; }
  .area__corner--tl { top: 20px; left: 20px; }
  .area__corner--tr { top: 20px; right: 20px; }
  .area__corner--br { bottom: 20px; right: 20px; }
  .area__corner--bl { bottom: 20px; left: 20px; }
  .area__mapwrap { padding: 24px; }
  .area__map {  max-width: clamp(300px, calc(100% - 522px), 500px); }
  .area__legend { font-size: var(--fs-p); left: 64px; }
  .area__legend--west { top: 64px; }
  .area__legend--east { top: 94px; }
  .area__char { display: block; top: 50%; bottom: auto; }
  .area__char--left  { width: 256px; left: 14px; }
  .area__char--right { width: 278px; right: -25px; top: 50%; }
  .area__btns { flex-direction: row; justify-content: center; align-items: flex-start; gap: clamp(10px, 2vw, 24px); padding: 40px 0 0; }
  .area__col { flex: 0 1 auto; min-width: 0; }
  .area__col--east { order: 0; }
  .area__btn { width: auto; padding: clamp(16px, 2.2vw, 32px) clamp(16px, 3vw, 56px); border-radius: 100px; font-size: clamp(13px, 1.5vw, 20px); white-space: nowrap; }
  .area__btn-icon { width: 25px; height: 25px; }
  .area__track { font-size: var(--fs-p); background-color: var(--color-gray); padding: 10px 20px; border-radius: 5px;}
  .area__petal--1, .area__petal--2 { display: none; }
}
.price {
  position: relative; overflow: hidden;
  padding: 56px 0;
  background: var(--color-gray);
  border-top: 1px solid var(--color-gold);
  display: flex; flex-direction: column; align-items: center; gap: 48px;
}
.price .section__head { padding-inline: var(--inner-pad-sp); }
.price__lead-strong { font-family: var(--font-heading); font-weight: var(--fw-extrabold); }
.price-card {
  position: relative; box-sizing: border-box;
  width: 100%; max-width: 1024px;
  background: var(--color-white);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .12);
  padding: 48px 0;
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.price-card__row, .price-card__example { padding-inline: var(--inner-pad-sp); }
.price-card__corner { position: absolute; z-index: 2; width: 48px; height: 48px; pointer-events: none; }
.price-card__corner--tl { top: 8px; left: 8px; }
.price-card__corner--tr { top: 8px; right: 8px; transform: rotate(90deg); }
.price-card__corner--br { bottom: 8px; right: 8px; transform: rotate(180deg); }
.price-card__corner--bl { bottom: 8px; left: 8px; transform: rotate(-90deg); }
.price-card__title {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  color: var(--color-gold); font-size: 22px; text-align: center;
}
.price-card__flourish { flex: none; width: 56px; height: auto; }
.price-card__flourish--l { transform: scaleY(1); }
.price-card__flourish--r { transform: scaleX(-1); }
.price-card__row { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; }
.price-card__item { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.price-card__thumb {
  width: 100%; aspect-ratio: 315 / 190; border-radius: 24px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.price-card__thumb--paper { background: #edd0d5; }
.price-card__thumb--paper img { width: 100%; height: 100%; object-fit: contain; }
.price-card__thumb--msg { background: url("../../images/price-msg-bg.jpg") center / cover no-repeat; }
.price-card__circle {
  display: flex; align-items: center; justify-content: center;
  width: 170px; max-width: 55%; aspect-ratio: 1; border-radius: 50%; background: var(--color-white);
}
.price-card__msglogo { width: 78%; height: auto; }
.price-card__label { display: flex; align-items: center; gap: 8px; }
.price-card__tag {
  font-family: var(--font-body); font-weight: var(--fw-black); font-size: 11px; line-height: 1;
  color: var(--color-gray); background: var(--color-gold); padding: 3px 8px 4px;
}
.price-card__yen { font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 22px; color: var(--color-black); }
.price-card__yen small { font-family: var(--font-body); font-weight: 400; font-size: 13px; }
.price-card__plus { width: 32px; height: 48px; }
.price-card__example { font-size: 16px; color: var(--color-black); text-align: center; }
.price-card__total { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.price-card__total-label {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 142px; aspect-ratio: 192 / 72;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 16px; color: var(--color-gold);
}
.price-card__total-label img { position: absolute; inset: 0; width: 100%; height: 100%; }
.price-card__total-yen { font-family: var(--font-heading); font-weight: var(--fw-extrabold); color: var(--color-black); font-size: 22px; line-height: 1; }
.price-card__total-yen small { font-family: var(--font-body); font-weight: 400; font-size: 16px; }
.price-card__grad {
  font-size: 32px;
  background: linear-gradient(101deg, #f73bb2 25%, #8b70f8 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.price-table-wrap { width: 100%; max-width: 800px; padding-inline: var(--inner-pad-sp); display: flex; flex-direction: column; gap: 16px; align-items: center; }
.price-table__lead { font-size: 16px; color: var(--color-black); text-align: center; }
.price-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--color-gold); border-left: 1px solid var(--color-gold); }
.price-table th, .price-table td {
  border-right: 1px solid var(--color-gold); border-bottom: 1px solid var(--color-gold);
  height: 56px; padding: 8px; font-size: 16px; line-height: 24px; vertical-align: middle;
}
.price-table th { background: var(--color-gray); color: var(--color-gold); font-family: var(--font-heading); font-weight: var(--fw-extrabold); text-align: center; }
.price-table td { background: var(--color-white); color: var(--color-black); text-align: left; }
.price-table__fee { width: 120px; text-align: center !important; }
.price-notes { width: 100%; }
.price-notes li { font-size: 16px; line-height: 24px; color: var(--color-black); }
.price-notes__strong { font-weight: 700; }
.product__lead-catch { font-family: var(--font-heading); font-size: 22px; }
.product__lead-br { display: inline; }
.cta-band__photo-note {
  align-self: flex-end; margin: -8px 0 0; padding-right: 4px;
  font-family: var(--font-body); font-weight: 400; font-size: 12px; color: var(--color-gold); text-align: right;
}
.price-notes--left li { text-align: left; }
.pay-card { padding: 64px 24px; }
.pay-card__head { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pay-card__lead { font-size: 18px; line-height: 26px; color: var(--color-black); text-align: center; }
.pay__methods {
  width: 100%; background: var(--color-gray);
  display: flex; align-items: flex-end; justify-content: center; gap: 24px; padding: 24px;
}
.pay__method {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 8px; min-width: 0; text-align: center;
}
.pay__method--card  { flex: 0 1 176px; }
.pay__method--phone { flex: 0 1 109px; }
.pay__method--card  > .pay__figure { width: 79.77%; margin-top: 26.51%; }
.pay__method--phone > .pay__figure { width: 63.70%; margin-top: 20.37%; }
.pay__method > figcaption { width: 100%; }
.pay__method--card  > figcaption { margin-left: -10.115%; }
.pay__method--phone > figcaption { margin-left: -18.15%; }
.pay__figure { position: relative; }
.pay__icon { display: block; width: 100%; height: auto; }
.pay__badge { position: absolute; height: auto; pointer-events: none; }
.pay__method--card  .pay__badge { width: 44.90%; right: -25.66%; top: -50.89%; }
.pay__method--phone .pay__badge { width: 89.53%; right: -57.56%; top: -19.16%; }
.pay__method figcaption { font-size: 16px; color: var(--color-black); }
.pay__cards { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; }
.pay__cards-lead { font-family: var(--font-heading); font-weight: var(--fw-extrabold); font-size: 16px; color: var(--color-black); }
.pay__cards-img { display: block; height: 45px; width: auto; max-width: 100%; }
.price__petal { position: absolute; z-index: 1; height: auto; pointer-events: none; opacity: .85; }
.price__petal--1 { width: 94px; left: 34px;  top: -40px; transform: rotate(-161deg); filter: blur(2.9px); }
.price__petal--2 { width: 74px; left: -9px;  top: 74px;  transform: rotate(12deg);   filter: blur(1px); }
.price__petal--3 { width: 30px; left: 210px; top: -20px; transform: rotate(-115deg); filter: blur(1px); }
@media (max-width: 767px) {
  .price__petal--1 { content: url("../../images/price-petal-1-sp.png"); left: 80px;  top: 21px;  width: 120px; transform: translate(-50%, -50%); filter: none; opacity: 1; z-index: 20; }
  .price__petal--2 { content: url("../../images/price-petal-2-sp.png"); left: 35px;  top: 120px; width: 80px;  transform: translate(-50%, -50%); filter: none; opacity: 1; }
  .price__petal--3 { content: url("../../images/price-petal-3-sp.png"); left: 215px; top: 1px;   width: 45px;  transform: translate(-50%, -50%); filter: none; opacity: 1; z-index: 20; }
  #price { overflow: clip visible; }
  #area { overflow: clip visible; }
  .area__petal--1 { z-index: 20; }
  #flow, #price, #faq { padding-top: 128px; }
  #price, #faq { padding-bottom: 128px; }
}
@media (min-width: 768px) {
  .price__petal { display: none; }
}
.note {
  padding: 24px var(--inner-pad-sp) 64px;
  background: var(--color-gray);
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.note__title {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  color: var(--color-gold); font-size: var(--fs-sp-h2);
}
.note__flourish { flex: none; width: 56px; height: auto; }
.note__flourish--l { transform: scaleY(1); }
.note__flourish--r { transform: scaleX(-1); }

.note__body { width: 100%; max-width: 1024px; display: flex; flex-direction: column; gap: 24px; }
.note__group { display: flex; flex-direction: column; gap: 8px; }
.note__head {
  width: 100%;
  background: var(--color-gold); color: var(--color-white);
  padding: 8px;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  font-size: var(--fs-sp-p); line-height: 24px;
}
.note__text { font-size: var(--fs-sp-p); line-height: 24px; color: var(--color-black); }

@media (min-width: 768px) {
  .note { padding: 24px 64px 64px; }
  .note__title { font-size: var(--fs-h1); }
  .note__head { font-size: var(--fs-p); line-height: 26px; }
  .note__text { font-size: var(--fs-p); line-height: 26px; }
}
.contact {
  padding: 64px var(--inner-pad-sp) 12px;
  background: var(--color-gray);
  display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.contact__title {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-heading); font-weight: var(--fw-extrabold);
  color: var(--color-gold); font-size: 19px; text-align: center;
}
.contact__flourish { flex: none; width: 56px; height: auto; }
.contact__flourish--l { transform: scaleY(1); }
.contact__flourish--r { transform: scaleX(-1); }
.contact__body { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.contact__btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 24px;
  border: 1px solid var(--color-black); border-radius: 100px;
  font-size: 13px; line-height: 18px; color: var(--color-black);
}
.contact__btn:hover { background: var(--color-black); color: var(--color-white); }
.contact__info { font-size: 16px; line-height: 24px; color: var(--color-black); text-align: left; }
.contact__info p { white-space: nowrap; }
.contact__note { font-size: 13px; line-height: 18px; color: var(--color-black); text-align: center; }
.contact__legal { align-self: flex-end; margin-top: 16px; display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.contact__legal-box {
  display: block; padding: 4px 14px;
  border: 1px solid var(--color-gold); color: var(--color-gold);
  font-family: var(--font-body); font-size: 13px; line-height: 1.4; white-space: nowrap; text-align: center;
}

@media (min-width: 768px) {
  .contact { padding: 24px 64px 10px; }
  .contact__title { font-size: 28px; }
  .contact__info { font-size: 18px; line-height: 26px; }
}
@media (min-width: 768px) {
  .hero { --hdr-h: 64px; }
  .news { padding: 24px 64px; }
  .news__heading-inner { width: 256px; }
  .news__heading-text { font-size: 18px; }
  .news__list { max-width: 800px; }
  .news__source { max-width: 800px; }
  .news__more { max-width: 800px; }
  .news__date { font-size: 16px; }
  .hero__info { margin: 40px auto 0; }
  .hero__info.card-ornate { max-width: 1024px; margin-inline: auto; padding: 48px 24px 64px; gap: 56px; }
  .hero__info-corner { width: 48px; }
  .info-block__title { font-size: 28px; margin-bottom: 18px; }
  .info-block__title-en { display: none; }
  .info-block__date2 { display: inline; }
  .info-block--sale .info-block__main { font-size: 28px; }
  .info-block__note { font-size: 18px; text-align: center; }
  .has-crystal-head { padding-top: 143px; }
  .crystal-band { height: 166px; }
  .product__petal--big   { width: 165px; right: 90px; top: 40px; }
  .product__petal--small { width: 84px;  right: 20px; top: -35px; }
  .deco-label { width: 300px; margin: 31px auto 20px; }
  .deco-label__text { font-size: 16px; }
  .char-cards { flex-direction: row; align-items: stretch; justify-content: center; gap: 45px; max-width: 1024px; }
  .char-card { flex: 1; max-width: 475px; padding: 24px 48px 95px; }
  .char-card__name { font-size: 28px; }
  .char-card__desc { font-size: 18px; }
  .char-cards__crystal { top: 55%; left: 45%; width: 120%; }
  .char-card--salome .char-card__gem--1 { width: 42cqw; left: -29cqw; top: 34cqw; }
  .char-card--salome .char-card__gem--2 { width: 32cqw; left: -20cqw; top: 83cqw; }
  .char-card--salome .char-card__gem--3 { width: 26cqw; right: -7cqw; bottom: 19cqw; }
  .char-card--sophia .char-card__gem--1 { width: 41cqw; right: -28cqw; top: 11cqw; }
  .char-card--sophia .char-card__gem--2 { width: 45cqw; right: 10cqw; bottom: -25cqw; }
  .char-card--sophia .char-card__gem--3 { width: 24cqw; left: -12cqw; top: 60cqw; }
  .denpo-about__body { flex-direction: row; align-items: center; gap: 32px; padding: 48px 24px; }
  .denpo-about__figure { width: 264px; }
  .denpo-about__title { font-size: var(--fs-h2); margin-top: 24px; }
  .denpo-about__text p { font-size: var(--fs-p); line-height: 1.45; }
  .denpo-about__text > p:first-child { font-size: var(--fs-h3); }
  .stream__petal--a { left: 157px; }
  .stream__petal--b { left: 75px; }
  .stream-card { width: min(888px, 100%); }
  .stream-card__crystal { width: 125%; }
  .stream-card__shadow { filter: drop-shadow(0 4px 10px rgba(0,0,0,0.12)); }
  .stream-card__inner { --ch: 14px; border-width: 20px; padding: 24px; }
  .stream-card__corner { width: 48px; height: 48px; }
  .stream-card__thumb { border-width: 1.98px; }
  .stream-card__play { width: 80px; }
  .stream-emph { padding: 12px 32px; }
  .stream-emph__label { font-size: 16px; }
  .stream-emph__main { font-size: 24px; }
  .stream-hashtag__text { font-size: 28px; }
  .product { max-width: 1280px; margin: 64px auto 20px; container-type: inline-size; aspect-ratio: 1280 / 880; overflow: visible clip; }
  .product__card {
    position: absolute; inset: auto; left: 0; top: 14.55%; width: 100%; height: 70.9%;
    z-index: 2;
    filter: drop-shadow(0 0.31cqw 0.63cqw rgba(0, 0, 0, 0.14));
  }
  .product__card-face {
    border-width: 1.56cqw;
    clip-path: polygon(1.25cqw 0, calc(100% - 1.25cqw) 0, 100% 1.25cqw, 100% calc(100% - 1.25cqw), calc(100% - 1.25cqw) 100%, 1.25cqw 100%, 0 calc(100% - 1.25cqw), 0 1.25cqw);
  }
  .product__card-corners { inset: auto; left: 0; top: 14.55%; width: 100%; height: 70.9%; }
  .product__card-corner { width: 3.75cqw; height: 3.75cqw; }
  .product__card-corner--tl { top: 1.56cqw; left: 1.56cqw; }
  .product__card-corner--tr { top: 1.56cqw; right: 1.56cqw; }
  .product__card-corner--br { bottom: 1.56cqw; right: 1.56cqw; }
  .product__card-corner--bl { bottom: 1.56cqw; left: 1.56cqw; }
  .product__crystal--sp { display: none; }
  .product__crystal--r { display: block; z-index: 1; top: 3%; left: -8%; right: auto; bottom: auto; width: 95%; }
  .product__crystal--l { display: block; top: 3%; left: 12%; right: auto; bottom: auto; width: 77%; transform: rotate(4deg); }
  .product__names-ring { top: 3%; left: 17.7%; width: 64.6%; z-index: 1; }
  .product__figure--left  { top: 6.9%; left: -2.3%; right: auto; width: 32.5%; }
  .product__figure--right { top: 6.9%; left: auto; right: -6.9%; width: 34.9%; }
  .product__figure--left .product__fig-crystal { left: -11%; top: 11%; width: 110%; }
  .product__gem--sa { left: 82%; top: 0.5%; width: 40%; }
  .product__gem--sb { left: 67%; top: -7.6%; width: 18%; }
  .product__figure--right .product__fig-crystal { left: -5.5%; top: 9.7%; width: 92%; }
  .product__gem--pa { left: -20%; top: 72%; width: 25%; }
  .product__gem--pb { left: 6%; top: 89%; width: 15%; }
  .product__center {
    position: absolute; top: 16.82%; height: 66.36%; left: 50%; transform: translateX(-50%);
    width: fit-content; margin: 0; padding: 0 1.875cqw; gap: 1.875cqw;
    justify-content: center;
    background: var(--color-paper-gray);
    border-inline: 1px solid var(--color-gold);
  }
  .product__center::before { display: none; }
  .product__catch { font-size: 2.19cqw; line-height: 1.4; }
  .price-block { gap: 0.6cqw; }
  .price-label { width: 11.1cqw; height: 4.14cqw; }
  .price-label__text { font-size: 1.4cqw; }
  .price-amount__yen { font-size: 1.4cqw; }
  .price-amount__num { font-size: 2.19cqw; }
  .price-amount__tax { font-size: 1.02cqw; }
  .product__price-note { font-size: 1.02cqw; }
  .product__price-btn { font-size: 1.4cqw; padding: 0.7cqw 1.9cqw; gap: 0.78cqw; border-radius: 7.8cqw; }
  .product__price-btn-icon { width: 0.94cqw; }
  .product__video { padding: 24px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12); }
  .product__video-corner { width: 48px; height: 48px; }
  .product__video-corner--tl { top: 8px; left: 8px; }
  .product__video-corner--tr { top: 8px; right: 8px; }
  .product__video-corner--br { bottom: 8px; right: 8px; }
  .product__video-corner--bl { bottom: 8px; left: 8px; }
  .product__video .video-thumb__play { width: 64px; height: 64px; }
  .product__video .video-thumb__play::after { border-width: 12px 0 12px 20px; transform: translateX(2px); }
  .popup-detail { width: auto; max-width: 1570px; margin-left: auto; margin-right: auto; }
  .popup-detail__band {
    display: block; position: absolute; z-index: 0; pointer-events: none;
    left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 100vw; height: 44%;
    background: url("../../images/collab-crystal-band.png") center / cover no-repeat;
  }
  .delivery { padding: 0; }
  .delivery__head-ja { font-size: 36px; }
  .delivery__flow {
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    column-gap: 16px;
    max-width: 1280px;
    margin: 0 auto;
  }
  .delivery__item { flex: 1 1 0; max-width: 362px; gap: 16px; }
  .delivery__item--full { flex-basis: 0; }
  .delivery__cap { align-items: center; }
  .delivery__item:not(.delivery__item--full) .delivery__cap { min-height: 0; }
  .delivery__cap span { font-size: 18px; line-height: 26px; }
  .delivery__cap-icon { width: 31px; height: 31px; }
  .delivery__sep { margin-bottom: 42px; }
  .delivery__sep--plus { width: 32px; height: 48px; }
  .delivery__sep--arrow { flex-basis: auto; width: 45px; height: 23px; transform: none; margin: 0; }
  .delivery__petals { width: 100vw; }
  .delivery__petal--sm { left: 115px; top: -75px; width: 109px; }
  .delivery__petal--lg { left: 82px;  top: 5px;   width: 180px; }
  .cta-band { margin: 0 auto; padding: 64px 0; }
  .cta-band__glow { top: 50%; width: min(100vw, 1912px); height: 460px; filter: none; }
  .cta-band__cardshadow { filter: drop-shadow(0 4px 20px rgba(0,0,0,0.12)); }
  .cta-band__card { --ch: 14px; gap: 18px; border-width: 20px; padding-bottom: 24px; }
  .cta-band__photo { height: 380px; }
  .cta-band__btn { width: 884px; max-width: 100%; height: 113px; padding: 24px; gap: 8px; background: linear-gradient(109.18deg, #f73bb2 25%, #8b70f8 75%); }
  .cta-band__play { width: 25px; height: 25px; }
  .cta-band__btn-text { font-size: 20px; line-height: normal; white-space: nowrap; }
  .cta-band__char { top: 7px; height: 333px; }
  .cta-band__char--l { left: 3px; }
  .cta-band__char--r { right: -14px; height: 335px; }
  .cta-band__note-1, .cta-band__note-2 { font-size: 18px; line-height: 26px; }
  .cta-band__petal--sm { right: -70px; bottom: 160px; width: 75px;  transform: translate(50%, 50%)  rotate(-109.5deg); }
  .cta-band__petal--lg { right: 16px;  bottom: 55px;  width: 145px; transform: translate(50%, 50%)  rotate(86.35deg); }
  .cta-band__gem--v6  { left: -17px;  bottom: 364px; top: auto;  width: 182px; transform: translate(-50%, 50%)  rotate(82.52deg); }
  .cta-band__gem--v8  { right: 13px;  top: 188px;    width: 210px; transform: translate(50%, -50%)  rotate(122.58deg); }
  .cta-band__gem--v9  { left: 71px;   bottom: 232px; top: auto;  width: 105px; transform: translate(-50%, 50%)  rotate(35.33deg); }
  .cta-band__gem--v10 { right: 73px;  bottom: 218px; top: auto;  width: 48px;  transform: translate(50%, 50%)  rotate(-78.24deg); }
  .cta-band__gem--v11 { right: -61px; top: 280px;    width: 40px;  transform: translate(50%, -50%)  rotate(-78.24deg); }
  .price { padding: 128px 0; }
  .price-card { padding: 48px 0; }
  .price-card__title { font-size: 28px; gap: 16px; }
  .price-card__row { flex-direction: row; align-items: flex-start; justify-content: center; gap: 10px; width: auto; }
  .price-card__item { width: 315px; }
  .price-card__thumb { width: 315px; aspect-ratio: 315 / 231; }
  .price-card__circle { width: 180px; max-width: none; }
  .price-card__plus { align-self: flex-start; margin-top: 92px; }
  .price-card__yen { font-size: 18px; }
  .price-card__example { font-size: 18px; }
  .price-card__total-label { width: 192px; font-size: 18px; }
  .price-card__total-yen { font-size: 28px; }
  .price-card__total-yen small { font-size: 13px; }
  .price-card__grad { font-size: 36px; }
  .price-table-wrap { max-width: 764px; }
  .price-table__lead { font-size: 18px; }
  .price-table th, .price-table td { font-size: 18px; line-height: 26px; text-align: center; }
  .price-table td { text-align: center; }
  .price-table__fee { width: 50%; }
  .price-notes li { font-size: 18px; line-height: 26px; }
  .product__lead-catch { font-size: 28px; font-weight: 700; }
  .product__lead-br { display: none; }
  .pay-card { padding: 64px; }
  .pay-card__lead { font-size: 18px; }
  .pay__methods { gap: 64px; padding: 24px 64px; }
  .pay__method--card  { flex: 0 1 255px; }
  .pay__method--phone { flex: 0 1 158px; }
  .pay__method figcaption { font-size: 18px; }
  .pay__cards { align-items: center; }
  .pay__cards-lead { font-size: 18px; text-align: center; }
  .pay__cards-img { height: 49px; }
  .price-notes--left li { font-size: 18px; }
  .collab { padding: 72px 0 88px; }
  .collab__band { height: 38cqw; opacity: 1; }
  .collab__inner { padding-inline: 24px; }
  .collab__cap { gap: 8px; margin-top: 10px; font-family: var(--font-heading); font-weight: 800; font-size: 20px; flex-wrap: nowrap; }
  .collab__cap-star { width: 31px; height: 31px; }
  .collab__cap-line { width: 64px; }
  .collab__cap-note { width: auto; margin-left: 8px; padding-left: 0; }
  .collab__seal { width: 24.1cqw; left: 97.4cqw; top: 61.15cqw; }
  .collab__gem { display: block; position: absolute; height: auto; z-index: 2; pointer-events: none; }
  .collab__gem--1 { width: 24.3cqw;  left: -0.2cqw;  top: 10.3cqw;  transform: translate(-50%,-50%) rotate(163.69deg); }
  .collab__gem--2 { width: 23.95cqw; left: 102.7cqw; top: 32.34cqw; transform: translate(-50%,-50%) rotate(35.24deg); }
  .collab__gem--3 { width: 12.7cqw;  left: -6.7cqw;  top: 27.16cqw; transform: translate(-50%,-50%) rotate(85.13deg); }
  .collab__petal--lb-small { width: 4.44cqw;  left: -35.3cqw; top: 62.8cqw;  transform: translate(-50%,-50%) rotate(140.92deg); }
  .collab__petal--lb-big   { width: 9.84cqw;  left: -23.9cqw; top: 69.4cqw;  transform: translate(-50%,-50%) rotate(-117.7deg); }
  .collab__petal--rt-big   { width: 14.41cqw; left: 131.9cqw; top: 3.1cqw;   transform: translate(-50%,-50%) rotate(79.11deg); }
  .collab__petal--rt-small { width: 5.4cqw;   left: 107cqw;   top: 11.55cqw; transform: translate(-50%,-50%) rotate(-24.67deg); }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .cta-band__btn { width: min(884px, 100% - 96px); }
  .cta-band__gem--v9  { left: 34px;  bottom: 145px; width: 76px; }
  .cta-band__gem--v10 { right: 70px; bottom: 145px; width: 48px; }
}
@media (min-width: 768px) and (max-width: 949px) {
  .cta-band__btn-br   { display: inline; }
  .cta-band__btn-text { font-size: 18px; text-align: center; }
}
