/* C3 分價量表 canvas overlay */
.pvd-canvas {
  position: absolute;
  top: 0;
  pointer-events: none;
  z-index: 3;
}

#dengSplash{
  position:fixed;inset:0;z-index:99999;background:#0e0f11;
  display:flex;align-items:center;justify-content:center;
  font-family:-apple-system,'Segoe UI',sans-serif;overflow:hidden;
}
#dengSplash.ds-exit{
  animation:dsExit .5s ease forwards;pointer-events:none;
}
#dengSplash.ds-gone{ display:none; }
@keyframes dsExit{to{opacity:0;transform:scale(1.04)}}

/* 背景曲線 */
#dsBg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* 曲線跑馬燈 */
.ds-ctick{position:absolute;left:0;right:0;pointer-events:none}
.ds-ctick-top{top:calc(50% - 180px)}
.ds-ctick-bot{bottom:calc(50% - 180px)}

/* 直線跑馬燈 */
.ds-ltick{position:absolute;left:0;right:0;overflow:hidden;display:flex;align-items:center}
.ds-ltick-top{top:44px;height:28px}
.ds-ltick-bot{bottom:44px;height:28px}
.ds-li{display:flex;align-items:center;white-space:nowrap;will-change:transform}
.ds-rtl{animation:dsRtl 44s linear infinite}
.ds-ltr{animation:dsLtr 50s linear infinite}
@keyframes dsRtl{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes dsLtr{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.ds-t{display:inline-flex;align-items:center;gap:5px;padding:0 15px;height:24px;font-size:11px;font-weight:500;color:rgba(255,255,255,.4);position:relative}
.ds-t::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:9px;background:rgba(255,255,255,.1)}
.ds-up{color:#ef5350}.ds-dn{color:#26a69a}.ds-ac{color:rgba(96,165,250,.8)}
.ds-mu{color:rgba(255,255,255,.22);font-size:10px}.ds-cd{font-weight:700;color:rgba(255,255,255,.62)}
.ds-fl{position:absolute;top:0;bottom:0;width:65px;z-index:1;pointer-events:none}
.ds-fll{left:0;background:linear-gradient(to right,#0e0f11,transparent)}
.ds-flr{right:0;background:linear-gradient(to left,#0e0f11,transparent)}

/* 中心區 */
#dsCenterWrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:10;margin-top:-40px}
#dsDotCanvas{display:block;width:320px;height:320px}
#dsBrand{
  font-family:'DM Mono','Courier New',monospace;
  font-size:22px;font-weight:400;letter-spacing:.06em;line-height:1;
  display:flex;gap:0;
}
.ds-deng1{
  color:transparent;
  background-image:linear-gradient(90deg,#ef5350 0%,#ff7043 20%,#ffb74d 40%,#ff7043 60%,#ef5350 80%,#ff7043 100%);
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;
  animation:dsMq 2.8s linear infinite;
}
.ds-deng2{
  color:transparent;
  background-image:linear-gradient(90deg,#90caf9 0%,#e3f2fd 20%,#ffffff 40%,#e3f2fd 60%,#90caf9 80%,#e3f2fd 100%);
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;
  animation:dsMq 2.8s linear infinite;animation-delay:-1.4s;
}
@keyframes dsMq{0%{background-position:100% center}100%{background-position:-200% center}}
#dsSub{font-size:11px;color:rgba(255,255,255,.18);letter-spacing:.12em;margin-top:-6px;font-family:monospace}

/* 說話泡泡 */
#dsBubble{
  position:absolute;top:-10px;right:-106px;
  background:rgba(28,31,36,.92);border:1px solid rgba(255,255,255,.1);
  border-radius:12px 12px 12px 2px;padding:7px 12px;
  font-size:11px;color:rgba(255,255,255,.62);white-space:nowrap;z-index:20;
  transition:opacity .3s ease,transform .3s ease;
}
#dsBubble::before{content:'';position:absolute;left:-5px;bottom:8px;width:8px;height:8px;background:rgba(28,31,36,.92);border-left:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);transform:rotate(45deg)}

/* CTA */
#dsCtaWrap{margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:8px}
#dsCtaBtn{
  padding:11px 38px;border-radius:100px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#ef5350,#c62828);color:#fff;
  font-size:13px;font-weight:700;letter-spacing:.06em;
  box-shadow:0 0 24px rgba(239,83,80,.35);transition:all .2s ease;position:relative;overflow:hidden;
}
#dsCtaBtn:hover{transform:translateY(-1px);box-shadow:0 0 36px rgba(239,83,80,.5)}
#dsCtaBtn:active{transform:translateY(0)}
#dsCtaBtn::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.12),transparent)}
#dsCtaHint{font-size:10px;color:rgba(255,255,255,.18);letter-spacing:.06em}
#dsDateline{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:10px;color:rgba(255,255,255,.12);letter-spacing:.12em}
