/* 官网修改 2.0 — isolated preview overrides. */
#demo .demo-shell{height:540px;grid-template-columns:1.4fr 1fr;gap:64px;align-items:start}
#demo .demo-sticky{position:relative;top:0;min-width:0}
#demo .demo-visual{height:460px}
#demo .demo-narrative{height:540px;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;padding:0 24px 0 0;scroll-snap-type:y proximity}
#demo .demo-step{height:540px;min-height:540px;padding:0 8px 0 24px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;scroll-snap-align:start;border-left:2px solid #dce6eb;margin:0}
#demo .demo-step.active{border-left-color:#36677f}
#demo-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#14232c}
#demo .demo-visual:has(video:not([hidden])) .demo-toolbar{display:none}
#demo .demo-visual:has(video:not([hidden])) .demo-overlay{pointer-events:none;bottom:98px}
#demo .demo-visual:has(video:not([hidden])) .demo-toolbar{bottom:60px;color:white;text-shadow:0 1px 3px #000}
#demo .demo-visual:has(video:not([hidden])) .demo-toolbar button{color:inherit}
#demo .demo-visual:has(video:not([hidden])) .panel-top{pointer-events:none}
.partner-invitation{display:flex;justify-content:center;margin-top:32px}
.team-org{display:flex;align-items:flex-start;gap:22px;padding-top:8px;padding-bottom:8px}
.team-org-logo{position:static;flex:0 0 64px;width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply}
.team-org-copy{flex:1;min-width:0}
.team-org-copy h3{margin-top:12px}
.team-org .org-code{display:block}
.member-carousel-controls{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:0 0 18px}
.member-carousel-controls span{font-size:14px;color:var(--muted);margin-right:auto}
.member-carousel-controls button{width:36px;height:36px;border:1px solid #c3d5de;border-radius:50%;background:transparent;font-size:18px}
.member-carousel-controls button:hover{background:#dce9ef}
.member-grid-scroll{touch-action:pan-x pan-y}
.member-grid-scroll:focus-visible,.demo-narrative:focus-visible{outline:2px solid #285d73;outline-offset:6px}
.catalog-page[data-catalog=targets] .hardware-image img{min-height:0;max-height:100%}
@media(max-width:1023px) and (min-width:768px){#demo .demo-shell{gap:28px}#demo .demo-step{padding-left:18px}#demo .demo-visual{height:420px}}
@media(max-width:767px){
 #demo .demo-shell{height:auto;display:block}
 #demo .demo-visual{height:320px}
 #demo .demo-narrative{height:280px;margin-top:26px;padding-right:12px}
 #demo .demo-step{height:280px;min-height:280px;padding:0 10px 0 18px;margin:0}
 #demo .demo-step h3{font-size:24px;margin:16px 0}
 #demo .demo-tabs{flex-wrap:nowrap;gap:10px}
 #demo .demo-tabs button{flex-basis:0;font-size:12px}
 #demo .demo-overlay{left:14px;right:14px;padding:12px;bottom:56px}
 .team-org{gap:18px}.team-org-logo{flex-basis:56px;width:56px;height:56px}
}

/* Review annotations: hide scrollbar chrome, without disabling scrolling. */
html:has(#demo),body:has(#demo),#demo .demo-narrative{scrollbar-width:none}
html:has(#demo)::-webkit-scrollbar,body:has(#demo)::-webkit-scrollbar,#demo .demo-narrative::-webkit-scrollbar{display:none;width:0;height:0}
.member-grid-scroll .member-compact{min-height:250px;justify-content:flex-start;padding-top:20px;padding-bottom:24px}
.member-grid-scroll .member-avatar{flex:0 0 96px;width:96px;height:96px;font-size:36px;margin:0 auto 28px}
.member-grid-scroll .member-compact p{margin-top:12px}
.contact-anchor{display:block;scroll-margin-top:160px}
@media(max-width:767px){
 .member-grid-scroll .member-avatar{flex-basis:80px;width:80px;height:80px;font-size:30px;margin-bottom:24px}
 .member-grid-scroll .member-compact{min-height:234px}
}
/* Keep player labels legible without overlaying task copy on the recording. */
#demo .demo-visual:has(video:not([hidden])) .panel-top{color:#fff;background:linear-gradient(#10202cbf,transparent);z-index:2}
#demo .demo-visual:has(video:not([hidden])) .panel-top .badge{color:#fff;border-color:#ffffff70;background:#14232c80}
#demo .demo-visual:has(video:not([hidden])) .demo-toolbar{z-index:2;bottom:48px}

/* Core members: keep a two-row grid while preserving horizontal overflow on narrow screens. */
.member-grid.member-grid-scroll{display:grid;grid-template-columns:repeat(7,minmax(142px,1fr));grid-template-rows:repeat(2,auto);align-items:stretch;column-gap:16px;row-gap:18px;mask-image:none;-webkit-mask-image:none;}
.member-grid-scroll .member-compact{flex-basis:auto;width:auto;min-width:0;height:100%;}
@media(max-width:899px){.member-grid.member-grid-scroll{grid-template-columns:repeat(7,176px);mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 58px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 58px),transparent 100%);}}

/* 机型选择条暂时隐藏：等新增机型后再放出来。
   恢复方法：删除 index.html 中 .deployment-tabs 的 hidden 与 data-temporarily-hidden 属性即可。 */
.deployment-showcase .deployment-tabs[data-temporarily-hidden="true"]{display:none}
/* QuickStart: keep the caption on its own line so long copy never collides with the play button. */
.deployment-showcase .deploy-status #deployment-caption{display:block}
/* Longer Piper quickstart command list: give the code pane a little more room. */
#deployment-command-dialog .deployment-code pre{max-height:52vh}

/* 官网修改3.0 · 第1条：02 板块由“仿真/真机对比滑块”换成统一物理接口视频。 */
.feature-visual.interface-visual{min-height:0;background:#0d2029}
.interface-visual video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#0d2029}
