/* ============================================================
   TOP JOY — About / Cloud stories page
   Trendy · dynamic · NOT boxy
   ============================================================ */

.about_page {
  width: 100%;
  overflow: hidden;
  background: #0e0e0c;
  font-family: inherit;
  position: relative;
}

/* floating decorative blobs */
.about_page .blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
  animation: blobFloat 14s ease-in-out infinite;
}
.about_page .blob.b1 { width: 4.2rem; height: 4.2rem; background: #763a21; top: 6%; left: -8%; }
.about_page .blob.b2 { width: 3.4rem; height: 3.4rem; background: #d98a3d; top: 38%; right: -6%; animation-delay: -4s; }
.about_page .blob.b3 { width: 2.8rem; height: 2.8rem; background: #763a21; bottom: 8%; left: 12%; animation-delay: -8s; }

@keyframes blobFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(0.4rem, -0.5rem) scale(1.08); }
}

/* ---------- Hero ---------- */
.about_hero {
  position: relative;
  padding: 1.6rem 0 1.2rem;
  z-index: 2;
}

.about_hero .center_box { position: relative; }

.about_hero .tag {
  display: inline-flex;
  font-size: 0.2rem;
  letter-spacing: 0.08rem;
  color: #fff;
  background: linear-gradient(120deg, #763a21, #d98a3d);
  padding: 0.1rem 0.26rem;
  border-radius: 0.4rem;
  font-weight: 700;
  transform: rotate(-2deg);
  text-transform: uppercase;
}

.about_hero .eyebrow {
  font-size: 0.22rem;
  letter-spacing: 0.18rem;
  color: #c9a98f;
  margin: 0.34rem 0 0.06rem;
  text-transform: uppercase;
  font-weight: 600;
  transform: skewX(-8deg);
}

.about_hero h1 {
  font-size: 1.04rem;
  line-height: 0.98;
  font-weight: 900;
  color: #fff;
  margin: 0;
  letter-spacing: -0.02rem;
  text-transform: uppercase;
}

.about_hero h1 .hl {
  color: transparent;
  -webkit-text-stroke: 2px #d98a3d;
  text-stroke: 2px #d98a3d;
  font-style: italic;
  display: inline-block;
  transform: rotate(-3deg);
}

.about_hero .lede {
  margin: 0.4rem 0 0;
  font-size: 0.26rem;
  line-height: 1.8;
  color: #cfc6bb;
  max-width: 9.2rem;
  border-left: 3px solid #d98a3d;
  padding-left: 0.3rem;
}

.about_hero .signature {
  display: inline-block;
  margin-top: 0.4rem;
  font-size: 0.3rem;
  font-weight: 800;
  color: #d98a3d;
  letter-spacing: 0.02rem;
  transform: rotate(-1.5deg);
  background: #fff;
  color: #0e0e0c;
  padding: 0.08rem 0.24rem;
  border-radius: 0.1rem 0.3rem 0.1rem 0.3rem;
}

/* ---------- Marquee (diagonal) ---------- */
.about_marquee {
  margin-top: 0.8rem;
  overflow: hidden;
  white-space: nowrap;
  background: #d98a3d;
  transform: rotate(-2deg) scale(1.04);
  box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.3);
  z-index: 3;
  position: relative;
}

.about_marquee .track {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.22rem 0;
  animation: aboutMarquee 18s linear infinite;
  will-change: transform;
}

.about_marquee .track span {
  font-size: 0.34rem;
  font-weight: 900;
  letter-spacing: 0.02rem;
  color: #0e0e0c;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}

.about_marquee .track span::after {
  content: "✦";
  color: #763a21;
  font-size: 0.28rem;
}

@keyframes aboutMarquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------- Story section ---------- */
.about_story { padding: 1.4rem 0 1rem; position: relative; z-index: 2; }

.about_story .grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 0.8rem;
  align-items: center;
}

.about_story .media {
  position: relative;
  border-radius: 0.4rem 0.1rem 0.4rem 0.1rem;
  overflow: hidden;
  transform: rotate(-1.5deg);
  box-shadow: 0 0.4rem 1.4rem rgba(0, 0, 0, 0.4);
  aspect-ratio: 4 / 3;
}

.about_story .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.9s cubic-bezier(.2,.8,.2,1);
}

.about_story .media:hover img { transform: scale(1.08) rotate(1deg); }

.about_story .media .badge {
  position: absolute;
  left: 0.3rem;
  top: 0.3rem;
  background: #d98a3d;
  color: #0e0e0c;
  font-size: 0.2rem;
  font-weight: 800;
  padding: 0.12rem 0.26rem;
  border-radius: 0.4rem;
  transform: rotate(3deg);
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.3);
}

.about_story .txt h2 {
  font-size: 0.66rem;
  line-height: 1.08;
  font-weight: 900;
  color: #fff;
  margin: 0 0 0.34rem;
  text-transform: uppercase;
}

.about_story .txt h2 .hl {
  color: #d98a3d;
  font-style: italic;
}

.about_story .txt p {
  font-size: 0.24rem;
  line-height: 1.8;
  color: #cfc6bb;
  margin: 0 0 0.22rem;
}

