/*
 * /about/ の presentation。
 *
 * 共通の型・色・余白は bloom-tokens.css、シェルは bloom-shell.css、
 * 本文の器（.bloom-prose / .bloom-statement）は bloom-base.css が持つ。
 * ここはこのページ固有の並びだけ。
 */

@media (max-width: 430px) {
  .bloom-about-hero .bloom-display { font-size: clamp(2.125rem, 10.5vw, 3rem); }
}

.bloom-about-philosophy { background: var(--bloom-white); }
.bloom-about-profile { background: var(--bloom-ground-warm); }
.bloom-about-definition { background: var(--bloom-white); }
.bloom-about-how { overflow: hidden; background: var(--bloom-ground-warm); }
.bloom-about-outcome { background: var(--bloom-ground-tint); }

/* Mission / Core / Vision ---------------------------------------------------- */

.bloom-mv-eyebrow { margin: 56px 0 0; }
.bloom-subheading.bloom-mv-subheading { margin-top: 10px; }
.bloom-mv-subheading + .bloom-mv-grid { margin-top: 28px; }

.bloom-mv-grid {
  display: grid;
  gap: 28px;
  margin-top: 52px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bloom-mv-card {
  --accent: var(--bloom-pastel-blue);
  position: relative;
  padding: 38px 34px 34px;
  isolation: isolate;
}

.bloom-mv-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: 66% 40% 62% 48% / 54% 63% 44% 57%;
  background: color-mix(in srgb, var(--accent) 11%, transparent);
  transform: rotate(-4deg);
}

.bloom-mv-card.is-green { --accent: var(--bloom-pastel-green); }
.bloom-mv-card.is-purple { --accent: var(--bloom-pastel-purple); }

.bloom-mv-card small {
  display: block;
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}

.bloom-mv-card strong {
  display: block;
  margin: 20px 0 14px;
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 29px;
  font-weight: 400;
  line-height: 1.55;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.bloom-mv-card p {
  margin: 0;
  color: #5a757c;
  font-size: 13px;
  line-height: 1.85;
}

/* 向き合う力（参照 .v24p-motion：1本の道の上で、茎の高さが順に伸びる4つの花）------ */

.bloom-facing {
  overflow: hidden;
  background: var(--bloom-ground-tint);
}

.bloom-facing-wrap {
  position: relative;
  min-height: 420px;
  margin-top: 60px;
  padding: 30px 30px 40px;
}

.bloom-facing-path {
  position: absolute;
  top: 210px;
  right: 7%;
  left: 8%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(83, 184, 222, .35), rgba(114, 183, 142, .5));
  transform: rotate(-.6deg);
}

