.reveal{opacity:1!important;transform:none!important}.sol{overflow:hidden}.sol-img{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;border-radius:.8rem;margin-bottom:1.8rem;display:block}.dev-img{width:100%;height:12rem;object-fit:cover;border-radius:.6rem;margin-bottom:1.2rem;display:block}.section-banner{border-radius:1.4rem;overflow:hidden;margin:0 0 4rem;box-shadow:0 24px 70px #00334f24}.section-banner img{width:100%;height:auto;display:block}.cw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}.cw-card{border-radius:1.4rem;overflow:hidden;display:block;background:#fff;border:1px solid #e4ebf6;box-shadow:0 18px 50px #00334f1a;transition:transform .25s ease,box-shadow .25s ease}.cw-card:hover{transform:translateY(-5px);box-shadow:0 26px 60px #00e1ff2e;border-color:#00e1ff80}.cw-card img{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;display:block;transition:transform .4s ease}.cw-card:hover img{transform:scale(1.05)}.cw-body{padding:2.2rem 2.4rem 2.6rem}.cw-tag{font-family:var(--font-mono);font-size:1.1rem;color:var(--cyan-ink);letter-spacing:.1em}.cw-body h3{font-size:1.9rem;color:#0a2540;margin:.8rem 0 .4rem;font-weight:700}.cw-body p{color:#5b6b84;font-size:1.45rem}@media (max-width:900px){.cw-grid{grid-template-columns:1fr}}#blog-picks{background:#fff}#case-wall{background:#f6fafd}.bp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}.bp-card{display:block;overflow:hidden;border-radius:1.4rem;background:#fff;border:1px solid #e4ebf6;box-shadow:0 18px 50px #00334f1a;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.bp-card:hover{transform:translateY(-5px);box-shadow:0 26px 60px #00e1ff2e;border-color:#00e1ff80}.bp-card img{width:100%;height:16rem;object-fit:cover;display:block}.bp-body{padding:2rem 2.2rem 2.4rem}.bp-tag{font-family:var(--font-mono);font-size:1.1rem;color:var(--cyan-ink);letter-spacing:.1em}.bp-body h3{font-size:1.8rem;line-height:1.45;color:#0a2540;margin:.8rem 0 .5rem}@media (max-width:900px){.bp-grid{grid-template-columns:1fr}}.hs-console--dual{gap:1.2rem}.hs-console--dual .hs-head{flex-wrap:wrap;gap:1rem}.hs-offline-toggle{display:inline-flex;align-items:center;gap:.7rem;padding:.45rem .9rem .45rem 1rem;border-radius:99rem;background:#ffffff0f;border:.05rem solid rgba(255,255,255,.12);cursor:pointer;user-select:none;transition:border-color .2s,background .2s}.hs-offline-toggle:hover{border-color:#00e1ff52;background:#007f8714}.hs-offline-toggle input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.hs-offline-label{font-family:var(--font-mono);font-size:1rem;letter-spacing:.08em;color:#f5f6fae6;white-space:nowrap}.hs-switch{position:relative;width:3.2rem;height:1.8rem;border-radius:99rem;background:#ffffff38;transition:background .2s ease,box-shadow .2s ease;flex:none;display:inline-block;vertical-align:middle}.hs-switch i{position:absolute;top:.2rem;left:.2rem;width:1.4rem;height:1.4rem;border-radius:50%;background:#fff;transition:transform .22s cubic-bezier(.22,.61,.36,1);box-shadow:0 1px 4px #00000047;display:block}.hs-offline-toggle:has(input:checked) .hs-switch{background:#00e1ff;box-shadow:0 0 10px #00e1ff73}.hs-offline-toggle:has(input:checked) .hs-switch i{transform:translate(1.4rem)}.hs-offline-state{font-family:var(--font-mono);font-size:1rem;font-weight:600;letter-spacing:.06em;min-width:4.2rem;text-align:center;padding:.2rem .5rem;border-radius:99rem;background:#ffffff14;color:#f5f6fab8;white-space:nowrap}.hs-offline-toggle:has(input:checked) .hs-offline-state{background:#00e1ff29;color:#00e1ff;border:.05rem solid rgba(0,225,255,.28)}.hs-dual{display:flex;flex-direction:column;gap:.9rem}.hs-legend{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;font-family:var(--font-mono);font-size:1rem;letter-spacing:.06em;color:#f5f6fab8}.hs-legend span{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.hs-leg-dot{width:.8rem;height:.8rem;border-radius:50%;flex:none;display:inline-block;box-shadow:0 0 6px currentColor}.hs-leg-edge .hs-leg-dot{background:#00e1ff;box-shadow:0 0 8px #00e1ffe6}.hs-leg-cloud .hs-leg-dot{background:#fff;opacity:.85;box-shadow:0 0 6px #ffffff80}.hs-leg-note{margin-left:auto;color:#f5f6fac7;font-size:.95rem;letter-spacing:.04em}@media (max-width:640px){.hs-legend{gap:.8rem 1rem}.hs-leg-note{margin-left:0;width:100%}}.hs-chart{height:170px}.hs-area-edge{fill:url(#hsFillEdge)}.hs-area-cloud{fill:url(#hsFillCloud);opacity:.9}.hs-line-edge{fill:none;stroke:#00e1ff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(0,225,255,.5))}.hs-line-cloud{fill:none;stroke:#ffffffeb;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 4;opacity:.95}.hs-dot-edge{fill:#00e1ff;filter:drop-shadow(0 0 6px rgba(0,225,255,.9));animation:pulseDot 2s ease-in-out infinite}.hs-dot-cloud{fill:#fff;opacity:.9;filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}.hs-console.is-offline .hs-line-cloud,.hs-console:has(input:checked) .hs-line-cloud{opacity:.22;filter:grayscale(1)}.hs-console.is-offline .hs-area-cloud,.hs-console:has(input:checked) .hs-area-cloud{opacity:.14}.hs-console.is-offline .hs-dot-cloud,.hs-console:has(input:checked) .hs-dot-cloud{opacity:.2}.hs-console.is-offline .hs-mini--cloud,.hs-console:has(input:checked) .hs-mini--cloud{opacity:.45}.hs-console.is-offline .hs-mini--cloud .num,.hs-console:has(input:checked) .hs-mini--cloud .num{text-decoration:line-through;text-decoration-color:#fff6}.hs-rows li{justify-content:space-between}.hs-rows li .hs-row-meta{margin-left:auto;display:inline-flex;align-items:center;gap:.6rem}
/* type-scale-v2:idempotent */
/* R15 字号协调 v2 · 特性容器/CTA 面板归层 */
div.contact-panel h2{font-size:clamp(34px,4vw,48px)!important;line-height:1.2!important}
.section-head h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}
div.dev-grid div.dev-copy h2{font-size:clamp(30px,3.2vw,44px)!important;line-height:1.22!important}

