/* ——— Laboratório ——— */
.lab{background:var(--void)}
.lab-stage>.wrap{width:100%;min-width:0}
.lab-stage{position:relative;display:flex;flex-direction:column;overflow:hidden;padding-block:clamp(96px,12vw,160px)}
.labgl .lab-stage{min-height:100svh;padding-block:110px 100px}
#labGL{position:absolute;inset:0;width:100%;height:100%;display:none;z-index:0;cursor:grab;touch-action:pan-y}
.labgl #labGL{display:block}
#labGL.drag{cursor:grabbing}
.lab-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;pointer-events:none;width:100%}
.lab-head .mega{font-size:clamp(2.6rem,6.4vw,7rem)}
.lab-head p{margin:0;color:var(--ink-2);max-width:38ch;pointer-events:auto}
.lab-caption{position:relative;z-index:2;margin-top:auto;display:none;justify-content:space-between;align-items:flex-end;gap:2rem;width:100%;pointer-events:none}
.lab-caption>*{pointer-events:auto}
.cap-name{font-weight:800;font-size:clamp(1.8rem,3.4vw,3.2rem);letter-spacing:-.03em;line-height:1;margin:.4rem 0 0;font-variation-settings:"wdth" 110}
.cap-meta{display:flex;gap:.8rem;align-items:center;color:var(--mute);flex-wrap:wrap}
.chip-concept{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--void);background:var(--ink);padding:.25rem .5rem}
.lab-dots{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.lab-dots button{all:unset;cursor:pointer;width:34px;height:24px;position:relative}
.lab-dots button::before{content:"";position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:#5A6A90;transition:background .3s}
.lab-dots button[aria-current="true"]::before{background:var(--cyan)}
.lab-dots button:hover::before{background:var(--ink-2)}
.lab-dots button:focus-visible{outline:2px solid var(--cyan);outline-offset:6px}
.lab-index{position:relative;z-index:2;list-style:none;margin:clamp(2rem,4vw,3.5rem) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.2rem 1.4rem}
.lab-card{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:.7rem;width:100%;text-decoration:none;color:inherit}
.lab-card img{width:100%;height:auto;min-width:0;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--line-2);display:block;background:var(--panel)}
.lab-card-name{font-weight:700;font-size:1.25rem;letter-spacing:-.01em;margin:0;line-height:1.2}
.lab-card-meta{color:var(--mute);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.lab-card:focus-visible{outline:none}
.lab-card:focus-visible img,.lab-card:focus-visible .lab-ph{outline:2px solid var(--cyan);outline-offset:3px}
.lab-card img,.lab-ph{transition:transform .6s var(--ease-out),border-color .3s}
.lab-card:hover img,.lab-card:hover .lab-ph{transform:translateY(-4px);border-color:var(--cyan)}
.lab-hint{color:var(--mute)}
@media (max-width:900px){
  .lab-index li{min-width:0}
  .lab-head{flex-direction:column;align-items:flex-start;gap:1rem}
  .lab-index:not(.lab-index--archive){display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);padding-bottom:1rem;scrollbar-width:thin}
  .lab-index:not(.lab-index--archive) li{flex:0 0 78%;scroll-snap-align:start}
}

.lab-ph{display:flex;align-items:flex-end;aspect-ratio:16/10;width:100%;max-width:100%;padding:1.2rem;background:var(--p-bg);color:var(--p-fg);border:1px solid var(--line-2);font-family:var(--p-font);font-weight:var(--p-w);font-size:clamp(1.4rem,2.4vw,2.2rem);line-height:1;position:relative;overflow:hidden}
.lab-ph::before{content:"";position:absolute;left:1.2rem;top:1.2rem;width:14px;height:14px;background:var(--p-accent)}
.lab-head{margin-bottom:0}
.cap-actions{display:flex;flex-direction:column;gap:1.2rem;align-items:flex-end}
.lab-hint{margin:.8rem 0 0}
.labgl .lab-caption{display:flex}
.labgl .lab-index,.labgl .lab-all{display:none}
.lab-all{position:relative;z-index:2;margin:2rem 0 0}
@media (max-width:1100px) and (min-width:901px){.lab-index{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lab-index--archive{margin-top:0}
@media (max-width:900px){.lab-index--archive{grid-template-columns:1fr}}