.bloom-facing-grid {
  position: relative;
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bloom-facing-move {
  --accent: var(--bloom-pastel-blue);
  position: relative;
  min-height: 330px;
  padding: 210px 14px 0;
  text-align: center;
  /*
   * 画面に入ると、4つが中心へ寄ってから元の位置に開く（js/bloom-converge.js）。
   * ずらし量は --cv-* で渡ってくるので、自分の変形の後ろに足す。
   * JSが動かなければ変数は未定義のままで、最初からこの位置。
   */
  transform: translate(var(--cv-x, 0), var(--cv-y, 0)) scale(var(--cv-s, 1));
  will-change: transform, opacity;
}

.bloom-facing-move.is-coral { --accent: var(--bloom-pastel-coral); }
.bloom-facing-move.is-yellow { --accent: var(--bloom-pastel-yellow); }
.bloom-facing-move.is-green { --accent: var(--bloom-pastel-green); }

.bloom-facing-move .stem {
  position: absolute;
  bottom: 118px;
  left: 50%;
  width: 3px;
  height: var(--stem, 90px);
  border-radius: 3px;
  background: color-mix(in srgb, var(--accent) 60%, #86b88c 40%);
  transform: translateX(-50%);
}

.bloom-facing-move .leaf {
  position: absolute;
  bottom: calc(118px + var(--stem, 90px) * .55);
  left: 50%;
  width: 90px;
  height: 35px;
  border-radius: 72% 45% 66% 52%;
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  transform: rotate(var(--leafrot, -12deg)) translateX(-10%);
}

.bloom-facing-move .bud {
  position: absolute;
  bottom: calc(112px + var(--stem, 90px));
  left: 50%;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  box-shadow: 0 0 0 15px color-mix(in srgb, var(--accent) 7%, transparent);
  transform: translateX(-50%);
}

/* 最後の花だけ、5色が重なった大きな花になる。 */
.bloom-facing-move:last-child .bud {
  width: 82px;
  height: 82px;
  background: conic-gradient(from -20deg,
    rgba(83, 184, 222, .22), rgba(242, 161, 132, .22), rgba(232, 203, 103, .22),
    rgba(114, 183, 142, .22), rgba(184, 155, 210, .22), rgba(83, 184, 222, .22));
  box-shadow: 0 0 0 20px rgba(126, 214, 204, .08);
}

.bloom-facing-move .num {
  position: absolute;
  top: 190px;
  left: 50%;
  color: var(--accent);
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  transform: translateX(-50%);
}

.bloom-facing-move b {
  display: block;
  color: var(--bloom-pine);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}

.bloom-facing-move small {
  display: block;
  margin-top: 6px;
  color: #5f7a80;
  font-size: 12px;
  line-height: 1.6;
}

.bloom-facing .bloom-statement {
  max-width: none;
  margin-top: 52px;
  text-align: center;
}

/* 人が先、手段は後 ------------------------------------------------------------ */

.bloom-about-principle { background: var(--bloom-white); }

.bloom-chiprow {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 36px 0 0;
}

.bloom-chip.is-static {
  padding: 9px 15px;
  border: 1px solid rgba(65, 102, 107, .18);
  border-radius: var(--bloom-radius-pill);
  background: rgba(255, 255, 255, .8);
  color: #41666b;
  font-size: 11px;
  font-weight: 500;
}

/* 5つの層 --------------------------------------------------------------------- */

.bloom-layer-list {
  display: grid;
  gap: 12px;
  margin: 52px 0 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bloom-layer {
  --accent: var(--bloom-pastel-blue);
  position: relative;
  padding: 26px 22px 24px;
  border-radius: var(--bloom-radius-card);
  background: rgba(255, 255, 255, .78);
  box-shadow: var(--bloom-shadow-shell);
}

.bloom-layer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 22px;
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--accent);
}

.bloom-layer.is-teal { --accent: var(--bloom-pastel-teal); }
.bloom-layer.is-purple { --accent: var(--bloom-pastel-purple); }
.bloom-layer.is-coral { --accent: var(--bloom-pastel-coral); }
.bloom-layer.is-green { --accent: var(--bloom-pastel-green); }

.bloom-layer b {
  display: block;
  margin-bottom: 9px;
  color: var(--bloom-ink-deep);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.bloom-layer span {
  color: #5a757c;
  font-size: 12px;
  line-height: 1.7;
}

/* ~900px ---------------------------------------------------------------------- */

@media (max-width: 900px) {
  .bloom-mv-grid,
  .bloom-facing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bloom-facing-path { display: none; }
  .bloom-layer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .bloom-mv-grid,
  .bloom-facing-grid,
  .bloom-layer-list { grid-template-columns: minmax(0, 1fr); }
  .bloom-facing-wrap { min-height: 0; padding: 0; }
  .bloom-facing-move { min-height: 250px; padding-top: 160px; }
  .bloom-facing-move .num { top: 145px; }
}

/* 会社の基本 ------------------------------------------------------------------ */

.bloom-profile-list {
  display: grid;
  gap: 0;
  margin: 48px 0 0;
  border-top: 1px solid var(--bloom-line);
}

.bloom-profile-list > div {
  display: grid;
  gap: 4px 40px;
  padding: 22px 4px;
  border-bottom: 1px solid var(--bloom-line);
  grid-template-columns: 160px minmax(0, 1fr);
}

.bloom-profile-list dt {
  color: var(--bloom-faint);
  font-size: var(--bloom-eyebrow);
  font-weight: 500;
  letter-spacing: var(--bloom-eyebrow-tracking);
}

.bloom-profile-list dd {
  margin: 0;
  color: var(--bloom-ink-deep);
  font-size: 16px;
  line-height: 1.8;
}

/* 一言でいうと（対比）--------------------------------------------------------- */

.bloom-contrast {
  display: grid;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  grid-template-columns: minmax(0, 1fr) 70px minmax(0, 1fr);
}

/* 参照は枠線のないカード。背後に薄い花びら形の色面を1枚ずつ敷く（青→桃）。 */
.bloom-contrast-side {
  position: relative;
  isolation: isolate;
  padding: 31px;
}

.bloom-contrast-side::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -8px -12px;
  border-radius: 68% 42% 66% 48% / 54% 62% 44% 58%;
  background: rgba(83, 184, 222, .07);
  transform: rotate(-1.5deg);
}

.bloom-contrast-side.is-after::before {
  background: rgba(242, 161, 132, .07);
  transform: rotate(1.5deg);
}

.bloom-contrast-side h3 {
  margin: 0 0 11px;
  color: var(--bloom-ink);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
}

.bloom-contrast-side p {
  margin: 0;
  color: #5a757c;
  font-size: 13px;
  line-height: 1.85;
}

.bloom-contrast-side.is-after b {
  display: block;
  color: var(--bloom-ink-deep);
  font-weight: 700;
}

.bloom-contrast-arrow {
  color: var(--bloom-teal);
  font-family: var(--bloom-font-hand);
  font-size: 38px;
  line-height: 1;
  text-align: center;
}

/* 次の導線（参照 節10 .v24-next）：2本のリンクだけ。背後に花びら形の色面。 */
.bloom-about-next {
  padding: 60px 0 90px;
  background: var(--bloom-white);
}

.bloom-about-next-inner {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr 1fr;
  width: min(1050px, 86vw);
  margin: 0 auto;
}

.bloom-about-next a {
  position: relative;
  isolation: isolate;
  padding: 28px 30px;
  color: var(--bloom-ink);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
}

.bloom-about-next a::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: 65% 42% 64% 47% / 56% 65% 42% 58%;
  background: rgba(85, 200, 191, .07);
}

