.cams-band{padding:clamp(80px,12vw,160px) 0}
.cams-band .wrap{width:min(1000px,100% - 2*var(--gutter))}
.subhero .wrap{width:min(var(--maxw),100% - 2*var(--gutter))}
.status{font-size:.88rem;color:rgba(255,255,255,.78)}
.cycle{margin-top:22px;height:2px;background:rgba(255,255,255,.14);border-radius:2px;overflow:hidden;max-width:360px}
.cycle span{display:block;height:100%;width:100%;background:var(--tint);transform:scaleX(0);transform-origin:left}
.cycle span.run{animation:cycle var(--cycle,120s) linear forwards}
@keyframes cycle{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.cycle{display:none}}

.jt{margin-top:clamp(28px,4vw,48px)}
.jt-h{font:600 .72rem var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:0 0 14px}
.jt-h~.jt-h,#jt-kln+.jt-h{margin-top:clamp(28px,4vw,44px)}
.jt-pick{max-width:32rem;margin-bottom:14px}
.jt-from{font-size:.9rem;color:var(--ink-2);margin-bottom:10px}
.jt-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.jt-cell{--c:var(--ink-2);position:relative;display:flex;flex-direction:column;gap:8px;padding:18px 16px 16px;border-radius:16px;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:inset 0 3px 0 var(--c);transition:transform .7s var(--ease),background .5s var(--ease)}
.jt-cell:hover{transform:translateY(-3px);background:var(--glass-2)}
.jt-cell.k-ok{--c:var(--ok)}.jt-cell.k-warn{--c:var(--warn)}.jt-cell.k-bad{--c:var(--bad)}
.jt-name{font-size:.8rem;color:var(--ink-2)}
.jt-min{font-size:clamp(2rem,6vw,3.4rem);font-weight:300;line-height:1;letter-spacing:-.05em}
.jt-min small{font-size:.32em;letter-spacing:0;color:var(--ink-2)}
.jt-min.is-text{font:400 1rem/1.3 var(--f-body);letter-spacing:0;color:var(--ink-2)}
.jt-cell .badge{align-self:flex-start}
.jt-best{position:absolute;top:14px;right:14px;font:600 .62rem var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--c)}
.jt-sub{font-size:.75rem;color:var(--ink-2)}
.jt-cell.is-missing{border-style:dashed;background:transparent;box-shadow:none}
.jt-note{margin-top:18px;font-size:.85rem;color:var(--ink-2)}
.jt-note .state{margin-top:10px}
@media(max-width:640px){.jt-cells{grid-template-columns:1fr}.jt-cell{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 14px}.jt-name{flex:1 1 100%}}

.cam-group{margin-top:clamp(40px,6vw,72px)}
.cam-h{font:300 clamp(1.3rem,2.4vw,1.8rem)/1.2 var(--f-body);letter-spacing:-.02em;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.cam{margin:0;border-radius:18px;overflow:hidden;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-hi),var(--shadow);transition:transform .7s var(--ease)}
.cam:hover{transform:translateY(-4px)}
.shot{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;background:#0a0f13;cursor:zoom-in;overflow:hidden;color:inherit}
.shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),opacity .8s var(--ease)}
.cam:hover .shot img{transform:scale(1.05)}
.cam.is-loading .shot img{opacity:0}
.cam-skel{position:absolute;inset:0;border-radius:0;display:none}
.cam.is-loading .cam-skel{display:block}
.shot .msg{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;font-size:.82rem;background:rgba(6,12,16,.78);color:#fff}
.cam.is-down .msg{display:flex}
.cam figcaption{padding:12px 16px 14px;font-size:.92rem;line-height:1.3}
.cam figcaption small{display:block;margin-top:2px;color:var(--ink-2);font-size:.78rem}
.band-light .cam figcaption{color:var(--ink)}

.strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:clamp(28px,4vw,44px) var(--gutter);margin-top:0;-webkit-overflow-scrolling:touch}
.strip .cam{flex:none;width:min(86vw,520px);scroll-snap-align:center}
.cams-foot{padding-top:clamp(28px,4vw,48px);max-width:60ch}
#zoom{width:min(94vw,900px)}
#zoom img{display:block;width:100%;height:auto;background:#000}
.zbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px}
.zbar small{color:var(--ink-2)}
