.project-grid{row-gap:64px;align-items:start}.project-card:nth-child(even){margin-top:130px}.projects-all .project-card:nth-child(even){margin-top:0}.project-card[data-project="engenho-de-dentro"] .project-visual{background:#e9e7df}.project-card[data-project="engenho-de-dentro"] .project-visual img{object-fit:contain;padding:24px;filter:none}.project-card[data-project="engenho-de-dentro"] .project-index{color:#17202b}.project-card[data-project="4life-esportes"] .project-visual img{object-position:center}.case-4life-esportes .case-cover{width:70%;object-position:50% 35%}.case-engenho-de-dentro{background:#10292c}.case-engenho-de-dentro .case-cover{object-fit:contain;width:50%;padding:110px 4vw 45px;background:#eae8df;filter:none}.case-engenho-de-dentro .case-shade{background:linear-gradient(90deg,#090b12 0%,#090b12 27%,#090b12aa 47%,transparent 70%)}.sports-note{padding-top:30px}.sports-note h3{font-size:clamp(28px,3.5vw,48px);font-weight:500;letter-spacing:-.04em;line-height:1.1;margin:22px 0}.sports-note p{font-size:17px;color:var(--muted);line-height:1.7;max-width:470px}.sports-note img{margin-top:35px;max-height:500px;width:100%;object-fit:cover}.sports-note .credit-note{font-size:12px;margin-top:12px}.garment-gallery{grid-template-columns:1fr 1fr;gap:30px}.garment-gallery .image-open{background:#eae8df;padding:35px}.garment-gallery img{height:650px;width:100%;object-fit:contain}.application-gallery{grid-template-columns:1.4fr 1fr;align-items:start;gap:35px}.application-gallery figure:nth-child(2){margin-top:90px}.application-gallery img{max-height:650px;object-fit:contain}.sports-gallery{grid-template-columns:1.4fr 1fr;align-items:start}
@media(max-width:900px){.project-card:nth-child(even){margin-top:80px}.garment-gallery img{height:450px}.garment-gallery .image-open{padding:20px}}
@media(max-width:600px){.project-card:nth-child(even){margin-top:0}.project-grid{row-gap:42px}.case-4life-esportes .case-cover{width:100%}.case-engenho-de-dentro{height:95svh;min-height:720px}.case-engenho-de-dentro .case-cover{width:100%;height:75%;padding:90px 25px 10px;object-position:50% 0%}.case-engenho-de-dentro .case-shade{background:linear-gradient(0deg,#090b12 0%,#090b12f0 20%,#090b1230 70%)}.case-engenho-de-dentro .case-title h1{font-size:56px}.garment-gallery{gap:16px}.garment-gallery .image-open{padding:10px}.garment-gallery img{height:310px}.application-gallery{grid-template-columns:1fr;gap:30px}.application-gallery figure:nth-child(2){margin-top:0;max-width:350px}.sports-note{padding-top:0}.sports-note img{max-height:380px}}
.case-4life-esportes .case-cover{filter:saturate(.9) contrast(1.04) brightness(.85)}
.project-card[data-project="4life-esportes"] .project-visual img{filter:saturate(.95) contrast(1.04)}
.sports-gallery img,.sports-note img{filter:saturate(.92) contrast(1.035)}
.application-gallery img{filter:contrast(1.035)}
.garment-gallery img{filter:none}
@media(max-width:600px){.sports-gallery{grid-template-columns:1fr}.sports-gallery figure:last-child{max-width:320px;margin-left:auto}.case-4life-esportes .case-title h1{font-size:clamp(42px,10.6vw,60px)}}
@media(max-width:600px){.case-engenho-de-dentro .case-shade{background:linear-gradient(0deg,#090b12 0%,#090b12f0 20%,#090b1230 70%),linear-gradient(180deg,#090b12a0,transparent 25%)}}

@media(max-width:600px){.case-engenho-de-dentro .case-shade{background:linear-gradient(0deg,#090b12 0%,#090b12f0 20%,#090b1230 70%),linear-gradient(180deg,#090b12a0,transparent 25%)}}

/* Edited archive: preserve supplied colors and complete framing. */
.edited-gallery img,.sports-note img{filter:none;height:auto;max-height:none;object-fit:contain;aspect-ratio:auto}
.sports-note img{max-height:620px;width:100%;object-fit:contain;background:#10131b}
.edited-gallery{align-items:start;gap:32px}
.sports-gallery.edited-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.teams-gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-width:850px;margin:0 auto}
.application-gallery.edited-gallery{grid-template-columns:1.3fr 1fr 1fr}
.application-gallery.edited-gallery figure:nth-child(2){margin-top:0}
@media(max-width:700px){.sports-gallery.edited-gallery,.application-gallery.edited-gallery{grid-template-columns:1fr}.edited-gallery figure{max-width:540px;width:100%;margin:0 auto}.sports-gallery.edited-gallery figure:last-child{max-width:540px;margin:0 auto}.teams-gallery{gap:18px}.sports-note img{max-height:520px}}

/* Video collections and new audiovisual cases. */
.video-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(24px,4vw,58px)}
.video-piece{min-width:0;margin:0}
.video-piece video{display:block;width:100%;height:clamp(360px,48vw,700px);background:#07090f;object-fit:contain}
.video-piece figcaption{padding-top:16px}
.video-piece h3{margin:0 0 8px;font-size:clamp(19px,2vw,25px);font-weight:500;letter-spacing:-.025em}
.video-piece figcaption p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.music-work .video-collection{grid-template-columns:minmax(0,1fr)}
.music-work .video-piece{max-width:840px}
.audio-piece{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(24px,5vw,68px);align-items:center}
.audio-art{background:#0d111a;overflow:hidden}
.audio-art img{display:block;width:100%;height:auto;aspect-ratio:7/5;object-fit:cover}
.audio-piece-copy .micro{display:block;margin-bottom:18px;color:var(--muted)}
.audio-piece-copy h3{font-size:clamp(28px,4vw,52px);line-height:1.04;letter-spacing:-.045em;font-weight:500;margin:0 0 14px}
.audio-piece-copy p{max-width:480px;color:var(--muted);line-height:1.7}
.audio-piece audio{display:block;width:100%;margin:24px 0 14px;accent-color:#397cff}
.audio-piece .text-link{display:inline-block}
@media(max-width:700px){.video-collection{grid-template-columns:1fr;gap:34px}.video-piece video{height:min(78svh,640px)}.audio-piece{grid-template-columns:1fr;gap:22px}.audio-piece-copy h3{font-size:38px}}

/* Single-video carousel for the Paulo Alceu case. */
.video-carousel{max-width:1160px;margin:clamp(24px,4vw,52px) auto 0}
.video-carousel-toolbar,.video-carousel-footer,.video-carousel-controls{display:flex;align-items:center;justify-content:space-between}
.video-carousel-toolbar{padding:0 0 16px;border-bottom:1px solid #ffffff24}
.video-carousel-count{font:600 13px/1.2 Arial,Helvetica,sans-serif;letter-spacing:2px;color:#f5f7fb}
.video-carousel-divider{color:#657086}
.video-carousel-controls{gap:9px}
.video-carousel-controls button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff40;border-radius:50%;background:#111722;color:#f5f7fb;cursor:pointer;transition:background .2s,border-color .2s,opacity .2s}
.video-carousel-controls button:hover:not(:disabled){background:#397cff;border-color:#397cff}
.video-carousel-controls button:focus-visible,.video-carousel-viewport:focus-visible,.video-carousel-dot:focus-visible{outline:2px solid #79a8ff;outline-offset:4px}
.video-carousel-controls button:disabled{opacity:.38;cursor:default}
.video-carousel-controls svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.video-carousel-viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;touch-action:pan-x pan-y}
.video-carousel-viewport::-webkit-scrollbar{display:none}
.video-carousel-track{display:flex;align-items:stretch}
.video-carousel-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.video-carousel-slide .video-piece{display:grid;grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr);gap:clamp(28px,6vw,88px);align-items:center;width:100%;margin:0;padding:clamp(22px,4vw,56px);background:linear-gradient(135deg,#111722,#0c1018 75%);border-bottom:1px solid #ffffff24}
.video-carousel-slide .video-piece video{width:min(100%,min(34vw,390px));height:min(72svh,680px);min-height:420px;aspect-ratio:9/16;justify-self:center;object-fit:contain;background:#07090f}
.video-carousel-slide .video-piece figcaption{max-width:470px;padding:0}
.video-carousel-slide .video-piece h3{font-size:clamp(30px,4.2vw,58px);line-height:1.04;letter-spacing:-.045em;margin:0 0 18px}
.video-carousel-slide .video-piece figcaption p{max-width:390px;font-size:15px;line-height:1.75}
.video-carousel-footer{gap:18px;padding-top:17px}
.video-carousel-dots{display:flex;align-items:center;gap:8px}
.video-carousel-dot{width:18px;height:5px;padding:0;border:0;border-radius:99px;background:#ffffff3d;cursor:pointer;transition:width .2s,background .2s}
.video-carousel-dot[aria-current="true"]{width:34px;background:#397cff}
.video-carousel-hint{font-size:12px;color:var(--muted);text-align:right}
@media(max-width:700px){
 .video-carousel{margin-top:22px}
 .video-carousel-slide .video-piece{grid-template-columns:minmax(0,1fr);gap:20px;padding:18px 15px 22px}
 .video-carousel-slide .video-piece video{width:min(100%,390px);height:min(68svh,600px);min-height:0}
 .video-carousel-slide .video-piece figcaption{max-width:100%;padding:0 4px}
 .video-carousel-slide .video-piece h3{font-size:clamp(25px,7vw,38px);margin-bottom:9px}
 .video-carousel-footer{align-items:flex-start;flex-direction:column;gap:13px}
 .video-carousel-hint{text-align:left}
 .video-carousel-dot{width:12px}
 .video-carousel-dot[aria-current="true"]{width:27px}
}
@media(prefers-reduced-motion:reduce){.video-carousel-viewport{scroll-behavior:auto}.video-carousel-controls button,.video-carousel-dot{transition:none}}
