/* KEYAURA+ 移动端 - 设计稿宽度 750px，每屏 1333px，断点 768px
 * 和桌面端共用同一套 DOM 与脚本，这里只覆盖布局；
 * 移动稿独有的元素带 .ka-m-only，桌面独有的文字带 .ka-d-only。
 */

.ka-viewport .ka-m-only,
.ka-viewport .ka-m-br,
.ka-viewport .ka-flavor-pill-name {
  display: none;
}

@media (max-width: 768px) {
  .ka-viewport .ka-m-only { display: block; }
  .ka-viewport span.ka-m-only,
  .ka-viewport br.ka-m-br { display: inline; }
  .ka-viewport .ka-d-only { display: none; }
  .ka-canvas {
    width: 750px;
  }

  .ka-section {
    width: 750px;
    height: 1333px;
  }

  /* ===== 通用文案 ===== */
  .ka-label {
    color: #12785d;
    line-height: 47px;
  }

  .ka-text-group {
    gap: 5px;
  }

  .ka-body {
    line-height: 28px;
  }

  .ka-center-text {
    left: 16px;
    top: 100px;
    width: 718px;
    gap: 15px;
  }

  .ka-center-text .ka-text-group {
    width: 718px;
  }

  /* ===== 首页 ===== */
  .ka-hero-dtl,
  .ka-hero-badge {
    display: none;
  }

  .ka-hero-waves {
    -webkit-mask-image: url("../../images/products/keyaura/m/hero-wave-mask.webp");
    mask-image: url("../../images/products/keyaura/m/hero-wave-mask.webp");
  }

  .ka-hero-wave {
    width: 2000px;
    height: 2000px;
    margin: -1000px 0 0 -1000px;
  }

  /* 两层 DTL 叠加（滤色 50% + 80%），外层不能有 transform / opacity，否则滤色会被隔离 */
  .ka-hero-m-dtl {
    position: absolute;
    left: 39px;
    top: 569px;
    width: 672px;
    height: 599px;
    pointer-events: none;
  }

  .ka-hero-m-dtl img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    mix-blend-mode: screen;
    opacity: var(--ka-o);
    transform-origin: 50% 100%;
  }

  .ka-hero-m-dtl img:first-child { --ka-o: 0.5; }
  .ka-hero-m-dtl img:last-child  { --ka-o: 0.8; }

  .ka-hero-product {
    left: 110px;
    top: 446px;
    width: 530px;
    height: 786px;
  }

  .ka-hero-logo {
    left: 105px;
    top: 134px;
  }

  .ka-hero-tagline {
    left: 0;
    top: 239px;
    width: 750px;
    font-size: 28px;
    line-height: 28px;
    letter-spacing: -0.56px;
  }

  .ka-hero-m-65k {
    position: absolute;
    left: 275px;
    top: 303px;
    width: 200px;
    height: 192px;
    transform-origin: 50% 60%;
  }

  /* 入场：产品斜向滑入 → DTL 从产品背后往上弹出 → 65K 弹出、上方文字展开 */
  .ka-js .ka-hero-product {
    transform: translate3d(-120px, 300px, 0);
  }

  .ka-js .ka-hero-m-dtl img,
  .ka-js .ka-hero-m-65k {
    opacity: 0;
  }

  .ka-js .ka-hero.is-entered .ka-hero-m-dtl img {
    opacity: var(--ka-o);
    animation: ka-hero-m-rise 1.15s 0.9s both;
  }

  .ka-js .ka-hero.is-entered .ka-hero-m-65k {
    opacity: 1;
    animation: ka-hero-m-pop 0.9s 1.7s both;
  }

  .ka-js .ka-hero.is-ready .ka-hero-m-dtl img,
  .ka-js .ka-hero.is-ready .ka-hero-m-65k {
    animation: none;
  }

  .ka-hero-m-dtl img.is-lit,
  .ka-hero-m-65k.is-lit,
  .ka-js .ka-hero.is-ready .ka-hero-m-dtl img.is-lit,
  .ka-js .ka-hero.is-ready .ka-hero-m-65k.is-lit {
    animation: ka-hero-badge-lit 1s ease-out both;
  }

  /* ===== 功能：五张卡片 + 下一屏 360° ===== */
  .ka-features {
    height: 2666px;
  }

  .ka-grid {
    display: block;
    left: 40px;
    top: 82px;
    width: 670px;
    height: 1170px;
  }

  .ka-grid-col {
    display: contents;
  }

  .ka-card,
  .ka-card--tall {
    position: absolute;
    width: 330px;
    height: 300px;
  }

  .ka-card[data-card="clouds"]  { left: 0;     top: 0;   width: 670px; height: 270px; }
  .ka-card[data-card="dtl"]     { left: 0;     top: 280px; }
  .ka-card[data-card="mesh"]    { left: 340px; top: 280px; }
  .ka-card[data-card="puffs"]   { left: 0;     top: 590px; }
  .ka-card[data-card="battery"] { left: 340px; top: 590px; }
  .ka-card[data-card="airflow"] { left: 0;     top: 900px; width: 670px; height: 270px; }

  .ka-card-label,
  .ka-card--tall .ka-card-label {
    top: 259px;
  }

  .ka-card[data-card="clouds"] .ka-card-label,
  .ka-card[data-card="airflow"] .ka-card-label {
    top: 229px;
  }

  .ka-feat-air-scale {
    left: 220px;
    top: 0;
    width: 230px;
    height: 230px;
  }

  .ka-feat-air-product {
    left: 247.5px;
    top: 27.5px;
    width: 175px;
    height: 175px;
  }

  .ka-feat-air-mtl,
  .ka-feat-air-dtl {
    top: 98px;
    font-size: 34px;
  }

  .ka-feat-air-mtl { left: 86px; }
  .ka-feat-air-dtl { right: 86px; }

  /* 360° 在移动稿里单独一屏，接在功能卡片下面（.ka-grid 原点在 40, 82） */
  .ka-card-360 {
    position: absolute;
    left: -40px;
    top: 1251px;
    width: 750px;
    height: 1333px;
    border-radius: 0;
  }

  .ka-360-header {
    left: 166.5px;
    top: 126px;
  }

  .ka-360-title {
    font-size: 40px;
    line-height: 47px;
  }

  .ka-360-stage {
    top: 267px;
    width: 750px;
    height: 800px;
  }

  .ka-360-product {
    left: 264.5px;
    width: 221px;
    height: 800px;
  }

  .ka-360-controls {
    left: 155px;
    top: 1148px;
    gap: 0;
  }

  .ka-360-control {
    gap: 9px;
  }

  .ka-360-control:nth-child(1) { width: 126px; }
  .ka-360-control:nth-child(2) { width: 100px; margin-left: 61px; }
  .ka-360-control:nth-child(3) { width: 72px;  margin-left: 81px; }

  .ka-360-btn {
    width: 65px;
    height: 65px;
    border-radius: 50%;
  }

  .ka-360-btn-icon--h { width: 48px; height: 32px; }
  .ka-360-btn-icon--v { width: 37px; height: 44px; }
  .ka-360-btn-icon--r { width: 37px; height: 35px; }

  .ka-360-control-label {
    font-size: 26px;
    line-height: 31px;
  }

  /* ===== 视频：移动稿没有这一屏 ===== */
  .ka-video {
    display: none;
  }

  /* ===== DTL：移动稿的 DTL 字形和桌面视频不一致，用静态图，烟雾交给画布 ===== */
  .ka-dtl-text {
    left: 37px;
    top: 968px;
    width: 676px;
    gap: 17px;
  }

  .ka-dtl-text .ka-heading {
    width: 620px;
  }

  .ka-dtl-text .ka-body {
    text-transform: capitalize;
  }

  .ka-dtl-light {
    left: 129px;
    top: 768px;
    width: 142px;
    height: 123px;
  }

  .ka-dtl-hold {
    left: 560px;
    top: 650px;
    width: 150px;
    height: 150px;
    -webkit-touch-callout: none;
    user-select: none;
    -webkit-user-select: none;
  }

  .ka-dtl-hold-big {
    font-size: 30px;
  }

  .ka-dtl-hold-small {
    font-size: 13px;
  }

  /* ===== 大烟雾 ===== */
  .ka-clouds-head {
    left: 66px;
    top: 100px;
    width: 618px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
  }

  .ka-clouds-intro {
    display: contents;
  }

  .ka-clouds-head .ka-label,
  .ka-clouds-intro .ka-label {
    order: 0;
    height: 47px;
  }

  .ka-clouds-head .ka-heading {
    order: 1;
    width: 618px;
    margin-top: 5px;
  }

  .ka-clouds-head .ka-body {
    order: 2;
    margin-top: 15px;
    line-height: 28px;
  }

  .ka-clouds-media {
    left: 40px;
    top: 424px;
    width: 670px;
    height: 850px;
    border-radius: 30px;
  }

  /* 移动稿里这张图 1813×850、左移 475 */
  .ka-clouds-media video {
    object-position: 41.56% 50%;
  }

  /* ===== 双芯：手机视频铺满本屏 ===== */
  .ka-mesh-video {
    -webkit-mask-image: none;
    mask-image: none;
  }

  .ka-mesh-text {
    left: 16px;
    top: 100px;
    width: 718px;
    gap: 15px;
    align-items: center;
    text-align: center;
  }

  .ka-mesh-text .ka-text-group {
    width: 718px;
    align-items: center;
  }

  /* ===== 65K：竖放产品立在 65K 前面 ===== */
  .ka-puffs-65k {
    left: 40px;
    top: 678px;
    width: 670px;
    height: 350px;
  }

  /* 桌面的横向产品不显示，但保留盒子给 keyaura-puffs.js 判断进出屏 */
  .ka-puffs-stage {
    left: 260px;
    top: 444px;
    width: 230px;
    height: 820px;
    visibility: hidden;
  }

  .ka-js .ka-puffs.is-landed .ka-puffs-stage {
    animation: none;
  }

  .ka-puffs-m-product {
    position: absolute;
    z-index: 1;
    left: 260px;
    top: 444px;
    width: 230px;
    height: 820px;
    pointer-events: none;
  }

  .ka-js .ka-puffs-m-product {
    opacity: 0;
    transform: translate3d(0, 200px, 0);
    transition:
      opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
      transform 1.3s cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* 手机上 65K 先弹出，产品随后升起（桌面相反） */
  .ka-js .ka-puffs.is-in .ka-puffs-65k {
    opacity: 1;
    transform: none;
    animation: ka-65k-pop 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  }

  .ka-js .ka-puffs.is-in .ka-puffs-m-product {
    opacity: 1;
    transform: none;
    transition-delay: 0.6s;
  }

  .ka-js .ka-puffs.is-landed .ka-puffs-m-product {
    animation: ka-puffs-float 4.5s ease-in-out 0.8s infinite;
  }

  /* ===== 调气 ===== */
  .ka-airflow-text {
    left: 16px;
    width: 718px;
  }

  .ka-airflow-box {
    left: 40px;
    top: 457px;
    width: 670px;
    height: 810px;
    border-radius: 30px;
  }

  /* 刻度用 SVG，手机高分屏上放大也不糊；绕表盘中心转 */
  .ka-airflow-ticks {
    transform-origin: 335.5px 314.5px;
  }

  .ka-airflow-ticks-green { opacity: 0.42; }
  .ka-airflow-box[data-state="dtl"] .ka-airflow-ticks-orange { opacity: 0.6; }

  .ka-airflow-dial {
    left: 158px;
    top: 135px;
    width: 355px;
    height: 355px;
  }

  .ka-airflow-dial img {
    width: 355px;
    height: 355px;
  }

  .ka-viewport .ka-airflow-box .ka-airflow-tab {
    left: 185px;
    right: auto;
    width: 300px;
    height: 50px;
    padding: 0;
    justify-content: center;
    border-radius: 25px;
  }

  .ka-airflow-tab--mtl {
    top: 648px;
    background: #5cd98a;
  }

  .ka-airflow-tab--dtl {
    top: 720px;
  }

  .ka-airflow-tab span,
  .ka-airflow-tab--dtl span {
    width: auto;
    font-size: 36px;
    text-align: center;
  }

  /* ===== 配色：背景就是整屏，色板只留文字和色点 ===== */
  .ka-flavors-panel {
    left: 0;
    width: 750px;
    height: 1333px;
    background: transparent !important;
  }

  .ka-flavors-ripple {
    display: none;
  }

  .ka-flavors-title {
    left: 15px;
    top: 120px;
    width: 720px;
    height: 120px;
    align-items: center;
    text-align: center;
  }

  .ka-flavors-swatches {
    left: 122px;
    top: 1190px;
  }

  /* ===== 口味：圆形图标 3-2-3-2 排列，名字在下方 ===== */
  .ka-flavor-list-title {
    left: 15px;
    top: 120px;
    width: 720px;
    font-weight: 900;
    line-height: 60px;
  }

  .ka-flavor-list-more {
    top: 268px;
    padding: 0;
    line-height: 60px;
    text-transform: uppercase;
  }

  .ka-flavor-list-grid {
    display: block;
    left: 0;
    top: 0;
    width: 750px;
    height: 1333px;
  }

  .ka-flavor-list-row {
    display: contents;
  }

  .ka-flavor-pill {
    position: absolute;
    width: 120px;
    height: 120px;
  }

  .ka-flavor-list-row:nth-child(1) .ka-flavor-pill:nth-child(1) { left: 44px;    top: 381px; }
  .ka-flavor-list-row:nth-child(1) .ka-flavor-pill:nth-child(2) { left: 310px;   top: 381px; }
  .ka-flavor-list-row:nth-child(1) .ka-flavor-pill:nth-child(3) { left: 576px;   top: 381px; }
  .ka-flavor-list-row:nth-child(2) .ka-flavor-pill:nth-child(1) { left: 179.5px; top: 611px; }
  .ka-flavor-list-row:nth-child(2) .ka-flavor-pill:nth-child(2) { left: 445.5px; top: 611px; }
  .ka-flavor-list-row:nth-child(2) .ka-flavor-pill:nth-child(3) { left: 44px;    top: 841px; }
  .ka-flavor-list-row:nth-child(2) .ka-flavor-pill:nth-child(4) { left: 310px;   top: 841px; }
  .ka-flavor-list-row:nth-child(3) .ka-flavor-pill:nth-child(1) { left: 576px;   top: 841px; }
  .ka-flavor-list-row:nth-child(3) .ka-flavor-pill:nth-child(2) { left: 179.5px; top: 1071px; }
  .ka-flavor-list-row:nth-child(3) .ka-flavor-pill:nth-child(3) { left: 445.5px; top: 1071px; }

  .ka-viewport .ka-flavor-pill-name {
    display: block;
    position: absolute;
    left: -40px;
    top: 140px;
    width: 200px;
    font-size: 20px;
    font-weight: 400;
    line-height: 20px;
    color: #000;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
  }

  /* ===== 包装参数 ===== */
  .ka-parameters {
    background: #f0f0f0;
  }

  .ka-parameters-title {
    top: 100px;
    font-weight: 900;
    line-height: 60px;
  }

  .ka-parameters-box {
    left: 40px;
    top: 243px;
    width: 670px;
    height: 720px;
    border-radius: 30px;
  }

  /* 两行标签叠在同一块区域里重新排成 1-2-2，容器保留给 keyaura-reveal.js 观察 */
  .ka-tags {
    display: block;
    left: 40px;
    right: auto;
    top: 1017px;
    width: 670px;
    height: 195px;
  }

  .ka-tags--row2 {
    pointer-events: none;
  }

  .ka-tag {
    position: absolute;
    width: 320px;
    pointer-events: auto;
  }

  .ka-tags--row1 .ka-tag:nth-child(1) { left: 175px; top: 0; }
  .ka-tags--row1 .ka-tag:nth-child(2) { left: 0;     top: 75px; }
  .ka-tags--row1 .ka-tag:nth-child(3) { left: 0;     top: 150px; }
  .ka-tags--row2 .ka-tag:nth-child(1) { left: 350px; top: 75px; }
  .ka-tags--row2 .ka-tag:nth-child(2) { left: 350px; top: 150px; }
}

