:root{
  --brand:#0a84ff; --brand-2:#5e5ce6;
}
body{font-feature-settings:"cv02","cv03","cv04","cv11";}
.header-glow{position:absolute; inset:0; pointer-events:none; filter:blur(40px);}
.header-grid{position:absolute; left:50%; top:0; width:1200px; height:100%; transform:translateX(-50%); background: radial-gradient(600px 200px at 50% -20%, rgba(10,132,255,.18), transparent 70%); pointer-events:none;}
.hero-section{ position:relative; overflow:hidden; background:
  radial-gradient(1000px 380px at 50% -10%, rgba(10,132,255,.10), transparent 70%),
  linear-gradient(180deg, rgba(10,132,255,.04), rgba(94,92,230,.03));
  background-color: var(--bs-tertiary-bg);
  border-bottom:1px solid rgba(0,0,0,.06);
}
/* hero sweep/glow */
.hero-fx{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.hero-sweep{ position:absolute; inset:-10% -30% 0 -30%; background:
  linear-gradient(110deg, rgba(255,255,255,0) 40%, rgba(10,132,255,.06) 50%, rgba(255,255,255,0) 60%);
  mix-blend-mode: screen; filter: blur(14px); animation: heroSweep 16s linear infinite; opacity:.9; }
.hero-glow{ position:absolute; left:50%; top:-14%; width:1000px; height:460px; transform:translateX(-50%); filter: blur(50px); opacity:.55; background:
  radial-gradient(closest-side, rgba(10,132,255,.16), transparent 70%),
  radial-gradient(closest-side, rgba(94,92,230,.10), transparent 75%);
}
@keyframes heroSweep{ 0%{ background-position: 120% 0;} 100%{ background-position: -80% 0; } }
/* Color follows Bootstrap on light hero; no forced overrides */
.hero-card{border-radius:20px; background:linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,.5)); border:1px solid rgba(0,0,0,.06); backdrop-filter: blur(8px);}
.product-hero-media{ position:relative; display:block; width:100%; max-width: 540px; height:300px; max-height:300px; overflow:hidden; margin-inline:auto; }
.product-hero-media::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); border-radius:inherit; }
.product-hero-media-img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .45s ease; }
.product-hero-media:hover .product-hero-media-img{ transform: scale(1.08); }
@media (max-width: 576px){
  .product-hero-media{ height:220px; }
}
.product-shot{ position:relative; display:block; width:100%; padding:0; border:0; background:none; border-radius:16px; overflow:hidden; cursor:zoom-in; box-shadow: 0 10px 26px rgba(10,132,255,.08); transition: box-shadow .22s ease, transform .22s ease; aspect-ratio: 16 / 10; }
.product-shot:hover, .product-shot:focus-visible{ box-shadow: 0 18px 46px rgba(10,132,255,.18); transform: translateY(-2px); }
.product-shot-img{ width:100%; height:100%; display:block; object-fit:cover; transition: transform .4s ease, filter .4s ease; }
.product-shot::before, .product-shot::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition: opacity .28s ease; }
.product-shot::before{ background: linear-gradient(180deg, rgba(10,132,255,.3), rgba(94,92,230,.28)); }
.product-shot::after{ content:"+"; display:flex; align-items:center; justify-content:center; font-size:3rem; color:#fff; text-shadow: 0 4px 18px rgba(10,12,24,.45); }
.product-shot:hover::before,
.product-shot:hover::after,
.product-shot:focus-visible::before,
.product-shot:focus-visible::after{ opacity:1; }
.product-shot:hover .product-shot-img,
.product-shot:focus-visible .product-shot-img{ transform: scale(1.06); filter: saturate(1.05); }
.product-shot:focus{ outline:none; }
.product-shot:focus-visible{ box-shadow: 0 0 0 3px rgba(10,132,255,.45), 0 22px 58px rgba(10,132,255,.2); }
@media (max-width: 768px){
  .product-shot{ aspect-ratio: 4 / 3; }
}
@media (max-width: 576px){
  .product-shot::after{ font-size:2.4rem; }
}
.feature-card{ position:relative; overflow:hidden; border:1px solid rgba(0,0,0,.06); box-shadow: 0 8px 24px rgba(0,0,0,.04); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease }
.feature-card::before{ content:""; position:absolute; top:-1px; bottom:-1px; left:-1px; width:4px; background: linear-gradient(180deg, rgba(10,132,255,.6), rgba(94,92,230,.6)); }
.feature-card:hover{ transform: translateY(-2px); box-shadow: 0 14px 36px rgba(10,132,255,.12); border-color: rgba(10,132,255,.24) }
.news-card{ position:relative; text-decoration:none; color:inherit; border:1px solid rgba(0,0,0,.06); overflow:hidden }
.news-card::before{ content:""; position:absolute; left:-1px; top:-1px; bottom:-1px; width:4px; background: linear-gradient(180deg, rgba(10,132,255,.6), rgba(94,92,230,.6)); }
.news-card:hover{ box-shadow: 0 12px 28px rgba(0,0,0,.08); border-color: rgba(10,132,255,.22) }
.cta-card{ border:1px dashed rgba(10,132,255,.3); background: linear-gradient(90deg, rgba(10,132,255,.04), rgba(94,92,230,.04)) }
.about-card,.contact-card{ border:1px solid rgba(0,0,0,.06); border-radius: 16px; }
.section-title{ font-weight:700; letter-spacing:.3px; }
.about-intro-text{ font-size: 1rem; line-height: 1.75; }
.about-office-slot{ min-height: 220px; border:1px dashed rgba(10,132,255,.25); border-radius:16px; background:
  linear-gradient(180deg, rgba(10,132,255,.05), rgba(94,92,230,.04));
  display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; color: var(--bs-secondary-color); }
.about-office-slot img{ width:100%; height:100%; object-fit:cover; border-radius:inherit; box-shadow: 0 10px 28px rgba(10,132,255,.16); }
@media (min-width: 992px){
  .about-office-slot{ min-height: 320px; }
}
.stat-card{ border:1px solid rgba(0,0,0,.06); }

/* Bootstrap Icons (via CSS classes) fallback spacing */
.bi{ width: 1.2em; height: 1.2em; }

/* 产品导航面板（悬停/点击展开） */
.nav-item.products{ position:relative; }
.nav-item.products > .nav-link{ position:relative; }
.nav-item.products .product-panel{
  position:absolute; left:50%; transform: translate(-50%, 8px);
  top: 100%; width: min(920px, 92vw);
  background: rgba(255,255,255,.92); backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,.06); z-index: 1000; display: none;
}
.nav-item.products::after{ content:""; position:absolute; left:0; right:0; top:100%; height:14px; }
.nav-item.products:hover .product-panel,
.nav-item.products:focus-within .product-panel,
.nav-item.products.open .product-panel{ display:block; }
.product-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.product-card{ border:1px solid rgba(0,0,0,.06); background: linear-gradient(180deg, rgba(255,255,255,.8), rgba(255,255,255,.65)); border-radius: 12px; padding:12px; min-height: 110px; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.product-card:hover{ transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.08); border-color: rgba(56, 8, 17, 0.58) }
.product-media{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; flex: 0 0 40px; }
.product-logo{ width:100%; height:100%; object-fit: contain; border-radius:8px; box-shadow: 0 0 0 4px rgba(10,132,255,.08)}
.product-icon{ font-size: 1.25rem; line-height: 1; }
.two-lines{ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bg-gradient-blue{ background: linear-gradient(180deg, #0A84FF, #5E5CE6); }
.bg-gradient-purple{ background: linear-gradient(180deg, #8E66FF, #5E5CE6); box-shadow: 0 0 0 6px rgba(94,92,230,.12)}
.bg-gradient-green{ background: linear-gradient(180deg, #34C759, #0BD18A); box-shadow: 0 0 0 6px rgba(11,209,138,.12)}

/* 渐变文本，用于产品图标着色 */
.text-grad-blue{ background: linear-gradient(180deg, #0A84FF, #5E5CE6); -webkit-background-clip:text; background-clip:text; color: transparent; }
.text-grad-purple{ background: linear-gradient(180deg, #8E66FF, #5E5CE6); -webkit-background-clip:text; background-clip:text; color: transparent; }
.text-grad-green{ background: linear-gradient(180deg, #34C759, #0BD18A); -webkit-background-clip:text; background-clip:text; color: transparent; }

@media (max-width: 991.98px){
  .nav-item.products .product-panel{ position: static; transform:none; width:100%; margin-top:0; display:block; }
  .product-grid{ grid-template-columns: repeat(2, 1fr); }
}

/* 人才卡片样式 */
.talent-card{ position:relative; border:1px solid rgba(0,0,0,.06); border-radius: 18px; background: linear-gradient(180deg, rgba(255,255,255,.76), rgba(255,255,255,.64)); box-shadow: 0 10px 26px rgba(0,0,0,.05)}
.talent-card::after{ content:""; position:absolute; inset:-1px; border-radius:18px; padding:1px; background:linear-gradient(120deg, rgba(10,132,255,.6), rgba(94,92,230,.6), rgba(52,199,89,.6)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity:.25}
.avatar{ width:96px; height:96px; border-radius:999px; box-shadow:0 0 0 8px rgba(10,132,255,.12); object-fit: cover; background-size: cover; background-position: center; background-repeat: no-repeat; overflow: hidden; }
.avatar-1{ background-image: url('https://assets-public.tos-cn-shanghai.volces.com/canfeng/common/picture/stuff/mingyuan.jpg'); box-shadow:0 0 0 6px rgba(94,92,230,.12)}
.avatar-2{ background-image: url('https://assets-public.tos-cn-shanghai.volces.com/canfeng/common/picture/stuff/zhitian.jpg'); box-shadow:0 0 0 6px rgba(94,92,230,.12)}
.avatar-3{ background-image: url('https://assets-public.tos-cn-shanghai.volces.com/canfeng/common/picture/stuff/EthanWalker.jpeg'); box-shadow:0 0 0 6px rgba(94,92,230,.12)}
.avatar-4{ background-image: url('https://assets-public.tos-cn-shanghai.volces.com/canfeng/common/picture/stuff/wangying.jpg'); box-shadow:0 0 0 6px rgba(94,92,230,.12)}

.chip{ display:inline-block; padding:.25rem .5rem; font-size:.8rem; border-radius:999px; background:rgba(10,132,255,.08); color:#0a84ff; border:1px solid rgba(10,132,255,.22) }

/* 产品体验模块 */
.mic-circle{ width:140px; height:140px; border-radius:50%; border:2px dashed rgba(10,132,255,.35); color:#0a84ff; background:linear-gradient(180deg, rgba(10,132,255,.06), rgba(94,92,230,.04)); display:flex; align-items:center; justify-content:center; }
.exp-output{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:.5rem; padding:.75rem 1rem; display:flex; flex-direction:column; gap:.75rem; height:280px; min-height:280px; }
.exp-output-main{ font-weight:500; color:var(--bs-body-color); flex:1 1 auto; overflow-y:auto; white-space:pre-wrap; word-break:break-word; padding-right:.5rem; padding-bottom:1rem; scroll-behavior:smooth; }
.exp-output-placeholder{ color:var(--bs-secondary-color); font-weight:400; }
.exp-output-line{ font-size:1rem; line-height:1.75; margin-bottom:.5rem; }
.exp-output-line:last-child{ margin-bottom:0; }
.exp-output-line.is-streaming{ opacity:.75; }
.exp-output-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; color: var(--bs-secondary-color); font-size:.9rem; min-height: 1.5rem; }
.exp-output-message{ color: inherit; }
.exp-output-main::-webkit-scrollbar{ width:6px; }
.exp-output-main::-webkit-scrollbar-thumb{ background-color:rgba(0,0,0,.2); border-radius:3px; }
.exp-output-main::-webkit-scrollbar-track{ background-color:rgba(0,0,0,.05); border-radius:3px; }

@media (max-width: 991.98px){
  .exp-output{ height:240px; min-height:240px; }
}
.exp-activity{ display:none; align-items:flex-end; gap:5px; padding-right:.25rem; }
.exp-activity-block{ padding-right:0; margin-inline:auto; }
.exp-activity-block.is-active{ display:flex; }
.exp-activity.is-active{ display:inline-flex; }
.exp-activity-bar{ width:5px; height:18px; border-radius:4px; background:linear-gradient(180deg, rgba(10,132,255,.85), rgba(94,92,230,.95)); box-shadow:0 4px 10px rgba(10,132,255,.35); animation: voice-bar-pulse 1.05s ease-in-out infinite; transform-origin:center bottom; opacity:.85; }
.exp-activity-bar:nth-child(2){ animation-delay: .12s; }
.exp-activity-bar:nth-child(3){ animation-delay: .24s; }
.exp-activity-bar:nth-child(4){ animation-delay: .36s; }
.exp-activity-bar:nth-child(5){ animation-delay: .48s; }
.exp-timer{ display:none; align-items:center; gap:.35rem; font-weight:600; color:#0a7aff; text-shadow:0 0 6px rgba(10,122,255,.18); }
.exp-timer::before{ content:"⏱"; font-size:1rem; display:inline-flex; opacity:.85; }
.exp-timer.is-active{ display:inline-flex; }

@media (min-width: 992px){
  #experience .exp-panel > .row{ min-height:388px; }
  #experience .exp-panel .card.h-100{ min-height:388px; }
}

@keyframes voice-bar-pulse {
  0%,100%{ transform: scaleY(.3); opacity:.45; }
  50%{ transform: scaleY(1); opacity:1; }
}

/* 合作伙伴 */
.partners-grid{ display:none; }

/* 走马灯样式（拼接图） */
.partners-belts{ display:grid; gap: 14px; }
.belt{ position:relative; height: var(--belt-h, 56px); border:1px solid rgba(0,0,0,.06); border-radius: 12px; background: #fff; overflow:hidden; }
.belt::before,.belt::after{ content:""; position:absolute; top:0; bottom:0; width:48px; z-index:1; pointer-events:none; }
.belt::before{ left:0; background: linear-gradient(90deg, rgba(255,255,255,1), rgba(255,255,255,0)); }
.belt::after{ right:0; background: linear-gradient(270deg, rgba(255,255,255,1), rgba(255,255,255,0)); }
.belt-track{ position:absolute; inset:0; display:flex; gap:0; align-items:center; animation: partners-scroll var(--speed, 40s) linear infinite; }
.belt-track img{ height: 100%; width: auto; flex: 0 0 auto; user-select:none; -webkit-user-drag: none; }
.belt-track:hover{ animation-play-state: paused; }

@keyframes partners-scroll { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }

/* 背景平铺滚动：更顺滑的无缝循环 */
.belt-bg{ background-image: var(--img); background-repeat: repeat-x; background-position: 0 50%; background-size: auto var(--belt-h, 56px); animation: partners-bg-scroll var(--speed, 40s) linear infinite; }
@keyframes partners-bg-scroll{ from{ background-position-x: 0; } to{ background-position-x: calc(-1 * var(--sprite-w, 3704px)); } }

/* Flex 轨道滚动：支持相邻图片固定水平间距（8px） */
.belt-flex{ position:relative; }
.belt-flex-track{ position:absolute; inset:0; display:flex; align-items:center; gap: 13px; animation: partners-flex var(--speed, 40s) linear infinite; }
.belt-flex-track img{ height: 100%; width: auto; flex: 0 0 auto; user-select:none; -webkit-user-drag: none; }
@keyframes partners-flex { from { transform: translateX(0); } to { transform: translateX(-50%); } }


/* Why us section */
.why-intro{ max-width: 980px; margin-inline:auto; }
.why-section{ position:relative; background: var(--bs-tertiary-bg); border-top:1px solid rgba(0,0,0,.06); border-bottom:1px solid rgba(0,0,0,.06); }
.why-section .why-text{ color: var(--bs-secondary-color); }
.why-section .why-card{ border:1px solid rgba(10,132,255,.12); border-radius:16px; padding:16px; background: linear-gradient(180deg, rgba(10,132,255,.045), rgba(94,92,230,.035)); box-shadow: 0 10px 26px rgba(10,132,255,.08); transition: all .2s ease; }
.why-section .why-card:hover{ border-color: rgba(10,132,255,.28); box-shadow: 0 16px 40px rgba(10,132,255,.16); transform: translateY(-2px); }
.why-section .why-card .why-desc{ color: inherit; }
.why-icon{ --why-icon-size: 1.6rem; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.75)); box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.why-icon .bi { display:flex; align-items:center; justify-content:center; width: var(--why-icon-size); height: var(--why-icon-size); font-size: var(--why-icon-size); line-height: 1; margin: 0; }
/* 个别图标（如闪电）的视觉中心偏上，轻微下移 1px 提升观感 */
.why-icon .bi-lightning-charge{ transform: translateY(1px); }

/* Dark alt (if needed elsewhere) */
.why-section-alt{ position:relative; background:
  radial-gradient(1200px 520px at 50% -10%, rgba(10,132,255,.10), transparent 70%),
  linear-gradient(180deg, #0b1020, #0b0e1a);
  border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(0,0,0,.4); color:#fff; }
.why-section-alt .why-text{ color: rgba(255,255,255,.86); }
.why-section-alt .why-card{ border:1px solid rgba(255,255,255,.12); background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04)); color:#fff; box-shadow: 0 10px 26px rgba(0,0,0,.45); }
.why-section-alt .why-card:hover{ border-color: rgba(10,132,255,.45); box-shadow: 0 16px 40px rgba(10,132,255,.24); }
.why-section-alt .why-card .why-desc{ color: rgba(255,255,255,.84); }
.why-section-alt .why-icon{ background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }

/* 柔和色块底，用于需要更活泼的版块 */
.section-tint{ background: linear-gradient(180deg, rgba(10,132,255,.035), rgba(94,92,230,.03)); }

body.shot-modal-open{ overflow:hidden; }
.product-shot-modal{ position:fixed; inset:0; padding:32px; display:flex; align-items:center; justify-content:center; background: rgba(8,14,32,.72); z-index:1100; opacity:0; pointer-events:none; transition: opacity .2s ease; }
.product-shot-modal.is-open{ opacity:1; pointer-events:auto; }
.product-shot-modal-dialog{ position:relative; width:min(1100px, 92vw); max-height: min(90vh, 780px); border-radius:20px; overflow:hidden; background: #0b1124; box-shadow: 0 28px 68px rgba(0,0,0,.55); display:flex; }
.product-shot-modal-img{ width:100%; height:100%; object-fit:contain; background:#000; }
.product-shot-modal-close{ position:absolute; top:12px; right:12px; width:40px; height:40px; border:none; border-radius:999px; background: rgba(0,0,0,.55); color:#fff; font-size:22px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition: background .2s ease, transform .2s ease; }
.product-shot-modal-close:hover{ background: rgba(10,132,255,.85); transform: scale(1.05); }
.product-shot-modal-close:focus{ outline:none; }
.product-shot-modal-close:focus-visible{ outline:2px solid rgba(255,255,255,.8); outline-offset:2px; }
@media (max-width: 768px){
  .product-shot-modal{ padding:16px; }
  .product-shot-modal-dialog{ border-radius:12px; }
  .product-shot-modal-close{ top:8px; right:8px; width:36px; height:36px; font-size:20px; }
}
