/* HeartBug presentation stylesheet 21 (extracted from inline <style>) */

    .p15-slide .inner{width:min(1400px,100%);height:100%;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(30px,4vw,72px);padding:1vh 0}
  .p15-right{display:flex;flex-direction:column;gap:clamp(14px,2.4vh,22px);min-width:0}
  .p15-left{min-width:0}
  /* 0729-2 批注：胶囊等宽（容器收缩至最宽胶囊，全部拉伸同宽）+ 加号居中 */
  .p15-pills{display:flex;flex-direction:column;align-items:stretch;gap:clamp(10px,1.6vh,16px);margin-top:clamp(16px,3.4vh,32px);width:fit-content}
  /* 0729 批注：左侧要点放大，与右侧三层卡视觉重量匹配（vw 弹性缩放，字体/色值全站统一） */
  .p15-pill{display:inline-flex;align-items:center;gap:12px;padding:clamp(9px,1.4vh,14px) clamp(24px,2vw,34px);border-radius:99px;
    border:1.3px solid var(--line-r);background:rgba(228,0,43,.04);
    font-size:clamp(.95rem,1.25vw,1.2rem);font-weight:800;letter-spacing:.05em;color:var(--ink)}
  .p15-pill i{width:6px;height:6px;border-radius:50%;background:var(--red);flex:none}
  .p15-plus{font-size:clamp(1.05rem,1.5vw,1.4rem);font-weight:800;color:var(--red);margin-left:0;align-self:center;line-height:.9}
  .p15-pill .pn{width:clamp(22px,1.8vw,27px);height:clamp(22px,1.8vw,27px);border-radius:50%;background:var(--red);color:#fff;font-size:clamp(11px,.9vw,13px);font-weight:800;display:grid;place-items:center;flex:none;font-style:normal}
  .p15-pill{cursor:pointer;transition:border-color .3s,box-shadow .3s,transform .3s var(--ease)}
  .p15-pill:hover,.p15-pill.hl{border-color:var(--red);box-shadow:0 8px 20px -10px rgba(228,0,43,.45);transform:translateY(-2px)}
  /* note 1: layer icons + progressive connector — layers are the hero of this page */
  .p15-slide .steps{display:flex;flex-direction:column;gap:clamp(14px,2.4vh,24px)}
  .p15-slide .layer{position:relative;display:flex;align-items:center;gap:clamp(16px,1.6vw,24px);
    border:1.5px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 14px 34px -26px rgba(20,17,20,.28);
    padding:clamp(14px,2.2vh,22px) clamp(20px,2.2vw,32px);cursor:pointer;
    transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .28s,background .32s,border-color .32s,box-shadow .38s cubic-bezier(.22,1,.36,1)}
  .p15-slide .layer h3{font-size:clamp(1.05rem,1.5vw,1.35rem);transition:color .35s}
  .p15-slide .layer p{transition:color .35s}
  .p15-slide .layer .ring{width:52px;height:52px;flex:none;border:1.5px solid var(--line-r);border-radius:50%;background:#fff;
    transition:background .35s,border-color .35s}
  /* 黑底仅作为聚光(auto)/悬停高亮态出现，不再常驻于某一张卡（0729 修复） */
  /* 卡片间红色下指小箭头（替代原环形流动连线） */
  .p15-link{display:none}
  .p15-slide .layer:not(:last-child)::after{content:"";position:absolute;z-index:2;
    left:calc(clamp(20px,2.2vw,32px) + 20px);bottom:calc(clamp(14px,2.4vh,24px) / -2 - 3px);
    width:8px;height:8px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg)}
  /* staggered entrance (keyframes — hover stays instant) */
  .p15-slide .layer{opacity:0}
  .p15-slide.is-active .layer{animation:p15Layer .95s var(--ease) forwards;animation-delay:var(--ld,.2s)}
  .p15-slide .steps .layer:nth-child(1){--ld:.25s}
  .p15-slide .steps .layer:nth-child(2){--ld:.6s}
  .p15-slide .steps .layer:nth-child(3){--ld:.95s}
  @keyframes p15Layer{from{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}
  /* auto spotlight (no click needed) — same visual as hover */
  .p15-slide.is-active .steps.auto-run .layer:not(.auto){opacity:.38;transform:scale(.955)}
  .p15-slide.is-active .layer.auto{transform:scale(1.045);background:var(--ink);border-color:var(--ink);
    box-shadow:0 24px 50px -20px rgba(20,17,20,.5)}
  .p15-slide.is-active .layer.auto h3{color:#fff}
  .p15-slide.is-active .layer.auto p{color:rgba(255,255,255,.6)!important}
  .p15-slide.is-active .layer.auto .ring{background:var(--red);border-color:var(--red)}
  .p15-slide.is-active .layer.auto .ring svg{stroke:#fff}
  /* hover: focused layer inverts + grows, siblings shrink and fade */
  .p15-slide .steps:hover .layer:not(:hover){opacity:.38;transform:scale(.955)}
  .p15-slide .layer:hover{transform:scale(1.045);background:var(--ink);border-color:var(--ink);
    box-shadow:0 24px 50px -20px rgba(20,17,20,.5)}
  .p15-slide .layer:hover h3{color:#fff}
  .p15-slide .layer:hover p{color:rgba(255,255,255,.6)!important}
  .p15-slide .layer:hover .ring{background:var(--red);border-color:var(--red)}
  .p15-slide .layer:hover .ring svg{stroke:#fff}
  @media (max-width:1490px) and (max-height:950px){
    .p15-right{
      scale:.98;
      translate:-2vw 0;
      transform-origin:center;
    }
  }
  @media (max-width:1490px) and (max-height:950px) and (min-width:901px){
    .p15-photo.p1,
    .p15-photo.p2{height:calc(clamp(120px,18.03vh,197px) + 3vh)}
  }
  /* short-viewport fit: all three layers stay visible */
  @media (max-height:840px){
    .p15-slide .steps{gap:clamp(8px,1.4vh,14px)}
    .p15-slide .layer{padding:clamp(10px,1.7vh,18px) clamp(20px,2.2vw,32px)}
    .p15-slide .layer .ring{width:46px;height:46px}
    .p15-slide .layer h3{font-size:clamp(.95rem,1.35vw,1.15rem)}
  }
  .p15-slide .ring{position:relative;display:grid;place-items:center}
  .p15-slide .ring svg{width:46%;height:46%;fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s}
  .p15-num{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;
    background:var(--red);color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;
    border:2px solid #fff;box-shadow:0 4px 10px rgba(228,0,43,.35)}
  .p15-slide .ring .p15-big{font-size:clamp(22px,2vw,27px);font-weight:800;color:var(--ink);transition:color .35s;line-height:1}
  .p15-slide.is-active .layer.auto .ring .p15-big,.p15-slide .layer:hover .ring .p15-big{color:#fff}
  .p15-link{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);height:clamp(12px,2vh,18px);width:2px;
    background:repeating-linear-gradient(180deg,var(--red) 0 4px,transparent 4px 8px)}
  .p15-link::before{content:"";position:absolute;left:50%;top:-2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;
    background:var(--red);animation:p15Flow 1.3s linear infinite}
  @keyframes p15Flow{0%{top:-2px;opacity:0}25%{opacity:1}100%{top:calc(100% - 1px);opacity:0}}
  .p15-link::after{content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);
    border:5px solid transparent;border-top:6px solid var(--red);animation:p15Bob 1.3s ease-in-out infinite}
  @keyframes p15Bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(3px)}}
  .p15-slide .ring .p15-link{left:50%}
  /* photos / videos — unified size, deliberately secondary to the layers */
  .p15-photos{display:flex;flex-direction:row;gap:clamp(14px,1.8vw,22px);width:100%;min-width:0}
  .p15-photo{position:relative;height:clamp(120px,18.03vh,197px);width:100%;border-radius:14px;overflow:hidden;flex:1;
    border:1.5px solid var(--line);box-shadow:0 18px 40px -26px rgba(20,17,20,.3);background:#0e0c0e}
  .p15-photo video,.p15-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  /* note 2: breaking-news banner lower third */
  /* 0729 批注：图片下方黑色说明条高度收缩为图片的 1/3 */
  .p15-lt{position:absolute;left:0;right:0;bottom:0;height:33.4%;display:flex;align-items:stretch;
    transform:translateY(102%);transition:transform .7s var(--ease)}
  .is-active .p15-lt{transform:none}
  .p15-photo.p2 .p15-lt{transition-delay:.12s}
  .p15-lt .badge{flex:0 0 21%;background:var(--red);display:grid;place-items:center}
  .p15-lt .badge svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .p15-lt .body{flex:1;padding:2px 12px;background:rgba(20,17,20,.92);display:flex;flex-direction:column;justify-content:center;gap:0}
  .p15-lt .who{font-size:clamp(10px,.95vw,12px);font-weight:800;letter-spacing:.03em;color:#fff;white-space:nowrap}
  .p15-lt .role{font-size:clamp(6.5px,.6vw,7.5px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55);line-height:1.4}
  .p15-lt .role b{color:#ff5c77;font-weight:800}
  .p15-lt .rec{align-self:center;margin:0 14px 0 auto;display:flex;align-items:center;gap:6px;
    font-size:8.5px;font-weight:800;letter-spacing:.2em;color:rgba(255,255,255,.6)}
  .p15-lt .rec i{width:7px;height:7px;border-radius:50%;background:var(--red);animation:p15Rec 1.3s infinite}
  @keyframes p15Rec{0%,100%{opacity:.3}50%{opacity:1}}
  /* 0731 缺肉修复：矮屏（如 1366×768）说明条文字压缩并微增照片高度，底部文字不再被裁 */
  @media (max-height:820px) and (min-width:901px){
    .p15-photo{height:clamp(131px,19.11vh,196px)}
    .p15-lt .who{font-size:10px}
    .p15-lt .role{font-size:6.5px;letter-spacing:.14em;line-height:1.3}
  }
  @media (max-width:900px){
    /* 0731 竖屏压缩：全部内容一屏放下，无需滚动 */
    .p15-slide .inner{grid-template-columns:1fr;overflow-y:auto;align-content:center}
    .p15-slide .steps{gap:10px}
    .p15-slide .layer{padding:10px 18px}
    .p15-slide .layer .ring{width:44px;height:44px}
    .p15-photo{height:clamp(97px,13.65vh,164px)}
    .p15-photos{width:100%;margin-top:10px}
  }
  