.bloom-about-next a:last-child::before { background: rgba(173, 145, 213, .07); }

.bloom-subheading {
  margin: 64px 0 0;
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.5;
}

.bloom-subheading + .bloom-layer-list { margin-top: 26px; }

/* 2つの指標 ------------------------------------------------------------------- */

@media (max-width: 900px) {
  .bloom-profile-list > div { grid-template-columns: minmax(0, 1fr); }
  .bloom-contrast { grid-template-columns: minmax(0, 1fr); }
  .bloom-contrast-arrow { transform: rotate(90deg); justify-self: center; }
  .bloom-about-next-inner { grid-template-columns: minmax(0, 1fr); }
}

/* 会社の節：2列（実測 530px / 609px）、右に写真の器 -------------------------- */

.bloom-profile-grid {
  display: grid;
  align-items: center;
  gap: 42px 60px;
  grid-template-columns: minmax(360px, 530px) minmax(0, 1fr);
}

/* grid の子は既定で内容より小さくならない。列の幅を守らせる。 */
.bloom-profile-copy { min-width: 0; }

/* 写真が届くまでは本文だけの1カラム。 */
.bloom-profile-grid--copy-only { grid-template-columns: minmax(0, 720px); }

.bloom-profile-visual {
  position: relative;
  min-height: 560px;
}

