/* Kurve Vimeo Feed: work grid. Colors and fonts come from the Kurve child theme's --kv-* tokens, with fallbacks for use on any page. */
.kv-work {
	--_bg: var(--kv-bg, #ffffff);
	--_panel: var(--kv-panel, #efeeec);
	--_line: var(--kv-line, rgba(17, 17, 17, 0.14));
	--_fg: var(--kv-fg, #111111);
	--_mute: var(--kv-mute, #5c5856);
	--_red: var(--kv-red, #d92216);
	--_on-red: var(--kv-on-red, #ffffff);
	--_display: var(--kv-display, "Archivo", "Arial Narrow", Arial, sans-serif);
	--_mono: var(--kv-mono, "JetBrains Mono", ui-monospace, Menlo, monospace);
	color: var(--_fg);
}
.kv-work [hidden] { display: none !important; }
.kv-work a { color: inherit; }

.kv-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.kv-chip {
	font-family: var(--_mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2;
	padding: 9px 14px; border-radius: 999px; border: 1px solid var(--_line); background: transparent; color: var(--_mute);
	cursor: pointer; display: inline-flex; gap: 8px; transition: all .2s; box-shadow: none; margin: 0;
}
.kv-chip:hover { color: var(--_fg); border-color: var(--_mute); }
.kv-chip[aria-pressed="true"] { background: var(--_fg); color: var(--_bg); border-color: var(--_fg); }
.kv-chip:focus-visible, .kv-card:focus-visible, .kv-btn:focus-visible { outline: 2px solid var(--_red); outline-offset: 3px; }

.kv-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 36px 20px; }
.kv-card { grid-column: span 4; text-decoration: none; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.kv-work[data-filter="All"] .kv-card.kv-feature { grid-column: span 6; }
.kv-thumb { position: relative; display: block; overflow: hidden; border-radius: 6px; background: var(--_panel); aspect-ratio: 16 / 9; }
.kv-thumb img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.kv-card:hover .kv-thumb img, .kv-card:focus-visible .kv-thumb img { transform: scale(1.045); }
.kv-dur, .kv-new { position: absolute; left: 12px; padding: 4px 8px; border-radius: 3px; font-family: var(--_mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2; }
.kv-dur { bottom: 12px; background: color-mix(in srgb, var(--_fg) 72%, transparent); color: var(--_bg); }
.kv-new { top: 12px; background: var(--_red); color: var(--_on-red); }
.kv-play { position: absolute; right: 14px; bottom: 14px; width: 46px; height: 46px; border-radius: 50%; background: var(--_red); display: grid; place-items: center; transform: scale(.6); opacity: 0; transition: all .3s; }
.kv-play::after { content: ""; border-left: 12px solid var(--_on-red); border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 3px; }
.kv-card:hover .kv-play, .kv-card:focus-visible .kv-play { transform: none; opacity: 1; }

.kv-meta { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; align-items: baseline; }
.kv-idx { grid-row: span 2; color: var(--_red); font-family: var(--_mono); font-size: 12px; letter-spacing: .06em; }
.kv-title { font-family: var(--_display); font-weight: 700; font-size: 20px; line-height: 1.15; text-wrap: balance; color: var(--_fg); }
.kv-work[data-filter="All"] .kv-feature .kv-title { font-size: 26px; }
.kv-tags { color: var(--_mute); font-family: var(--_mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }

.kv-more-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--_line); font-family: var(--_mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--_mute); }
.kv-btn {
	display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 600; font-size: 14px; font-family: inherit; letter-spacing: 0; text-transform: none;
	padding: 12px 20px; border-radius: 999px; border: 1px solid var(--_line); background: transparent; color: var(--_fg); cursor: pointer; transition: all .2s; margin: 0;
}
.kv-btn:hover { border-color: var(--_fg); }

@media (max-width: 1000px) { .kv-card, .kv-work[data-filter="All"] .kv-card.kv-feature { grid-column: span 6; } }
@media (max-width: 600px) { .kv-card, .kv-work[data-filter="All"] .kv-card.kv-feature { grid-column: span 12; } }
@media (prefers-reduced-motion: reduce) { .kv-thumb img, .kv-play, .kv-chip { transition: none; } }

/* On-site video player */
.kv-player { width: min(1200px, 94vw); max-height: 94vh; padding: 0; border: 0; background: transparent; overflow: visible; color: #fff; }
.kv-player::backdrop { background: rgba(0, 0, 0, .88); }
.kv-player-frame { aspect-ratio: 16 / 9; max-height: 82vh; background: #000; }
.kv-player-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.kv-player-title { margin: 12px 0 0; font-family: var(--kv-mono, "JetBrains Mono", ui-monospace, Menlo, monospace); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.kv-player-close { position: absolute; top: -46px; right: 0; width: 36px; height: 36px; margin: 0; padding: 0; border-radius: 50%; border: 0; background: #fff; color: #111; font-size: 22px; line-height: 1; cursor: pointer; }
.kv-player-close:focus-visible { outline: 2px solid var(--kv-red, #d92216); outline-offset: 3px; }