/* type-scale:idempotent-ignore · R15 对比度收尾（Lighthouse 实测驱动） */
.bp-body .bp-meta{color:#57768f}
.pillar-links em.badge{color:#00606b;background:#e8f7f8;border:.05rem solid #bfdfe2}

/* ===================== R21 · 首页重排 · 移动端大图 · 灯箱 ===================== */
/* 1) 视觉卡整体可点 */
a.sol{color:inherit;cursor:pointer}
a.wall-card{color:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
a.wall-card:hover{border-color:#00e1ff59}
/* 2) 大图灯箱触发 affordance（桌面 hover 角标，触屏点按） */
.zoomable{position:relative;cursor:zoom-in}
.zoomable:after{content:"⤢ 放大查看";position:absolute;top:1.4rem;right:1.4rem;z-index:3;padding:.55rem 1.1rem;border-radius:99rem;font-family:var(--font-mono);font-size:1.1rem;letter-spacing:.08em;color:#fff;background:rgba(0,16,26,.55);border:.05rem solid rgba(255,255,255,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.zoomable:hover:after{background:rgba(0,225,255,.9);border-color:#00e1ff;color:#00334f}
/* 3) 灯箱本体 */
.lb{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:3rem;background:rgba(1,8,14,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s}
.lb.open{opacity:1;visibility:visible}
.lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:1.4rem;max-width:94vw}
.lb-img{display:block;max-width:min(1600px,94vw);max-height:80vh;width:auto;height:auto;border-radius:1rem;box-shadow:0 48px 140px rgba(0,0,0,.65)}
.lb-cap{font-family:var(--font-mono);font-size:1.3rem;letter-spacing:.06em;color:#f5f6fac7;text-align:center}
.lb-close{position:fixed;top:calc(var(--envbar-h) + 1.6rem);right:2rem;z-index:1;width:4.4rem;height:4.4rem;border-radius:50%;border:.05rem solid rgba(255,255,255,.3);background:rgba(0,20,32,.6);color:#fff;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease}
.lb-close:hover{border-color:var(--cyan);color:var(--cyan)}
/* 4) 窄屏/手机端：卡片图比例自适应，根治「图小」 */
@media (max-width:1000px){.sol-img,.cw-card img,.bp-card img{height:auto;aspect-ratio:3/2}}
@media (max-width:800px){.dev-img{height:auto;aspect-ratio:4/3;max-height:30rem}}
@media (max-width:700px){.sol-img,.cw-card img,.bp-card img{height:auto;aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){.lb{transition:none}.zoomable:after{content:"⤢"}}

/* ===================== R22 · 移动端顶级横向吸附流 (Snap Carousel) & Bento 质感 ===================== */
@media (max-width:768px){
  .sol-grid,.cw-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;gap:1.6rem!important;padding-block:.6rem 1.4rem!important;padding-inline:1.2rem!important;margin-inline:-20px!important;scrollbar-width:none!important}
  .sol-grid::-webkit-scrollbar,.cw-grid::-webkit-scrollbar{display:none!important}
  .sol-grid>.sol,.cw-grid>.cw-card{flex:0 0 84%!important;min-width:270px!important;max-width:340px!important;scroll-snap-align:center!important;margin:0!important}
  .device-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch!important;gap:1.4rem!important;padding-block:.6rem 1.4rem!important;padding-inline:1.2rem!important;margin-inline:-20px!important;scrollbar-width:none!important}
  .device-grid::-webkit-scrollbar{display:none!important}
  .device-grid>.dev-card{flex:0 0 84%!important;min-width:270px!important;max-width:330px!important;scroll-snap-align:center!important;margin:0!important}
  .carousel-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:1.2rem;font-family:var(--font-mono);font-size:1.1rem;letter-spacing:.08em;color:#8b99ad}
  .carousel-hint .dot{width:6px;height:6px;border-radius:50%;background:rgba(0,163,178,.3);transition:all .25s ease}
  .carousel-hint .dot.active{width:18px;border-radius:99rem;background:#00a3b2}
}

/* 桌面端 Bento 微光描边与柔和过渡 */
.sol,.cw-card,.dev-card{position:relative;transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s ease,border-color .28s ease}
.sol:hover{transform:translateY(-5px);border-color:rgba(0,225,255,.55)!important;box-shadow:0 22px 50px rgba(0,225,255,.16)!important}
.cw-card:hover{transform:translateY(-5px);border-color:rgba(0,225,255,.6)!important;box-shadow:0 24px 54px rgba(0,225,255,.18)!important}
.dev-card:hover{transform:translateY(-4px);border-color:rgba(0,225,255,.5)!important;box-shadow:0 20px 48px rgba(0,0,0,.45),0 0 24px rgba(0,225,255,.18)!important}

/* R22b · 首屏场景行移动端横滑胶囊（解除 display:none，信息不再丢失） */
@media (max-width:900px){
  .hs-rows{display:flex!important;flex-direction:row!important;overflow-x:auto;gap:.8rem;padding:.7rem .2rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hs-rows::-webkit-scrollbar{display:none}
  .hs-rows li{flex:0 0 auto;margin:0;padding:.7rem 1.3rem;border-bottom:none;border-radius:99rem;background:rgba(0,225,255,.08);border:.05rem solid rgba(0,225,255,.22);font-family:var(--font-mono);font-size:1.1rem;color:#f5f6fae6;white-space:nowrap}
  .hs-rows li .hs-ok{margin-left:.4rem}
}
/* 移动端 3D 粒子让路：禁拖拽、降存在感，消除滑屏手势冲突 */
@media (max-width:760px){.hero-shot #i3d{pointer-events:none!important;opacity:.45!important}}