@keyframes ka-hero-m-rise {
  0%   { opacity: 0; transform: translate3d(0, 160px, 0) scale(0.82, 0.6); animation-timing-function: cubic-bezier(0.2, 0.9, 0.3, 1); }
  14%  { opacity: var(--ka-o); }
  52%  { transform: translate3d(0, -16px, 0) scale(1.03, 1.05); animation-timing-function: cubic-bezier(0.45, 0, 0.4, 1); }
  76%  { transform: translate3d(0, 5px, 0) scale(0.99, 0.99); }
  100% { opacity: var(--ka-o); transform: none; }
}

@keyframes ka-hero-m-pop {
  0%   { opacity: 0; transform: translate3d(0, 40px, 0) scale(0.5); }
  55%  { opacity: 1; transform: translate3d(0, -6px, 0) scale(1.08); }
  75%  { transform: translate3d(0, 2px, 0) scale(0.97); }
  100% { opacity: 1; transform: none; }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
  .ka-js .ka-hero-m-dtl img {
    opacity: var(--ka-o);
  }

  .ka-js .ka-hero.is-entered .ka-hero-m-dtl img,
  .ka-js .ka-hero.is-entered .ka-hero-m-65k,
  .ka-hero-m-dtl img.is-lit,
  .ka-hero-m-65k.is-lit,
  .ka-js .ka-puffs.is-in .ka-puffs-65k,
  .ka-js .ka-puffs.is-landed .ka-puffs-m-product {
    animation: none;
  }

  .ka-js .ka-puffs-m-product {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
