/* [ef_work] – Work grid prototype. Visual language borrowed from Entity Content (Jost chips, white page). */
.ef-w { --ink: #222; --muted: #707173; --line: #e6e6e6; max-width: 1500px; margin: 0 auto; padding: 0 16px; }

.ef-w-filter { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 28px; list-style: none; margin: 0 0 40px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.ef-w-filter li { margin: 0; padding: 0; flex: 0 0 auto; }
.ef-w-filter li::before { display: none; }
.ef-w-sep { width: 1px; height: 22px; background: var(--line); }
.ef-w-chip { all: unset; cursor: pointer; position: relative; white-space: nowrap; font: 600 15px/1.2 Jost, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 6px 0; }
.ef-w-chip sup { font-size: 10px; letter-spacing: 0; margin-left: 3px; opacity: .8; }
.ef-w-chip::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--ink); transform: scaleX(0); transition: transform .25s ease; }
.ef-w-chip:hover, .ef-w-chip[aria-pressed="true"] { color: var(--ink); }
.ef-w-chip[aria-pressed="true"]::after { transform: scaleX(1); }
.ef-w-chip:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.ef-w-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 20px; list-style: none; margin: 0; padding: 0; }
.ef-w-card { margin: 0; padding: 0; }
.ef-w-card::before { display: none; }
.ef-w-card[hidden] { display: none; }
.ef-w-link { display: block; color: inherit; text-decoration: none; }
.ef-w-media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #111; }
.ef-w-img, .ef-w-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.ef-w-link:hover .ef-w-img, .ef-w-link:hover video, .ef-w-link:focus-visible .ef-w-img { transform: scale(1.04); }
/* hover loop: fades in over the poster once it actually plays */
.ef-w-media video.ef-w-loop { opacity: 0; transition: opacity .35s ease, transform .6s cubic-bezier(.2, .7, .2, 1); pointer-events: none; }
.ef-w-card.is-playing .ef-w-media video.ef-w-loop { opacity: 1; }
.ef-w-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.ef-w-text { display: block; padding-top: 12px; }
.ef-w-title { display: block; font: 600 22px/1.2 Inter, sans-serif; letter-spacing: -.003em; color: var(--ink); }
.ef-w-sub { display: block; margin-top: 2px; font: 400 15px/1.4 Inter, sans-serif; color: var(--muted); }
.ef-w-credits { display: block; margin-top: 4px; font: 400 15px/1.4 Inter, sans-serif; color: var(--muted); }
.ef-w-list { list-style: none; margin: 6px 0 0; padding: 0; font: 400 14px/1.55 Inter, sans-serif; color: var(--muted); }
.ef-w-list li, .ef-w-over li { margin: 0; padding: 0; }
.ef-w-list li::before, .ef-w-over li::before { display: none; }
.ef-w-list span, .ef-w-over span { display: inline-block; min-width: 82px; font: 600 11px/1 Jost, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }

/* layout C: credits appear over the picture on hover/focus */
.ef-w-over { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 18px; background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0) 65%); opacity: 0; transition: opacity .3s ease; }
.ef-w-over ul { list-style: none; margin: 0; padding: 0; font: 400 14px/1.55 Inter, sans-serif; color: #fff; }
.ef-w-over span { color: #fff; opacity: .75; }
.ef-w-link:hover .ef-w-over, .ef-w-link:focus-visible .ef-w-over { opacity: 1; }
@media (hover: none) { .ef-w-over { opacity: 1; } }

.ef-w-empty { text-align: center; color: var(--muted); padding: 40px 0; }

/* dark variant – used inside the black Work page section */
.ef-w-dark { --ink: #fff; --muted: #a8aaad; --line: rgba(255, 255, 255, .16); }
/* Work page: filter as far below the "Work" title as the title is below the header (~104 px; was ~166 px) */
.ef-w-dark { margin-top: -62px; }
.ef-w-dark .ef-w-title { color: #fff; }
.ef-w-dark .ef-w-media { background: #1a1a1a; }

@media (max-width: 1100px) { .ef-w-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
	.ef-w-grid { grid-template-columns: 1fr; gap: 28px; }
	.ef-w-filter { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
	.ef-w-title { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) { .ef-w-img, .ef-w-media video, .ef-w-chip::after { transition: none; } }