/* 参照の器そのまま：大 62%×76% #edf7f5 -4deg、小 38%×31% #faf3ee +7deg。 */
.bloom-photo {
  position: absolute;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.bloom-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bloom-photo--main {
  top: 5%;
  left: 6%;
  width: 62%;
  height: 76%;
  border: 1px solid #d7e8e4;
  border-radius: 45% 45% 42% 48% / 38% 42% 50% 46%;
  background: #edf7f5;
  transform: rotate(-4deg);
}

.bloom-photo--mini {
  right: 2%;
  bottom: 5%;
  width: 38%;
  height: 31%;
  border: 1px solid #efe0d7;
  border-radius: 42% 50% 43% 48% / 48% 40% 55% 42%;
  background: #faf3ee;
  transform: rotate(7deg);
}

/* 写真の周りに散る花びら（参照 .ed-petal a/c/d）。 */
.bloom-photo-petal {
  position: absolute;
  border-radius: 70% 62% 72% 58%;
  pointer-events: none;
}

.bloom-photo-petal.is-a { bottom: 22%; left: -2%; width: 180px; height: 58px; background: rgba(120, 207, 196, .25); transform: rotate(18deg); }
.bloom-photo-petal.is-c { top: 2%; right: 10%; width: 160px; height: 48px; background: rgba(181, 154, 207, .21); transform: rotate(-20deg); }
.bloom-photo-petal.is-d { top: 24%; right: 2%; width: 120px; height: 38px; background: rgba(231, 201, 103, .22); transform: rotate(16deg); }

/* 5つの仕組みの図（参照のSVGそのまま）------------------------------------------ */

.bloom-facing-figure {
  position: relative;
  width: min(1120px, 100%);
  margin: 24px auto 0;
  overflow: visible;
}

.bloom-facing-figure svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

/* 820px を境に、広い図と狭い図を切り替える（参照と同じ）。 */
.bloom-facing-figure--mobile { display: none; }

.bloom-facing-figure--mobile figcaption {
  padding: 14px 4px 0;
  color: #5a757c;
  font-size: 13px;
  line-height: 1.8;
}

.bloom-facing-figure--mobile figcaption strong {
  display: block;
  margin-bottom: 4px;
  color: var(--bloom-ink-deep);
  font-weight: 600;
}

@media (max-width: 820px) {
  .bloom-facing-figure--desktop { display: none; }
  .bloom-facing-figure--mobile { display: block; margin-top: 28px; }
}

.bloom-facing-figure .bloom-fig-label { font-family: var(--bloom-font-body); fill: var(--bloom-ink-deep); }
.bloom-facing-figure .bloom-fig-sub   { font-family: var(--bloom-font-body); fill: #5a757c; }
.bloom-facing-figure .bloom-fig-title { font-family: var(--bloom-font-hand); fill: var(--bloom-ink-deep); }

.bloom-facing-figure .bloom-fig-system {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .28s ease, filter .28s ease;
}

.bloom-facing-figure .bloom-fig-system:hover {
  transform: translateY(-7px) scale(1.035);
  filter: drop-shadow(0 12px 20px rgba(23, 63, 69, .10));
}

/* 振り付け：画面に入る前は、中心の6枚は閉じ、線は引かれておらず、円は薄い。 */
.bloom-facing-figure .bloom-fig-central-petal {
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(.25);
  opacity: 0;
  transition: transform .95s cubic-bezier(.17, .9, .24, 1), opacity .65s ease;
}

.bloom-facing-figure .bloom-fig-central-petal:nth-of-type(2) { transition-delay: .06s; }
.bloom-facing-figure .bloom-fig-central-petal:nth-of-type(3) { transition-delay: .12s; }
.bloom-facing-figure .bloom-fig-central-petal:nth-of-type(4) { transition-delay: .18s; }
.bloom-facing-figure .bloom-fig-central-petal:nth-of-type(5) { transition-delay: .24s; }
.bloom-facing-figure .bloom-fig-central-petal:nth-of-type(6) { transition-delay: .30s; }

.bloom-facing-figure .bloom-fig-core-disc {
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(.82);
  opacity: .2;
  transition: transform .85s .28s cubic-bezier(.17, .9, .24, 1), opacity .7s .28s ease;
}

.bloom-facing-figure .bloom-fig-path {
  stroke-dasharray: 520;
  stroke-dashoffset: 520;
  transition: stroke-dashoffset 1.5s cubic-bezier(.2, .8, .2, 1);
}

.bloom-facing-figure.is-in .bloom-fig-central-petal { transform: scale(1); opacity: .19; }
.bloom-facing-figure.is-in .bloom-fig-core-disc { transform: scale(1); opacity: 1; }
.bloom-facing-figure.is-in .bloom-fig-path { stroke-dashoffset: 0; }

.bloom-facing-figure .bloom-fig-outcome {
  transform-box: fill-box;
  transform-origin: center;
  animation: bloom-fig-breathe 5.5s ease-in-out infinite alternate;
}

@keyframes bloom-fig-breathe {
  from { transform: scale(.97); }
  to   { transform: scale(1.035); }
}

/* 成功は、2つを一緒に見る（参照 .v35-outcome の構造そのまま）------------------ */

.bloom-outcome {
  position: relative;
  display: grid;
  align-items: center;
  gap: 24px;
  width: min(1160px, 94vw);
  min-height: 620px;
  margin: 58px auto 0;
  grid-template-columns: 1fr 190px 1fr;
}

.bloom-outcome-panel {
  --accent: var(--bloom-pastel-blue);
  position: relative;
  min-height: 455px;
  padding: 62px 54px 38px;
  border-radius: 58% 44% 64% 48% / 55% 66% 44% 58%;
  background: color-mix(in srgb, var(--accent) 10%, #fff);
  isolation: isolate;
  text-align: center;
}

.bloom-outcome-panel.is-productivity { transform: rotate(-1deg); }
.bloom-outcome-panel.is-growth { --accent: var(--bloom-pastel-green); transform: rotate(1deg); }

.bloom-outcome-panel h3 {
  margin: 0 0 12px;
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 31px;
  font-weight: 400;
  line-height: 1.35;
}

.bloom-outcome-panel > p {
  max-width: 380px;
  margin: 0;
  color: #5e797e;
  font-size: 12px;
  line-height: 1.75;
}

.bloom-outcome-graphic {
  position: relative;
  height: 250px;
  margin-top: 25px;
}

/* 集計・通知・記録 → AI/仕組み → 人の時間 */
.bloom-task {
  position: absolute;
  left: 5%;
  display: grid;
  width: 112px;
  height: 36px;
  place-items: center;
  border-radius: var(--bloom-radius-pill);
  background: #fff;
  box-shadow: 0 8px 22px rgba(23, 63, 69, .045);
  color: #668288;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

.bloom-task.t1 { top: 22px; }
.bloom-task.t2 { top: 92px; }
.bloom-task.t3 { top: 162px; }

.bloom-task::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 72px;
  height: 1px;
  background: linear-gradient(90deg, rgba(83, 184, 222, .45), transparent);
}

.bloom-ai-bloom {
  position: absolute;
  top: 101px;
  left: 52%;
  display: grid;
  width: 104px;
  height: 104px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 12px 30px rgba(23, 63, 69, .06);
  color: var(--bloom-ink-deep);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  transform: translate(-50%, -50%);
}

.bloom-ai-bloom::before,
.bloom-ai-bloom::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: 128px;
  height: 43px;
  margin: -21px 0 0 -64px;
  border-radius: 70% 48% 70% 48%;
  background: rgba(83, 184, 222, .13);
}

.bloom-ai-bloom::after {
  background: rgba(126, 214, 204, .15);
  transform: rotate(60deg);
}

.bloom-free-time {
  position: absolute;
  top: 62px;
  right: 1%;
  display: grid;
  width: 142px;
  height: 142px;
  place-items: center;
  border: 1px dashed rgba(114, 183, 142, .42);
  border-radius: 50%;
  background: rgba(255, 255, 255, .65);
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 21px;
  line-height: 1.3;
  text-align: center;
}

.bloom-free-time small {
  display: block;
  margin-top: 4px;
  color: #6c888c;
  font-family: var(--bloom-font-body);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
}

.bloom-free-time i {
  position: absolute;
  width: 38px;
  height: 14px;
  border-radius: 70% 48% 70% 48%;
  background: rgba(114, 183, 142, .2);
}

.bloom-free-time i:nth-of-type(1) { top: 28px; left: -18px; transform: rotate(-25deg); }
.bloom-free-time i:nth-of-type(2) { right: -12px; bottom: 23px; transform: rotate(30deg); }

/* 中心：人が咲く組織 */
.bloom-outcome-core {
  position: relative;
  z-index: 3;
  display: grid;
  width: 190px;
  height: 190px;
  margin: auto;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 15px 45px rgba(23, 63, 69, .08);
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 27px;
  line-height: 1.35;
  text-align: center;
}

.bloom-outcome-core::before {
  content: "";
  position: absolute;
  inset: -28px;
  border: 1px dashed rgba(126, 214, 204, .45);
  border-radius: 50%;
  animation: bloom-spin 24s linear infinite;
}

.bloom-outcome-core small {
  display: block;
  margin-top: 5px;
  color: #6c888c;
  font-family: var(--bloom-font-body);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
}

@keyframes bloom-spin { to { transform: rotate(360deg); } }

/* 成長の花 */
.bloom-growth-stem {
  position: absolute;
  bottom: 24px;
  left: 50%;
  width: 4px;
  height: 158px;
  border-radius: 4px;
  background: linear-gradient(#8dc9a3, #69ab83);
}

.bloom-growth-stem::before,
.bloom-growth-stem::after {
  content: "";
  position: absolute;
  top: 62px;
  width: 66px;
  height: 23px;
  border-radius: 70% 50% 70% 50%;
  background: rgba(114, 183, 142, .20);
}

.bloom-growth-stem::before { right: 0; transform: rotate(-28deg); transform-origin: right; }
.bloom-growth-stem::after { top: 95px; left: 0; transform: rotate(28deg); transform-origin: left; }

.bloom-growth-flower {
  position: absolute;
  top: 42px;
  left: 50%;
  width: 150px;
  height: 150px;
  transform: translateX(-50%);
  animation: bloom-flower-breathe 6s ease-in-out infinite;
}

.bloom-growth-flower i {
  --accent: var(--bloom-pastel-green);
  position: absolute;
  top: 50%;
  left: 50%;
  width: 92px;
  height: 36px;
  margin: -18px 0 0 -46px;
  border-radius: 72% 52% 72% 48%;
  background: color-mix(in srgb, var(--accent) 24%, transparent);
  transform-origin: center;
}

.bloom-growth-flower i:nth-of-type(1) { transform: rotate(0); }
.bloom-growth-flower i:nth-of-type(2) { --accent: var(--bloom-pastel-coral); transform: rotate(45deg); }
.bloom-growth-flower i:nth-of-type(3) { --accent: var(--bloom-pastel-yellow); transform: rotate(90deg); }
.bloom-growth-flower i:nth-of-type(4) { --accent: var(--bloom-pastel-purple); transform: rotate(135deg); }

.bloom-growth-flower::after {
  content: "成長";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--bloom-ink-deep);
  font-family: var(--bloom-font-hand);
  font-size: 20px;
  line-height: 1;
}

@keyframes bloom-flower-breathe {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50%      { transform: translateX(-50%) scale(1.04); }
}

.bloom-growth-labels {
  position: absolute;
  inset: 0;
  color: #678287;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
}

.bloom-growth-labels span {
  position: absolute;
  padding: 8px 12px;
  border-radius: var(--bloom-radius-pill);
  background: #fff;
}

.bloom-growth-labels span:nth-of-type(1) { bottom: 28px; left: 8%; }
.bloom-growth-labels span:nth-of-type(2) { right: 4%; bottom: 48px; }
.bloom-growth-labels span:nth-of-type(3) { top: 16px; right: 5%; }

.bloom-outcome-caption {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  color: #57777b;
  font-family: var(--bloom-font-hand);
  font-size: 17px;
  line-height: 1.65;
  text-align: center;
}

@media (max-width: 900px) {
  .bloom-profile-grid { grid-template-columns: minmax(0, 1fr); }
  .bloom-profile-visual { min-height: 420px; }

  .bloom-outcome {
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: min(92vw, 720px);
    min-height: 0;
  }
  .bloom-outcome-panel { width: 100%; min-height: 410px; padding: 48px 34px 30px; }
  .bloom-outcome-panel.is-productivity { order: 1; }
  .bloom-outcome-core { order: 2; width: 170px; height: 170px; flex: 0 0 170px; }
  .bloom-outcome-panel.is-growth { order: 3; }
  .bloom-outcome-caption { order: 4; margin-top: 18px; }
  .bloom-outcome-graphic { transform: scale(.88); transform-origin: center; }
}

@media (prefers-reduced-motion: reduce) {
  .bloom-facing-figure .bloom-fig-central-petal,
  .bloom-facing-figure .bloom-fig-core-disc,
  .bloom-facing-figure .bloom-fig-path { transition: none; transform: none; opacity: 1; stroke-dashoffset: 0; }
  .bloom-facing-figure .bloom-fig-central-petal { opacity: .19; }
  .bloom-facing-figure .bloom-fig-outcome,
  .bloom-outcome-core::before,
  .bloom-growth-flower { animation: none; }
}