/* ---------- Quote band ---------- */
.about_quote {
  background: #763a21;
  color: #fff;
  padding: 1.3rem 0;
  transform: rotate(-1.5deg) scale(1.03);
  margin: 1rem 0;
  position: relative;
  z-index: 2;
  clip-path: polygon(0 3%, 100% 0, 100% 97%, 0 100%);
}

.about_quote .center_box { text-align: center; transform: rotate(1.5deg); }

.about_quote .big {
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.02rem;
  text-transform: uppercase;
}

.about_quote .big .hl {
  color: #0e0e0c;
  -webkit-text-stroke: 1.5px #fff;
  text-stroke: 1.5px #fff;
  font-style: italic;
}

.about_quote .small {
  margin: 0.34rem auto 0;
  font-size: 0.26rem;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.85);
  max-width: 9.4rem;
}

/* ---------- Feature rows ---------- */
.about_feature { padding: 0.6rem 0 1.4rem; position: relative; z-index: 2; }

.about_feature .row {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 0.8rem;
  align-items: center;
  margin-bottom: 1.4rem;
}

.about_feature .row.reverse { grid-template-columns: 1.08fr 0.92fr; }
.about_feature .row.reverse .media { order: 2; }

.about_feature .media {
  border-radius: 0.1rem 0.4rem 0.1rem 0.4rem;
  overflow: hidden;
  transform: rotate(1.5deg);
  box-shadow: 0 0.4rem 1.4rem rgba(0, 0, 0, 0.4);
  transition: transform 0.4s ease;
}

.about_feature .row.reverse .media { transform: rotate(-1.5deg); border-radius: 0.4rem 0.1rem 0.4rem 0.1rem; }

.about_feature .media img {
  width: 100%;
  height: 5.6rem;
  object-fit: cover;
  display: block;
  transition: transform 0.9s cubic-bezier(.2,.8,.2,1);
}

.about_feature .media:hover { transform: rotate(0deg) scale(1.02); }
.about_feature .media:hover img { transform: scale(1.08); }

.about_feature .txt .step {
  font-size: 0.22rem;
  font-weight: 800;
  letter-spacing: 0.08rem;
  color: #d98a3d;
  text-transform: uppercase;
  margin-bottom: 0.14rem;
  transform: skewX(-8deg);
}

.about_feature .txt h3 {
  font-size: 0.6rem;
  line-height: 1.06;
  font-weight: 900;
  color: #fff;
  margin: 0 0 0.3rem;
  text-transform: uppercase;
}

.about_feature .txt p {
  font-size: 0.24rem;
  line-height: 1.8;
  color: #cfc6bb;
  margin: 0 0 0.2rem;
}

.about_feature .txt p strong {
  color: #d98a3d;
  font-weight: 800;
}

/* ---------- Reveal ----------
   重要：不能用 GDCMS 自带的 .reveal 类！gasp_plug.js 里的 reveal() 会遍历所有
   .reveal 元素，把内部 HTML 标签全部删掉、文字拆成逐字 <span>，导致 .media 里的
   <img> 被清空、.txt 里的 <h3>/<p> 结构丢失（从而黑底黑字、图片消失）。
   这里改用自定义类 .aj-reveal，GDCMS 不会处理它。内容默认可见，不再隐藏。 ---------- */
.about_page .aj-reveal {
  opacity: 1;
  transform: none;
}

/* ---------- 覆盖 GDCMS 可视化模块注入到 .about_feature 的内联样式 ----------
   GDCMS 的 PC 模块会把固定宽高/黑字/旋转等内联样式写进 .about_feature，
   这会撑破布局并把文字变成黑色。这里强制还原为我们自己的样式。 ---------- */
.about_feature {
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  color: #cfc6bb !important;
  font-size: inherit !important;
  padding: 0.6rem 0 1.4rem !important;
  transform: none !important;
}
.about_feature .txt,
.about_feature .txt * { color: inherit; }
.about_feature .txt h3 { color: #fff !important; }
.about_feature .txt .step { color: #d98a3d !important; }
.about_feature .txt p { color: #cfc6bb !important; }
.about_feature .txt strong { color: #d98a3d !important; }
.about_feature .media { min-height: 0 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .about_hero h1 { font-size: 0.8rem; }
  .about_story .grid,
  .about_feature .row,
  .about_feature .row.reverse { grid-template-columns: 1fr; gap: 0.6rem; }
  .about_feature .row.reverse .media { order: 0; }
  .about_feature .media img { height: 4.4rem; }
  .about_quote .big { font-size: 0.56rem; }
}

@media (max-width: 600px) {
  .about_hero h1 { font-size: 0.62rem; }
  .about_hero .lede { font-size: 0.24rem; }
  .about_story .txt h2,
  .about_feature .txt h3 { font-size: 0.5rem; }
  .about_quote .big { font-size: 0.42rem; }
  .about_marquee .track span { font-size: 0.26rem; }
  .about_story .media,
  .about_feature .media,
  .about_feature .row.reverse .media { transform: none; }
}
